掌桥专利:专业的专利平台
掌桥专利
首页

一种缓存替换控制方法及装置

文献发布时间:2024-01-17 01:24:51


一种缓存替换控制方法及装置

技术领域

本申请涉及缓存技术领域,尤其涉及一种缓存替换控制方法及装置。

背景技术

缓存替换单元是CPU缓存更新发生冲突时,选择被替换的某一路组的控制逻辑。在CPU实际运行过程中,缓存的替换单元可能需要运行在不同模式。在缓存运行过程中,也有可能出现由宇宙射线、存储部件可靠性不稳定而导致的缓存暂时出错,即软错误(softerror)的情况,此时需要缓存替换单元所工作的模式能够正常处理缓存替换(RAScapability)。

因此,现有技术中存在因缓存替换单元无法根据当前缓存的情况来选择运行最合适的工作模式,导致的缓存替换结果可靠性低的技术问题。

发明内容

本申请提供了一种缓存替换控制方法及装置,能够提高缓存替换结果的可靠性。

第一方面,本申请实施例提供了一种缓存替换控制方法,该方法应用于缓存替换控制单元,该方法包括:

步骤S1,接收缓存替换请求,并获取寄存器信息;

步骤S2,基于缓存替换请求和寄存器信息运行若干个缓存替换模式,得到若干个替换结果;

步骤S3,若替换结果的数量大于预设数值,则根据预设的模式优先级对各替换结果进行覆盖,得到目标替换结果。

进一步的,上述基于缓存替换请求和寄存器信息运行若干个缓存替换模式,得到若干个替换结果,包括:

根据寄存器信息运行单路模式、静态直接映射模式或静态随机模式;

在运行单路模式时,根据寄存器信息得到单路替换结果;

在运行静态直接映射模式时,根据缓存替换请求的地址得到静态映射替换结果;

在运行静态随机模式时,根据伪随机发生器得到静态随机替换结果。

上述实施例中实现了由寄存器信息决定运行哪种缓存替换模式,得到对应的替换结果。

进一步的,上述基于缓存替换请求和寄存器信息运行若干个缓存替换模式,得到若干个替换结果,还包括:

获取缓存流水线中的当前请求,判断当前请求的类型是否为清空缓存请求;

若是,则运行动态直接映射模式,根据清空缓存请求的地址得到动态映射替换结果。

上述实施例实现了在处理器要求清空缓存时的替换结果的获取。

进一步的,上述基于缓存替换请求和寄存器信息运行若干个缓存替换模式,得到若干个替换结果,还包括:

判断缓存替换请求是否为路组损坏后的重发替换请求;

若是,则运行动态随机模式,根据内部随机数发生器得到动态随机替换结果。

上述实施例通过对缓存替换请求是否重发进行检测,并在判断为是重发替换请求后,运行对应的动态随机模式得到替换结果;实现了在发生缓存软错误时也能避免选中出错的某一路组作为替换结果,从而提高了缓存替换结果的可靠性。

进一步的,上述基于缓存替换请求和寄存器信息运行若干个缓存替换模式,得到若干个替换结果,还包括:

运行近似最近最少使用模式,获取每一路待替换路组的向量值;

根据向量值判断各待替换路组是否为空或是否带有临时标记;

将空的或带有临时标记的待替换路组作为最近最少使用替换结果。

上述实施例在近似最近最少使用模式中优先选用空的或带有临时标记的路组作为替换结果,降低了缓存替换频率和后续缓存读写的失效概率。

进一步的,该方法还包括:若同时存在空的待替换路组和带有临时标记的待替换路组,则根据各待替换路组的相对使用时间先后关系得到最近最少使用替换结果。

上述实施例通过计算各个待替换路组之间的相对使用时间先后关系,得到最近最少使用的待替换路组作为替换结果,进一步降低了缓存替换频率和后续缓存读写的失效概率。

进一步的,该方法还包括:

在获取向量值之前,获取每一路待替换路组的状态信息;

根据状态信息判断是否存在损坏的待替换路组;若是,则剔除损坏的待替换路组。

上述实施例在近似最近最少使用模式中,增加了对路组损坏的特殊状态的处理,避免了在该模式中选中损坏的路组导致后续替换请求的重发,进一步提升了缓存替换结果的可靠性。

进一步的,该方法还包括:

若各待替换路组均为损坏状态,则生成错误报告信息,并退出替换流程。

