计算机组成原理与系统结构 第7章_第1页
计算机组成原理与系统结构 第7章_第2页
计算机组成原理与系统结构 第7章_第3页
计算机组成原理与系统结构 第7章_第4页
计算机组成原理与系统结构 第7章_第5页
已阅读5页,还剩125页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第七章第七章 控制器控制器 控制器的组成及指令的执行控制器的组成及指令的执行7.17.1 硬布线控制器硬布线控制器 7.27.2 微程序控制器微程序控制器 7.37.3 本章小结本章小结7 71 1控制器的组成及指令的执行控制器的组成及指令的执行 基本的计算机组成和功能基本的计算机组成和功能 控制器的组成控制器的组成 时序系统时序系统 控制方式和时序的产生控制方式和时序的产生 系统结构和数据通路的设计系统结构和数据通路的设计 简单计算机系统主机各部件的实现方案简单计算机系统主机各部件的实现方案 指令的执行过程指令的执行过程 一二三四五六七一、一、基本的计算机组成和功能基本的计算机组成和功能 7

2、 71 11 1基本的计算机组成和指令系统的设计基本的计算机组成和指令系统的设计v 设计CPU的第一步就是确定它的用途。我们的目标是设计一个简单的CPU,该CPU的指令集就包含了:v 加法指令是ADD R,#data其源操作数采用立即数寻址,目的操作数采用寄存器寻址;v JMP指令是JMP addr 采用直接寻址,addr就是下一条指令的地址。v 将系统的机器字长设计为8位,地址总线和数据总线设计成8位,存储器的存储单元宽度也设计成8位。一、一、基本的计算机组成和功能基本的计算机组成和功能 v 假设指令的长度可以是单字节或双字节,将操作码设计为4位,位于指令第一个字节的高4位,指令第一个字节的

3、低4位,分别指示了源寄存器和目的寄存器,如果地址码字段是操作数的存储器地址或立即数等,则位于指令的第二字节(a)单字节指令格式 (b)双字节指令格式机器指令格式一、基本的计算机组成和功能一、基本的计算机组成和功能 v 然后我们为这个CPU设计状态图,CPU对每条指令执行的操作都可分为如下的两个过程,译码并不对应任何状态,它只是取指令结束后到各条指令的执行周期之间的一个多路选择。v 取指令周期:包括从存储器中取出一条指令,并对该指令的操作码译码;v 执行周期:执行该指令。 一、基本的计算机组成和功能一、基本的计算机组成和功能 7 71 12 2 控制器的组成控制器的组成 v 控制器的功能是:从存

4、储器中取指令、对指令译码、产生控制信号并控制计算机系统各部件有序地执行,从而实现这条指令的功能。 程序计数器(PC) 当指令顺序执行时,由PC+1产生下一条指令的地址 当遇到转移指令时,转移地址PC作为下一条指令的地址。 指令寄存器(IR) 指令译码器二、控制器的组成二、控制器的组成7 71 12 2 控制器的组成控制器的组成 操作控制信号形成部件 采用硬布线设计的操作控制信号形成部件 采用微程序设计的操作控制信号形成部件 时序信号产生器 时序信号产生器负责提供时钟信号和机器周期信号,以规定每个操作的时间。 时序信号产生器包括启停线路,负责控制时钟脉冲的送出与封锁,从而实现计算机的启动与停止。

5、 地址寄存器(AR)、数据寄存器(DR) 二、控制器的组成二、控制器的组成三、时序系统三、时序系统三级时序系统三级时序系统 三、时序系统三、时序系统 v 一个机器周期需要多少个节拍最合适,取决于该周期时间内需要顺序完成的基本操作步数,可采用下述方法来确定。 统一节拍法,以最复杂的机器周期为基准来确定节拍数,每一节拍时间的长短也以最繁琐的微操作为基准,使所有的机器周期长度相等,且每一机器周期内含有相同数目的节拍,称定长机器周期。指令周期、机器周期、时钟周期指令周期、机器周期、时钟周期三、时序系统三、时序系统 分散节拍法,根据机器周期实际的需要安排节拍数,需要多少个节拍就提供多少个节拍,称不定长机

6、器周期。 延长节拍法,大多数机器周期采用相同的基本节拍数,若某个机器周期内按规定的基本节拍数无法完成该周期的全部微操作,则可延长节拍。v 时钟周期插入,某些微型机的时序信号中不设置节拍,直接使用时钟周期信号。一个机器周期中含有若干个时钟周期,时钟周期的数目取决于机器周期内要完成的微操作个数。一个机器周期的基本时钟周期数确定后,还可以不断插入等待时钟周期。三、时序系统三、时序系统延长机器周期的时序图延长机器周期的时序图 四、控制方式和时序的产生四、控制方式和时序的产生 1. 控制方式 同步控制方式又称为固定时序控制方式或无应答控制方式。任何指令的执行或指令中每个微操作的执行都受事先安排好的时序信

