
Cache是什么
Cache是一种特殊的存储器,它由Cache 存储部件和Cache控制部件组成。Cache 存储部件一般采用与CPU同类型的半导体存储器件,存取速度比内存快几倍甚至十几倍。而Cache 控制器部件包括主存地址寄存器、Cache 地址寄存器,主存—Cache地址变换部件及替换控制部件等。至于它们各自又是怎样工作的、有何作用等等,我想我们就没有必要做进一步的研究,知道一般Cache分为L1 Cache(其中又分为数据Cache、代码Cache)、L2 Cache就行了。
根据程序局部性规律可知:程序在运行中,总是频繁地使用那些最近被使用过的指令和数据。这就提供了替换策略的理论依据。综合命中率、实现的难易及速度的快慢各种因素,替换策略可有随机法、先进先出法、最近最少使用法等。
1随机法(RAND法)
随机法是随机地确定替换的存储块。设置一个随机数产生器,依据所产生的随机数,确定替换块。这种方法简单、易于实现,但命中率比较低。
2先进先出法(FIFO法)
先进先出法是选择那个最先调入的那个块进行替换。当最先调入并被多次命中的块,很可能被优先替换,因而不符合局部性规律。这种方法的命中率比随机法好些,但还不满足要求。先进先出方法易于实现,例如Solar-16/65机Cache采用组相联方式,每组4块,每块都设定一个两位的计数器,当某块被装入或被替换时该块的计数器清为0,而同组的其它各块的计数器均加1,当需要替换时就选择计数值最大的块被替换掉。
3最近最少使用法(LRU法)
LRU法是依据各块使用的情况, 总是选择那个最近最少使用的块被替换。这种方法比较好地反映了程序局部性规律。
实现LRU策略的方法有多种。 下面简单介绍计数器法、寄存器栈法及硬件逻辑比较对法的设计思路。
计数器方法:缓存的每一块都设置一个计数器,计数器的 *** 作规则是:
(1) 被调入或者被替换的块, 其计数器清“0”,而其它的计数器则加“1”。
(2) 当访问命中时,所有块的计数值与命中块的计数值要进行比较,如果计数值小于命中块的计数值,则该块的计数值加“1”;如果块的计数值大于命中块的计数值,则数值不变。最后将命中块的计数器清为0。
(3) 需要替换时,则选择计数值最大的块被替换。
存储器访问的局部性原理是指,在程序执行过程中,程序访问的数据和指令往往集中在某些特定的区域,而不是分散在整个存储器中。这种局部性包括时间局部性和空间局部性两种,时间局部性指的是程序在一段时间内多次访问同一块数据或指令的现象,而空间局部性则指的是程序在访问某个数据或指令时,往往会连续地访问其附近的数据或指令。利用局部性原理,可以采用缓存、预取等技术来提高存储器的访问效率和性能,从而提高计算机系统的整体性能。
进程运行时,在一段时间里,程序的执行往往呈现高度的局部性,包括时间局部性和空间局部性。时间局部性是一旦一个指令被执行了,则在不久的将来,它可能再被执行。空间局部性是一旦一个指令一个存储单元被访问,那么它附近的单元也将很快被访问。
程序的局部性原理是虚拟存储技术引入的前提。虚拟存储的实现原理是,当进程要求运行时,不是将它全部装入内存,而是将其一部分装入内存,另一部分暂时不装入内存。
扩展资料:
时间局部性
如果在某一点时访问了存储器的特定位置,则很可能在不久的将来将再次访问相同的位置。在对相同存储器位置的相邻访问之间存在时间接近性。
在这种情况下,通常努力将访问过的数据的副本存储在可以被更快访问的特殊存储器中。时间局部性是空间局部性的特殊情况,即当预期位置与当前位置相同时。
空间局部性
如果特定存储位置在特定时间被访问,则很可能在不久的将来访问附近的存储位置。在这种情况下,通常尝试猜测当前访问周围的区域的大小和形状,对于该区域,值得准备更快的访问。
局部性的原因
局部性有几个原因。这些原因是某些方面要实现的目标或接受的情况。以下原因不是不相交的;事实上,下面的列表从最一般的情况到特殊情况:
可预测性:事实上,局部性只是计算机系统中一种可预测的行为。
程序结构
局部性通常因为创建计算机程序的方式而发生,用于处理可决定的问题。通常,相关数据存储在存储器中的附近位置。计算中常见的一种模式涉及几个项目的处理,一次一个。这意味着如果进行大量处理,则将访问单个项目多次,从而导致时间局部性。
此外,移动到下一项意味着将读取下一项,导致空间局部性,因为存储器位置通常被批量地读取。
线性数据结构
局部性通常因为代码包含循环,倾向于通过索引访问数组或其他数据结构。当相关数据元素被线性地排列和访问时,发生顺序局部性,即空间局部性的特殊情况。例如,从基地址到最高元素的一维数组中的元素的简单遍历将利用存储器中数组的顺序局部性。
当线性遍历在具有相同结构和大小的相邻数据结构的较长区域上,访问每个结构的相互对应的元素而不是整个结构时,发生更一般的等距局部性。这是当矩阵被表示为行的顺序矩阵并且需要访问矩阵的单个列时的情况。
内存层次结构的效率
虽然随机存取存储器使程序员能够在任何时间在任何地方读取或写入,但在实践中,等待时间和吞吐量会受到高速缓存的效率的影响,这通过增加访问局部性来改进。访问局部性差导致缓存抖动和缓存污染,为了避免它,具有弱局部性的数据元素可以从缓存旁路。
参考资料:
1 大概率事件优先原则(哈夫曼压缩原理)
加快经常性事件的速度(make the common case fast)
2 阿姆达尔(Amdahl)定律
定义系统性能的加速比,确定对性能限制最大的部件,计算改进某些部件所获得的性能提高
3 程序的局部性原理
程序的顺序执行和程序的循环等原因,程序往往重复使用它刚刚使用过的数据和指令
时间局部性:程序即将用到的信息很可能就是目前正在使用的信息(近期被访问的程序,很可能不久又将再次被访问)
空间局部性:程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者临近(地址上相邻近的程序可能会被连续的访问)
1、虚拟存储管理概念
一个计算机任务只需要部分装入主存便可以启动运行,其余部分留在磁盘上,在需要的时候装入主存,这样可以提高主存空间的利用率。这样该系统所具有的主存容量会比实际主存容量大很多,这样的存储器称为虚拟存储器。
2、程序局部性原理
程序在执行时会呈现局部性规律,即在一段时间内,程序的执行仅局限于某个部分,相应所访问的空间也局限于某个区域内。程序的局限性表现在时间、空间两个方面。
21 时间局限性
指程序中的某个指令一旦执行,则在不久的将来可能会被再次执行;如果某个存储单元被访问,则不久后该存储单元可能会被再次访问。产生时间局限性的原因是程序中存在大量的循环处理。
22 空间局限性
指一旦程序访问了某个存储单元,在不久的将来,它附件的存储单元也有可能被访问。典型原因是程序是顺序执行的。
3、虚拟存储器的实现原理
虚拟存储器具有请求调入功能和置换功能,能仅把作业的一部分装入主存便运行作业系统,能从逻辑上对主存容量进行扩充的一种虚拟存储系统。其逻辑容量由主存和外存容量之和以及CPU可寻址的范围决定,运行速度接近主存速度。应用十分广泛。
31 虚拟存储器实现方式
1、请求分页系统
在分页系统的基础上增加了请求调页功能和页面装置功能所形成的页式虚拟存储系统。置换时以页面为单位。
2、请求分段系统
在分段系统的基础上增加了请求调段和分段置换功能所形成的段式虚拟存储系统。置换时以段为单位。
3、请求分页管理
请求分页是在纯分页系统的基础上增加了请求调页功能、页面置换功能所形成的页式虚拟存储系统。是目前最常用的一种虚拟存储器的方式。
请求分页的页表机制是在纯分页的页表机制上形成的,因为只将应用程序的一部分调入主存,还有一部分仍在磁盘上,因此需要在页表中增加(状态位、访问字段和辅存地址等)供程序(数据)在转进、转出时参考。
请求分页系统中的地址变换机构是在分页系统的地址变换结构的基础上增加了某些功能。比如处理缺页中断、从主存中转出一页实现虚拟存储。
在请求分页系统中,每当所要访问的页面不在主存时便要产生一个缺页中断,请求系统将所缺的页调入主存,这个是由中断机构完成的。
31 缺页中断和一般中断的区别
1、缺页中断是在指令执行期间产生和中断处理信号;一般中断是在一条指令执行完。下一条指令执行前检查和处理中断信号。
2、发生缺页中断返回到被中断指令的开始重新执行该指令;
以上就是关于什么是Cachecache有什么用说明cache的几种替换策略全部的内容,包括:什么是Cachecache有什么用说明cache的几种替换策略、存储器访问的局部性原理是指、空间局部性和时间局部性的策略是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)