上述实施例在全路组均损坏时向用户报告错误,避免了对损坏路组的选择,提高了缓存替换的可靠性,同时能够及时提醒用户对缓存进行修正。

进一步的,预设的模式优先级从高到低依次为:单路模式、动态直接映射模式、动态随机模式、静态直接映射模式、静态随机模式和近似最近最少使用模式。

上述实施例实现了缓存替换单元在当前情况下产生的若干个替换结果中,最合适的替换结果的选择,提高了缓存替换结果的可靠性。

第二方面,本申请实施例提供了一种缓存替换控制装置,该装置应用于缓存替换控制单元,缓存替换控制单元分别与缓存流水线和访问记录存储单元连接,该装置包括:

接收模块,用于接收缓存替换请求,并获取寄存器信息;

替换结果获取模块,用于基于缓存替换请求和寄存器信息运行若干个缓存替换模式,得到若干个替换结果;

覆盖模块,用于在替换结果的数量大于预设数值时,根据预设的模式优先级对各替换结果进行覆盖,得到目标替换结果。

综上,与现有技术相比,本申请实施例提供的技术方案带来的有益效果至少包括:

本申请实施例提供的一种缓存替换控制方法,基于缓存替换请求和寄存器信息运行符合当前缓存情况的所有缓存替换模式,得到若干个替换结果;在替换结果的数量大于预设数值时根据预设的模式优先级对替换结果进行覆盖,从而选出当前能够运行的各缓存替换模式中,优先级最高的模式所对应的替换结果作为目标替换结果。上述方法先同拍运行多个缓存替换模式,再根据预设的模式优先级在得到的各个替换结果中选择,大大提高了缓存替换结果的可靠性。

附图说明

图1为本申请一个示例性实施例提供的一种缓存替换控制方法的流程图。

图2为本申请一个示例性实施例提供的缓存替换控制单元在缓存中的结构示意图。

图3为本申请一个示例性实施例提供的近似最近最少使用模式中动态偏置的流程图。

图4为本申请一个示例性实施例提供的二叉树算法的原理示意图。

图5为本申请又一个示例性实施例提供的一种缓存替换控制方法的流程图。

图6为本申请一个示例性实施例提供的一种缓存替换控制装置的结构图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参见图1和图2,本申请实施例提供了一种缓存替换控制方法,该方法应用于缓存替换控制单元,以执行主体是缓存替换控制单元为例进行说明,该方法具体包括以下步骤:

步骤S1,接收缓存替换请求,并获取寄存器信息。

步骤S2,基于缓存替换请求和寄存器信息运行若干个缓存替换模式,得到若干个替换结果。

步骤S3,若替换结果的数量大于预设数值,则根据预设的模式优先级对各替换结果进行覆盖,得到目标替换结果。

其中,预设数值为1,寄存器信息为控制寄存器的配置信息,即在寄存器存在配置使能的情况下,运行的若干种缓存替换模式中,必然有一种是通过看寄存器配置的值来确定运行的。

若仅运行了一种替换模式,得到了一种替换结果,则可省略步骤S3。

预设的模式优先级可以理解为多种缓存替换模式产生的替换结果的可靠性排序;高优先级的缓存模式产生的替换结果比低优先级缓存替换模式产生的替换结果的可靠性更高。

图2中,LRU Memory是存储缓存之间相对使用时间先后关系的部件,即访问记录存储单元,LRU Controller是对LRU Memory进行读写的控制单元,即本申请中的缓存替换控制单元。Cache Dispatch Pipeline是缓存流水线,LRU Controller分别与缓存流水线和LRU Memory连接,在缓存流水线未命中时,会向LRU controller发起缓存替换请求,获得目标替换结果。

LRU Controller有多个缓存替换模式,低优先级的缓存替换模式产生的替换结果会被高优先级的缓存替换模式产生的替换结果覆盖。

上述实施例提供的一种缓存替换控制方法,基于缓存替换请求和寄存器信息运行符合当前缓存情况的所有缓存替换模式,得到若干个替换结果;在替换结果的数量大于预设数值时根据预设的模式优先级对替换结果进行覆盖,从而选出当前能够运行的各缓存替换模式中,优先级最高的模式所对应的替换结果作为目标替换结果。上述方法先同拍运行多个缓存替换模式,再根据预设的模式优先级在得到的各个替换结果中选择,大大提高了缓存替换结果的可靠性。

在一些实施例中,上述基于缓存替换请求和寄存器信息运行若干个缓存替换模式,得到若干个替换结果,包括:

根据寄存器信息运行单路模式、静态直接映射模式或静态随机模式。

在运行单路模式时,根据寄存器信息得到单路替换结果。

在运行静态直接映射模式时,根据缓存替换请求的地址得到静态映射替换结果。

在运行静态随机模式时,根据伪随机发生器得到静态随机替换结果。

具体地,Single Member,即单路模式。只使能一路组,该模式由寄存器配置使能,被使能的固定某一路组也由寄存器配置指定。即根据其中配置的单路值返回选中的单路替换结果。

Static Direct Map,即静态直接映射模式。该模式也是由寄存器配置使能,根据当前收到的缓存替换请求的地址高位直接映射得到选择被替换的某一路组,即静态映射替换结果;例如512KB缓存大小,64B缓存行大小的8路组相联的缓存的index缓存索引地址范围是addr[15:6],则静态直接映射模式会以addr[18:16]的值选择被替换的某一路。

Static Random,即静态随机模式。该模式由寄存器配置使能,根据LRUController内部的伪随机发生器,随机选择一路作为被替换对象,即静态随机替换结果。

上述实施例中实现了由寄存器信息决定运行哪种缓存替换模式,得到对应的替换结果。

在一些实施例中,上述基于缓存替换请求和寄存器信息运行若干个缓存替换模式,得到若干个替换结果,还包括:

获取缓存流水线的当前请求,判断当前请求的类型是否为清空缓存请求。

若是,则运行动态直接映射模式,根据清空缓存请求的地址得到动态映射替换结果。

其中,Dynamic Direct Map,即动态直接映射模式。该模式发生在CPU需要进行全缓存清空操作时,由缓存流水线获得的CPU指令触发。

具体地,缓存替换控制单元可以通过缓存流水线的访存类型获得信息,其中会包括CPU当前的这笔请求是否是清空缓存的类型,若是,则根据清空缓存请求的地址得到动态映射替换结果,可以理解为根据Purge地址的Tag标签位直接映射选中的替换结果。

Purge功能是CPU通过单独信号告知缓存的,当Purge触发时,缓存会清空自身所有的缓存数据,Purge Controller是缓存的一部分,会将Purge类请求发送到缓存流水线上,其中会带有假的地址,这个假地址是Purge engine生成的,其中的index地址如果是[15:6],高位就是tag,那么Purge地址的[18:16]就可以映射到8路组,更高位没有实际的作用,[18:6]的缓存行地址就会映射到512KB的缓存大小,这样所有的缓存数据都会被访问并清空。

上述实施例实现了在处理器要求清空缓存时的替换结果的获取。

在一些实施例中,上述基于缓存替换请求和寄存器信息运行若干个缓存替换模式,得到若干个替换结果,还包括:

判断缓存替换请求是否为路组损坏后的重发替换请求。

若是,则运行动态随机模式,根据内部随机数发生器得到动态随机替换结果。

其中,Dynamic Random,即动态随机模式。该模式由directory(缓存目录)中的特殊状态和缓存流水线的重发操作共同决定。当缓存中其它的缓存替换模式选中的替换结果的缓存状态是特殊状态:line bad(即这一路存在不能纠正的错误,不能再使用)时,缓存流水线会重新发送这次缓存替换请求,重发时的LRU controller会工作在动态随机模式,即动态选择除了line bad状态以外的某一路作为被替换对象,即动态随机替换结果。

可以认为,有额外的信号表示当前的缓存替换请求是一个重发替换请求,LRUcontroller在收到缓存流水线的缓存替换请求时,可以看到这个信号。

在现有技术中,一般不会支持缓存某一路运行时发现line bad后禁用然后随机选另一路,因此在缓存发生软错误时,容易选中出错的某一路组作为替换结果。

上述实施例通过对缓存替换请求是否重发进行检测,并在判断为是重发替换请求后,运行对应的动态随机模式得到替换结果;实现了在发生缓存软错误时也能避免选中出错的某一路组作为替换结果,从而提高了缓存替换结果的可靠性。

请参见图3在一些实施例中,上述基于缓存替换请求和寄存器信息运行若干个缓存替换模式,得到若干个替换结果,还包括:

运行近似最近最少使用模式,获取每一路待替换路组的向量值。