7、号的控制,每个时序信号的结束就意味着一个微操作或一条指令已经完成,随即开始执行后续的微操作或自动转向下一条指令的执行。在同步控制方式中,以微操作序列最长的指令为标准,确定控制微操作运行的时钟周期数(节拍数)。控制器产生统一的、顺序固定的、周而复始的节拍电位(机器周期信号)和节拍脉冲(时钟周期信号。优点:电路简单,缺点:运行速度慢。 四、控制方式和时序的产生四、控制方式和时序的产生 异步控制方式异步控制方式又称可变时序控制方式或应答控制方式。每条指令需要多少节拍,就产生多少节拍;当指令执行完毕,发出回答信号;控制器收到回答信号时,才开始下条指令的执行。优点:每条指令都可按其实际需要的时间分配节拍

8、,使得指令的运行效率高;缺点:控制器的电路比较复杂。异步控制方式在计算机中得到广泛的应用。例如CPU对内存的读写;I/O设备与内存的数据交换等都采用异步控制方式,以保证高速度的执行。 四、控制方式和时序的产生四、控制方式和时序的产生 联合控制方式 把同步控制方式和异步控制方式结合使用的一种方式。大部分指令安排在统一的机器周期内完成,即同步控制;而将较少数特殊指令,或微操作序列过长或过短,或微操作时间难以确定的,采用异步控制来完成。 现代计算机系统大多采用联合控制方式,其一般设计思想是,在功能部件内部采用同步控制方式,而在功能部件之间采用异步控制方式。 优点:能保证一定的运行速度 缺点:控制电路

9、设计相对比较复杂。 四、控制方式和时序的产生四、控制方式和时序的产生2. 时序脉冲发生器和启停控制时序脉冲发生器就是根据时钟产生一定频率的节拍脉冲信号作为整个机器工作的时序信号;启停控制电路是保证在适当的时刻准确可靠地开启或封锁计算机工作时钟,以控制微操作命令序列的产生或停止,从而启动或停止计算机的运行。通常用访问一次主存取指或取数据的时间来作为机器周期的基本时间。若个别操作不能完成的可采用增加机器周期或者采用应答方式来解决。控制器的时钟输入实际上是节拍脉冲序列,其频率即为机器的主频。 五、系统结构和数据通路的设计五、系统结构和数据通路的设计 v 一般地,对于数据通路的设计,可以有两种不同的方

10、案:v 第一种是在所有需要传送数据的部件之间创建一条直接通路,这种方案对于很小的计算机系统来说是可行的,但是如果所要设计的CPU的复杂度增加的话,用这种方案来设计数据通路将变得越来越不现实。v 第二种方案是在CPU内部创建一条总线,并且在各个部件之间使用总线来传递数据。选择第二种方案,勾画出简单计算机系统的结构得到访存的数据通路如下:v存储器读操作: 送地址到CPU片内总线,并打入地址寄存器AR;控制器发送存储器读信号,启动存储器读操作,并将读出的数据从数据总线上接收至数据寄存器DR。得到访存的数据通路如下:v存储器写操作存储器写操作: 送地址到送地址到CPUCPU片片内总线,并打内总线,并打

11、入地址寄存器入地址寄存器ARAR; 送数据到送数据到DRDR,DRDR将数据送到将数据送到数据总线,控数据总线,控制器发送存储制器发送存储器写信号,启器写信号,启动存储器写操动存储器写操作。作。v 细化图中的运算部件,发现还需要不止一个寄存器以便暂时保存数据,这些寄存器称为通用寄存器,通常CPU会把它们中的一个命名为累加器(AC),它与其他的寄存器有些许的不同,但是对这个系统来说,并不一定要有个专门的AC,结合第四章所学的定点运算器内部单总线结构和通路,画出系统运算部件的内部结构图,如图所示。运算部件内部结构图运算部件内部结构图 五、系统结构和数据通路的设计五、系统结构和数据通路的设计 简化后

12、的简单计算机系统的结构图简化后的简单计算机系统的结构图BIUBIU简化为简化为:与外部地址总线连接的是:与外部地址总线连接的是ARAR,与外部数据总,与外部数据总线连接的是线连接的是CPUCPU内部总线;因此,内部总线;因此,省略了省略了DRDR。于是把片外。于是把片外的数据总线和的数据总线和CPUCPU片内总线合并成一条总线,称之为片内总线合并成一条总线,称之为数据数据总线总线DBDB 五、系统结构和数据通路的设计五、系统结构和数据通路的设计 简化结构图上访存的数据通路:v 存储器读操作: 送地址到CPU片内总线,并打入地址寄存器AR; 控制器发送存储器读信号M-R# =0,启动存储器读操作

13、,并将读出的数据从数据总线上接收至目的寄存器。v 例如取指令操作简化结构图上访存的数据通路:v 存储器写操作: 送地址到CPU片内总线,并打入地址寄存器AR; 将数据送到数据总线,控制器发送存储器写信号M-W# =0,启动存储器写操作。ALU的数据通路:v 运算器的运算操作: 送第一个数据到总线,并打入ALU暂存器DA1(或DA2); 送第二个数据到总线,且打入ALU暂存器DA2(或DA1); 发送运算器功能选择信号,控制ALU进行某种运算,并将结果通过数据总线DB送目的部件(例如某通用寄存器)。六、简单计算机系统主机各部件的实现方案v 1.运算器 8位的算术逻辑运算器,2个暂存器为DA1和D

14、A2,控制信号用B-DA1和B-DA2,在输出端用一个三态门控制数据是否送上总线,控制信号是ALU-B#,S0S3、M、Ci是该ALU的运算选择信号。 R0-B#R3-B#分别是读R0R3的控制信号,B-R0B-R3分别是写R0R3的控制信号。六、简单计算机系统主机各部件的实现方案v 2.控制器 程序计数器PC,PC-B#是将PC值送上数据总线的控制信号,PC+1是PC的自增1控制信号。B-PC#信号控制将数据总线的值送入PC。当把数据总线上的值送入PC的时候,需要控制信号B-PC#=0且PC+1有效,因为打入脉冲可以由PC+1提供。 地址寄存器AR的输入控制信号是B-AR,地址寄存器IR的输

15、入控制信号是B-IR。v 3.存储器v 用一片SRAM芯片就可以满足存储需要v SRAM芯片存储单元是字节。v 用两个信号M-R#和M-W#来控制读和写这个存储器。六、简单计算机系统主机各部件的实现方案七、指令的执行过程七、指令的执行过程v 把指令具体化,对于加法指令(ADD R,#data)具体化为ADD R0, 06Hv 对于无条件跳转指令(JMP addr)具体化为JMP 04Hv 根据所设计的指令格式,它们都应该是双字节的指令v 假如加法指令的操作码是0101,则加法指令ADD R0, 06H对应的机器码是50H50H和和06H06H;v 假如无条件跳转指令的操作码是1000,则无条件

16、跳转指令JMP 04H对应的机器码是80H80H和和04H04H;(a)单字节指令格式 (b)双字节指令格式机器指令格式七、指令的执行过程七、指令的执行过程v 假设它们已经在存储器中了,且位于地址04H07H的单元内,下表给出了这两条指令的内容和在存储器中的位置。存放在存储器中的二条指令内容存放在存储器中的二条指令内容指令地址指令机器码助记符0000 01000101 0000ADD R0, 06H0000 01010000 0110立即数0000 01101000 0000JMP 04H0000 01110000 0100转移地址1、取指令 控制器先将第一条指令的地址置入PC PC将当前指令

17、的地址送到地址寄存器AR,同时程序计数器PC的内容递增以指向下一条指令的地址; AR的输出通过地址总线送到存储器的地址端,指明指令所在的地址单元,控制器发出读控制信号,控制从存储器中读出这条指令; 该指令通过数据总线送到指令寄存器IR。 指令取到指令寄存器IR后,指令译码器对其译码; 指令译码器将译码结果传递给操作控制信号形成部件,至此,取指令的过程完成。执行指令v操作控制信号形成部件根据指令译码信息和时序周期信号,发出该指令所需的所有部件的有一定时序关系的控制信号序列,完成指令的执行。执行指令与指令的内容有很大的关系。取加法指令v PC置为04H,并送到AR,AR的地址通过AB送到存储器的地

18、址端,PC+1,指向05H,以准备取立即数;v 控制器读,将该地址单元的内容50H读出,通过DB送到IR,IR中的指令送到指令译码器ID进行译码,将结果信息送到操作控制信号形成部件;ADD R0, 06H执行ADD指令v 将PC的内容05H送到AR,同时PC+1;v 从存储器05H单元中读出操作数,送到暂存器DA1;v 根据IR中的低4位,由寄存器地址译码后,寻址源操作数寄存器为R0,从R0中取出另一操作数,送DA2;v 在ALU中进行加法运算,并将结果送到目的寄存器R0中存放ADD R0, 06H执行执行JMPJMP指令的过程指令的过程 v 转移指令是将程序转移到04H地址的指令去执行。v

19、执行指令阶段将PC的内容07H送到AR,同时PC+1;v 控制器发读信号,从存储器07H单元中读出转移地址,并通过数据总线送到PC,即实现转移操作。 JMP 04H简单简单CPUCPU的状态图的状态图 v 每个方框和菱形框代表了每个方框和菱形框代表了CPUCPU的一个状态的一个状态v 简单简单CPUCPU其实就是一个仅其实就是一个仅具有具有8 8个状态的有限状态个状态的有限状态机。机。v 当执行了某个状态中的微当执行了某个状态中的微操作时,操作时,CPUCPU就从一个状就从一个状态转移到了另一个状态。态转移到了另一个状态。7.2 7.2 硬布线控制器硬布线控制器v 硬布线控制器的基本原理是根据

20、指令的要求、当前的时序及外部和内部的状态情况,按时间的顺序发送一系列微操作控制信号。它由复杂的组合逻辑门电路和一些触发器构成,因此又称为组合逻辑控制器,或常规逻辑控制器。7.2 7.2 硬布线控制器硬布线控制器 控制器的设计方法控制器的设计方法一一 硬布线控制器的结构与原理硬布线控制器的结构与原理二二 硬布线控制器的时序系统硬布线控制器的时序系统三三 硬布线控制器设计举例硬布线控制器设计举例四四一、控制器的设计方法一、控制器的设计方法v 1、硬布线控制器的设计步骤: 确定指令系统,包括指令系统中每条指令的格式、功能和寻址方式。 围绕着指令系统的实现,确定CPU的内部结构,包括运算器的功能和组成

21、,控制器的组成及它们的连接方式和数据通路,同时也确定时序系统的构成。 分析每条指令的执行过程,按机器周期顺序,写出所必需发送的微操作控制信号序列。 综合每个微操作控制信号的逻辑函数,化简和优化。 用逻辑电路实现。一、控制器的设计方法一、控制器的设计方法v 1、微程序控制器的CPU的设计步骤: 确定指令系统,包括指令系统中每条指令的格式、功能和寻址方式,分配操作码。 围绕着指令系统的实现,确定CPU的内部结构,包括运算器的功能和组成,控制器的类型、结构组成及各部件的连接方式和数据通路,同时也需要确定时序系统的构成。 在以上基础上,分析每条指令的执行过程,画出指令系统的微程序流程图。一、控制器的设

22、计方法一、控制器的设计方法v 2、微程序控制器的CPU的设计步骤: 根据CPU的结构,写出每条微指令所发送的微操作控制信号序列。 结合微程序控制器的结构、微操作控制信号序列和控制存储器容量,设计微指令格式。 分配微程序流程图中各微指令的微地址,并编写微指令代码。 将所有的微指令代码装入控制存储器的相应单元。一、控制器的设计方法一、控制器的设计方法v 3、需要注意两点: 在一个CPU中,既可以使用硬布线控制器,也可以同时使用微程序控制器;在现代的RISC技术中,通常采用硬布线方法实现占绝大多数的简单指令,而采用微程序控制的方法实现少数复杂指令的功能。 在上述设计步骤中,不是单向线性的过程,而可能

23、会交错进行 二、硬布线控制器的结构与原理二、硬布线控制器的结构与原理 经指令译码器译码产生的指令信息Im 时序系统产生的机器周期信号Mn和节拍信号Tn,用于指出当前处于哪一个机器周期和哪一个节拍。 状态寄存器的状态信号Sx 外部控制、状态信号Ej硬布线控制器的组成 二、硬布线控制器的结构与原理二、硬布线控制器的结构与原理v 微操作控制信号Ci 一部分送到一部分送到CPUCPU外部构成系统总线的控制总线;外部构成系统总线的控制总线; 另一部分则送到另一部分则送到CPUCPU内部供使用。内部供使用。v 从逻辑函数的角度来看,输出微操作控制信号Ci是4种输入信号的函数: Ci=fi(Im,Mn,Tn

24、,Sx,Ej)v 设计硬布线控制器的过程,也就是求出每个微操作控制信号Ci的逻辑函数fi的过程。三、硬布线控制器的三、硬布线控制器的时序系统 v三级时序:指令周期三级时序:指令周期机器周期机器周期节节拍拍指令周期、机器周期与节拍 三、硬布线控制器的三、硬布线控制器的时序系统v 机器周期信号一般可以采用计数器输出译码方式产生。机器周期信号产生电路采用计数器输出译码方式产生机器周期信号。假设某机器的指令系统有两条指令:指令A包含三个机器周期,指令B包含四个机器周期三、硬布线控制器的三、硬布线控制器的时序系统表7.2列出了产生两条指令所需的机器周期信号时的计数器状态。其中Q1 ,Q2表示当前周期计数

25、器状态输出,Q1 ,Q2表示下一个周期计数器状态输出。三、硬布线控制器的三、硬布线控制器的时序系统根据真值表列出计数器的输出表达式,对于指令根据真值表列出计数器的输出表达式,对于指令A A,其,其表达式为表达式为 对于指令B,其表达式为: 121212211QQQQQQQQQ121212221211QQQQQQQQQQQQ122211QQQBQQAQ122211)(QBAQQBQQAQ所以:三、硬布线控制器的三、硬布线控制器的时序系统两条指令的机器周期产生电路 三、硬布线控制器的三、硬布线控制器的时序系统v 当执行指令A时,产生机器周期信号M0、M1、M2;v 而当执行指令B时,产生机器周期信

26、号M0、M1、M2、M3。ADD指令的第一个字是操作码和寄存器地址,第二个字是立即数。JMP指令第一个字是操作码,第二个字是转移的直接地址。四、硬布线控制器设计举例四、硬布线控制器设计举例设计实现ADD和JMP指令的硬布线控制器1.1. 指令系统指令系统四、硬布线控制器设计举例四、硬布线控制器设计举例2.2. CPUCPU及模型计算机系统结构及模型计算机系统结构模型计算机的系统结构框图 四、硬布线控制器设计举例四、硬布线控制器设计举例四、硬布线控制器设计举例四、硬布线控制器设计举例3.3. 指令执行过程指令执行过程v将ADD指令执行分为6个机器周期完成:第一个机器周期M0实现将当前指令地址(程

27、序计数器内容)送地址寄存器,且程序计数器指向指令下一字地址;第二个机器周期M1完成从内存中取出指令送指令寄存器,并由指令译码器译码;第三个机器周期M2实现将指令第二个字的地址送地址寄存器,且使程序计数器指向下一条指令地址;第四个机器周期M3完成从内存取出指令的第二个字即立即数,并送运算单元ALU;第五个机器周期M4完成将另一个操作数R0的内容送运算单元ALU;第六个机器周期M5完成运算单元的加法操作并将结果存放在寄存器R0 四、硬布线控制器设计举例四、硬布线控制器设计举例v将JMP指令执行分为4个机器周期完成:第一和第二个机器周期完成与ADD指令一样(该机器所有指令都相同)的操作,也就是取指令

28、的操作。第三个机器周期M2实现将指令的第二个字地址送地址寄存器,且使程序计数器指向下一条指令地址;第四个机器周期M3完成从内存取出指令的第二个字即转移地址送PC,实现转移。列出ADD和JMP指令的执行过程如下:M0: PCAR,PC+1PC;(取指令地址)M1: RAMIR, J1#;(取指令并译码)ADDM2: PCAR,PC+1PC;(取指令第二字地址)ADDM3: RAMALU;(取数据)ADDM4: RiALU;(送寄存器数据)ADDM5: ALU(+)Ri ;(计算并存结果)四、硬布线控制器设计举例四、硬布线控制器设计举例:M0: PCAR,PC+1PC;(取指令地址)M1: RAM

29、IR,J1#;(取指令并译码)JMPM2: PCAR,PC+1PC;(取指令第二字地址)JMPM3: RAMALU;(取转移地址)JMPM4: ALUPC;(执行转移)四、硬布线控制器设计举例四、硬布线控制器设计举例四、硬布线控制器设计举例四、硬布线控制器设计举例v取指令公操作:取指令公操作: M0:PC-B#,B-AR,PC+1; M1:M-R# ,B-IR,;vADDADD指令:指令: ADDM2: PC-B# ,B-AR,PC+1; ADDM3: M-R# ,B-DA1; ADDM4:R0-B#,B-DA2; ADDM5:ALUS3S2S1S0MCi(F=A加B),ALU-B#,B-R0

30、;vJMPJMP指令:指令: JMPM2: PC-B# ,B-AR,PC+1; JMPM3: M-R# ,B-PC#; 四、硬布线控制器设计举例四、硬布线控制器设计举例4.4. 综合微操作控制信号的逻辑函数综合微操作控制信号的逻辑函数 v 注意: 假设某个微操作控制信号必须在某个机器周期内的Tn时刻有效,则该信号表达式还要和Tn时钟周期信号相与。四、硬布线控制器设计举例四、硬布线控制器设计举例4.4. 综合微操作控制信号的逻辑函数综合微操作控制信号的逻辑函数 v 注意: 当指令系统被扩充时,按照上述方法写出新指令的机器周期序列和微操作控制信号序列,然后重新更新相关微操作控制信号的逻辑函数,即可

31、能添加新的或项;四、硬布线控制器设计举例四、硬布线控制器设计举例4.4. 综合微操作控制信号的逻辑函数综合微操作控制信号的逻辑函数 v 注意:v 对各信号的逻辑函数进行化简、优化。这种化简不仅要从逻辑代数的角度来进行,还要从指令系统的整体逻辑关系上来考虑。四、硬布线控制器设计举例四、硬布线控制器设计举例v5 5、逻辑实现、逻辑实现模型计算机的硬布线控制器的电路框图 四、硬布线控制器设计举例四、硬布线控制器设计举例v指令如何被执行的呢?首先,开机上电后,硬件产生Reset信号,该信号使得PC置初值,即为第一条指令在内存中的地址;同时,时序电路开始工作,机器周期计数器被清零,即产生的第一个机器周期

32、信号为M0。M0信号送入操作控制信号形成部件后,由图中的逻辑可知,驱动1号或非门输出0,则信号=0、B-AR=1、PC+1=1,这些信号发送到相应的部件后,也就执行了送指令地址的操作:PCAR,PC+1PC;M0机器周期结束后,进入M1机器周期,此时M1=1,同上,它驱动7号和9号门输出信号=0、B-IR=1、=0,也即执行了取指令到IR并译码的工作;四、硬布线控制器设计举例四、硬布线控制器设计举例v指令如何被执行的呢?指令译码器译码使得相应指令信号线输出为有效。假设此时取到的是JMP指令,则JMP信号有效,送入时序系统后,时序电路则按照JMP指令所需的机器周期序列将会顺序产生M2、M3、M0

33、。由于JMP=1,M2=1,表明此时进入JMP指令的M2机器周期,这两个信号驱动4号和1号、2号门,同样产生信号=0、B-AR=1、PC+1=1,执行送指令(第二字)地址的操作:PCAR,PC+1PC;M2机器周期结束,进入M3机器周期,而JMP仍旧有效(IR内容没有更改),则将驱动5号和7号、8号门,产生信号=0,=0,也就是从内存读出指令第二字(转移地址)送入PC,实现转移。至此JMP指令周期已结束,按照JMP指令的机器周期序列,下一个机器周期是M0,即又进入取指令机器周期了,回到(2),如此这般,循环往复,直至电源断电。7.3 7.3 微程序控制器微程序控制器 微程序控制的基本概念和工作

34、原理微程序控制的基本概念和工作原理 简单微程序控制器的设计简单微程序控制器的设计 微程序设计技术微程序设计技术 微程序控制方式下模型机的设计实例微程序控制方式下模型机的设计实例 模型机微程序设计模型机微程序设计 微程序控制器与硬布线控制器的比较微程序控制器与硬布线控制器的比较 一二三四五六v 微地址寄存器AR、控制存储器(简称控存)、微指令,微地址,微命令,微操作,微周期,微程序v 微程序设计思想就是每条机器指令的功能都用一段相应的微程序来实现,在微程序设计中充分运用了软件的程序设计技术,使得微程序流程中也有微程序分支、微程序循环、微子程序等。一、微程序控制的基本概念和工作原理一、微程序控制的

35、基本概念和工作原理v 下址的生成方法有多种,常用的有以下四种: 第一种,下址就是控制存储器中的下一个地址,在这种情况下,控制器通常的实现方法是把当前地址加1来作为下址; 第二种,下址是由当前微指令提供的一个绝对控存地址,这个绝对地址可能是后继微地址的全部,也可能是后继微地址的一部分,在微程序发生转移的情况下,这种方法是很有效的;下址的生成方法 第三种,根据机器指令操作码产生该指令对应的微程序入口地址(指令译码),通常这个工作由映象逻辑(mapping logic)来完成,指令操作码输入映象逻辑后,硬件将操作码映射成该指令对应执行指令周期中的第一条微指令的地址,即微程序入口地址,将微程序入口地址

36、装入微地址寄存器就可以转入到正确的微程序。显然,对于整条指令来说,这种映象逻辑只用一次。 第四种,当调用微子程序时,其返回地址存储在微子程序寄存器或硬件堆栈里,微子程序寄存器或硬件堆栈都可以形成下址。下址的生成方法微程序控制器的基本工作原理v 描述如下:v 开机后首先使微地址寄存器置为取指令的第一条取指令的第一条微指令地址微指令地址,从控制存储器中取出第一条微指令,完成PCAR、PC+1操作,然后根据微指令的下址字段分别取出第二条微指令,完成RAMIR从内存中读出指令送指令寄存器IR,并且发译码信号使指令译码器工作,即形成该指令的执行指令阶段的微程序入口地址,从控存中取出该指令执行时的第一条微

37、指令送到微指令寄存器,发出控制信号(微命令)实现微操作;然后该指令执行时的其余微指令地址是当前微地址加1或由当前微指令下址字段确定,依次从控存中取出其余微指令,实现该指令所需的所有微操作,即完成了该指令的执行。每一条指令的最后一条微指令执行完后均会回到取指令的第一条微指令执行,以取下一条指令,如此重复,直至用户要运行的程序指令执行完为止。二、简单微程序控制器的设计二、简单微程序控制器的设计 v微程序控制器的设计微程序控制器的设计主要完成两个任务:主要完成两个任务:1.1. 产生正确的微命令;产生正确的微命令;2.2. 产生正确的微指令序产生正确的微指令序列(即上述列(即上述CPUCPU状态状态

38、转换序列)。转换序列)。v怎样采用微程序控制怎样采用微程序控制的方法来设计的方法来设计CPUCPU呢?呢?简单微程序控制器的组成框图 简单计算机系统的结构和数据通路简单计算机系统的结构和数据通路用微控方法来设计简单计算机系统的用微控方法来设计简单计算机系统的CPU CPU v 简单计算机系统的指令集:简单计算机系统的指令集:ADDADD和和JMPJMPv CPUCPU的有限状态机只有的有限状态机只有8 8个个状状态,可能产生态,可能产生8 8个个下址。下址。v 在取指令周期的第二个状态在取指令周期的第二个状态(RAMRAMIRIR,指令译码)之,指令译码)之后的微地址有两种可能性,后的微地址有

39、两种可能性,微控器采用微控器采用指令译码指令译码来产生来产生下一微地址下一微地址v ADDADD和和JMPJMP指令的最后一个状指令的最后一个状态采用第二种方法即态采用第二种方法即当前微当前微指令提供下一微地址指令提供下一微地址v 其余状态下均把当前微其余状态下均把当前微地址地址加加1 1来作为下一微地址。来作为下一微地址。简单微控器的微程序流程图 简单微控器中微指令的下址设计表简单微控器中微指令的下址设计表 v J1#=0J1#=0表示下址来源是指令译码,表示下址来源是指令译码,J1#=1J1#=1表示下址来源由微指令的下址字段提供表示下址来源由微指令的下址字段提供简单微控器的微程序流程图

40、简单计算机系统的控制信号一览表简单计算机系统的控制信号一览表 简单微控器中微指令的格式简单微控器中微指令的格式 ADD指令的微指令 简单微控器中微指令的格式简单微控器中微指令的格式 JMP指令的微指令 三、微程序设计技术三、微程序设计技术 v 进行微程序设计时,应考虑以下因素:进行微程序设计时,应考虑以下因素: 有利于缩短微指令字长; 有利于减少控制存储器的容量; 有利于微程序的执行速度; 有利于对微指令的修改; 有利于微程序设计的灵活性。三、微程序设计技术三、微程序设计技术 微指令的编译法微指令的编译法 1 微指令下址字段设计方法微指令下址字段设计方法 2 微指令格式的类型微指令格式的类型

