Instruction address Instruction PC Add sum Instruction memory Read ALU operation register 1 Read register rEad data 1 register 2 Registers Data ALU ALU result register data 2 Data Data MemWrite RewRite Read Address data 程序计数器(Pc):存放将 16 ign extend 要被执行指令的地址的寄存 Write memory 器 data MemRead
程序计数器(PC):存放将 要被执行指令的地址的寄存 器
4.3建立数据通路 MIPS指令实现(执行)过程 取指: 从指令存储器中取出一条指令 修改PC使其指向下一条指令 ■指令译码&读操作数: 将指令转换成一组机器控制命令 n读寄存器中的操作数(无论以后是否会使用) 执行: 控制ALU实现相应操作
4.3 建立数据通路 二. MIPS指令实现(执行)过程 ◼ 取指 : ◼ 从指令存储器中取出一条指令 ◼ 修改PC使其指向下一条指令 ◼ 指令译码& 读操作数: ◼ 将指令转换成一组机器控制命令 ◼ 读寄存器中的操作数(无论以后是否会使用) ◼ 执行: ◼ 控制ALU实现相应操作
4.3建立数据通路 存储器访问: ■从存储器中读/写数据 适用于LW/SW指令 n写结果到寄存器: R型指令:结果写到Rd 工型指令:结果写到Rt
4.3 建立数据通路 ◼ 存储器访问: ◼ 从存储器中读/写数据 ◼ 只适用于 LW/SW指令 ◼ 写结果到寄存器: ◼ R型指令:结果写到Rd ◼ I型指令:结果写到Rt
4.3建立数据通路 三,MIPS寻址模式回顾 n立即数寻址:add$s0$s0,4 寄存器寻址:add$50$51$s2 n基址寻址:w$s1O($s0) PC相对寻址:beq$s0$s1L1 n伪直接寻址: j Address1
4.3 建立数据通路 三. MIPS寻址模式回顾 ◼ 立即数寻址: addi $s0,$s0,4 ◼ 寄存器寻址: add $s0,$s1,$s2 ◼ 基址寻址: lw $s1,0($s0) ◼ PC相对寻址:beq $s0,$s1,L1 ◼ 伪直接寻址: j Address1
1. Im media te a ddre s sing Im mediate 2. Reg is ter a ddress in g rt d inct Regis te rs Regis te 3. Base address in g rs rt Address Memory Register 匚 Byte Ha Ifwordword 4.PC-re lative a ddre ssin g Address Memory 5. P seudodire ct addre ssin g o p Addre ss M emory P C Word
B y te H a lfw o rd W o rd R e g is te rs M e m o r y M e m o r y W o rd M e m o r y W o rd R e g is te r R e g is te r 1 . Im m e d ia te a d d re s s ing 2 . R e g is te r a d d re s s in g 3 . B a s e a d d re s s in g 4 . P C -re la tive a d d re s s in g 5. P se u d o d ire ct a d d re s s in g o p r s rt o p r s rt o p r s rt o p o p r s rt A d d re s s A d d re s s A d d re s s rd . . . fu n ct Im m e d iate P C P C + +