ITTAGE分支预测器 “A 64-Kbytes ITTAGE indirect branch predictor”

ITTAGE:Indirect Target TAgged  GEnometric legnth predictor。

ITTAGE分支预测器 “A 64-Kbytes ITTAGE indirect branch predictor”_第1张图片

ITTAGE分支预测器 “A 64-Kbytes ITTAGE indirect branch predictor”_第2张图片

 provider component:最终提供预测。

ulternate prediction(altpred):provider component发生miss时提供预测。

原文:“We define the provider component as the predictor component that ultimately provides the prediction. We define the alternate prediction altpred as the prediction that would have occurred if there had been a miss on the provider component. If there are tag hits on T2 and T4 and tag misses on T1 and T3,T4 is the provider component and T2 provides altpred.”

预测规则:和TAGE一样,选择tag命中的具有最长历史的组件的预测结果。若没有tag命中则采用默认预测器的预测结果。 

The optimization for weak confidence counters:当tag匹配的项的置信度计数器为0时,altpred有时比正常预测更准确。因此在实现中使用一个4-bit计数器(USE ALT ON NA)动态监测这一点。

原文:Prediction computation summary Therefore the prediction computation algorithm is as follows:
1. Find the longest matching component and the alternate component.
2. if (the confidence counter is non-null ortor and a short path history (limited to 1 bit per USE ALT ON NA is negative) then the provider component provides the prediction else the prediction is provided by the alternate component.”

更新预测器

更新u-bit: 当实际预测正确而altpred不正确时,provider component的u-bit被set。

u-bit重置规则:分配新项时,动态监测在一次错误预测后试图分配新项时成功和失败的次数。该监测由一个8-bit计数器(TICK)表征,当失败的次数超过成功的次数时,计数器饱和,则重置该预测器的所有u-bit。

利用 target locality :在预测器的一项中,目标区域(target field)代表着主要的存储开销。分支目标地址可能比较分散,但所有的 benchmark 中的分支目标区域少于128 256Kbytes。因此,预测器每项中的目标区域(32 bits)被替换位一个区域偏移(Region offset ,18 bits)和一个区域指针(Region pointer,7 bits)从而每项节省了7 bits。此外,还需增加一个128项的目标区域表(region target table)以重构完整的地址,每项包括一个14-bit 的区域地址和一个有用位以进行替换。区域指针用于索引区域表,确定是128个中哪一个256 Kbytes区域,得到14位区域地址,再加上区域偏移量,从而构成完整的地址。

你可能感兴趣的:(Paper,reading,of,Branch,Prediction,硬件架构)