41、3 微程序控存和动态微程序设计微程序控存和动态微程序设计 4 毫微程序设计毫微程序设计 51 1、微指令的编译法、微指令的编译法 (1)直接控制法直接控制法 (2)字段直接编译法字段直接编译法 (3)字段间接编译法字段间接编译法 (1 1)直接控制法)直接控制法v 在微指令的控制字段中,每一位代表一个微命令(控制信号),在设计微指令时,如果要发出某个微命令则将控制字段中对应位置有效,这样就可以打开或关闭某个控制门,这就是直接控制法直接控制法。如果是编码控制则置相应编码值。v 缺点:微指令的控制字段太长(2 2)字段直接编译法)字段直接编译法v 如果有一组微命令,在任一个微周期(一条微指令所需的

42、执行时间)只有一个微命令起作用,那么这一组微命令是互斥的;通常将在同一个微周期中不能同时出现的微命令称为相斥性微命令,而将在同一个微周期中可以同时出现的微命令称为相容性微命令。v字段直接编译法的分段原则是:相斥性微命令分在同一字段同一字段内,相容性微命令相容性微命令分在不同字段不同字段内。一般将同类操作中互斥的微命令划分在一个字段内,这样使微指令结构清晰,易于编制微程序和易于扩充功能。每个小字段的信息位不能太长,一般不超过不超过6 6位位,否则将增加译码线路的复杂性和译码时间。(2 2)字段直接编译法)字段直接编译法举例:用微指令的编译法设计简单微控器的微指令格式用微指令的编译法设计简单微控器

