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

1 / 36
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功