文件名称:分支指令的基本属性-快充国标报文解析
文件大小:488KB
文件格式:PDF
更新时间:2024-06-23 13:15:51
cpu 分支预测
2.1 分支指令的基本属性 分支指令总的来说有三个基本属性:分支指令的类型、分支指令发生的频率和分支指令的成 功率。分支指令的类型可以分为条件分支指令和无条件分支指令,由于分支指令目标地址的不同, 无条件分支又可以进一步分为立即分支指令,间接分支指令和返回分支指令。立即分支指令就是 分支的地址就在分支指令中,一般都是直接跳转,比如跳转(jump)这类指令;间接分支就是分 支的目标地址不在分支指令中,而是从其他寄存器中取得;返回型分支的分支目标地址是从链接 寄存器(Link register)或者堆栈中得到,一般是程序返回使用。 图 1 不同分支类型所占 SPEC 程序比例 如图 1 所示,统计分析SEPC程序结果表明,分支指令中 72%是条件分支,17%是无条件立即 跳转指令,10%是返回指令,1%是间接分支指令。其中立即分支跳转可以采用BTB(Branch Target Buffer,分支预测缓冲区)这种方式精确预测,返回型跳转可以采用返回地址栈(RAS1)精确预测[5] , 间接分支跳转的预测一直没什么好的办法,在[6]中进行了讨论。所以分支预测大量的工作是进行 条件分支预测。 图 2 分支指令执行的频率分布 图 2 说明了 SPEC 程序条件分支预测执行的频率分布。从图中我们可以看到,大部分条件分 支在程序运行过程中,仅仅执行几次,平均来说所有分支指令的 53%仅仅执行 99 次或者更少, 只有 11%的分支执行了超过 10000 次或者更多。 1 Return Address Stack