43、的微指令格式v 重新设计的简单微控器的微指令格式如表7.7所示,其中BTO和OTB字段编码表如表7.8所示,由此就把微指令的长度从28位缩短到了17位。字段直接编译法设计的字段直接编译法设计的ADDADD指令的微指令指令的微指令 字段直接编译法设计的字段直接编译法设计的JMPJMP指令的微指令指令的微指令 (3 3)字段间接编译法)字段间接编译法 v 指某字段的编码含意,除了其本身的编码外,还需要指某字段的编码含意,除了其本身的编码外,还需要由另一字段来加以解释的编码方法,由另一字段来加以解释的编码方法,v 字段间接编译法是在字段直接编译法的基础上,进一字段间接编译法是在字段直接编译法的基础上

44、,进一步缩短微指令字长的一种编译法。步缩短微指令字长的一种编译法。v 举例:举例: 用字段间接编译法来进一步设计简单微控器的微指令格式 字段间接编译法举例字段间接编译法举例字段直接编译法的微指令各字段编码及微命令 用字段间接编译法设计的用字段间接编译法设计的ADDADD指令的微指令的微指令指令 用字段间接编译法设计的用字段间接编译法设计的JMPJMP指令的微指令指令的微指令 2 2、微指令下址字段设计方法、微指令下址字段设计方法 (1)微程序入口地微程序入口地址的产生址的产生 微指令下址字段微指令下址字段设计方法设计方法(2)后继微地址的后继微地址的产生产生 (1 1)微程序入口地址的产生)微

