《计算机原理》课件第6章.ppt

上传人(卖家):momomo 文档编号:7945089 上传时间:2024-09-07 格式:PPT 页数:243 大小:2.80MB
下载 相关 举报
《计算机原理》课件第6章.ppt_第1页
第1页 / 共243页
《计算机原理》课件第6章.ppt_第2页
第2页 / 共243页
《计算机原理》课件第6章.ppt_第3页
第3页 / 共243页
《计算机原理》课件第6章.ppt_第4页
第4页 / 共243页
《计算机原理》课件第6章.ppt_第5页
第5页 / 共243页
点击查看更多>>
资源描述

1、第6章 控 制 器第第6章章 控控 制制 器器6.1 CPU的功能和组成6.2 控制器的时序系统和控制方式6.3 指令流程图6.4 微程序控制器6.5 组合逻辑控制器6.6 门阵列控制器6.7 流水线处理技术6.8 多媒体技术6.9 典型CPU简介关联习题 第6章 控 制 器6.1 CPU的功能和组成的功能和组成6.1.1 CPU的功能的功能CPU由运算器和控制器两大部分组成,其基本任务是执行程序,而程序是指令的有序集合,因此,CPU的基本功能体现在两个方面:一方面是如何保证程序中指令执行顺序的正确,另一方面是如何实现一条指令的功能。其具体功能如下:第6章 控 制 器1指令控制指令控制按照冯诺

2、依曼“存储程序”的思想,程序被装入主存后,计算机应能按其预先设定的要求有条不紊地执行指令,才可完成具体的任务。因此,严格控制程序的执行顺序,是CPU的首要任务。指令控制能实现对程序中指令的执行顺序进行控制。程序中的指令有两大类,一是顺序执行的指令,二是转移指令。对于顺序执行的指令,当CPU执行完此指令后,该指令下面的一条指令便是CPU要执行的下一条指令,由于程序的连续存放,可以通过设置一个程序计数器PC或指令指针(Program Counter)进行控制,且PC具有自动加1的功能,因此,PC始终指向的是下一条CPU将要执行的指令。第6章 控 制 器对于转移指令,当CPU执行完此指令后,将转移的

3、目的指令所在的地址送PC,便可实现转移指令的正确转移。第6章 控 制 器2操作控制操作控制一条指令的执行要涉及到计算机中的若干个部件。指令不同,控制完成指令的功能所涉及的部件不同,控制这些部件就需要各种不同的操作控制信号。因此,一条指令对应一组操作控制信号。指令不同,指令的操作码不同,指令所对应的一组操作控制信号也就不同。因此,操作控制是对指令的操作码进行译码来产生该指令所需要的一组操作控制信号。第6章 控 制 器3时序控制时序控制在操作控制的基础上,需要对各种操作控制信号的产生时间、稳定时间、撤销时间及相互之间的关系进行严格控制,因为指令所对应的一组操作控制信号并不是同时作用于相应的各个部件

4、。这种对操作控制信号施加时间上的控制,称为时序控制。实现时序控制需要设置时序产生器和操作控制器。只有严格地进行时序控制,才能保证各功能部件组合构成有机的计算机系统。第6章 控 制 器4数据加工数据加工数据加工是对数据进行算术运算和逻辑运算,它是CPU的根本任务,也是运算器的基本功能,而运算器是CPU组成的一个部分,因此,数据加工不可避免地会涉及到运算器和寄存器。第6章 控 制 器6.1.2 CPU的基本组成的基本组成CPU是运算器和控制器的总称,它既具有运算器的功能,又具有控制器的功能。欲实现控制器的功能,则控制器应由程序计数器PC(Program Counter)、指令寄存器IR(Instr

5、ack Register)、指令译码器、时序产生器和操作控制器组成。欲实现运算器的功能,则运算器应由算术逻辑单元ALU、累加寄存器(简称累加器AC(Accunulator)、数据缓冲寄存器DR(Data Register)、状态寄存器SR(Stru Register)组成。CPU主要组成部件逻辑结构示意图如图6-1所示。第6章 控 制 器图6-1 CPU主要组成部件逻辑结构示意图第6章 控 制 器1指令的执行过程指令的执行过程1)取指令根据指令所在存储器单元的地址(由PC提供),将PC中的指令地址送AR,此后,PC自动加1,AR的内容经地址总线和地址译码器选中指令所在的存储单元,CPU发出读命

6、令,将该指令从主存中取出,经数据总线送到DR中,由于所取的是指令而不是数据,因此,再将DR中的指令送往IR,从而完成取指令。由此可见:(1)所有指令的取指令阶段是完全相同的;(2)CPU当前正在执行的指令是指令寄存器中的指令;(3)PC始终指向的是下一条CPU将要执行的指令。第6章 控 制 器2)分析指令对IR中指令的操作码进行译码分析,产生该指令所需要的一组操作控制信号(译码信号),再经时序产生器和操作控制器形成时序控制信号(控制命令);通过对IR中指令的地址码进行分析,形成操作对象(操作数)的有效地址,并按此地址去读取操作数或形成转移地址,以实现程序的转移。第6章 控 制 器3)执行指令时

