cachecache是什么牌子羽绒服好吗(cachecache是什么牌子怎么加盟)

Cache 的功能

高速缓冲存储器,是一个相对于主存来说容量很小、速度特🌜快、用静态存储器器件实现的存储器系统🔜。它的作用在于缓解主存速度慢、跟不上CPU读写速度要求的矛盾。它是把CPU最近最可能用到的少量信息(数据或指令)从主存复制到cache中,当CPU下次再用这些信息时,它就不必访问慢速的主存,而直接从快速的cache中得到,从而提高了得到这些信息的速度,使CPU有更高的运行效率。

Cache 的工作原理

Cache的工作原理是基于程序访问的局部性。对大量典型程序运行情况的分析结果表明,在一个较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内。指令地址的分布本来就是连续的,再加上循环程序段和子程序段要重复执行多次。因此,对这些地址的访问就自然地具有时🔯间上集中分布的倾向。此外。对数组的存储和访问以及工作单元的选择都可以使存储器地址相对集中。这种对局部范围的存储器地址频繁访问,而对此范围以外的地址则访问甚少的现象,就称为程序访问的局部性。

根据程序的局部性原理,可以在主存和CPU之间设置一个速度更高但容量较小的存储器,把正在执行的指令地址附近的一部分指令ܫ或数据从主存调入这个存储器,供CPU在一段时🍰间内使用,这对提高程序的运行速度有很大的作用。

因此,高🌳速缓存的成功和失败就取决于将哪些内容放到Cache中。根据局部性原理,在访问存储器的某个字后,并将该字和它的相邻单元从低速的大容量存储器系统中读到高速缓存中。这样,下次访问它时,可以访问得快一些。如果,在一个短的时间片内,需要对这个块中的字访问k次,CPU就只要访问低速存储器一次,另外k-1次就可以访问快速的高速缓存,访问次数越多,总体性能就越好。

Cache 的结构

硬盘的组成

Cache 的结构,如图6.13所示。主存由2n个单元构成,地址码的位数为n,主存分成若干个块,每块有2b个字节。同样Cache分成若干块,每块内又包含若干个字,它们的块大小相同(即块内的字数相同)。由于💎Cache的块数c远小于主存的块数m,因此,一个缓存块不能惟一地、永久地只对应一个主存块,故每个缓存块需设一个标记用来表示当前存放的是哪一个主存块,该标记的内容相当于主存块的编号。CPU读信息时,要将主存地址的高m位 (或m位中的一部分)与缓存൲块的标记进行比较,以判断所读的信息是否已在缓存中。

Cache的容量与块长是影响Cache效率的重要因素,ℱ通常用“命中率”来衡量Cache的效率。命中率是指CPU要访问的信息已在Cache内的比率🔥。一般而言,Cache容量越大,其CPU的命中率就越高。当然也没必要太大,太大会增加成本,而且当Cache容量达到一定值时,命中率已不因容量的增大而有明显的提高。因此,Cache容量是总成本价与命中率的折中值。如80386的主存最大容量为4GB,与其配套的Cache容量为16KB或32KB,其命中率可达95%以上。

图6.13 Cache/主存存储空间的基本结构

Cache 的工作流程

高速缓存的工作流程如图6.14所示,由工作流程图可知,当CPU送出主存地址(大)后,经过地址映像变换机构的比较后,得到比较结果是否命中,如果命中,就将此大地址变换成Cache地址(小)后送到Cache🐠,以选中所需要的字,并将该字传送到CPU数据总线;如果不命中,即去主存将所需的字读出后送到数据总线,同时,将此字的所在块(若干个字)读出,在送到Cache前,还要判断,如果Cache中可以装入就直接写入,如不能装入就调用替换策略。

图6.14 Cache的工作流程

csche的三种地址映像方式

为了把信息放到Cache中,必须应用某种函数或规👍则把主存地址映象到Cache,这种地址的逻辑对应关系称作地址映象。当信息按这种映象关系装入Cache后,执行程序时,应将主存地址变换成Cache地址,这个变换过程叫作地址变换,地址映象和地址变换是密切相🔜关的。Cache的地址映象方式主要有全相联映象、直接映象和组相联映象三种。

