粗粒度的末级高速缓存旁路方法技术

技术编号:7759038 阅读:243 留言:0更新日期:2012-09-14 00:52
本发明专利技术涉及一种粗粒度的末级高速缓存旁路方法,并把这种方法叫做“Global?Bypass”,该方法是把旁路视为一种和替换等同的策略选择,而不是补充。该方法在两种模式间进行切换:旁路模式和替换模式;在旁路模式中,所有的失效都被旁路,而不去评估每个个体访问的特征。在替换模式中,Global?Bypass使用末级高速缓存的基本替换算法进行替换,该基本替换算法可以是任何已有的替换算法,由于不需要对个体的访问特征进行评估,所以Global?Bypass的实现代价很小。

【技术实现步骤摘要】

本专利技术涉及处理器中末级高速缓存的管理策略,主要通过使用一种粗粒度的旁路策略Global Bypass来提高系统的性能和能量有效性。
技术介绍
现在功耗已经成为单核和多核处理器扩展的关键限制因素,而末级高速缓存已经被证明是能量有效的。因此在未来的处理器中会有更大的末级告诉缓存。而末级高速缓存的管理策略对于性能至关重要。在末级高速缓存中,由于大量的缓存块的重用距离大于缓存的容量,因此常用的LRU和其近似算法的性能不佳。之前有很多工作试图捕获这些远距 离重用块的访问,它们主要可以分为四种替换算法、死亡块预测、旁路以及自适应算法。替换算法DIP通过改变缓存块的插入策略,使得已经在缓存中的远距离重用块在缓存中存活更长的时间。使得这些块在被排出前可以得到命中。RRIP进一步通过区分在缓存中被访问过的块和没被访问过的块,使得前者在缓存中停留的时间更长。Pseudo-LIFO通过优先排出栈顶端的块,使得栈低端的块被保存的时间更长。死亡块预测如果一个块在被高速缓存排出之前没有被使用,则称这个块是死亡块。死亡块预测技术通过预测死亡块并优先的旁路或者排出它们来提高性能。根据预测的方法,死亡块预测技术可以分为基于踪迹的、基于时间的和基于计数器的。Cache burst方法通过对合并连续的访问来提高预测的准确率。基于采样的死亡块预测方法通过采样一部分访问来训练预测器,从而减少预测器中的冲突,进而提高预测准确率。旁路之前有很多工作通过预测并旁路那些在被排出之前没被使用的块来提高性能。根据预测的方法可以分为基于PC的和基于地址的。LRF通过结合基于PC和基于地址的预测器来提高性能。最近有人提出了一个针对独占末级高速缓存的旁路和插入方法。DSB通过在失效时记录进入块和排出块的对,然后比较它们中谁先被访问来决定旁路的使用概率。NUcache通过把缓存中单独划分出一块区域来保存远距离重用块。只有由选定的PC带入的块才能进入这个区域,而其他的块被旁路。自适应算法该类方法通过在两个或多个策略中动态选择当前性能最好的来提升性能。SBAR和Adaptive Caches提出使用额外的标签组来同时实现多个替换算法。DIP提出给每个策略分配一组专用的缓存组来比较它们的性能。以上这些方法或者性能提升有限,或者需要大量的存储开销和对硬件的改动。有些甚至需要PC等很难在末级高速缓存中得到的信息。本专利技术旨在提出一种在需要很少的硬件开销和对原有设计改动很小的情况下可以达到高性能的末级高速缓存管理策略。
技术实现思路
本专利技术要解决的技术问题是提出一种可以在较小的硬件代价下显著提高现有末级高速缓存的性能的。本专利技术所采用的技术方案为一种,并把这种方法叫做“Global Bypass”,该方法是把旁路视为一种和替换等同的策略选择,而不是补充。该方法在两种模式间进行切换旁路模式和替换模式。在旁路模式中,所有的失效都被旁路,而不去评估每个个体访问的特征。在替换模式中,Global Bypass使用末级高速缓存的基本替换算法进行替换,该基本替换算法可以是任何已有的替换算法。由于不需要对个体的访问特征进行评估,所以Global Bypass的实现代价很小。对于Global Bypass来说最重要的是如何在两种模式之间切换。由于它是一种粗粒度策略,因此需要精确的方法来指导模式切换。因此进一步提出了通过学习最优旁路算法的行为来指导模式切换。这种方法称之为“Optimal Bypass Assertions”。设置了三条Optimal Bypass Assertions :在一次失效中,如果进入块的重用距离小于排出块的重用距离,那么可以判定最优旁路算法不使用旁路(Assertion I);如果进入块的重用距离大于排出块的重用距离,那么可以判定最优旁路算法使用旁路(Assertion 2);如果进入块和排出块的重用距离都为无穷大(它们的重用距离相等),那么可以判定最优旁路算法使用 旁路(Assertion 3)。进一步的说,本专利技术使用一个统一的表RHT来记录失效时的进入块和排出块对;该表可以是直接映射、全相连或组相连。并使用一个分区域的饱和计数器表BDCT来对每个区域分别指导模式切换。通过在RHT每项中记录进入块是否是预取访问,并在BDCT中给每项安排两个分别针对普通访问和预取访问计数器来支持对普通访问和预取访问分别进行模式切换的指导。通过在RHT每项中记录进入块是哪个核发出的访问,并给每个核分别安排一个BDCT来分别指导不同核访问的模式切换。本专利技术的有益效果是通过使用一种粗粒度的旁路策略Global Bypass来提高系统的性能和能量有效性,可以在较小的硬件代价下显著提高现有末级高速缓存的性能。附图说明下面结合附图和实施例对本专利技术进一步说明。图I描述了用于实现“Global Bypass"的总体结构;图2描述了 “Global Bypass"的算法流程;图3举例描述“Global Bypass"的工作流程。具体实施例方式现在结合附图和优选实施例对本专利技术作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本专利技术的基本结构,因此其仅显示与本专利技术有关的构成。如图I所不为“Global Bypass"的总体结构。它使用“Global Bypass Monitor”来从末级告诉缓存获取相应的信息并通知其是否旁路当前访问。从图中可见Global Bypass不需要对原有的告诉缓存结构进行修改。Global Bypass Monitor主要使用RHT和BDCT两个结构来记录Optimal Bypass Assertions并指导模式的切换。RHT :该结构被用来记录每次失效时的进入块和排出块对,从而在后续访问中检测Optimal Bypass Assertions的发生。RHT每项中包括,I个有效位,4位用于实现RHT的替换算法,2位用于标示进入块由哪个处理器带入末级高速缓存中,I位标示是否是预取访问。我们使用了 I个有256项,16路组相连的RHT。BDCT :该结构是一个分区域的饱和计数器BDC表。它被用于记录对每个存储区域最优旁路算法使用了更多的旁路还是替换,从而进行指导模式切换。如果BDC大于等于0,则表明应该使用旁路模式,否则应该使用替换模式。D-BDC和P-BDC分别用于指导正常访问请求和预取访问请求。对于多核处理器,我们为每个核安排一个BDCT来指导该核的模式切换。我们的方法用很少的代价就可以支持预取和多核处理器。如图2所示为“Global Bypass"算法的伪码实现。在每次访问中,首先在RHT中检查Assertion I和Assertion 2是否满足,并相应的更新BDC。如果该次访问失效,贝Ij在RHT中检查排出块是否满足Assertion 3。然后RHT决定是否记录该次失效。由于RHT只有256项,因此我们只在RHT中有无效项或一个很小的概率发生时才记录失效。最后根据相应的BDC的值,来决定这次失效是否被旁路。特别当Assertion I被满足时,无论BDC为何值该失效都不被旁路。我们把这种情况称为“第二次访问插入”如图3所示我们举例描述“Global Bypass"的工作流程。我们使用了如下的访问示例来说明Global Bypass和NRU(NRU本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:程旭李凌达佟冬谢子超陆俊林
申请(专利权)人:北京北大众志微系统科技有限责任公司
类型:发明
国别省市:

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

1