您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 高速缓冲存储器-共110页PPT资料
7.1cache基本原理7.2主存与cache的地址映射7.3替换策略7.4cache的性能评价7.5cache接入系统的体系结构7高速缓冲存储器(cache)一、概述1.问题的提出避免CPU“空等”现象CPU和主存(DRAM)的速度差异缓存CPU主存容量小速度高容量大速度低7.1cache基本原理2.Cache的工作原理CPUCacheMMCPU发出访问主存的地址这个主存地址Cache也同时收到若目标数据在Cache中(命中)则Cache将先于主存把数据送往CPU若Cache没命中则主存迟早会把目标数据送往CPU事实上,CPU在执行程序时,访存地址是相对簇集的,即访存具有相对的局部性。这就叫做程序访问的局部性原理。7.1cache基本原理程序的局部性原理:时间局部性:在一小段时间内,最近被访问过的程序和数据很有可能被再次访问。空间局部性:这些程序和数据往往集中在一个小的存储区内。访问顺序:指令顺序执行的可能性比转移执行大(大概是5:1)所以人们提出:在CPU与主存储器之间增加一个容量小的高速存储器以满足CPU的访问要求。这个高速存储器(Cache),尽管容量小,但是由于程序访问局部性原理的作用,它只存放CPU最近要访问的少量信息,在一段时间内,基本上能满足CPU的访存需求。Cache采用速度较快的SRAM制成,尽管单位价格高,但是由于容量小,所以总体成本并不很高。很好地解决了存储系统成本与速度的矛盾。由于程序访问的局部性原理的作用,Cache的命中率通常都在90%以上。所以,增设Cache后,CPU的平均访存速度,明显提高,基本上接近Cache的速度。在CPU看来,它只付出了少许成本,就拥有了一个与主存储器容量相当,速度几乎等于Cache的高级“存储器”由于这个层次完全由硬件实现,不用系统辅助软件干预,所以对用户是透明的。2、高速缓冲存储器的组织与管理(1)基本概念将Cache划分成若干小的单位(块或页)称为Cache的组织。主存在使用Cache时,其间的对应关系叫做Cache的管理。由主存地址映象到Cache中的定位叫做地址映象。将主存地址变换成Cache地址叫做地址变换。□Cache的存储容量Cache容量和块的大小直接影响着Cache的效率,这个效率又常用“命中率”来衡量。命中率是指CPU所要访问的信息在Cache中所占的比例。相反,将所要访问的信息不在Cache中的比例称为失败率。Cache的容量要比主存的容量小得多,但不能太小。太小会使命中率太低,导致CPU到主存中去查找,影响CPU的有效工作时间。Cache的容量也不能过大,过大不仅会增加CPU调入Cache信息的时间,还会增加硬件的复杂程度和成本,而且当容量超过一定值时,命中率并不会随容量的增加而线性增长。数据总线Cache替换机构可装进?命中?主存Cache地址映象变换机构主存访问主存替换CacheCache存储体标记块内地址直接通路访问主存装入CacheNNYY块号块内地址CPU主存地址地址总线Cache地址3.Cache的基本结构Cache替换机构由CPU完成Cache存储体主存Cache地址映象变换机构(1)主存和缓存的编址主存和缓存按块存储块的大小相同B为每块字节数~~~~……主存块号主存储器012m-1字块0字块1字块M-1主存块号块内地址m位b位n位M块B个字节缓存块号块内地址c位b位C块B个字节~~~~……字块0字块1字块C-1012c-1标记Cache缓存块号主存的单元数2m主存分块M=2m/B主存的地址位数在cache中,每一块外加一个标记,指明它是主存的那一块的副本,该标记的内容相当于主存中块的编号。设主存有2n个单元,地址码为n位,将主存分块(Block),每块有B字节,则共分成M=2n/B块.Cache也由同样大小的块组成,由于容量小,所以块的数目小得多,主存中只有一小部分块的内容可放在Cache中.B=2b,M=2n/2b=2m,n=m+bCache地址=c+bCache的每一块都有一个标记(2)命中与未命中缓存共有C块主存共有M块MC主存块调入缓存主存块与缓存块建立了对应关系用标记记录与某缓存块建立了对应关系的主存块块号命中未命中主存块与缓存块未建立对应关系主存块未调入缓存(3)Cache的命中率CPU欲访问的信息在Cache中的比率命中率与Cache的容量与块长有关一般每块可取4至8个字块长取一个存取周期内从主存调出的信息长度4.Cache的读写操作流程访问Cache取出信息送CPU访问主存取出信息送CPU将新的主存块调入Cache中执行替换算法腾出空位结束命中?Cache满?CPU发出访问地址开始YNYN读CPU发出读命令时,将主存地址与cache某块的标记相比较在Cache系统中,主存总是以块为单位映像到Cache,即Cache中保存的块是主存对应块的副本。CPU访问Cache时,如果所需要的字节不在Cache中,则Cache控制器会把该字节所在的整个块从主存复制到Cache。Cache的组织方式□替换机构当CPU访问Cache失败后,应将从主存中取出的信息存放到Cache中。如果Cache中尚有空闲的块,则将新的内容写入;如果Cache中相应的块已装满,则需要进行替换。替换机构是按替换算法设计的,其作用是指出应该替换的块号。替换算法与Cache的命中率密切相关。替换机构由硬件组成。cache中的数据是主存中相应数据的一个副本,cache与主存的数据保持一致性有两种方式:①写回法:当CPU写cache命中时,只修改cache的内容,而不立即写入主存;只有当此行被换出时才写回主存。这种方法减少了访问主存的次数,但是存在不一致性的隐患。实现这种方法时,每个cache行必须配置一个修改位,以反映此行是否被CPU修改过。写Cache和主存的一致性★写直达法当写cache命中时,cache与主存同时发生写修改,因而较好地维护了cache与主存的内容的一致性。当写cache未命中时,直接向主存进行写入。cache中每行无需设置一个修改位以及相应的判断逻辑。缺点是降低了cache的功效。1、地址映像为了把信息放到cache中,必须应用某种函数把地址映像到cache中。地址变换:信息放入cache后,执行程序时,应将主存地址变换成cache地址,这个过程称为地址变换。□地址映象地址映象的任务,是完成把CPU送来的主存地址转换成Cache的地址。主存地址通常被分成标记(段号)、块号和块内地址三部分,而Cache地址则被分成块(页)号和块内地址两部分,其块的大小与主存相同,块号及块内地址与主存的块号及块内地址相对应。Cache标记也是一种存储机构(相联存储器)。Cache标记中的每个单元是以Cache地址中的块号为地址,该单元内则存放着该块所对应的主存块的段号。例如,块号为k,k单元的内容为L,即说明Cache的k块被主存中L段的k块所占用。CPU送来主存地址后,首先是用块号去访问Cache标记,如果取出的内容和标记(段号)相同,说明CPU要访问的内容已在Cache中,称为命中,其块号和块内地址就是访问Cache的地址,CPU则访问Cache;如果从Cache标记中取出的内容和标记不同,称为不命中(块失效),这时,CPU则用主存地址从主存中取出所需的信息。cache的容量很小,它保存的内容只是主存内容的一个子集,且cache与主存的数据交换是以块为单位。为了把信息放到cache中,必须应用某种函数把地址映像到cache中。地址映射方式有直接映射方式、全相联映射方式和组相联映射方式三种。1.直接映射方式这也是一种多对一的映射关系,但一个主存块只能拷贝到cache的一个特定行位置上去。cache的块号J和主存的块号I有如下函数关系:J=ImodC(2c)(C为cache中的总块数)7.2主存与cache的地址映射主存地址:主存字块标记-cache字块地址-字块内地址设主存储器空间被分为Mm(0),Mm(1),…,Mm(i),…,Mm(2m-1),共2m块,字块大小为2b个字;Cache存储空间被分为Mc(0),Mc(1),…,Mc(j),…,Mc(2c-1)共2c个同样大小的块.把主存的每一块映射到一个固定的Cache块中。j=imodm(=2c),其中j为Cache的字块号,i为主存的字块号,m为Cache的字块数。在这种映像方式中,主存的第0块,第2c块,第2c+1块,…,只能映像到Cache的第0块,而主存的第1块,第2c+1块,第2c+1+1块,…,只能映像到Cache的第1块等等.字块2m-1字块2c+1字块2c+1-1字块2c+1字块2c字块2c-1字块1字块0………主存储体字块1标记字块0标记字块2c-1标记Cache存储体t位01C-1…字块字块地址主存字块标记t位c位b位主存地址比较器(t位)=≠不命中有效位=1?*m位Cache内地址否是命中每个缓存块j可以和若干个主存块对应每个主存块i只能和一个缓存块对应或J=Imod2c字块2c+1字块2c字块0字块01.直接映射方式直接映像主存地址末b位是字块内地址(假定为字地址);中间c位是Cache字块地址;高(m-c)=t位就是主存字块标记,也就是记录在相应Cache块标记中的内容,当有效位为“1”时,它表明该数据块是主存哪一块数据的副本.Cache在接收到CPU送来的主存地址和读/写命令后,只需根据中间c位字段找到Cache存储器字块,然后看其标记是否与主存地址高t位符合,如果符合且有效位为“1”,则可根据b位块内地址,从Cache中取得所需指令或数据;如果不符合或有效位为“0”,就从主存读入新的字块来替换旧的字块,并将CPU所需数据送往CPU,同时修改Cache标记(有效位“0”改为“1”).直接映像地址变换设主存为64KB,分成512块,每块128B,Cache为4KB,分成32块,每块128B,则Cache的1块对应主存的16块,即主存的16块映象到Cache的1块上,也就是说Cache的某一块只能选择主存中的16块中的某一块内容存放。其块冲突率较高。如K为Cache的块号,I为主存的块号,则K=IMOD32即把主存每32块看成一段,共分为16段,Cache中的第K块映象主存所有段中的第K块。设主存有2n个单元,地址码为n位,将主存分块(Block),每块有B字节,则共分成M=2n/B块.Cache也由同样大小的块组成,由于容量小,所以块的数目小得多,主存中只有一小部分块的内容可放在Cache中.B=2b,M=2n/2b=2m,n=m+bCache地址=c+bCache的每一块都有一个标记直接映射方式直接映射方式的优点是硬件简单,成本低。缺点:是每个主存块只有一个固定的行位置可存放,容易产生冲突。因此适合大容量cache采用。例如:设有一个cache的容量为2K字,每个块为16字,求(1)该cache可容纳多少个块?(2)如果主存的容量是256K字,则有多少个块?(3)主存的字地址有多少位?Cache字地址有多少位?(4)在直接映象方式下,主存中的第i块映象到cache中哪一个块中?(5)进行地址映象时,存储器的地址分成哪几段?各段分别有多少位?解:(1)cache中有2048/16=128个块。(2)主存有256K/16=16384个块。(3)主存:字地址为18位,256K=218字。cache:字地址为11位,2K=211字。(4)主存中的第i块映象到cache中第(imod128)个块中。(5)存储器的字地址分成三段:主存字块标记、cache字块地址、块内字地址。主存字块标记的长度为18-11=7位,cache字块地址为7位。块内字地址为4位。2.全相联映射方式全相联映像方式的映像规则是主存的每一块都可以映像到cache中的任何一个字块上,允许从已被占满的cache中替换出任何一个字块。主存储器中的第0块可以映像到cache中的第0块、第1块,┅第2c–1块;主存储器中的第1块可以映像到cache中的第0块、第1块,┅第2c–
本文标题:高速缓冲存储器-共110页PPT资料
链接地址:https://www.777doc.com/doc-4431064 .html