一、主存和cache的映射方式
直接映射
唯一位置,冲突
全相联映射
任意位置;按内容寻址的相联存储器
组相联映射
组间直接映射,组内全相联映射
二、cache中的替换算法
cache工作原理要求她经常保持最新的数据。当主存向cache传送一个新块,而cache可用位置已经被占满,这个时候就需要采用一定的替换策略。替换算法与主存和cache的映射方式有关。直接映射的方式决定了一个主存块只保存在唯一的位置,直接替换。
而对于全相联映射、组相联映射,采用方法:
最近最少使用LRU算法:堆栈类算法,根据了程序的局部性原理
FIFO
随机算法
最不经常使用:没考虑时间问题
三、什么是cache的写操作?
cache中的内容是主存块副本,当对cache中的内容进行更新时,为了保持cache和主存块的内容一致,需要采取一定的写操作策略:
直通法和写回法。
1)回写法:当cpu对cache写命中时,修改cache的内容时候,只修改cache的内容,主存并不立即写入,所以增加一个标志位,标志
块是否被修改。当此块被换出时,才写回主存。
2)写穿法:当cpu对cache写命中时,修改cache的内容时候,把数据同时写入cache和主存。当这块替换时,就不必考虑写回,直接覆盖就好。
为了保证效率,在cache和主存之间加了写缓冲,cpu同时写数据到写缓冲和cache中,写缓冲再控制将内容写入主存。写缓冲是一个FIFO队列,可以解决速度不匹配的问题。
3)如果cache 写不命中时,分为两种,一种只写入主存,不进行调块;另一种一边写入主存,还要将此块调入cache中。