第5章中央处理器CPUCentralProcessingUnit.ppt

上传人:本田雅阁 文档编号:2606298 上传时间:2019-04-16 格式:PPT 页数:161 大小:2.19MB
返回 下载 相关 举报
第5章中央处理器CPUCentralProcessingUnit.ppt_第1页
第1页 / 共161页
第5章中央处理器CPUCentralProcessingUnit.ppt_第2页
第2页 / 共161页
第5章中央处理器CPUCentralProcessingUnit.ppt_第3页
第3页 / 共161页
亲,该文档总共161页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第5章中央处理器CPUCentralProcessingUnit.ppt》由会员分享,可在线阅读,更多相关《第5章中央处理器CPUCentralProcessingUnit.ppt(161页珍藏版)》请在三一文库上搜索。

1、2019/4/16,1,第5章 中央处理器(CPU) Central Processing Unit,5.1 CPU的功能和基本结构 5.2 数据通路的功能和基本结构 5.3 指令执行过程 5.4 控制器的功能和工作原理 5.5 指令流水线,2019/4/16,2,中央处理器(Central Processing Unit,简称CPU)是计算机的核心部件,主要负责程序的执行和各种数据处理。 本章从分析CPU的功能结构入手,详细介绍CPU的构成和指令的执行过程,对两种常见的控制器工作原理进行了阐述。此外还介绍了为提高指令执行速度而采取的流水线技术 。,2019/4/16,3,本章主要论述CPU组

2、成原理 通过本章学习: 掌握在计算机运行过程中各个硬件部件的作用; CPU中各个部件的操作过程及其实现方法原理。 本章将重点讲述: 程序是如何执行的; 计算机怎样实现各条指令的功能; 如何保证逐条指令的连续执行过程。,2019/4/16,4,5.1 CPU的功能和基本结构 5.1.1 CPU的功能 对冯诺依曼结构计算机,计算机对信息进行处理(或计算)是通过程序执行而实现的,程序是完成某个确定算法的指令序列,要预先存放在存储器中。将程序写入存储器后,便可由计算机自动完成指令的执行,控制器的主要任务就是完成此项工作的,它负责协调并控制计算机各部件执行程序的指令序列,并对数据进行加工,其基本功能是取

3、指令、分析指令和执行指令 。,2019/4/16,5,5.1 CPU的功能和基本结构 5.1.1 CPU的功能 1取指令:当程序已在存储器中时,首先根据程序入口取出第一条指令,为此要发出指令地址及控制信号。然后不断取出第2,3,条指令 2分析指令:对当前取得的指令进行分析,指出它要求作什么操作,产生相应操作控制命令,若参与操作数据在存储器中,还需形成操作数地址 3执行指令:根据分析指令时产生的“操作命令”和“操作数地址”形成相应操作控制信号序列,通过CPU及输入输出设备的执行,实现每条指令功能,还包括对运算结果的处理及下条指令地址形成 计算机不断重复顺序执行上述三种基本操作:取指、分析、执行;

4、再取指、再分析、再执行,如此循环,直到遇到停机指令或外来的干预为止,2019/4/16,6,5.1 CPU的功能和基本结构 5.1.1 CPU的功能 此外,程序和数据要输入机器,运算结果要输出,机器运行过程中出现的某些异常情况或请求要进行处理,人与机器之间要进行对话,控制器还应具有以下功能: 4控制程序和数据的输入与结果输出:根据程序安排或人的干预,在适当的时候向输入输出设备发出一些相应的命令来完成I/O功能 5对异常情况和某些请求的处理:当机器出现某些异常情况,发出:(1) “中断请求”信号。CPU执行完当前指令后,响应该请求,中止当前执行的程序,转去执行中断程序。处理完毕后,再返回原程序继

5、续运行。(2) DMA请求信号。等CPU完成当前机器周期操作后,暂停工作,让出总线给I/O设备,在完成I/O设备与存储器之间的传送数据操作后,CPU从暂时中止的机器周期开始继续执行指令,2019/4/16,7,5.1 CPU的功能和基本结构 5.1.1 CPU的功能 总之,CPU必须具有控制程序的顺序执行(称指令控制)、产生完成每条指令所需的控制命令(称操作控制)、对各种操作加以时间上的控制(称时间控制)、对数据进行算术运算和逻辑运算(数据加工)以及处理中断等功能,2019/4/16,8,5.1 CPU的功能和基本结构 5.1.2 CPU的基本结构 根据CPU的功能,要取指令,必须有存储器用于

