您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > MIPS指令多周期CPU设计
一、单周期CPU性能分析二、MIPS指令多周期CPU设计4.4MIPS指令多周期CPU设计一、单周期CPU性能分析SignImmCLKARDInstructionMemory+4A1A3WD3RD2RD1WE3A2CLKSignExtendRegisterFile0101ARDDataMemoryWDWE01PC01PC'Instr25:2120:1615:05:0SrcB20:1615:112+ALUResultReadDataWriteDataSrcAPCPlus4PCBranchWriteReg4:0Result31:26RegDstBranchMemWriteMemtoRegALUSrcRegWriteOpFunctControlUnitZeroPCSrcCLKALUControl2:0ALU1010010100完整的单周期CPU结构单周期CPU特点优点–每条指令占用一个CPU周期–逻辑设计简单,时钟设计也简单缺点–各组成部件的利用率不高各部件大部分时间在保持信号–时钟周期将满足执行时间最长指令的要求Load指令–CPI=1假定某单周期CPU各主要部件的延迟为:–存储器(Memory):2ns–运算器(ALU/Adder):2ns–寄存器组(RegisterFile):1ns指令周期比较长所有指令都必须使用最长的周期假设某单周期CPU,执行100条指令:–25%的Load指令–10%的Store指令–45%的算逻指令–20%的跳转指令单周期的执行时间–100*8=800ns可能的优化–25*8+10*7+45*6+20*5=640ns–Speedup=800/640=1.25单周期CPU其他问题事实上,指令和数据都保存在同一个存储器中;许多部件保持数据的时间过长,无法复用。–例如,Adder是否可以利用ALU?SignImmCLKARDInstructionMemory+4A1A3WD3RD2RD1WE3A2CLKSignExtendRegisterFile0101ARDDataMemoryWDWE01PC01PC'Instr25:2120:1615:05:0SrcB20:1615:112+ALUResultReadDataWriteDataSrcAPCPlus4PCBranchWriteReg4:0Result31:26RegDstBranchMemWriteMemtoRegALUSrcRegWriteOpFunctControlUnitZeroPCSrcCLKALUControl2:0ALU1010010100二、MIPS指令多周期CPU设计多周期数据通路设计构思–在组合逻辑中插入寄存器,切分数据通路–大组合逻辑被切分为若干小组合逻辑–大延迟变为多个分段小延迟–不同指令执行占用不同的功能单元(不必5个环节都走完)PCinstructionmemory+4RegisterFilertrsrdALUDatamemoryimmMUXMIPS指令多周期CPU控制器设计思路确定数据通路划分指令执行步骤–指令流程图安排每条指令每个步骤的功能,并给出相应的控制信号–指令流程表为指令执行步骤设计状态机为每个步骤的控制信号设计控制信号生成逻辑MIPS计算机硬件系统组成PC存A储D器01N1寄Q1存N2器堆NDDIQ2控制部件结果寄存器10AZALUBRB寄存器rsrtrdopfunc指令内容左移2位210ClocktargetImmediate写入PC的指令地址确定分支指令是否转移的条件信号ZPC[31..28]PCsrc01IRDRA寄存器01左移2位扩展10234ALUopALUsrcAALUsrcBWriteREGREGdsMEMtoREGWritePCWriteIRIODWriteMEMSEPC存A储D器01N1寄Q1存N2器堆NDDIQ2控制部件结果寄存器10AZALUBRB寄存器rsrtrdopfunc指令内容左移2位210ClocktargetImmediate写入PC的指令地址确定分支指令是否转移的条件信号ZPC[31..28]PCsrc01IRDRA寄存器01左移2位扩展10234ALUopALUsrcAALUsrcBWriteREGREGdsMEMtoREGWritePCWriteIRIODWriteMEMSE由存储器、寄存器堆、ALU部件、控制部件4部分组成PC存A储D器01N1寄Q1存N2器堆NDDIQ2节拍信号产生控制部件结果寄存器10AZALUBRB寄存器rsrtrdopfunc指令内容左移2位210ClocktargetImmediate写入PC的指令地址确定分支指令是否转移的条件信号ZPC[31..28]PCsrc01IRDRA寄存器01左移2位扩展10234ALUopALUsrcAALUsrcBWriteREGREGdsMEMtoREGWritePCWriteIRIODRWriteMEMSE控制部件由节拍发生器和控制信号产生线路组成,分别完成标明指令执行步骤和向各个部件提供控制信号的功能。PC存A储D器01N1寄Q1存N2器堆NDDIQ2控制部件结果寄存器10AZALUBRB寄存器rsrtrdopfunc指令内容左移2位210ClocktargetImmediate写入PC的指令地址确定分支指令是否转移的条件信号ZPC[31..28]PCsrc01IRDRA寄存器01左移2位扩展10234ALUopALUsrcAALUsrcBWriteREGREGdsMEMtoREGWritePCWriteIRIODRWriteMEMSE存储器存指令和数据。读指令时由PC提供地址,读出的指令保存到IR;读写数据时由结果寄存器提供地址,读操作的读出数据保存到DR;写操作的写入数据由B寄存器给出。PC存A储D器01N1寄Q1存N2器堆NDDIQ2控制部件结果寄存器10AZALUBRB寄存器rsrtrdopfunc指令内容左移2位210ClocktargetImmediate写入PC的指令地址确定分支指令是否转移的条件信号ZPC[31..28]PCsrc01IRDRA寄存器01左移2位扩展10234ALUopALUsrcAALUsrcBWriteREGREGdsMEMtoREGWritePCWriteIRIODWriteMEMSE寄存器堆由32个寄存器组成,可以用N1(rs)、N2(rt)同时读出两个寄存器的内容,分别存于A、B寄存器;可以用ND(rd或rt)把DI端的数据写入;被写入数据来自结果寄存器或DR。PC存A储D器01N1寄Q1存N2器堆NDDIQ2控制部件结果寄存器10AZALUBRB寄存器rsrtrdopfunc指令内容左移2位210ClocktargetImmediate写入PC的指令地址确定分支指令是否转移的条件信号ZPC[31..28]PCsrc01IRDRA寄存器01左移2位扩展10234ALUopALUsrcAALUsrcBWriteREGREGdsMEMtoREGWritePCWriteIRIODWriteMEMSEALU完成算术和逻辑运算,两路输入分别为A和B,其中A路输入可选择A寄存器或PC,B路输入可选择B寄存器或常数4、IR.immediate经符号扩展或扩展后又左移两位的值。ALU的运算数据:AOPBAOP扩展的ImmePC+4PC+扩展的Imme×4PC存A储D器01N1寄Q1存N2器堆Q2NDDI控制部件结果寄存器C10AZALUBRB寄存器rsrtrdopfunc指令内容左移2位210ClocktargetImmediate写入PC的指令地址确定分支指令是否转移的条件信号ZPC[31..28]PCsrc01IRDRA寄存器01左移2位扩展10234ALUopALUsrcAALUsrcBWriteREGREGdsMEMtoREGWritePCWriteIRIODRWriteMEMSEMIPS的ADD指令的执行过程译码周期:A←[rs]B←[rt]取指IR←MEM[PC]周期:PC←PC+4执行C←A+B周期:写回寄存器堆[rd]←C周期:R型指令的实现(ADD)取指令–IODR=0,ALUsrcA=0,ALUsrcB=01,ALUop=00,PCsrc=00–MEMread,IRwrite,PCwrite译码/取操作数–ALUsrcA=0,ALUsrcB=11,ALUop=00执行运算–ALUsrcA=0,ALUsrcB=00,ALUop=00写回寄存器–RegDST=1RegWriteMemtoReg=0PC存A储D器01N1寄Q1存N2器堆Q2NDDI控制部件结果寄存器C10AZALUBRB寄存器rsrtrdopfunc指令内容左移2位210ClocktargetImmediate写入PC的指令地址确定分支指令是否转移的条件信号ZPC[31..28]PCsrc01IRDRA寄存器01左移2位扩展10234ALUopALUsrcAALUsrcBWriteREGREGdsMEMtoREGWritePCWriteIRIODRWriteMEMSEMIPS的LW指令的执行过程译码周期:A←[rs]取指IR←MEM[PC]周期:PC←PC+4执行C←A+扩展imm周期:内存DR←MEM[C]周期:写回寄存器堆[rt]←DR周期:PC存A储D器01N1寄Q1存N2器堆NDDIQ2控制部件结果寄存器10AZALUBRB寄存器rsrtrdopfunc指令内容左移2位210ClocktargetImmediate写入PC的指令地址确定分支指令是否转移的条件信号ZPC[31..28]PCsrc01IRDRA寄存器01左移2位扩展10234ALUopALUsrcAALUsrcBWriteREGREGdsMEMtoREGWritePCWriteIRIODRWriteMEMSEMIPS的BEQ指令的执行过程取指IR←MEM[PC]周期:PC←PC+4执行C←A-B周期:PC←结果寄存器译码周期:结果寄存器←PC+SignExt(imm)PC存A储D器01N1寄Q1存N2器堆NDDIQ2控制部件结果寄存器10AZALUBRB寄存器rsrtrdopfunc指令内容左移2位210ClocktargetImmediate写入PC的指令地址确定分支指令是否转移的条件信号ZPC[31..28]PCsrc01IRDRA寄存器01左移2位扩展10234ALUopALUsrcAALUsrcBWriteREGREGdsMEMtoREGWritePCWriteIRIODRWriteMEMSEMIPS的J指令的执行过程译码周期:PC←PC[31..28]target《2取指IR←MEM[PC]周期:PC←PC+4Branch型Lw指令Sw指令R类型J指令IR←MEM[PC]PC←PC+4SifSidSexeSmemSwbJ指令非J指令Branch指令SW指令LW指令SW/LW指令非Branch/SW/LW指令指令步骤读取指令指令译码执行运算内存读写数据写回C←AopBC←A+符号扩展(Imm)若条件成立则PC←R状态转移图和指令各执行步骤的操作功能PC←PC[31..28]‖(target2)Mem[C]←BReg[rd]←CDR←Mem[C]Reg[rt]←DRC←PC+(符号扩展(imm)2)取指周期译码周期执行周期访存周期写回周期A←Reg[rs]B←Reg[rt]ControlUnitALUSrcAPCSrcBranchALUSrcB1:0Opcode5:0ControlUnitALUControl2:0Funct5:0MainController(FSM)ALUOp1:0ALUDecoderRegWritePCWriteIorDMemWriteIRWriteRegDstMemtoRegRegisterEnablesMultiplexerSelectsMainControllerFSM:FetchSignImmCLKARDInstr/DataM
本文标题:MIPS指令多周期CPU设计
链接地址:https://www.777doc.com/doc-3325040 .html