45、程序入口地址的产生v 指令译码产生相应微程序入口地址如果采用PROM来实现,这种PROM称为映射存储器(MAPROM),它是将机器指令的操作码映射成该指令对应的微程序入口地址。v 指令译码产生相应微程序入口地址也可以采用逻辑电路来实现。v 举例:简单计算机需要执行多于两条指令举例:简单计算机需要执行多于两条指令 指令译码的规则是根据操作码操作码I7-I2I7-I2进行散转a) 当I7 I611时,微程序入口地址的逻辑表达式是MA6 MA5 MA4 I7 I6 I5 I4;b) 当I7 I6=11时,微程序入口地址的逻辑表达式是MA6 1 MA4 I5 I4 I3 I2。c) MA6 MA0是微

46、指令的下址字段。 采用逻辑电路产生微程序入口地址,在T4时钟周期进行指令译码指令译码产生微程序入口地址的逻辑电路图指令译码产生微程序入口地址的逻辑电路图 (2 2)后继微地址的产生)后继微地址的产生A.计数器方式计数器方式 后继微地址后继微地址的产生的产生B.判定方式(判定方式(下址字段法)下址字段法) A.A.计数器方式计数器方式v 在微程序控制器单元中设置一个微程序计数器PC, 在顺序执行微指令时,后继微指令地址由现行微地址加上一个增量(通常为1)来产生。 遇到转移时,由微指令给出转移地址,使微程序按新的微地址顺序执行。v 这种方式下微程序流控制由两部分信息确定:转移控转移控制字段制字段B