7、序控制信号(控制命令)作用于相应的各个部件,使各个部件产生相应的动作,从而完成指令的功能,并根据需要,保存操作结果。一条指令执行结束,若没有异常情况和特殊请求,则按程序顺序,再取出并执行下一条指令。控制器就是按取指令、分析指令、执行指令这样的步骤进行周而复始的控制过程,直到完成程序所规定的任务并停机为止。第6章 控 制 器2CPU内部寄存器内部寄存器CPU内部寄存器用以保存运算和控制过程中的中间结果、最后结果和控制状态信息。不同的CPU,其内部寄存器可能有所差异,但不论是哪一种CPU,其内部寄存器至少要有以下六类寄存器。第6章 控 制 器1)数据缓冲寄存器DR数据缓冲寄存器用来暂时存放由内存储

8、器读出的一条指令或一个数据字;反之,当向内存存入一条指令或一个数据字时,也暂时将它们存放在数据缓冲寄存器中。数据缓冲寄存器的作用是:(1)作为CPU和内存、外部设备之间信息传送的中转站;(2)补偿CPU和内存、外围设备之间在操作速度上的差别;(3)在单累加器结构的运算器中,数据缓冲寄存器还可兼作操作数寄存器 第6章 控 制 器2)指令寄存器IR指令寄存器用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到缓冲寄存器中,然后再传送至指令寄存器。指令划分为操作码和地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。指令译码器就是做这项工作

9、的。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。第6章 控 制 器3)程序计数器PC为了保证程序中指令执行顺序的正确,CPU必须设置一个计数器,用来指示CPU将要执行的下一条指令,起这种作用的计数器通常称为指令计数器,简称PC。在程序开始执行前,必须将程序的起始地址装入PC,即程序的一条指令所在内存单元地址送入PC。当执行指令时,CPU将自动修改PC的内容,使其保持的总是将要执行的下一条指令的地址,由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单地对PC加1。但是,当遇到转移指令时,后继指令的地址(即PC的内容)必须从

10、指令的地址码取得,在这种情况下,下一条从内存取出的指令将由转移指令来规定,不同于顺序指令只是简单地对PC加1。因此,程序计数器的结构应当是具有寄存和计数两种功能的结构。第6章 控 制 器4)地址寄存器AR地址寄存器用来保存当前CPU所访问的内存单元的地址。由于在内存和CPU之间存在着操作速度上的差别,所以,必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止。当CPU访问主存时,即CPU对主存存/取数据或者CPU从主存中读出指令时,都要使用地址寄存器和数据缓冲寄存器。同样,当CPU访问外设时,同样要使用地址寄存器和数据缓冲寄存器。第6章 控 制 器5)累加器AC累加器是累加寄存器的简

11、称,是一个通用寄存器。其功能是:当运算器进行算术或逻辑运算时,累加器一方面作为ALU的一个输入端,为ALU提供一个操作数;另一方面作为ALU的一个输出端,用来存放ALU运算的结果。显然,运算器中至少要有一个累加器,当运算器内部只有一个累加器时,我们称之为单累加器结构的运算器或CPU。目前,CPU中的累加器多达16个、32个甚至更多,当使用多个累加器时,就变成通用寄存器堆结构,其中任何一个既可存放源操作数,也可存放目的操作数。第6章 控 制 器6)状态寄存器SR状态寄存器也称为程序状态字,简称PSW,用来保存CPU在执行算术指令和逻辑指令时建立的各种条件码内容,如运算结果进位标志(C)、运算结果

12、溢出标志(V)、运算结果为零标志(Z)、运算结果为负标志(N)等等。这些标志位通常分别由 1位触发器保存。除此之外,状态寄存器还保存中断和系统工作状态等信息,以便使CPU和系统能及时了解机器工作状态和程序运行状态。因此,状态寄存器是一个由各种状态条件标志拼凑而成的寄存器。第6章 控 制 器3控制器的分类控制器的分类根据时序控制信号或控制命令产生方法的不同,可以将控制器分为组合逻辑控制器、微程序控制器和门阵列控制器三种。本章将重点讨论组合逻辑控制器和微程序控制器。1)组合逻辑控制器组合逻辑控制器是采用组合逻辑技术来产生控制命令,是分立元件时代的产物,其最大优点是速度快,但结构不规整,设计、调试和

