计算机体系结构实验:ADDI, JALR, LW指令解析

需积分: 0 0 下载量 93 浏览量 更新于2024-08-05 收藏 1.57MB PDF 举报
"该资源是关于计算机体系结构实验的,主要涵盖了执行ADDI、JALR和LW指令的过程,并提到了五类立即数的使用情况以及ALU的功能。" 在计算机体系结构中,理解指令的执行过程对于深入学习至关重要。以下是关于ADDI、JALR指令以及立即数使用的详细描述: 1. **执行ADDI指令的过程**: - **取指阶段**:程序计数器(PC)指向当前指令的地址,该ADDI指令被加载到指令寄存器(IR)中,同时PC值增加4,准备读取下一条指令。 - **译码阶段**:指令解码,确定操作类型为ADDI,[19:15]字段作为源寄存器(rs1)地址,[31:7]字段通过立即数扩展单元进行扩展,保留[31:20]的有效立即数,[11:7]字段作为目的寄存器(rd)。 - **执行阶段**:控制单元根据译码结果生成相应的控制信号,ALU将立即数与rs1中的值相加,忽略溢出,只保留低XLEN位的结果。 - **访存阶段**:对于ADDI指令,通常不涉及内存访问。 - **写回阶段**:ALU的结果写回到寄存器文件中rd指定的地址。 2. **执行JALR指令的过程**: - **取指阶段**:与ADDI类似,JALR指令加载到IR,PC值增加。 - **译码阶段**:识别JALR,[19:15]作为rs1的地址,[31:7]的[31:20]部分作为立即数,[11:7]作为rd。 - **执行阶段**:ALU执行rs1加上立即数的加法操作,生成跳转目标地址(JalrTarget),并将其送入PC,同时保存rd用于记录返回地址。 - **访存阶段**:JALR不涉及内存访问。 - **写回阶段**:ALU的结果写回给PC,表示下一条指令的地址。 3. **五类立即数的使用**: 指令中可能包含不同类型的立即数,例如ADDI指令中的12位立即数,可以是不同形式的常数值,如直接、相对或偏移量,它们在指令执行时被用来参与运算或形成新的地址。 4. **ALU功能**: - ALU(算术逻辑单元)是CPU的核心部件,负责执行基本的算术和逻辑运算,如加法、减法、与、或、非等。在ADDI指令中,它执行加法操作;在JALR指令中,它计算rs1和立即数的和,生成跳转地址。 理解这些基本指令的执行流程和ALU的角色,对于掌握计算机体系结构和CPU工作原理至关重要。在实际的处理器设计中,这样的过程会被进一步细化和优化,但基础概念保持不变。