处理器加速计算差异

Processor Speedup Calculation Difference

我想了解为什么阿姆达尔定律不适用于这种情况?

假设我们有两个配置

配置 1 具有 L1 访问延迟(hitDelay 和 missDelay 为 1 个周期)配置 2 具有 L1 访问延迟为 7 个周期。

假设加载和存储占处理器时间的 30%,我们预计加速为 1/(0.7 + 0.3/7) = 1.35

然而,当我 运行 在模拟基于 ROB 的处理器并使用周期计算加速的实际模拟器上的两种配置时,加速为 1.12。

为什么加速与使用阿姆达尔定律计算的不同。我在想阿姆达尔定律由于某种原因不适用吗?

Amdahl 的“定律”假设不同部分的时间不重叠。

乱序执行的 ROB 的全部意义在于找到指令级并行性并隐藏延迟。这就是为什么整个指令序列的性能不是每条指令的任何单个“成本”数字的总和,最简单的 CPU 除外。

例如What considerations go into predicting latency for operations on modern superscalar processors and how can I calculate them by hand?(现代 x86 使其变得更加复杂,因为每条指令可能具有不同的 前端 微指令成本,但即使使用更简单的 RISC 机器,您仍然有后端端口压力与可能的延迟瓶颈)。