首页 / 专利库 / 化学元素和化合物 / 电子 / 一种基于使用热度的高速缓冲存储器替换方法及系统

一种基于使用热度的高速缓冲存储器替换方法及系统

阅读:382发布:2023-01-27

专利汇可以提供一种基于使用热度的高速缓冲存储器替换方法及系统专利检索,专利查询,专利分析的服务。并且本公开公开了一种基于使用热度的高速缓冲 存储器 替换方法及系统,包括:将Cache分为n个Cache 块 ,n个Cache块和其对应的热度值组成热度对比组;根据接收的CPU数据读取 请求 ,判断待读取的CPU数据是否存在于Cache中,若命中,查找命中的Cache块和其对应的热度值,根据预设热度增强因子增加热度值,其余未命中Cache块的热度值根据热度衰减因子进行衰减,在命中的Cache块中读取CPU数据;若未命中,查找热度值最小且小于或等于替换 阈值 的Cache块,将待读取的CPU数据替换到该Cache块中,其余未替换Cache块的热度值根据热度衰减因子进行衰减。统计Cache中代码的 访问 频率 ,并在访问热度降低后进行替换;通 过热 度增强因子、热度衰减因子参数,适用于不同的执行代码,保持较高的命中率。,下面是一种基于使用热度的高速缓冲存储器替换方法及系统专利的具体信息内容。

1.一种基于使用热度的高速缓冲存储器替换方法,其特征在于,包括:
高速缓冲存储器Cache分为n个Cache,n个Cache块和其对应的热度值组成热度对比组;
根据接收的CPU数据读取请求,判断待读取的CPU数据是否存在于Cache中,若命中,在热度对比组中查找命中的Cache块和其对应的热度值,根据预设热度增强因子增加热度值,其余未命中Cache块的热度值根据热度衰减因子进行衰减,在命中的Cache块中读取CPU数据;
若未命中,在热度对比组中查找热度值最小且小于或等于替换阈值的Cache块,将待读取的CPU数据替换到该Cache块中,其余未替换Cache块的热度值根据热度衰减因子进行衰减。
2.如权利要求1所述的一种基于使用热度的高速缓冲存储器替换方法,其特征在于,所述将待读取的CPU数据替换到该Cache块中,将替换后的Cache块的热度值置为初始热度值,其余未替换Cache块的热度值根据热度衰减因子进行衰减,若衰减后的热度值小于或等于0,则将该热度值置为0。
3.如权利要求1所述的一种基于使用热度的高速缓冲存储器替换方法,其特征在于,查找热度值最小的Cache块,若该热度值大于替换阈值,则不进行替换,并且将所有Cache块根据热度衰减因子进行衰减,若衰减后的热度值小于或等于0,则将该热度值置为
0。
4.如权利要求1所述的一种基于使用热度的高速缓冲存储器替换方法,其特征在于,所述查找热度值最小且小于或等于替换阈值的Cache块时,若存在相同热度值的Cache块,任意选择其中一个作为待替换的Cache块。
5.如权利要求1所述的一种基于使用热度的高速缓冲存储器替换方法,其特征在于,对命中的Cache块的热度值进行增强,若增强后的热度值大于热度峰值,则将该热度值置为热度峰值。
6.如权利要求1所述的一种基于使用热度的高速缓冲存储器替换方法,其特征在于,所述对其余未命中Cache块的热度值根据热度衰减因子进行衰减,若衰减后的热度值小于或等于0,则将该热度值置为0。
7.如权利要求1所述的一种基于使用热度的高速缓冲存储器替换方法,其特征在于,所述热度衰减因子和热度增强因子为固定值或随着热度值的变化而变化。
8.一种基于使用热度的高速缓冲存储器替换系统,其特征在于,包括:
分块模块,其用于将高速缓冲存储器Cache分为n个Cache块,n个Cache块和其对应的热度值组成热度对比组;
数据读取模块,其用于根据接收的CPU数据读取请求,判断待读取的CPU数据是否存在于Cache中,若命中,在热度对比组中查找命中的Cache块和其对应的热度值,根据预设热度增强因子增加热度值,其余未命中Cache块的热度值根据热度衰减因子进行衰减,在命中的Cache块中读取CPU数据;
替换模块,其用于若未命中,在热度对比组中查找热度值最小且小于或等于替换阈值的Cache块,将待读取的CPU数据替换到该Cache块中,其余未替换Cache块的热度值根据热度衰减因子进行衰减。
9.一种电子设备,其特征是,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成权利要求1-7任一项方法所述的步骤。
10.一种计算机可读存储介质,其特征是,用于存储计算机指令,所述计算机指令被处理器执行时,完成权利要求1-7任一项方法所述的步骤。

说明书全文

一种基于使用热度的高速缓冲存储器替换方法及系统

技术领域

[0001] 本公开涉及数据存储和读取技术领域,特别是涉及一种基于使用热度的高速缓冲存储器替换方法及系统。

背景技术

[0002] 本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。
[0003] 高速缓冲存储器(Cache)是位于CPU(中央处理器)和DRAM(动态随机存储器)或者flash(闪存存储器)之间的存储系统,一般Cache相较与DRAM或者flash来说容量较小,速度快。CPU的速度远高于内存,当CPU直接从内存中存取数据时要等待一定时间周期,而Cache则可以保存CPU刚用过或循环使用的一部分数据,如果CPU需要再次使用该部分数据时可从Cache中直接调用,这样就避免了重复存取数据,减少了CPU的等待时间,因而提高了系统的效率。
[0004] 但是由于Cache容量明显小于内存,所以Cache只能暂存很小一部分内存中的数据。正是由于Cache空间的稀缺性,如何存储CPU中最频繁访问的数据是提高Cache性能的关键,其中替换算法是提高Cache性能的重要算法。
[0005] 现存替换算法一般包括:FIFO(先进先出替换算法),Random(随机替换算法),LFU(最少使用替换算法),LRU(最近最少使用替换算法)等。但是,Cache命中率高的算法一般实现复杂,资源占用量大;而算法简单,资源占用少的算法就会存在命中率不高,或者严重依赖代码执行规律,灵活度低,不能根据代码灵活改变替换策略的问题。发明内容
[0006] 为了解决上述问题,本公开提出了一种基于使用热度的高速缓冲存储器替换方法及系统,利用计数器进行计数,统计Cache中代码的访问频率,并在访问热度降低后及时进行替换;通过配置热度增强因子、热度衰减因子参数,灵活的适用于不同的执行代码,提高Cache效率,并且算法实现简单,无需使用复杂的占用资源较多的链表,且能保持较高的命中率。
[0007] 为了实现上述目的,本公开采用如下技术方案:
[0008] 第一方面,本公开提供一种基于使用热度的高速缓冲存储器替换方法,包括:
[0009] 将高速缓冲存储器Cache分为n个Cache,n个Cache块和其对应的热度值组成热度对比组;
[0010] 根据接收的CPU数据读取请求,判断待读取的CPU数据是否存在于Cache中,若命中,在热度对比组中查找命中的Cache块和其对应的热度值,根据预设热度增强因子增加热度值,其余未命中Cache块的热度值根据热度衰减因子进行衰减,在命中的Cache块中读取CPU数据;
[0011] 若未命中,在热度对比组中查找热度值最小且小于或等于替换阈值的Cache块,将待读取的CPU数据替换到该Cache块中,其余未替换Cache块的热度值根据热度衰减因子进行衰减。
[0012] 作为可能的一些实现方式,所述将待读取的CPU数据替换到该Cache块中,将替换后的Cache块的热度值置为初始热度值,其余未替换Cache块的热度值根据热度衰减因子进行衰减,若衰减后的热度值小于或等于0,则将该热度值置为0。
[0013] 作为可能的一些实现方式,查找热度值最小的Cache块,若该热度值大于替换阈值,则不进行替换,并且将所有Cache块根据热度衰减因子进行衰减,若衰减后的热度值小于或等于0,则将该热度值置为0。
[0014] 作为可能的一些实现方式,所述查找热度值最小且小于或等于替换阈值的Cache块时,若存在相同热度值的Cache块,任意选择其中一个作为待替换的Cache块。
[0015] 作为可能的一些实现方式,对命中的Cache块的热度值进行增强,若增强后的热度值大于热度峰值,则将该热度值置为热度峰值。
[0016] 作为可能的一些实现方式,所述对其余未命中Cache块的热度值根据热度衰减因子进行衰减,若衰减后的热度值小于或等于0,则将该热度值置为0。
[0017] 作为可能的一些实现方式,所述热度衰减因子和热度增强因子为固定值或随着热度值的变化而变化。
[0018] 第二方面,本公开提供一种基于使用热度的高速缓冲存储器替换系统,包括:
[0019] 分块模块,其用于将高速缓冲存储器Cache分为n个Cache块,n个Cache块和其对应的热度值组成热度对比组;
[0020] 数据读取模块,其用于根据接收的CPU数据读取请求,判断待读取的CPU数据是否存在于Cache中,若命中,在热度对比组中查找命中的Cache块和其对应的热度值,根据预设热度增强因子增加热度值,其余未命中Cache块的热度值根据热度衰减因子进行衰减,在命中的Cache块中读取CPU数据;
[0021] 替换模块,其用于若未命中,在热度对比组中查找热度值最小且小于或等于替换阈值的Cache块,将待读取的CPU数据替换到该Cache块中,其余未替换Cache块的热度值根据热度衰减因子进行衰减。
[0022] 第三方面,本公开提供一种电子设备,其特征是,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成一种基于使用热度的高速缓冲存储器替换方法所述的步骤。
[0023] 第四方面,本公开提供一种计算机可读存储介质,其特征是,用于存储计算机指令,所述计算机指令被处理器执行时,完成一种基于使用热度的高速缓冲存储器替换方法所述的步骤。
[0024] 与现有技术相比,本公开的有益效果为:
[0025] 本公开替换方法灵活,可动态配置、调整参数初始热度值S,热度衰减因子b,热度增强因子i,热度峰值M,替换阈值R等,以便适用于不同的代码使用热度规律和不同代码格,通用性高,提高Cache命中率,达到稳定的较高命中率;
[0026] 本公开替换算法简单,容易实现,基于使用热度进行替换,符合CPU数据使用规律,并且资源占用量少,提高替换反应速度,能快速低成本的实现较高命中率的高速缓存替换算法;
[0027] 本公开替换算法通过计数值的增加和衰减统计数据使用热度,替换热度值小的数据,增强命中的数据块热度值,衰减未命中的数据块热度值。相较与单纯的计数值增加的方式,本公开引入使用热度、热度峰值、初始热度、替换阈值等概念,能更符合代码使用热度变化的规律,逐渐减少代码的使用对当前替换造成的影响,增加替换灵活度。附图说明
[0028] 构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。
[0029] 图1为实施例中Cache分块标记和热度计数示意图;
[0030] 图2为本公开方法流程示意图。具体实施方式:
[0031] 下面结合附图与实施例对本公开做进一步说明。
[0032] 应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
[0033] 需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
[0034] 一般来说,Cache命中率高的算法一般实现复杂,占用资源多;而算法简单,资源占用少的算法就会存在命中率不高,或者严重依赖代码执行规律等问题。而本公开提出的方法仅利用计数器进行计数,统计Cache中的代码使用热度,对于热度低的数据及时进行替换。
[0035] 如果发生命中,则把命中Cache块的计数值加上一个热度增强因子,如果Cache中代码被频繁使用,则热度不断增强,其中的数据不会被替换;
[0036] 如果没有发生命中,则Cache块的计数值减去一个热度衰减因子,如果长时间不被使用,则热度逐渐降低,就会被替换;
[0037] 并且通过配置热度增强因子、热度衰减因子等多个参数,能灵活适应于不同的代码使用规律,达到稳定的较高Cache命中率。
[0038] 所以,本公开主要包括两个分支:命中和没有命中。如果发生命中,则增加命中块的热度值,衰减其余未命中块的热度值;如果没有发生命中,则替换该块的数据,热度值设置为固定初始值S,其余未替换块中的热度值则进行衰减;并且在未命中时,如果其余块热度值都较高,大于替换阈值R,则不进行替换,所有块热度进行衰减。
[0039] 实施例1
[0040] 本公开提供一种基于使用热度的高速缓冲存储器替换方法,包括:
[0041] S1:如图1所示,将高速缓冲存储器Cache分为n个Cache块,n个Cache块和其对应的热度值组成热度对比组;
[0042] 该对比组中,一共有n个块进行热度对比,对比块命名为B1~Bn,其对应的计数值是C1~Cn。
[0043] S2:定义参数值
[0044] a.初始热度值S:在发生数据替换后,该数据块Bx对应的Cx的初始计数值。
[0045] b.热度衰减因子b:在没有命中该块后,热度计数的递减值;该值即可以是固定值,也可以随着热度值的变化而变化。
[0046] c.热度增强因子i:在命中该块后,热度计数的增加值;该值即可以是固定值,也可以随着热度值的变化而变化。
[0047] d.热度峰值M:热度计数的顶峰值;引入热度峰值M既能减小计数器空间消耗,又能防止热度过热,在代码数据执行热度发生变化后,不能及时改变。
[0048] e.替换阈值R:在不命中后,如果存在数据块热度计数值小于该值,则进行替换;否则认为现存所有数据块热度较高,不进行替换;替换阈值R的加入能够避免偶尔产生的数据读取冲击之前热度很高的数据,影响后续命中率。
[0049] S3:通过热度计数值的增加和衰减统计数据使用热度,替换热度值小的数据,增强命中的数据块热度值,衰减未命中的数据块热度值,如图2所示,
[0050] (1)根据接收的CPU数据读取请求,判断待读取的CPU数据是否存在于Cache中,如果Cache中的数据没有命中,则执行(2),否则执行(5);
[0051] (2)在所有Cache热度对比组中,查找热度计数值最小Cy和其对应的块By,如果该计数值Cy大于替换阈值R,则执行(3);如果该计数值Cy小于等于替换阈值R,则执行(4);
[0052] (3)新数据不进行替换,所有块的热度进行衰减(Cx=Cx-d);如减去衰减因子后,Cx小于0,则把该值Cx置为0;如果减去衰减后大于0,则把热度值Cx置为衰减之后的数值,然后流程执行结束;
[0053] (4)新数据进行替换,替换的数据块热度值置为初始热度值S,其余未命中的数据块热度值进行衰减(Cx=Cx-d);如减去衰减因子d后,Cx小于0,则把该值Cx置为0;如果减去衰减d后大于0,则把热度值Cx置为衰减之后的数值,然后流程执行结束;
[0054] (5)查找命中的数据块Bk和其对应的热度值Ck,并对Ck进行热度增强(Ck=Ck+i);如加上增强因子i后,Ck大于热度峰值M,则把Ck置为M;如果加上增强因子i后小于等于M,则把热度值Ck置为增强之后的数值;
[0055] (6)其余未命中的数据块热度值进行衰减(Cx=Cx-d);如减去衰减因子d后,Cx小于0,则把该值Cx置为0;如果减去衰减d后大于0,则把热度值Cx置为该衰减之后的值,然后流程执行结束。
[0056] 其中,热度增强因子i即可以是固定值,也可以是变值,例如可以随着热度的增加,热度增强因子i逐渐变小,防止热度增强过快;
[0057] 热度衰减因子d即可以是固定值,也可以是变值,例如可以随着热度的衰减,热度衰减因子d逐渐变小,防止热度衰减过快。
[0058] 实施例2
[0059] 本公开提供一种基于使用热度的高速缓冲存储器替换系统,包括:
[0060] 分块模块,其用于将高速缓冲存储器Cache分为n个Cache块,n个Cache块和其对应的热度值组成热度对比组;
[0061] 数据读取模块,其用于根据接收的CPU数据读取请求,判断待读取的CPU数据是否存在于Cache中,若命中,在热度对比组中查找命中的Cache块和其对应的热度值,根据预设热度增强因子增加热度值,其余未命中Cache块的热度值根据热度衰减因子进行衰减,在命中的Cache块中读取CPU数据;
[0062] 替换模块,其用于若未命中,在热度对比组中查找热度值最小且小于或等于替换阈值的Cache块,将待读取的CPU数据替换到该Cache块中,其余未替换Cache块的热度值根据热度衰减因子进行衰减。
[0063] 实施例3
[0064] 本公开提供一种电子设备,其特征是,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成一种基于使用热度的高速缓冲存储器替换方法所述的步骤。
[0065] 实施例4
[0066] 本公开提供一种计算机可读存储介质,其特征是,用于存储计算机指令,所述计算机指令被处理器执行时,完成一种基于使用热度的高速缓冲存储器替换方法所述的步骤。
[0067] 以上仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
[0068] 上述虽然结合附图对本公开的具体实施方式进行了描述,但并非对本公开保护范围的限制,所属领域技术人员应该明白,在本公开的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本公开的保护范围以内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