【发布时间】:2018-01-19 19:50:38
【问题描述】:
这应该是一个简单的问题。
假设我们有一个 CPI 为 1.5 的 3.0 gHz 处理器,它每秒执行多少条指令?只是从逻辑上思考,这将是每秒的周期数乘以每个周期的指令数......这是......
3×109 个周期/秒 × 1.5 个指令/周期 = 4.5×109 个指令/秒
有道理。好的,这是我书中的一个问题,我查找解决方案只是为了确保我理解并做对了。好吧,解决方案说它是:
3×109/1.5 = 2×109 指令/秒
这个答案来自时钟速率/CPI 部分,但我真的无法理解如何......如果你像这样子输入时钟速率/cpi: (时钟周期/秒)/(指令/时钟周期),它基本上与原始方程式相反,因为您将周期除以指令而不是将它们相乘......而且单位甚至不会抵消,您最终会得到一个周期单位2/指令×秒。我必须在这里遗漏一些完全明显的东西/搞砸基本数学,但我的豌豆大脑没有得到它。
【问题讨论】:
-
看起来 CPI 是“每个指令的周期数”,而不是每个周期的指令数,因此
CPI = 1 / (instructions per cycle),或者如果你除以 CPI,你可以乘以每个周期的指令数(反之亦然)。 -
那为什么等式说IPS =指令/时钟周期x时钟周期/秒,然后突然决定改变并使用每条指令的周期而不是每周期的指令?这些公式也应该是等价的,但是将相同的值插入它们会给出不同的答案……我仍然想知道后一个公式会产生虚假的单位测量值。感谢您的回复。
-
因为大多数人确实使用 IPC 或 IPS,而不是 CPI。大多数现代 CPU 都是超标量的,并且在 SPECcpu 等典型工作负载上每个周期(平均)实现优于 1 条指令。但是 CPI 小于 1 会导致认知失调,因为 CPU 在不到 1 个周期内实际上无法执行任何操作。
标签: cpu-architecture