10、cache 高速缓存
用来存放当前最活跃的程序和数据,位于 CPU 和主存之间,容量不大,速度比主存快 5-10 倍,对程序员透明,映射是由硬件自动完成的。
存放主存的部分拷贝信息
控制部分
判断 CPU 要访问的信息在 cache 中是否存在,存在的话则为命中直接访问,不存在的话则没有命中,从主存读取后存入 Cache
替换算法
Cache 的容量越大,命中率越高(非线性)。但是 Cache 的成本增加,命中时间增加。
- 随机替换算法:用随机数发生器产生一个要替换的符号,将该块替换出去。
- 先进先出算法:最先进入 Cache 的块,先被替换出去。
- 近期最少使用算法:将近期最少使用的 Cache 中的信息块替换出去
- 优化替换算法:先执行一次程序,统计 Cache 的替换情况
地址映像
CPU 工作时送出的是主存单元的地址,应从 Cache 存储器中读/写信息。这就需要将主存地址转换成 Cache 存储器地址,这就是地址映像
直接映像
主存的块和 Cache 块的对应关系是固定的,冲突大
全相联映像
允许主存的任一块可以调入 Cache 存储器的任何一个块的空间中。冲突小
组相联映像
组与组之间映射,冲突较少