高速缓冲存储器的容量一般只有主存储器的几百分之一,但它的存取速度能与中央处理器相匹配。
根据程序局部性原理,正在使用的主存储器某一单元邻近的那些单元将被用到的可能性很大。因而,当中央处理器存取主存储器某一单元时,计算机硬件就自动地将包括该单元在内的那一组单元内容调入高速缓冲存储器,中央处理器即将存取的主存储器单元很可能就在刚刚调入到高速缓冲存储器的那一组单元内。
所以中央处理器就可以直接对高速缓冲存储器进行存取。在整个处理过程中,如果中央处理器绝大多数存取主存储器的操作能为存取高速缓冲存储器所代替,计算机系统处理速度就能显著提高。
扩展资料:
提高高速缓冲存储器读取命中率的算法:
1、随机法:随机替换算法就是用随机数发生器产生一个要替换的块号,将该块替换出去,此算法简单、易于实现,而且它不考虑Cache块过去、现在及将来的使用情况,但是没有利用上层存储器使用的“历史信息”、没有根据访存的局部性原理。
2、先进先出法:先进先出算法就是将最先进入Cache的信息块替换出去。FIFO算法按调入Cache的先后决定淘汰的顺序,选择最早调入Cache的字块进行替换,它不需要记录各字块的使用情况,比较容易实现,系统开销小。
3、近期最少使用法:近期最少使用(Least Recently Used,LRU)算法。这种方法是将近期最少使用的Cache中的信息块替换出去。该算法较先进先出算法要好一些。但此法也不能保证过去不常用将来也不常用。
参考资料来源:百度百科-高速缓冲存储器
高速缓冲存储器(Cache)实际上是为了把由DRAM组成的大容量内存储器都看做是高速存储器而设置的小容量局部存储器,一般由高速SRAM构成。这种局部存储器是面向CPU的,引入它是为减小或消除CPU与内存之间的速度差异对系统性能带来的影响。Cache 通常保存着一份内存储器中部分内容的副本(拷贝),该内容副本是最近曾被CPU使用过的数据和程序代码。
任何程序或数据要为CPU所使用,必须先放到主存储器(内存)中,即CPU只与主存交换数据,所以主存的速度在很大程度上决定了系统的运行速度。程序在运行期间,在一个较短的时间间隔内,由程序产生的地址往往集中在存储器的一个很小范围的地址空间内。指令地址本来就是连续分布的,再加上循环程序段和子程序段要多次重复执行,因此对这些地址中的内容的访问就自然的具有时间集中分布的倾向。数据分布的集中倾向不如程序这么明显,但对数组的存储和访问以及工作单元的选择可以使存储器地址相对地集中。这种对局部范围的存储器地址频繁访问,而对此范围外的地址访问甚少的现象被称为程序访问的局部化(Locality of Reference)性质。由此性质可知,在这个局部范围内被访问的信息集合随时间的变化是很缓慢的,如果把在一段时间内一定地址范围被频繁访问的信息集合成批地从主存中读到一个能高速存取的小容量存储器中存放起来,供程序在这段时间内随时采用而减少或不再去访问速度较慢的主存,就可以加快程序的运行速度。这个介于CPU和主存之间的高速小容量存储器就称之为高速缓冲存储器,简称Cache。不难看出,程序访问的局部化性质是Cache得以实现的原理基础。同理,构造磁盘高速缓冲存储器(简称磁盘Cache),也将提高系统的整体运行速度。目前CPU一般设有一级缓存(L1 Cache)和二级缓存(L2 Cache)。一级缓存是由CPU制造商直接做在CPU内部的,其速度极快,但容量较小,一般只有十几K。PⅡ以前的PC一般都是将二级缓存做在主板上,并且可以人为升级,其容量从256KB到1MB不等,而PⅡ CPU则采用了全新的封装方式,把CPU内核与二级缓存一起封装在一只金属盒内,并且不可以升级。二级缓存一般比一级缓存大一个数量级以上,另外,在目前的CPU中,已经出现了带有三级缓存的情况。Cache的基本操作有读和写,其衡量指标为命中率,即在有Cache高速缓冲存储器:
上面介绍的基本都是常说的内存的方方面面,下面我们来认识一下高速缓冲存储器,即Cache。我们知道,任何程序或数据要为CPU所使用,必须先放到主存储器(内存)中,即CPU只与主存交换数据,所以主存的速度在很大程度上决定了系统的运行速度。程序在运行期间,在一个较短的时间间隔内,由程序产生的地址往往集中在存储器的一个很小范围的地址空间内。指令地址本来就是连续分布的,再加上循环程序段和子程序段要多次重复执行,因此对这些地址中的内容的访问就自然的具有时间集中分布的倾向。数据分布的集中倾向不如程序这么明显,但对数组的存储和访问以及工作单元的选择可以使存储器地址相对地集中。这种对局部范围的存储器地址频繁访问,而对此范围外的地址访问甚少的现象被称为程序访问的局部化(Locality of Reference)性质。由此性质可知,在这个局部范围内被访问的信息集合随时间的变化是很缓慢的,如果把在一段时间内一定地址范围被频繁访问的信息集合成批地从主的系统中,CPU访问数据时,在Cache中能直接找到的概率,它是Cache的一个重要指标,与Cache的大小、替换算法、程序特性等因素有关。增加Cache后,CPU访问主存的速度是可以预算的,64KB的Cache可以缓冲4MB的主存,且命中率都在90%以上。以主频为100MHz的CPU(时钟周期约为10ns)、20ns的Cache、70ns的RAM、命中率为90%计算,CPU访问主存的周期为:有Cache时,20×0.9+70×0.1=34ns;无Cache时,70×1=70ns。由此可见,加了Cache后,CPU访问主存的速度大大提高了,但有一点需注意,加Cache只是加快了CPU访问主存的速度,而CPU访问主存只是计算机整个操作的一部分,所以增加Cache对系统整体速度只能提高10~20%左右。