一种基于二叉树的伪LRU硬件结构、更新逻辑和Cache替换方法技术

技术编号:28837139 阅读:25 留言:0更新日期:2021-06-11 23:34
本发明专利技术提供一种基于二叉树的伪LRU硬件结构、更新逻辑和对Cache的替换方法,包括:基于n路组相联Cache定义的二叉树结构和基于每个Cache块分别定义的重用信息;当程序访问某Cache块时,更新Cache块重用信息,同时基于重用信息和所述访问信息对二叉树中该Cache块对应的节点比特进行更新;本发明专利技术可以通过软件干预Cache替换方法的行为,面向人工智能等应用能有效提高Cache命中率,降低程序访存开销;同时本发明专利技术为软件提供了干预硬件替换方法的用户接口,但不需要对处理器指令集和编译器进行任何修改,使用范围大。

【技术实现步骤摘要】
一种基于二叉树的伪LRU硬件结构、更新逻辑和Cache替换方法
本专利技术涉及Cache存储器管理领域,具体涉及一种基于二叉树的伪LRU硬件结构、更新逻辑和Cache替换方法。
技术介绍
LRU(LeastRecentlyUsed)替换策略是最常用的Cache替换方法之一,其基本思想是:最近被使用过的Cache块有更大的概率在未来被重用,所以发生Cache块替换的时候,优先选择那些最近没有被使用过的Cache块。该方法在大部分情况下是实用且有效的。但是,随着人工智能应用,特别是深度神经网络的兴起,传统的LRU替换方法遇到了挑战:这类算法的数据规模往往很大,使得数据的重用距离较长,数据在被重用前很可能有较长的时间没被访问。而传统Cache中采用硬件固定的LRU替换方法,没有顾及到程序的这一访存特点,从而导致本应该得到重用的Cache块过早地被替换出去,降低了Cache的命中率,进而增大了访存开销。在文献《DOOC:一种能够有效消除抖动的软硬件合作管理Cache》(吴俊杰,杨学军,曾坤等,计算机研究与发展,2008)的1.1节中给出了一个典型例子。其他具体的例子本文档暂不赘述。
技术实现思路
为了解决现有技术中所存在的硬件固定替换方法无法顾及具体程序的访存特性问题,本专利技术提供一种基于二叉树的伪LRU硬件结构,包括:基于n路组相联Cache定义的二叉树结构和基于每个Cache块分别定义的重用信息;其中,所述二叉树包括n-1个节点,每个节点为一个比特;基于所述重用信息和访问信息对所述二叉树对应节点的比特进行修改。优选的,所述重用信息包括:预期重用计数器和保留信号;所述预期重用计数器用于当对应Cache块被访问时进行计数;所述保留信号用于存储对应Cache是否被保留。优选的,所述预期重用计数器被映射到全局地址空间。优选的,所述重用计数器在系统复位时被赋予初值。基于同一种专利技术构思,本专利技术还提供一种基于二叉树的伪LRU更新逻辑,包括:基于本专利技术提供的基于二叉树的伪LRU硬件结构:当程序访问某Cache块时,接收所述Cache的访问信息;基于重用信息和所述访问信息对所述二叉树对应节点的比特进行更新。优选的,所述基于重用信息和所述访问信息对所述二叉树对应节点的比特进行更新,还包括:基于所述访问信息修改对应Cache块所对应的预期重用计数器;基于所述保留信号值对所述二叉树节点比特进行修改。优选的,所述修改Cache块对应的预期重用计数器包括:如果所述Cache块对应的预期重用计数器大于0,则预期重用计数器在该Cache块被访问时减1,否则保持0。优选的,所述基于所述保留信号值对所述二叉树节点比特进行修改,包括:如果所述二叉树节点左分支对应的所有Cache块的保留信号都为1,则所述比特置为1;如果所述二叉树节点右分支对应的所有Cache块的保留信号都为1,则所述比特置为0;优选的,所述基于重用信息和所述访问信息对所述二叉树对应节点的比特进行更新,之前包括:如果保留信号对应路的预期重用计数器的值大于0,则对应保留信号置为1,否则,置为0。基于同一种专利技术构思,本专利技术还提供一种Cache替换方法,包括:基于本专利技术提供的基于二叉树的伪LRU硬件结构:当被引用的块在缓存中不存在时,基于比特值确定最近几次内存引用期间都没有被访问的块;将所述没有被访问的块从缓存中删除;同时将被引用的块加入所述缓存中,同时对二叉树节点比特进行修改;其中,所述二叉树对应节点的比特,基于本专利技术提供的基于二叉树的伪LRU更新逻辑进行修改。与现有技术相比,本专利技术的有益效果为:本专利技术提供一种基于二叉树的伪LRU硬件结构、更新逻辑和Cache替换方法,能够通过软件干预Cache替换方法的行为,面向人工智能等应用能有效提高Cache命中率,降低程序访存开销。附图说明图1为基于二叉树的伪LRU替换方法对应的数据结构;图2为增加了预期访问机制的伪LRU替换方法数据结构;图3为传统伪LRU算法的二叉树硬件结构;图4为在图3基础上增加了预期访问机制的伪LRU的二叉树硬件结构。具体实施方式针对上述背景中“硬件固定替换方法无法顾及具体程序的访存特性”这一问题,本专利技术提出了一种基于二叉树的伪LRU硬件结构、更新逻辑和Cache替换方法;在全局地址空间中为每一个Cache块新增了一个“预期重用计数器”,计数器可由软件进行赋值。该计数器表示了对应Cache块预期会被重用的次数。本专利技术所述替换方法在发生Cache块替换时保证以下两点:一是当Cache块实际被重用的次数没有达到计数器值之前,不会被LRU策略替换;二是若Cache块的实际被重用次数达到或者超过了计数器值,则按正常的LRU策略执行,不对原替换方法做任何改变。本专利技术与其他的Cache替换方法相比,有如下三个基本特点:一是本专利技术仅在原LRU策略的基础上对策略进行调整,而不是一个全新的替换方法。LRU策略已在实践中被证明对大多数应用是有效的,且对应的伪LRU算法硬件实现代价较小,本专利技术可最大限度地保留LRU策略的这些优点。二是本专利技术具体实施过程中,是否需要对原LRU策略进行调整、调整的力度有多大,是软件可控的。本专利技术要对原LRU策略进行调整的动机就是解决“硬件固定替换方法无法顾及具体程序的访存特性”这一问题,而对于具体程序的访存特性,软件是可以预判的。因此,本专利技术通过为软件提供接口,使其能够对替换方法施加影响,最大限度地保证了替换方法的灵活性。三是本专利技术不需要处理器新增专门的指令进行支持,不需要修改编译器。所有处理器和编译器都能够在不做任何改变的情况下,与采用了该替换方法的Cache子系统进行良好衔接。即本专利技术最大限度地确保了与现有处理器和编译器兼容。实施例1:图1显示的是基于二叉树的伪LRU替换方法对应的数据结构。这种结构中如果具有n路组相联的高速缓存,则需要n-1个存储器单元来保存块的最近访问次序,本实施例以一个4路组相联的Cache为例进行介绍,本实施例的二叉树结构对应的是一个4路组相联的Cache,采用了3个比特构成的二叉树结构,这3个比特用于保存块的历史信息,分别为:AB/CD比特、A/B比特、C/D比特。这三个比特的更新方式分别为:(1)若程序访问了“Cache块A”或者“Cache块B”,则AB/CD比特置1;若访问了“Cache块C”或者“Cache块D”,则AB/CD比特置0;(2)若程序访问了“Cache块A”则A/B比特置1;若访问了“Cache块B”则A/B比特置0;(3)若访问了“Cache块C”则C/D比特置1;若访问了“Cache块D”则C/D比特置0。即二叉树结构中各个比特的更新方式可以概括为:若访存操作落到了某比特的左分支,则该比特置1,若访存操作落到了某比特的右分支,本文档来自技高网...

