AMD四核9月10日发布 K10新品全面解析
● Barcelona新特性解析:512级间接分支预测
听起来好象Barcelona中关于SSE128的改进很重大,但实际上这只不过是新架构改变中的九牛一毛。下面我们来谈谈更为精彩的branch predictor分支预测器。
一般来讲,处理器的分支预测精准度取决于设计架构的深度和广度。K8在分支预测方面的表现出色,对架构优化的很好。但Intel Pentium 4和Pentium M在这方面做的更好,这也让AMD看到了提升的空间。
Barcelona中加入了512级间接分支预测(Indirect Branch Predictor),所谓间接分支预测是指在运用时并不是立即分支,而是从寄存器中装载需要的预测目标,它实际上是一个首选目标地址的历史记录表。
间接分支预测(Indirect Branch Predictor)在运用时并不是立即分支,而是从寄存器中装载需要的预测目标,它实际上是一个首选目标地址的历史记录表。在ROB和RS需要间接分支的时候它就可以提供帮助,ROB和RS就可以快速提取到适用的结果,这与P6构架用可预测的条件分支替换间接分支来改善性能是相反的。
在Prescott中,由于加入间接分支预测器,结果使SPEC CPU2000测试软件中12%的分支预测错误,但是AMD和Intel在算法结构上的区别则不被公开,在SPEC CPU2000的253.perlbmk测试项目中,非预测分支减少是非常明显的,达到了将近55%。
间接分支预测并不是Barcelona唯一的性能提升亮点,回归堆栈(return stack)大小较K8有双倍大小的改进,举个例子,在一个很长的命令条中,命令代码包括了很多子程序(比如递归函数),CPU实际上会用完所有空间来纪录它的路径,一旦开始丢失回归地址的路径,就会导致无法进行下一步的分支预测,双倍大小的设计正好是为了解决这个问题,据说这个改进是在收到一个大型软件公司的请求才确定的。