计算机组成原理第8、9、10章中科大11系李曦llxx@ustc.edu.cn2内容•CPU功能•CPU的结构•执行指令的过程•控制单元设计•流水线处理器技术(参见Hennessy本)llxx@ustc.edu.cn3CPU功能•解释程序的指令,完成数据加工,产生系统控制信号–取指:从内存的指令段中读取指令–译码:对op和地址域进行分析–执行:根据指令产生各种控制信号,完成数据加工llxx@ustc.edu.cn4CPU的组成•按功能部件划分–运算器(ALU)–寄存器(寄存器堆)–控制器(含中断控制)–系统总线接口等•按数据流–数据通路(datapath):各种寄存器和运算器–控制器:组合电路控制逻辑、微程序控制器MEMORYCONTROLERALUREGCTRLBUSINTERFACEllxx@ustc.edu.cn5CPU组成(con’t)•ALU:完成算术逻辑运算、移位等•寄存器–通用寄存器:运算•X86:AX/BX/CX/DX、CS/DS/SS/ES、SP/BP/SI/DI、–状态寄存器:flag(F)、PSW(工作方式、中断允许)–控制寄存器:PC(IP)、IR、MAR、MDR。。。–用户可见和不可见•IR、MAR、MDR等不可见llxx@ustc.edu.cn6寄存器组织举例llxx@ustc.edu.cn7CPU组成(con’t)•总线接口–MAR、MDR–取指•PC-MAR•MEM-MDR-IR–读操作数•EA-MAR•MEM-MDR-REG–写结果•EA-MAR•REG-MDR-MEM•数据通路连接方式–分散式–总线式MARMDRMEM地址总线数据总线PCIRREGCUCLKllxx@ustc.edu.cn8指令周期•执行一条指令所需的时间–通常,不同指令所需时间不同(如乘法操作的执行周期较长)–单周期实现•定长单周期:一个周期一条指令,周期宽度以数据通路最长的指令为准•不定长单周期:一个周期一条指令,周期宽度各个指令不同–多周期实现——将指令的执行过程划分成多个步骤,每个周期完成一个步骤。n个CPU工作周期构成一个指令周期(本书的模式)。•如取指周期、间址周期、执行周期、中断周期等•CPU中设置标志触发器指示当前的工作周期llxx@ustc.edu.cn9指令周期(con’t)•指令周期vs.机器周期vs.CPU工作周期vs.总线周期–机器周期(CPU工作周期):取指、间址、执行–时钟周期(T1/T2/T3/T4/Tw。。)、节拍、状态•机器性能:P=指令数×CPI×T–程序中的指令数由ISA和编译器确定–CPI为平均值。CPI和时钟周期宽度由处理器的实现技术确定机器周期/总线周期指令周期llxx@ustc.edu.cn10指令周期示意•遇到间接寻址的指令时,指令周期中有一段“间址周期”用于访存取出有效地址。llxx@ustc.edu.cn11多级时序系统•一个指令周期包含若干个机器周期,一个机器周期又包含若干个时钟周期(节拍),每个指令周期内的机器周期数可以不等,每个机器周期内的节拍数也可以不等。llxx@ustc.edu.cn12指令周期的数据流与微操作•数据流:指令执行时数据的流动•微操作:各个机器周期所包含的动作–取指周期–间址周期–执行周期•各个指令不同,包括取数、计算、写结果等•以10条指令为例–非访存指令:CLA,COM,SHR,CSL,STP–访存指令:ADDX,STAX,LDAX–转移指令:JMPX,BANX–注意:采用直接寻址,并基于ACC操作–中断周期•保存PC至MEM中的堆栈等•参见8.2.2和9.1llxx@ustc.edu.cn13取指周期•根据PC从MEM中取指令–PC-MAR–CU向MEM发读令,1-R–得到指令字,M(MAR)-MDR–指令字写入指令字寄存器,MDR-IR–CU控制形成下一条指令的地址,PC+1-PCMARMDRMEM地址总线数据总线PCIRACCCURWllxx@ustc.edu.cn14间址周期•取操作数的有效地址–形式地址送往MAR,Ad(IR)-MAR–CU发读令,1-R–得到有效地址,M(MAR)-MDR–MDR-Ad(IR)MARMDRMEM地址总线数据总线PCIRACCCURWllxx@ustc.edu.cn15执行周期——非访存指令•CLA:清ACC–0-ACC•COM:ACC取反–/ACC-ACC•SHR:ACC算术右移一位,符号位不变–L(ACC)-R(ACC),ACC0-ACC0•CSL:ACC循环左移一位–R(ACC)-L(ACC),ACC0-ACCn•STP:停机,标志触发器G置“0”–0-Gllxx@ustc.edu.cn16执行周期——访存指令•ADDX:ACC与地址X的内容相加,结果在ACC中–Ad(IR)-MAR–1-R–M(MAR)-MDR–ACC+MDR-ACC•STAX:将ACC存入X中–Ad(IR)-MAR–1-W–ACC-MDR–MDR-M(MAR)•LDAX:将X中的内容读入ACC–Ad(IR)-MAR–1-R–M(MAR)-MDR–MDR-ACCMARMDRMEM地址总线数据总线PCIRACCCURWllxx@ustc.edu.cn17•JMPX:无条件转移至X–Ad(IR)-PC•BANX:如果前一条指令的执行结果为负(即ACC最高位为“1”)则转移至X–ACC0*Ad(IR)+/ACC0*(PC)-PC执行周期——转移指令llxx@ustc.edu.cn18中断周期•CPU在中断周期检查是否有中断发生–动作:保存断点(PC)至MEM中的0地址单元,硬件向量给出中断入口,关中断•地址0送MAR,0-MAR•发写令,1-W•断点送MDR,PC-MDR•断点写入内存,MDR-M(MAR)•中断向量送PC,向量地址-PC•关中断,0-EINTllxx@ustc.edu.cn19控制单元(CU)的功能($9.2)•在时钟控制下,产生完成各个微操作所需的控制信号•CU的外特性–输入•时钟•指令寄存器(IR)的op域•标志:指示CPU的当前状态•中断、DMA等外部控制信号–输出•微操作控制信号•总线控制信号(访存、I/O控制等)控制单元的外特性llxx@ustc.edu.cn20ADD@X的控制-分散连接方式•因为IR=MDR,故省略了IR-MAR的路径MDRPCIRACCALUCUMARflagclkC0~13、ALUopC2C1C3C4C5C12C7C6C8C11C9C10C0C13ALUopllxx@ustc.edu.cn21ADD@X的控制-取指•C0、C1、C2、C3、C4MDRPCIRACCALUCUMARflagclkC0~13、ALUopC2C1C3C4C5C12C7C6C8C11C9C10C0C13ALUopllxx@ustc.edu.cn22ADD@X的控制-间址•C5、C1、C2、C3,得到EAMDRPCIRACCALUCUMARflagclkC0~13、ALUopC2C1C3C4C5C12C7C6C8C11C9C10C0C13ALUopllxx@ustc.edu.cn23ADD@X的控制-执行•取数:C5、C1、C2•计算:C6、C7•写回:C8MDRPCIRACCALUCUMARflagclkC0~13、ALUopC2C1C3C4C5C12C7C6C8C11C9C10C0C13ALUopllxx@ustc.edu.cn24•寄存器Y、Z的作用:保持ALU的操作数ADD@X的控制-总线连接方式MDRPCIRACCALUCUMARflagclkC0~13、ALUopPCiIRiALUopYZPCoMARoMARiMDRiMDRoACCiACCoYiALUiZo地址总线数据总线llxx@ustc.edu.cn25ADD@X的控制-取指•PCo、MARi、MDRo、IRiMDRPCIRACCALUCUMARflagclkC0~13、ALUopPCiIRiALUopYZPCoMARoMARiMDRiMDRoACCiACCoYiALUiZo地址总线数据总线llxx@ustc.edu.cn26ADD@X的控制-间址•MDRo、MARi、MDRo、IRiMDRPCIRACCALUCUMARflagclkC0~13、ALUopPCiIRiALUopYZPCoMARoMARiMDRiMDRoACCiACCoYiALUiZo地址总线数据总线llxx@ustc.edu.cn27ADD@X的控制-执行•取数:MDRo、MARi、MDRo、Yi•计算:ACCo、ALUi•写回:Zo、ACCiMDRPCIRACCALUCUMARflagclkC0~13、ALUopPCiIRiALUopYZPCoMARoMARiMDRiMDRoACCiACCoYiALUiZo地址总线数据总线llxx@ustc.edu.cn28时钟同步控制方式•指令执行的过程是顺序完成各个机器周期中的微操作的过程•指令和微操作的执行由统一的时序信号控制–定长机器周期模式•所有机器周期的节拍数相等–不定长机器周期模式•不同机器周期的节拍数不等,如不同指令的执行周期的节拍数可以不等–中央控制和局部控制模式•中央控制:多数指令的机器周期等长•局部控制:少数复杂指令的某些操作进行局部控制–局部时钟与全局时钟要同步(保持一定的比例关系)llxx@ustc.edu.cn29小结•CPU的结构与功能•指令的执行过程–多个机器周期–多个微操作•CU的功能:产生各种控制信号(微指令)•CU的定时:按照微操作的顺序在不同的节拍发出不同的控制信号•要好好研究各个指令的数据通路!!!•作业:4(p366)、1(p387)、6,11,12llxx@ustc.edu.cn30控制部件设计•任务:根据各个指令执行时在不同节拍的微操作要求,生成各个控制信号•指令译码•节拍发生器:在时钟控制下,使CU按规定的节拍发出控制信号–节拍宽度:按照微操作的要求,满足信息沿数据通路从源寄存器传送到目的寄存器所需的时间•控制部件实现方式–组合逻辑电路–微程序设计CU译码器IRflag节拍发生器CLKT0TnC0Cn取指周期指令周期间址周期执行周期T0T1T2T3控制部件设计组合逻辑实现llxx@ustc.edu.cn32微操作的节拍安排原则•顺序性:遵守微操作的先后次序–如先送地址,在发读写令•并行性:为了性能考虑,可以并行的微操作尽量安排在一个节拍内–针对不同对象的微操作–注意总线冲突•如果有些微操作占用的时间不长,尽量安排在一个节拍内完成llxx@ustc.edu.cn33取指周期、间址周期•取指周期–T0:PC-MAR,1-R–T1:M(MAR)-MDR,PC+1-PC–T2:MDR-IR,OP(IR)-ID•间址周期–T0:Ad(IR)-MAR,1-R–T1:M(MAR)-MDR–T2:MDR-Ad(IR)llxx@ustc.edu.cn34执行周期-非访存指令•CLA:清ACC–T0:–T1:–T2:0-ACC•可以在任一节拍•COM:ACC取反–T2:/ACC-ACC•SHR:ACC算术右移一位,符号位不变–T2:L(ACC)-R(ACC),ACC0-ACC0•CSL:ACC循环左移一位–T2:R(ACC)-L(ACC),ACC0-ACCn•STP:停机,标志触发器G置“0”–T2:0-Gllxx@ustc.edu.cn35执行周期——访存指令•ADDX:ACC与地址X的内容相加,结果在ACC中–T0:Ad(IR)-MAR,1-R–T1:M(MAR)-MDR–T2:ACC+MDR-ACC•含ACC-ALU,MDR-ALU,ALU-ACC等•STAX:将ACC存入X中–T0:Ad(IR)-MAR,1-W–T1:ACC-MDR–T2:MDR-M(MAR)•LDAX:将X中的内容读入ACC–T0:Ad(IR)-MAR,1-R–T1: