Skip to content

2026年 408 计算机组成原理 第 44 题

计算机组成原理2026年综合题14分

题目

假定 43 题中计算机 C 的部分数据通路如题 44 所示。

image-20260501020122443

图中带箭头虚线代表控制信号,IR.rt、IR.rs 分别表示 IR 中的 rt、rs 字段,IR₁₁₋₀ 为 IR 的低 12 位,要求取指令周期完成 PC 增量操作,请回答下列问题

(1)①和②是同一类部件,其名称是什么(1 分)

(2)I 型指令中 imm8 可以是带符号或无符号整数,M 型指令中 offset 是带符号整数,则 EXTOP 至少有几位?为什么?(2 分)

(3)取指周期中 MARSrC、ALUA SrC、ALUB SrC、RegWr 的取值各是什么?(4 分)

(4)左移指令周期中 ALUB SrC、RegWsrc、RegDst、RegWr 的取值各是什么?Extop 是否可以与 M 型指令中的 EXTop 相同?为什么?(2 分)

解析

本题在 2026-43 的指令系统之上,就一个单总线 / 多路选择器风格的 CPU 数据通路考查 多路选择器识别、立即数扩展宽度、取指阶段控制信号、左移指令控制信号

通用思路:每一类指令在每一阶段都对应一组确定的控制信号取值。读题时先想清楚"这一拍数据流向哪里",再去逐一确定每个控制信号。

控制信号速查(以图 44 约定):

信号含义
MARSrcMAR 取值来源:PC 还是 ALU 输出
ALUASrcALU 的 A 端:PC 还是寄存器
ALUBSrcALU 的 B 端:寄存器 / 常数 / 立即数
RegWr是否写寄存器(0 = 不写)
RegWsrc写回数据来自 ALU 还是 MDR
RegDst写到 R[rs] 还是 R[rt]
EXTop立即数扩展模式:零扩展 / 符号扩展

(1) ① 和 ② 是什么部件 [1 分]

多路选择器(MUX)。

理由: 不同指令类型对寄存器编号的取法不同——

  • R 型指令读 / 写 rs、rt(来自 IR.rs / IR.rt 字段);
  • M 型指令固定取 R[0] 作存数 / 取数寄存器、R[15] 作基址。

需要在 "IR 字段" 与 "固定 0 / 15" 之间二选一 → 多路选择器。

(2) EXTOP 至少几位 [2 分]

1 位。

理由: 题干给出三类立即数情形:

  • I 型 imm8 当带符号 → 符号扩展;
  • I 型 imm8 当无符号 → 零扩展;
  • M 型 offset 当带符号 → 符号扩展。

总共只有 零扩展 / 符号扩展 两种模式,1 位即可编码(0 表零扩展,1 表符号扩展)。

易错点: "EXTop 几位"看的是有多少种扩展模式,不是有多少种指令。本题虽然有 R/I/M 三种指令格式,但扩展操作只有 2 种,故 1 位足够。

(3) 取指周期的 4 个控制信号 [4 分]

取指阶段要做的事:

  1. 把 PC 当作主存地址送 MAR;
  2. 读主存把指令送 IR;
  3. 同时把 PC + 2 算出,更新 PC(题目要求"取指周期完成 PC 增量")。

逐个确定:

信号取值理由
MARSrc0MAR 地址来自 PC(不是 ALU 输出)
ALUASrc0ALU 的 A 端用 PC(要算 PC + 2)
ALUBSrc1ALU 的 B 端取常数 2(PC 增量用常量)
RegWr0取指阶段不写通用寄存器

编者注(生僻术语): "取指期完成 PC 增量"是教学型 CPU 的常见简化——把 PC 自增的 ALU 操作和指令读取并行做,省一个时钟周期。真实 CPU 里通常用 专用 PC 加法器(不与主 ALU 共用),同样能并行。

(4) 左移指令周期的控制信号 + EXTop 是否同 M 型 [2 分]

左移指令是 R 型(OP1 = 0010,从 2026-43 (4) 推得 num 字段直接当移位位数)。

执行阶段动作:把寄存器内容左移立即数指定的位数,写回 rt。

信号取值理由
ALUBSrc2ALU B 端取扩展器输出的立即数(移位量)
RegWsrc1写回数据来自 ALU 输出(不是 MDR,未访存)
RegDst1写到 R[rt](按指令格式)
RegWr1必须写寄存器(结果 R[rt] ← R[rt] << num)

EXTop 与 M 型的对比:

  • M 型:offset 是带符号整数 → EXTop = 1(符号扩展);
  • 左移指令:num 字段是无符号移位位数(从来不是负移位)→ EXTop = 0(零扩展)。

结论:左移指令与 M 型的 EXTop 不同。 左移用零扩展,M 型用符号扩展。

易错点: "立即数扩展"不是只有一种——要看立即数的语义。地址偏移可正可负,必须符号扩展;移位位数恒为非负,零扩展即可。两者使用同一个扩展器但 EXTop 取值相反。

最后更新:

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