【发布时间】:2012-01-28 14:01:03
【问题描述】:
在this post的“示例”部分,作者列出了所有内存组件寄存器/L1/L2/RAM的延迟...我的问题是:您如何测量(在线查找)真正的延迟是多少对于任何给定的芯片?比方说
model name : Intel(R) Core(TM)2 Duo CPU E4600 @ 2.40GHz
stepping : 13
cpu MHz : 1200.000
我也尝试从英特尔手册中挖掘信息,但在我的一生中,这些内容非常庞大,我不知道在哪里可以找到这些信息。
谢谢。
【问题讨论】:
-
CPU 延迟有点棘手 - 指令可以流水线化,因此测量起来有些困难 - gmplib 有一篇论文简要介绍了它。 gmplib.org/~tege/x86-timing.pdf 简而言之,寄存器延迟不是一件简单的事情——你可以“执行”一条指令,它可能看起来已经完成,但在你检索到结果之前,它可能实际上并没有完成执行。智能编译器会非常努力地对指令进行排序以利用这一点。 (寄存器延迟取决于当前 CPU 状态/之前执行的指令)