6、存放当前指令地址;要分析指令,必须有存放当前指令的寄存器和对指令进行译码的部件;要执行指令,必须有一个能发出各种操作命令序列的控制部件CU;要完成算术运算和逻辑运算,必须有存放操作数的寄存器和实现运算功能的部件ALU;为了处理异常情况和特殊请求,还必须有中断系统。 因此,CPU一般可由寄存器、控制部件、ALU和中断系统四部分组成,如图5-1所示 有关ALU的内容第2章已经介绍了,控制部件CU是CPU最复杂的部分,后面将重点介绍,2019/4/16,9,5.1 CPU的功能和基本结构 5.1.2 CPU的基本结构,2019/4/16,10,5.2 数据通路的功能和基本结构 5.2.1 数据通路的

7、功能 数据通路是CPU中算术逻辑单元(ALU)、控制单元(CU)以及寄存器之间的连接线路。 CPU取回指令并进行指令译码之后,就会根据操作码来进行指定的操作,比如取数据-运算-符号判断-存储等过程,通过数据通路可看出数据在被处理的过程中依次经过各种器件的次序和方向。 不同计算机的数据通路差别很大,只有明确了机器的数据通路,才能确定相应的微操作控制信号,2019/4/16,11,5.2 数据通路的功能和基本结构 5.2.2 数据通路的基本结构 图5-2为CPU数据通路的基本结构。图中主要包括运算器、控制器和寄存器等主要部件和CPU片内总线、计算机内部总线。在第2章中已经介绍了运算器的功能结构,这

8、里介绍寄存器、控制器和总线 。,2019/4/16,12,5.2 数据通路的功能和基本结构 5.2.2 数据通路的基本结构,2019/4/16,13,5.2 数据通路的功能和基本结构 5.2.2 数据通路的基本结构 1. 寄存器: CPU中的寄存器用来暂时保存运算和控制过程中的中间结果、最终结果以及控制、状态信息。寄存器的功能十分重要,CPU对存储器中的数据进行处理时,往往先把数据取到内部寄存器中,而后再作处理。它可分为通用寄存器和专用寄存器两大类。 通用寄存器可用来存放原始数据和运算结果,有的还可作为变址寄存器、地址指针等。比如8086CPU包含4个16位通用寄存器:AX、BX、CX和DX和

9、4个16位指针寄存器堆栈指针SP、基址指针BP、源变址寄存器SI和目的变址寄存器DI,2019/4/16,14,5.2 数据通路的功能和基本结构 5.2.2 数据通路的基本结构 专用寄存器是专门用来完成某一种特殊功能的寄存器: (1)程序计数器(PC):存放正在执行的指令地址或接着要执行的下一条指令地址,既可能通过程序计数器加1形成下一条指令地址,也可能由转移类指令形成转移地址送到程序计数器,作为下一条指令地址。 (2)指令寄存器(IR):存放从存储器中取出的指令,以便在指令执行过程中,控制完成一条指令的全部功能。 (3)数据寄存器(DR):暂时存放由主存读出的指令或数据字,当向主存写入指令或

10、数据字时,也暂时存放在存储器数据寄存器。,2019/4/16,15,5.2 数据通路的功能和基本结构 5.2.2 数据通路的基本结构 专用寄存器是专门用来完成某一种特殊功能的寄存器: (4)地址寄存器(AR):保存当前CPU所访问的主存单元的地址。由于主存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到主存的读写操作完成为止 (5)程序状态寄存器(PSR):存放程序状态字,用于反映CPU内部状态及控制CPU某些部件的行为而设置的。如ALU的运算结果是否为零,可由状态标志寄存器中的标志位表示。这些状态的保存和使用为后续指令提供了方便,是参与控制程序的重要依据之一。后

11、续指令可以在判断上条指令运算状态的基础上实现程序的转移等操作。,2019/4/16,16,5.2 数据通路的功能和基本结构 5.2.2 数据通路的基本结构 2. 控制器: 控制器中除包含程序计数器、指令寄存器外,还包括: (1)指令译码器:对指令寄存器中的操作码进行分析解释,产生相应的控制信号。 (2)脉冲源及启停线路:形成有一定时序关系的操作控制信号序列。脉冲源产生一定频率的脉冲信号作为整个机器的时钟脉冲,是机器周期和工作脉冲的基准信号,机器刚加电时,还应产生一个复位信号(reset)。启停线路保证可靠地送出或封锁时钟脉冲,控制时序信号发生或停止,从而启动机器工作或使之停机。 (3)时序控制

12、信号形成部件:当机器启动后,在CLK时钟作用下,根据当前正在执行的指令需要,产生相应时序控制信号,并根据被控功能部件的反馈信号调整时序控制信号。,2019/4/16,17,5.2 数据通路的功能和基本结构 5.2.2 数据通路的基本结构 3. 总线: CPU内部各部件通过片内总线进行信息交换。 CPU和计算机内的其他部件,如存储器、IO设备,通过计算机内部总线连接。 内部总线包括数据总线、地址总线和控制总线。 一般数据总线可以双向传输数据,地址总线是单向的,一般由“主设备”送出地址,“从设备”接收地址,比如CPU送出地址(指令地址或数据地址),存储器接收地址,IO设备有可能发送地址,也可能接收

13、地址 。,2019/4/16,18,图5-2 CPU数据通路的基本结构,2019/4/16,19,5.2 数据通路的功能和基本结构 5.2.2 数据通路的基本结构 随着VLSI的发展,计算机结构有了很大发展,如在CPU中,往往有一个指令预取队列,可预取出若干条指令,存放在由寄存器组成的队列中,当执行程序需要取指令时,可从速度比主存快得多的寄存器中得到,缩短程序运行时间。为了提高速度,当一条指令还未执行完时,就提前执行第二条指令,这就是流水线技术。另外CPU中还应包括“中断处理”的内容。 控制器在实现一条指令的功能时,总要把每条指令分解成为一系列时间上先后有序的最基本、最简单的微操作,即微操作序

14、列,微操作序列是与CPU的内部数据通路密切相关的,不同的数据通路就有不同的微操作序列 。,2019/4/16,20,5.3 指令执行过程 5.3.1 时序系统 时序系统的功能是为指令的执行提供各种定时信号,通常由周期(分指令周期和机器周期两种)、节拍和工作脉冲组成 指令周期:CPU每取出并执行一条指令,都要完成一些列的操作,这一系列的操作所需要的时间称作一个指令周期。指令周期是执行一条指令(包括取指令、分析指令和执行指令)所需的全部时间,不同指令的指令周期是不同的,2019/4/16,21,5.3 指令执行过程 5.3.1 时序系统 机器周期:按照指令执行的各项不同任务,把一个指令周期划分成若

15、干个时间段,每个时间段完成一个基本操作,这样的时间段称为机器周期。 在采用混合控制方式的现代计算机中,一般的做法是定义几种基本的机器周期。例如,取指令机器周期,读存储器机器周期,写存储器机器周期和执行运算机器周期等。一个指令周期可包括不同数量、不同类型的几个机器周期,但是任何一条指令的第一个机器周期必须是取指令机器周期。 机器周期又称作CPU周期,通常它是主存储器的一个访问周期。在微型计算机中,CPU访问主存就是一次总线传送,因此也称为总线周期。,2019/4/16,22,5.3 指令执行过程 5.3.1 时序系统 节拍:在每个机器周期内要执行若干个微操作,这些操作可能需要分成几步完成。应把一

16、个机器周期分为若干个相等的时间段,以便对应一个机器周期中规定的微操作,这样的每个时间段都对应一个电位信号,成为节拍电位信号。 “节拍”是计算机操作的最小单位时间,又可称作时钟周期或T周期。 节拍的宽度取决于CPU执行一次微操作所需要的时间,不同的机器周期内所包括的节拍数可以是固定不变的,也可以是可变的。,2019/4/16,23,5.3 指令执行过程 5.3.1 时序系统 节拍的选取一般有如下4种方法: (1) 统一节拍法。以最复杂指令的机器周期为标准,确定节拍数,指令有多少微操作,机器周期就包括多少个节拍。节拍长度为最繁微操作所需时间。 (2)分散节拍法。根据每条指令的实际需要安排节拍数,需

17、要多少节拍,节拍发生器就发出多少节拍。 (3)延长节拍法。照顾多数机器周期要求,选取适当节拍数作为基本节拍,根据指令需要,每拍可适当延长1-2拍。 (4)时钟周期插入法。在一些微型机中,时序信号中不设置节拍,而直接使用时钟周期信号,即一个机器周期中含有若干个时钟周期且还可以不断插入等待周期。,2019/4/16,24,5.3 指令执行过程 5.3.1 时序系统 工作脉冲:节拍电位信号提供了一项操作所需要的时间分段,它是信息的载体,在数据通路传输中起着开门或关门的作用,但在一个节拍中,有的操作还需要严格的定时脉冲,如将稳定的运算结果打入寄存器、机器周期状态切换等。所以在一个节拍之内往往还需要设置

