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

文档序号:9547123阅读:来源:国知局
he之间传送。并且该 cacheline 是 hot data。
[0040]场景一的硬件:一个硬件构成实施如下:
[0041]Llcache与L2cache相连;Llcache中被替换出来的cacheline需要传送到L2cache中并保存;之后,Llcache又访问到该cacheline ;此时,cacheline又一次从L2cache 回到 Llcache。
[0042]场景一的方法流程综述如下:当cacheline在从Llcache传送到L2cache时,不仅传送数据,同时传送的还有该cacheline在Llcache中的替换优先级。同样,当该cacheline又一次回到Llcache时,Llcache得到的是cacheline数据和优先级属性。
[0043]在以上流程中,上级cache (L1)从下级(L2)得到的cacheline (hot data)保留了原来的替换优先级,该cacheline在L1中不容易被替换掉。
[0044]场景一具体方案如下:
[0045]预定义cacheline的优先级大于k时,该cacheline为hot data,替换优先级信息需要被传递;在本情景中的cacheline均为hot data。
[0046]传递数据时的优先级是指示该数据的hot属性,既可以是LRU中的时间信息,也可以是LFU中的访问次数信息。
[0047]Llcache 发生替换,把某一 cacheline 传送到 L2cache 中,由于该 cacheline 是hotdata,所以传送数据的同时传送替换优先级属性。
[0048]Llcache又一次访问该cacheline时,从L2cache中得到的包括cacheline的数据和替换优先级属性,此时会恢复该cacheline之前在Llcache中时的优先级属性。
[0049]Llcache再次发生替换时,由于该cacheline保持了较高的优先级,所以不会被轻易替换出去,这样,就保证了 hot data尽可能保留在cache中。
[0050]场景一的主要步骤:
[0051]上下级cache之间传送数据的时候包括以下步骤:
[0052]S1、Llcache 需要替换出某一 cacheline 到 L2cache,该 cacheline 是 hotdata ;
[0053]S2、该 cacheline 从 Llcache 到 L2cache,保留了 cacheline 的优先级;
[0054]S3、Llcache 又一次需要访问该 cacheline ;
[0055]S4、该 cacheline 从 L2cache 回到 Llcache,恢复 cacheline 的优先级;
[0056]S5、由于该cacheline在Llcache中恢复了原来的优先级,而并不是从最低优先级开始,所以该cacheline在Llcache中不容易被替换出去;
[0057]S6、这样就更容易把hot data保留在cache中。
[0058]场景二:本实施例应用场景为某一项cacheline在同级的cache之间传送。并且该cacheline是hot data。此时,cacheline可能是共享的数据;也可能由于运行同一应用程序,两个同级的cache中hot data是一样的。
[0059]场景二的硬件:一个硬件构成实施如下:
[0060]两个处理器的Llcache之间需要维护一致性,所以当一个Llcache需要的数据在另一个Llcache中时,便从另一个Llcache中获得数据。
[0061]场景二的方法流程综述如下:两个同级的Llcache分别记作L1_A cache和L1_Bcache ο当cacheline在从L1_A cache传送到L1_B cache时,不仅传送数据,同时传送的还有该cacheline在L1_A cache中的替换优先级。
[0062]在以上流程中,同级cache之间数据传递时,(一个L1_A从另一 L1_B)得到的cacheline (hot data)保留了较高的替换优先级,该cacheline在L1_A中不容易被替换掉。
[0063]场景二具体方案如下:
[0064]预定义cacheline的优先级大于k时,该cacheline为hot data,替换优先级信息需要被传递;在本情景中的cacheline均为hot data。
[0065]传递数据时的优先级是指示该数据的hot属性,既可以是LRU中的时间信息,也可以是LFU中的访问次数信息。
[0066]L1_B cache 需要的数据 cacheline 保存在 L1_A cache 中;
[0067]L1_B cache 从 L1_A cache 中获得 cacheline 的同时,获得该 cacheline 在 L1_Acache中的替换优先级属性;
[0068]L1_B cache由于得到的cacheline保留了原来的优先级属性,所以更容易保留在本级cache中。
[0069]场景二的主要步骤:
[0070]同级cache之间传送数据的时候包括以下步骤:
[0071]S1、L1_B cache 需要获得 L1_A 中的 cacheline,该 cacheline 是 hot data ;
[0072]S2、该 cacheline 从 L1_A cache 到 L1_B cache,保留了 cacheline 的优先级;
[0073]S3、L1_B cache中该cacheline所在的组发生替换;
[0074]S4、由于该cacheline在L1_B cache中保留了该cacheline在L1_A中原来的优先级,而并不是从最低优先级开始,所以该cacheline在L1_B cache中不容易被替换出去;
[0075]S5、这样就更容易把hot data保留在cache中。
[0076]采用本发明技术方案至少具有如下益效果:当hot data在cache之间传递时,保留了其hot属性,使得该数据不容易被替换出去,即:使得hot data更容易保留在本级cache中,从而减少miss,加快了 cache访问的速度。
[0077]以上两个应用场景分别对应的具体情况如下:
[0078]1、由于同级cache之间数据传递时,(一个L1_A从另一 L1_B)得到的cacheline (hot data)保留了较高的替换优先级,该cacheline在L1_A中不容易被替换掉
[0079]2、由于上级cache (L1)从下级(L2)得到的cacheline (hot data)保留了原来的替换优先级,该cacheline在L1中不容易被替换掉
[0080]本发明实施例还提供了一种高速缓存控制装置,如图2所示,包括:
[0081]信息获取单元201,用于若第一高速缓存内的缓存数据需要被替换,则获取上述缓存数据,获取上述缓存数据的优先级;上述缓存数据再次被访问的几率越高优先级越高;
[0082]数据发送单元202,用于将上述信息获取单元201获取到的上述缓存数据以及上述缓存数据的优先级传递给第二高速缓存进行缓存;上述第一高速缓存与上述第二高速缓存为组相连的高速缓存。
[0083]在本发明实施例中,第一高速缓存内的缓存数据向第二高速缓存传递缓存数据时,传递了缓存数据的优先级,使得被传递后的缓存数据仍然具有原来的优先级属性,从而使被传递后的缓存数据不会因为优先级信息丢失发生不合理的再次传递,从而提高高速缓存的命中率。
[0084]以上方案,传递了全部缓存数据的优先级,实际上对于那些优先级很低的缓存数据而言,丢弃掉它们的优先级对命中率的影响可能是可以完全忽略的,丢弃这部分缓存数据的优先级则可以节省宝贵的高速缓存空间,基于此本发明实施例提供了如下解决方案,具体如下:进一步地,如图3所示,上述装置,还包括:
[0085]发送控制单元301,用于确定上述缓存数据的优先级是否高于预定阈值,若上述优先级高于预定阈值,则控制上述数据发送单元202执行上述将上述缓存数据以及上述缓存数据的优先级传递给第二高速缓存进行缓存;否则,控制上述数据发送单元202将上述缓存数据传递给上述第二高速缓存。
[0086]在本发明实施例中,第一高速缓存和第二高速缓存是组相连的关系,更具体地,它们之间可以是上下级的关系也可以是同级的关系,因此,可选地:上述第一高速缓存与上述第二高速缓存为上下级组相连的高速缓存,或者,上述第一高速缓存与上述第二高速缓存为同级组相连的高速缓存。
[0087]在本发明实施例中,优先级是用来反映述缓存数据再次被访问的几率的,可以参考的参数可能是比较多的,可以依据具体的经验值进行确定,本发明实施例提供了两种可以作为优选参考的参数,具体如下:
[0088]可选地,上述缓存数据被访问的时间越近,优先级越高;和/或,上述缓存数据被访问的次数越多,优先级越高。
[0089]以上两个参数如果是和的关系,则属于综合考虑这两个参数进行诸如加权平均或者加权和之类的计算得出优先级。
[0090]基于优先级可
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1