每周期指令数 (IPC) 与频率

每周期指令数 (IPC) 与频率

我正在进行核心频率缩放实验,我发现随着核心频率的增加(所有其他东西保持不变,例如 ddr 频率保持不变),IPC 值会下降。有人能解释一下为什么会这样吗?

例子:

CF 1GHz,IPC为1

CF 2GHZ,IPC为0.95

CF 3GHZ,IPC为0.92

答案1

我唯一的判断是,您的测量结果存在缺陷,可能包含一些(或多或少)您的计算未考虑到的静态开销。考虑一下这个超级简化的尝试来解决这个问题:

周期 IPC号有缺陷 指令数 静态开销 “实际” IPC
1 1 1 0.111 0.889
2 0.95 1.9 0.111 0.8945
3 0.92 2.76 0.111 0.883

…其中“实际 IPC”是(指令数 - 静态开销)/周期

这看起来更有可能,不是吗?所有这些都因以下事实而变得更加复杂:除非您在裸机上执行这些测试,否则不仅仅是您的测试过程。由于并非所有指令都是平等创建的,这进一步增加了复杂性。有些指令需要更多周期来执行,有些则需要更少周期。

也许您捕获循环计数器的方法就是引入这种静态开销的原因。

答案2

看起来非常合乎逻辑的结果:

当核心频率(时钟)上升而其他所有参数保持不变时,核心速度不会改变。那么 CPU 操作只需要更多时间(以周期计算)。这意味着 每周期指令数 (IPC) 较低。

请注意,IPC 是一种非常不精确的测量方法,如上面的维基百科链接所解释的那样。

另请参阅帖子 为什么不能同时拥有高每周期指令数和高时钟速度?

相关内容