- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
D5.6高速缓存
* * 5.6 高速缓冲存储器系统 高速缓冲存储器(Cache,简称高速缓存)是最接近CPU的存储器,其数据存取速度与CPU的速度相当,它位于CPU与内存之间,作为CPU与内存间交换信息的一个缓冲区。80386CPU的高速缓存器在芯片外部(即在微机主板上);80486CPU在片内集成了一个8K的高速缓存器(L1),存放程序及数据,并可在芯片外部接一个二级高速缓存器(L2),形成两级Cache结构(L1 、L2);Pentuim CPU则在片内集成了二个8K的高速缓存器(L1),一个作程序缓存,一个作数据缓存,同时还有片外的二级高速缓存器(L2)。 显然,片内Cache(L1)比片外Cache(L2)更快。片外的高速缓存器都是安放在微机主板上的,所以它比片内的高速缓存器容量大得多,目前可以达到512K以上。高速缓存负责将CPU运行所需要的指令和数据提前从内存取到缓存,供CPU随时调用,且数据存取速度与CPU的速度相当。CPU只有在访问一级缓存、二级缓存都没有获得所需的指令和数据时,才会去访问内存。由于采用了高速缓存技术,有效地减少了高速的CPU直接访问低速的内存的次数,从而提高了微机的整机性能。 5.6.1 高速缓存器的工作原理 Cache的研制是基于所谓局部性原理:对大量的典型程序的运行情况分析结果表明,在一个较短的时间内,由程序产生的地址往往集中在存储器逻辑地址空间的一个很小范围内。在多数情况下,指令是顺序执行的,因此指令地址的分布就是连续的,再加上循环程序段和子程序段要重复执行多次,因此对这些地址的访问就自然具有时间上集中分布的倾向。虽然,数据的这种集中倾向不如指令明显,但对数组的存储和访问以及工作单元的选择,都可以使存储器地址相对集中。这种在某个时间段内对局部范围的存储器地址频繁访问,而对此范围以外的地址则访问甚少的现象,称为程序访问的局部性。根据程序访问的局部性原理,在主存和CPU之间设置Cache,把正在执行的指令地址附近的一部分指令或数据从主存装入Cache中,供CPU在一段时间内使用,是完全可行的,效果也是非常显著的。 5.6.2 高速缓存器的基本结构 高速缓冲存储器Cache由小容量的静态随机存储器SRAM和高速缓存控制器组成,通过高速缓存控制器来协调CPU、Cache、内存之间的信息传输。 注意,CPU不仅与Cache连接,也与内存保持通路。Cache存储系统的基本结构如图5.27所示。它的功能是把CPU使用最频繁的(或将要用到的)指令和数据提前由DRAM复制到SRAM中,而由SRAM向CPU直接提供它所需要的大多数的数据,使CPU存取数据实现零等待状态。 高速缓存是按单元块的形式组织信息的,单元块也称为行组,行组的内容就是数据或程序。每个行组由若干行组成(所以称为行组),每行的结构如图5.28所示,其中:“行”中存放的是16字节的数据或程序,“标记”中存放的是“行”中所存数据或程序所对应的物理地址的高21位,“V”为有效位,1代表有效,0代表无效。 1.命中与不命中 CPU访问存储器时,先要计算出物理地址,并把物理地址的高21位(位31~位11)与高速缓存中各个“标记”字段的内容进行比较,比较结果就有可能出现两种情况: ①若有一个“标记”中的内容与物理地址一致,则表明CPU所需数据在Cache中,称为一次命中(Hit),有效位V=1,则CPU对Cache进行读写操作。命中时,由于Cache速度与CPU速度相当,CPU从Cache中读写数据就不需要插入等待周期Tw,实现了CPU的零等待,也就是CPU与Cache达到了同步,因此有时也称高速缓存为同步Cache。 ②若没有任何“标记”中的内容与物理地址一致,则表明CPU所需数据不在Cache中,称为一次不命中(Miss),有效位V=0,则CPU对内存进行读写操作。不命中时,由于内存速度低于CPU的速度,CPU从内存中读写数据就必须插入等待周期Tw。在具有两级Cache结构的系统中,CPU首先在第一级Cache(片内的Cache)中查找数据,如果找不到,则在第二级Cache(主机板上的Cache)中查找,若数据在第二级Cache中,Cache控制器在传输数据给CPU的同时,修改第一级Cache;如果数据既不在第一级Cache也不在第二级Cache中,Cache控制器则从内存中获取数据,同时将数据提供给CPU并修改两级Cache。 目前微机的Cache存储器均为两级结构,最大容量可达2MB以上,这些大容量的Cache存储器,使CPU访问Cache的命中率高达90%~98%,大大提高了CPU访问数据的速度,
文档评论(0)