Appearance
题目
下列选项中,描述浮点数操作速度指标的是( )。
错因
A
把 MIPS 当成"浮点版 MFLOPS"。MIPS = Million Instructions Per Second,衡量"每秒能跑多少百万条指令",和指令是不是浮点没关系——既包括整数指令也包括浮点指令,只看指令总条数。把它当成浮点专用指标,多半是把 "I"(Instruction)误读成了"Float"。
B
CPI = Clock cycles Per Instruction,描述的是"平均每条指令需要多少个时钟周期",衡量的是效率而不是速度——而且 CPI 越小越快,与"速度"是反向关系。即便如此,它也是"指令通用"的,和浮点无关。
C
IPC = Instructions Per Cycle,是 CPI 的倒数,描述"每个时钟周期能完成多少条指令"。同样是与指令类型无关的通用吞吐指标,不专门针对浮点。在超标量 CPU 里 IPC 可以 > 1,但仍然不是浮点速度指标。
总解析
核心区分:四个缩写虽然形似,但只有名字里**带 "FL"(Floating-point)**的才是浮点专用速度指标。
| 缩写 | 全称 | 含义 | 是否浮点专用 |
|---|---|---|---|
| MIPS | Million Instructions Per Second | 每秒百万条指令(通用) | ✗ |
| CPI | Clock cycles Per Instruction | 平均每条指令的时钟周期数(效率) | ✗ |
| IPC | Instructions Per Cycle | 每周期指令条数(CPI 的倒数) | ✗ |
| MFLOPS | Million FLoating-point Operations Per Second | 每秒百万次浮点运算 | ✓ |
MFLOPS 公式:
注意:MFLOPS 算的是浮点运算次数而不是浮点指令条数——一条 FMA(融合乘加)指令可能算 2 次浮点运算。这一区别在科学计算 benchmark 里很关键。
记忆口诀:看到 "FL" / "FLOP" 字样就是浮点;看到 "I"(Instruction)就是通用。
最终答案是 D(MFLOPS)。