其他分享
首页 > 其他分享> > 2bc-gskew:De-aliased hybrid branch predictors(1999)

2bc-gskew:De-aliased hybrid branch predictors(1999)

作者:互联网

混合预测器:包括 X 个预测器和一个元预测器,每个预测器组件提供一个预测,元预测器选择一个作为最终预测。理想情况下,一个混合预测器应由于其所有组件。

2bc-gskew branch predictor:将e-gskew和一个双模态分支预测器相结合,包括四个同样的 bank,即e-gskew中的3个bank加上一个元预测器。

1 分支别名/混叠(aliasing)

1.1 什么是分支别名/混叠(aliasing)

        多组分支信息向量共享预测表中的同一项,导致这些分支预测相互干扰。

1.2  分支别名分类:

        【1】中根据其结果分为:destructive、harmless、constructive,其中destructive和harmless别名占绝大多数;

        【2】中根据其来源分为:compulsory、conflict、capacity,其中conflict是主要来源。

1.3  减少分支别名的方法

        根据分类【1】减少destructive混叠的预测器:The Agree predictior、Bi-Mode predictor

        根据分类【2】减少capacity混叠的预测器:The Filter mechanism

        根据分类【2】减少conflict混叠的预测器:The Skewed Branch Predictor(即gskew)、e-gskew

e-gskew:在gskew的基础上,为了限制capacity混叠的影响,将其中一个表只由分支地址索引(而非地址和全局历史哈希索引)。

        同时减少上述混叠的方法:带有双模态表的混合预测器(YGAS预测器其实也是一种混合预测器),其中双模态表的必要性在于:(1)在上下文切换时两级自适应预测器预热期间,双模态表的预测比两级自适应预测器更准确;(2)对于具有偏置性的分支,双模态表用于选择出正确的预测结果,该表出现破坏性混叠的可能性低于两级预测器。

2  2bc-gskew:结合e-gskew 和一个双模态预测器

为什么提出该预测器?

同等硬件预算下,混合预测器相比单一预测器可获得更高的预测准确率,上述那些“de-aliased”的预测器则是组件首选。

 2.1  结构

        2bc-gskew 共包括四个 2-bit 计数器 bank:BIM、G0、G1、Meta。

        bank BIM:双模态预测器,也是e-gskew预测器的一部分;

        bank G0/G1:e-gskew的另外两个bank;

        bank Meta:元预测器。对于较小的预测器,使用分支地址索引;对于中型/大型预测器,使用分支历史和分支地址共同索引更有效。

2.2  部分更新

        1. 预测错误时,e-gskew 预测器的三个 bank 都需要更新;

        2. 预测正确时,只有参与正确预测的 bank 被更新。即,如果被选择的预测器是双模态预测器,则只更新 bank BIM ;如果被选择的预测器是e-gskew预测器,则只更新提供了正确预测的bank。

         3. 元预测器只有当两个预测器预测结果不同时更新。 

参考文献

【1】A comparative analysis of schemes for correlated branch prediction.

【2】Trading conflict and capacity aliasing in conditional branch predictors.

标签:模态,predictors,混叠,aliased,De,预测器,gskew,bank,分支
来源: https://blog.csdn.net/qq_40379102/article/details/122648565