1

网络上是否有任何地方可以让我了解各种编程语言语法在处理器(Core i7 和 Core 2)周期方面的含义?在大学时,我学习了 ARM 汇编语言,我们可以映射执行减法运算符等所需的周期数。我只是想知道是否可以在 Core i7 或 Core 2 上使用更高级别的语言来做到这一点?

4

3 回答 3

8

不,这完全取决于您使用的编译器,以及您使用的优化设置等。

您可以使用自己喜欢的编译器和设置来生成汇编代码,并且可以从汇编代码中做出这些预测。

但是,请记住,在现代架构中,内存延迟和寄存器重命名等对速度的影响很大,即使从汇编代码的检查来看,这些影响也不明显。

于 2010-11-03T00:07:35.210 回答
2

通常,在高级语言中,单个语句不会清晰地映射到特定的机器代码指令序列上。编译器通常会优化事物,这将涉及指令的各种转换、安排甚至消除。因此,引用“一个for表达式需要 20 个周期”之类的指标通常没有意义。

于 2010-11-03T00:05:53.803 回答
2

您必须手动将更高级别的指令映射到汇编指令中,或者查看汇编列表。然后看这里

http://gmplib.org/~tege/x86-timing.pdf

或在这里

http://www.intel.com/Assets/PDF/manual/248966.pdf

于 2010-11-03T00:06:36.257 回答