13、维修较困难,难以实现设计自动化,目前只有一些巨型机和RISC机为了追求高速度仍采用组合逻辑控制器。第6章 控 制 器2)微程序控制器微程序控制器是采用存储逻辑来产生控制命令,它是将控制命令代码化,机器指令转化成一段微程序,并存于控制存储器中,通过执行控存中的微程序来产生机器指令所需的一组控制命令。它与组合逻辑控制器的设计思想截然不同,微程序控制器设计规整,调试、维修以及更改、扩充指令方便,易于实现自动化设计,已成为当前控制器的主流。3)门阵列控制器门阵列控制器实质上也是一种组合逻辑控制器,但它与传统的组合逻辑控制器不同,它是程序可编的,并吸收了前两种控制器的设计思想,被广泛应用于嵌入式系统。第

14、6章 控 制 器6.2 控制器的时序系统和控制方式控制器的时序系统和控制方式6.2.1 有关周期的基本概念有关周期的基本概念1.指令周期指令周期指令周期是指从取指令、分析指令到执行完该指令所需的全部时间。一个指令周期一般包含若干个CPU周期。由于指令的操作功能不同,有的简单,有的复杂,因此不同指令的指令周期不尽相同。第6章 控 制 器2.CPU周期周期一个CPU周期又称一个机器周期,与机器的一个基本操作相对应,结合机器的基本操作,一般机器的CPU周期有取指周期、取数周期、执行周期、中断周期等。由于CPU内部的操作速度较快,而CPU访问一次内存所花的时间较长,因此,通常用从内存读取一条指令字的最

15、短时间来规定CPU周期。3节拍节拍在一个CPU周期内要完成一个基本操作,由于一个基本操作又包含若干个微操作,这些微操作不但需要占用一定的时间,而且有一定的先后次序。因此,需要把一个CPU周期等分成若干个时间小段,每一小段称为一个节拍,一个节拍对应一个电位信号,控制一个或几个微操作的执行。第6章 控 制 器4脉冲脉冲在一个节拍内,有时还需要设置一个或几个工作脉冲,工作脉冲也称为时钟周期或T周期。上述指令周期、CPU周期、时钟周期间的关系如图6-2所示。一个指令周期包含两个CPU周期,每个CPU周期包含四个时钟周期。第6章 控 制 器图6-2 指令周期、CPU周期、时钟周期间的关系第6章 控 制

16、器6.2.2 时序信号与体制时序信号与体制时序信号是对操作控制信号实施时间控制而形成的信号,是利用定时脉冲的顺序和不同的脉冲间隔,有条理、有节奏地指挥机器的动作,规定在这个脉冲到来时做什么,在那个脉冲到来时又做什么,给计算机各部分提供工作所需的时间标志。为此,需要采用周期、节拍、脉冲多级时序体制。第6章 控 制 器至于计算机内存中所存放的二进制形式的指令和数据的区分问题,我们可以从两个层面上进行区分,一是从时间上来说,取指令是发生在指令周期的第一个CPU周期中,即发生在“取指令”阶段,而取数据是发生在指令周期的后面几个CPU周期中,即发生在“执行指令”阶段;二是从空间上来说,如果取出的代码是指

17、令,那么一定送往指令寄存器,如果取出的代码是数据,那么一定送往运算器。由此可见,时间控制对计算机来说是十分重要,计算机的协调动作需要时间标志,而时间标志则是用时序信号来体现的,控制器所产生的各种控制信号都是时间因素(时序信号)和空间因素(部件)的函数。第6章 控 制 器时序信号最基本的体制是电位脉冲制,该体制下最容易理解的例子是寄存器之间的数据传送,数据加在触发器的电位输入端,用电位的高低来表示数据是“1”还是“0”;而打入数据的控制信号加在触发器的时钟输入端,且要求打入数据的控制信号到来之前,电位信号必须是稳定的,只有电位信号先建立,打入到寄存器中的数据才是可靠的。在组合逻辑控制器中,时序信

18、号的体制往往采用周期节拍脉冲三级体制,即一个CPU周期包含多个节拍,每个节拍又允许包含多个脉冲。图6-3中,一个CPU周期包含4个节拍,每个节拍又包含1个脉冲。第6章 控 制 器图6-3 节拍与脉冲之间的时序关系第6章 控 制 器在微程序控制器中,时序信号比较简单,一般采用节拍脉冲二级体制。第6章 控 制 器6.2.3 时序信号发生器时序信号发生器时序信号发生器的电路是不相同的,组合逻辑控制器的时序电路复杂,而微程序控制器的时序电路简单,但无论哪一种控制器,其内部的时序信号发生器最基本的构成都是一样的,是由时钟源、环形脉冲发生器、节拍脉冲和读写时序译码逻辑、启停控制逻辑等部分组成的,如图6-4

