资源预览内容
第1页 / 共168页
第2页 / 共168页
第3页 / 共168页
第4页 / 共168页
第5页 / 共168页
第6页 / 共168页
第7页 / 共168页
第8页 / 共168页
第9页 / 共168页
第10页 / 共168页
亲,该文档总共168页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第五章中央处理器5.1CPU的组成和功能5.2指令周期5.3时序产生器和控制方式5.4微程序控制器5.5微程序设计技术5.6硬布线控制器5.7传统CPU5.8流水CPU5.9RISCCPU5.10多媒体CPU5.1CPU的组成和功能5.1.1CPU的功能当用计算机解决某个问题时,我们首先必须为它编写程序。程序是一个指令序列,这个序列明确告诉计算机应该执行什么操作,在什么地方找到用来操作的数据。一旦把程序装入内存储器,就可以由计算机来自动完成取出指令和执行指令的任务。专门用来完成此项工作的计算机部件称为中央处理器,通常简称CPU。CPU对整个计算机系统的运行是极其重要的,它具有如下四方面的基本功能:指令控制程序的顺序控制称为指令控制。由于程序是一个指令序列,这些指令的相互顺序不能任意颠倒,必须严格按程序规定的顺序进行。操作控制一条指令的功能往往是由若干个操作信号的组合来实现的,因此,CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。时间控制对各种操作实施时间上的定时称为时间控制。在计算机中,各种指令的操作信号以及一条指令的整个执行过程都受到时间的严格定时。数据加工数据加工就是对数据进行算术运算和逻辑运算处理。5.1.2CPU的基本组成CPU的基本部分由运算器、cache和控制器三大部分组成。内部结构如下图。控制器由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。它的主要功能有:(1)从内存中取出一条指令,并指出下一条指令在内存中的位置;(2)对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作;(3)指挥并控制CPU、内存和输入输出设备之间数据流动的方向。运算器由算术逻辑单元(ALU)、累加寄存器、数据缓冲寄存器和状态条件寄存器组成,它是数据加工处理部件。相对控制器而言,运算器接受控制器的命令而进行动作,即运算器所进行的全部操作都是由控制器发出的控制信号来指挥的,所以它是执行部件。运算器有两个主要功能:(1)执行所有的算术运算;(2)执行所有的逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。5.1.3CPU中的主要寄存器在CPU中至少要有以下六类寄存器。这些寄存器用来暂存一个计算机字。根据需要,可以扩充其数目。1.数据缓冲寄存器(DR)2.指令寄存器(IR)3.程序计数器(PC)4.地址寄存器(AR)5.累加寄存器(AC)6.状态条件寄存器(PSW)下面详细介绍这些寄存器的功能与结构。1.数据缓冲寄存器(DR)数据缓冲寄存器用来暂时存放由内存储器读出的一条指令或一个数据字;反之,当向内存存入一条指令或一个数据字时,也暂时将它们存放在数据缓冲寄存器中。缓冲寄存器的作用是:(1)作为CPU和内存、外部设备之间信息传送的中转站;(2)补偿CPU和内存、外围设备之间在操作速度上的差别;(3)在单累加器结构的运算器中,数据缓冲寄存器还可兼作为操作数寄存器。2.指令寄存器(IR)指令寄存器用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到缓冲寄存器中,然后再传送至指令寄存器。指令划分为操作码和地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。指令译码器就是做这项工作的。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。3.程序计数器(PC)为了保证程序能连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。而程序计数器正是起到这种作用,所以通常又称为指令计数器。在程序开始执行前必须将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,因此PC的内容即是从内存提取的第一条指令的地址。当执行指令时,CPU将自动修改PC的内容,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC加1。但是当遇到转移指令如JMP指令时,那么后继指令的地址(即PC的内容)必须从指令的地址段取得。在这种情况下下一条从内存取出的指令将由转移指令来规定,而不是像通常一样按顺序来取得。因此程序计数器的结构应当是具有寄存信息和计数两种功能的结构。4.地址寄存器(AR)地址寄存器用来保存当前CPU所访问的内存单元的地址。由于在内存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读写操作完成为止。当CPU和内存进行信息交换,即CPU向内存存取数据时,或者CPU从内存中读出指令时,都要使用地址寄存器和数据缓冲寄存器。同样,如果我们把外围设备的设备地址作为像内存的地址单元那样来看待,那么,当CPU和外围设备交换信息时,我们同样使用地址寄存器和数据缓冲寄存器。地址寄存器的结构和数据缓冲寄存器、指令寄存器一样,通常使用单纯的寄存器结构。信息的存入一般采用电位-脉冲方式,即电位输入端对应数据信息位,脉冲输入端对应控制信号,在控制信号作用下,瞬时地将信息打入寄存器。5.累加寄存器(AC)累加寄存器AC通常简称为累加器,它是一个通用寄存器。其功能是:当运算器的算术逻辑单元ALU)执行算术或逻辑运算时,为ALU提供一个工作区。累加寄存器暂时存放ALU运算的结果信息。显然,运算器中至少要有一个累加寄存器。目前CPU中的累加寄存器,多达16个,32个,甚至更多。当使用多个累加器时,就变成通用寄存器堆结构,其中任何一个可存放源操作数,也可存放结果操作数。在这种情况下,需要在指令格式中对寄存器号加以编址。6.状态条件寄存器(PSW)状态条件寄存器保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容,如运算结果进位标志C,运算结果溢出标志V,运算结果为零标志Z,运算结果为负标志N等等。这些标志位通常分别由1位触发器保存。除此之外,状态条件寄存器还保存中断和系统工作状态等信息,以便使CPU和系统能及时了解机器运行状态和程序运行状态。因此,状态条件寄存器是一个由各种状态条件标志拼凑而成的寄存器。5.1.4操作控制器与时序产生器数据通路是许多寄存器之间传送信息的通路。信息从什么地方开始,中间经过哪个寄存器或多路开关,最后传送到哪个寄存器,都要加以控制。在各寄存器之间建立数据通路的任务,是由称为操作控制器的部件来完成的。操作控制器的功能,就是根据指令操作码和时序信号,产生各种操作控制信号,以便正确地建立数据通路,从而完成取指令和执行指令的控制。根据设计方法不同,操作控制器可分为时序逻辑型、存储逻辑型、时序逻辑与存储逻辑结合型三种。第一种称为硬布线控制器,它是采用时序逻辑技术来实现的;第二种称为微程序控制器,它是采用存储逻辑来实现的;第三种是前两种方式的组合。我们重点介绍微程序控制器。1.硬布线控制器:采用时序逻辑技术来实现的操作控制器。2.微程序控制器:采用存储逻辑来实现的的操作控制器。5.2指令周期5.2.1指令周期的基本概念计算机的CPU自动地从存放程序的内存里取出一条指令并执行这条指令;紧接着又是取指令,执行指令,如此周而复始,构成了一个封闭的循环。指令周期CPU从内存取出一条指令并执行这条指令的时间总和。CPU周期又称机器周期,CPU访问一次内存所花的时间较长,因此用从内存读取一条指令字的最短时间来定义。时钟周期通常称为节拍脉冲或T周期。一个CPU周期包含若干个时钟周期。图5.3指令周期下面举例来说明指令的执行周期过程。程序指令:S1:CLAADD30STA40NOPJMPS1其中包含有非访内存,和访内存,程序控制转移指令。5.2.2非访内存指令的指令周期CLA是一条非访内存指令,它需要两个CPU周期,其中取指令阶段需要一个CPU周期,执行指令阶段需要一个CPU周期。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.取指令阶段(同上)2.送操作数地址第二个CPU周期主要完成送操作数地址。在此阶段,CPU的动作只有一个,那就是把指令寄存器中的地址码部分(30)装入地址寄存器,其中30为内存中存放操作数的地址。3.两操作数相加第三个CPU周期主要完成取操作数并执行加法操作中。在此阶段,CPU完成如下动作:(1)把地址寄存器中的操作数的地址(30)发送到地址总线上。(2)由存储器单元30中读出操作数(6),并经过数据总线传送到缓冲寄存器。(3)执行加操作:由数据缓冲寄存器来的操作数(6)可送往ALU的一个输入端已等候在累加器内的另一个操作数(因为CLA指令执行结束后累加器内容为零)送往ALU的另一输入端,于是ALU将两数相加产生运算结果为0+66。这个结果放回累加器,替换了累加器中原先的数0。5.2.4存数指令的指令周期STA指令是一条访问内存存数的指令,指令周期由三个CPU周期组成,如下图所示。1.取指令阶段(同上)2.送操作数地址在执行阶段的第二个CPU周期中,CPU完成的动作是把指令寄存器中地址码部分的形式地址40装到地址寄存器。其中数字40是操作数地址。3.存储和数执行阶段的第三个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”指令取出放到指令寄存器,第二个CPU周期中执行该指令。因译码器译出是“NOP”指令,第二个CPU周期中操作控制器不发出任何控制信号。NOP指令可用来调机之用。第五条JMP指令的指令周期由两个CPU周期组成,如下图所示。1.第一个CPU周期(取指令阶段)CPU把24号单元的“JMP21”指令取出放至指令寄存器,同时程序计数器内容加1,变为25,从而取下一条指令做好准备。2.第二个CPU周期(执行阶段)CPU把指令寄存器中地址码部分21送到程序计数器,从而用新内容21代替PC原先的内容25。这样,下一条指令将不从25单元读出,而是从内存21单元开始读出并执行,从而改变了程序原先的执行顺序。注意执行“JMP21”指令时,此处程序进入死循环,除非人为停机,否则程序将无休止地运行下去。5.2.6五条指令的取指和执行过程我们把前面的五条典型指令加以归纳,其取指和执行过程如下图所示。5.2.7用方框图语言表示指令周期在进行计算机设计时,可以采用方框图语言来表示一条指令的指令周期。方框代表一个CPU周期,方框中的内容表示数据通路的操作或某种控制操作。菱形通常用来表示某种判别或测试,不过时间上它依附于紧接它的前面一个方框的CPU周期,而不单独占用一个CPU周期。我们把前面的五条典型指令加以归纳,用方框图语言表示的指令周期如下图所示。【例1】教材图5.15所示为双总线结构机器的数据通路,I
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号