18、几个工作脉冲,作为各种同步脉冲的来源。 通常触发器采用电位-脉冲工作模式,节拍电位送D触发器的D输入端,工作脉冲送CP输入端。两者的配合关系如图5.3所示 。,2019/4/16,25,5.3 指令执行过程 5.3.1 时序系统,图5-3节拍电位和工作脉冲的配合关系,2019/4/16,26,5.3.2 指令的执行过程 一条指令运行过程可分为3个阶段:取指令阶段、分析指令阶段和执行指令阶段 取指令阶段:取指令阶段的任务是将现行指令从存储器中取出来并送至指令寄存器中去。具体操作如下: (1)将程序计数器(PC)中的内容送至存储器地址寄存器(MAR),并送地址总线(AB); (2)由控制单元(CU

19、)经控制总线(CB)向存储器发读命令; (3)从主存中取出的指令通过数据总线(DB)送到存储器数据寄存器(MDR); (4)将MDR的内容送至指令寄存器(IR)中; (5)将PC的内容递增,为取下一条指令做好准备。 以上这些操作对任何一条指令来说都是必须要执行的操作,所以称为公共操作 。,2019/4/16,27,5.3.2 指令的执行过程 分析指令阶段:取出指令后,指令译码器(ID)可识别和区分出不同的指令类型。此时计算机进入分析取数阶段,以获取操作数。由于各条指令功能不同,寻址方式也不同,所以分析取数阶段的操作是各不相同的 。 指令执行阶段:执行阶段完成指令规定的各种操作,形成稳定的运算结

20、果,并将其存储起来。 计算机的基本工作过程就是取指令、分析取数、执行指令,然后再取下一条指令,如此周而复始,直至遇到停机指令或外来的干预为止 。,2019/4/16,28,5.3.3. 指令执行过程举例 首先将图5-2给出的CPU基本结构具体化,列出相应的控制信号,图5-4是对应的CPU逻辑框图 。 在图5.4中ALU可以进行加、减、逻辑加、逻辑乘四种运算。图中的控制信号用符号1,2,3,表示,其意义见表5.1。,2019/4/16,29,图5.4 CPU逻辑框图,2019/4/16,30,表5.1 控制信号一览表,2019/4/16,31,5.3.3. 指令执行过程举例 1. 加法指令的执行

21、过程 假设CPU的逻辑框图如图5.4所示。 运算器由8个通用寄存器GR及1个算逻运算部件ALU组成,并有4个记忆运算结果状态的标志触发器N,Z,V和C。 N(负数):当运算结果为负数时,N=1,否则N=0; Z(零): 当运算结果为零时,Z1,否则Z0; V(溢出):当运算结果溢出时,V1,否则V0; C(进位): 当加法运算产生进位信号或减法运算产生借位信号时,C1,否则C0。,2019/4/16,32,设指令格式: rs,rd,rs1为通用寄存器地址; imm(或disp)为立即数(或位移量)。 加法指令功能:将寄存器(rs)中的一个数与存储器中的一个数(其地址为(rs1)+disp)相加

22、,结果放在寄存器rd中,rs与rd为同一寄存器。即 (rs)+(rs1)+disp rs,2019/4/16,33,加法指令完成以下操作 从存储器取指令,送入指令寄存器,并进行操作码译码(分析指令)。 控制器应发出的信号有: PC AB, W/R=0, M/IO=1; DB IR; PC+1; ADS=1 计算数据地址,将计算得到的有效地址送地址寄存器AR 控制器应发出的信号有: rs1 GR , (rs1) ALU, disp ALU, “+” , ALU AR 到存储器取数 控制器应发出的信号有: AR AB, W/R=0, M/IO=1; DB DR ; ADS=1 进行加法运算,结果送

23、寄存器,根据运算结果置状态位 控制器应发出的信号有: rs GR, (rs) ALU, DR ALU, “+”, rd GR, ALU rd,2019/4/16,34,以上操作需要四个机器周期,其时间安排如下 :,其中取指令和取数周期通过总线访问存储器;计算地址和运算送结果周期在CPU内部进行操作,此时总线空闲。 CPU内部的寄存器,如程序计数器(PC)、指令寄存器(IR)、通用寄存器(GR)等都是在一个周期的末尾接受信息的,即在T2时,利用CLK时钟的下降沿打入寄存器。大部分计算机CPU中的触发器、寄存器都是利用与时钟同步的脉冲打入的。 加法指令时序图见下页。,2019/4/16,35,加法

24、指令时序图,2019/4/16,36,(2) 转移指令的执行过程 指令功能:根据运算结果,决定是否转移。如转移条件成立,则转移到本条指令所指定的地址,否则顺序执行下一条指令。 本条指令完成以下操作: 从存储器取指令,送入指令寄存器,并进行操作码译码。 如转移条件成立,根据指令规定的寻址方式计算有效地址,转移指令经常采用相对寻址方式,转移地址PC+disp。 PC是指本条指令地址,而在上一机器周期已执行PC+1操作,计算时应取原PC值,或对运算进行修正。最后将转移地址送PC。,2019/4/16,37,本条指令只需两个机器周期,如转移条件成立,在第二机器周期增加一个ALUPC信号;另外,如为相对

