Appearance
题目
某计算机主频为 1.2GHz,其指令分为 4 类,它们在基准程序中所占比例及 CPI 如下表所示。
| 指令类型 | 所占比例 | CPI |
|---|---|---|
| A | 50% | 2 |
| B | 20% | 3 |
| C | 10% | 4 |
| D | 20% | 5 |
该机的 MIPS 数是( )。
错因
A
把"4 种指令"误当成了 CPI 计算里的额外除数:先按加权平均算出 CPI=3,再除以 4 得到 0.75;或直接套了 这种自创公式,凑出 1200/12=100。MIPS 公式里 4(指令类型数)不参与计算,参与计算的只有"主频"和"加权平均 CPI"。
B
加权 CPI 算成了 6,常见诱因是没把百分号转成小数就直接做加权求和:,然后想着"再除一下"——若除以最大的占比 50,得 CPI=6,1200/6=200。正确做法是除以总占比 100(或一开始就用小数),加权 CPI 应是 3,不是 6。
D
只看了占比最大的 A 类指令(50%、CPI=2),把 A 类的 CPI 直接当成整个程序的平均 CPI: MIPS。错在忽略了 B/C/D 类指令对平均 CPI 的拉高作用——只要每类都参与执行,平均 CPI 就一定大于任何单一类的 CPI 中的最小值。
总解析
两步公式:
- 加权平均 CPI
- MIPS
第一步:加权 CPI
| 指令类型 | 占比 | CPI | 占比 × CPI |
|---|---|---|---|
| A | 0.5 | 2 | 1.0 |
| B | 0.2 | 3 | 0.6 |
| C | 0.1 | 4 | 0.4 |
| D | 0.2 | 5 | 1.0 |
| 合计 | 1.0 | — | 3.0 |
加权平均 CPI = 3。
第二步:MIPS
最终答案是 C(400)。
易错点速查:
- "MIPS"中的 M 是 ;主频是 GHz 时记得多换一次
- 加权 CPI 必须用占比加权,不能简单算术平均( 是错的,正巧本题里两者数值差不多,更要警惕)
- 一类指令的 CPI 不能代表整个程序的 CPI