1.CPU和cache之间,cache和主存之间,主存和辅存之间数据交换的单位分别是什么?
CPU和cache之间单位是"字",cache和主存之间单位是"块"(这个是大多数国内院校教材的翻译)/cache line(也有很多教材倾向于翻译为“行”),主存和辅存之间单位是"页"(虚拟存储系统中)。
2.Cache-主存映射方式
如何区分 Cache 与 主存 的数据块对应关系?
2.1全相联映射
2.2直接映射
2.3组相连映射
3.Cache替换算法
Cache 很小,主存很大。如果Cache满了怎么办?
3.1随机算法(RAND)
3.2先进先出算法(FIFO)
会抖动
3.3近期最少使用算法(LRU)
LRU算法——基于“局部性原理”,近期被访问过的主存块,在不久的将来也很有可能被再次访问,因
此淘汰最久没被访问过的块是合理的。LRU算法的实际运行效果优秀,Cache命中率高。
若被频繁访问的主存块数量 > Cache行的数量,则有可能发生“抖动
”,如:{1,2,3,4,5,1,2,3,4,5,1,2…}
3.4最不经常使用算法(LFU)
4.Cache写策略
CPU修改了Cache中的数据副本,如何确保主存中数据母本的一致性?