您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > cache的相关技术解析
1Cache相关知识报告人:Hardy2存储器的层次结构CPU和主存的速度差距越来越大,使用高速缓存成为解决速度差异的办法,越靠近CPU的存储设备速度越快,容量越小,价格越高。3Cache的位置和作用在现代CPU设计中,设计师们要解决的最主要问题,就是找到一个在CPU和内存之间平衡的均点。Cache作为CPU---内存的中转站,在其中发挥了巨大的作用。CPU在请求数据或指令时,除了常规的在内存中进行查找外,还会在Cache中进行查找。一旦命中,就可以直接从Cache中读取,节约大量时间。正因为如此,Cache在现代CPU中显得越来越重要4Cache的实现原理时间局限性:是指CPU在某一时刻使用到的数据或指令,在下一时刻也会被重复利用。如果在第一次访问中Cache存储了相关指令、数据,那么在下一次需要重复访问时,就能够直接从Cache中读取相关内容。空间局限性:指的是CPU在读取某一地址的数据时,也有可能会用到该地址附近的数据。也就是说,CPU需要的数据在很多时候是连续的。例如在听歌或看电影时,数据流总是连续的(正常播放状态下)。这样的应用对于CPU来说是很有利的,数据预读取单元也能够发挥最大作用。正是基于以上原理,cache就用来存放这些常用的数据或指令。5Cache的工作原理Cache是要和主存相互联系的,但是主存的容量明显大于cache。那么当主存的内容通过cache传递给CPU,主存的内容应该放在cache的哪个位置上呢?两者之间的映射规则有三种:直接映射全相联组相联6直接映射直接映射:每个主存地址仅仅对应到cache中的一个块中。特点:空间利用率最低,冲突概率最高,实现最简单。映射规则:对于主存的第i块,若它映象到Cache的第j块,则:j=imod(M)(M为Cache的块数)7直接映射的地址映射方式主存地址:32位的主存地址由三部分组成。地址标记:用来表示主存字块标志。Cache索引:表示cache中块的地址。字块内地址:用来确定cache块中字节的位置。Cache地址:有效位:表示对应块的数据是否有效。地址标记:用来和主存的地址高位比较的。数据位:cache中存放的数据。8访问cache当主存地址中的索引域找到了对应的cache块,然后比较两者的地址标记是否相同,如果相同并且有效位为高。把主存中块内地址对应的字节取出送给CPU,该过程叫做命中cache。9全相联主存中的任一块可以被放置到Cache中的任意一个位置。特点:空间利用率最高,冲突概率最低,实现最复杂。10全相联cache访问此时的主存地址只有地址标记位和块内字节地址。没有了之前的cache块的索引域。当访问cache时主存需要将地址标记位和cache的全部标记位比较才能判断是否命中。这种比较通常采用“按内容寻址”(CAM)的相联存储器完成。11组相联将cache块分成n组,每组中有m块。主存地址:索引域表示了组号。地址标记的位数改变。12组相联访问主存地址标记和组地址位数之和等于直接映射中的地址标记和索引域之和。但是组地址的大小是一共n组对2取模的结果。13关联度n路组相联:每组中有n个块,则n称为关联度。关联度越高,Cache空间的利用率就越高,块冲突概率就越低,失效率也就越低。但是有个限度:在关联度超过4时,缺失率的改进效果就很小了,但是关联度越大硬件复杂度就加大。付出更多的代价缺少率改进很小。所以全相联一般适用于块数较小的cache中。组相联的关联度一般n≤414三种映射的关联度全相联直接映象组相联n(路数)G(组数)MM111<n<M1<G<M15Cache缺失处理当CPU在cache中没有命中,处理器就要阻塞住,知道cache从主存中读回数据后重新访问cache。Cache缺失处理步骤(假定是顺序执行处理器):1.把程序计数器的原始值(当前PC-4)送到存储器中。2.通知主存执行一次读操作,并等待主存访问完成。3.写cache项,将主存中取回的数据写入cache中存放数据的部分,并将地址的高位写入标记域,设置有效位。4.重新返回指令执行第一步,重新取指,这次数据在cache中,命中cache。16替换算法当cache缺失后,主存中数据要写人cache中,但此时cache已满,需要执行替换任务.常用的替换算法:随机法:随机替换cache内容。FIFO:先进先出,替换最早写入cache的内容。LRU:最近最少使用法,总是替换很长时间没有被使用的cache块。17替换算法比较LRU算法是最常用的替换算法18Cache的写操作对于任何存储层次来说,一个关键问题是如何处理写操作?常用的两种方法:写直达法:信息被同时写入cache块中和主存中。写回法:信息只写到cache中。被改写的cache块只有被替换时才写回主存。19两种写策略的比较◆写回法的优点:速度快,所使用的存储器频带较低;◆写直达法的优点:易于实现,一致性好。20写直达法当cache写命中时,地址标记位匹配,将数据同时写入cache与主存中。这种策略显然较好地维护了cache与主存的内容一致性。每次都要访问主存,花费大量时间。解决办法是加入写缓存:当数据等在写入主存时,先放在写缓冲队列中。当写缓冲满时,再写就要等待了。21当cache写未命中时,地址标记不匹配。只有直接向主存写入了,但此时是否主存块的内容取到cache,写直达法却有两种选择。一种是取来并且为它在cache中分配一个行位置,称为写分配法(Write--Allocate)。另一种是不取称写不分配法(NO-Write--Allocate)。前一种方法保持了cache/主存的一致性,但操作复杂,而后一种方法操作简化,但命中率降低,内存的修改块只有在读未命中对cache进行替换时,才有可能映射到cache。22写回法执行“写”操作时,只写入Cache。仅当Cache中相应的块被替换时,才写回主存。设置“修改位”,当某行被换出时,根据此行修改位为1还是为0,决定是将该行内容写回主存还是简单地弃之而不顾。对于cache写未命中,写回法的处理是为包含欲写字的主存块在cache分配一行,将此块整个拷贝到Cache后对其进行修改23两种方法的优缺点写直达法是写cache与写主存同步进行,其优点是cache每行无需设置一个修改位以及相应的判测逻辑。写直达法的缺点是,cache对CPU向主存的写操作无高速缓冲功能,降低了cache的功效。写回法可显著减少写主存次数,但写回法也带来了cache/主存严重的不一致性24Cache举例容量:8KB块大小:32B块数:256映象方法:直接映象“写”策略:写直达,采用不按写分配写缓冲器大小:4个块25混合cache和分离cache混合cache具有较高的命中率,因为它没有将指令用的条目数与数据用的条目数严格区分开来。分离cache:由数据cache和指令cache组成,可以使cache带宽加倍,缺失率比混合cache低一点,但是高带宽减少了流水线的阻塞。2616KB容量1KB2KB4KB8KB32KB指令Cache3.06%失效率的比较64KB128KB数据Cache混合Cache2.26%1.78%1.10%0.64%0.39%0.15%0.02%24.61%20.57%15.94%10.19%6.47%4.82%3.77%2.88%13.34%9.78%7.24%4.57%2.87%1.99%1.36%0.95%272829Cache的性能评估衡量标准:存储系统对程序执行时间的影响。CPU时间=(CPU执行周期数+存储器停顿周期数)×时钟周期时间其中:存储器停顿周期数=访存次数×失效率×失效开销(没有考虑命中)平均访存时间=命中时间+失效率×失效开销(AMAT):AMAT作为检测cache设计的性能,综合考虑了命中,缺失,访问频率。30改进cache性能的方法由AMAT公式可知,主要解决一下三个问题:(1)降低失效率(2)减少失效开销(3)减少Cache命中时间31虚拟存储器虚拟存储器:一种将主存用作辅存的高速缓存的技术。主存中存放了众多程序中活跃的那部分,就像cache中存放一个程序的活跃部分一样。32虚拟存储器的基本概念物理地址:主存的地址。虚拟地址:虚拟空间的地址地址转换:地址映射,将虚拟地址映射为物理地址的过程。页:主存中的块。(对应cache中的块)页表:保存虚拟地址和物理地址之间转换关系的表,放在主存中。缺页:访问的页不在主存中。33页的查找由于辅存与主存的速度差别极大,一旦缺页发生,代价高的惊人。所以使用全相联存放页,降低缺页率。页表用来定位页。存放在主存的某个区域,页表寄存器存放了页表的首地址。3435加快地址转换:TLB页表存放在主存中,程序每次至少需要访存两次,一次获得物理地址,一次根据地址获得数据。访问效率太低。现代处理器中包含一个特殊的cache,存放最近使用频率高的地址变换。这个特殊的cache就是TLB(快表)。36TLB37TLB的标记项存放虚拟页号的一部分,数据项放着物理页号,在命中情况下,物理页码形成物理地址,引用位有效。在写命中时,重写位有效。有效位有效,表示页在主存中。TLB缺失:在TLB中未能命中,有两种可能。一个是该页在主存中,则仅仅是TLP缺失。此时,将页表的项变换装载到TLB中重新访问。如果是该项不在主存中,就是真正的缺页处理了。处理器调用操作系统的异常处理。38写操作Cache和主存时间上相差上百个周期,写直达法还可以使用,但是需要写缓冲区来隐藏写延迟。在虚拟存储器中,对磁盘的写操作要数百万个处理器时钟周期。因此,写直达法不适用。在虚拟存储器系统中必须使用写回机制。39带TLB的读写处理过程40存储系统层次下的缺失一次访存中可能出现的:TLB缺失,缺页,cache缺失TLB页表cache可能发生么?若发生,在什么情况下?命中命中缺失可能,TLB命中了,页表就不会检查了缺失命中命中可能,TLB缺失,但是在页表中找到地址后,在cache中得到数据缺失命中缺失可能,TLB缺失,但是在页表中找到地址后,在cache没有得到数据缺失缺失缺失真正的缺页。命中缺失缺失不可能,TLB命中说明在主存里。命中缺失命中不可能,TLB命中,页表里一定有该页地址缺失缺失命中不可能,数据不在主存,更不会在cache中41存储层次中cache概念的运用一级cache:主存的cache。二级cache:cache的cache。主存:磁盘的cache。TLB:页表的cache。42ThankYou!
本文标题:cache的相关技术解析
链接地址:https://www.777doc.com/doc-4671682 .html