25、转移,则用PCALU信号取代加法指令第二周期中的(rs1)ALU信号,其他信号与加法指令的前两个机器周期中的信号相同。 某些计算机对条件转移指令的功能规定:先进行比较运算,根据运算(比较)结果置条件码,并根据条件码决定是否转移。要完成这样的功能显然要增加周期数。 其他指令的控制信号也按同样方法分析,根据每条指令的功能确定所需机器周期数,得出每个机器周期所需的控制信号,最后将所有控制信号进行综合化简。,2019/4/16,38,控制器的功能就是按每条指令的要求产生所需的控制信号。因此在设计控制器时要求系统设计师提供一个完整的无二义性的指令系统说明书。 到此为止,只讲到为什么需要控制信号及需要什么

26、样的控制信号,下一节将说明如何产生控制信号。 产生控制信号一般有微程序控制和硬布线控制两种方法 。,2019/4/16,39,5.4 控制器的功能和工作原理 计算机各个部件所需要的微操作控制信号均由控制器的“时序控制信号形成部件”根据指令的要求来产生。 “时序控制信号形成部件”的实现一般由两种方式,一是采用组合逻辑来实现,即 “硬布线控制器”,二是采用存储逻辑来实现,即 “微程序控制器”。 本节将介绍这两种控制器的组成和工作原理。,2019/4/16,40,5.4.1 硬布线控制器 在硬布线控制器中,由于时序控制信号是通过逻辑电路直接连线而产生的,所以又称为组合逻辑控制方式。 至于控制器的其他

27、组成部分,诸如时钟、启停电路、程序计数器、指令寄存器以及电路配合问题等,则不因控制方式而异。 不同计算机(即使是同一系列的计算机)之间控制器的具体组成及控制信号的时序等差别是很大的,这主要取决于设计技巧以及所选用器件等因素,它们的基本原理是相同的 。,2019/4/16,41,5.4.1 硬布线控制器 1. 时序系统 一条指令的实现可分成取指、计算地址、取数及执行等步骤。在硬布线控制器中,由指令的操作码直接控制并产生实现上述各步骤所需的控制信号。 时序系统的功能就是要产生指令系统的全部指令的各种机器周期信号和节拍信号 。 大部分情况下,指令执行每一步由一个机器周期实现,机器周期信号一般可采用计

28、数器输出译码方式,例如可用两位计数器的译码输出来产生四个周期信号,如图5.6所示。,图5.6 用计数器、译码器 形成机器周期信号,cy1 cy2 cy3 cy4,译码器,cyA,cyB,计 数 器,2019/4/16,42,5.4.1 硬布线控制器 1. 时序系统 由于每条指令功能不同,所以所需机器周期数可能不相同,因此某些指令可能缺少某个周期(例如转移指令),而有些复杂指令的某个周期则需要延长(例如乘法指令的执行周期),从而使得上述计数器或移位寄存器的工作时序发生变化,其变化规律与指令有关。 例如,执行A指令时需要四个机器周期,因此计数器的变化规律是00011011;而执行B指令时仅需要三个

29、机器周期(例如不用计算地址),则计数器的变化规律为001011,据此可列出真值表(表5.2)。 表5.2中cyA,cyB表示当前周期的计数器状态,cyA,cyB表示下一周期计数器状态,2019/4/16,43,表5.2 计数器状态变化,A指令表达式为,B指令表达式为,2019/4/16,44,5.4.1 硬布线控制器 1. 时序系统 由表达式得出时序计数器逻辑图5.7,图5.7为仅有两条指令的逻辑图,实际机器有几十条到几百条指令,根据指令功能列出每条指令的机器周期变化规律,最后归纳出几种情况,将情况相同的指令归为一类,然后列出表达式,画出逻辑图。,B指令,图5.7 时序计数器逻辑图,R cyA

30、,R cyB,1 1,&,&,&,&,&,reset,CP,cyA,cyB,cyB,cyA,A指令,A指令,B指令,cyA,cyB,cyB,cyB,2019/4/16,45,5.4.1 硬布线控制器 2. 硬布线控制器的组成 图5.8是硬布线控制器框图,由硬布线逻辑(组合逻辑)部件产生全机所需的操作命令(包括控制电位与打入脉冲) 。,图5.8 硬布线控制器组成框图,操作码,程序计数器,指令寄存器IR,译码器,硬布线逻辑 (组合逻辑),操作控制信号,地址码, ,中断控制逻辑,中断信号,转移地址,+1,reset,机器周期 状态,节拍及 工作脉冲,启停电路,脉冲源,cy1 cy2 cy3 cy4,

