一种高速缓存控制方法及装置的制造方法

文档序号:9547123阅读:252来源:国知局
一种高速缓存控制方法及装置的制造方法
【技术领域】
[0001]本发明涉及存储技术领域,特别涉及一种高速缓存控制方法及装置。
【背景技术】
[0002]在计算机存储系统的层次结构中,高速缓冲存储器(cache,简称为高速缓存)是介于中央处理器和主存储器之间的高速小容量存储器。cache中缓存的是主存储器(内存)中的数据。高速缓存和主存储器之间信息的调度和传送是由硬件自动进行的。
[0003]某些设备的存储系统有二级三级缓存,每级缓存比前一级缓存速度慢且容量大。缓存还可能具有同一层级的缓存。cache中分组存储数据,这种cache结构称为组相连cache ο
[0004]组相连cache之间进行数据传递采用替换的方式进行,替换策略有基于时间信息的LRU (Least Recently Used,最近最少使用)、基于历史访问信息的LFU (LeastFrequently Used,最少频繁使用),以及结合时间信息和历史访问信息的LRU-Κ(使用最后第K次访问时间来扩展LRU算法)。LRU替换策略使用访问时间来记录cacheline (高速缓存中保存的一项数据)的优先级;LFU替换策略使用访问次数来标识替换的优先级。
[0005]目前的组相连的cache在访问发生miss (命中失败)后,会从其他cache中得到数据,然后替换出本cache的一个cacheline。例如:4路组相连cacheline中,从4个cacheline中选出访问次数最小的cacheline A,进行替换;被替换出的cacheline A再次被访问,重新放到cache中,访问次数为0。
[0006]cache访问发生miss会导致访问效率的降低,因此如何提高cache的命中率一直是本领域技术人员所要持续解决的技术问题。

【发明内容】

