1.层次化存储的四个方面
(1)映像规则,分为全相联映射,直接映射,组相联映射
(2)查找算法?
(3)替换算法:LRU算法,最近最少算法,LRU硬件结构图
n个块,需要n个与门,n-1个与门输入端,个触发器。
(4)写策略:写直达vs写回,写直达:当cache中一个数据写入时同时也写入存储器,即时时刻刻保持cache与存储器数据一致。
写回:执行写操作时,只写入cache,不写入存储器,同时将DF(脏位)置一。
写失效:当写不命中的时候,有两种策略:1.按写分配:先把块调入cache,再进行写操作; 2.不按写分配直接写入存储器,不经过cache。
写缓冲器:注意写合并。
2.Cache专项
平均访存时间=命中时间+不命中率*不命中开销
1.优化cache不命中率
3C失效:强制失效,容量失效,冲突失效
1.增加cache块大小,降低强制失效
2.增加cache容量,降低容量失效
3.提高相联度,降低冲突失效
4.伪相联
5.牺牲cache,降低冲突缺失。在cache块后放一个小cache用于存放被替换出去的块。
6.硬件预取,提取预取指令和数据
7.编译预取数据,在指令中插入数据预取指令。对象主要是循环
8.编译程序优化:将指令数据重新组织。典型技术:数组合并,内外循环交换,循环融合,分块计算。
2.优化cache不命中开销
1.多级cache(计算题)
2.让读不命中优于写,当发生读不命中时,数据可能在写缓冲器中,可推迟对读不命中的处理或者检查写缓冲的内容。
3.写合并,发生写时检查写缓冲器的内容。
4.请求字处理技术,分为尽早重启动和请求字优先。
5.非阻塞cache技术,不命中时仍允许其他命中的访问。一次不命中下命中即可。
3.优化命中时间
1.减少cache容量
2.使用虚拟cache
3.cache访问流水化@
4.踪迹cache@