19、所示。第6章 控 制 器图6-4 时序信号发生器组成第6章 控 制 器1时钟源时钟源时钟源用来为环形脉冲发生器提供频率稳定且电平匹配的方波时钟脉冲信号。它通常由石英晶体振荡器和与非门组成的正反馈振荡电路组成,其输出送至环形脉冲发生器。2环形脉冲发生器环形脉冲发生器环形脉冲发生器用来产生一组有序的间隔相等或不等的脉冲序列,以便通过译码电路来产生最后所需的节拍脉冲。为了在节拍脉冲上不带干扰毛刺,环形脉冲发生器通常采用循环移位寄存器形式。典型的环形脉冲发生器及其译码逻辑如图6-5所示。第6章 控 制 器图6-5 环形脉冲发生器及其译码逻辑第6章 控 制 器假设时钟源产生的时钟信号为5MHz(时钟周期

20、200ns),当控制台发出总清信号使触发器C4置“1”时,门3打开,第一个正脉冲f通过门3,使触发器C1C3清“0”。经过半个脉冲周期(100ns)的延迟,触发器C4由“1”状态翻到“0”状态,再经半个脉冲周期(100ns)的延迟,第二个正脉冲的上升沿(即第一个f的后沿)作移位信号,使触发器C1C3变为“100”状态。此后,第二个f、第三个f连续通过门2形成移位信号,使触发器C1C3相继变为“110”、“111”状态。当C3变为“1”状态时,对应第四个正脉冲,其状态便反映到触发器C4的D端,因而第四个正脉冲的下降沿又将C4置“1”,门3再次打开,第五个正脉冲便通过门3,形成清“0”脉冲,使触发

21、器C1C3清“0”。于是下一个循环再度开始。其过程如图6-3所示。第6章 控 制 器3节拍脉冲和读节拍脉冲和读/写时序的译码写时序的译码节拍脉冲和读/写时序的译码逻辑如图6-5的上半部所示。假设一个CPU周期产生4个等间隔的节拍,根据图6-3节拍与脉冲之间的时序关系,其译码逻辑可表示为:第6章 控 制 器需要注意的是:(1)节拍脉冲间的逻辑关系。图6-6 启停控制逻辑节拍、与图6-3中的节拍T1、T2、T3、T4在逻辑关系上完全相同,只是后者是经过启停控制逻辑中的与门输出的。(2)节拍脉冲宽度。一个CPU周期为800ns,在周期节拍脉冲三级体制中,一个CPU周期包含4个节拍,每一个节拍包含一个

22、脉冲(时钟周期),因此,节拍、的脉冲宽度均为200 ns。01T02T03T01T02T03T04T第6章 控 制 器(3)读/写控制信号。由图6-3可以看出,信号RD/WE的持续时间为一个CPU周期。根据图6-4,可知信号RD/WE受控于信号RD/WE,只有当RD/WE有效后才会产生RD/WE,结合图6-6,读/写信号RD/WE是RD/WE经过启停控制逻辑中的与非门输出的。第6章 控 制 器4启停控制逻辑启停控制逻辑启停控制逻辑电路如图6-6所示。其核心是触发器Cr,当触发器Cr为“1”时,原始的节拍、和读/写时序信号RD/WE通过门电路转变为CPU真正需要的节拍T1、T2、T3、T4和读/

23、写时序信号RD/WE;否则,当触发器Cr为“0”时,将关闭时序信号发生器。为了保证时序信号发生器产生完整的脉冲,在T1的前沿启动时序信号发生器,在T4的后沿关闭时序信号发生器,在触发器Cr的下面加上一个RS触发器,且用作为触发器Cr的时钟控制端。01T02T03T04T第6章 控 制 器6.2.4 控制方式控制方式控制方式是指对各种操作在时间上所进行的控制,其实质反映了时序信号的定时方式。常用的控制方式有同步控制、异步控制和联合控制。1同步控制方式同步控制方式是指任何指令的执行或指令中各个具体操作的执行均由确定统一的时间基准信号所控制,尽管指令功能不同,但在同步控制方式下,指令在执行时所需的机

24、器周期数和时钟周期数都固定不变,即完全同步控制方式。此方式的优点是时序关系简单、控制方便,但会造成大量时间的浪费。这是因为大多数简单指令的很多节拍是不用的,处于等待状态。因此,在实际应用中往往采取折中的方案。常用以下几种方法。第6章 控 制 器1)采用中央控制与局部控制相结合的方法根据周期节拍脉冲三级体制,一个CPU周期包含多个节拍。大多数指令的CPU周期均采用统一的节拍,称为中央控制;对于少数在统一节拍内不能完成的指令,需要延长节拍或增加节拍,使之在延长节拍内完成指令,并再返回到中央控制,这种通过延长节拍或增加节拍来控制完成指令称为局部控制。第6章 控 制 器2)采用不同的机器周期和延长节拍

25、的方法不同指令的指令周期可以划分为若干个CPU周期,如取指、取数、执行等周期,根据执行指令的需要,可选取不同的CPU周期数。在节拍安排上,每个CPU周期划分为固定的节拍,每个节拍都可根据需要延长一个节拍。第6章 控 制 器3)采用分散节拍的方法分散节拍方法是指操作需要多少节拍,时序发生器就产生多少节拍,这样可以做到完全避免节拍轮空,是提高指令运行速度的有效方法,但这种方法会使时序发生器复杂化,同时也无法解决节拍内那些简单操作因等待所浪费的时间。第6章 控 制 器2异步控制方式异步控制方式异步控制方式是根据每条指令或每个操作的实际需要,需要多少时间就分配多少时间。这意味着每条指令的指令周期可由不

26、等的机器周期数组成;也可以是当控制器发出某一操作控制信号后,等待执行部件完成操作后发“回答”信号,再开始新的操作。显然,用这种方式形成的操作控制序列没有固定的CPU周期数(节拍电位)或严格的时钟周期(节拍脉冲)与之同步。第6章 控 制 器3联合控制方式联合控制方式 联合控制方式是同步控制与异步控制相结合的方式。现代计算机中没有完全采用同步或完全采用异步的控制方式,大多数都采用联合控制方式,即在功能部件内部采用同步控制方式或以同步控制方式为主的控制方式,在功能部件之间采用异步控制方式。第6章 控 制 器6.3 指指令令流流程程图图指令流程图是控制器设计的基础,是用方框图语言来表示的指令周期。结合

27、图6-1所示的CPU的结构模型,分析常用指令的指令周期,并在此基础上画出指令流程图。6.3.1 典型指令及周期分析典型指令及周期分析典型指令包括非访内指令(CLA指令)、直接访内指令(ADD指令)、写存指令(STA指令)、转移指令(JMP指令)和空操作指令(NOP指令),共五类。这些指令的存储见表6-1,其具体周期分析如下所述。第6章 控 制 器表表6-1 典型指令存储表典型指令存储表第6章 控 制 器1CLA指令周期指令周期CLA指令是一条非访内指令。此类指令的指令周期需要两个CPU周期,第一个CPU周期完成取指和译码操作,第二个CPU周期用作指令的执行操作。CLA指令周期如图6-7所示。非

28、访内指令包括寄存器之间的数据传送指令、对累加器操作的指令和其他一些零地址指令,下面以CLA指令为例来说明非访内指令的两个CPU周期所进行的具体操作。第6章 控 制 器图6-7 CLA指令的指令周期第6章 控 制 器1)取指周期CLA指令的第一个CPU周期为取指周期,此周期完成取指令并对指令的操作码进行译码。假设程序计数器PC的内容为020Q,正指向CLA指令,则取指周期所进行的具体操作如图6-8所示。操作步骤如下:第6章 控 制 器 将程序计数器PC的内容020Q送入地址寄存器AR(PCAR);程序计数器PC的值加1,使PC指向下一条CPU将要执行的指令(PC+1);将地址寄存器AR的内容送到

29、地址总线上(ARABUS);CPU发出读命令,将所选主存地址为020的单元内容“250 000”读出,经过数据总线,传送给数据缓冲寄存器DR(R/W=1);数据缓冲寄存器的内容“250 000”送给指令寄存器IR(DRIR)。第6章 控 制 器图6-8 CLA取指周期阶段第6章 控 制 器指令译码器ID对指令寄存器中操作码进行译码,产生出该指令所需的所有控制信号,以便执行指令操作。由于所有指令的指令周期中第一个CPU周期都是取指周期,该周期所进行的操作都相同,因此,取指周期作为指令流程图的公共部分,任何一条指令执行结束时必须返回到取指周期,以便继续取下一条指令。第6章 控 制 器2)执行周期C

30、LA指令的第二个CPU周期为执行周期,此周期完成对累加器AC的清0。其具体操作如图6-9所示。操作步骤如下:操作控制器送CLA相应的控制信号给算术逻辑单元ALU(0AC);ALU响应该控制信号,将累加器AC的内容清0(AC=0)。第6章 控 制 器图6-9 CLA执行周期第6章 控 制 器2ADD指令周期指令周期ADD指令是一条直接访内指令,此类指令的指令周期需要三个CPU周期,第一个CPU周期完成取指和译码操作,第二个CPU周期将指令寄存器IR中的地址码送往地址寄存器,第三个CPU周期从内存中取出操作数并完成相加操作。ADD指令周期如图6-10所示 第6章 控 制 器图6-10 ADD指令的

31、指令周期第6章 控 制 器1)取指周期在取得前一条指令CLA后,程序计数器PC的值已经加1,修改为021Q,正指向当前ADD指令。经ADD指令的第一个CPU周期后,取出021Q单元的内容“030 030”(ADD 30指令)送指令寄存器IR,PC的值加1,即PC的值修改为22,指向下一条CPU将要执行的指令,经指令译码器得出该指令的功能,即将累加器的内容和主存030单元的内容相加。由于ADD指令的取指、译码操作过程与CLA指令的第一个CPU周期完全相同,此处不再重复。第6章 控 制 器2)将指令寄存器IR中的地址码装入地址寄存器AR(IRAddrAR)ADD指令的第二个CPU周期完成指令寄存器

