随笔三十六:条件传送指令
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)。
数据的条件转移是一种替代的策略。这种方法先计算一个条件操作的两种结果,然后再根据条件是否满足从而选取一个。只有在一些受限制的情况下,这种策略才可行,但是如果可行,就可以用一条简单的条件传送指令来实现它。条件传送指令更好地匹配了现代处理器的性能特征。
基于条件数据传送的代码比基于条件控制转移的代码性能好,原因和现代处理器如何运行有关。(流水线)
如何确定分支预测错误的惩罚
假设预测错误的概率是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)。
相关文章推荐
- 条件传送指令
- 随笔二十七:数据传送指令
- 32位汇编语言学习笔记(11)--条件传送指令
- 条件传送指令
- 汇编基础教程(二)——常用汇编指令之传送指令
- 条件传送与分支预测.
- Delphi 的编译指令(3): 常用的预定义条件标识符
- lea地址传送指令
- 数据传送指令
- ;用串传送指令 将data段中的第一个字符串复制到它后面的空间
- Preprocessor directives:预处理指令,宏定义,行控制,条件包含,错误提示,源文件包含,Pragma
- Dll中导出导入时巧用条件编译指令共享头文件
- JAVA 并发编程随笔【六】线程的竞态条件与临界区
- JAVA 并发编程随笔【六】线程的竞态条件与临界区
- LDR伪指令LDR数据传送指令的区别
- 【C语言】16-预处理指令2-条件编译
- 地址传送指令LEA,LDS,LES;
- 数据传送指令MOV
- 条件跳转指令 383
- uupick命令_Linux uupick 命令用法详解:Linux uupick命令处理传送进来的文件。 当其他主机通过UUCP将文件传送进来时,可利用uupick指令取出这些文件。