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

技术编号:23764131 阅读:15 留言:0更新日期:2020-04-11 18:56
本公开公开了一种基于使用热度的高速缓冲存储器替换方法及系统,包括:将Cache分为n个Cache块,n个Cache块和其对应的热度值组成热度对比组;根据接收的CPU数据读取请求,判断待读取的CPU数据是否存在于Cache中,若命中,查找命中的Cache块和其对应的热度值,根据预设热度增强因子增加热度值,其余未命中Cache块的热度值根据热度衰减因子进行衰减,在命中的Cache块中读取CPU数据;若未命中,查找热度值最小且小于或等于替换阈值的Cache块,将待读取的CPU数据替换到该Cache块中,其余未替换Cache块的热度值根据热度衰减因子进行衰减。统计Cache中代码的访问频率,并在访问热度降低后进行替换;通过热度增强因子、热度衰减因子参数,适用于不同的执行代码,保持较高的命中率。

A replacement method and system of cache based on using heat

【技术实现步骤摘要】
一种基于使用热度的高速缓冲存储器替换方法及系统
本公开涉及数据存储和读取
,特别是涉及一种基于使用热度的高速缓冲存储器替换方法及系统。
技术介绍
本部分的陈述仅仅是提供了与本公开相关的
技术介绍
信息,不必然构成在先技术。高速缓冲存储器(Cache)是位于CPU(中央处理器)和DRAM(动态随机存储器)或者flash(闪存存储器)之间的存储系统,一般Cache相较与DRAM或者flash来说容量较小,速度快。CPU的速度远高于内存,当CPU直接从内存中存取数据时要等待一定时间周期,而Cache则可以保存CPU刚用过或循环使用的一部分数据,如果CPU需要再次使用该部分数据时可从Cache中直接调用,这样就避免了重复存取数据,减少了CPU的等待时间,因而提高了系统的效率。但是由于Cache容量明显小于内存,所以Cache只能暂存很小一部分内存中的数据。正是由于Cache空间的稀缺性,如何存储CPU中最频繁访问的数据是提高Cache性能的关键,其中替换算法是提高Cache性能的重要算法。现存替换算法一般包括:FIFO(先进先出替换算法),Random(随机替换算法),LFU(最少使用替换算法),LRU(最近最少使用替换算法)等。但是,Cache命中率高的算法一般实现复杂,资源占用量大;而算法简单,资源占用少的算法就会存在命中率不高,或者严重依赖代码执行规律,灵活度低,不能根据代码灵活改变替换策略的问题。
技术实现思路
为了解决上述问题,本公开提出了一种基于使用热度的高速缓冲存储器替换方法及系统,利用计数器进行计数,统计Cache中代码的访问频率,并在访问热度降低后及时进行替换;通过配置热度增强因子、热度衰减因子参数,灵活的适用于不同的执行代码,提高Cache效率,并且算法实现简单,无需使用复杂的占用资源较多的链表,且能保持较高的命中率。为了实现上述目的,本公开采用如下技术方案:第一方面,本公开提供一种基于使用热度的高速缓冲存储器替换方法,包括:将高速缓冲存储器Cache分为n个Cache块,n个Cache块和其对应的热度值组成热度对比组;根据接收的CPU数据读取请求,判断待读取的CPU数据是否存在于Cache中,若命中,在热度对比组中查找命中的Cache块和其对应的热度值,根据预设热度增强因子增加热度值,其余未命中Cache块的热度值根据热度衰减因子进行衰减,在命中的Cache块中读取CPU数据;若未命中,在热度对比组中查找热度值最小且小于或等于替换阈值的Cache块,将待读取的CPU数据替换到该Cache块中,其余未替换Cache块的热度值根据热度衰减因子进行衰减。作为可能的一些实现方式,所述将待读取的CPU数据替换到该Cache块中,将替换后的Cache块的热度值置为初始热度值,其余未替换Cache块的热度值根据热度衰减因子进行衰减,若衰减后的热度值小于或等于0,则将该热度值置为0。作为可能的一些实现方式,查找热度值最小的Cache块,若该热度值大于替换阈值,则不进行替换,并且将所有Cache块根据热度衰减因子进行衰减,若衰减后的热度值小于或等于0,则将该热度值置为0。作为可能的一些实现方式,所述查找热度值最小且小于或等于替换阈值的Cache块时,若存在相同热度值的Cache块,任意选择其中一个作为待替换的Cache块。作为可能的一些实现方式,对命中的Cache块的热度值进行增强,若增强后的热度值大于热度峰值,则将该热度值置为热度峰值。作为可能的一些实现方式,所述对其余未命中Cache块的热度值根据热度衰减因子进行衰减,若衰减后的热度值小于或等于0,则将该热度值置为0。作为可能的一些实现方式,所述热度衰减因子和热度增强因子为固定值或随着热度值的变化而变化。第二方面,本公开提供一种基于使用热度的高速缓冲存储器替换系统,包括:分块模块,其用于将高速缓冲存储器Cache分为n个Cache块,n个Cache块和其对应的热度值组成热度对比组;数据读取模块,其用于根据接收的CPU数据读取请求,判断待读取的CPU数据是否存在于Cache中,若命中,在热度对比组中查找命中的Cache块和其对应的热度值,根据预设热度增强因子增加热度值,其余未命中Cache块的热度值根据热度衰减因子进行衰减,在命中的Cache块中读取CPU数据;替换模块,其用于若未命中,在热度对比组中查找热度值最小且小于或等于替换阈值的Cache块,将待读取的CPU数据替换到该Cache块中,其余未替换Cache块的热度值根据热度衰减因子进行衰减。第三方面,本公开提供一种电子设备,其特征是,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成一种基于使用热度的高速缓冲存储器替换方法所述的步骤。第四方面,本公开提供一种计算机可读存储介质,其特征是,用于存储计算机指令,所述计算机指令被处理器执行时,完成一种基于使用热度的高速缓冲存储器替换方法所述的步骤。与现有技术相比,本公开的有益效果为:本公开替换方法灵活,可动态配置、调整参数初始热度值S,热度衰减因子b,热度增强因子i,热度峰值M,替换阈值R等,以便适用于不同的代码使用热度规律和不同代码风格,通用性高,提高Cache命中率,达到稳定的较高命中率;本公开替换算法简单,容易实现,基于使用热度进行替换,符合CPU数据使用规律,并且资源占用量少,提高替换反应速度,能快速低成本的实现较高命中率的高速缓存替换算法;本公开替换算法通过计数值的增加和衰减统计数据使用热度,替换热度值小的数据,增强命中的数据块热度值,衰减未命中的数据块热度值。相较与单纯的计数值增加的方式,本公开引入使用热度、热度峰值、初始热度、替换阈值等概念,能更符合代码使用热度变化的规律,逐渐减少代码的使用对当前替换造成的影响,增加替换灵活度。附图说明构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。图1为实施例中Cache分块标记和热度计数示意图;图2为本公开方法流程示意图。具体实施方式:下面结合附图与实施例对本公开做进一步说明。应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属
的普通技术人员通常理解的相同含义。需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。一般来说,Cache命中率高的算法一般实现复杂,占用资源多;而算法简单,资源占用少的算法就会存本文档来自技高网
...

【技术保护点】
1.一种基于使用热度的高速缓冲存储器替换方法,其特征在于,包括:/n将高速缓冲存储器Cache分为n个Cache块,n个Cache块和其对应的热度值组成热度对比组;/n根据接收的CPU数据读取请求,判断待读取的CPU数据是否存在于Cache中,若命中,在热度对比组中查找命中的Cache块和其对应的热度值,根据预设热度增强因子增加热度值,其余未命中Cache块的热度值根据热度衰减因子进行衰减,在命中的Cache块中读取CPU数据;/n若未命中,在热度对比组中查找热度值最小且小于或等于替换阈值的Cache块,将待读取的CPU数据替换到该Cache块中,其余未替换Cache块的热度值根据热度衰减因子进行衰减。/n

【技术特征摘要】
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所述的一种基于使用热度的高速缓冲存储器替换方法,其特征在...

【专利技术属性】
技术研发人员:刘超张洪柳于秀龙
申请(专利权)人:山东方寸微电子科技有限公司青岛方寸微电子科技有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1