基本
cache是一种小容量高速度的sram存储器,用于匹配cpu的存取速度,在cpu和主存之间。
根据局部性原理,将逻辑或空间相邻的部分数据先存入cache与cpu通信
过渡
cpu对cache进行读操作,然后执行指令,也执行写操作,这就涉及到对cache进行寻址
1.cache的编址
一般来说,往cache里面放的最频繁访问数据,是不受限制地放入cache,因此它是无序的。因此,这样一个一个查找需要花费时间,效率不高。这种编址法叫:
直接映射
可以使用hash表的方法,它的主存地址在哪那它的cache地址就在哪。弊端在于无法导入两个在cache中地址相同的数据。这种叫:
全相联映射
所以,可以将上述两种编址法相结合,可以获得最大效率。
组相联映射
过渡
如果需要的地址不在cache上,就需要更换cache中的数据块,涉及的替换算法有四个,其中最符合局部性原理的是最不经常使用算法(LRU)
2.替换算法
过渡
对于写,由于cache的独立特性,与cpu-主存这样的简单特性不同,它有引发了新的问题
3.写
全写法
同时写入cache和主存,可以如果这样主存的速度跟不上回影响性能。
使用中间缓冲。
这个可以解决一定问题,可是高频繁的写操作无法完成
过渡
这就需要别的方法
回写法
写入cache,等待替换时写入主存。
未命中时立即替换cache,然后在写入
全写法与非分配法配套 回写法与分配法配套