根据向量值判断各待替换路组是否为空或是否带有临时标记。

将空的或带有临时标记的待替换路组作为最近最少使用替换结果。

其中,pLRU(pseudo least recently used),即近似最近最少使用模式。该模式中包括动态偏置(Dynamic Bias)策略:

line empty LRU Bias:即未被分配过的某一路会被视作替换结果,优先被选中。

line transient LRU Bias:即transient(临时)标记的某一路会被视作LRU,优先被选中。(该Bias由处理器核下发指令触发,一般由编译器预测决定,即软件执行期间可能对某些等间隔的同index缓存行进行读取,如每一次间隔为64KB的矩阵运算等,会被固定在同一路上进行替换,以减少其他路被当前操作占用后,缓存miss的概率)。

上述实施例在近似最近最少使用模式中优先选用空的或带有临时标记的路组作为替换结果,降低了缓存替换频率和后续缓存读写的失效(miss)概率。

在一些实施例中,该方法还包括:若同时存在空的待替换路组和带有临时标记的待替换路组,则根据各待替换路组的相对使用时间先后关系得到最近最少使用替换结果。

其中,请参见图2,以8路组相联为例:在LRU memory中会记录当前索引(index)地址的8路组(member A-H)的相对使用时间先后关系,共13bit;读取LRU memory中的相对使用时间先后关系进行解码,得到最近最少使用替换结果;并同步更新其中的相对使用时间先后关系。13bit的相互关系的解码如图4中的二叉树算法所示。

bit0=0代表A-D比E-H更近使用过,bit0=1代表E-H比A-D更近使用过。bit1-6会记录ABCD之间的相对最近最少使用记录,bit1=0时,A比B更近使用过;bit1=1时,B比A更近使用过。依此类推。bit7-12会记录EFGH之间的相对最近最少使用记录,bit7=0时,E比F更近使用过;bit7=1时,F比E更近使用过。依此类推。根据LRU memory中记录的值,可以选出8路组中最近最少使用的某一路组。如果存在bias,会去override(覆盖)旧的相互关系,比如bit1=0时,本来表明A路组比B路组更近使用过,B应该更优先被替换,但是如果此时A有transient bias或者empty,而B没有,那么此时会优先选中A。

上述实施例通过计算各个待替换路组之间的相对使用时间先后关系,得到最近最少使用的待替换路组作为替换结果,进一步降低了缓存替换频率和后续缓存读写的失效概率。

在一些实施例中,该方法还包括:

在获取向量值之前,获取每一路待替换路组的状态信息。

根据状态信息判断是否存在损坏的待替换路组。

若是,则剔除损坏的待替换路组。

具体地,近似最近最少使用模式中的动态偏置策略为:

a)line bad MRU Bias:即line bad状态的待替换路组在运行期间永远不会被选中。

b)line empty LRU Bias:即未被分配过的某一路会被视作替换结果,优先被选中。

c)line transient LRU Bias:即transient标记的某一路会被视作替换结果,优先被选中。

d)line empty和line transient同时存在时,以pLRU二叉树算法结果为准。

上述实施例在近似最近最少使用模式中,增加了对路组损坏的特殊状态的处理,避免了在该模式中选中损坏的路组导致后续替换请求的重发,进一步提升了缓存替换结果的可靠性。

在一些实施例中,该方法还包括:

若各待替换路组均为损坏状态,则生成错误报告信息,并退出替换流程。

具体地,如果各待替换路组都为line bad状态,LRU controller会报告错误。

上述实施例在全路组均损坏时向用户报告错误,避免了对损坏路组的选择,提高了缓存替换的可靠性,同时能够及时提醒用户对缓存进行修正。

在一些实施例中,预设的模式优先级从高到低依次为:单路模式、动态直接映射模式、动态随机模式、静态直接映射模式、静态随机模式和近似最近最少使用模式。

具体地,低优先级的模式产生的替换结果会被高优先级的模式产生的替换结果覆盖,从而得到当前情况下,缓存替换单元中所计算出来的最合适的替换结果。

进一步的,在预设的模式优先级的设置下,缓存替换单元的工作流程可以如图5所示。

首先根据寄存器信息判断是否为单路模式;若是,则根据寄存器配置的单路值返回选中的单路替换结果;否则判断当前处理器是否在请求清空缓存。