31、T1 T2 CP,CLK,CLK,2019/4/16,46,5.4.1 硬布线控制器 2. 硬布线控制器的组成 时序系统:用来产生指令系统的全部指令的各种机器周期信号和节拍信号。由脉冲源、启停电路、节拍与工作脉冲、机器周期状态等硬件电路组成。 程序计数器和中断控制逻辑:程序计数器的输入有四种来源:开机后的reset信号,将PC置以初始地址;当顺序执行指令时,由PC+1形成下条指令地址;当程序转移时,由ALU送来转移地址(通过ALU部件计算有效地址);当有外来中断请求信号时,若CPU响应中断,则由中断控制逻辑部件产生中断入口地址。有的计算机中断入口地址仅有一个,而有的计算机,根据不同的中断来源,

32、进入不同的中断处理程序入口,进行相应的处理,称为向量中断。在仅有一个中断入口地址的情况下,CPU响应中断后,首先要查到中断源,以确定是哪个I/O设备要进行处理,是输入、输出还是故障等,然后才能进入相应中断处理程序进行处理,而当具有向量中断功能时,直接进入中断处理程序,加快了响应时间。,2019/4/16,47,5.4.1 硬布线控制器 2. 硬布线控制器的组成 指令寄存器:用来存放从存储器中取出的指令,以便在指令执行过程中,控制完成一条指令的全部功能。指令寄存器包括操作码和地址码两部分 。 译码器:各条指令所需实现的操作随指令而异。如操作码为7位,则允许计算机最多设置128条指令,译码器的最基

33、本形式为:以7位操作码为输入,在输出的128条线中,在任何时候只有1根为高电位,其余均为低电位(或只有1根为低电位,其余均为高电位),每1根输出线代表一条指令,因此译码器的输出可以反映出当前正在执行的指令。同种类型指令所需的控制信号大部分是相同的,在设计指令系统操作码时,应特别关注,译码器的输出信号中,还增加有关指令类型的信号(如算逻类指令、转移类指令等),2019/4/16,48,5.4.1 硬布线控制器 2. 硬布线控制器的组成 硬布线逻辑:当机器启动后,由译码器输出和机器周期状态cy1cy4作为输入,硬布线逻辑(组合逻辑)根据当前正在执行的指令的需要,产生相应的操作控制信号。 在分析一台

34、具体计算机的控制器时,可以发现译码器与硬布线逻辑的分界线往往是模糊的,这是因为两者都是由最基本的门电路组成的。实际上为简化逻辑,译码器与组合逻辑是结合在一起设计的。,2019/4/16,49,5.4.1 硬布线控制器 2. 硬布线控制器的组成 以加法指令为例,假设一条加法指令的功能由四个机器周期cy1cy4完成的,分别是取指、计算有效地址、取操作数、进行加法运算并送结果。 机器逻辑图仍如图5.4所示,所以完成一条指令的操作所需的操作信号仍如前所示。在取指周期要完成从存储器取出指令送指令寄存器以及将指令计数器加1,为取下一条指令做好准备。,2019/4/16,50,5.4.1 硬布线控制器 2.

35、 硬布线控制器的组成 在取指令机器周期,需发出以下六个操作信号: PCAB, ADS=1, W/R=0, M/IO=1, DB IR, PC+1 用逻辑式表示: PCAB加法指令cy1 (5.5) ADS加法指令cy1T1 (5.6) M/IO加法指令cy1 (5.7) W/R加法指令cy1 (5.8) DBIR加法指令cy1 (5.9) PC+1加法指令cy1 (5.10),2019/4/16,51,5.4.1 硬布线控制器 2. 硬布线控制器的组成 式5.55.10存在一个问题,即在取指周期,当前这条指令尚未取出,在IR中保留的还是上一条指令内容,因此不可能用它来产生控制本条指令所需的信号

36、,所以在取指周期只允许安排与指令类型无关的操作,因此应将这些公式中的“加法指令”取消,于是将式(5.5)改写为 : PCAB = cy1 (5.11) 5.65.10应同样修改,不再一一列出。,2019/4/16,52,5.4.1 硬布线控制器 2. 硬布线控制器的组成 在计算地址周期cy2完成有效地址的计算(rs1)+Disp),为此要将rs1的内容取出与IR中的位移量一起送ALU,发出rs1GR(送通用寄存器地址),(rs1)ALU,DispALU以及“+”命令,最后将运算结果送地址总线,发出ALUAR信号。 列出逻辑表达式: rs1GR加法指令cy2 (5.12) (rs1)ALU加法指

