一、地址映射关系
- Cache行/块 = 主存块,分别编号为Cache行号、主存块号。
- Cache行通过“标记”与主存块一一对应。
- Cache行内容:有效位(1)+标记(计算得)+数据(块大小)。
- 如何判断是否命中:标记为对比正确+有效位为1。
1. 全相联映射
【装入】主存块可以放入Cache的任何位置——只要Cache有空闲的块,就可以把待放入的主存块装入Cache。
【访存】与所有Cache行中的标记进行比较。
【地址结构】标记+块内地址
优点:冲突概率低,空间利用率高,命中率高。
缺点:访存速度慢(需比较所有标记)。
2. 直接映射
Cache有行,主存有
块。
【地址结构】标记(m-c)+Cache行号(c)+块内地址(块大小)
3. 组相联映射
二路组相联——每组有2个Cache行。
【地址结构】标记+组号(组个数)+块内地址
二、写策略
1. 写命中
【全写法】同时写入Cache和主存,替换时直接覆盖。+写缓存。
【回写法】只写入Cache,替换时才写回主存。+修改位。
2. 写不命中
【写分配法】加载主存块到Cache中,更新此Cache块。
【非写分配法】只写入主存,不调入Cache。
3. 组合
全写法 + 非写分配法
回写法 + 写分配法
4.多级Cache
指令Cache与数据Cache分开设计。离CPU近的Cache访问速度快。