计算机组成原理分析题题库

本页仅收录“分析题”部分,未与选择题、计算题混放。普通模式显示答案和解析;背题模式只显示题号、题目和被遮罩的正确答案。

门户 24 题

8 位补码加减与标志位

第 1 题

假设有两个整数 x=-68,y=-80,采用补码形式(含 1 位符号位)表示,x 和 y 分别存放在寄存器 A 和 B 中。A、B、C、D 都是 8 位寄存器。回答: (1) A 和 B 中的内容分别是什么? (2) x+y 的结果存放在 C 中,C 的内容是什么?OF、SF 各是什么? (3) x-y 的结果存放在 D 中,D 的内容是什么?OF、SF 各是什么?

选项

本分析题无选项。

正确答案

项目结果
A=x=-68BCH
B=y=-80B0H
C=x+y6CH,OF=1,SF=0
D=x-y0CH,OF=0,SF=0

解题步骤 / 解析

68=44H,8 位补码取反加 1 得 BCH;80=50H,8 位补码为 B0H。BCH+B0H=16CH,寄存器只保留低 8 位得 6CH。两个负数相加得到正号结果,说明补码溢出,OF=1;6CH 最高位为 0,SF=0。x-y=-68-(-80)=12,BCH+50H=10CH,低 8 位为 0CH,结果未超出 -128~127,OF=0,SF=0。

乘法指令、控制逻辑与溢出

第 2 题

有 C 语言函数 unsigned umul(unsigned x,unsigned y){return x*y;} 和 int imul(int x,int y){return x*y;}。假定计算机 M 的 ALU 只能进行加减运算和逻辑运算。回答无乘法指令时为何仍能实现乘法;乘法指令控制逻辑的作用;三种实现方式下 umul() 的执行时间长短;当 n=32、x=2³¹-1、y=2 时,有符号/无符号 64 位乘积、函数返回是否溢出,以及无符号乘法仅取低 n 位时的溢出判断方法。

选项

本分析题无选项。

正确答案

无乘法指令时可用移位和加减法软件实现乘法。控制逻辑负责检查乘数位、控制加/减、移位、寄存器写入和循环结束。

执行时间:无乘法指令最长;使用 ALU 和位移器的乘法指令居中;阵列乘法器最短。

x = 0x7FFFFFFF, y = 0x00000002
64 位真实乘积 = 0x00000000FFFFFFFE
无符号乘积 = 0x00000000FFFFFFFE
有符号乘积 = 0x00000000FFFFFFFE
umul 返回 0xFFFFFFFE,不发生无符号溢出
imul 对 32 位 int 发生正溢出;若只保留低 32 位,机器码为 0xFFFFFFFE(解释为 -2)

无符号 32 位乘法只取低 32 位时,若 64 位乘积的高 32 位不全为 0,则溢出;高 32 位全 0 则不溢出。

解题步骤 / 解析

二进制乘法可表示为若干个移位后的被乘数相加:x×y=Σ yᵢ·(x<<i)。软件循环需要多条指令,所以最慢;硬件移位加法乘法器由控制逻辑自动迭代,较快;阵列乘法器并行生成和压缩部分积,通常最快。2³¹-1 乘以 2 的数学值为 2³²-2,能用 32 位 unsigned 表示,但超过 32 位有符号整数最大值 2³¹-1。

float 数据的 IEEE 754 表示

第 3 题

已知实数 x=-68,y=-8.25,在 C 语言中定义为 float 型变量,分别存放在 32 位寄存器 A 和 B 中。C 存放 x+y,D 存放 x-y。要求用十六进制表示 A、B、C、D 的内容。

选项

本分析题无选项。

正确答案

寄存器内容IEEE 754 单精度机器码
Ax=-68C2880000H
By=-8.25C1040000H
Cx+y=-76.25C2988000H
Dx-y=-59.75C26F0000H

解题步骤 / 解析

-68:68=1000100₂=1.000100₂×2⁶,符号位 1,阶码 127+6=133=10000101₂,尾数为 000100...,得 C2880000H。-8.25:8.25=1000.01₂=1.00001₂×2³,得 C1040000H。x+y=-76.25,76.25=1.00110001₂×2⁶,得 C2988000H。x-y=-59.75,59.75=1.1101111₂×2⁵,得 C26F0000H。

IEEE 754 数值类型判断

第 4 题

对下列 IEEE 754 单精度数值,说明它们表示的数字类型(规格化数、非规格化数、无穷大、0),当表示具体数值时给出其值: (1) 0000 0000 0000 0000 0000 0000 0000 0000 (2) 0100 0010 0100 0000 0000 0000 0000 0000 (3) 1000 0000 0100 0000 0000 0000 0000 0000 (4) 11111111 100000000000000000000000

选项

本分析题无选项。

正确答案

小题类型和值
(1)+0,属于 0
(2)规格化数,值为 48
(3)非规格化数,值为 -2⁻¹²⁷
(4)负无穷大 -∞

解题步骤 / 解析

单精度格式为 1 位符号、8 位阶码、23 位尾数。(1) 阶码和尾数全 0,符号位为 0,故为 +0。(2) 拆为 0 | 10000100 | 1000...,阶码真值 132-127=5,尾数 1.1₂=1.5,值为 1.5×2⁵=48。(3) 拆为 1 | 00000000 | 1000...,阶码全 0 且尾数非 0,是非规格化数,值为 -(0.1₂)×2⁻¹²⁶=-2⁻¹²⁷。(4) 32 位串应拆为 1 | 11111111 | 000...,阶码全 1 且尾数全 0,符号位为 1,所以是 -∞。

移位实现乘除 2

第 5 题

32 位寄存器 R1 中存放变量 x 的机器码 80000004H。unsigned int 型乘除法采用逻辑移位,int 型乘除法采用算术移位。分别求 x、x/2、2x 的机器码和真值。

选项

本分析题无选项。

正确答案

解释方式xx/22x
unsigned int214748365240000002H,107374182600000008H,8
int-2147483644C0000002H,-107374182200000008H,机器结果为 8,数学运算溢出

解题步骤 / 解析

unsigned 解释时,80000004H=2³¹+4。逻辑右移一位得 40000002H;左移一位丢弃最高位得 00000008H。int 解释时,80000004H 是补码负数,真值为 -2147483644;算术右移补 1 得 C0000002H;左移一位仍低位补 0、高位丢弃,机器码为 00000008H,但数学值 -4294967288 超出 32 位 int 范围。

按 I 字段确定有效地址

第 6 题

指令格式含 OP 6 位、寻址方式特征位 I 2 位、形式地址 D 8 位。I=00 直接寻址,I=01 用 X1 变址,I=10 用 X2 变址,I=11 相对寻址。设 PC=1234H,X1=0037H,X2=1122H,求指令 4420H、2244H、1322H、3521H 的有效地址。

选项

本分析题无选项。

正确答案

指令I寻址方式有效地址 EA
4420H00直接0020H
2244H10X2 变址1122H+0044H=1166H
1322H11相对1234H+0022H=1256H
3521H01X1 变址0037H+0021H=0058H

解题步骤 / 解析

按 16 位指令从高到低拆为 OP(15..10)、I(9..8)、D(7..0)。直接寻址 EA=D;变址寻址 EA=(Xi)+D;相对寻址 EA=(PC)+D。本题 D 均为正值,直接进行十六进制加法即可。

扩展操作码容量计算

第 7 题

扩展操作码指令系统中有三地址指令 15 条、双地址指令 12 条、单地址指令 50 条。格式为:三地址 OP(4) A1(4) A2(4) A3(4),二地址 OP(8) A1(4) A2(4),一地址 OP(12) A1(4)。求最多可设计多少条零地址指令。

选项

本分析题无选项。

正确答案

最多可设计 224 条零地址指令

解题步骤 / 解析

4 位 OP 可给三地址指令 16 种,已用 15 种,剩 1 个前缀扩展为二地址指令,可形成 1×2⁴=16 条,已用 12 条,剩 4 个 8 位前缀。扩展为一地址指令后容量为 4×2⁴=64 条,已用 50 条,剩 14 个 12 位前缀。零地址指令还可用最后 4 位扩展,所以容量为 14×2⁴=224 条。

