1、 一、单周期 CPU性能分析二、 MIPS指令 多周期 CPU设计4.4 MIPS指令多周期 CPU设计一、单周期 CPU性能分析完整的单周期 CPU结构 单周期 CPU特点优点每条指令占用一个 CPU周期逻辑设计简单,时钟设计也简单缺点各组成部件的利用率不高各部件大部分时间在保持信号时钟周期将满足执行时间最长指令的要求Load指令CPI =1 假定某单周期 CPU各主要部件的延迟为:存储器( Memory): 2ns运算器( ALU/Adder): 2ns寄存器组( Register File): 1ns 指令周期比较长 所有指令都必须使用最长的周期假设某单周期 CPU,执行 100条指令
2、:25%的 Load指令10%的 Store指令45%的算逻指令20%的跳转指令单周期的执行时间 100*8 = 800ns可能的优化25*8+10*7+45*6+20*5=640nsSpeedup=800/640=1.25单周期 CPU其他问题 事实上,指令和数据都保存在同一个存储器中; 许多部件保持数据的时间过长,无法复用。例如, Adder 是否可以利用 ALU?二、 MIPS指令多周期 CPU设计多周期数据通路设计构思 在组合逻辑中插入寄存器,切分数据通路 大组合逻辑被切分为若干小组合逻辑 大延迟变为多个分段小延迟 不同指令执行占用不同的功能单元( 不必 5个环节都走完 )PCinst
3、ructionmemory+4RegisterFilertrsrdALUDatamemoryimmMUXMIPS指令多周期 CPU控制器设计思路确定数据通路划分指令执行步骤指令流程图安排每条指令每个步骤的功能 ,并给出相应的控制信号指令流程表为指令执行步骤设计状态机为每个步骤的控制信号设计控制信号生成逻辑MIPS计算机硬件系统组成由 存储器 、 寄存器堆 、 ALU部件 、 控制部件 4部分组成控制部件 由 节拍发生器 和 控制信号产生线路 组成,分别完成标明 指令执行步骤 和向各个部件 提供控制信号 的功能。存储器存指令和数据 。 读指令时由 PC 提供地址,读出的指令保存到 IR;读写数据
4、时由 结果寄存器 提供地址, 读操作 的读出数据保存到 DR;写操作 的写入数据由 B寄存器 给出。寄存器堆由 32个寄存器组成,可以用 N1(rs)、 N2 (rt)同时读出两个寄存器的内容,分别存于 A、 B寄存器 ; 可以用 ND (rd 或 rt ) 把 DI 端的数据写入 ;被写入数据来自 结果寄存器 或 DR。ALU完成算术和逻辑运算,两路输入分别为 A和 B,其中 A路输入 可选择 A寄存器 或 PC, B路输入 可选择 B寄存器 或 常数 4、 IR.immediate经符号扩展 或 扩展后又左移两位的值。 ALU的运算数据:A OP BA OP 扩展的 ImmePC + 4P
5、C + 扩展的 Imme4MIPS的 ADD 指令 的执行过程译码周期 : A rs B rt 取指 IRMEMPC 周期 : PC PC+4执行 C A+B 周期 :写回 寄存器堆 rd C 周期 :R型指令的实现 (ADD)取指令IODR=0, ALUsrcA=0, ALUsrcB=01,ALUop=00, PCsrc=00MEMread, IRwrite, PCwrite译码 /取操作数ALUsrcA=0, ALUsrcB=11,ALUop=00执行运算ALUsrcA=0, ALUsrcB=00,ALUop=00 写回寄存器RegDST=1 RegWrite MemtoReg = 0MI
6、PS的 LW 指令 的执行过程译码周期 : A rs取指 IRMEMPC 周期 : PC PC+4执行 C A+ 扩展 imm 周期 :内存 DRMEMC 周期 :写回 寄存器堆 rtDR 周期:MIPS的 BEQ 指令 的执行过程取指 IRMEMPC 周期 : PC PC+4执行 C A-B 周期 : PC 结果寄存器译码周期 : 结果寄存器 PC +SignExt( imm )MIPS的 J 指令 的执行过程译码周期 : PC PC3128 target 2 取指 IRMEMPC 周期 : PC PC+4Branch型Lw指令Sw指令R 类型J 指令IRMEMPCPC PC+4Sif Si
7、d SexeSmemSwbJ指令非 J 指令Branch指令SW指令LW指令SW / LW指令非 Branch / SW / LW指令指令步骤 读取指令 指令译码 执行运算 内存读写 数据写回CA op B CA + 符号扩展(Imm)若条件成立则 PCR状态转移图和指令各执行步骤的操作功能PCPC3128(target2)MemCBRegrdCDRMemC RegrtDRCPC+( 符号扩展(imm)2)取指周期 译码周期 执行周期访存周期写回周期ARegrsBRegrtControl UnitMain Controller FSM: FetchMain Controller FSM: FetchMain Controller FSM: DecodeMain Controller FSM: Address CalculationMain Controller FSM: Address CalculationMain Controller FSM: lwMain Controller FSM: swMain Controller FSM: R-TypeMain Controller FSM: beq