4.3.5【2024统考真题】


好的,这道2024年的最新真题堪称对MIPS-like指令集和单周期CPU数据通路理解的“试金石”。它将指令格式、数据通路、控制信号和ALU运算紧密结合,要求考生像CPU一样去“思考”和“执行”指令。
我们来深入地、全方位地解析这道题,并融入“拉分点”的思考。
题目原文 (整理后)
(5)【2024统考真题】假定计算机M字长为32位,按字节编址,采用32位定长指令字,指令add、slli和lw的格式、编码和功能说明如下图(a)所示。
(图(a) 指令格式)
其中,R[x]表示通用寄存器x的内容,M[x]表示地址为x的存储单元内容,shamt为移位位数,imm为补码表示的偏移量。下图(b)给出了计算机M的部分数据通路及其控制信号,其中,A和B分别表示从通用寄存器rs1和rs2中读出的内容;IR[31:20]表示指令寄存器中的高12位;控制信号Ext为0、1时扩展器分别实现零扩展、符号扩展,ALUctr为000、001、010时ALU分别实现加、减、逻辑左移运算。
(图(b) 数据通路)
- 计算机M最多有多少个通用寄存器?为什么
shamt字段占5位? - 执行
add指令时,控制信号ALUBsrc的取值应是什么?若rs1和rs2寄存器内容分别是87654321H和98765432H,则add指令执行后,ALU输出端F、OF和CF的结果分别是什么?若该add指令处理的是无符号整数,则应根据哪个标志判断是否溢出? - 执行
slli指令时,控制信号Ext的取值可以是0也可以是1,为什么? - 执行
lw指令时,控制信号Ext、ALUctr的取值分别是什么? - 若一条指令的机器码是
A040A103H,则该指令一定是lw指令,为什么?若执行该指令时,R[01H]=FFFFA2D0H,则所读取数据的存储地址是什么?
一、运用了什么知识点?考了什么?为什么这么考?
-
运用知识点:
- 指令集架构 (ISA): 特别是RISC风格的R型(寄存器-寄存器)、I型(立即数/访存)、J型(跳转)指令格式。
- CPU数据通路: 理解单周期CPU中,指令如何驱动数据在寄存器堆、扩展器、MUX、ALU等部件间流动。
- 控制信号: 理解控制器如何根据指令的操作码生成
ALUBsrc,ALUctr,Ext等控制信号,来配置数据通路的具体行为。 - ALU运算与标志位: 补码加法运算,以及
OF(溢出标志)和CF(进位标志)的生成逻辑。 - 寻址方式: 寄存器寻址、立即数寻址、基址变址寻址。
-
考了什么?
这道题考查的是一种**“正向工程”和“硬件实现”**的思维能力。它要求考生:- 从设计约束反推规格 (Q1): 为什么
shamt是5位?这背后是对寄存器宽度的考量。
- 从设计约束反推规格 (Q1): 为什么
