**
高速缓存器-Cache
**
一、Cache的组成
1、Cache存储体:存放由主存调入的指令与数据块。
2、地址转换部件:建立目录表以实现主存地址到缓存地址的转换。
3、替换部件:在缓存已满时按一定策略进行数据块替换,并修改地址转换部件。
二、Cache与主存的映射方式
1、全相联映射(随机选择位置存放)
2、直接映射(固定位置存放)
3、组相联映射(组号固定,组内采用全相联映射方式)
三、Cache中的替换算法
1、随机算法
2、先进先出算法(FIFO)
3、近期最少使用算法(LRU)
平均命中率最高
4、最不经常使用算法
四、Cache的写策略
1、写命中
①全写法:将数据同时写入Cache和主存当中(现在在Cache和主存之间加入了写缓冲);
②写回法:在Cache当中进行修改,只有在此块被换出使才写回主存;
2、写未命中
①写分配法:将主存块加载到Cache中再进行修改,再写回主存(通常与写回法配合使用);
②非写分配法:直接在主存中进行写操作,只有在“读”不命中是才调入Cache块(通常和全写法配合使用);
五、Cache的相关计算
1、Cache的总容量
Cache的总容量 = 标记阵列 + cache的存储容量
图为二路组相联的标记阵列,每组的标记项排成一行,映射一行就是一组;
每个Cache行对应一个标记项(包括有效位、标记为Tag、一次性维护位、替换算法位)
Cache块的存储容量与主存块大小相等。
Cache行的存储容量
例题
一位有效位,一位脏位