32、IR中的地址码(030)装入地址寄存器AR,表示为030AR,其中030为内存中存放操作数的地址。具体操作如图6-11所示。第6章 控 制 器图6-11 指令寄存器IR中的地址码(030)装入地址寄存器AR第6章 控 制 器根据图6-1所示的CPU模型,对于单累加器结构的CPU,一个操作数必然隐含在累加器AC中,另一个操作数只能来源于数据缓冲寄存器DR,因此,对于直接寻址指令而言,都会面临一个相同的操作,即将指令寄存器IR中的地址码装入地址寄存器AR(IRAddrAR),在此,我们将此操作理解为一个机器周期或CPU周期。第6章 控 制 器3)两操作数相加ADD指令的第三个CPU周期主要完成取操

33、作数并执行加法操作。其具体操作如图6-12所示。操作步骤如下:把地址寄存器AR中的操作数的地址(30)送地址总线(ARABUS);CPU发出读命令,将主存地址为30的单元内容6读出,经过数据总线送给数据缓冲寄存器DR(R/=1);执行加法运算。数据缓冲寄存器的内容6为算术逻辑单元提供一个操作数,累加器为ALU提供另一个操作数,两个操作数经ALU相加,并把加法的结果送给累加器,此时,累加器的内容为6(“+”)。第6章 控 制 器图6-12 两操作数相加 第6章 控 制 器3STA指令周期指令周期STA指令是一条间接访内指令,该指令的指令周期由四个CPU周期组成,如图6-13所示。第一个CPU周期

34、完成取指和译码操作,第二个CPU周期将指令寄存器IR中指令的地址码送往地址寄存器,第三个CPU周期从内存中取出操作数的地址并送往地址寄存器,第四个CPU周期将累加器AC的内容写入内存单元。第6章 控 制 器图6-13 STA指令的指令周期第6章 控 制 器1)取指周期STA指令的第一个CPU周期仍为取指周期,将当前PC所指的主存单元中的指令“STA I 30”(机器码为“021031”)取出并译码,PC的值加1,指向下一条CPU将要执行的指令。由于STA指令的第一个CPU周期与CLA、ADD指令的第一个CPU周期的操作完全相同,所以此处不再重复。第6章 控 制 器2)将指令寄存器IR中的地址码

35、装入地址寄存器AR(IRAddrAR)STA指令的第二个CPU周期将指令寄存器IR中的地址码(031)装入地址寄存器AR(031AR)。由于STA指令的第二个CPU周期与ADD指令的第二个CPU周期的操作完全相同,所以此处也不再重复。只是强调:ADD指令中的地址码030是操作数所在内存单元的地址,而STA指令中的地址码31并不是操作数所在内存单元的地址,而是操作数所在内存单元的地址所在的内存单元的地址。简单地讲,STA指令中的地址码31是操作数所在内存单元地址的地址。第6章 控 制 器3)取操作数的地址并送往地址寄存器STA指令的第三个CPU周期主要完成从内存单元地址为31的单元中取出操作数地

36、址40,其具体操作如图6-14所示。操作步骤如下:地址寄存器的内容31发送到地址总线(ARABUS);CPU发出读命令,将选中的地址为31内存单元的内容40读到数据总线上(R/=1);把数据总线上的内容装入地址寄存器AR,于是40进入地址寄存器,替代原来的内容31(DBUSAR)。第6章 控 制 器图6-14 取操作数的地址并送往地址寄存器第6章 控 制 器4)累加器AC的内容写入内存单元STA指令的第四个CPU周期主要完成累加器AC的内容写入内存单元。其具体操作如图6-15所示。操作步骤如下:把累加器AC的内容6送给数据缓冲寄存器DR(ACDR);把地址寄存器AR的内容40送到地址总线上(A

37、RABUS);把数据缓冲寄存器DR的内容6发送到数据总线(DRDBUS);CPU发出写命令,将数据总线上的内容写入到所选的主存单元中,即将数据6写入地址为40的主存单元(R/=0)。第6章 控 制 器图6-15 累加器AC的内容写入内存单元第6章 控 制 器4JMP指令周期指令周期JMP指令可以是直接寻址,也可以是间接寻址。此JMP指令采用直接寻址,该指令的指令周期需要两个CPU周期,第一个CPU周期完成取指和译码操作,第二个CPU周期将指令寄存器IR中指令的地址码送往地址寄存器AR和程序计数器PC。JMP指令的指令周期如图6-16所示。第6章 控 制 器图6-16 JMP指令的指令周期第6章