47、CFBCF和转移地址字段转移地址字段BAFBAF,其微指令格式 转移地址BAF用于给出微指令转移的部分微地址 转移控制字段BCF用来确定后继微地址是顺序执行还是条件转移。 当微程序转移条件成立时,将BAF送PC,否则顺序执行下一条微指令(PC1) 计数器方式产生后继微地址的原理图计数器方式产生后继微地址的原理图 计数器方式产生后继微地址的工作过程计数器方式产生后继微地址的工作过程v 机器加电后执行的第一条微指令地址,也就是取指令的微程序起始地址由硬件电路置入PC中,顺序执行取指令微程序,实现从主存中取出机器指令送指令寄存器IR;然后,由机器指令操作码译码后产生相应微程序入口地址,接下去若顺序执

48、行微指令,则将PC1作为后继微地址;若遇转移类微指令而且转移条件满足,则由BAF和PC组合产生后继微地址,否则PC1。这样,直至一段微程序执行完毕,完成一条机器指令为止;重复又转入取指令微程序计数器方式的优、缺点计数器方式的优、缺点v 计数器方式产生后继微地址的优点:微指令字较短,便于编写微程序,后继微地址产生机构比较简单;v 缺点:执行速度相对较慢,因为计数器方式不易于直接实现各测试条件的多路转移,在编写微程序中,由于频繁地用到非顺序的微指令,在微程序中要插入很多的转移微指令,这样会影响微程序的执行速度。这种方式的微程序即要满足地址递增顺序,又要满足灵活地转向各种共用微程序与微子程序入口的要

49、求,因此微程序在控制存储器中的物理分配不方便,需合理安排、调整。 B.B.判定方式(下址字段法)判定方式(下址字段法)v 判定方式其后继微指令地址可由设计者指定或设计者指定的测试判别字段控制产生。 当微程序不产生分支时,后继微指令地址直接由微指令的下址字段给出; 当微程序出现分支时,按测试判别字段和状态条件通过逻辑电路来形成后继微地址。v 这种方式要在微指令格式中设置一个字段用来指明下一条要执行的微指令地址,所以也称为下址字段法。v 在这种方式中,因为每一条微指令至少都是一条无条件转移微指令,因此不必设置专门的转移微指令。 判定方式产生后继微地址的原理图判定方式产生后继微地址的原理图 v 判定

50、方式的优点:可以实现快速多路分支,以提高微程序的执行速度,微程序在控制存储器中的物理分配方便,微程序设计灵活;v 缺点:微指令字加长,形成后继微地址的结构比较复杂。3 3、微指令格式的类型、微指令格式的类型 水平型微指令水平型微指令 v基本特征是:一条微指令能控制数据通路中多个功能部件并行操作。v优点:一条微指令可同时发许多个微命令,且微指令控制字段直接控制,微指令执行效率高,速度快,灵活,各部件执行操作的并行能力强;编制的微程序比较短。v缺点:微指令字太长,明显地增加了控制存储器的横向容量。3 3、微指令格式的类型、微指令格式的类型 垂直型微指令垂直型微指令 v采用完全编码的方法,将一套微命

51、令代码化构成微指令。因此,一条微指令只能控制12种微操作,类似机器指令,由微操作码、源地址和目标地址以及其他附带信息,垂直型微指令的格式v垂直型微指令比较直观,容易掌握和便于使用。微指令字短,减少了横向控制存储器的容量。v缺点是:微指令要经过译码才能发出微命令,微指令的执行效率低,并行操作性比较差,解释一条机器指令或完成某种功能所需要的微指令条数增多,增加了纵向微程序容量。 4 4、微程序控存和动态微程序设计v在一台微程序控制的计算机中,假如能根据用户的要求改变微程序,那么这台机器就具有动态微程序设计功能。v动态微程序设计的目的是使计算机能更灵活、更有效地适应于各种不同的应用场合。 v动态微程

