x86和x64处理器上CPU指令的延迟

Modified on: Mon, 11 Feb 2019 15:00:02 +0800

我正在寻找一些可以帮助我计算汇编代码效率的表或类似的东西。

据我所知,位移需要1个CPU时钟,但我真的在看多少需要加法(减法应该采用相同的),乘法以及如果我知道正在划分的值,如何大概计算除法时间。

我真的需要有关整数值的信息,但也欢迎浮点执行时间。

作者:ST3

最佳答案

通常,如果参数位于流水线各个阶段的寄存器中,则每个操作都需要一个时钟周期执行。

延迟是什么意思?操作在ALU中花费了多少个周期?

您可能会发现此表有用:
http://www.agner.org/optimize/instruction_tables.pdf

由于现代处理器是超标量且可以无序执行,因此每个周期的总指令通常超过1。
宏命令的参数是最重要的,但操作也很重要,因为除法需要的时间超过XOR(<1周期延迟)。

如果它们很复杂(例如REP命令或更糟糕的MWAIT),许多x86指令可能需要多个周期才能完成某些阶段。

作者:Jon Brauer

相关问答

添加新评论