如果缓存流水线中的当前请求的类型是清空缓存请求,则采用动态直接映射模式,根据Purge地址的Tag位直接映射选中的动态映射结果;否则检测当前缓存流水线下发到缓存替换控制单元的缓存替换请求是否是之前遇到line bad情况后的重发。

如果是重发替换请求,则采用动态随机模式,根据内部随机数发生器进行选择,得到动态随机替换结果时去除line bad的路组;否则根据寄存器信息判断是否为静态直接映射模式。

若寄存器信息显示为静态直接映射模式,则根据当前的缓存替换请求的地址直接映射选中的静态映射替换结果;否则根据寄存器信息判断是否为静态随机模式。

若为静态随机模式,则根据伪随机发生器随机选择一个路组作为静态随机替换结果,否则执行近似最近最少使用模式,读取LRU Memory中存储的缓存之间相对使用时间先后关系,解码得到最近最少使用替换结果,并更新LRU Memory中的内容。

上述实施例实现了缓存替换单元在当前情况下产生的若干个替换结果中,最合适的替换结果的选择,提高了缓存替换结果的可靠性。

请参见图2和图6,本申请另一实施例提供了一种缓存替换控制装置,该装置应用于缓存替换控制单元,缓存替换控制单元分别与缓存流水线和访问记录存储单元连接,该装置包括:

接收模块101,用于接收缓存替换请求,并获取寄存器信息。

替换结果获取模块102,用于基于缓存替换请求和寄存器信息运行若干个缓存替换模式,得到若干个替换结果。

覆盖模块103,用于在替换结果的数量大于预设数值时,根据预设的模式优先级对各替换结果进行覆盖,得到目标替换结果。

上述实施例提供的一种缓存替换控制装置,基于缓存替换请求和寄存器信息运行符合当前缓存情况的所有缓存替换模式,得到若干个替换结果;在替换结果的数量大于预设数值时根据预设的模式优先级对替换结果进行覆盖,从而选出当前能够运行的各缓存替换模式中,优先级最高的模式所对应的替换结果作为目标替换结果。上述装置先同拍运行多个缓存替换模式,再根据预设的模式优先级在得到的各个替换结果中选择,大大提高了缓存替换结果的可靠性。

本实施例中提供的关于一种缓存替换控制装置的具体限定,可以参见上文中关于一种缓存替换控制方法的实施例,于此不再赘述。上述一种缓存替换控制装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。

上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

以一个具体的例子来说明本申请的一种缓存替换控制方法的实现过程:

缓存替换单元是CPU缓存更新发生冲突时,选择被替换的某一路组的控制逻辑。在CPU实际运行过程中,缓存的替换单元可能需要运行在不同模式。在缓存运行过程中,也有可能出现由宇宙射线、存储部件可靠性不稳定而导致的缓存暂时出错,即软错误(softerror)的情况,此时需要缓存替换单元能够正常处理缓存替换(RAS capability)。

本申请提出一种的缓存替换控制方法,在CPU正常工作时的可以支持多种不同的模式,且在发生缓存软错误时也能避免选中出错的某一路组作为使用对象。

参见图2。LRU Memory是存储缓存之间相对使用时间先后关系的部件,LRUController是对LRU Memory进行读写的控制单元,即本申请中的缓存替换控制单元。CacheDispatch Pipeline是缓存的执行流水线,在缓存miss时,会对向LRU controller发起请求,获得替换选择。

LRU Controller有以下工作模式,低优先级的模式产生的替换选择会被高优先级的模式产生的替换选择override,优先级从高到低为:

1.Single Member,即单路模式。只使能一路组,该模式由寄存器配置使能,被使能的固定某一路组也由控制寄存器配置指定。

2.Dynamic Direct Map,即动态直接映射模式。该模式发生在CPU需要进行全缓存清空操作时,由缓存流水线获得的CPU指令触发。

3.Dynamic Random,即动态随机模式。该模式由directory中的特殊状态和缓存流水线的重发操作共同决定。当缓存中其它模式选中的被替换路的缓存状态是特殊状态:line bad(即这一路存在不能纠正的错误,不能再使用)时,缓存流水线会重新发送这次请求,重发时的LRU controller会工作在动态随机模式,动态选择除了line bad状态以外的某一路作为被替换对象。

4.Static Direct Map,即静态直接映射模式。该模式由寄存器配置使能,根据当前收到的缓存请求地址高位(例如512KB 64B cacheline 8路组相联的缓存的index范围是addr[15:6],则直接映射模式会以addr[18:16]的值选择被替换的某一路)。

