计算机组成原理(第6版)课件汇 纪禄平 3.4.4 多周期MIPS处理器-6.3.3 CRT显示器_第1页
计算机组成原理(第6版)课件汇 纪禄平 3.4.4 多周期MIPS处理器-6.3.3 CRT显示器_第2页
计算机组成原理(第6版)课件汇 纪禄平 3.4.4 多周期MIPS处理器-6.3.3 CRT显示器_第3页
计算机组成原理(第6版)课件汇 纪禄平 3.4.4 多周期MIPS处理器-6.3.3 CRT显示器_第4页
计算机组成原理(第6版)课件汇 纪禄平 3.4.4 多周期MIPS处理器-6.3.3 CRT显示器_第5页
已阅读5页,还剩389页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机组成原理(小班+混合式教学)1/83.4.4多周期MIPS处理器(数据通路)2/12指令周期时钟周期时钟周期

指令周期多个机器(工作)周期1、单周期CPU2、多周期CPUCPU的指令周期对比CPI=1CPI>13/12多周期处理器的特点指令的执行需多个时钟周期不同的指令所需的时钟周期数不同时钟周期比单周期处理器短复用主要部件,以简化数据通路单个ALU用于所有计算单个存储器用于指令和数据的存储需要增加寄存器暂存数据用于跨时钟周期是流水线等高级技术的基础,主流模式控制器更复杂,组合逻辑/微程序方式控制信号不仅与指令有关,还与当前时序状态有关4/12与单周期CPU相比,数据通路的结构特点:√各指令共享ALU√增设若干暂存器√指令存储与数据存储合并1个存储器(存储指令+数据),1个通用运算器;多个暂存器;5/12多周期处理器的设计思路√指令执行过程按存储单元级的信息传送,细分为多步,每步安排1个时钟周期:√共享硬件以简化数据通路(1+1+多)取指令;指令译码后从寄存器取数、计算转移地址;执行:运算、存储器地址计算,或分支判断;存储器读/写;寄存器堆写回;1个存储器(指令+数据);1个通用运算器;多个暂存器;√从R型指令数据通路开始,逐步扩展,最后再合并。6/12PCIRMDRABALUF1、

数据通路设计(表3-26,11条指令)PCWriteAddrRDWDMemReadMemWrite存储器operationzeroIRWrite(1)R型运算指令addrd,rs,rt#$rd←$rs+$rt+4PCRN1RN2WNRD1RD2RegWriteWD寄堆(1)IR←Mem[PC],PC←

PC+4(2)A←Reg[rs],B←Reg[rt](3)F←AopB(4)Reg[rd]←FIRABFrsrtrd按信息传送过程划分:7/12(2)扩展I型访存指令lwrt,offset(rs)#$rt←Mem[$rs+E(offset)](1)IR←Mem[PC],PC←

PC+4(2)A←Reg[rs](3)F←A+E(offset)(4)MDR←Mem[F]+4PCIRMDRABALUFPCWriteAddrRDWDMemReadMemWrite存储器RN1RN2WNRD1RD2RegWriteWD寄堆operationzeroIRWritePCAddrRDWDMemReadMemWrite存储器RN1RN2WNRD1RD2RegWriteWD寄堆E(5)Reg[rt]←MDRIRMDRAFrsrtrdimm8/12已涵盖了I型运算指令!比如:addirt,rs,immswrt,offset(rs)#Mem[$rs+E(offset)]←$rt(1)IR←Mem[PC],PC←PC+4(2)A←Reg[rs],B←Reg[rt]

(3)F←A+E(offset)+4PCALUFPCWriteAddrRDWDMemReadMemWrite存储器RN1RN2WNRD1RD2RegWriteWD寄堆operationzeroIRWritePCAddrRDWDMemReadMemWrite存储器RN1RN2WNRD1RD2RegWriteWD寄堆E(4)Mem[F]←BMDRIRABABIRFrsrtrdimm9/12beqrs,rt,offset#PC←(PC+4)+(E(offset)<<2),if$rs==$rt+4PCALUFPCWriteAddrRDWDMemReadMemWrite存储器RN1RN2WNRD1RD2RegWriteWD寄堆operationzeroIRWritePCAddrRDWDMemReadMemWrite存储器RN1RN2WNRD1RD2RegWriteWD寄堆EMDRIRAB(1)IR←Mem[PC];PC←PC+4,

(2)A←Reg[rs],B←Reg[rt];F←PC+E(offset)<<2

(3)PC←F,ifzero=1;NOP(不修改PC),ifzero=0ABFIR(2)扩展I型分支指令rsrtrdimm<<210/12jaddress#PC←(PC+4)[31:28]U(address<<2)+4PCALUFPCWriteAddrRDWDMemReadMemWrite存储器RN1RN2WNRD1RD2RegWriteWD寄堆operationzeroIRWritePCAddrRDWDMemReadMemWrite存储器RN1RN2WNRD1RD2RegWriteWD寄堆EMDRIRAB(1)IR←Mem[PC];

PC←PC+4,

(2)PC←PC[31:28]U(address<<2)

<<2(3)扩展J型jaddress指令<<2Ursrtrdaddress,26

imm11/1211条目标指令的数据通路设计已完成!IR4未整合的数据通路PC的来源:ALU_A的来源:ALU_B的来源:寄堆WD的来源:WN的来源:Addr来源:符号扩展器:0扩展(andi等),符号扩展(addi等)rt+4PCALUFPCWriteAddrRDWDMemReadMemWrite存储器RN1RN2WNRD1RD2RegWriteWD寄堆operationzeroIRWriteAddrRDWDMemReadMemWrite存储器RN1RN2WNRD1RD2RegWriteWD寄堆EMDRIRAB<<2<<2Ursrdaddressimm4PC+4(ALU),分支地址(F),转移地址(U)MDR,F;rt,rd;PC,F;PC,

A;4,B,E(offset),E(offset)<<212/12+4PCALUPCWriteRN1RN2WNRD1RD2RegWriteWD寄堆operationzeroIRWriteAddr

RDWDMemReadMemWrite存储器RN1RN2WNRD1RD2RegWriteWD寄堆EMDRAB<<2<<2UIRF对数据通路进行整合:0100100100011011011010PC的输入端:3路;ALU_A的输入:2路;ALU_B的输入:4路;寄堆WD的输入:2路、WN的输入:2路;存储器Addr输入:2路;(使用了6个多路选择器)rdrsrtaddrimm13/123.4.4多周期MIPS处理器(指令流程与微命令分析)14/12※多周期CPU所需的控制信号支持:R型、I型(访存/分支/运算等)和J型j指令;PCWriteoperationextendAluSrc_AMem2RegPCSrc[1:0]AluSrc_B[1:0]RegDstIRWrite+4PCALURN1RN2WNRD1RD2RegWriteWD寄堆zeroAddr

RDWDMemReadMemWrite存储器RN1RN2WNRD1RD2RegWriteWD寄堆EMDRAB<<2<<2U0100100100011011011010IRFIorDrst共需13组控制信号(用天蓝色字体标注)。15/12整理所需的控制信号信号名称用途控制信号具体操作PCSrc选择打入PC的数据来源01选通F暂存器00选通ALU的输出10选通分支转移地址PCWrite设置PC的工作模式0未使用1将PC置为写模式IorD选择存储器地址端addr的来源0选通PC1选通暂存器FMem2Reg选通寄存器堆WD的数据源0选通暂存器F1选通暂存器MDRExtend设置16→32位的扩展模式00扩展(逻辑型)1符号扩展(数值型)(参见表3-32)16/1217/1信号名称用途控制信号具体操作ALUsrc_A选择ALU的A端口数据来源0选通PC1选通A暂存器ALUSrc_B选择ALU的B端口数据来源00选择常数401选通寄存器B10选通扩展后的数据11选通扩展并左移的数据IRWrite设置IR的工作模式0未使用1将IR设置为写模式RegDst、RegWrite与单周期数据通路中的一致MemWrite、MemReadoperation(续表)√√√这些信号将参与指令执行过程的控制!IR←Mem[PC]PC←PC+4T0T1T2T3T4R型lwswbeqI运算jFTDTETMTRTA←Reg[rs]B←Reg[rt]F←AopBA←Reg[rs]F←A+E(offset)MDR←Mem[F]Reg[rt]←MDRA←Reg[rs]B←Reg[rt]F←A+E(offset)Mem[F]←BA←Reg[rs]B←Reg[rt]F←PC+E(offset)<<2A-BZero=1:PC←F

PC←PC[31:28]Uaddr<<2F←A

opE(imm)A←Reg[rs]Reg[rd]←FReg[rt]←FReg[rd]←FReg[rt]←F取指令译码执行访存写回寄堆(1)指令执行流程18/1219/1时钟周期功能(微)操作控制信号(微命令)T0IR←Mem[PC]PC←PC+4IorD=0,MemRead=1,IRWrite=1ALUSrc_A=0,ALUSrc_B=00,operation=0010,PCSrc=00,PCWrite=1T1A←Reg[rs],B←Reg[rt]时钟边沿触发,无其它控制信号T2F←AopBALUSrc_A=1,ALUSrc_B=01,operation,T3Reg[rd]←FRegDst=0,Mem2Reg=0,RegWrite=1T4※R型指令:oprd,rs,rt(2)各指令所需信号分析(结合图3-91)20/1时钟周期功能(微)操作直接控制信号(微命令)T0IR←Mem[PC]PC←PC+4IorD=0,MemRead=1,IRWrite=1ALUSrc_A=0,ALUSrc_B=00,operation=0010,PCSrc=00,PCWrite=1T1A←Reg[rs]时钟边沿触发,无其它控制信号T2F←A+E(offset)ALUSrc_A=1,ALUSrc_B=10,extend=1,operation=0010T3MDR←Mem[F]IorD=1,MemRead=1T4Reg[rt]←MDRRegDst=1,MemtoReg=1,RegWrite=1※I型访存指令:lwrt,offset(rs)时钟周期功能(微)操作直接控制信号(微命令)T0IR←Mem[PC]PC←PC+4IorD=0,MemRead=1,IRWrite=1ALUSrc_A=0,ALUSrc_B=00,operation=0010,PCSrc=00,PCWrite=1T1A←Reg[rs]B←Reg[rt]时钟边沿触发,无其它控制信号T2F←A+E(offset)ALUSrc_A=1,ALUSrc_B=10,extend=1,operation=0010T3Mem[F]←BIorD=1,MemWrite=1T4※I型访存指令:swrt,offset(rs)21/12时钟周期功能(微)操作直接控制信号(微命令)T0IR←Mem[PC],PC←PC+4IorD=0,MemRead=1,IRWrite=1,ALUSrc_A=0,ALUSrc_B=00,operation=0010,PCSrc=00,PCWrite=1T1A←Reg[rs],B←Reg[rt],F←PC+E(offset)<<2ALUSrc_A=0,ALUSrc_B=11,operation=0010,extend=1T2A-B:Ifzero==1,PC←FIfzero==0,NOPALUSrc_A=1,ALUSrc_B=01,operation=0110Ifzero==1:PCSrc=01,PCWrite=1T3T4※I型分支指令:beqrs,rt,offset22/12时钟周期功能(微)操作直接控制信号(微命令)T0IR←Mem[PC],PC←PC+4IorD=0,MemRead=1,IRWrite=1,ALUSrc_A=0,ALUSrc_B=00,operation=0010,PCSrc=00,PCWriteT1A←Reg[rs]时钟边沿触发,无其它控制信号T2F←Aop

E(imm)ALUSrc_A=1,extend=1,ALUSrc_B=10,operationT3Reg[rt]←FMem2Reg=0,RegDst=1,RegWrite=1T4※I型运算指令:oprt,rs,imm23/12时钟周期功能(微)操作直接控制信号(微命令)T0IR←Mem[PC],PC←PC+4IorD=0,MemRead=1,IRWrite=1,ALUSrc_A=0,ALUSrc_B=00,operation=0010,PCSrc=00,PCWrite=1T1PC←PC[31:28]U(address<<2)PCSrc=10,PCWrite=1T2T3T4※J型转移指令:jaddress总结:不同类型指令其功能和周期数一般不同;不同的控制信号控制实现不同功能;T0实现的操作/微命令与指令无关;24/1225/123.4.4多周期MIPS处理器(组合逻辑与微程序)26/33※多周期CPU所需的控制信号支持:R型运算、I型(访存/分支/运算等)和J型j指令;PCWriteoperationextendAluSrc_AMem2RegPCSrc[1:0]AluSrc_B[1:0]RegDstIRWrite+4PCALURN1RN2WNRD1RD2RegWriteWD寄堆zeroAddr

RDWDMemReadMemWrite存储器RN1RN2WNRD1RD2RegWriteWD寄堆EMDRAB<<2<<2U0100100100011011011010IRFIorDrst共需13组控制信号(用天蓝色字体标注)。27/33RegWrite…多周期控制系统32位指令:[31:26][5:0]OP(6)…func(6)Zero标志寄存器时钟信号3、控制系统方案外部控制控制系统暂不考虑外部的I/O控制。输出的13种控制信号28/33※控制信号的产生方式两种方式:(1)硬连线(hardwired),基于组合逻辑电路。(2)微程序(micro-programmed),基于存储。→硬连线控制器→组合逻辑控制器→微程序控制器29/33组合逻辑电路…微命令序列指令译码器…外部控制/状态E内部状态S时序系统M指令信息I(1)硬连线(组合逻辑)控制方式※控制信号(微命令)的产生原理C=f(I,M,S,E)时序信号clock30/33PC控制器控制信号与各受控部件的连接通路采用两级控制模式主控单元IR[31:0]zeroIR[31:26]op6ALU控制器aluopm4IR[5:0]6funcIorDMemWriteMemReadMemtoRegRegDstextendRegWriteALUSrc_AALUSrc_BIRWriteALUSrc_BALUSrc_AIRWrite时序信号系统22b_flagclock5(FT/DT/ET/MT/RT)resetFT_flagj_flagPCSrcextendMemWriteMemReadMemtoRegRegDstRegWriteoperationIorDPCWrite31/33※需分别设计实现各控制部件①时序系统;②主控单元;③PC控制器;④ALU控制器;设计思路:→整理控制信号级的逻辑表达式(指令·T)→整理控制部件级的输入/输出真值表→把表达式转换成组合逻辑电路,综合、化简;32/33①多周期时序系统clockreset时序信号系统IR[31:26]FTDTETMTRT目标指令的时序迁移图:FTDTETMTRTj非jbeqswR型/I型运算lw/swlwR型/lw/I型运算结论:时序的变化与指令相关,也和当前时序状态有关。Tn+1=f(I,Tn)33/3334/33时序处理单元(组合逻辑模式)resetIR[31:26]FTDTETMTRTclock1→FT1→DT1→ET1→MT1→RTFTDTETMTRT√时序主处理单元+6个时序状态触发器;√反馈型的时序信号连接;可直接写出主处理单元的各输出逻辑,如:1→FT

=

j﹒DT+beq﹒ET+SW﹒MT+R型

和I型运算/lw﹒RT+resetFTDTETMTRTj非jbeqswR型/I型运算lw/swlwR型/lw/I型运算j=op[5]op[4]op[3]op[2]op[1]op[0];R型和I型运算/lw=….1→RT

=

…其中,无关项35/33②主控单元逻辑主控单元IorDMemWriteMemReadMemtoRegRegDstextendRegWriteALUSrc_AALUSrc_BIRWrite2op6FTDTETMTRTaluopb_flagFT_flagj_flag3→整理输入输出真值表(参考表3-33~3-39);→写出各输出信号的逻辑关系式;→合并、完成组合逻辑设计。(具体设计细节请参见教材)36/33③ALU控制单元逻辑aluop3func64operationALU控制器(结合aluop编码、表3-33~表3-38中的ALU相关微命令)真值表→各输出码位的逻辑式→合并化简→组合逻辑37/33表3-40多周期处理器ALU控制器真值表④PC控制单元逻辑PC控制器b_flagFT_flagj_flagzero2PCsrcPCWrite写出各位的输出逻辑式:PCsrc[1]=j_flagPCsrc[0]=beq_flag·zeroPCWrite=FT_flag+beq_flag·zero+j_flag组合逻辑38/33表3-41多周期处理器的PC控制器真值表※处理器的完整硬件架构图PCSrc[1:0]AluSrc_Aextend+4PCALUFPCWriteRN1RN2WNRD1RD2RegWriteWD寄堆operationzeroIRWriteAddr

RDWDMemReadMemWrite存储器RN1RN2WNRD1RD2RegWriteWD寄堆EMDRAB<<2<<2U0100100100011011011010IRAluSrc_B[1:0]RegDstMemtoRegIorDrst控制系统IR[31:26]IR[5:0]clockrstzero13种控制信号由组合逻辑实现39/33(2)微程序控制方式※控制信号(微命令)的产生原理①将指令在每个时钟周期中所需的控制信号等信息编码成微指令(μI);②每条指令对应多条μI(组成1段微程序),并保存到控制存储器(ControlStore);③根据机器指令(OP\func),定位微程序,依次读取各条μI

,暂存于微指令寄存器(μIR)

;④将μI的控制信号字段译码,输出对应的控制信号;⑤通过μI中的顺序控制字段,形成一下条μI的微地址。

40/33微命令字段[31:26]op[5:0]func输出控制信号(13种)顺序控制rst控制系统(微程序)clock辅助字段控制存储器(微程序)与各受控部件的控制通路PCSrcIorDRegDstMemtoRegAluSrc_AAluSrc_B…zero微指令寄存器μIRμI译码电路IR[31:0]μPC微地址形成电路zero微程序控制系统方案(输入~输出)41/33※需要设计的内容②微地址(μA)形成电路;①微程序(μP);组合逻辑程序设计③微命令译码电路;42/33①

微程序的设计①分析指令的控制信号(因为要对控制信号编码)②拟定统一的微指令(μI)格式③把各μIT中,需要控制系统输出的控制信号,编码成该指令的1段微程序④把所有指令的微程序按顺序存储到ControlStore;1条指令←→1段微程序←→n条微指令n

=

微指令周期数=

指令时钟周期数控制取指操作的微指令(μI0),存储在控制存储器的0#地址单元,被所有指令共享。43/33μI0μI11…0000H0004H0008HμI12μI13μI21000CH0010H0014HμI22μI23μI24μI31μI32μI33addrd,rs,rtlwrt,offset(rs)swrt,offset(rs)0018H001CH0100H0104H0108H微指令字长32位控制(微程序)存储器…共享微指令(取机器指令)44/33多路选择器:4个+2个(2位/个);AluSrc_Aextend+4PCALUFPCWriteRN1RN2WNRD1RD2RegWriteWD寄堆operationzeroIRWriteAddr

RDWDMemReadMemWrite存储器RN1RN2WNRD1RD2RegWriteWD寄堆EMDRAB<<2<<2U0100100100011011011010IRPCSrc[1:0]AluSrc_B[1:0]RegDstMemtoRegIorDrst各指令的控制信号共需13种控制信号,共18位。ALU:1组(4位);存储器:2个;寄存器堆:1个;扩展器:1个;专用寄存器:2个;45/33❶

微指令(μI)格式微命令字段微地址未使用31:149:213:1013个(18位)控制信号组成数据通路控制(微命令)字段1:0微指令字长:32位8位用作微地址字段(μA)2位用作μI的顺序控制字段(SC),标识下一条μI的地址形成方式顺序控制18位8位4位2位直接编码法分段直接编码法分段间接编码法√剩余4位暂不使用××(因为指令足够长,且控制信号又较少,速度快)46/33微命令字段的编排顺序IorDRegDstMemtoRegAluSrc_AAluSrc_BPCSrcOperationMemReadMemWriteIRWriteRegWritePCWriteextend微命令字段18位1111224111111SC未使用42addess8顺序控制字段2位SC字段说明(表3-42)00-顺序执行,即按μPC+4,读取下一条μI;01-按指令op/func译码结果分支,读取下一条μI;10-按无条件转移方式读取下一条μI;11-根据alu反馈的zero标志读取下一条μI;47/33❷把各T中的控制信号直接编码成μIT0IR←Mem[PC],PC←PC+4IorD=0,MemRead=1,IRWrite=1,

ALUSrc_A=0,ALUSrc_B=00,operation=0010,PCSrc=00,PCWrite=1T1……例如:公共的取指令操作微地址μA实现功能微指令μI含义(未列出位默认是0)00HIR←Mem[PC]PC←PC+4IorD=0,MemRead=1,IRWrite=1,ALUSrc_A=0,ALUSrc_B=00,operation=0010,PCSrc=00,PCWrite=1,SC=0104H……48/33微地址μA控制目标微指令μI含义(未列出位默认为0)00HIR←Mem[PC]PC←PC+4IorD=0,MemRead=1,IRWrite=1ALUSrc_A=0,ALUSrc_B=00,operation=0010,PCSrc=00,PCWrite=1,SC=0104H……将控制信号直接编码IorDRegDstMemtoRegAluSrc_AAluSrc_BPCSrcOperationMemReadMemWriteIRWriteRegWritePCWriteextend1111224111111SC未使用42addess800

0

0

0

0

00

0

0

0

0

0

0

0000

0000

00000000

00

-默认111001001→00B08001H49/33❸整合所有指令的微程序并存储到ControlStore√T0中取指操作对应的微指令被全部指令共享√各指令的其余微指令按顺序存储√各指令的最末一条微指令中的顺序控制字段SC=10❹将各指令的T1对应的μA分别写入到微地址寄存器堆中相应的寄存器这里T1对应的μA,即为00H微指令(T0,控制取指令操作)执行后,op/func分支后第一条微指令的地址。√方便根据指令译码结果,读取T1微指令的微地址;(配合地址字段,无条件转移到00H单元)50/33②微地址(μA)形成电路√用微地址寄存器堆专门存放T1对应的μI地址(即μA)√指令译码器根据指令的OP/func字段译码,产生微地址寄存器堆的地址码;设计方案如后所示:51/33[31:26][5:0]opfuncclock微地址μAop/func译码IR[31:0]μPC4ADD顺序控制(SC)微地址寄存器堆μAμI[9:2]微地址形成电路方案之一:addr000110

11

rstzero断定基于微地址存储52/33addrμA微地址寄存器堆μI0μI11…00H04H08HμI12μI13μI210CH10H14HμI22μI23μI31μI32μI33addrd,rs,rtsubrd,rs,rtandrd,rs,rt18H1CH20H24H28H微指令字长32位控制(微程序)存储器…共享微指令(控制取指)04H10H1CH…微地址选择器微地址寄存器堆的存储方案53/33●指令op/func译码器op/func译码IR[31:26]func[5:0]μA[7:0]→整理输入输出真值表;→写出输出位的逻辑式;→组合逻辑电路;54/33表3-44根据OP/func断定分支的组合逻辑真值表●zero断定分支的设计Zero断定分支μA[7:0]zero07CH180H可以采用读存储器的方式:也可以采用组合逻辑的方式输入zero输出μA[7:0][7][6][5][4][3][2][1][0]001111100110000000分别写出μA[7]~μA[0]的逻辑式,完成组合逻辑设计55/33③微命令译码电路输出控制信号译码电路微命令字段μI[17:0]

微命令字段中的控制信号编码采用的是直接编码.输出的6个选择器控制信号:13种/18位aluSrc_A=μI[26],aluSrc_B=μI[25:24],….输出的5个存储控制信号:PCWrite=μI[23],Memwrite=μI[22],….输出的2个数据控制信号:extend=μI[19],operation=μI[18:14]56/33※CPU的完整硬件结构PCSrc[1:0]AluSrc_Aextend+4PCALUFPCWriteRN1RN2WNRD1RD2RegWriteWD寄堆operationzeroIRWriteAddr

RDWDMemReadMemWrite存储器RN1RN2WNRD1RD2RegWriteWD寄堆EMDRAB<<2<<2U0100100100011011011010IRAluSrc_B[1:0]RegDstMemtoRegIorDrst控制系统IR[31:26]IR[5:0]CLKrstzero13种(18位)控制信号控制核心由微程序实现57/33组合逻辑方式的特点:(1)控制信号的产生速度比微程序快(2)设计不规整(3)不容易修改或扩展微程序控制方式的特点:(1)用规整的存储逻辑代替了不规整的、繁琐的硬连线逻辑,结构简化,有利于设计自动化(2)容易修改和扩展、灵活、通用性强(4)控制信号的产生速度比组合逻辑慢(3)可靠性较高,易于诊断和维护58/333.4.5MIPS32处理器设计(指令时间特性分析)59/11※CPU设计的主要任务※拟定指令集√※数据通路设计√※控制器设计√RISC32单/多周期处理器,指令周期如何确定?时效特性如何?60/11假设各部件的硬件延时(10-12秒,皮秒):√存储器的读写操作:200ps√寄存器堆的读写操作:100ps√

ALU和加法器运算:150ps√拼接器:50ps√其它部件忽略不计:0ps1.

MIP32单周期CPU分析61/11基于前述设计的处理器,它能支持R、I、J型共11条目标指令。RaRbRwMUXDataALUMUXWDEaddrRDADDWDADDaddrPC+4InstructionclockFR55516WeReMUXU<<2264<<2MUX指令存储器ABrstWn28clockalu_opclockaddrd,rs,rt#$rd←$rs+$rt200+100+150+100=550ps[举例]150PC回路是硬件并行的非关键路径62/11200100150100RaRbRwMUXDataALUMUXWDEaddrRDADDWDADDaddrPC+4InstructionclockFR55516WeReMUXU<<2264<<2MUX指令存储器ABrstWn28clockalu_opclocklwrt,imm(rs)#$rt←Mem[$rs+E(imm)]200+100+150+200=750ps150PC回路是硬件并行的非关键路径+100200100150200100用同样方法可得到如下时间:由此可见:lw指令耗时最长:指令类别路径分段延时(ps)最长延时(ps)→单周期CPU的指令周期T应不小于lw指令时间→T=750ps→CPU主频≈1.33GHz64/11R/I型运算指令200+100+150+0

+100550I型lw200+100+150+200+100750I型sw200+100+150+200650I型beq200+100+150450J型指令200+50250I型lw200+100+150+200+100750750ps※单周期CPU特性总结(2)处理器的CPI≡1;(1)指令周期与时钟周期等长,且宽度较大;(3)在指令周期中,各种硬件资源均被相应的功能操作独占,不能共享,硬件利用率低;→对简单的小规模指令集支持较好;→难胜任浮点或更复杂指令集;(4)所有指令无论其实际执行时间长短,均分配较长的时钟周期,时间浪费严重;65/112.MIPS32多周期CPU分析已能支持:PCWriteoperationextendAluSrc_AMem2RegPCSrc[1:0]AluSrc_B[1:0]RegDstIRWrite+4PCALURN1RN2WNRD1RD2RegWriteWD寄堆zeroAddr

RDWDMemReadMemWrite存储器RN1RN2WNRD1RD2RegWriteWD寄堆EMDRAB<<2<<2U0100100100011011011010IRFIorDrst66/11部分R型运算、I型(访存/分支/运算等)和J型j指令;[举例]共4T:+4PCALURN1RN2WNRD1RD2RegWriteWD寄堆zeroAddr

RDWDMemReadMemWrite存储器RN1RN2WNRD1RD2RegWriteWD寄堆EMDRAB<<2<<2U0100100100011011011010IRFPCWriteoperationextendAluSrc_AMem2RegPCSrc[1:0]AluSrc_B[1:0]RegDstIRWriteIorDrstaddrd,rs,rt#$rd←$rs+$rt(FT)200+(DT)100+(ET)150+(RT)100

=550ps67/11用同样方法,可得如下结果:指令FTDTETMTRT合计I/R运算200100150X100550I型lw200100150200100750I型sw200100150200X650I型beq200150150XX500J型指令20050XXX250由此可见:耗时最长的步骤为读写存储器-200ps→T=200ps→CPU主频≈5GHz指令周期4T=8005T=10004T=8003T=6002T=40068/11※多周期CPU特性总结(1)缩短时钟周期,可以为不同的指令安排多个时钟周期,CPI≥2;(2)不同类型指令分配的时钟周期数可以不同;(4)硬件可共享,硬件资源的综合利用率高。(3)指令周期的长度一般会变长,执行速度降低;69/113.6CPU的异常与中断(内部异常+外部中断)70/41.基本概念异常:CPU内部发生的意外事件(Exception,内中断)→与当前指令相关的,同步事件。中断:来自CPU外部的中断请求(Interrupt,外中断)→与当前指令无关的,异步事件。2.异常和中断的类型故障(fault):现行指令执行过程中触发的异常,如溢出。自陷(trap):事先主动安排的一种异常,如断点调试。终止(abort):处理器发生的硬件级故障,如接口损坏。内部异常:71/4可屏蔽的中断(maskable):通过中断屏蔽字进行屏蔽。不可屏蔽中断(non-maskable):通过专用不可屏蔽线路,针对紧急的、系统必须响应的硬件级故障。向量中断和非向量中断:依据中断服务程序入口地址的形成模式来区分。向量中断:依靠硬件形成查表地址、查表直接确定入口地址。非向量中断:依靠硬件、执行软件查询程序才能确定入口地址。外部中断:72/43.异常和中断的处理流程关闭中断保存断点+程序程序状态异常(中断)识别指令断点继续执行异常(中断)处理(含恢复现场)情况1:异常指令本身;情况2:指令的下一条指令;详细过程将在第5章重点讲述!73/43.7流水线处理器(概念/设计/冒险)74/263.7.1流水线概念把指令过程分解为若干子过程,每个子过程都可有效地在其专用功能段上与其它子过程重叠执行,这种技术称为流水技术。3TI1I1假设有3条指令:I1、I2、I3I1I2I3I1I2I3FT/DT/ETI1FTDTETI11T1T1TI2t=0t=1Tt=2Tt=3T3T中:流水完成了I1+I2/I3部分操作非流水与流水方式对比:75/26[例]浮点加法的四段式流水线(时空图)求阶差对阶尾数相加规格化进入离开TTTTI1I2I3I4I5I6I1I2I3I4I5I6I1I2I3I4I6I1I2I3I4I5I6求阶差对阶尾数相加规格化0t1t2t3t4t5t6t7t8t9执行6条指令:I1~I6串行执行6条指令:24T流水执行6条指令:9T每条指令:4TI576/26※流水线的特点流水线的子过程称为流水线的“级”或“段”,子过程的数目称为流水线的“流水深度”(m)。每个子过程由专用的功能段实现,各功能段的时间应基本相等,通常为1个时钟周期(1拍)。流水线需要经过一定的通过时间才能稳定流水技术适合于大量相同指令的执行。(即无空闲功能段):

t稳=T×m77/26把功能部件(如浮点加)细分成若干子功能段(求阶差、对阶、尾数加、规格化)。多条指令中该操作的不同子操作可在这些子功能段上流水执行。1.流水线的基本类型(1)按流水线的处理层级→操作部件级流水→指令级流水→处理机级流水把一条指令的执行分成若干个过程(如FT/DT/ET),多条指令的不同过程可以流水执行。把复杂任务细分成若干子任务(指令组)。多个任务的不同子任务可以在不同处理器上流水执行。78/26(2)按流水线能完成的功能数量①单功能流水线②多功能流水线多功能流水线按同一时间内可连接完成的功能数量不同,又分为:→静态多功能流水线→动态多功能能流水线(控制太复杂,很少使用)两者的时-空关系图如后所示(同一时刻只能连接成1种固定功能)(同一时刻只能连接成多种不同功能)79/26t0t1t2I3I4

I3I4I3I4功能2t0t1t2I3I4

I3I4I3I4功能2I1I2I1I2I1I2I1I2功能1I1I2I1I2I1I2I1I2功能1静态多功能流水线动态多功能流水线80/26(4)按流水线内各段的连接模式→线性流水线(前馈型)→非线性流水线(存在反馈连接)(5)按流水线输入输出对应关系→顺序流水线(先进先出)→乱序流水线(无序、错序或异步)(3)按处理的数据形态→标量流水线→向量流水线S1S2S3S1S2S381/262.流水线的性能指标→吞吐率单位时间内处理的任务数或数据量tktnI1I2I3I4…InI1I2I3I4…InI1I2I3I4InI1I2I3I4…In求阶差对阶尾数相加规格化…指令数:n流水段数:k流水段时长:T=∆tk×∆t(n-1)×∆t82/26

吞吐率→加速比:SP同一程序,不采用流水的执行时间与采用流水线的执行时间的比值。SP=(6×4)/(4+6-1)=24/9≈2.7I1I2I3I4…I6I1I2I3I4…I6I1I2I3I4I6I1I2I3I4…I6求阶差对阶尾数相加规格化…

83/26

→利用率PE流水线中各部件的平均利用率,即一定时间内,部件实际工作时间与部件总时间的比值(段时比)。n=6时:PE=6/9≈66.7%I1I2I3I4…InI1I2I3I4…InI1I2I3I4InI1I2I3I4…In求阶差对阶尾数相加规格化…

84/263.7.2流水线设计(1)五段式数据通路:取指段IF、译码段ID、执行段EX、访存段MEM、写回段WB四组锁存器:IF/ID,ID/EX,EX/MEM,MEM/WB不支持指令:jaddress85/26取指段:由前序指令在EX中生成的PCSrc控制,二选一形成PC值从指令存储器取指令。译码段:控制系统生成指令所需的全段控制信号:9个。Regdst,Regwr,extend,aluSrc,operation,Memw/Memr,beq_flg,mem2regPCSrc??Ctrls生成Rw、读出A/B、扩展imm16;传递锁存信息86/26执行段:传递锁存信息;计算出BPC、ZF、ALU运算。访存段:传递锁存信息;计算出PCSrc、读写数据。写回段:传递锁存信息:Regwr、Mem2reg、写寄存器堆。87/26(2)流水线控制逻辑:控制信号=F(指令,流水段,….);F是一个非线性函数。相同的时钟周期中,存在多条指令在不同流水段并行。思考:只有一个控制系统,如何给出控制信号?88/26思路:集中产生+逐段传递在译码段:集中产生各指令所需的全部控制信号(9个);后段使用的控制信号:依次锁存、逐段传递;跟单周期CPU控制系统设计基本一致89/263.7.3流水线冒险及处理在指令流水线中当遇到一些情况使得流水线无法正确执行后续指令而引起流水线阻塞或停顿,这个现象称为流水线冒险。根据引起冒险的原因不同,有3种:结构冒险数据冒险控制冒险90/261.结构冒险(StructureHazard)同一部件同时被不同指令所用,导致硬件资源发生冲突。Mem时钟周期LoadInstr1Instr2Instr3Instr4ALUMemRegMemRegALUMemRegMemRegALUMemRegMemRegALURegMemRegALUMemRegMemReg指令序列※每个部件在特定的阶段被用;※将InstructionMemory(IM)和DataMemory(DM)分开;※将寄存器读口和写口独立开来;91/262.数据冒险(DataHazard)后面指令用到前面指令的结果,但指令结果还没产生。指令序列时钟周期addr1,r2,r3subr4,r1,r3andr6,r1,r7orr8,r1,r9xorr10,r1,r11IFID/RFExMemWrALUImRegDmRegALUImRegDmRegALUImRegDmRegImALURegDmRegALUImRegDmReg92/26※数据冒险的解决方法93/26方法1:硬件阻塞(stall,即气泡停顿)方法2:软件插入“NOP”指令方法3:合理实现寄存器堆的读/写操作(不能解决所有数据冒险)前半时钟周期写,后半时钟周期读,若同一个时钟内前面指令写入的数据正好是后面指令所读数据,则不会发生数据冒险方法4:转发(Forwarding或Bypassing旁路)技术若相关数据是ALU结果,则如何?

可通过转发解决若相关数据是上条指令DM读出内容,则如何?

不能通过转发解决,随后指令需被阻塞一个时钟或加NOP指令称为Load-use数据冒险!方法5:编译优化:调整指令顺序(不能解决所有数据冒险)实现“转发”和“阻塞”要修改数据通路:(1)检测何时需要“转发”,并控制实现“转发”(2)检测何时需要“阻塞”,并控制实现“阻塞”3.控制冒险(ControlHazard)94/26当遇到改变指令执行顺序的转移指令(调用、返回等)、异常和中断情况时,在形成转移地址之前,流水线中已有若干后续指令在执行,这时需要清除这些指令。T4T5T6T7T8T9T10T11IFIDEXMemWBIFIDEXMemWB16:R-typeIFIDEXMemWBIFIDEXMemWB24:R-type12:beq20:

R-typeIFIDEXMemWB分支目标:1000beq在T4取指,在T7才确定是否转移,T8才取出目标指令。流水结果:取目标指令前,已有3条指令被取出(无用功)发生转移时:要清除beq后面的3条指令,带来3T延迟损失。假如:beq指令转移目标地址为1000。※控制冒险的解决方法95/26方法1:硬件上阻塞(stall)分支指令后3条指令的执行使后面三条指令清0或其操作信号清0,以插入三条NOP指令方法2:软件上插入三条“NOP”指令[以上两种方法效率低,需结合分支预测进行]方法3:分支预测(Predict)静态预测:总是预测条件不满足(nottaken),即继续执行分支指令的后续指令。启发式规则:在特定情况下总是预测满足,其他情况总是预测不满足。比如:循环顶部(底部)分支总是预测为不满足(满足),能达65%-85%的预测准确率。动态预测:如AI方法根据程序执行历史情况进行动态预测调整,能达90%的预测准确率方法4:延迟分支(Delayedbranch)(编译优化指令顺序)把分支指令前面与分支指令无关的指令调到分支指令后执行,也称延迟转移※标量与超标量流水线96/26标量流水线:在每个时钟周期只发射1条指令,并要求每个时钟周期只从流水线流出一条指令的结果。超标量流水线:是指在每个时钟周期向流水线发射多条指令,并能从流水线流出多个结果。3.7.4其他高级流水线介绍1TI1I2I3I4I5I6I1I2I3I7I8I9I4I5I62T3T时钟周期发射的指令三发射超标量流水线示意图I10I11I12I7I8I997/26※超级流水线技术98/26超流水线:把完成一条指令的流水线的各一级子过程进一步细分成若干二级子过程时钟周期发射指令取指译码执行写回1T2T假设指令的4个子过程:(=超流水的度、深度)超级流水的度=3※超标量超级流水线技术同时使用超级流水线和超标量技术。超标量度=3,超级流水度=3,超标量超级流水度=3×3=9。99/26时钟周期发射指令取指译码执行写回1T2T3T指令的4个子过程:每T发射3次、每次发射3条,共3×3=9条指令。3.8CPU的其他增强技术(超线程/多核/多处理器)100/123.8.1SMT与超线程SMT(SimultaneousMultithreading)即同步多线程。Intel在2002年开发的HT(Hyper-threading),即超线程技术就是一种典型的SMT,首先运用于Xeon(至强)处理器。从而率先实现了在一颗CPU上同时硬件级地并行执行多个程序的指令。[例如]Intel的第4代corei7(Haswell,4核8线程)。使CPU能够执行分别来自多个线程的指令(一种硬件多线程技术)。101/123.8.2多核技术多核处理器也称为片上多处理器,主要特征是在一个处理器芯片上集成多个CPU内核。1996年,斯坦福大学提出,但技术未发展起来。1、多核的发展原因通过提高单核CPU主频、IPS的手段已无潜力;2、多核的种类原生多核,各内核独立,如AMDAthlon64X2(速龙)

封装多核,各内核共享前端总线\不完全独立;102/12双核处理器(DualCoreProcessor):指在一个处理器上集成两个运算核心,从而提高处理器的计算能力。AMD的方案:将两个内核做在一个Die(晶元)上,通过直连架构连接起来,集成度更高。Intel的方案:将不同Die(晶元)上的两个内核封装在一起;3、Intel与AMD的首款双核CPU103/12Intel“双芯”vs.AMD“双核”CPU内核L2缓存总线接口CPU内核L2缓存总线接口CPU内核L2缓存系统请求接口交叉开关CPU内核L2缓存内存控制器内存控制器超传输总线Intel双核架构(PentiumEE)AMD双核架构(AthlonX2)前端总线FSB104/124、多核CPU的发展趋势

核的数量越来越多技术更先进,如采用SMT等集成GPU

工艺制程越来越小,已达14nm(2015,skylake,采用3D-三栅极光刻技术)国内首款多核处理器:√国防科大“FT-1000/1500”(2013,16核,40nm)等。√中科院计算所“龙芯3A”

(2009/原生4核/64位MIPS架构,RISC/65nm)105/123.8.3多处理器系统单处理器系统能力受限→通过构建多处理器系统进一步提升计算机系统性能。按照指令和数据处理方式进行计算机系统划分:→Flynn分类标准1.单指令流单数据流(SISD)结构特点:一个处理器+一个存储器106/122.单指令流多数据流(SIMD)一个指令流同时对多个数据流进行处理,也称为数据级并行技术。(╳)不支持指令并行。例如:向量处理器。1个控制单元、多个执行单元、同时访问多个数据。107/123.多指令流单数据流(MISD)多条指令并行,对同一个数据流进行处理。(╳)一种理想化模型。→从流水线角度:存在数据冒险。多指令流并行处理多数据流会更高效。108/124.多指令流多数据流(MIMD)特点:多个指令并行处理多个不同的数据,线程级并行结构模式:多个处理器+处理器专用/共享存储器。(1)单处理器+专用存储器≈单处理器的独立计算机(2)多处理器+共享存储器=共享存储多处理器系统(SMMP)109/12※共享存储多处理器系统(1)主从结构(Master-SlaveMulti-Processor,MSMP)(2)对称结构(SymmetricMulti-Processor,SMP)结构特点:中心化,操作系统运行于主处理器→集中管理线程和进程等资源调度。缺点:负载不均衡,主处理器容易成系统瓶颈。结构特点:去中心化,操作系统可运行于任意处理器→自主调度各种资源。缺点:操作系统复杂性会增加。比如,需要解决处理器协同、以及不同进程的同步。按各处理器之间的关系:110/12※共享存储多处理器系统按处理器访存时间差异:(1)一致存储访问(UniformMemoryAccess,UMA)特点:处理器访问不同存储单元的时间基本一致。(2)非一致存储访问(Non-UniformMemoryAccess,NUMA)特点:处理器的访存时间与存储单元位置有关。①无缓存的非一致存储访问(No-CacheNUMA)→而NUMA-SMMP又有两种:②缓存一致的非一致存储访问(Cache-CoherentNUMA)111/12112/14第4章存储子系统-半导体-磁表面-光存储-三级存储体系原理及器件113/14本章需解决的主要问题:(1)存储器如何存储信息?(2)在实际应用中如何用存储芯片组成具有一定容量的存储器?(3)如何改进存储系统的性能?外存114/144.1概述1.存储系统的层次结构

CPUCache主存L1、L2、L3三级存储体系115/14(1)主存(内存)主要存放CPU当前使用的指令和数据。工作速度快有足够的存储容量(2)辅存(外存)存放大量的后备程序和数据速度较慢容量较大能随机访问116/14(3)高速缓冲存储器(Cache)存放CPU在当前一小段时间内多次使用的程序和数据,以缓解CPU和主存的速度差异。速度非常快容量却很小主存(DDR4/5)MM外存(硬盘等)EMCPU内核数据L1L2L3指令L1117/142.物理存储器与虚拟存储器物理存储器:物理形态上真实存在的存储器,简称为实存,其地址称为物理地址或实地址。虚拟存储器:虚拟存储器是一个逻辑模型,并非物理存在,基于物理存储器并靠硬件+操作系统的地址映射来实现。逻辑上能提供比物理存储器更大的虚拟存储空间,相关地址称为虚地址或逻辑地址。虚拟存储技术内存外存118/143.存储器的分类(按存储介质)(1)半导体存储器静态存储器:利用双稳态触发器的两个稳定状态存储信息,信息易失(2)磁表面存储器利用磁层上不同方向的磁化区域表示信息,容量大,非破坏性读出,长期保存信息,速度慢,外存例如:IDE硬盘,SATA硬盘动态存储器:依靠电容上的电荷暂存信息,主存119/14(3)光盘存储器利用光斑的有无/晶相等变化表示信息,容量很大,非破坏性读出,长期保存信息,速度慢,外存※只读型光盘CD-ROM※一次写入型光盘WORM※可擦除/重写型光盘120/143.存储器的分类(按存取方式)随机存取:按地址访问存储器中的任一单元,访问时间与存储单元的地址无关。(1)随机存取存储器(RAM,ROM)ROM例如,微程序控制器中的控制存储器(CM)RAM例如,主存121/14RAM:频率-存取周期或读/写周期(ns)固化型:

可读可写ROM:

只读型PROM:用户不能写入数据用户可写入一次EPROM:可多次编程(紫外线擦除)EEPROM:可多次写入(电擦除)速度指标:通常用作主存、高速缓存。FLASHMemory(闪存)如:SDR/DDR/DDR2-4接近122/14(2)顺序存取存储器(SAM)访问时读/写部件按顺序查找目标地址,访问时间与数据的存储位置有关。定位操作平均定位时间(ms)数据读/写操作两步操作速度指标数据传输率(b/s)例如:磁带机(录音机)、电影胶片。123/14(3)直接存取存储器(DAM)访问时读/写部件先粗定位一个小区域,再在该区域内顺序查找。三步操作定位(寻道)操作等待(旋转)操作读/写操作速度指标平均定位(平均寻道)时间(ms)平均等待(平均旋转)时间(ms)数据传输率(b/s)访问时间与数据位置有关,例如:硬盘。124/144.存储器的技术指标(1)存取时间(2)存取周期从存储器收到读写命令,到存储器读出(写入)信息所需要的时间,TA存储器做连续访问操作过程中一次完整的存取操作所需的总时间,TM存取时间存取周期恢复期(通常TM

>

TA)125/14(2)数据传输率−R单位时间内存取信息的数据量,也叫带宽或频宽数据传输率(R)=存储器的位宽存取周期bps【例】某双通道DDR-4内存传输频率为3200

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论