[0007]本发明实施例提供了一种高速缓存控制方法及装置,用于提升高速缓存的命中率。
[0008]一种高速缓存控制方法,包括:
[0009]若第一高速缓存内的缓存数据需要被替换,则获取所述缓存数据及所述缓存数据的优先级;所述缓存数据再次被访问的几率越高优先级越高;
[0010]将所述缓存数据以及所述缓存数据的优先级传递给第二高速缓存进行缓存;所述第一高速缓存与所述第二高速缓存为组相连的高速缓存。
[0011]—种高速缓存控制装置,包括:
[0012]信息获取单元,用于若第一高速缓存内的缓存数据需要被替换,则获取所述缓存数据,获取所述缓存数据的优先级;所述缓存数据再次被访问的几率越高优先级越高;
[0013]数据发送单元,用于将所述信息获取单元获取到的所述缓存数据以及所述缓存数据的优先级传递给第二高速缓存进行缓存;所述第一高速缓存与所述第二高速缓存为组相连的高速缓存。
[0014]一种高速缓存控制装置,包括:接收器、发射器、处理器以及存储器;所述处理器,用于若第一高速缓存内的缓存数据需要被替换,则获取所述缓存数据及所述缓存数据的优先级;所述缓存数据再次被访问的几率越高优先级越高;将所述缓存数据以及所述缓存数据的优先级传递给第二高速缓存进行缓存;所述第一高速缓存与所述第二高速缓存为组相连的高速缓存。
[0015]从以上技术方案可以看出,本发明实施例具有以下优点:在第一高速缓存内的缓存数据向第二高速缓存传递缓存数据时,传递了缓存数据的优先级,使得被传递后的缓存数据仍然具有原来的优先级属性,从而使被传递后的缓存数据不会因为优先级信息丢失发生不合理的再次传递,从而提高高速缓存的命中率。
【附图说明】
[0016]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0017]图1为本发明实施例方法流程示意图;
[0018]图2为本发明实施例装置结构示意图;
[0019]图3为本发明实施例装置结构示意图;
[0020]图4为本发明实施例装置结构示意图;
[0021]图5为本发明实施例装置结构示意图;
[0022]图6为本发明实施例终端结构示意图。
【具体实施方式】
[0023]为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0024]针对cache访问发生miss的问题,发明人首先对当前cacheline在cache之间传递进行了分析如下:目前cache替换算法通常是替换最近最少访问的行,但是突发性访问高速缓存的行为会导致命中率下降。例如:最近只访问了一次的cache行有可能替换掉后,后续可能被访问多次的cache行。
[0025]当某一 cacheline在cache之间传递时,记录该cacheline替换优先级的值被清零;即,某一 cacheline从当前cache中替换出去以后,历史信息将会被丢弃。举例如下:
[0026]当cache行从一级cache替换到二级cache中时,该cache行在一级cache中被访问的频率信息会丢失。而二级cache将cache行替换到下一层次的存储层次中时(三级cache或者内存),没有考虑该cache行在一级cache中的访问频率,从而造成cache命中率的降低。也就是说,即使某一 cacheline之前一段时间优先级较高,但当其从当前cache中替换出去后,历史信息将会丢失,导致该cacheline在替换出去的目的cache中不能很好的保存下来,容易被再次替换掉,从而使命中率降低。
[0027]基于前述分析,本发明实施例提供了一种高速缓存控制方法,如图1所示,包括:
[0028]101:若第一高速缓存内的缓存数据需要被替换,则获取上述缓存数据及上述缓存数据的优先级;上述缓存数据再次被访问的几率越高优先级越高;
[0029]102:将上述缓存数据以及上述缓存数据的优先级传递给第二高速缓存进行缓存;上述第一高速缓存与上述第二高速缓存为组相连的高速缓存。
[0030]在本发明实施例中,第一高速缓存内的缓存数据向第二高速缓存传递缓存数据时,传递了缓存数据的优先级,使得被传递后的缓存数据仍然具有原来的优先级属性,从而使被传递后的缓存数据不会因为优先级信息丢失发生不合理的再次传递,从而提高高速缓存的命中率。
[0031]以上方案,传递了全部缓存数据的优先级,实际上对于那些优先级很低的缓存数据而言,丢弃掉它们的优先级对命中率的影响可能是可以完全忽略的,丢弃这部分缓存数据的优先级则可以节省宝贵的高速缓存空间,基于此本发明实施例提供了如下解决方案,具体如下:上述方法还包括:确定上述缓存数据的优先级是否高于预定阈值,若上述优先级高于预定阈值,则执行上述将上述缓存数据以及上述缓存数据的优先级传递给第二高速缓存进行缓存;否则,将上述缓存数据传递给上述第二高速缓存。
[0032]在本发明实施例中,第一高速缓存和第二高速缓存,它们之间可以是上下级的关系也可以是同级的关系,同级的cache应该是属于不同的处理器的。因此,可选地:上述第一高速缓存与上述第二高速缓存为上下级组相连的高速缓存,或者,上述第一高速缓存与上述第二高速缓存为同级组相连的高速缓存。
[0033]在本发明实施例中,优先级是用来反映述缓存数据再次被访问的几率的,可以参考的参数可能是比较多的,可以依据具体的经验值进行确定,本发明实施例提供了两种可以作为优选参考的参数,具体如下:
[0034]上述缓存数据被访问的时间越近,优先级越高;和/或,上述缓存数据被访问的次数越多,优先级越高。
[0035]以上两个参数如果是和的关系,则属于综合考虑这两个参数进行诸如加权平均或者加权和之类的计算得出优先级。
[0036]基于优先级可能采用作为参考参数的不同,确定缓存数据的优先级的具体流程可能不同,本发明实施例还给出了两种可选的实现方案,具体如下:上述获取上述缓存数据的优先级包括:
[0037]读取最近最少使用LRU中的时间信息;依据上述LRU中的时间信息确定上述缓存数据的优先级;或者,读取最少频繁使用LFU中的访问次数信息,依据上述LFU中的访问次数信息确定上述缓存数据的优先级。
[0038]以下实施例将分别就两种应用场景进行举例说明。在后续实施例中,缓存数据的优先级,称为替换优先级。缓存数据称为cacheline ;其中cacheline的替换优先级分为两类:被频繁访问的数据(Hot data)以及不经常使用的数据(Cold data), Hot data即优先级高于预定阈值的缓存数据。在以下实施例中,高速缓存的层级仅涉及两层,目前高速缓存层级是可以更多的,以下举例不应理解为对本发明实施例的限定;其中,第一高速缓存和第二高速缓存分别为:Llcache 与 L2cache,或者,L1_A cache 和 L1_B cache。
[0039]场景一:本实施例应用场景为某一项cacheline在上下级的cac
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1