相对寻址形式地址

第 8 题

某计算机指令字长定长 16 位,内存按字节寻址,指令中的数据占 8 位且采用补码表示,PC 的值在取指阶段完成修改。回答: (1) 当前地址 2003H,要求数据有效地址为 200AH,形式地址字段为多少? (2) 当前地址 2008H,要求转移目标地址为 2001H,形式地址字段为多少?

选项

本分析题无选项。

正确答案

(1) 05H;(2) F7H。

解题步骤 / 解析

16 位指令占 2 字节,按字节寻址,取指后 PC=当前指令地址+2。相对寻址 EA=(取指后 PC)+位移。(1) 取指后 PC=2005H,位移=200AH-2005H=05H。(2) 取指后 PC=200AH,位移=2001H-200AH=-9,8 位补码为 F7H。

寻址方式公式与范围

第 9 题

某机字长 16 位,存储器按字编址,访问内存指令格式为 OP(15..11)、M(10..8)、A(7..0)。设 PC 和 Rx 分别为程序计数器和变址寄存器。问该指令能定义多少种指令?直接、间接、变址、相对寻址的寻址范围和 EA 公式是什么?

选项

本分析题无选项。

正确答案

项目答案
指令数OP 为 5 位,可定义 2⁵=32 种指令
直接寻址EA=A,范围 0~255 字
间接寻址EA=(A),范围 0~65535 字
变址寻址EA=(Rx)+A,范围可覆盖 0~65535 字
相对寻址EA=(PC)+A;若 A 为补码位移,范围为 PC-128~PC+127

解题步骤 / 解析

A 字段只有 8 位,直接寻址只能给出 256 个字地址。间接寻址时,存储单元内容为 16 位,可作为完整地址;变址和相对寻址借助 16 位寄存器或 PC 形成有效地址,因此可覆盖 16 位字地址空间。相对寻址的位移在多数教材中按补码理解。

LOAD 指令多种寻址方式

第 10 题

一条双字长 LOAD 指令存储在地址 200 和 201,第二字为地址部分。PC=200,R1=400,XR=100。根据主存内容示意图,分析不同寻址方式装入 ACC 的值。

第10题主存内容示意图

选项

本分析题无选项。

正确答案

寻址方式装入 ACC 的值
直接寻址800
立即寻址500
间接寻址300
相对寻址325
变址寻址900
寄存器 R1 寻址400
寄存器 R1 间接寻址700

解题步骤 / 解析

第二字地址部分为 500。直接:M[500]=800。立即:操作数就是 500。间接:M[M[500]]=M[800]=300。相对:双字指令取完后 PC=202,EA=202+500=702,M[702]=325。变址:EA=XR+500=600,M[600]=900。寄存器寻址直接取 R1=400。寄存器间接:M[R1]=M[400]=700。

2010 统考指令格式分析

第 11 题

某计算机字长 16 位,主存地址空间 128KB,按字编址,采用单字长指令格式。指令字段和寻址方式见图。回答最多指令数、最多通用寄存器数、MAR/MDR 位数、转移目标地址范围,以及 add(R4),(R5)+ 的机器码和执行后变化。

第11题指令格式图

选项

本分析题无选项。

正确答案

最多指令数 16 条;最多通用寄存器 8 个;MAR 至少 16 位,MDR 至少 16 位;转移目标地址范围为 0000H~FFFFH。

add(R4),(R5)+ 的机器码为 2315H。执行后 R5=5679H,存储单元 5678H 的内容变为 68ACH;R4 和存储单元 1234H 不变。

解题步骤 / 解析

OP 为 4 位,所以最多 16 条指令;寄存器编号 3 位,所以最多 8 个通用寄存器。128KB 按 16 位字编址,共 128KB/2B=64K=2¹⁶ 个字地址,MAR 需 16 位,MDR 存一个字也需 16 位。相对转移最终落在 16 位主存字地址空间内,故目标地址为 0000H~FFFFH。机器码字段为 OP=0010,Ms=001,Rs=100,Md=010,Rd=101,即 0010 001 100 010 101B=2315H。源操作数 M[1234H]=5678H,目的操作数 M[5678H]=1234H,结果 5678H+1234H=68ACH,目的采用 (R5)+,故 R5 自增为 5679H。

32 位单地址指令格式设计

第 12 题

某计算机字长 32 位,主存储器为 64MB,采用单字长单地址指令,共 40 条指令,有直接寻址、寄存器寻址、立即数寻址、寄存器间接 4 种寻址方式,设计其指令格式。

选项

本分析题无选项。

正确答案

| OP 6 位 | M 2 位 | A 24 位 |

OP 表示 40 条指令,M 表示 4 种寻址方式,A 作主存字地址、立即数或寄存器号字段。

解题步骤 / 解析

40 条指令需 ⌈log₂40⌉=6 位操作码;4 种寻址方式需 2 位。若按 32 位字编址,64MB=2²⁶B=2²⁴ 个字,直接地址字段需 24 位,合计 6+2+24=32 位,正好为单字长。若严格按字节编址,则地址字段需 26 位,单字长内放不下,因此本设计默认按字寻址或以字地址访问主存。

36 位指令扩展操作码设计

第 13 题

在一个 36 位长的指令系统中,设计扩展操作码,使之能表示:7 条具有两个 15 位地址和一个 3 位地址的指令;500 条具有一个 15 位地址和一个 3 位地址的指令;50 条无地址指令。

选项

本分析题无选项。

正确答案

一种可行设计:

第一类:| OP 3位 | A1 15位 | A2 15位 | R 3位 |
        OP=000~110,共 7 条

第二类:| 111 | E 15位 | A 15位 | R 3位 |
        取 E 的 500 个编码表示第二类,并保留至少 1 个 E 继续扩展

第三类:| 111 | 保留 E 15位 | E2 18位 |
        用 E2 的 50 个编码表示无地址指令

解题步骤 / 解析

第一类地址字段共 15+15+3=33 位,36 位指令只剩 3 位 OP。3 位 OP 有 8 种,用 7 种表示第一类,剩 1 种作扩展入口。进入扩展后,还可用 15 位扩展码 E;2¹⁵ 远大于 500,足够表示第二类并留下扩展入口。保留一个 E 后,剩余 18 位可继续作为无地址操作码,容量 2¹⁸,足够表示 50 条无地址指令。

主存芯片选择与片选译码

第 14 题

CPU 地址总线 16 根,双向数据总线 16 根,主存地址空间按字编址:0~8191 为系统程序区 EPROM;8192 起 32K 地址空间为用户程序区 SRAM;最后 4K 地址空间为系统程序工作区。可选 EPROM:8K×16、16K×8;SRAM:16K×1、2K×8、4K×16、8K×16。选择芯片并设计主存逻辑框图。

第14题地址分配图

选项

本分析题无选项。

正确答案

选 1 片 8K×16 EPROM、4 片 8K×16 SRAM、1 片 4K×16 SRAM。

范围十六进制芯片片选条件
系统程序区0000H~1FFFH8K×16 EPROMA15 A14 A13=000
用户程序区2000H~9FFFH4 片 8K×16 SRAMA15 A14 A13=001~100
空区A000H~EFFFH不选片
工作区F000H~FFFFH4K×16 SRAMA15 A14 A13 A12=1111

解题步骤 / 解析

8K 芯片用 A0~A12 作片内地址,4K 芯片用 A0~A11。可用 3-8 译码器译码 A15~A13,并由 MREQ# 使能:Y0# 选 EPROM,Y1#~Y4# 选四片用户 SRAM;Y5#、Y6# 及 Y7# 的 E000H~EFFFH 保持空;工作区需 Y7# 与 A12=1 共同有效。数据端 D15~D0 并接 CPU 数据总线。EPROM 只接读使能;SRAM 的 OE# 可由读命令产生,WE# 可由写命令产生。

用 64K×16 RAM 组成 256K×32 存储器

第 15 题

某机器字长 32 位,存储器总容量 256K 字,按字编址,用 WE 控制芯片读写。现有 64K×16 RAM 芯片,回答数据线和地址线条数、芯片数量、片选/组内地址线,以及 CPU 与存储器连接框图。

第15题连接示意图

选项

本分析题无选项。

