Skip to content

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

计算机组成原理2024年综合题13分

题目 ​

假定计算机 M 字长为 32 位。按字节编址,采用 32 位定长指令字,指令 add、slli 和 lw 的格式、编码和功能说明如题 43(a) 图所示。

题 43(a) add、slli、lw 指令格式和编码

题 43(a) 的关键信息可按下表快速对照:

指令IR[31:25]IR[24:20]IR[19:15]IR[14:12]IR[11:7]IR[6:0]功能
add0000000rs2rs1000rd0110011R[rd] ← R[rs1] + R[rs2]
slli0000000shamtrs1010rd0010011R[rd] ← R[rs1] << shamt
lwimm[11:5]imm[4:0]rs1010rd0000011R[rd] ← M[R[rs1] + imm]

其中,lw 的 imm 为一个连续的 12 位字段 IR[31:20]。

其中 R[x] 表示通用寄存器 x 的内容,M[x] 表示地址为 x 的存储单元内容,shamt 为移位位数,imm 为补码表示的偏移量。题 43(b) 图给出了计算机 M 的部分数据通路及其控制信号(用箭头虚线表示),其中,A 和 B 分别表示从通用寄存器 rs1 和 rs2 中读出的内容,IR[31:20] 表示指令寄存器中的高 12 位。控制信号 Ext 为 0、1 时扩展器分别实现零扩展、符号扩展;ALUctr 为 000、001、010 时 ALU 分别实现加、减、逻辑左移运算。

image-20260501021139677

请回答下列问题

(1) 计算机 M 最多有多少个通用寄存器?为什么 shamt 字段占 5 位?(2 分)

(2) 执行 add 指令时,控制信号 ALUBsrc 的取值应该是什么?若 rs1 和 rs2 寄存器内容分别是 8765 4321H 和 9876 5432H,则 add 指令执行后,ALU 输出端 F、OF 和 CF 的结果分别是什么?若设 add 指令处理的是无符号整数,则应根据哪个标志判断是否溢出?(5 分)

(3) 执行 slli 指令时,控制信号 Ext 的取值可以是 0 也可以是 1,为什么?(2 分)

(4) 执行 lw 指令时,控制信号 Ext、ALUctr 的取值分别是什么?(2 分)

(5) 若一条指令的机器码是 A040 A103H,则该指令一定是 lw 指令,为什么?若执行该指令时,R[01H]=FFFF A2D0H,则所读取数据的存储地址是多少?(2 分)

最后更新:

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