Skip to content

2020年 408 计算机组成原理 第 12 题

计算机组成原理2020年选择题2分

题目

下列给出的部件中其位数(宽度)一定与机器字长相同的是( )。

I、ALU II、指令寄存器 III、通用寄存器 IV、浮点寄存器

错因

A

把 Ⅱ(指令寄存器)当成与机器字长相同。但指令寄存器的位数 = 指令字长——而指令字长不一定等于机器字长。例如某些 RISC 机定长 32 位指令,但机器字长可能是 64 位;变长指令机(x86)的 IR 通常按"最长一条指令"算,更与机器字长无关。

C

漏选 Ⅰ(ALU)但选了 Ⅱ。同样把 IR 当机器字长(错),且漏掉了 ALU——ALU 是数据通路的核心,要做整数运算,宽度必然 = 整数字宽 = 机器字长。

D

把 Ⅱ、Ⅲ、Ⅳ 都选上。三个判断都错:

  • Ⅱ(IR)= 指令字长(不一定 = 机器字长)
  • Ⅳ(浮点寄存器)通常更宽(32 位机的浮点寄存器常 64/80 位)
  • 真正与机器字长一致的只有 Ⅰ ALU 和 Ⅲ 通用寄存器

总解析

机器字长的定义:CPU 一次能处理的二进制数据的位数 —— 等于整数运算单元的位宽通用整型寄存器的位宽

逐项判断

部件位宽决定因素是否 = 机器字长
Ⅰ ALU整数运算的位宽✓ 必须 = 机器字长
Ⅱ 指令寄存器(IR)指令字长✗ 不一定(指令字长 ≠ 机器字长)
Ⅲ 通用寄存器(GPRs)整数寄存器的位宽✓ 必须 = 机器字长
Ⅳ 浮点寄存器IEEE 754 浮点格式宽度✗ 不一定(常为 64 / 80 / 128 位)

为什么 ALU 和 GPRs 必然等于机器字长

机器字长本质上就是整数 ALU 的位宽——CPU 能一次"加 / 减 / 与 / 或"多少位,就叫机器字长。整数 GPRs 必须装下一个整数字,所以也是相同的宽度。两者是机器字长的定义对象,不可能不一致。

为什么 IR 和浮点寄存器不一定相同

部件与机器字长的关系
指令寄存器 IRIR 装一条指令,宽度 = 指令字长。指令字长可以是机器字长的 0.5 / 1 / 2 倍,甚至变长(如 x86 指令 1~15 字节)。机器字长 32 位的处理器可能用 16 位指令、32 位指令、混合指令
浮点寄存器浮点格式独立于整数字长。32 位字长机也常装 64 位浮点(IEEE 754 双精度)、80 位扩展精度(x87)

最终答案是 B(Ⅰ、Ⅲ)

对照表(典型 32 位机):

部件位宽
机器字长32
ALU(整数)32
整数 GPRs(如 EAX、EBX)32
指令寄存器 IR通常 32(定长指令机),变长则按最长指令
浮点寄存器通常 64(IEEE 754 双精度)或 80(x87 扩展)
段寄存器 / 控制寄存器16 / 32 / 64(视具体寄存器)

易错点速查

  1. 机器字长定义为整数运算单元位宽 → ALU 和 整数 GPRs 一定相同
  2. 指令字长 ≠ 机器字长 —— 单独的概念
  3. 浮点寄存器为支持双精度通常更宽,与机器字长无强约束

最后更新:

⚠️ 这道题暂未配可视化,欢迎在 CodeBrick 反馈区告诉我们你想看哪道题