38、 控 制 器1)取指周期JMP指令的第一个CPU周期仍为取指周期,即将当前PC所指的主存单元中的指令“JMP 21”(机器码为“140 021”)取出并译码,PC的值加1。由于JMP指令的第一个CPU周期与CLA、ADD、STA指令的第一个CPU周期的操作完全相同,所以此处不再重复。第6章 控 制 器2)将指令寄存器IR中的地址码装入地址寄存器AR和程序计数器PC(IRAddrAR、PC)JMP指令的第二个CPU周期将指令寄存器IR中的地址码(021)装入地址寄存器AR和程序计数器PC(IRAddrAR、PC)。类似于ADD、STA指令的第二个CPU周期,所不同的是,指令寄存器IR中的地址码(

39、021)不仅装入地址寄存器AR,还要装入程序计数器PC,从而代替了PC原来的内容24,这样,下一条CPU将要执行的指令不是24单元中的指令,而是21单元中的指令,从而改变了程序原来的执行顺序,实现了程序的转移。第6章 控 制 器5NOP指令周期指令周期NOP指令是一条空操作指令,也是非访内指令。此指令的指令周期由两个CPU周期组成,第一个CPU周期完成取指和译码操作,第二个CPU周期用作指令的执行操作。由于NOP指令是一条空操作指令,所以,在第二个CPU周期中不产生任何控制信号。NOP指令的指令周期与CLA指令的指令周期相同,此处不再重复。第6章 控 制 器6.3.2 指令周期流程指令周期流程

40、通过分析典型指令的指令周期,使我们对每一条指令的取指过程和执行过程有了较为深刻的印象。为了便于进行控制器的设计,指令周期可以采用类似程序流程图的形式进行描述。指令周期流程图主要由方框、棱形框、有向线段和公共操作符组成。其中,一个方框代表一个CPU周期,表示某些具体的操作;棱形框表示某种判断或测试,不单独占用一个CPU周期;有向线段表示时间的先后顺序;公共操作符表示一条指令执行结束,转入公操作。第6章 控 制 器由于所有指令的取指令阶段完全相同,并且是指令的第一个CPU周期,因此,取指令可以作为公操作。指令不同只是指令的执行阶段不同,可以根据指令的操作码转向不同指令的执行阶段。我们把CLA、AD

41、D、STA、JMP四条典型指令的指令周期进行归纳后,画出了指令周期流程图,如图6-17所示。第6章 控 制 器图6-17 指令周期流程图第6章 控 制 器在图6-17中,由于ADD、STA、JMP指令的寻址方式不同,既可以采用直接寻址,也可以采用间接寻址,因此,指令流程图出现了分支。请读者对其中哪个分支是直接寻址,哪个分支是间接寻址进行分析。第6章 控 制 器【例例6-1】图6-18所示为双总线结构机器的数据通路,IR为指令寄存器,PC为程序计数器(具有自增功能),M为主存(受R/W信号控制),AR为地址寄存器,DR为数据缓冲寄存器,ALU由加、减控制信号决定完成何种操作,控制信号G控制的是一

42、个门电路。另外,线上标注有小圈表示有控制信号,yi表示y寄存器的输入控制信号,R1o为寄存器R1的输出控制信号,未标字符的线为直通线,不受控制。(1)画出“ADD R0,R2”的指令周期流程图,并列出相应的操作控制信号序列。假设该指令的地址已放入PC中。(2)画出“SUB R1,R3”的指令周期流程图,并列出相应的操作控制信号序列。假设该指令的地址已放入PC中。第6章 控 制 器图6-18 双总线结构机器的数据通路第6章 控 制 器解解:(1)“ADD R0,R2”指令是一条加法指令,其功能为(R0)+(R2)R0,根据给定的数据通路,“ADD R0,R2”的指令周期流程如图6-19(a)所示

43、,该图的右侧注明了相应的操作控制信号序列。第6章 控 制 器图6-19 指令周期流程图第6章 控 制 器(2)“SUB R1,R3”指令是一条减法指令,其功能为(R1)-(R3)R3,其指令周期流程如图6-19(b)所示,该图的右侧注明了相应的操作控制信号序列。第6章 控 制 器6.4 微程序控制器微程序控制器微程序控制器因其具有规整性、灵活性、可维护性等一系列优点而被广泛应用。早在1951年,英国剑桥大学的M.V.Wilkes教授就提出了微程序设计。微程序设计的实质是用程序设计的思想方法来组织操作控制逻辑,把各条指令的微操作序列编制成微程序,并存放在控制存储器中,在执行机器指令时,通过读取并

44、执行相应的微程序来实现这条机器指令的功能。第6章 控 制 器6.4.1 基本概念基本概念1微命令和微操作微命令和微操作我们可以把组成计算机的各个部分划分为两大类,一类是控制部件,另一类是执行部件。控制器就是控制部件,而运算器、存储器、外围设备相对控制器来讲,就是执行部件,控制部件与执行部件之间的联系依靠的是控制信号线,我们通常把控制部件通过控制信号线向执行部件发出各种控制命令称为微命令,由此可见,微命令是构成控制信号序列的最小单位。而执行部件接受微命令后所进行的操作称为微操作,微操作是执行部件中最基本的操作。微操作可以分为相容性和相斥性两种。所谓相容性的微操作,是指同时或在同一个CPU周期内可

