单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,4.6 高速缓冲存储器技术,Cache工作原理,Cache组织方式,写cache的策略与一致性,4.6 高速缓冲存储器技术Cache工作原理,1,1、存储器系统的层次,80X86 CPU采用了高速缓冲存储器(Cache Memory)技术,习惯上简称高速缓存,或称Cache。在80386系统中,Cache处于CPU外部的主机板上,在80486与Pentium系统中,除了主机板上有第2级Cache(L,2,)外,CPU内部还有第1级Cache(L,1,)。存储器系统的层次关系如图5-26所示,4.6.1 Cache工作原理,1、存储器系统的层次4.6.1 Cache工作原理,2,存储器系统的层次关系,存储器系统的层次关系,3,从微机系统来看,增加Cache的目的,就是要在性能上使主存的平均访问时间尽可能接近Cache的访问时间,即保证在大多数情况下,CPU访问Cache,而不是访问主存。,2、Cache命中率,从微机系统来看,增加Cache的目的,就是要在性能上使主,4,在某一程序执行期间,设,Nc,表示,CPU,访问,Cache,的总次数,,N,m,表示,CPU,访问主存的总次数,,h,为命中率,则,(,4-1,),在某一程序执行期间,设Nc表示CPU访问Cache的总次数,,5,假如t,c,表示访问Cache一次所花的时间,t,m,则为访问主存一次所经历的时间,1-h表示未命中率,则平均访问时间t,a,定义为:,t,a,=ht,c,+(1-h)t,m,(4-2),那么命中率h又可定义为:,(,4-3,),假如tc表示访问Cache一次所花的时间,tm则为访问主存一,6,Cache主存的平均访问时间t,a,越接近t,c,越好,当t,a,接近于t,c,,则表示访问效率高,用,e,表示访问效率,则,:,其中,r=t,m,/t,c,,表示访问主存慢于访问Cache的倍率。r的取值一般是5-10。,(44),Cache主存的平均访问时间ta越接近tc越好,当ta接近,7,例【4-1】设CPU执行一般程序时,访问Cache次数Nc=1500,访问主存次数Nm=90,又假设访问Cache存取周期为50ns,访问主存存取周期为300ns,试求h、r、ta以及e的值,ta=htc+(1-h)tm=0.94350ns+(1-0.943)300ns=64.25ns,解:,例【4-1】设CPU执行一般程序时,访问Cac,8,4.6.2 Cache组织方式,Cache的组织方式分为,全相联映射方式,直接映射方式,组相联映射方式,4.6.2 Cache组织方式Cache的组织方式分为,9,1全相联映射方式,任一主存块能映射到Cache中任意行(主存块的容量等于Cache行的容量)见图,1全相联映射方式 任一主存块能映射到Cache中任意,10,映射过程,存入Cache:块表标记中存放主存的块号,检索:访问主存地址的块号与所有Cache行标记比较(图2阴影区)符合,即数据在Cache中,形成访问Cache的地址(地址映射),访问Cache;不符合:访问主存,并将该块调入Cache。,优点:灵活,不易产生冲突;缺点:比较电路难于实现,且效率低,速度慢,映射过程 存入Cache:块表标记中存放主存的块号,11,cache结构与操作课件,12,例:设访问存储器地址的块号序列为22、26、22、26、16、4、16、18,采用全相联映射方式时,Cache行分配情况,例:设访问存储器地址的块号序列为22、26、22、26、16,13,某一主存块只能能映射到Cache的特定行,2直接映射方式,i=j mod m,其中:,i:Cache的行号;,j:主存的块号;m:Cache的总行数,某一主存块只能能映射到Cache的特定行 2直接映射方式,14,直接映射方式,直接映射方式,15,映射过程,存入Cache:快表标记中存放主存地址的区号(将块地址分为二部分:块(行)地址,标记(区号),检索:根据访问主存地址的中间字段(行号),找到Cache快表中的这一行,读取该行中的标记字段与主存地址高位字段(区号)比较(图5阴影区),符合:即数据在Cache中,形成访问Cache的地址(地址映射),访问Cache;,不符合:访问主存,并将该块调入Cache,优点:硬件简单,成本低;,缺点:容易产生冲突,易,颠簸,,,不能有效利用Cache空间,映射过程 存入Cache:快表标记中存放主存地址的区号(,16,cache结构与操作课件,17,cache结构与操作课件,18,组相联映射方式:是全相联映射方式和直接相联映射方式的结合,结合两者的优点 方法:把Cache分为若干组,每组含有若干行。组间直接映射,组内全相联映射。,3组相联映射方式,组相联映射方式:是全相联映射方式和直接相联映射方式的结合,,19,映射过程,存入Cache:快表标记中存放主存地址的区号及块号(将块地址分为三部分:块(行)地址 组号 标记(区号),检索:根据访问主存地址的第二字段(组号),找到Cache中的相应组,读取该组中的每一行标记字段与主存地址高位字段(区号)及块号比较,符合:即数据在Cache中,形成访问Cache的地址(地址映射),访问Cache;,不符合:访问主存,并将该块调入Cache。,优点:结合上面两种的优点。因为组内行数较少,比较器容易实现;组内又有灵活性,冲突大大减少。,映射过程 存入Cache:快表标记中存放主存地址的区号及块,20,cache结构与操作课件,21,例1:设Cache有8个行,分成2个组,设访问存储器地址的块号序列为22、26、22、26、16、4、16、18,采用组相联映射方式时,Cache行分配情况,例1:设Cache有8个行,分成2个组,设访问存储器地址的块,22,http:/ 现象。,当Cache写满时,有新的内容写入,就要替换老的内容,24,1最不经常使用(LFU)算法,2近期最少使用(LRU)算法,3随机替换,4.6.3 三种替换策略,1最不经常使用(LFU)算法2近期最少使用(LRU)算法,25,1 不经常使用(LFU)算法,方法:每行设置一个计数器:每访问一次加“1”;替换后清“0”。需替换时,比较各计数器值,将最小值的行换出。,特点:这种算法将计数周期限定在对这些特定行两次替换之间的时间间隔内,因而不能严格反映近期访问情况。,1 不经常使用(LFU)算法 方法:每行设置一个计数器:,26,2.近期最少使用(LRU)算法:,方法:每行设置一个计数器,每命中一次清“0”,其它计数器加“1”。需替换时,比较各计数器值,将最大值的行换出,特点:合理,符合程序访问的局部性理论。是目前使用较多的一种策略,能够有效的提高命中率,2.近期最少使用(LRU)算法:方法:每行设置一个计数,27,例:在全相联方式下,访问存储器地址序列为2、11、2、9、7、6、4、3时,采用LRU方式时,Cache内容变化情况,例:在全相联方式下,访问存储器地址序列为2、11、2、,28,3.随机替换:,硬件上容易实现并且速度快,虽然表面看起来是盲目替换,但实际表明,其性能稍逊于前两种,3.随机替换:硬件上容易实现并且速度快,虽然表面看起来是盲,29,4.6.4 写cache的策略与一致性,目的:维护Cache、主存数据的一致性。,主要方式:,3 写一次法:上述两种方法的结合,主要用于多个Cache数据不一致的维护,具体策略可参考体系结构的相关内容。,4.6.4 写cache的策略与一致性 目的:维护Cac,30,从CPU发出的写信号送,Cache的同时也写入主存。,CPU,Cache,主 存,1、通写法,从CPU发出的写信号送Cache的同时也写入主存。CPUCa,31,数据一般只写到,Cache,当Cache中的数据被再次更新时,将原更新的数据写入主存相应单元,并接受新的数据。,CPU,Cache,主 存,更新,写入,2、回写法,数据一般只写到Cache,当Cache中的数据被再次更新时,,32,3、写一次法,写一次法与回写法的写策略基本相同,写一次法只是在第一次写命中时要同时写入主存。这是因为CPU第一次写Cache命中时,CPU要在总线上启动一个存储器写周期,其他Cache监听到此主存块地址及写信号后,即把他们各自保存的主存块该保存到主存中就拷贝,该作废的就作无效处理,以便维护全部Cache与主存的一致性。然后CPU对Cache的写命中则按照回写法的策略对待,这可以节省CPU的总线周期,有利于超标量流水线的进程,有利于提高系统的运行速度,3、写一次法写一次法与回写法的写策略基本相同,写一次法只,33,第4章 存储器及其接口内容,半导体存储器分类:,1.随机存取存储器,RAM,(1)静态RAM,SRAM(HM6116,2K*8),(2)动态RAM,DRAM,需要刷新电路(2164,64K*1),2.只读存储器,ROM,(1)PROM,可编程ROM,一次性写入ROM,(2)EPROM,可擦除可编程ROM(INTEL2732A,4K*8),(3)EEPROM,电可擦除可编程ROM,第4章 存储器及其接口内容,34,半导体存储器的性能指标:,1.存储容量,2.存取速度(用两个时间参数表示:存取时间,存取周期),3.可靠性,4.性能/价格比,实现片选控制的三种方法:,1.全译码,2.部分译码(可能会产生地址重叠),3.线选法,地址重叠-多个地址指向同一存储单元,半导体存储器的性能指标:,35,存储器芯片同CPU连接时应注意的问题:,1.CPU总线的负载能力问题;,2.CPU的时序同存储器芯片的存取速度的配合问题;,16位微机系统中,内存储器芯片的奇偶分体:,1.1M字节分成两个512K字节(偶存储体,奇存储体),2.偶存储体同低8位数据总线(D7 D0)相连接,奇存储体同高8位数据总线(D15 D8)相连接,3.CPU的地址总线A19 A1同两个存储体中的地址线A18 A0相连接,CPU地址总线的最低位A0和BHE(低电平)用来选择存储体,4.要访问的16位字的低8位字节存放在偶存储体中,称为对准字,访存只需要一个总线周期;要访问的16位字的低8位字节存放在奇存储体中,称为未对准字,访存需要两个总线周期,存储器芯片同CPU连接时应注意的问题:,36,存储器的字位扩展(存储器组织),74LS138的综合应用:,1.存储器芯片的地址范围,2.地址线的连接(片内地址,片外地址),3.数据线的连接,4.控制线的连接(片选信号CE,写信号WE,输出信号OE等,以上信号都为低电平),存储器的字位扩展(存储器组织),37,