52、序设计要求用户对计算机硬件组成结构非常熟悉,因此真正由用户自行编写微程序是很困难的,所以尽管设想很好,实事上是难以推广,一般要由机器设计人员才能设计实现。 5 5、毫微程序设计、毫微程序设计毫微程序控制器结构 四、微程序控制方式下模型机的设计实例四、微程序控制方式下模型机的设计实例 指令格式指令格式1 微指令格式微指令格式2 指令译码器指令译码器 3 微程序控制器微程序控制器 41 1、指令格式、指令格式 格式一:一般指令格式 格式2:带寻址方式码的指令格式 格式3:三字节指令 格式4:操作码扩展指令格式 微程序控制方式下模型机的框图微程序控制方式下模型机的框图2 2、微指令格式、微指令格式微

53、指令字段编码表 模型机微指令格式 3 3、指令译码器、指令译码器 指令译码及后继微地址的转移控制逻指令译码及后继微地址的转移控制逻辑辑 3 3、指令译码器、指令译码器 v 微程序的后继微地址的控制原理总结如下:微程序的后继微地址的控制原理总结如下:J1# =0时,根据机器指令的操作码(OP)I7I4进行散转,产生该条指令的微程序入口地址,散转微地址确定如下: 若I7=1且I6=1,则1MA5,否则MA5不变; 若I7 I6= 10 或I7 I6 I5=111,则1MA3,否则MA3不变; 若I7 I6= 01或I7 I6 I4= 111,则1MA2,否则MA2不变; 若I7 I6 I5=001

54、或011或101,或I7 I6 I3 = 111,则1MA1,否则MA1不变; 若I7 I6 I4 = 001或011或101,或I7 I6 I2 = 111,则 1MA0,否则MA0不变;3 3、指令译码器、指令译码器 v 微程序的后继微地址的控制原理总结如下:微程序的后继微地址的控制原理总结如下:J2# =0时,根据机器指令码I3I2进行译码,转移至相应指令的微程序段,主要应用于含寻址方式码(MOD)的机器指令,在这些指令中,I5I4为寻址方式码(MOD),I7I6和I3I2为操作码OP: 若I3=1,则1MA1,否则MA1不变; 若I2=1,则1MA0,否则MA0不变;J3# =0时,根

55、据开关K2、K1状态进行转移;主要应用于控制台操作指令。 若K2 =0,则1MA1,否则MA1不变; 若K1 =0,则1MA0,否则MA0不变;3 3、指令译码器、指令译码器 v 微程序的后继微地址的控制原理总结如下:微程序的后继微地址的控制原理总结如下:J2# =0时,根据机器指令码I3I2进行译码,转移至相应指令的微程序段,主要应用于含寻址方式码(MOD)的机器指令,在这些指令中,I5I4为寻址方式码(MOD),I7I6和I3I2为操作码OP: 若I3=1,则1MA1,否则MA1不变; 若I2=1,则1MA0,否则MA0不变;3 3、指令译码器、指令译码器 v 微程序的后继微地址的控制原理

56、总结如下:微程序的后继微地址的控制原理总结如下:J4# =0时, 根据条件FC或FZ进行转移;主要应用于条件转移指令JZC或JZ或JC。 若FC =1,则1MA1,否则MA1不变; 若FZ =1,则1MA0,否则MA0不变; J5# =0时,根据中断请求信号INT是否有效,确定转移。若INT=1,则1MA5,否则MA5不变。4 4、微程序控制器、微程序控制器 微程序控制器的逻辑框图微程序控制器的逻辑框图 指令寄存器IR 指令译码(后继微地址转移控制电路) 控制存储器CMv 只读,能存放24位的微指令。高17位送IR保存并译码,低7位(下址字段)则送后继微地址转移控制逻辑产生后继微地址。4 4、

57、微程序控制器、微程序控制器 微程序控制器的逻辑框图微程序控制器的逻辑框图 微指令寄存器IR和微指令译码器v IR从控存CM中读出的高17位的微码。其中M13M8是直接控制的信号,M23M9是经过微指令译码器译码后产生控制信号。 控存地址寄存器CMARv 该部件的主要功能是,由输入信号SE6#SE0#控制修改当前微指令(从控存CM中读出)的下址字段M6M0(即MA6MA0),以产生下条微指令的控存地址,即后继微地址。 五、模型机微程序设计五、模型机微程序设计 1.1. 自行设计模型机及其新指令的微程序段自行设计模型机及其新指令的微程序段设计的步骤为: 设计实验模型机的结构和数据通路; 设计指令的

58、功能、格式(包括指令码)及寻址方式; 在以上的基础上,编写微程序流程图; 根据指令码和转移方式J1#J5#,分配微地址及下址字段。 根据微指令格式,编写微指令代码; 五、模型机微程序设计五、模型机微程序设计2.2. 微程序流程图的编写微程序流程图的编写 机器指令的功能由微程序完成,一条机器指令对应着一段微程序。每条指令的微程序都包含三部分:取指令微程序段、根据操作码转移至微程序入口的微指令、该机器指令的独立微程序段。但是每一条指令的前两部分都相同,称作公共操作,不同的是第三部分的独立微程序段,取决于该机器指令的寻址方式和功能,用于实现指令规定的特殊功能。 五、模型机微程序设计五、模型机微程序设计2.2. 微程序流程图的编写微程序流程图的编写 每条微指令可以实现总线上的一个数据传送(例如PCAR),或者进行运算器的一个运算(例如DA1+DA2DR),或者启动存储器的一个读/写(例如RAMDR)。按照每条机器指令的功能,可以将各种操作归纳为以下两种:a) 通用寄存器之间的传送操作:源寄存器数据送总线,而目的寄存器从总线上接收数据。b) 存储器读、写访问操作和运算器的运算操作。五、模型机微程序设计五、模型机微程序设计2.2. 微程序流程图的编写微程序流程图的编写 对于带寻

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论