cache

一、主存和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中。

  

原文地址:https://www.cnblogs.com/juanzhi/p/12726940.html