计算机组成原理第五章中央处理器课程教学要求本章内容:5.1CPU的组成和功能5.6硬布线控制器5.2指令周期5.7传统的CPU5.3时序产生器和控制方式5.8流水CPU5.4微程序控制器5.9RISCCPU5.5微程序设计技术5.10多媒体CPU本章小结5.1CPU的组成和功能5.1.1CPU的功能5.1.2CPU的基本组成5.1.3CPU中的主要寄存器5.1.4操作控制器与时序产生器中央处理器5.1.1CPU的功能当代主流计算机所遵循的仍然是冯.诺依曼的“存储程序”思想,即:当用计算机解决某个问题时,首先必须为它编写程序。由第四章的讨论已知,程序实质上是一个指令序列,这个序列将明确地告诉计算机:应该逐步地执行什么操作;在什么地方找到用来操作的数据,结果存到何处等。一旦把程序装入内存储器,就可以由计算机来自动完成取出指令和执行指令的任务。专门用来完成此项工作的计算机部件称为中央处理器,通常简称:CPU。显然,CPU对整个计算机系统的运行是极其重要的。中央处理器CPU具有如下四方面的基本功能:★指令控制程序的顺序控制称为指令控制。用于控制指令严★操作控制一条指令的功能往往是由若干个操作信号的组合来实现的,因此,CPU负责管理并产生每条指令所对应的操作信号,并把各种操作信号送往相应的部件,中央处理器ADDR1,R0★时间控制对各种操作的实施时间进行定时,称为时间控制。在计算机中,各种指令的操作信号以及一条指令的整个执行过程都严格的时间要求,需要CPU设定规定的★数据加工数据加工就是对数据进行算术运算和逻辑运算处理,这是CPU的核心功能之一。中央处理器ADDR1,R05.1.2CPU的基本组成CPU的基本部分由运算器、cache和控制器三大部分组成。CPU模型参看CAI演示中央处理器运算器:由算术逻辑运算单元(ALU)、累加寄存器、数据缓冲寄存器和状态条件寄存器组成,它是数据加工处理部件。相对控制器而言,运算器是一种执行部件,它是接受控制器的命令而进行动作,即:运算器所进行的全部操作都是由控制器发出的控制信号来指挥的。运算器的主要功能:(1)(2)执行所有的逻辑运算,并进行逻辑测试(如零值测试或两个值的比较等)。中央处理器控制器:由程序计数器PC、指令寄存器IR、指令译码器ID、时序产生器和操作控制器等组成,它是发布命令的“决策机构”,即完成对整个计算机系统操作的协调与指挥。控制器的主要功能:(1)控制机器从内存中取出一条指令,并指出下一(2)对指令进行译码或测试,并产生相应的操作控制信号,送往相应的部件,启动规定的动作;(3)指挥并控制CPU、内存与输入/输出(I/O)设备之间数据流动的方向。中央处理器5.1.3CPU中的主要寄存器在CPU中至少要有六类寄存器:数据缓冲寄存器(DR)、指令寄存器(IR)、程序计数器(PC)、地址寄存器(AR)、累加寄存器(AC)、状态条件寄存器(PSW),并且根据需要,可以扩充其数目。中央处理器1.数据缓冲寄存器(DR)数据缓冲寄存器DR用来暂时存放由内存读出的一条指令或一个数据字;反之,当向内存存入一条指令或一个数据字时,也先将它们送到数据缓冲寄存器DR中,然后再写入内存。缓冲寄存器DR的作用是(1)作为CPU和内存及外部I/O设备之间信息传送的中转站(2)用于补偿CPU与内存及外围设备之间在操作速(3)在单累加器结构的运算器中,数据缓冲寄存器还可兼作为操作数寄存器。中央处理器2.指令寄存器(IR)指令寄存器IR用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到缓冲寄存器中,然后再传送至指令寄存器。指令分为操作码和地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作,指令译码器就是完成这项工作的。指令寄存器中的操作码字段被送入指令译码器中,操作码一经译码后,即可向操作控制器发出中央处理器3.程序计数器(PC)为了保证程序能够连续地执行下去,CPU必须具有某些手段来自动确定下一条指令的地址。而程序计数器PC正是起到这种作用的,所以PC通常又称为指令计数器。在程序开始执行前,必须将该程序在内存单元的起始地址,即第一条指令的地址送入PC。当执行指令时,CPU将自动修改PC的内容,使其保持的总是将下一条要执行的指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC当遇到转移指令(如JMP指令)时,由于后继指令的地址(即PC的内容)必须从指令的地址段取得。在这种情况下,下一条指令的地址将由转移指令来规定,而不是像通常一样按顺序来取得。因此程序计数器PC的结构,应当是具有信息寄存和计中央处理器4.地址寄存器(AR)地址寄存器AR用来保存当前CPU所访问的内存单元的地址。由于在内存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到对内存的读/写操作完成为止。当CPU和内存进行信息交换,即CPU向内存存/取数据或指令时,都要使用地址寄存器AR和数据缓冲寄存器DR。此外,我们可以把外围I/O设备的设备地址作为像内存的地址单元那样来进行访问,那么可知,当CPU和外围设备交换信息时,同样需要使用地址寄存器和数据缓冲寄存器。地址寄存器的结构和数据缓冲寄存器、指令寄存器一样,通常使用单纯的寄存器结构。信息的存入一般采用电位-脉冲方式,即电位输入端对应数据信息位,脉冲输入端对应控制信号,在控制信号clk的作用下,瞬时地将信息打入寄存器。中央处理器5.累加寄存器(AC)累加寄存器AC通常简称为累加器,它是一个通用寄存器。其功能是:当运算器需执行算术或逻辑运算时,为ALU提供一个工作区,它可暂时存放ALU运算的结果信息。显然,运算器中至少要有一个累加寄存器。目前CPU中的累加寄存器,多达16个,32个,甚至更多。当使用多个累加器时,就变成通用寄存器堆结构,其中任何一个可存放源操作数,也可存放结果操作数。在这种情况下,需要在指令格式中对寄存器号加以编址。中央处理器6.状态条件寄存器(PSW)状态条件寄存器保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容,如运算结果进位标志(C),运算结果溢出标志(V),运算结果为零标志(Z),运算结果为负标志(N)等等。这些标志位通常分别由1除此之外,状态条件寄存器还保存中断和系统工作状态等信息,因此,状态条件寄存器是一个由各种状态条件标志拼凑而成的寄存器。其作用是使CPU和系统能及时了解机器运行状态和程序运行状态。中央处理器5.1.4操作控制器与时序产生器数据通路:是指寄存器之间传送信息的通路。信息从什么地方开始,中间经过哪个寄存器或多路开关,最后传送到哪个寄存器,都要加以控制。在各寄存器之间建立数据通路的任务,是由称为操作控制器的部件来完成的。时序产生器:产生并发出计算机所需要的时序控制信号。操作控制器的功能:就是根据指令操作码和时序信号,产生各种操作控制信号,以便正确地建立数据中央处理器ADDR1,R0根据设计方法不同,操作控制器可分为时序逻辑型、存储逻辑型、时序逻辑与存储逻辑结合型三种类型。1.硬布线控制器是采用时序逻辑技术来实现的控制器,属于时序逻辑型;2.微程序控制器是采用存储逻辑来实现的控制器,属于存储逻辑型;3.前两种方式的组合(时序+存储)的方法构成。中央处理器5.2指令周期5.2.1指令周期的基本概念5.2.2非访内指令的指令周期5.2.3取数指令的指令周期5.2.4存数指令的指令周期5.2.5空操作指令和转移指令的指令周期5.2.6五条指令的取指和执行过程5.2.7用方框图语言表示指令周期中央处理器5.2.1指令周期的基本概念计算机所以能自动地工作,是因为CPU能从存放程序的内存里取出一条指令并执行这条指令;紧接着又是取指令,执行指令……,如此周而复始,构成了一个封闭的循环。除非遇到停机指令,否则这个循环将一直继续下去。CAI演示中央处理器[名词概念]:指令周期:CPU从内存取出一条指令并执行完这条指令的时间总和。CPU周期:又称机器周期,CPU访问内存所花的时间较长,因此用CPU从内存读取一条指令字的所需的最短时间来定义。时钟周期:通常称为节拍脉冲或T周期。一个CPU周期包含若干个时钟周期T。相互关系:1个指令周期=若干个CPU周期;1个CPU周期=若干T周期取指时间+执行指令时间中央处理器下图示出了采用定长CPU周期的指令周期示意图。中央处理器[例]:为了分析不同类型的指令所对应的指令周期的情况,下面分析由5条典型指令构成的简单程序的执行特征(教材P158表5.1),以加深对指令周期及指令执行过程的理解。020CLA;累加器清0(非访内指令)021ADD30;(AC)+(30)→AC(访内指令)022STA40;(AC)→(40)(访内指令)023NOP;空操作(非访内指令)024JMP21;21→PC(非访内指令)可见:程序中有两大类指令,即:非访内型指令和访内型指令。中央处理器5.2.2非访内指令的指令周期CLA是一条非访内指令,它需要两个CPU周期,其中:取指令阶段需要一个CPU周期,执行指令阶段需要一个CPU周期。(见教材P158-159)其指令周期请参看CAI演示中央处理器1取指令阶段(1)程序计数器PC的内容20(八进制)被装入地址寄存器AR;(2)程序计数器内容加1,变成21,为取下一条指令做好准备;(3)(4)所选存储器单元20的内容经过数据总线,传送到数据缓冲寄存器DR;(5)缓冲寄存器的内容传送到指令寄存器IR(6)(7)CPU识别出是指令CLA,至此,取指令阶段即告中央处理器2执行指令阶段(1)操作控制器送一控制信号给算术逻辑运算单元ALU(2)ALU响应该控制信号,将累加寄存器AC的内容全部清零,从而执行了CLA指令。中央处理器5.2.3取数指令的指令周期显然,本程序中的ADD指令是一条访内型指令,本指令的指令周期由三个CPU周期组成,1个CPU周期用于取出指令,2个CPU周期用于指令的执行。请参看CAI演示。中央处理器1.送操作数地址第二个CPU周期主要完成送操作数地址。在此阶段,CPU的动作只有一个,那就是把指令寄存器中的地址码部分(30)装入地址寄存器,其中30把指令寄存器中的地址码部分(30)装入地址寄存器中央处理器2.两操作数相加第三个CPU周期主要完成取操作数并执行加法操作中。在此阶段,CPU(1)把地址寄存器中的操作数的地址(30)发送到地址总线上。(2)由存储器单元30中读出操作数(6),并经过数据总线传送到缓冲寄存器。(3)执行加操作:由数据缓冲寄存器来的操作数(6)可送往ALU的一个输入端,已等候在累加器内的另一个操作数(因为CLA指令执行结束后累加器内容为零)送往ALU的另一输入端,于是ALU将两数相加,产生运算结果为:0+6=6。这个结果放回累加器,替换了累加器中原先的数0。(AC)+(30)→AC中央处理器5.2.4存数指令的指令周期本例中,STA指令也是一条访内型指令,对应的指令周期由三个CPU周期组成。也是:1个CPU周期用于取出指令,2个CPU周期用于指令的执行。请参看CAI演示。中央处理器在执行阶段的第一个CPU周期中,CPU完成的动作是把指令寄存器中地址码部分的形式地址40装到地址寄存器。其中数字40是操作数地址。1.送操作数地址中央处理器2.存储和数执行阶段的第二个CPU周期中,累加寄存器的内容传送到缓冲寄存器,然后再存入到所选定的存储单元(40)中。CPU完成如下动作:(1)累加器的内容(6)被传送到数据缓冲寄存器DR(2)把地址寄存器的内容(40)发送到地址总线上,40即为将要存入的数据6的内存单元号;(3)把缓冲寄存器的内容(6)发送到数据总(4)数据总线上的数写入到所选中的存储器单元中,即将数6写入到存储器40号单元中。中央处理器注意:在这个操作之后,累加器中仍然保留和数6,而存储器40号单元中原先的内容被冲掉。5.2.5空操作指令和转移指令的指令周期第四条指令即“NOP”指令,这是一条空操作指令。其中第一个CPU周期中取指令,CPU把23号单元的“NOP”指