资源预览内容
第1页 / 共44页
第2页 / 共44页
第3页 / 共44页
第4页 / 共44页
第5页 / 共44页
第6页 / 共44页
第7页 / 共44页
第8页 / 共44页
第9页 / 共44页
第10页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1,第五章 高速缓冲存储器Cache,2,CPU、内存之间的存取速度 ? 如500MHz的P,一次指令执行时间为2ns,与其相配的内存(SDRAM)存取时间为10ns,比前者慢5倍,CPU和PC的性能怎么发挥出来?,3,如何减少CPU与内存之间的速度差异? 一种是在基本总线周期中插入等待 一种方法是采用存取时间较快的SRAM作存储器 第3种方法是Cache法。 还有一种方法,采用新型存储器。,4,高速缓冲存储器Cache是位于CPU和主存储器DRAM之间,规模较小,但速度很高的存储器,通常由SRAM组成。它根据程序的局部性原理,把正在执行的指令地址附近的一部分指令或者数据从主存调入这个存储器,供CPU在一段时间内使用,这对提高程序的运行速度有很大的影响。它的工作速度数倍于主存,全部功能由硬件实现,并且对程序员是透明的。 图5-1 在CPU与主存之间设置Cache,5,5.1高速缓冲存储器的工作原理 缓存的工作原理是怎样的?,6,cache更加有效,要求程序有高度的暂时性和局部性。 程序访问的局部性 :当执行的程序在对存储器寻址时,其地址总是在最近刚被访问过的存储单元的附近,这种现象被称之为程序访问的局部性。,7,图5-3 缓存一个循环子程序,8,命中率(Hit rate) CPU在任一时刻从Cache中可靠获取数据的几率。命中率越高,正确获取数据的可靠性就越大 。 一般规定Cache与内存的空间比为4:1000,即128kB Cache可映射32MB内存;256kB Cache可映射64MB内存。,9,5.2高速缓冲存储器的基本结构,图5-4 高速缓冲存储器结构框图,10,行组:内容是数据或程序。 每个行组由若干行组成 “行”中存放的是16字节或32字节的数据或程序。,图5-5 Cache单元块内部结构,11,在一个时间段内,Cache的某块中放着主存某块的全部信息,即Cache的某一块是主存某块的副本(或叫映像) 。,图5-6 Cache与主存块,12,5.2.1全相联Cache,图5-7 全相联Cache的组织与映射,13,图5-8 全相联地址转换,14,主要优点是,它能够在给定的时间内去存储主存器中的不同的块,命中率高。 缺点有两个: 由于需要记录主存块块地址的全部信息,因此标记位数增加了,使得Cache的电路规模变大,成本变高; 通常采用“按内容寻址的”方式设计相联存储器,比较器难于设计和实现。,15,例5-1某机主存容量为1M,Cache的容量为32KB, 每块的大小为16个字(或字节)。 画出主、缓存的地址格式、目录表格式及其容量。,16,5.2.2直接映像Cache,图5-9 直接映像Cache的组织与映射,17,图5-10 直接相联映象方式,18,图5-13 直接相连地址转换,19,优点:直接映像Cache优于全相联Cache,能进行快速查找,硬件简单、成本低; 缺点:不够灵活,主存的若干块只能对应惟一的Cache块,即使Cache中还有空位,也不能利用,当主存储器的组之间做频繁调用时,Cache控制器必须做多次转换。,20,例5-2上例中,主存容量为1M, Cache的容量为32KB,每块的大小为16个字(或字节)。画出主、缓存的地址格式、目录表格式及其容量。,容量:与缓冲块数量相同即2112048(或32K/162048),21,5.2.3组相联Cache 组相联的映象规则: (1) 主存和Cache按同样大小划分成块。 (2) 主存和Cache按同样大小划分成组。 (3) 主存容量是缓存容量的整数倍,将主存空间按缓冲区的大小分成区,主存中每一区的组数与缓存的组数相同。 (4) 当主存的数据调入缓存时,主存与缓存的组号应相等,也就是各区中的某一块只能存入缓存的同组号的空间内,但组内各块地址之间则可以任意存放, 即从主存的组到Cache的组之间采用直接映象方式;在两个对应的组内部采用全相联映象方式。,22,图5-14 组相联映象方式,23,图5-13 组相联映像的地址转换,24,组相联映像的性能及复杂性介于直接映像和全相联映像之间。 通常将每组K个块的Cache称为k路组相联(K-Way Set Associative Mapping) Cache。,25,5.3高速缓冲存储器的性能分析 1.Cache系统的加速比 其中:Tm为主存储器的访问周期,Tc为Cache的访问周期,T则为Cache存储系统的等效访问周期,H为命中率。,26,2.Cache的命中率 例如,将主存空间分成4 096块,块编号应是地址码的高12位,写成十六进制为000H0FFFH。按同样大小,将Cache分成16块,块编号为0H0FH。,27,2.Cache的命中率,表5-1 主存块和Cache块映像关系的约定,注:X表示任一十六进制数码,28,图5-17 对主存地址的理解,29,设当前010号主存块在Cache中,即它和Cache的第0块建立起映像关系。现要对两个主存地址单元进行读操作,第一个地址的高3位(十六进制)为0l0H,第二个地址的高3位(十六进制)为020H。,30,将访问的数据在Cache中的次数与总的访问次数之比称为命中率。 影响Cache命中率的因素很多,如Cache的容量,块的大小,映象方式,替换策略以及程序执行中地址流的分布情况等等。,31,已知64KB的Cache可以缓冲4MB的主存,且命中率都在90%以上。以主频为100MHz的CPU、20ns的Cache、70ns的DRAM、命中率为90%,即100次访问存储器的操作有90次在Cache中,只有10次需要访问主存,则这100次访问存储器操作的平均存取周期是多少?,32,现把Cs定义成是Cache系统的访问时间与主存储器访问时间之和。计算公式如下 Cs=HTc+(1-H)Tm Tc: Cache周期时间。 Tm:主存储器周期时间 则本例中CPU访问主存的周期为: 有Cache时,Cs =200.9+700.1 =34ns ; 无Cache时,701=70ns。,33,5.4高速缓冲存储器的操作方式 5.4.1替换策略 替换策略的理论依据:程序在运行中,总是频繁地使用那些最近被使用过的指令和数据。 随机法(RAND法) 先进先出法(FIFO法) 最近最少使用法(LRU法) LRU(Least Recently Used,LRU)法是依据各块使用的情况,总是选择那个最近最少使用的块被替换。这种方法比较好地反映了程序局部性规律。,34,5.4.2 Cache与主存的一致性问题 (1)写回(Write Back)。,图5-18 写回Cache,35,(2)写贯穿(Writ Through)。,图5-19 写贯穿Cache,36,(3)记入式写Posted Write)。,图5-20 记入式写Cache,37,5.5 MESI一致性协议 5.5.1 MESI一致性协议 四种状态的定义是: 修改态M(Modified):修改状态,表示本Cache行已被修改过(脏行),内容已不同于主存并且为此Cache专有; 专有态E(Exclusive)):排它状态,表示本Cache的这一行与主存中的内容相同,但不存在于其他Cache中。 共享态S(Shared):共享状态,表示本Cache的这一行与主存中的内容相同,可能也出现在其他Cache中。 无效态I(Invalid):无效状态,表示本行的数据无效(空行),38,MESI Cache一致性模型提供了一种跟踪存储器数据变化的方法,这种方法保证了一个Cache行数据更新以后,能够和所有与它的地址有关联的存储单元保持数据的一致性。,39,5.5.2 MESI协议状态转换规则,图5-21 MESI协议状态转换规则,40,5.6 Pentium处理器的Cache技术,图5-22 存储器系统的层次关系,41,图5-23 Pentium处理器内的Cache结构示意图,42,43,随机法是随机地确定替换的存储块。设置一个随机数产生器,依据所产生的随机数,确定替换块。这种方法简单、易于实现,但命中率比较低。,44,先进先出(First In First Out,FIFO),是选择那个最先调入的那个块进行替换。最先调入并被多次命中的块,很可能被优先替换,因而不符合局部性规律。先进先出方法易于实现。,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号