Skip to content

2022年 408 计算机组成原理 第 43 题

计算机组成原理2022年综合题15分

题目

某 CPU 中部分数据通路如图所示,其中,GPRs 为通用寄存器组;FR 为标志寄存器,用于存放 ALU 产生的标志信息;带箭头虚线表示控制信号,如控制信号 ReaD. Write 分别表示主存读、主存写,MDRin 表示内部总线上数据写入 MDR,MDRout 表示 MDR 的内容送内部总线。

image-20260501021849639

(1) ALU 的输入端 A. B 及输出端 F 的最高位分别为 A15 、 B15 及 F15 ,FR 中的符号标志和溢出标志分别为 SF 和 OF,则 SF 的逻辑表达式是什么?A 加 B. A 减 B 时 OF 的逻辑表达式分别是什么?要求逻辑表达式的输入变量为 A15、B15 及 F15 。

(2) 为什么要设置暂存器 Y 和 Z?

(3) 若 GPRs 的输入端 rs、rd 分别为所读、写的通用寄存器的编号,则 GPRs 中最多有多少个通用寄存器?rs 和 rd 来自图中的哪个寄存器?已知 GPRs 内部有一个地址译码器和一个多路选择器,rd 应该连接地址译码器还是多路选择器?

(4) 取指令阶段(不考虑 PC 增量操作)的控制信号序列是什么?若从发出主存读命令到主存读出数据并传送到 MDR 共需 5 个时钟周期,则取指令阶段至少需要几个时钟周期?

(5) 图中控制信号由什么部件产生?图中哪些寄存器的输出信号会连到该部件的输入端?

解析

本题考查单总线 CPU 的若干"为什么这样设计"的问题:标志位逻辑表达式(数字逻辑层面)、暂存器存在的意义、寄存器组的查找电路、取指控制信号序列。

记号约定: 表示 X 取反。最高位是符号位(16 位运算)。

(1) SF / OF 的逻辑表达式 [4 分]

SF(符号标志):

直接等于结果最高位:

OF(加法溢出):

加法 溢出条件:两个加数同号但结果异号。

  • A、B 同负且 F 为正:
  • A、B 同正且 F 为负:

OF(减法溢出):

减法 溢出条件:A、B 异号且结果与 A 异号。

  • A 负、B 正、F 正:
  • A 正、B 负、F 负:

易错点: 减法的溢出条件不是"同号"而是"异号"——这是因为 ,"−B"的符号与 B 相反,所以 A 与 −B "同号" 等价于 A 与 B "异号"。

(2) 为什么要设置暂存器 Y 和 Z?[3 分]

单总线结构的核心约束: 每一时刻,总线上只能有一个数据。

问题 1(ALU 输入端): ALU 需要两个操作数同时进入 A、B 端口。但单总线一拍只能送一个操作数 → 必须先用 Y 暂存第一个操作数,下一拍再把第二个操作数从总线送 ALU 的另一端。

问题 2(ALU 输出端): ALU 算完结果直接挂在输出端,但此时总线可能正被"送第二个操作数"占用,无法立刻把结果送出 → 必须用 Z 暂存 ALU 输出,等总线空出来再把结果送目的寄存器。

编者注(生僻术语): Y / Z 这两个寄存器在 408 教材中通常叫"前操作数暂存器"和"输出暂存器"。多总线 CPU(如双总线、三总线)就可以省略它们——A、B 操作数同时从两条总线送入 ALU,结果直接走第三条总线送回。

(3) GPRs 容量、rs/rd 来源、rd 接译码器还是 MUX?[3 分]

GPRs 最多寄存器数:

rs / rd 字段都是 4 位 → 编码 个寄存器。

rs / rd 来源:指令寄存器 IR——它们是指令字段的一部分,自然来自当前正在解码的指令。

rd 接译码器还是 MUX?

  • rs(读出)多路选择器(MUX):从 16 个寄存器中"选"一个的内容输出;
  • rd(写入)地址译码器:把 4 位编号"译"成 16 路 1-hot 信号,控制目标寄存器写入端。

口诀:读用 MUX、写用 Decoder

易错点: rd(写)一定接译码器——译码器输出 1-hot 选通信号驱动写使能;MUX 是用于读取数据。把 rd 接 MUX 会变成"输出端选 1 个"——但写入需要选中"哪个的写使能",逻辑根本不同。

(4) 取指阶段控制信号序列与时钟周期数 [3 分]

控制信号序列:

步骤控制信号含义
PCout, MARin把 PC 内容送总线,写入 MAR
Read启动主存读,主存数据送 MDR
MDRout, IRin把 MDR 内容送总线,写入 IR

时钟周期数:

  • ① 1 周期;
  • ② 5 周期(题干给出);
  • ③ 1 周期;

(5) 控制信号产生部件 + 输入信号 [1 分]

产生部件: 控制部件(CU,Control Unit)。

输入信号: 来自 指令寄存器 IR(提供操作码用于译码生成动作)和 标志寄存器 FR(提供 SF / OF 等条件标志,供条件转移类指令决策)。

编者注(生僻术语): CU 内部分硬布线(hardwired,速度快、不灵活)和微程序两种实现方式。单总线 CPU 偏向微程序,因为单总线让数据流分多拍非常适合微指令逐拍执行。

最后更新:

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