您的位置:首页 > 其它

随笔三十六:条件传送指令

2012-07-17 17:46 344 查看
实现条件操作的传统方法是利用控制的条件转移。这种机制简单而通用,但是在现代处理器上,它可能回非常的低效率。

数据的条件转移是一种替代的策略。这种方法先计算一个条件操作的两种结果,然后再根据条件是否满足从而选取一个。只有在一些受限制的情况下,这种策略才可行,但是如果可行,就可以用一条简单的条件传送指令来实现它。条件传送指令更好地匹配了现代处理器的性能特征。

基于条件数据传送的代码比基于条件控制转移的代码性能好,原因和现代处理器如何运行有关。(流水线)

如何确定分支预测错误的惩罚

假设预测错误的概率是p,如果没有预测错误,执行代码的时间是TOK,而预测错误的处罚是TMP。那么,作为p的一个函数,执行代码的平均时间是Tavg(p)=(1-p)TOK
+ p(TOK + TMP)
= TOK +
TMP。如果已知 TOK
和 Tran(当 p = 0.5 时的平均时间),如何确定TMP。将参数带入等式,有 Tran
= Targ(0.5) =
TOK +
0.5TMP,所以有 TMP = 2(Tran -
TOK)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: