计算机组成原理张丽杰哈尔滨工业大学计算机硬件基础教研室第8章CPU的结构和功能8.1CPU的结构8.3指令流水8.2指令周期8.4中断系统8.1CPU的结构一、CPU的功能取指令分析指令执行指令,发出各种操作命令控制程序输入及结果的输出总线管理处理异常情况和特殊请求1.控制器的功能2.运算器的功能实现算术运算和逻辑运算指令控制操作控制时间控制数据加工处理中断二、CPU结构框图PCIR指令控制操作控制时间控制数据加工处理中断ALU寄存器中断系统1.CPU与系统总线CU时序电路寄存器ALU中断系统CUCPU控制总线数据总线地址总线8.12.CPU的内部结构8.1算术和布尔逻辑取反移位状态标志内部数据总线寄存器CU中断系统ALU控制信号…CPU1.用户可见寄存器(1)通用寄存器三、CPU的寄存器存放操作数可作某种寻址方式所需的专用寄存器(2)数据寄存器存放操作数(满足各种数据类型)两个寄存器拼接存放双倍字长数据(3)地址寄存器存放地址,其位数应满足最大的地址范围用于特殊的寻址方式段基值栈指针(4)条件码寄存器存放条件码,可作程序分支的依据如正、负、零、溢出、进位等8.12.控制和状态寄存器(1)控制寄存器PC控制CPU操作(2)状态寄存器状态寄存器其中MAR、MDR、IR用户不可见存放条件码PSW寄存器存放程序状态字PC用户可见3.举例Z80008086MC68000MARMMDRIR8.1四、控制单元CU和中断系统1.CU产生全部指令的微操作命令序列组合逻辑设计微程序设计硬连线逻辑存储逻辑2.中断系统参见第4篇五、ALU参见8.4节参见第6章8.18.2指令周期一、指令周期的基本概念1.指令周期取出并执行一条指令所需的全部时间完成一条指令执行取指、分析取指阶段取指周期执行阶段执行周期(取指、分析)(执行指令)指令周期取指周期执行周期2.每条指令的指令周期不同取指周期指令周期取指周期执行周期指令周期NOPADDmemMULmem8.2取指周期执行周期指令周期…3.具有间接寻址的指令周期4.带有中断周期的指令周期取指周期间址周期指令周期执行周期取指周期间址周期指令周期执行周期中断周期8.25.指令周期流程取指周期执行周期有间址吗?有中断吗?间址周期中断周期是是否否8.26.CPU工作周期的标志CPU访存有四种性质取指令取地址取操作数存程序断点取指周期间址周期执行周期中断周期FEDINDDINTDCLK1FE1IND1EX1INTEXDCPU的4个工作周期8.21.取指周期数据流二、指令周期的数据流MDRCUMARPCIR存储器CPU地址总线数据总线控制总线IR+18.22.间址周期数据流MDRCUMARCPU地址总线数据总线控制总线PCIR存储器MDR8.23.执行周期数据流4.中断周期数据流不同指令的执行周期数据流不同MDRCUMARCPU地址总线数据总线控制总线PC存储器8.28.3指令流水一、如何提高机器速度1.提高访存速度2.提高I/O和主机之间的传送速度•提高整机处理能力高速芯片Cache多体并行I/O处理机DMA多总线通道高速器件改进系统结构,开发系统的并行性中断3.提高运算器速度高速芯片改进算法快速进位链二、系统的并行性时间上互相重叠2.并行性的等级指令级(指令之间)(指令内部)过程级(程序、进程)两个或两个以上事件在同一时刻发生两个或两个以上事件在同一时间段发生并行1.并行的概念粗粒度软件实现细粒度硬件实现并发同时8.3取指令3执行指令3三、指令流水原理2.指令的二级流水1.指令的串行执行取指令取指令部件完成总有一个部件空闲指令预取若取指和执行阶段时间上完全重叠指令周期减半速度提高1倍…执行指令执行指令部件完成取指令1执行指令1取指令2执行指令2取指令3执行指令3取指令2执行指令2取指令1执行指令18.3必须等上条指令执行结束,才能确定下条指令的地址造成时间损失3.影响指令流水效率加倍的因素(1)执行时间取指时间(2)条件转移指令对指令流水的影响解决办法?取指令部件指令部件缓冲区执行指令部件猜测法8.34.指令的六级流水六级流水14个时间单位串行执行6×9=54时间单位完成一条指令6个时间单位COFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFI指令1指令2指令3指令4指令5指令6指令7指令8指令91234567891011121314t8.3四、影响指令流水线性能的因素8.3不同指令争用同一功能部件产生资源冲突程序的相近指令之间出现某种关联使指令流水出现停顿,影响流水线效率不同指令因重叠操作,可能改变操作数的读/写访问顺序1.结构相关2.数据相关3.控制相关流水线遇到分支指令指令1与指令4冲突指令2与指令5冲突指令1、指令3、指令6冲突…四、影响指令流水线性能的因素1.结构相关8.3不同指令争用同一功能部件产生资源冲突解决办法•停顿•指令存储器和数据存储器分开•指令预取技术(适用于访存周期短的情况)COFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFI指令1指令2指令3指令4指令5指令6指令7指令8指令91234567891011121314t四、影响指令流水线性能的因素假设流水线由5段组成,取指令(IF)、指令译码/读寄存器(ID)、执行/访存有效地址计算(EX)、存储器访问(MEM)、结果写回寄存器(WB)。8.3表8.1不同类型指令在各流水段中所进行的操作流水段指令ALU取/存转移IF取指取指取指ID译码读寄存器堆译码读寄存器堆译码读寄存器堆EX执行计算访存有效地址计算转移目标地址,设置条件码MEM—访存(读/写)若条件成立,将转移目标地址送PCWB结果写回寄存器堆将读出的数据写入寄存器堆—1.结构相关表8.2两条指令同时访存造成结构相关冲突8.3指令时钟周期12345678LOAD指令IFIDEXMEMWB指令i+1IFIDEXMEMWB指令i+2IFIDEXMEMWB指令i+3IFIDEXMEMWB指令i+4IFIDEXMEM1.结构相关表8.3解决访存冲突的一种方案8.3指令时钟周期123456789LOAD指令IFIDEXMEMWB指令i+1IFIDEXMEMWB指令i+2IFIDEXMEMWB指令i+3停顿IFIDEXMEMWB指令i+4IFIDEXMEM2.数据相关不同指令因重叠操作,可能改变操作数的读/写访问顺序•采用旁路技术解决办法8.3•写后读相关(RAW)SUBR1,R2,R3ADDR4,R5,R1;(R2)(R3)R1;(R5)+(R1)R4•读后写相关(WAR)STAM,R2ADDR2,R4,R5;(R2)M存储单元;(R4)+(R5)R2•写后写相关(WAW)•后推法MULR3,R2,R1SUBR3,R4,R5;(R2)×(R1)R3;(R4)(R5)R32.数据相关例如流水线要执行下列指令序列8.3ADDR1,R2,R3;(R2)+(R3)→R1SUBR4,R1,R5;(R1)―(R5)→R4ANDR6,R1,R7;(R1)AND(R7)→R6ORR8,R1,R9;(R1)OR(R9)→R8XORR10,R1,R11;(R1)XOR(R11)→R102.数据相关表8.4未对数据相关进行特殊处理的流水线8.3指令时钟周期123456789ADDIFIDEXMEMWBSUBIFIDEXMEMWBANDIFIDEXMEMWBORIFIDEXMEMWBXORIFIDEXMEMWBID译码/读寄存器WB结果写回寄存器2.数据相关表8.5对数据相关进行特殊处理的流水线8.3指令时钟周期123456789101112ADDIFIDEXMEMWBSUBIFIDEXMEMWBANDIFIDEXMEMWBORIFIDEXMEMWBXORIFIDEXMEMWB3.控制相关8.3BNE指令必须等CPX指令的结果才能判断出是转移还是顺序执行LDA#0LDX#0INXCPX#NBNEMDIV#NSTAANSADDX,DM由转移指令引起3.控制相关8.3WOEIFOCODIWOEIFODIFIFIDIFICOFIFOCODIFIWOEIFOCODIFIDIFOEIWOEIFOCOFIDICOWODIFICOFI指令1指令2指令3指令4指令5指令6指令7指令15指令161234567891011121314转移损失t设指令3是转移指令五、流水线性能1.吞吐率单位时间内流水线所完成指令或输出结果的数量8.3•最大吞吐率•实际吞吐率连续处理n条指令的吞吐率为设m段的流水线各段时间为ΔtTpmax=Δ1tTp=m·Δ+(n-1)·Δntt2.加速比Sp8.3m段的流水线的速度与等功能的非流水线的速度之比设流水线各段时间为Δt完成n条指令在m段流水线上共需T=m·+(n-1)·ttΔΔ完成n条指令在等效的非流水线上共需T′=nm·tΔSp=m·+(n-1)·nm·=nmm+n-1ΔtΔΔtt则由于流水线有建立时间和排空时间因此各功能段的设备不可能一直处于工作状态8.3流水线中各功能段的利用率3.效率mΔt31245312453124531245………………………………n-1nn-1nn-1nn-1nT时间S空间空间S4S3S2S1(n-1)ΔtWREXIDIF8.3m(m+n-1)Δt=mnΔt流水线各段处于工作时间的时空区流水线中各段总的时空区效率=3.效率mΔt31245312453124531245………………………………n-1nn-1nn-1nn-1nT时间S空间空间S4S3S2S1(n-1)Δt流水线中各功能段的利用率8.34.举例例8.1假设指令流水线分取指(IF)、译码(ID)、执行(EX)、回写(WR)四个过程段,共有10条指令连续输入此流水线。(1)画出指令周期流程。(2)画出非流水线时空图。(3)画出流水线时空图。(4)假设时钟周期为100ns,求流水线的实际吞吐率。(5)求该流水处理器的加速比。六、流水线的多发技术1.超标量技术每个时钟周期内可并发多条独立指令不能调整指令的执行顺序配置多个功能部件通过编译优化技术,把可并行执行的指令搭配起来8.3IFIDEXWR012345678910111213时钟周期指令序列2.超流水线技术在一个时钟周期内再分段(3段)不能调整指令的执行顺序在一个时钟周期内一个功能部件使用多次(3次)靠编译程序解决优化问题流水线速度是原来速度的3倍8.3IFIDEXWR012345678910111213时钟周期指令序列3.超长指令字技术采用多个处理部件具有多个操作码字段的超长指令字(可达几百位)由编译程序挖掘出指令间潜在的并行性,将多条能并行操作的指令组合成一条8.3IFIDEXWR012345678910111213时钟周期指令序列七、流水线结构1.指令流水线结构完成一条指令分7段,每段需一个时钟周期若流水线不出现断流1个时钟周期出1结果不采用流水技术7个时钟周期出1结果理想情况下,7级流水的速度是不采用流水技术的7倍地址形成部件指令译码部件取操作数部件取指令部件操作执行部件回写结果部件修改指令指针部件锁存锁存锁存锁存锁存锁存8.32.运算流水线完成浮点加减运算可分对阶、尾数求和、规格化三段分段原则每段操作时间尽量一致锁存器对阶功能部件第一段尾数加部件锁存器第二段规格化部件锁存器第三段8.38.4中断系统一、概述1.引起中断的各种因素(1)人为设置的中断(2)程序性事故如转管指令溢出、操作码不能识别、除法非法(5)外部事件(4)I/O设备(3)硬件故障用键盘中断现行程序转管指令……管理程序2.中断系统需解决的问题(1)各中断源如何向CPU提出请求?(2)各中断源同时提出请求怎么办?(5)如何寻找入口地址?(4)如何保护现场?(