正确答案

数据线 32 条,地址线 18 条;共需 8 片 64K×16 RAM。A15~A0 接各芯片片内地址端,A17~A16 经 2-4 译码器产生 4 组选通信号;每组 2 片并联组成 64K×32,其中一片接 D15~D0,另一片接 D31~D16。WE 接各芯片写使能端。

解题步骤 / 解析

256K 字=2¹⁸ 字,按字编址需要 18 根地址线。字长 32 位,所以数据线 32 根。单片 64K×16,位扩展需 2 片并联为 64K×32;字扩展需 256K/64K=4 组,所以共 2×4=8 片。低 16 根地址线作组内地址,高 2 根地址线作片选译码。

微操作控制字段最短编码

第 16 题

某微程序包含 5 条微指令:uI1 发出 a,c,e,g;uI2 发出 a,d,f,h,j;uI3 发出 a,d,e;uI4 发出 a,b,i;uI5 发出 a,d,f,j。对这些微指令进行编码,要求微指令控制字段最短且能保持并行性。

选项

本分析题无选项。

正确答案

若所有信号都需在控制字段中表示,一种最短分组为:

字段微操作位数
F0a1
F1b、c、d2
F2e、f、i2
F3g、h2
F4j1

总控制字段长度为 8 位。若允许把所有微指令都出现的 a 作为恒有效信号单独硬连,则编码字段可降为 7 位。

解题步骤 / 解析

同一字段内的微操作必须互斥,不能在同一条微指令中同时出现。b/c/d 互不同时出现,可同组;e/f/i 互不同时出现,可同组;g/h 互不同时出现,可同组;j 与 d、f、h 同时出现过,不能并入这些字段,只能单独或与其他重排等价分组。a 与所有相关信号都同时出现过,若编码则需单独字段。

ADD R1,(R2) 微操作序列

第 17 题

根据数据通路图,设计 ADD R1,(R2) 的微操作序列,包括取指令、执行和 PC 自增过程。

第17题数据通路图

选项

本分析题无选项。

正确答案

T0: PC -> MAR,Read
T1: M[MAR] -> MDR
T2: MDR -> IR
T3: PC -> LA
T4: 1 -> LIB,LA + LIB -> PC
T5: R2 -> MAR,Read
T6: M[MAR] -> MDR
T7: R1 -> LA
T8: MDR -> LIB
T9: LA + LIB -> R1

解题步骤 / 解析

ADD R1,(R2) 按常见约定表示 R1←R1+M[R2]。先用 PC 给 MAR 取指并送 IR,再用 ALU 或专用加法完成 PC+1。执行阶段先用 R2 作为主存地址取出操作数到 MDR,再把 R1 和 MDR 分别送入 ALU 两个暂存输入 LA、LIB,相加结果经移位器直通写回 R1。

内部总线 CPU 的算术指令流程

第 18 题

CPU 内部结构如图,B、C、D、E、H、L 寄存器也与内部总线相通。ALU 结果直接送入 Z。从取指开始,写出 ADD B,C 和 SUB ACC,H 的微操作序列及控制信号。

第18题CPU内部结构图

选项

本分析题无选项。

正确答案

公共取指:
T0: PCout, MARin
T1: Read, MDRin, PC+1
T2: MDRout, IRin

ADD B,C ;(B)+(C)->B
T3: Bout, Yin
T4: Cout, ALUadd, Zin
T5: Zout, Bin

SUB ACC,H ;(ACC)-(H)->ACC
T3: ACCout, Yin
T4: Hout, ALUsub, Zin
T5: Zout, ACCin

解题步骤 / 解析

单总线结构中,ALU 的一个操作数通常先送入暂存寄存器 Y,另一个操作数再由总线送入 ALU,结果写入 Z,最后由 Z 输出回目的寄存器。ADD B,C 将 B 暂存到 Y,再将 C 与 Y 相加写回 B。SUB ACC,H 同理,先暂存 ACC,再减 H 并写回 ACC。

ADD(R0),R1 单总线流程

第 19 题

设有图示单总线结构,分析指令 ADD(R0),R1,即实现 M[R0]+R1 -> M[R0] 的指令流程和控制信号。

第19题单总线结构图

选项

本分析题无选项。

正确答案

T0: PCout, MARin, MemR
T1: MDRin, PC+1
T2: MDRout, IRin
T3: R0out, MARin
T4: MemR, MDRin
T5: MDRout, Yin
T6: R1out, ALUadd, Zin
T7: Zout, MDRin
T8: R0out, MARin       ; 若 MAR 保持原地址,此步可省
T9: MemW

解题步骤 / 解析

先取指并完成 PC 自增。执行阶段用 R0 给出主存地址,读出 M[R0] 到 MDR;单总线 ALU 运算需先把一个操作数 MDR 送入 Y,再让 R1 上总线,与 Y 相加,结果进 Z。写回时把 Z 送 MDR,再执行主存写操作,把结果写入 R0 所指单元。

简化 CPU 与主存数据通路

第 20 题

根据图示简化 CPU 与主存连接结构,回答 a、b、c、d 四个寄存器名称;说明取指令、运算器与主存之间读/写、LDA X、ADD Y、STA Z 的数据通路。

第20题CPU与主存连接图

选项

本分析题无选项。

正确答案

a=MDR,b=IR,c=MAR,d=PC。

取指:PC -> MAR,M[MAR] -> MDR,MDR -> IR,PC+1 -> PC
取数:MAR 给出地址,M[MAR] -> MDR -> ALU/ACC
存数:ACC -> MDR -> M[MAR]
LDA X:X -> MAR,M[X] -> MDR -> ACC
ADD Y:Y -> MAR,M[Y] -> MDR,ACC + MDR -> ACC,状态送状态寄存器
STA Z:Z -> MAR,ACC -> MDR,MDR -> M[Z]

解题步骤 / 解析

d 具有 +1 通路并给出下一条指令地址,是 PC;c 与主存地址端相连,是 MAR;a 与主存数据双向交换并可进入 ALU,是 MDR;b 向微操作信号发生器提供指令信息,是 IR。直接寻址指令中 X、Y、Z 是由 IR 给出的主存地址字段。

ADD(R1),(R2)+ 指令周期流程

第 21 题

某机主要功能部件如图,M 为主存,MDR、MAR、IR、PC、R0~R3、C、D 等部件给出。补充主要连接线,并画出 ADD(R1),(R2)+ 指令周期流程图。该指令源操作数地址在 R1 中,目标操作数为自增型寄存器间接寻址。

第21题主要功能部件图

选项

本分析题无选项。

正确答案

主要连接:PC/R0~R3 -> MAR;M <-> MDR;MDR -> IR;
MDR、寄存器 -> C/D;C、D -> ALU -> 移位器 -> MDR/寄存器。

标准按 ADD (R1),(R2)+ 的常见含义:
1. PC -> MAR,Read,M[MAR] -> MDR -> IR,PC+1 -> PC
2. R1 -> MAR,Read,M[R1] -> MDR -> C
3. R2 -> MAR,Read,M[R2] -> MDR -> D
4. R2 + 1 -> R2
5. C + D -> MDR
6. Write,M[原 R2] <- MDR

解题步骤 / 解析

(R2)+ 是先以 R2 内容为地址取目的操作数,再使 R2 自增。常见指令语义是把源操作数 M[R1] 与目的操作数 M[旧 R2] 相加,结果写回目的操作数所在的主存单元;R2 同时完成自增。若课堂约定“结果写回 R2 寄存器”,则最后两步可改为 C+D -> R2,但按通常汇编记法应写回原目的地址。

ADDX,D 指令周期信息流程

第 22 题

已知单总线计算机结构如图,M 为主存,XR 为变址寄存器,EAR 为有效地址寄存器,LATCH 为暂存器。ADDX,D 中 X 为 XR,D 为形式地址,功能是将变址寻址得到的操作数和 ACC 中的操作数相加,结果送回 ACC。给出指令周期信息流程和控制信号。

第22题单总线计算机结构图

选项

本分析题无选项。

正确答案

取指:
T0: (PC) -> MAR        控制:PCo, MARi
T1: Read, M[MAR] -> MDR 控制:R, MDRi
T2: (MDR) -> IR        控制:MDRo, IRi
T3: (PC)+1 -> PC       控制:PC+1 或 PCo, 地址加法器, PCi