1.全相联映像

如图6.15所示,这种主存与cache的地址映像关系比较𝄹简单,它允许主存中的一个字块映像到cache存储器的任何一个字块位置上,也允许从确实已被占满的cache存储器中﷽替换出任何一个字块。

图6.15全相联映像

图6.16为地址变换过程示意,可以将主存地址分成两段,主存块号和块内地址,将cach🔯🍌e的地址分成cache块号和块内地址,两者的块内地址即字地址且相同。

图6.16 全相联映像的地址变换

全相联映像的优点是块冲突率低,只有当Cache中全部装满后,才有可能出现块冲突。缺点是访问速度慢(相对于读出一个单元内容的其他方法),这是因为要与所有标记全部比较一遍,才能确定是否命中;另外实现比较复杂,ജ成本比较高。因此,全相联映像一般用于较小的Cache 。

2.直接映像

这种地址映像如图6.17所示,图(a)中,它以Cache的容量为单位,将主存分为若干个区;图(b)中的点虚线、双点划虚线和实线清楚地看出,主൩存每个区中的块只能装入与Caꦍche对应的块,即直接映象。

图6.17 直接映像

一般情况下,Cache存储空间被分为n个块,块号为j,主存空间被分为m个区,主存块号分别为i,区号分别为k。显然,主存第0区的第0块、1 块、... n+1块只能映象到Cache的第0块、1 块、... n+1块。同样,主存第1区的第n块、n+1 块、...2 n-1块,只能映象到Cache的第0块、1 块、... n+1块。♌因此,直接映象函数定义为:

j = i mod 2c (其中2c为cache的块数,即n=2c,“mod”为求模取余)

此外,还可以根据主存块号求出主存区:k = [iꦅ / 2c],其中k是主存的区号,i是主存的块号,2c为cache的块数,即n,“[ ]”为取整。

图6.18为直接映像的地址变换过程示意,假设将主存地址分成3段,区号、区内块号和块内地址,将cache的地址分成cache块🉐号和块内地址。因为直接映像,所以区内块号与cache块号两者一定相同,因此,区号是鉴别不同块的唯一标志。图中虚线框内为按地址访问的高速存储器,它属于cache控制器,存放着装入主存信息后的主存区号等标志,也称块表。当主存地址到达后,以区内块号作为地址,读出块表内的区号标志,并与当前的区号比较,如果相同,为命中,即将当前cache块号与块内地址一起送到cache,对cache进行字访问。如果不命中,就要访问主存。

图6.18 直接映像的地址变换

直接映像是🍨简单的地址映像,地址变换速度较快,且遇到冲突替换时,只要将所在的块替换出来,不需要替换算法,但🌱它的命中率略低,但硬件实现更容易。

3.组相联映像

如果将图6.19中的cache再分成若干个组,主存的区也分成相同的组,就成为组相联映像,由图(a)中的虚线、双点划虚线可清楚地看出,主存中每个区中的组都直接映像到cache中的相应组,由图(b)所示,组内的每一块可以全相联映象到Cache中相应组内的任何一个任何块,即组间直接映像,组ꦗꦐ内全相联映像。即主存数据块所在的组只能直接映像到cache的相应的组中,该组号确定后,数据块本身就可以全相联映像到cache该组的任意一块。

图6.19 组相联映像

由于组相联映像判断块命中和替换算法上都比全相联映像简单,所以实现起来容易得ꦍ多,访问冲突的概率比直接映像𓃲来得低,命中率接近于全相联映像,所以组相联映像被很多机器广泛采用。

好了,这篇文章的内容发货联盟就和大家分享到这里,如果大家网络推广引流创业感兴趣,可以添加微信:80709525  备注:发货联盟引流学习; 我拉你进直播课程学习群,每周135晚上都是有实战干货的推广引流技术课程免费分享!


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。꧟本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站ℱ将立刻删除。

您可能还会喜欢:

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。