37、令cy2 (5.13) ALUAR加法指令cy2 (5.14),2019/4/16,53,5.4.1 硬布线控制器 2. 硬布线控制器的组成 式(5.12)式(5.14)的右边全部相同。逻辑图5.9只考虑了加法指令计算有效地址时的一种情况。然后按同样方法列出后面两个机器周期所需产生的控制信号的逻辑表达式。,2019/4/16,54,5.4.1 硬布线控制器 2. 硬布线控制器的组成 对每一条指令进行同样的分析,得出逻辑表达式。 对所有指令的全部表达式进行综合分析后可得出下述结论: 取指周期cy1所产生的信号,对所有指令都是相同的,即与当前执行的指令无关,逻辑式得到最简单的形式。 同一个控制信号

38、在若干条指令的某些周期中可能都需要,为此可把它们组合起来。 同种类型的指令所需的控制信号大部分相同,仅有少量区别。整个算术逻辑运算指令仅ALU的操作命令以及是否置状态位上有差别。不同类型的指令,其控制信号差别比较大。 在确定指令的操作码时(即对具体指令赋于二进制操作码),为了便于逻辑表达式的化简以减少逻辑电路数量,往往给予特别关注。,2019/4/16,55,5.4.1 硬布线控制器 3. 硬布线控制逻辑设计中的若干问题 (1)指令操作码的代码分配。 (2)确定机器周期、节拍与主频。 (3)根据指令功能,确定每一条指令所需的机器周期数以及每一周期所完成的操作。 (4)综合所有指令的每一个操作命

39、令(写出逻辑表达式,并化简之)。,2019/4/16,56,3 硬布线控制逻辑设计中的若干问题 (1)指令操作码的代码分配 指令系统确定后,指令操作码的分配对组合逻辑电路的组成影响很大,合理地分配操作码能节省控制部分的电路、减少延迟时间。 某些机器采用不同长度的指令,常用的指令较短,可使程序少占用存储空间,但指令操作码不规整; 在系列机发展过程中,新设计的计算机往往要扩充指令,但当初设计者可能考虑不到要增加这些指令,因而操作码的代码分配可能变得不合理。,2019/4/16,57,3 硬布线控制逻辑设计中的若干问题 (2)确定机器周期、节拍与主频 基本上取决于指令的功能及器件的速度。一般先考虑几

40、条典型指令诸如加法指令、转移指令的执行步骤及每一步骤时间,被选择的典型指令要能反映出计算机的各主要部件的速度。 如取指和取数反映了存储器的速度及CPU和存储器的配合工作情况。 为了照顾个别指令而延长机器周期也不一定可取,对这些个别指令采取增加一个周期更好。,2019/4/16,58,一般来说机器的周期基本上是根据存储器的速度及执行周期的基本时间确定的。随之机器的主频、每一机器周期的节拍与时钟数也就基本上确定了。 早期计算机由于存储器速度较慢,常以存储器的读取周期作为机器周期,可以保证其他部件的操作都在一个机器周期内完成,但时间上可能有所浪费。 为弥补这一缺点,访问存储器常采用应答方式(“握手”

41、),即CPU发出访存命令后,等待存储器发回ready信号后在继续工作,若机器周期到而该信号未到,则自动延长一个机器周期。,2019/4/16,59,3 硬布线控制逻辑设计中的若干问题 (3)根据指令功能,确定每一条指令所需的机器周期数以及每一周期所完成的操作 大部分指令的执行过程与典型指令的情况相类似,甚至更简单些,但有些指令的操作比较复杂。通常采取的办法是:延长这条指令的执行周期或重复多次出现执行周期。 如乘法指令的运算过程需要完成n次“加法与移位”操作,可用n个机器周期实现。 在确定每条指令在每一机器周期所完成的操作时,也就得出了相应的操作控制命令。该命令的一般表达式(允许有空缺)为 操作

42、控制命令名指令名机器周期节拍条件,2019/4/16,60,3 硬布线控制逻辑设计中的若干问题 (4)综合所有指令的每一个操作命令(写出逻辑表达式并化简) 由于机器指令有几十条到几百条,所以机器中操作控制命令很多,而且每一个操作命令表达式中包含的内容很多,即项数很多,因此需要化简。需对每个操作命令进行认真检查,以确保正确。 如读存储器命令=cy1+加法指令.cy3+减法指令.cy3 关于化简问题,除对逻辑式化简外,还可结合机器本身特点进行,指令操作码编码分配即为一例。,2019/4/16,61,设操作命令A和B(AC+D,BC+E)中某些项相同,可考虑把它作为公共项,先用逻辑电路实现,然后再与