形成有效地址并取数:
T4: (XR) + D(IR) -> EAR 控制:XRo, IR(D)o, +, EARi
T5: (EAR) -> MAR        控制:EARo, MARi
T6: Read, M[MAR] -> MDR 控制:R, MDRi
T7: (MDR) -> X          控制:MDRo, Xi

执行:
T8: (ACC) + (X) -> LATCH 控制:ACCo, Xo, ALUadd, LATCHi
T9: (LATCH) -> ACC       控制:LATCHo, ACCi

解题步骤 / 解析

ADDX,D 的有效地址为 (XR)+D。图中 IR、XR 可送地址加法器,结果进 EAR;EAR 再送 MAR 访问主存。读出的操作数经 MDR 进入暂存寄存器 X,与 ACC 送入 ALU 相加,结果先暂存于 LATCH,再写回 ACC。具体节拍可随教材把 PC+1 与取指读存合并或分开。

2009 统考 ADD(R1),R0 执行阶段

第 23 题

某计算机字长 16 位,采用 16 位定长指令字结构,部分数据通路如图。加法指令 ADD(R1),R0 的功能为 R0 + M[R1] -> M[R1]。取指和译码阶段节拍已给出,按同样方式列出执行阶段每个节拍的功能和有效控制信号。

第23题数据通路图
第23题取指译码阶段表

选项

本分析题无选项。

正确答案

节拍功能有效控制信号
C5MAR <- (R1)R1out, MARin
C6MDR <- M[MAR],A <- (R0)MemR, MDRinE, R0out, Ain
C7AC <- (MDR) + (A)MDRout, ADD, ACin
C8MDR <- (AC)ACout, MDRin
C9M[MAR] <- (MDR)MDRoutE, MemW

解题步骤 / 解析

执行阶段先用 R1 给出主存地址。读主存到 MDR 与 R0 送入 A 可在同一节拍并行完成,因为一个走外部数据总线,一个走内部总线。随后 MDR 上内部总线,与 A 中的 R0 经 ALU 相加,结果进 AC。写回时 AC 先送 MDR,MDR 通过外部数据总线写入主存,MAR 在执行阶段一直保存 R1 给出的地址。

2015 统考单总线数据通路完善

第 24 题

某 16 位计算机主存按字节编址,存取单位为 16 位;采用 16 位定长指令字格式;CPU 采用单总线结构,主要部分如图。回答程序员可见寄存器、暂存器 T 的作用、ALUop 和 SRop 位数、SRout 控制部件、端点①~⑨中哪些接控制部件输出端、补充必要连线,以及 MUX 一个输入端为 2 的原因。

第24题2015统考单总线数据通路图

选项

本分析题无选项。

正确答案

(1) 程序员可见寄存器:R0~R3、PC。T 用于在单总线结构下暂存 ALU 的一个操作数,避免两个操作数同时占用总线。

(2) ALU 有 7 种操作,ALUop 至少 3 位;SR 有 mov、left、right 3 种操作,SRop 至少 2 位。

(3) SRout 控制三态门,使 SR 输出可接入或断开 CPU 内总线。

(4) 端点 ①、②、③、⑤、⑧ 需连接到控制部件输出端。

(5) 必要连线:⑥ -> ⑨,⑦ -> ④。

(6) 主存按字节编址而指令字长为 16 位,每条指令占 2 个字节,顺序取指时需 PC+2,所以 MUX 一个输入端固定为 2。

解题步骤 / 解析

R0~R3 和 PC 会被指令显式或隐式使用,属于程序员可见;MAR、MDR、IR、T、SR 等通常不可见。ALUop、SRop 的位数由可选操作数取上取整得到。图中 ①、②、③、⑤、⑧ 分别是 SRout、SRop、ALUop、Tin、MUXop 等控制信号端;④ 是 ALU 的 B 输入,⑦ 是 MUX 输出,故连 ⑦->④;⑥ 是 CPU 内总线到 MUX 的输入,⑨ 是 MUX 的 1 端输入,故连 ⑥->⑨。