第1关:Part A
任务描述
本关任务:完成csim.c文件,实现一个cache simulator,模拟Cache的访问过程。替换算法采用最近最少使用替换策略(LRU)。
可参考资料:官网实验文档 。
相关知识
为了完成本关任务,你需要掌握:1.Cache的基本工作原理,2.最近最少使用替换算法(LRU)。
Cache的基本工作原理
使用Cache改善系统性能的依据是程序的局部性原理。通常采用相联存储器。
根据程序的局部性原理,可以在主存和CPU通用寄存器之间设置一个高速的容量相对较小的存储器,把正在执行的指令地址附近的一部分指令或数据从主存调入这个存储器,供CPU在一段时间内使用。
系统正是依据此原理,不断地将与当前指令集相关联的一个不太大的后继指令集从内存读到Cache,然后再与CPU高速传送,从而达到速度匹配。
CPU对存储器进行数据请求时,通常先访问Cache。由于局部性原理不能保证所请求的数据百分之百地在Cache中,这里便存在一个命中率。即CPU在任一时刻从Cache中可靠获取数据的几率。
命中率越高,正确获取数据的可靠性就越大。一般来说,Cache的存储容量比主存的容量小得多,但不能太小,太小会使命中率太低;也没有必要过大,过大不仅会增加成本,而且当容量超过一定值后,命中率随容量的增加将不会有明显地增长。
更多有关Cache的内容可以参考《深入理解计算机系统》第三版第六章中有关高速缓存器的介绍。
最近最少使用替换算法
LRU是Least Recently Used的缩写。它是基于“如果一个数据在最近一段时间内使用次数很少,那