43、其他项组成A、B。 图(a)(b)是实现相同功能的逻辑图,图 (b)比图 (a)少用一组实现表达式C的逻辑电路,好处显然可见,2019/4/16,62,有些操作命令对大多数指令(设这些指令的集合为I1)是需要的,而仅对少数指令(设这些指令的集合为I2)不允许产生,那么可用下式表示: AI1BI2B 其中B为逻辑表达式,I1+I2包含机器的所有指令,由于I2的指令数比I1少,因此逻辑电路得以简化。 在实现某些指令时,有一些操作命令其存在与否不影响指令的功能,此时可根据怎样对简化有利而进行舍取。,2019/4/16,63,5.4.2 微程序控制器 早期计算机中,由硬布线即组合逻辑电路来实现指令译码

44、和操作控制信号的形成,这种组成方式不适合指令复杂的计算机系统。一台计算机系统越复杂,则其控制器的电路就越复杂。一旦机器的硬布线控制器的组合逻辑设计完成后,很难修改和扩充其指令系统的功能。这种控制电路的设计方法非常繁琐,很难实现设计自动化。 为解决上述问题,提出用微程序控制器实现控制器电路。基本思想是:计算机系统控制电路是按照一系列离散步骤进行操作的,一条指令的功能是通过按一定次序执行一系列基本操作完成的,这些基本操作成为微操作。例如,前面讲到的加法指令,分成四步(取指令、计算地址、取数、加法运算)完成,每一步实现若干个微操作。这些步骤就像计算机程序执行过程一样,可以用软件方法来实现 。,201

45、9/4/16,64,5.4.2 微程序控制器 1. 微程序控制的基本概念 在计算机中,一条指令的功能是通过按一定次序执行一系列基本操作完成的,这些基本操作成为微操作。前面讲到的加法指令,分成四步(取指令、计算地址、取数、加法运算)完成,每一步实现若干个微操作。 微指令:在微程序控制的计算机中,将由同时发出的控制信号所执行的一组微操作称为微指令。微指令就是把同时发出的控制信号的有关信息汇集起来而形成的。将一条指令分成若干条微指令,按次序执行这些微指令,就可以实现指令的功能。组成微指令的微操作,又称微命令 。 微程序:计算机的程序由指令序列构成,而计算机每条指令的功能均由微指令序列解释完成,这些微

46、指令序列的集合就叫做微程序 。,2019/4/16,65,5.4.2 微程序控制器 控制存储器:微程序是存放在存储器中的,由于该存储器主要存放控制命令(信号)与下一条执行的微指令地址(简称为下址),所以被叫做控制存储器。一般计算机指令系统是固定的,所以实现指令系统的微程序也是固定的,于是控制存储器可以用只读存储器实现。 执行一条指令实际上就是执行一段存放在控制存储器中的微程序。,2019/4/16,66,程序,微程序,指令,微指令,微操作,ADD AX,BX, MOV AX, 1234H MOV BX, 1235H ADD AX,BX ,取指微指令 计算地址微指令 取数微指令 运算微指令,取指

47、微指令,PCAB, W/R=0, M/IO=1, PC+1, DB IR,2019/4/16,67,2 实现微程序控制的基本原理 在图5.5中ALU可以进行加、减、逻辑加、逻辑乘四种运算。图中的控制信号用符号1,2,3,表示,其意义见表5.1 。 仍以执行一条加法指令为例,它由四条微指令解释执行,一条微指令中的所有控制信号是同时发出的。每条微指令所需的控制信号如下 :,2019/4/16,68,表5.1 控制信号一览表,2019/4/16,69,(1) 取指微指令 指令地址送地址总线:PCAB(1) 发访存控制命令:ADS(21),MIO1(22),WR0(23)。从存储器取指令送数据总线。

48、指令送指令寄存器:DBIR(5) 程序计数器+1:PC+1(3) (2) 计算地址微指令 取两个源操作数(计算地址用):rs1GR(8),(rs1)ALU(10),dispALU(4)。 加法运算:“+”(13)。 有效地址送地址寄存器:ALUAR(19)。,2019/4/16,70,存储器,I/O,取指微指令,2019/4/16,71,返回,存储器,I/O,计算地址微指令,2019/4/16,72,(3) 取数微指令 数据地址送地址总线:ARAB(20)。 发访存控制命令:ADS(21),MIO(22),W/R(23)。由存储器将数据送数据总线DB。 数据送数据寄存器:DBDR(6) (4) 加法运算和送结果微指令 两源操作数送ALU:rsGR(9),(rs)ALU(11);DRALU(12)。 加法运算:“+”(13) 送结果:ALUGR(17),2019/4/16,73,返回,存储器,I/O,取数微指令,2019/4/16,74,返回,存储器,I/O,加法运算和送结果微指令,2019/4/16

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1