计算机组织与结构专题实验报告 MIPS单周期处理器的设计
学生姓名 赵荣建 专业班级 计算机45班 学 号 2140505119 指导教师 姜欣宁 完成日期 2017-05-09
一.实验目的
根据所学的CPU组成原理,自主设计一个MIPS32位的单周期处理器。
二.设计方案
参照计算机组成原理教材上的MIPS32位处理器的工作原理。 1.构建数据通路
取指令 指令译码 指令执行 存储器访问 结果写回
取指周期:
a.从指令寄存器PC输出端得到地址 b.送地址到指令存储器IM地址端A c.从指令存储器IM的数据端RD得到指令
d.计算下地址:通过运算器,PC+4形成下地址,送回到PC。
2. .MIPS 寄存器集:定义了32个32位的寄存器
3.MIPS三种指令格式:R-类型、I-类型和J-类型
R-类型格式:
* 所有指令操作吗OP都是0;特定操作由funct决定。
* 机器语言指令中,字段分配格式如上图;前两个寄存器rs、 rt
是源寄存器,rd是目的寄存器。而在汇编语言格式中,第一个 寄存器是目的寄存器。
如:add $t0,$s4,$s5 #[rd]=[rs]+[rt],[t0]=[s4]+[s5]; I-类型格式:
* 指令含4个字段;op, rs, rt 和 imm
* 有两个寄存器操作数和一个16位立即数操作数,
一些指令中,rt也可作为源寄存器。 J-类型格式:
* 有一个26位立即数操作数,扩展后形成目的地址。
4.算逻单元ALU的设计
<<210Add<<2JumpMemToReg4Add01ControlMemReadMemWriteBranchALUopALUsrcRegWriteInstructionMemoryPC0R1Rdata132R21Register FileW1WdataALU32zeroResult32AddrRdata20132DataData0321Memory3Wdata{15~0}sign32extend2ALUcontrol6{5~0}ALU工作原理图
BA321zeroALU3232Result* 两级控制:通过系统控制器(Control)
3ALUoperFunc6ALUcontrol2ALUop 和运算器控制器(ALU Control)产生 ALU的控制信号:ALUoper
* ALU控制信号对照表:
ALUop Func(来自R型指令的func字段) 操作 ALUop1 ALUop2 F5 0 0 1 1 1 1 1 0 1 × × × × × × × × × × × × F4 × × × × × × × F3 × × 0 0 0 0 1 F2 × × 0 0 1 1 0 F1 × × 0 1 0 0 1 F0 × × 0 0 0 1 0 010:ADD 110:SUB 010:ADD 110:SUB 000:AND 001: OR 111:SLT 5.单周期数据通路的构建
1)构件:PC、指令存储器、寄存器文件RF和数据存储器; 2)取指令的过程:PC→IM: A/RD
3)取源操作数的过程: IM:RD→RF:A1/RD1。
4)立即数的符号扩展的过程:
IM:RD(Instr:15:0)→Sign Extend(15:0→Signimm31:0);