1 原因
1.1内存(存储器)的存取速度大大低于cpu的速度,导致cpu等待造成资源浪费
1.2cpu的访存权限不如i/o设备,避免cpu与i/o设备争夺访存
1.3指令和数据在内存的地址分布不是随机的,访问具有相对的局部性(程序访问的局部性原理)
2 工作原理
2.1 一般才用高速的SAMR制作
2.2将内存和Cache都分成若干块,每个块内包含若干字,块的大小相同,每个缓存块的标记表示与其建立对应关系的内存块
2.3命中率:在一个程序执行期间,访问cache的总命中次数/访问cache的总命中次数+访问内存的总次数
2.4cache容量是总成本价与命中率的折中值,块长与命中率的关系取决于各程序的局部特性
3 Cache的基本结构
主要由cache存储体,地址映射变换机构,cache替换机构组成
3.1 cache存储体
以块为单位与内存交换信息,cache访存的优先级最高
3.2 地址映射变换机构
将cpu送来的内存地址转换为cache地址,主要是块号之间的转换
如果转换后的cache块已与cpu欲访问的内存块之间建立了对应关系,即已名字,可直接访问cache存储体
否则cpu访问内存,cpu访问内存时不仅将要访问的字取出,同时将其所在的内存块一并调入cache(cache未处于装满状态),
若此时cache已满,则采取替换策略
3.3 替换机构
当cache已满,按照一定的策略替换内存块
cache对用户是透明的,用户编程用到的地址是内存地址
3.4 cache的读写操作
对cache块内写入的信息,必须与被映射的内存块类的信息一致
写直达法:操作时同时写入cache和内存
写回法:写操作时只写入cache,当cache被替换时才写回内存
4 cache的改进
4.1 单一缓存和两级缓存
单一缓存:cpu与内存之间只有一个缓存,该缓存与cpu制作在同一个芯片内,又称为片内缓存,
片内缓存可提高片外总线的利用率,cpu可直接访问cache而不必占用芯片外的总线
两级缓存:片内缓存在芯片内,容量有限 .在内存和片内缓存之间增加一级缓存,称为片外缓存(由静态RAM组成)。
且片外缓存与cpu之间不使用系统总线
4.2 统一缓存和分立缓存
统一缓存:指令和数据都放在同一缓存内的cache
分立缓存:指令和数据分别存放在两个缓存中
原因:与内存结构有关,若指令和数据存放在同一内存里,则采用统一缓存,否则采用分立缓存
与机器对指令执行的控制方式有关。当采用超前控制或流水线控制方式时,一般采用分立缓存
5 cache—内存地址映射
5.1 直接映射(块与块的对应是相对固定的)
5.2 全相联映射(灵活性大的映射关系)
5.3 组相联映射(折中)
6 替换策略
6.1 先进先出
6.2近期最少使用
6.3随机法