45、以并行执行的微操作。所谓相斥性的微操作,是指不能同时或不能在同一个CPU周期内可以并行执行的微操作。第6章 控 制 器图6-20给出了一个简单的运算器模型,其中ALU为算术逻辑单元,R1、R2、R3为三个寄存器,三个寄存器的内容可以通过多路开关从ALU的X输入端或Y输入端送至ALU,而ALU的输出可以送往任何一个寄存器或同时送往R1、R2、R3三个寄存器。多路开关的每个控制门是一个常闭的开关,它的一个输入端代表来自寄存器的信息,而另一个输入端是控制端,一旦两个输入端都有输入信号,多路开关则处于开的状态,才会产生输出。第6章 控 制 器图中每一个开关门都由相应的微命令来控制,例如,开关门4由编号

46、为4的微命令控制,开关门5由编号为5的微命令控制,如此等等。三个寄存器R1、R2、R3分别由1、2、3微命令控制,以便在ALU运算完毕时,将运算结果打入到某一寄存器。另外,ALU只有+、-和M三种操作。Cy为进位触发器,只有ALU产生进位时该触发器的状态为“1”。第6章 控 制 器图6-20 简单运算器模型第6章 控 制 器由此可见,ALU的操作(+、-、M)在同一个CPU周期中只能选择一种,所以,+、-、M三个微操作是相斥性的微操作。另外,4、6、8三个微操作是相斥性的微操作,5、7、9三个微操作也是相斥性的微操作。微操作1、2、3是可以同时进行的,所以是相容性的微操作。另外,ALU的X输入

47、微操作4、6、8分别与Y输入的微操作5、7、9任意两个微操作都是相容性的微操作。第6章 控 制 器2微指令和微程序微指令和微程序微指令是指在一个CPU周期中能够实现一定操作功能的一组微命令。而微程序则是微指令序列。我们知道,一条机器指令的指令周期包含多个CPU周期,根据微指令的概念,一个CPU周期对应一条微指令,因此,一条机器指令的功能是由多条微指令组成的序列来实现的。作为微指令,一方面要形成后继微地址,即执行完某一条微指令后,必须给出下一条微指令的地址,下一条微指令的地址也称为后继微地址,以便当前微指令执行完毕后能正确取出下一条微指令;另一方面要产生一组微命令。第6章 控 制 器因此,微指令

48、的格式应至少包含操作控制字段和顺序控制字段两部分。操作控制字段用来产生微命令,顺序控制字段用来形成后继微地址。某一具体微指令格式如图6-21所示。其微指令长度为23位,包含操作控制字段和顺序控制字段两部分。其中操作控制字段占17位,每一位表示一个微命令。当操作控制字段某一位为“1”时,则表示发出该位相应的微命令;否则,则表示不发出该位相应的微命令。例如,当微指令第一位为“1”时,表示发出LDR1 微命令,运算器执行ALUR1的微操作。同样,当微指令第十位为“1”时,表示向ALU发出“+”微命令,ALU则执行“+”微操作。第6章 控 制 器图6-21 微指令格式第6章 控 制 器微指令的顺序控制

49、字段占6位。其中4位(2023)用来直接形成后继微地址;第18、19位作为判断测试标志,当此两位都为“0”时,表示不进行测试,直接将微指令中第2023位作为后继微地址;当此两位都为“1”时,表示要进行P1或P2的判断测试,即根据测试结果,需要对微指令中第2023位的某一位或某几位进行修改,将修改后的地址作为后继微地址。第6章 控 制 器3机器指令与微指令机器指令与微指令机器指令与微指令的关系如图6-22所示。第6章 控 制 器图6-22 机器指令与微指令的关系第6章 控 制 器1)机器指令与微指令所处的位置不同机器指令在程序中位于主存储器内,该机器指令的第一个CPU周期完成取指和译码,即将机器

50、指令从主存中取出,并送到指令寄存器IR中,再对IR中的指令操作码进行译码,从而识别出是什么机器指令。而微指令在微程序中位于控制存储器内,在一个微周期中完成从控制存储器取出微指令,并存放于微指令寄存器IR,再执行IR中的微指令。第6章 控 制 器2)机器指令与微程序的对应关系一条机器指令对应一个微程序,也就是说,一条机器指令是由一个微程序负责解释执行的。在控制存储器中存在着所有机器指令的微程序,如何实现不同的机器指令转去执行相应的微程序呢?在机器指令的第一个CPU周期完成取指和译码后,由于机器指令不同,其指令的操作码也不同,因此,可以根据指令寄存器IR中的指令操作码去产生该机器指令相应的微程序入

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《计算机原理》课件第6章.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|