第8章CPU的结构和功能8.1CPU的结构8.3指令流水8.2指令周期8.4中断系统CPU是利用大规模集成电路技术,把运算器和控制器集成在一片芯片上,是微型计算机中的运算控制部件,它本身不具备微型计算机硬件的全部功能,即其本身不构成独立工作系统,因此它不能独立地执行程序。CPU其主要任务是执行指令序列,对系统的各个部件进行统一的协调和控制。通常由算术逻辑部件(ALU)、控制部件、寄存器组等几部分组成。8.1CPU的结构CPU是计算机的核心组成部分,装入内存的程序在CPU的控制下,完成取出指令、分析指令和执行指令的任务。CPU的基本功能:指令控制:程序的顺序控制,保证机器按顺序执行程序,(如何保证:CPU内部设置了程序计数器等部分)操作控制:管理并产生完成指令执行操作所需的控制信号,把这些信号送往相应的部件,控制这些部件按指令的要求进行动作。时间控制:对各种操作实施时间上的定时,保证计算机有条不紊地自动工作。数据加工:对数据进行算术运算和逻辑运算处理。1、CPU的功能2、CPU结构框图CPU与系统总线寄存器ALU中断系统CUCPU控制总线数据总线地址总线CPU的内部结构算术和布尔逻辑取反移位状态标志内部数据总线CPU寄存器CU中断系统ALU控制信号…累加寄存器指令寄存器程序计数器状态寄存器CPU数据寄存器地址寄存器3、CPU中的主要寄存器指令寄存器(IR):保存正在执行的指令程序计数器(PC):存放要执行的指令的地址地址寄存器(AR):保存当前所要访问的内存单元的地址数据缓冲寄存器(DR):作为CPU和内存、外围设备之间信息传送的中转站;补偿CPU和内存、外围设备之间在操作速度上的差别;在单累加器结构的运算器中,数据缓冲寄存器还可兼作操作数寄存器。累加寄存器(AC):暂时存放ALU运算的结果信息状态条件寄存器(PSW):4、CPU操作控制器与时序产生器操作控制器的功能:根据指令操作码和时序信号,产生各种操作控制信号,以正确建立数据通路,完成取指令和执行指令的控制。根据设计方法不同,操作控制器可分为:(1)硬布线控制器:采用组合逻辑技术来实现;(2)微程序控制器:采用存储逻辑来实现;(3)门阵列控制器:吸收前两种的设计思想来实现的。本章重点介绍微程序控制器.时序产生器:产生对控制信号进行时间上控制的定时信号.一、指令周期的基本概念指令周期:CPU从内存取出一条指令并执行完这条指令的时间总和CPU周期:又称机器周期(总线周期),CPU访问内存所花的时间较长,因此用CPU从内存读取一条指令字的所需的最短时间来定义时钟周期:通常称为节拍脉冲或T周期。一个CPU周期包含若干个时钟周期T相互关系:1个指令周期=若干个CPU周期1个CPU周期=若干T周期取指时间+执行指令时间8.2指令周期指令周期、机器周期、时钟周期的关系T1时钟周期T2T3T4T1T2T3T4机器周期(取指)指令周期1机器周期(执行)指令周期2机器周期(执行)T1T2T3T4执行指令取指令开始020CLA;累加器清0021ADD30;(AC)+(30)→AC022STA40;(AC)→(40)023NOP;空操作024JMP21;21→PC…030000006;数据…040存和数;数据5条典型指令构成的简单程序一个CPU周期一个CPU周期取指令阶段执行指令阶段开始取指令PC+1对指令译码执行指令取下条指令PC+1CLA指令的指令周期取出CLA指令算术逻辑单元状态条件寄存器程序计数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC缓冲寄存器DRCPUALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制cccc+10000202021222324303140CLAADD30STA40NOPJMP21000006000020CLACLA000021算术逻辑单元状态条件寄存器程序计数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC缓冲寄存器DRCPUALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制cccc+12021222324303140CLAADD30STA40NOPJMP21000006000020CLACLA000021000000执行CLA指令ADD指令的指令周期一个CPU周期一个CPU周期取指令阶段执行指令阶段开始取指令PC+1对指令译码送操作数地址取下条指令PC+1取出操作数执行加操作一个CPU周期算术逻辑单元状态条件寄存器程序计数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC缓冲寄存器DRCPUALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制cccc+12021222324303140CLAADD30STA40NOPJMP21000006000021ADDADD300000210000220000300000060+6=6000006取出并执行ADD指令STA指令的指令周期算术逻辑单元状态条件寄存器程序计数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC缓冲寄存器DRCPUALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制cccc+120212223243040CLAADD30STA40NOPJMP21000006000022STASTA40000022000023000040000006000006000006取出并执行STA指令NOP指令和JMP指令的指令周期算术逻辑单元状态条件寄存器程序计数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC缓冲寄存器DRALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制cccc+120212223243040CLAADD30STA40NOPJMP21000006000024JMP21JMP21000024000021000006000006000025000021取出并执行JMP指令每条指令的指令周期不同取指周期指令周期取指周期执行周期指令周期无条件转移指令加法指令乘法指令取指周期执行周期指令周期…具有间接寻址的指令周期带有中断周期的指令周期取指周期间址周期指令周期执行周期取指周期间址周期指令周期执行周期中断周期指令周期流程取指周期执行周期有间址吗?有中断吗?间址周期中断周期是是否否CPU工作周期的标志CPU访存有四种性质取指令取地址取操作数存程序断点取指周期FE间址周期IND执行周期EX中断周期INTFEDINDDINTDCLK1FE1IND1EX1INTEXD1.取指周期数据流二、指令周期的数据流MDRCUMARPCIR存储器CPU地址总线数据总线控制总线IR+1PC→MAR→AB→M→DB→MDR→IR,PC+1→PC2.间址周期数据流MDRCUMARCPU地址总线数据总线控制总线PCIR存储器MDRAd(MDR)→MAR→AB→M→DB(EA)→MDR形成地址Ad(MDR)3.执行周期数据流4.中断周期数据流不同指令的执行周期数据流不同MDRCUMARCPU地址总线数据总线控制总线PC存储器SP→MAR→AB→M,PC→MDR→DB→M,入口地址→PC8.3指令流水一、如何提高机器速度1.提高访存速度2.提高I/O和主机之间的传送速度•提高整机处理能力高速芯片Cache多体并行I/O处理机DMA多总线通道高速器件改进系统结构,开发系统的并行性中断3.提高运算器速度高速芯片改进算法快速进位链标准的冯·诺依曼体系结构是串行处理,即一个时刻只能进行一个操作。并行性的两种含义同时性:两个以上事件在同一时刻发生。如多机系统中,同一时刻多个进程在运行。并发性:两个以上事件在同一间隔内发生。如并发程序,某一时刻CPU中只有一个进程在运行,而在一个时间段内,多个进程同时运行。二、系统的并行性并行性的等级指令级(指令之间)(指令内部)过程级(程序、进程)粗粒度软件实现细粒度硬件实现并行性的三种形式时间并行:即使用流水处理部件,时间重叠。空间并行:设置重复资源,同时工作。主要体现在多处理器系统和多计算机系统。时间并行+空间并行:时间重叠和资源重复的综合应用。如奔腾CPU采用超标量流水技术,在一个机器周期中同时执行两条指令。1.顺序执行方式:串行执行取指令i分析i执行i取指令i+1分析i+1执行i+1t取指令it分析it执行i假设1:取指令、分析指令和执行指令所需时间分别为t取指令、t分析和t执行。结果1:执行n条指令所花的时间niiiitttT1)(执行分析取指令三、指令流水原理假设2:取指令、分析指令和执行指令3个阶段所需时间相等,设为△t。结果2:顺序执行n条指令所需要的时间为:T=3n△t优点控制简单,节省设备。主要缺点处理机执行指令的速度慢功能部件的利用率很低2.重叠方式假设:如果指令执行的3个阶段所需时间均为△t。结果:一次重叠方式执行n条指令所需要的时间为:(1)一次重叠:第i条指令的执行阶段和第i+1条指令的取指令阶段同时进行,执行过程如图所示。一次重叠执行方式取指令i分析i执行i取指令i+1分析i+1执行i+1取指令i+2分析i+2执行i+2时间tttt3t2t2tT=3△t+(n-1)2△t=(1+2n)△t假设:如果指令执行的3个阶段所需时间均为△t。结果:二次重叠方式执行n条指令所需要的时间为:(2)二次重叠:指第i条指令的执行阶段、第i+1条指令的分析阶段和第i+2条指令的取指令阶段同时进行。执行i+2取指令i分析i取指令i+1取指令i+2执行i分析i+1分析i+2执行i+1ttt3tttT=3△t+(n-1)△t=(2+n)△t(3)指令执行阶段重叠执行,必须解决两个问题:必须有独立的取指令部件、指令分析部件和指令执行部件。要解决访问主存冲突问题,通常有3种方法:主存分成两个独立编址的存储器:一个是指令存储器,专门存放指令;另一个是数据存储器,专门存放数据。主存采用低位交叉编址的并行存储器,在一个存储周期中可以访问多个存储单元。采用先行控制技术,这是解决访问冲突的根本方法先行控制技术要解决二次重叠执行方式中存在的访问主存储器的冲突问题,方法有三种:第一,把主存储器分成两个独立编址的存储器,一个专门存放指令,称为指令存储器,另一个专门存放操作数,称为数据存储器。两个存储器同时独立访问,解决了取指令和读操作数的冲突。第二,指令和数据仍然混合存放在同一个主存作储器内,采用低位交叉存取方式。第三,解决访问存储器冲突的根本办法是处理机结构作较大的改变,采用先行控制技术。先行控制的基本思想是使分析部件和执行部件能分别连续不断地分析和执行指令,这种技术实际上是预处理技术和缓冲技术的结合,即通过对指令流和数据流的预处理和缓冲,能够尽量使指令分析器和指令执行部件独立地工作,并始终处于忙碌状态。这样,就能够使取指令、分析指令和执行指令重叠起来执行。使指令分析器和执行部件能尽量地连续工作。而且,在采用了缓冲技术和预处理技术之后,运算器能够专心干数据的运算、从而大幅度提高指令的执行速度。在正常情况下,处理机中同时有三条指令在执行。先行控制技术最早在IBM公司研制的机器中采用。目前,先行控制技术是现代计算机系统中被普遍采用的一项重要技术,许多处理机中都已经采用了这种技术,包括超流水线处理机和超标量处理机等。3、指令的六级流水六级流水14个时间单位串行执行6×9=54个时间单位完成一条指令6个时间单位COFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFI指令1指令2指令3指令4指令5指令6指令7指令8指令91234567891011121314t取指、译码、计算操作数地址、取数、执行,写回ALU取/存转移IF取指取指取指ID译码,读寄存器堆译码,读寄存器堆译码,读寄存器堆EX执行计算访存有效地