第三节存储系统4.ppt
文本预览下载声明
Cache存储器——基本原理;Cache存储器——基本原理;Cache存储器——基本原理;Cache存储器——基本原理;Cache存储器——基本原理;Cache存储器——基本原理; CPU执行一段程序时,cache完成存取的次数为1900次,主存完成存取的次 数为100次,已知cache存取周期为50ns,主存存取周期为250ns,求cache/主存系统的效率和平均访问时间。
【解】
h=Nc/(Nc+Nm)=1900/(1900+100)=0.95
r=tm/tc=250ns/50ns=5
e=1/(r+(1-r)h)=1/(5+(1-5)×0.95)=83.3%
ta=tc/e=50ns/0.833=60ns;Cache存储器——地址映射;Cache存储器——地址映射;全相联映射方式
主存中一个块的地址与块的内容一起存于cache的行中,其中块地址存于cache行的标记部分中。
这种方法可使主存的一个块直接拷贝到cache中的任意一行上,非常灵活。
它的主要缺点是比较器电路难于设计和实现,因此只适合于小容量cache采用。;Cache存储器——地址映射;直接映射方式
这也是一种多对一的映射关系,但一个主存块只能拷贝到cache的一个特定行位置上去。
cache的行号i和主存的块号j有如下函数关系:i=j mod m (m为cache中的总行数)
直接映射方式的优点是硬件简单,成本低。
缺点是每个主存块只有一个固定的行位置可存放,容易产生冲突。因此适合大容量cache采用。;Cache存储器——地址映射;组相联映射方式
这种方式是前两种方式的折衷方案。它将cache分成u组,每组v行,主存块存放到哪个组是固定的,至于存到该组哪一行是灵活的,即有如下函数关系:
m=u×v 组号 q=j mod u
组相联映射方式中的每组行数v一般取值较小,这种规模的v路比较器容易设计和实现。而块在组中的排放又有一定的灵活性,冲突减少。;Cache存储器——地址映射;Cache存储器——替换策略;最不经常使用(LFU)算法
LFU算法将一段时间内被访问次数最少的那行数据换出。每行设置一个计数器。从0开始计数,每访问一次,被访行的计数器增1。当需要替换时,将计数值最小的行换出,同时将这些行的计数器都清零。
这种算法将计数周期限定在对这些特定行两次替换之间的间隔时间内,不能严格反映近期访问情况。
近期最少使用(LRU)算法
LRU算法将近期内长久未被访问过的行换出。每行也设置一个计数器,cache每命中一次,命中行计数器清零,其它各行计数器增1。当需要替换时,将计数值最大的行换出。
这种算法保护了刚拷贝到cache中的新数据行,有较高的命中率。
随机替换
随机替换策略从特定的行位置中随机地选取一行换出。在硬件上容易实现,且速度也比前两种策略快。
缺点是降低了命中率和cache工作效率。 ;Cache存储器——写操作策略;写回法:
当CPU写CACHE命中时,只修改CACHE的内容,而不立即写入主存。只有当此行被换出时才写回主存。
如果CPU写CACHE未命中,未包含欲写字的主存块在CACHE分配一行,将此块整个拷贝到CACHE后对其进行修改。
实现这种方法时,每个cache行必须配置一个修改位,以反映此行是否被CPU修改过。
这种方法减少了访问主存的次数,但是存在不一致性的隐患。 ;全写法:
当写CACHE命中时,CACHE与主存同时发生写修改,因而较好地维护了CACHE和主存内容的一致性。
当写CACHE未命中时,只能直接向主存进行写入。
缺点是降低了cache的功效。;写一次法:
基于写回法并结合全写法的写策略,
写命中与写未命中的处理方法与写回法基本相同,只是第一次写命中时同时要写入主存。;奔腾PC机的cache
奔腾PC机采用两级cache结构。安装在主板上的2级cache(L2)采用2路组相联映射方式,集成在CPU内的1级cache(L1)也采用2路组相联映射方式,L1又是L2的子集,从而使L1未命中处理时间大大缩短。CPU中的L1分设成各8KB的指令cache和数据cache,有利于CPU高速执行程序。
L2级cache采用的是写回法,L1级数据cache采用的是写一次法。; 数据cache采用2路组相联结构,采用最近最少使用算法LRU替换算法。
L2级cache的内容是主存的子集,而L1级cache又是L2级cache的子集。L2负责整个系统的ca
显示全部