【技术保护点】
1.一种基于二叉树的伪LRU硬件结构,其特征在于,包括:/n基于n路组相联Cache定义的二叉树结构和基于每个Cache块分别定义的重用信息;/n其中,所述二叉树包括n-1个节点,每个节点为一个比特;基于所述重用信息和访问信息对所述二叉树对应节点的比特进行修改。/n

【技术特征摘要】
1.一种基于二叉树的伪LRU硬件结构,其特征在于,包括:
基于n路组相联Cache定义的二叉树结构和基于每个Cache块分别定义的重用信息;
其中,所述二叉树包括n-1个节点,每个节点为一个比特;基于所述重用信息和访问信息对所述二叉树对应节点的比特进行修改。


2.如权利要求1所述的硬件结构,其特征在于,所述重用信息包括:预期重用计数器和保留信号;
所述预期重用计数器用于当对应Cache块被访问时进行计数;
所述保留信号用于存储对应Cache是否被保留。


3.如权利要求2所述的硬件结构,其特征在于,所述预期重用计数器被映射到全局地址空间。


4.如权利要求3所述的硬件结构,其特征在于,所述重用计数器在系统复位时被赋予初值。


5.一种基于二叉树的伪LRU更新逻辑,其特征在于,包括:
基于如权利要求1至4任一项的硬件结构;
当程序访问某Cache块时,接收所述Cache的访问信息;
基于重用信息和所述访问信息对所述二叉树对应节点的比特进行更新。


6.如权利要求5所述的更新逻辑,其特征在于,所述基于重用信息和所述访问信息对所述二叉树对应节点的比特进行更新,还包括:
基于所述访问信息修改对应Cache块所对应的预期重用计数器;
基于所述保...

【专利技术属性】
技术研发人员:王会权何益百刘志强王冬升张光达黄安文戴华东
申请(专利权)人:中国人民解放军军事科学院国防科技创新研究院
类型:发明
国别省市:北京;11

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

1