从单级存储器到多级存储器
处理器性能与存储系统性能之间存在巨大差异。
1.为什么?
(1)主存储器与CPU速度差距越来越大,存储墙问题严重制约着计算机性能的提升。
(2)系统与应用的规模不断扩大,需要更大的存储器来支撑程序的运行
(3)各类存储器的容量/速度/价格不可兼得,如SRAM、DRAM、磁盘等,凭现有单种存储器件,无法构建一个可行的存储系统。SRAM速度基本和CPU速度差不多,但占的体积较大,还比较昂贵
2.怎么办?
1.利用多种存储器件,取长补短,构建层次式存储系统
快速但昂贵的存储器:容量少点,尽量让CPU多访问
慢速但容量大的存储器:容量大点,CPU尽可能少访问
3.能否达到效果?
访问速度方面:采用快速存储器,尽量让CPU多访问快速存储器中的内容(增加Cache层次)
程序局部性原理:
时间局部性:当前访问的数据存放Cache中
空间局部性: 把与当前访问地址相邻的数据放入Cache中(以块为单位从内存调入)
容量方面:采用慢速但容量大的存储器,内存不够时数据可以放到外存中(增加辅存层次)
Cache-主存和主存-辅存层次
最主要的两种层次
从主存的角度来看:
Cache-主存层次:弥补主存速度的不足
主存-辅存层次:弥补主存容量的不足
存储层次的四个问题
1.当把一个块调入高一层(靠近CPU)存储器时,可以放在哪些位置上?
(映像规则 调入块可以放在哪些位置)
2.当所要访问的块在高一层存储器中时,如何找到该块?
(查找算法 如何在映像规则规定的候选位置查找)
3.当发生失效时,应替换哪一块?
(替换算法 规定的候选位置均被别的块占用)
4.当进行写访问时,应进行哪些操作?
(写策略 如何处理写操作)
存储层次的性能参数