龙空技术网

计算机原理-cache替换算法及策略

自强不息非白即黑 68

前言:

此时各位老铁们对“cache替换算法是什么”大体比较着重,大家都需要分析一些“cache替换算法是什么”的相关知识。那么小编也在网摘上搜集了一些对于“cache替换算法是什么””的相关文章,希望朋友们能喜欢,我们快快来了解一下吧!

地址映射方式有

全相联:主存子块标记/子块内地址

直接映射:主存子块标记/cache字块地址/字内块地址

组相联:主存字块标记/组地址/字块内标记

标记项:有效位、标记位(主存字块标记)

高速缓存的容量比主存小很多就面临的一个问题,当高速缓存满了之后应该把哪¥1给踢掉。还有一个问题缓存,相当于主存中的一个副本。那么这个副本被修改或者这个模板被修改之后如何保持两者的一致,这是写策略的一个问题。这两个问题的解决依赖于地址的映射方式。第一种是全相连,贮存中的块可以放到高速缓存中的任意一个位置。是一种比较随意的策略。要知道来到主存中的哪一块直接把块号存过去就行。第二种方式是另一个极端,他非常的规整。贮存中的筷子能放到缓存中的一个确定位置。主存中的块号除以缓冲中的块号的余数,就是说要放的位置。这个商用来做标记位,结合这个商和余数就能把主存的位置给复现出来。

第三种用的折中的一个方法,把主存中的一个快放到缓存中的某一个小范围内。

具体的替换策略常用的有四种。

1 随机算法(RAND)随机的确定替换缓冲块,但没有根据程序访问的局部性原理,故命中率较低。

2.先进先出算法选择最早调入的行进行替换,他比较容易实现,但是也没有依据程序访问的局部性原理,可能会把某一些经常需要使用的程序快,如循环程序也作为最早进入缓存的快替换掉。

3.近期最少使用算法(LRU):依据程序访问的局部性原理,选择进行会长久未访问过的存储行作为替换的行,平均命中率比第一个要高,是堆栈类算法。LRU算法对每一行设置一个计算器。cache 每命中一次,命中行计数器清零。而其他行计数器均➕1,需要替换是比较各特定的计数值,将计数值字最大的行换出.

4.最不经常使用算法(LFU):将一段时间内被访问次数最少的存储行进行换出,每行也设置一个计数器。新行建立后从零开始计数,每访问一次被访问行计数器➕1,需要替换时比较各特定行的计数,只将计数值最小的行换出。

标签: #cache替换算法是什么 #cache替换算法是什么意思 #cache替换机构的作用