5.Static Random,即静态随机模式。该模式由寄存器配置使能,根据LRUController内部的伪随机发生器,随机选择一路作为被替换对象。

6.pLRU(pseudo least recently used),即近似最近最少使用模式。该模式基本内容如下,以8路组相联为例:在LRU memory中会记录当前索引(index)地址的8路组(member A-H)的相对使用时间先后关系,共13bit。13bit的相互关系如图4所示。

动态随机模式是运行时发生了一些异常以后动态使能的,比如linebad时不能选择pLRU模式的对象,这个时候要随机选一个。静态随机模式只是寄存器配置使能的,可以理解为代替pLRU的一种模式,因此优先级也没有动态随机高。

图4中,bit0=0代表A-D比E-H更近使用过,bit0=1代表E-H比A-D更近使用过。bit1-6会记录ABCD之间的相对最近最少使用记录,bit1=0时,A比B更近使用过;bit1=1时,B比A更近使用过。依此类推。bit7-12会记录EFGH之间的相对最近最少使用记录,bit7=0时,E比F更近使用过;bit7=1时,F比E更近使用过。依此类推。根据LRU memory中记录的值,可以选出8路组中最近最少使用的某一路组。

除该基本内容外,pLRU模式还有额外的动态偏置(Dynamic Bias)策略:

a)line bad MRU Bias:即line bad状态下的某一路组会被视作为MRU,在运行期间永远不会被选中(如果8路组都为line bad状态,LRU controller会报告错误)。

b)line empty LRU Bias:即未被分配过的某一路会被视作LRU,优先被选中。

c)line transient LRU Bias:即transient标记的某一路会被视作LRU,优先被选中。(该Bias由Core下发指令触发,一般由编译器预测决定,即软件执行期间可能对某些等间隔的同index cacheline进行读取,如每一次间隔为64KB的矩阵运算等,会被固定在同一路上进行替换,以减少其他路被当前操作占用后,缓存miss的概率)。

d)line empty和line transient同时存在时,以pLRU二叉树算法结果为准。

命中的缓存行也会用MRU bias,尽量不替换,这些bias会体现在对旧pLRU向量的解析上,如果存在bias,会去override(覆盖)旧的相互关系,比如bit1=0时,本来表明A比B更近使用过,B应该更优先被替换,但是如果此时A有transient bias或者empty,而B没有,那么此时会选中A。如果此时B有linebad的标记,那么也不会选中B,而会去选A。

LRU Controller中的工作模式流程图可参见图5。其中,缓存替换控制单元可以通过缓存流水线的访存类型获得信息,其中会包括CPU当前的这笔请求是否是清空缓存的类型。

Purge功能是CPU通过单独信号告知缓存的,当Purge触发时,缓存会清空自身所有的缓存数据,Purge Controller是缓存的一部分,会将Purge类请求发送到缓存流水线上,其中会带有假的地址,这个假地址是Purge engine生成的,其中的index同样是[15:6],高位就是tag,那么Purge地址的[18:16]就可以映射到8路组,更高位没有实际的作用,[18:6]的cacheline地址就会映射到512KB的cache size,这样所有的cache memory都会被访问并清空。

综上,本申请可以支持CPU对缓存操作时,采用不同的静态和动态缓存替换策略;在最近最少使用算法的基础上,增加了对line bad的特殊状态处理,进一步提升了缓存替换的可靠性;增加了empty和transient bias,降低了缓存替换频率和后续缓存读写的失效(miss)概率。

本申请实施例提供了一种计算机设备,该计算机设备可以包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。处计算机程序被处理器执行时,使得处理器执行如上述任一实施例的一种缓存替换控制方法的步骤。

本实施例提供的计算机设备的工作过程、工作细节和技术效果,可以参见上文中关于一种缓存替换控制方法的实施例,于此不再赘述。

本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述任一实施例的一种缓存替换控制方法的步骤。其中,所述计算机可读存储介质是指存储数据的载体,可以但不限于包括软盘、光盘、硬盘、闪存、优盘和/或记忆棒(Memory Stick)等,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。本实施例提供的计算机可读存储介质的工作过程、工作细节和技术效果,可以参见上文中关于一种缓存替换控制方法的实施例,于此不再赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

技术分类

06120116194904