CN105302741A - 一种高速缓存控制方法及装置 - Google Patents
一种高速缓存控制方法及装置 Download PDFInfo
- Publication number
- CN105302741A CN105302741A CN201410318256.7A CN201410318256A CN105302741A CN 105302741 A CN105302741 A CN 105302741A CN 201410318256 A CN201410318256 A CN 201410318256A CN 105302741 A CN105302741 A CN 105302741A
- Authority
- CN
- China
- Prior art keywords
- speed cache
- data cached
- priority
- cache
- described data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例公开了一种高速缓存控制方法及装置,其中方法的实现包括:若第一高速缓存内的缓存数据需要被替换,则获取所述缓存数据及所述缓存数据的优先级;所述缓存数据再次被访问的几率越高优先级越高;将所述缓存数据以及所述缓存数据的优先级传递给第二高速缓存进行缓存;所述第一高速缓存与所述第二高速缓存为组相连的高速缓存。在第一高速缓存内的缓存数据向第二高速缓存传递缓存数据时,传递了缓存数据的优先级,使得被传递后的缓存数据仍然具有原来的优先级属性,从而使被传递后的缓存数据不会因为优先级信息丢失发生不合理的再次传递,从而提高高速缓存的命中率。
Description
技术领域
本发明涉及存储技术领域,特别涉及一种高速缓存控制方法及装置。
背景技术
在计算机存储系统的层次结构中,高速缓冲存储器(cache,简称为高速缓存)是介于中央处理器和主存储器之间的高速小容量存储器。cache中缓存的是主存储器(内存)中的数据。高速缓存和主存储器之间信息的调度和传送是由硬件自动进行的。
某些设备的存储系统有二级三级缓存,每级缓存比前一级缓存速度慢且容量大。缓存还可能具有同一层级的缓存。cache中分组存储数据,这种cache结构称为组相连cache。
组相连cache之间进行数据传递采用替换的方式进行,替换策略有基于时间信息的LRU(LeastRecentlyUsed,最近最少使用)、基于历史访问信息的LFU(LeastFrequentlyUsed,最少频繁使用),以及结合时间信息和历史访问信息的LRU-K(使用最后第K次访问时间来扩展LRU算法)。LRU替换策略使用访问时间来记录cacheline(高速缓存中保存的一项数据)的优先级;LFU替换策略使用访问次数来标识替换的优先级。
目前的组相连的cache在访问发生miss(命中失败)后,会从其他cache中得到数据,然后替换出本cache的一个cacheline。例如:4路组相连cacheline中,从4个cacheline中选出访问次数最小的cachelineA,进行替换;被替换出的cachelineA再次被访问,重新放到cache中,访问次数为0。
cache访问发生miss会导致访问效率的降低,因此如何提高cache的命中率一直是本领域技术人员所要持续解决的技术问题。
发明内容
本发明实施例提供了一种高速缓存控制方法及装置,用于提升高速缓存的命中率。
一种高速缓存控制方法,包括:
若第一高速缓存内的缓存数据需要被替换,则获取所述缓存数据及所述缓存数据的优先级;所述缓存数据再次被访问的几率越高优先级越高;
将所述缓存数据以及所述缓存数据的优先级传递给第二高速缓存进行缓存;所述第一高速缓存与所述第二高速缓存为组相连的高速缓存。
一种高速缓存控制装置,包括:
信息获取单元,用于若第一高速缓存内的缓存数据需要被替换,则获取所述缓存数据,获取所述缓存数据的优先级;所述缓存数据再次被访问的几率越高优先级越高;
数据发送单元,用于将所述信息获取单元获取到的所述缓存数据以及所述缓存数据的优先级传递给第二高速缓存进行缓存;所述第一高速缓存与所述第二高速缓存为组相连的高速缓存。
一种高速缓存控制装置,包括:接收器、发射器、处理器以及存储器;所述处理器,用于若第一高速缓存内的缓存数据需要被替换,则获取所述缓存数据及所述缓存数据的优先级;所述缓存数据再次被访问的几率越高优先级越高;将所述缓存数据以及所述缓存数据的优先级传递给第二高速缓存进行缓存;所述第一高速缓存与所述第二高速缓存为组相连的高速缓存。
从以上技术方案可以看出,本发明实施例具有以下优点:在第一高速缓存内的缓存数据向第二高速缓存传递缓存数据时,传递了缓存数据的优先级,使得被传递后的缓存数据仍然具有原来的优先级属性,从而使被传递后的缓存数据不会因为优先级信息丢失发生不合理的再次传递,从而提高高速缓存的命中率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例方法流程示意图;
图2为本发明实施例装置结构示意图;
图3为本发明实施例装置结构示意图;
图4为本发明实施例装置结构示意图;
图5为本发明实施例装置结构示意图;
图6为本发明实施例终端结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
针对cache访问发生miss的问题,发明人首先对当前cacheline在cache之间传递进行了分析如下:目前cache替换算法通常是替换最近最少访问的行,但是突发性访问高速缓存的行为会导致命中率下降。例如:最近只访问了一次的cache行有可能替换掉后,后续可能被访问多次的cache行。
当某一cacheline在cache之间传递时,记录该cacheline替换优先级的值被清零;即,某一cacheline从当前cache中替换出去以后,历史信息将会被丢弃。举例如下:
当cache行从一级cache替换到二级cache中时,该cache行在一级cache中被访问的频率信息会丢失。而二级cache将cache行替换到下一层次的存储层次中时(三级cache或者内存),没有考虑该cache行在一级cache中的访问频率,从而造成cache命中率的降低。也就是说,即使某一cacheline之前一段时间优先级较高,但当其从当前cache中替换出去后,历史信息将会丢失,导致该cacheline在替换出去的目的cache中不能很好的保存下来,容易被再次替换掉,从而使命中率降低。
基于前述分析,本发明实施例提供了一种高速缓存控制方法,如图1所示,包括:
101:若第一高速缓存内的缓存数据需要被替换,则获取上述缓存数据及上述缓存数据的优先级;上述缓存数据再次被访问的几率越高优先级越高;
102:将上述缓存数据以及上述缓存数据的优先级传递给第二高速缓存进行缓存;上述第一高速缓存与上述第二高速缓存为组相连的高速缓存。
在本发明实施例中,第一高速缓存内的缓存数据向第二高速缓存传递缓存数据时,传递了缓存数据的优先级,使得被传递后的缓存数据仍然具有原来的优先级属性,从而使被传递后的缓存数据不会因为优先级信息丢失发生不合理的再次传递,从而提高高速缓存的命中率。
以上方案,传递了全部缓存数据的优先级,实际上对于那些优先级很低的缓存数据而言,丢弃掉它们的优先级对命中率的影响可能是可以完全忽略的,丢弃这部分缓存数据的优先级则可以节省宝贵的高速缓存空间,基于此本发明实施例提供了如下解决方案,具体如下:上述方法还包括:确定上述缓存数据的优先级是否高于预定阈值,若上述优先级高于预定阈值,则执行上述将上述缓存数据以及上述缓存数据的优先级传递给第二高速缓存进行缓存;否则,将上述缓存数据传递给上述第二高速缓存。
在本发明实施例中,第一高速缓存和第二高速缓存,它们之间可以是上下级的关系也可以是同级的关系,同级的cache应该是属于不同的处理器的。因此,可选地:上述第一高速缓存与上述第二高速缓存为上下级组相连的高速缓存,或者,上述第一高速缓存与上述第二高速缓存为同级组相连的高速缓存。
在本发明实施例中,优先级是用来反映述缓存数据再次被访问的几率的,可以参考的参数可能是比较多的,可以依据具体的经验值进行确定,本发明实施例提供了两种可以作为优选参考的参数,具体如下:
上述缓存数据被访问的时间越近,优先级越高;和/或,上述缓存数据被访问的次数越多,优先级越高。
以上两个参数如果是和的关系,则属于综合考虑这两个参数进行诸如加权平均或者加权和之类的计算得出优先级。
基于优先级可能采用作为参考参数的不同,确定缓存数据的优先级的具体流程可能不同,本发明实施例还给出了两种可选的实现方案,具体如下:上述获取上述缓存数据的优先级包括:
读取最近最少使用LRU中的时间信息;依据上述LRU中的时间信息确定上述缓存数据的优先级;或者,读取最少频繁使用LFU中的访问次数信息,依据上述LFU中的访问次数信息确定上述缓存数据的优先级。
以下实施例将分别就两种应用场景进行举例说明。在后续实施例中,缓存数据的优先级,称为替换优先级。缓存数据称为cacheline;其中cacheline的替换优先级分为两类:被频繁访问的数据(Hotdata)以及不经常使用的数据(Colddata),Hotdata即优先级高于预定阈值的缓存数据。在以下实施例中,高速缓存的层级仅涉及两层,目前高速缓存层级是可以更多的,以下举例不应理解为对本发明实施例的限定;其中,第一高速缓存和第二高速缓存分别为:L1cache与L2cache,或者,L1_Acache和L1_Bcache。
场景一:本实施例应用场景为某一项cacheline在上下级的cache之间传送。并且该cacheline是hotdata。
场景一的硬件:一个硬件构成实施如下:
L1cache与L2cache相连;L1cache中被替换出来的cacheline需要传送到L2cache中并保存;之后,L1cache又访问到该cacheline;此时,cacheline又一次从L2cache回到L1cache。
场景一的方法流程综述如下:当cacheline在从L1cache传送到L2cache时,不仅传送数据,同时传送的还有该cacheline在L1cache中的替换优先级。同样,当该cacheline又一次回到L1cache时,L1cache得到的是cacheline数据和优先级属性。
在以上流程中,上级cache(L1)从下级(L2)得到的cacheline(hotdata)保留了原来的替换优先级,该cacheline在L1中不容易被替换掉。
场景一具体方案如下:
预定义cacheline的优先级大于k时,该cacheline为hotdata,替换优先级信息需要被传递;在本情景中的cacheline均为hotdata。
传递数据时的优先级是指示该数据的hot属性,既可以是LRU中的时间信息,也可以是LFU中的访问次数信息。
L1cache发生替换,把某一cacheline传送到L2cache中,由于该cacheline是hotdata,所以传送数据的同时传送替换优先级属性。
L1cache又一次访问该cacheline时,从L2cache中得到的包括cacheline的数据和替换优先级属性,此时会恢复该cacheline之前在L1cache中时的优先级属性。
L1cache再次发生替换时,由于该cacheline保持了较高的优先级,所以不会被轻易替换出去,这样,就保证了hotdata尽可能保留在cache中。
场景一的主要步骤:
上下级cache之间传送数据的时候包括以下步骤:
S1、L1cache需要替换出某一cacheline到L2cache,该cacheline是hotdata;
S2、该cacheline从L1cache到L2cache,保留了cacheline的优先级;
S3、L1cache又一次需要访问该cacheline;
S4、该cacheline从L2cache回到L1cache,恢复cacheline的优先级;
S5、由于该cacheline在L1cache中恢复了原来的优先级,而并不是从最低优先级开始,所以该cacheline在L1cache中不容易被替换出去;
S6、这样就更容易把hotdata保留在cache中。
场景二:本实施例应用场景为某一项cacheline在同级的cache之间传送。并且该cacheline是hotdata。此时,cacheline可能是共享的数据;也可能由于运行同一应用程序,两个同级的cache中hotdata是一样的。
场景二的硬件:一个硬件构成实施如下:
两个处理器的L1cache之间需要维护一致性,所以当一个L1cache需要的数据在另一个L1cache中时,便从另一个L1cache中获得数据。
场景二的方法流程综述如下:两个同级的L1cache分别记作L1_Acache和L1_Bcache。当cacheline在从L1_Acache传送到L1_Bcache时,不仅传送数据,同时传送的还有该cacheline在L1_Acache中的替换优先级。
在以上流程中,同级cache之间数据传递时,(一个L1_A从另一L1_B)得到的cacheline(hotdata)保留了较高的替换优先级,该cacheline在L1_A中不容易被替换掉。
场景二具体方案如下:
预定义cacheline的优先级大于k时,该cacheline为hotdata,替换优先级信息需要被传递;在本情景中的cacheline均为hotdata。
传递数据时的优先级是指示该数据的hot属性,既可以是LRU中的时间信息,也可以是LFU中的访问次数信息。
L1_Bcache需要的数据cacheline保存在L1_Acache中;
L1_Bcache从L1_Acache中获得cacheline的同时,获得该cacheline在L1_Acache中的替换优先级属性;
L1_Bcache由于得到的cacheline保留了原来的优先级属性,所以更容易保留在本级cache中。
场景二的主要步骤:
同级cache之间传送数据的时候包括以下步骤:
S1、L1_Bcache需要获得L1_A中的cacheline,该cacheline是hotdata;
S2、该cacheline从L1_Acache到L1_Bcache,保留了cacheline的优先级;
S3、L1_Bcache中该cacheline所在的组发生替换;
S4、由于该cacheline在L1_Bcache中保留了该cacheline在L1_A中原来的优先级,而并不是从最低优先级开始,所以该cacheline在L1_Bcache中不容易被替换出去;
S5、这样就更容易把hotdata保留在cache中。
采用本发明技术方案至少具有如下益效果:当hotdata在cache之间传递时,保留了其hot属性,使得该数据不容易被替换出去,即:使得hotdata更容易保留在本级cache中,从而减少miss,加快了cache访问的速度。
以上两个应用场景分别对应的具体情况如下:
1、由于同级cache之间数据传递时,(一个L1_A从另一L1_B)得到的cacheline(hotdata)保留了较高的替换优先级,该cacheline在L1_A中不容易被替换掉
2、由于上级cache(L1)从下级(L2)得到的cacheline(hotdata)保留了原来的替换优先级,该cacheline在L1中不容易被替换掉
本发明实施例还提供了一种高速缓存控制装置,如图2所示,包括:
信息获取单元201,用于若第一高速缓存内的缓存数据需要被替换,则获取上述缓存数据,获取上述缓存数据的优先级;上述缓存数据再次被访问的几率越高优先级越高;
数据发送单元202,用于将上述信息获取单元201获取到的上述缓存数据以及上述缓存数据的优先级传递给第二高速缓存进行缓存;上述第一高速缓存与上述第二高速缓存为组相连的高速缓存。
在本发明实施例中,第一高速缓存内的缓存数据向第二高速缓存传递缓存数据时,传递了缓存数据的优先级,使得被传递后的缓存数据仍然具有原来的优先级属性,从而使被传递后的缓存数据不会因为优先级信息丢失发生不合理的再次传递,从而提高高速缓存的命中率。
以上方案,传递了全部缓存数据的优先级,实际上对于那些优先级很低的缓存数据而言,丢弃掉它们的优先级对命中率的影响可能是可以完全忽略的,丢弃这部分缓存数据的优先级则可以节省宝贵的高速缓存空间,基于此本发明实施例提供了如下解决方案,具体如下:进一步地,如图3所示,上述装置,还包括:
发送控制单元301,用于确定上述缓存数据的优先级是否高于预定阈值,若上述优先级高于预定阈值,则控制上述数据发送单元202执行上述将上述缓存数据以及上述缓存数据的优先级传递给第二高速缓存进行缓存;否则,控制上述数据发送单元202将上述缓存数据传递给上述第二高速缓存。
在本发明实施例中,第一高速缓存和第二高速缓存是组相连的关系,更具体地,它们之间可以是上下级的关系也可以是同级的关系,因此,可选地:上述第一高速缓存与上述第二高速缓存为上下级组相连的高速缓存,或者,上述第一高速缓存与上述第二高速缓存为同级组相连的高速缓存。
在本发明实施例中,优先级是用来反映述缓存数据再次被访问的几率的,可以参考的参数可能是比较多的,可以依据具体的经验值进行确定,本发明实施例提供了两种可以作为优选参考的参数,具体如下:
可选地,上述缓存数据被访问的时间越近,优先级越高;和/或,上述缓存数据被访问的次数越多,优先级越高。
以上两个参数如果是和的关系,则属于综合考虑这两个参数进行诸如加权平均或者加权和之类的计算得出优先级。
基于优先级可能采用作为参考参数的不同,确定缓存数据的优先级的具体流程可能不同,本发明实施例还给出了两种可选的实现方案,具体如下:可选地,如图4所示,上述信息获取单元201包括:信息读取单元401和优先级确定单元402;
上述信息读取单元401,用于读取最近最少使用LRU中的时间信息;
上述优先级确定单元402,用于依据上述信息读取单元401读取到的上述LRU中的时间信息确定上述缓存数据的优先级;或者,
上述信息读取单元401,用于读取最少频繁使用LFU中的访问次数信息;
上述优先级确定单元402,用于依据上述信息读取单元401读取到的上述LFU中的访问次数信息确定上述缓存数据的优先级。
本发明实施例还提供了另一种高速缓存控制装置,如图5所示,包括:接收器501、发射器502、处理器503以及存储器504;
其中,上述处理器503,用于若第一高速缓存内的缓存数据需要被替换,则获取上述缓存数据,获取上述缓存数据的优先级;上述缓存数据再次被访问的几率越高优先级越高;将上述缓存数据以及上述缓存数据的优先级传递给第二高速缓存进行缓存;上述第一高速缓存与上述第二高速缓存为组相连的高速缓存。
以上方案,传递了全部缓存数据的优先级,实际上对于那些优先级很低的缓存数据而言,丢弃掉它们的优先级对命中率的影响可能是可以完全忽略的,丢弃这部分缓存数据的优先级则可以节省宝贵的高速缓存空间,基于此本发明实施例提供了如下解决方案,具体如下:上述方法还包括:确定上述缓存数据的优先级是否高于预定阈值,若上述优先级高于预定阈值,则执行上述将上述缓存数据以及上述缓存数据的优先级传递给第二高速缓存进行缓存;否则,将上述缓存数据传递给上述第二高速缓存。
在本发明实施例中,第一高速缓存和第二高速缓存是组相连的关系,更具体地,它们之间可以是上下级的关系也可以是同级的关系,因此,可选地:上述第一高速缓存与上述第二高速缓存为上下级组相连的高速缓存,或者,上述第一高速缓存与上述第二高速缓存为同级组相连的高速缓存。
在本发明实施例中,优先级是用来反映述缓存数据再次被访问的几率的,可以参考的参数可能是比较多的,可以依据具体的经验值进行确定,本发明实施例提供了两种可以作为优选参考的参数,具体如下:
上述缓存数据被访问的时间越近,优先级越高;和/或,上述缓存数据被访问的次数越多,优先级越高。
以上两个参数如果是和的关系,则属于综合考虑这两个参数进行诸如加权平均或者加权和之类的计算得出优先级。
基于优先级可能采用作为参考参数的不同,确定缓存数据的优先级的具体流程可能不同,本发明实施例还给出了两种可选的实现方案,具体如下:上述处理器503,用于读取最近最少使用LRU中的时间信息;依据上述LRU中的时间信息确定上述缓存数据的优先级;或者,读取最少频繁使用LFU中的访问次数信息,依据上述LFU中的访问次数信息确定上述缓存数据的优先级。
本发明实施例还提供了一种终端,可以用于实现高速缓存控制,如图6所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该终端可以为包括手机、平板电脑、PDA(PersonalDigitalAssistant,个人数字助理)、POS(PointofSales,销售终端)、车载电脑等任意终端设备,以终端为手机为例:
图6示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图6,手机包括:射频(RadioFrequency,RF)电路610、存储器620、输入单元630、显示单元640、传感器650、音频电路660、无线保真(wirelessfidelity,WiFi)模块670、处理器680、以及电源690等部件。本领域技术人员可以理解,图6中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图6对手机的各个构成部件进行具体的介绍:
RF电路610可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器680处理;另外,将设计上行的数据发送给基站。通常,RF电路610包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(LowNoiseAmplifier,LNA)、双工器等。此外,RF电路610还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GlobalSystemofMobilecommunication,GSM)、通用分组无线服务(GeneralPacketRadioService,GPRS)、码分多址(CodeDivisionMultipleAccess,CDMA)、宽带码分多址(WidebandCodeDivisionMultipleAccess,WCDMA)、长期演进(LongTermEvolution,LTE)、电子邮件、短消息服务(ShortMessagingService,SMS)等。
存储器620可用于存储软件程序以及模块,处理器680通过运行存储在存储器620的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元630可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元630可包括触控面板631以及其他输入设备632。触控面板631,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板631上或在触控面板631附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板631可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器680,并能接收处理器680发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板631。除了触控面板631,输入单元630还可以包括其他输入设备632。具体地,其他输入设备632可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元640可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元640可包括显示面板641,可选的,可以采用液晶显示器(LiquidCrystalDisplay,LCD)、有机发光二极管(OrganicLight-EmittingDiode,OLED)等形式来配置显示面板641。进一步的,触控面板631可覆盖显示面板641,当触控面板631检测到在其上或附近的触摸操作后,传送给处理器680以确定触摸事件的类型,随后处理器680根据触摸事件的类型在显示面板641上提供相应的视觉输出。虽然在图6中,触控面板631与显示面板641是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板631与显示面板641集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器650,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板641的亮度,接近传感器可在手机移动到耳边时,关闭显示面板641和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路660、扬声器661,传声器662可提供用户与手机之间的音频接口。音频电路660可将接收到的音频数据转换后的电信号,传输到扬声器661,由扬声器661转换为声音信号输出;另一方面,传声器662将收集的声音信号转换为电信号,由音频电路660接收后转换为音频数据,再将音频数据输出处理器680处理后,经RF电路610以发送给比如另一手机,或者将音频数据输出至存储器620以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块670可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图6示出了WiFi模块670,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器680是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器620内的软件程序和/或模块,以及调用存储在存储器620内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器680可包括一个或多个处理单元;优选的,处理器680可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器680中。
手机还包括给各个部件供电的电源690(比如电池),优选的,电源可以通过电源管理系统与处理器680逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本发明实施例中,处理器680可以集成有第一高速缓存和第二高速缓存,第一高速缓存和第二高速缓存也可以集成在存储器620,具体的位置本发明实施例不予限定;该终端所包括的处理器680还具有以下功能:
其中,上述处理器680,用于若第一高速缓存内的缓存数据需要被替换,则获取上述缓存数据,获取上述缓存数据的优先级;上述缓存数据再次被访问的几率越高优先级越高;将上述缓存数据以及上述缓存数据的优先级传递给第二高速缓存进行缓存;上述第一高速缓存与上述第二高速缓存为组相连的高速缓存。
在本发明实施例中,第一高速缓存内的缓存数据向第二高速缓存传递缓存数据时,传递了缓存数据的优先级,使得被传递后的缓存数据仍然具有原来的优先级属性,从而使被传递后的缓存数据不会因为优先级信息丢失发生不合理的再次传递,从而提高高速缓存的命中率。
以上方案,传递了全部缓存数据的优先级,实际上对于那些优先级很低的缓存数据而言,丢弃掉它们的优先级对命中率的影响可能是可以完全忽略的,丢弃这部分缓存数据的优先级则可以节省宝贵的高速缓存空间,基于此本发明实施例提供了如下解决方案,具体如下:上述方法还包括:确定上述缓存数据的优先级是否高于预定阈值,若上述优先级高于预定阈值,则执行上述将上述缓存数据以及上述缓存数据的优先级传递给第二高速缓存进行缓存;否则,将上述缓存数据传递给上述第二高速缓存。
在本发明实施例中,第一高速缓存和第二高速缓存是组相连的关系,更具体地,它们之间可以是上下级的关系也可以是同级的关系,因此,可选地:上述第一高速缓存与上述第二高速缓存为上下级组相连的高速缓存,或者,上述第一高速缓存与上述第二高速缓存为同级组相连的高速缓存。
在本发明实施例中,优先级是用来反映述缓存数据再次被访问的几率的,可以参考的参数可能是比较多的,可以依据具体的经验值进行确定,本发明实施例提供了两种可以作为优选参考的参数,具体如下:
上述缓存数据被访问的时间越近,优先级越高;和/或,上述缓存数据被访问的次数越多,优先级越高。
以上两个参数如果是和的关系,则属于综合考虑这两个参数进行诸如加权平均或者加权和之类的计算得出优先级。
基于优先级可能采用作为参考参数的不同,确定缓存数据的优先级的具体流程可能不同,本发明实施例还给出了两种可选的实现方案,具体如下:上述处理器680,用于读取最近最少使用LRU中的时间信息;依据上述LRU中的时间信息确定上述缓存数据的优先级;或者,读取最少频繁使用LFU中的访问次数信息,依据上述LFU中的访问次数信息确定上述缓存数据的优先级。
值得注意的是,上述装置实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各方法实施例中的全部或部分步骤是可以通过程序来指令相关的硬件完成,相应的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (12)
1.一种高速缓存控制方法,其特征在于,包括:
若第一高速缓存内的缓存数据需要被替换,则获取所述缓存数据及所述缓存数据的优先级;所述缓存数据再次被访问的几率越高优先级越高;
将所述缓存数据以及所述缓存数据的优先级传递给第二高速缓存进行缓存;所述第一高速缓存与所述第二高速缓存为组相连的高速缓存。
2.根据权利要求1所述方法,其特征在于,还包括:
确定所述缓存数据的优先级是否高于预定阈值,若所述优先级高于预定阈值,则执行所述将所述缓存数据以及所述缓存数据的优先级传递给第二高速缓存进行缓存;否则,将所述缓存数据传递给所述第二高速缓存。
3.根据权利要求1或2所述方法,其特征在于,所述第一高速缓存与所述第二高速缓存为上下级组相连的高速缓存,或者,所述第一高速缓存与所述第二高速缓存为同级组相连的高速缓存。
4.根据权利要求1或2所述方法,其特征在于,所述获取所述缓存数据的优先级包括:
读取最近最少使用LRU中的时间信息;依据所述LRU中的时间信息确定所述缓存数据的优先级;或者,读取最少频繁使用LFU中的访问次数信息,依据所述LFU中的访问次数信息确定所述缓存数据的优先级。
5.一种高速缓存控制装置,其特征在于,包括:
信息获取单元,用于若第一高速缓存内的缓存数据需要被替换,则获取所述缓存数据,获取所述缓存数据的优先级;所述缓存数据再次被访问的几率越高优先级越高;
数据发送单元,用于将所述信息获取单元获取到的所述缓存数据以及所述缓存数据的优先级传递给第二高速缓存进行缓存;所述第一高速缓存与所述第二高速缓存为组相连的高速缓存。
6.根据权利要求5所述装置,其特征在于,还包括:
发送控制单元,用于确定所述缓存数据的优先级是否高于预定阈值,若所述优先级高于预定阈值,则控制所述数据发送单元执行所述将所述缓存数据以及所述缓存数据的优先级传递给第二高速缓存进行缓存;否则,控制所述数据发送单元将所述缓存数据传递给所述第二高速缓存。
7.根据权利要求5或6所述装置,其特征在于,所述第一高速缓存与所述第二高速缓存为上下级组相连的高速缓存,或者,所述第一高速缓存与所述第二高速缓存为同级组相连的高速缓存。
8.根据权利要求5或6所述装置,其特征在于,所述信息获取单元包括:信息读取单元和优先级确定单元;
所述信息读取单元,用于读取最近最少使用LRU中的时间信息;
所述优先级确定单元,用于依据所述信息读取单元读取到的所述LRU中的时间信息确定所述缓存数据的优先级;或者,
所述信息读取单元,用于读取最少频繁使用LFU中的访问次数信息;
所述优先级确定单元,用于依据所述信息读取单元读取到的所述LFU中的访问次数信息确定所述缓存数据的优先级。
9.一种高速缓存控制装置,包括:接收器、发射器、处理器以及存储器;其特征在于,
所述处理器,用于若第一高速缓存内的缓存数据需要被替换,则获取所述缓存数据及所述缓存数据的优先级;所述缓存数据再次被访问的几率越高优先级越高;将所述缓存数据以及所述缓存数据的优先级传递给第二高速缓存进行缓存;所述第一高速缓存与所述第二高速缓存为组相连的高速缓存。
10.根据权利要求9所述装置,其特征在于,所述处理器,还用于确定所述缓存数据的优先级是否高于预定阈值,若所述优先级高于预定阈值,则执行所述将所述缓存数据以及所述缓存数据的优先级传递给第二高速缓存进行缓存;否则,将所述缓存数据传递给所述第二高速缓存。
11.根据权利要求9或10所述装置,其特征在于,所述第一高速缓存与所述第二高速缓存为上下级组相连的高速缓存,或者,所述第一高速缓存与所述第二高速缓存为同级组相连的高速缓存。
12.根据权利要求9或10所述装置,其特征在于,
所述处理器,用于读取最近最少使用LRU中的时间信息;依据所述LRU中的时间信息确定所述缓存数据的优先级;或者,读取最少频繁使用LFU中的访问次数信息,依据所述LFU中的访问次数信息确定所述缓存数据的优先级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410318256.7A CN105302741B (zh) | 2014-07-04 | 2014-07-04 | 一种高速缓存控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410318256.7A CN105302741B (zh) | 2014-07-04 | 2014-07-04 | 一种高速缓存控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105302741A true CN105302741A (zh) | 2016-02-03 |
CN105302741B CN105302741B (zh) | 2019-02-26 |
Family
ID=55200027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410318256.7A Active CN105302741B (zh) | 2014-07-04 | 2014-07-04 | 一种高速缓存控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105302741B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291635A (zh) * | 2017-06-16 | 2017-10-24 | 郑州云海信息技术有限公司 | 一种缓存替换方法和装置 |
CN113094392A (zh) * | 2020-01-09 | 2021-07-09 | 北京沃东天骏信息技术有限公司 | 数据缓存的方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5432919A (en) * | 1989-07-06 | 1995-07-11 | Digital Equipment Corporation | Sequential reference management for cache memories |
US20020053006A1 (en) * | 2000-11-02 | 2002-05-02 | Shinichi Kawamoto | Cache control system |
CN101446925A (zh) * | 2008-12-29 | 2009-06-03 | 中国科学院计算技术研究所 | 一种复用二级Cache和DSP的RAM的方法及系统 |
CN103019962A (zh) * | 2012-12-21 | 2013-04-03 | 华为技术有限公司 | 数据缓存处理方法、装置以及系统 |
CN103870394A (zh) * | 2012-12-13 | 2014-06-18 | Arm有限公司 | 基于保留优先级的缓存替换策略 |
-
2014
- 2014-07-04 CN CN201410318256.7A patent/CN105302741B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5432919A (en) * | 1989-07-06 | 1995-07-11 | Digital Equipment Corporation | Sequential reference management for cache memories |
US20020053006A1 (en) * | 2000-11-02 | 2002-05-02 | Shinichi Kawamoto | Cache control system |
CN101446925A (zh) * | 2008-12-29 | 2009-06-03 | 中国科学院计算技术研究所 | 一种复用二级Cache和DSP的RAM的方法及系统 |
CN103870394A (zh) * | 2012-12-13 | 2014-06-18 | Arm有限公司 | 基于保留优先级的缓存替换策略 |
CN103019962A (zh) * | 2012-12-21 | 2013-04-03 | 华为技术有限公司 | 数据缓存处理方法、装置以及系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291635A (zh) * | 2017-06-16 | 2017-10-24 | 郑州云海信息技术有限公司 | 一种缓存替换方法和装置 |
CN113094392A (zh) * | 2020-01-09 | 2021-07-09 | 北京沃东天骏信息技术有限公司 | 数据缓存的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105302741B (zh) | 2019-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104065982B (zh) | 流媒体直播的方法和装置 | |
CN104142862B (zh) | 服务器的过载保护方法及装置 | |
CN104252379B (zh) | 图片缩略图显示方法和装置 | |
CN103325332B (zh) | 页面刷新方法、装置及设备 | |
CN106484562A (zh) | 一种数据传输处理方法及终端设备 | |
CN104834529A (zh) | 一种应用的性能优化的方法及装置 | |
CN108241703B (zh) | 网页数据传输方法和装置 | |
CN104699973A (zh) | 一种问卷逻辑控制方法,及装置 | |
CN104850507A (zh) | 一种数据缓存方法和数据缓存装置 | |
CN107992432A (zh) | 一种数据缓存的方法及终端设备 | |
CN104636047A (zh) | 对列表中的对象进行操作的方法、装置及触屏终端 | |
CN103699309B (zh) | 一种同步视频的录制方法、装置及移动终端 | |
CN104238893A (zh) | 一种对视频预览图片进行显示的方法和装置 | |
CN105022552A (zh) | 一种显示消息列表的方法和装置 | |
CN103593247B (zh) | 一种数据传递方法、及装置 | |
CN103475914A (zh) | 视频播放方法、装置、终端设备和服务器 | |
CN104423996A (zh) | 视图刷新方法和装置 | |
CN103368828B (zh) | 一种消息暂存方法及系统 | |
CN104200211A (zh) | 图像二值化方法及装置 | |
CN104571979A (zh) | 一种实现分屏视图的方法和装置 | |
CN104951637A (zh) | 一种获取训练参数的方法及装置 | |
CN103561155B (zh) | 发送短信的方法、装置及终端 | |
CN104243394A (zh) | 多媒体文件的播放方法及装置 | |
CN103336677B (zh) | 一种向显示设备输出图像的方法、装置和系统 | |
CN104426926A (zh) | 定时发布数据的处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |