1、第五章第五章 控制方式与控制控制方式与控制器器 计计 算算 机机 组组 成成 原原 理理 精精 品品 课课 程程 进进 入入主要内容5.1 基本概念基本概念5.2 组合控制逻辑组合控制逻辑 5.3 微程序控制微程序控制5.4 模型机微程序控制单元的设计模型机微程序控制单元的设计5.1 基本概念 5.1.1 控制器的功能 控制器作为计算机的指挥中心,保证各个组成部件协调工作,必须完成以下功能:1、指令控制功能 计算机的工作过程是连续执行指令的过程,指令在主存储器中连续存放,一般情况下,指令被顺序执行,只有遇到控制转移类指令才会改变顺序,所以指令在主存中的存放是静态的,而指令的执行顺序是动态的,形
2、成计算机的指令流。2、时序控制功能 机器指令的操作过程是由指令操作流程图严格规定的,各条指令的指令周期中包含的机器周期数不尽相同,同时各个机器周期中包含的节拍数目也不一定相同,所以指令周期、机器周期和节拍信息等时序信号,必须由控制器产生,以完成时序控制功能。3、操作控制功能 在时序信号的控制下,各条机器指令在每个机器周期的每个节拍中应产生哪些微操作控制信号,由指令操作流程图做了严格的规定,控制器应能根据指令操作流程图的安排,在各个节拍中产生相应的微操作时序信号,以有效地完成各条指令的操作过程。各种不同类型的计算机的控制器会有不少差别,但基本组成是相同的,如图5.1所示,控制器的基本组成部分如下
3、:图5.1 控制器基本组成5.1.2 控制器的组成1、程序计数器PC程序计数器又称为指令计数器或指令指针IP,用来存放下一次要执行的指令的地址。PC不断的加“1”,以保证按顺序逐条执行指令,这种加“1”功能。当遇到改变程序执行顺序的指令(转移控制类指令)时,由转移控制类指令将转移地址送往程序计数器作为准备取出下一条指令的地址。2、指令寄存器IR指令寄存器用来存放当前正在执行的指令。当指令从主存取出之后,将其暂存在指令寄存器中,完成一条指令的全部功能控制。3、指令译码器ID指令译码器又称为操作译码器,它是解析指令的部件,对指令寄存器中的指令操作码进行解析,产生相应的控制信号,提供给微操作信号发生
4、器。4、地址形成部件。根据机器的不同寻址方式,用来形成操作数的有效地址,以便CPU取得操作数。5、脉冲源脉冲源用来产生具有一定频率和宽度的脉冲信号,称为主脉冲。为使主脉冲的频率稳定,一般都是用石英晶体振荡器作为脉冲源。6、启停逻辑 启停控制逻辑的作用是根据计算机的需要,可靠地开放或封锁脉冲,控制时序信号的发生或停止,实现对整个机器的正确启动或停止。7、节拍发生器节拍发生器又称为脉冲分配器。脉冲源产生的脉冲信号,经过节拍发生器后,产生时序信号(节拍电位),提供给微操作信号发生器以产生微操作信号。8、微操作信号发生器微操作信号发生器接收由指令译码器提供的操作信号、节拍发生器提供的时序信号、被控制功
5、能部件所反馈的状态及条件信号等综合形成各种指令的微操作控制信号序列。9、中断控制逻辑中断控制逻辑是用来控制中断处理的硬件逻辑。5.1.3 指令执行流程 计算机的运行需要不断地执行完成某个特定任务的指令序列,因此计算机的工作过程实质上就是不断的取指令、分析指令和执行指令的过程。下面以图5.2的CPU的内部数据通路为例分析几条典型指令的具体执行过程。图5.2 CPU的数据通路 1.加法指令ADD R0,R1 这条指令完成的功能是把R0的内容作为地址送到主存以取得一个操作数,再与R1中的内容相加,最后将结果送回主存中。即实现:(R0)(R1)(R0)取指周期 PCout和MARin有效,完成PC经C
6、PU内部总线送至MAR的操作,记作(PC)MAR;通过控制总线(图中未画出)向主存发读命令 存储器通过数据总线将MAR所指单元的内容(指令)送至MDR,记作(MAR)MDR;MDRout和IRin有效,将MDR的内容送至指令寄存器IR,记作(MDR)IR。至此,指令被从主存中取出,其操作码字段开始控制CU。使PC内容加1,记作(PC)+1PC。取数周期 取数周期要完成取操作数的任务,被加数在主存中,加数已放在寄存器R1中。R0out和MARin有效,完成将被加数地址送至MAR的操作,记作(R0)MAR;向主存发读命令,记作Read;存储器通过数据总线将MAR所指单元的内容(数据)送至MDR,同
7、时MDRout和Yin有效,记作M(MAR)MDRY;执行周期 执行周期完成加法运算的任务,并将结果写回主存。R1out和ALUin有效,同时CU向ALU发“ADD”控制信号,使R1的内容和Y的内容相加,结果送寄存器Z,记作(R1)+YZ;Zout和MDRin有效,将运算结果送寄存器MDR,记作(Z)MDR。向主存发写命令,记作Write。2转移指令JC A 这是一条条件转移指令,若上次运算结果有进位(C=1),就转移;若上次运算结果无进位(C=0),就顺序执行下一条指令。设A为位移量,转移地址等于PC的内容加位移量。相应的微操作序列如下:取指周期 与上条指令的微操作序列完全相同。执行周期 如
8、果有进位(C=1),则完成(PC)+APC的操作,否则跳过以下几步。PCout和Yin有效,记作(PC)Y(C=1);Ad IRout和ALUin有效,同时CU向ALU发“ADD”控制信号,使IR寄存器中的地址码字段A和Y的内容相加,结果送寄存器Z,记作Ad(IR)+YZ;Zout和PCin有效,将运算结果送寄存器PC,记作(Z)PC。5.1.4 控制器的分类 当计算机执行指令时,控制器输入的是计算机指令代码,输出的是微操作控制信号,因此微操作信号发生器是控制器的核心。根据产生微操作信号方式的不同,控制器可分为组合逻辑控制器、微程序控制控制器、PLA控制器三种。1、组合逻辑控制器 又称为硬布线
9、控制器,它是采用组合逻辑技术来实现的,其微操作信号发生器是由门电路组成的复杂网络构成的。这种分法是分立元件时代的产物,以使用最少器件数和取得最高操作速度为设计目标。组合逻辑控制器的最大优点是速度快,但是微操作信号发生器结构不规整,使得设计、调试、维修较为困难,难以实现设计自动化。一旦控制部件构成之后,要想增加新的控制功能是不可能的。因此,它受到微程序控制器的强烈冲击,仅有一些巨型机和RISC机为了追求高速度仍采用组合逻辑控制器。2、微程序控制控制器 把微操作信号代码化,使每一条机器指令转化成为微程序存入控制存储器中,微操作控制信号由微指令产生。微程序控制器的设计思想和组合逻辑设计思想截然不同。
10、它具有设计规整,调试、维修以及更改、扩充指令方便的优点,易于实现自动化设计,已称为当前控制器的主流。但是由于它多了一级控制存储器,因此指令的执行速度比组合逻辑控制器的要慢。3、PLA控制器 PLA控制器是吸收前两种控制方式而实现的。它实际上也是一种组合逻辑控制器,但它又与常规的组合逻辑控制器的硬联结构不同,它是可编程的,某一微操作控制信号由PLA的某一输出函数产生。图5.3 微操作信号发生器示意图 5.1.5 控制器的时序系统与控制方式 1、时序系统 时序系统是指控制器的心脏,其功能是为指令的执行提供各种定时信号。(1)指令周期和机器周期 指令周期是指从取指令、分析指令到执行完该指令所需的全部
11、时间。由于各种指令的操作功能不同,有的简单,有的复杂,因此各种指令的指令周期不尽相同。机器周期通常又称为CPU周期,每一条指令的指令周期是由若干个机器周期组成的,每个机器周期完成一个基本操作。一般机器的CPU周期有取指周期、取数周期、存数周期、执行周期、中断周期等。所以有:指令周期 i机器周期5.1.5 控制器的时序系统与控制方式 不同的指令周期中所包含的机器周期数差别可能很大,一般情况下,一条指令所需的最短时间为两个机器周期:取指周期和执行周期。(2)节拍 在一个机器周期内,要完成的若干个微操作可以同时执行,有的则需要按先后次序串行执行。因而需要把一个机器周期分为若干个相等的时间段,每个时间
12、段对应一个电位信号,称为节拍电位信号。节拍电位的宽度取决于CPU完成一次基本动作的时间,如:ALU完成一次正确的运算;寄存器间的一次传送等。(3)多级时序系统举例 图5.4为某台小型机每个指令周期中常采用的机器周期、节拍、工作脉冲三级时序系统。图中每个机器周期M中包括四个节拍T1T4,每个节拍内有一个脉冲P。在机器周期间、节拍电位间、工作脉冲间既不允许有重叠交叉,也不允许有空隙,应该是一个接一个的准确连接。图5.4 三级时序系统 2.时序系统的控制方式 (1)同步控制方式 同步控制方式用的是固定时序的控制方式,各项操作都由统一的时序信号控制,在每个机器周期中产生统一数目的节拍电位和工作脉冲。由
13、于不同的指令,操作时间长短不一致,同步控制方式应以最复杂指令的操作时间作为统一的时间间隔标准。在同步控制方式中,各指令所需的时序由控制器统一发出,所有微操作都与时钟同步。(2)异步控制方式 异步控制方式用的是可变时序控制方式。各项操作不采用统一的时序,而根据指令或部件的具体情况决定,需要多少时间,就占用多少时间。各操作之间的衔接是由“结束起始”信号来实现的。异步控制采用不同的时序,没有时间上的浪费,因而提高了机器的效率。(3)同/异步混合控制方式 现代计算机中全采用同步或异步的控制方式比较少见,多数采用同/异步混合控制方式。其设计思想时:在功能部件内部采用同步方式或以同步方式为主的控制方式,在
14、功能部件之间采用异步方式。5.2 组合控制逻辑 5.2.1 模型机的指令系统与寻址方式 为了容易理解控制器的设计,假设一台模型机,有:传输指令MOV,算术运算指令ADD,逻辑右移指令SHR,无条件转移指令JMP,存数指令ST。指令格式有单字节和双字节两种,如图5.5所示:图5.5 指令格式图 寻址方式有:寄存器寻址,寄存器间接寻址,直接寻址,立即数寻址。指令编码及功能见表51:指令编码及功能见表51:注:(1)图中“”表示该位不用。(2)图中ADDR表示一个内存单元的11位地址,imme表示8位的立即数。(3)指令的操作码占指令第一个字节的高3位(d7d6d5),并且由d7区分指令是单字节指令
15、还是双字节指令。d7=1时,指令为单字节指令;否则指令为双字节指令。(4)表中Ri,Rj表示寄存器,占2个二进制位,且互不相同。5.2.2 模型机的CPU及硬件组织 模型机的数据通路如图5.6所示。全机采用总线结构,分为CPU内部总线和系统总线。指令部件、算术逻辑部件、通用寄存器组等CPU组织都接在CPU内部总线上,主存储器MM、I/O接口都接在系统总线上。CPU内部总线有内部数据总线IDB和内部地址总线IAB之分,系统总线有系统数据总线ODB和系统地址总线OAB之分,CPU内部和系统总线之间采用三态缓冲器相连,其中数据总线采用双向三态缓冲器,地址总线采用单向三态缓冲器。图5.6中R0R3表示
16、CPU内部的四个通用寄存器,ACT是接在ALU输入端的一个暂存器,A是一个累加寄存器,它将ALU的输出接到内部数据总线IDB上。指令寄存器IR由两个8位寄存器IRH和IRL组成,如果是单字节指令则仅存在IRH中。程序计数器PC位11位,故存储器最大容量只有2112K个字节,其中主存物理寻址范围1K字节,另1K字节的空间作为I/O端口寄存器。存储器MM采用直接连接在OAB和ODB之间,I/O设备和主存统一编址,没有专门的I/O指令,输入、输出由取数、存数、传输指令完成。5.2.3 模型机的时序系统 采用三级时序系统,为了简化时序系统,设置三个机器周期:取指周期(FETCH)、分析周期(ANA)和
17、执行周期(EXE)。每个机器周期内可以完成一次主存的读、写操作。机器周期又可分为若干个节拍Ti,每个节拍末尾有一个工作脉冲 p。取指周期完成的是公操作,每个指令都要经过这个周期。对于双操作指令和寄存器间接寻址的情况,取指令第二字节和间接寻址操作都归入分析周期。而其它指令可直接进入执行周期,而不需要先进入分析周期。每个机器周期都用一个D触发器来代表,哪个触发器处于“1”状态,就表示机器正处于哪个周期运行。各周期触发器如图5.7所示。5.2.4 组合逻辑控制器设计步骤1、画出指令流程图通常,以指令为出发点,按指令类型分类,将每条指令归纳成若干微操作,然后根据操作的先后顺序画出指令流程图,这种方法对
18、一条指令的全过程有清晰的线索,易于理解。另一种拟定指令流程的方法是以机器周期为出发点,按机器周期拟定各条指令在本周期内的操作流程。2、列出微操作时间表将指令流程图中的微操作合理的安排到各个机器周期的相应节拍和脉冲中去,得到微操作时间表。微操作时间表可以形象地表示出:什么时间、根据什么条件发出哪些微操作信号。3、进行微操作信号的综合当列出所有指令的微操作时间表之后,需要对它们进行逻辑综合分析,把凡是要执行某一微操作的所有条件(哪条指令、哪个机器周期、哪个节拍和脉冲等)都考虑在内,加以分类组合,列出各微操作产生的逻辑表达式,然后加以简化,使逻辑表达式更为合理。4、实现电路根据整理并化简的逻辑表达式
19、组,可以用一系列组合逻辑电路加以实现,并根据逻辑表达式画出逻辑电路图,用逻辑门电路的组合来实现之,也可以直接根据逻辑表达式,用PLA电路实现。5.2.5 模型机组合逻辑控制器的设计 1、指令流程图 由于在指令执行过程中,取指令是公操作,所以将取指周期独立出来,取指令公操作的流程图如5.8所示:取指周期的过程描述如下:(1)程序计数器内容送到内部地址总线(2)将指令地址送往系统地址总线(3)发读命令 (4)从系统数据总线上取出指令送指令寄存器(5)程序计数器内容加1,准备好下一条待取指令的地址 接着将指令分为两个类型分别介绍,单字节指令和双字节指令。单字节指令的标志是IRH7=0。单字节指令一共
20、有四条,根据IRH的第6,5位和第2位来区分指令的具体操作,它们的操作流程图如图5.9所示:图5.8 取指令操作流程图5.9 单字节指令操作流程图 在ADD指令、SHR指令和第一条MOV指令中,由于源操作数和目的操作数都在寄存器中,所以不需要访问内存,故流程较简单。而指令MOV Ri,Rj中,源操作数使用间接寻址,故需要先找到需要访问的内存单元,再将其内容读入CPU中。双操作指令的标志是IRH7=1,它们分别是无条件转移指令、存数和取数指令,其操作流程如图5.10所示:图5.10 双字节指令操作流程图 无条件转移指令(JMP)需要将指令两个字节内容读入CPU,以便获得转移地址,然后将这个地址送
21、往PC即可。存数指令(ST)是将寄存器的内容写入到内存单元中,也需要先获得写入地址,然后再执行Write指令。取数指令(LD)是将立即数读入寄存器中,而立即数的值就是指令第二个字节的内容。1、指令的微操作时间表 表52给出了指令的微操作时间表,表中列出的微操作左边是节拍控制信号,右边为脉冲控制信号。(书上P80)3.进行微操作信号综合 在画出全部指令的流程图和微操作时间表之后,即可对它们进行综合分析、归类。根据微操作时间表可以写出各微操作控制信号的逻辑表达式,表达式一般包括下列因素:微操作控制信号周期节拍脉冲操作码机器状态标志 下面根据微操作时间表可以列出模型机的部分微操作信号的逻辑式,并进行
22、适当的简化。如:4.实现电路 由上节列出的各微操作控制信号的表达式可以看出,除了个别简单的是“与”式外,大部分均为“与或”式,按这些逻辑表达式可画出相应的逻辑电路图,并用逻辑门电路实现之。例如,PC+1PC的逻辑实现如图5.11所示。由于这种电路实际上包括“与项”、“或项”,正好可用大规模集成芯片PLA来实现。对全部指令的操作时间表进行综合、分析,求出各个相同的微操作产生条件的逻辑表达式,即可画出操作完整的控制线路。5.3 微程序控制5.3.1 微程序控制的基本概念微程序设计技术的实质是将程序设计技术和存储技术相结合,即用程序设计的思想方法来组织操作控制逻辑,将微操作控制信号按一定规则进行信息
23、编码(代码化),形成控制字(微指令),再把这些微指令按时间先后排列起来构成微程序,存放在只读的控制存储器中。1.微程序设计的提出与发展微程序设计的概念和原理是由M.V.Wilkes教授提出来的,一条机器指令分解许多基本的微命令组成的序列,用于计算机控制器的设计。目前,大多数中、小、微型计算机及部分大型机都采用了微程序设计技术来实现控制器功能。5.3 微程序控制 2.基本术语 (1)微命令和微操作 微命令和微操作是一一对应的。微命令是微操作的控制信号,微操作是微命令的操作过程。微命令有兼容性和互斥性之分。兼容性微命令是指那些可以同时产生,共同完成某些微操作的微命令;互斥性微命令是指在机器中不允许
24、同时出现的微命令。兼容和互斥都是相对的,一个微命令可以和一些微命令兼容,和另一些微命令互斥。对于单独一个微命令,谈论其兼容和互斥是没有意义的。(2)微指令、微地址 微指令是指控制存储器中的一个单元的内容,即控制字,是若干个微命令的集合。存放控制字的控制存储器的单元地址就称为微地址。微指令操作控制字段,又称微操作码字段,用以产生某一步操作所需的微操作控制信号 微指令顺序控制字段,又称微地址码字段,用以控制产生下一条要执行的微指令地址 (3)微周期从控制存储器中读取一条微指令并执行相应的微命令所需的全部时间称为微周期。(4)微程序一系列微指令的有序集合就是微程序。每一条机器指令都对应一个微程序。5
25、.3.2 微指令的编码方式 这里所说的微指令编码法指的就是操作控制字段的编码方法。不同的计算机从各自的特点出发,设计出不同的微指令编码法。例如:大型机强调速度,要求译码过程尽量快;微、小型机则更多地注意经济性,要求尽量缩短微指令字长;而中型机介于这两者之间,兼顾速度和价格,要求在保证一定速度的情况下,能缩短微指令字长。1、直接控制法 操作控制字段中的各位分别可以直接控制计算机,无须进行译码。在这种形式的微指令字中,操作控制字段的每一个独立的二进制位代表一个微命令,该位为“1”表示这个微命令有效,为“0”则表示这个微命令无效。每个微命令对应并控制数据通路中的一个微操作,此即前述的纯水平型微指令的
26、做法。2、最短编码法 直接控制法使微指令字过长,而最短编码法则走向另一个极端,使得微指令字最短。这种方法将所有的微命令统一编码,每条微指令只定义一个微命令,即前述的垂直型微指令做法。若微命令的总数为N,操作控制字段的长度为L,则最短编码法应满足下列关系式:Llog2N 最短编码法的微指令字长最短,但要通过一个微命令译码器译码以后才能得到需要的微命令。3、字段编码法 这是前述两种编码法的一个折衷的方法,既具有两者的优点,又克服了它们的缺点。这种方法将操作控制字段分为若干个小段,每段内采用最短编码法,段与段之间采用直接控制法。字段直接编码法 图5.12是字段直接编码法的微指令结构,各字段都可以独立
27、地定义本字段的微命令,而和其他字段无关,因此又称为显式编码或单重定义编码方法。这种方法缩短了微指令字的字长,因此得到了广泛的应用。图5.12 字段直接编码法 字段间接编码法 字段间接编码法是在字段直接编码法的基础上,用来进一步缩短微指令字长的方法。间接编码的含义是,一个字段的某些编码不能独立地定义某些微命令,而需要与其他字段的编码来联合定义,因此又称为隐式编码或多重定义编码方法,见图5.13。图5.13 字段直接编码法 此图中,字段A(3位)产生的微命令还受字段B的控制,当字段B发出b1微命令时,字段A发出a1,1,a2,1 a7,1中的一个微命令,而当B发出b2微命令时,字段A发出a1,2,
28、a2,2 a7,2中的一个微命令。这种方法进一步减少了指令的长度,但通常可能会削弱微命令的并行控制能力,且译码电路相应地较复杂,因此,只作为字段直接编码法的一种补充。字段编码法中操作控制字段的分段原则:把互斥性的微命令分在同一段内,兼容性的微命令分在不同段内。这样不仅有助于提高信息的利用率,缩短微指令字长,而且有助于充分利用硬件所具有的并行性,加快执行的速度。应与数据通路结构相适应。每个字段中包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间。一般每个字段还要留出一个状态,表示本字段不发出任何微命令。因此当某字段的长度为三位时,最多只能表示七个互斥的微命令,通常用000表示无操作。5.
29、3.3 微程序控制器的组成和工作过程 1、微程序控制器的基本组成 图5.14给出了一个微程序控制器基本结构的示意图,在图中主要画出了微程序控制器比组合逻辑控制器多出的部件,包括以下几个部分:控制存储器、微指令寄存器、微地址形成部件、微地址寄存器等。图5.14 微程序控制器的基本结构 控制存储器(CM)这是微程序控制器的核心部件,用来存放实现全部指令系统的微程序,它是一种只读存储器。微指令寄存器(mIR)用来存放从CM中取出的微指令。微地址形成部件 用来产生初始微地址和后继微地址,以保证微命令的连续执行。微地址寄存器(mMAR)接受微地址形成部件送来的微地址,为在CM中读取微指令做准备。2.微程
30、序控制器的工作过程 (1)执行取指令公共操作。取指令的公共操作通常由一个取指微程序来完成。具体的执行是:在机器开始运行时,自动将取指微程序的入口微地址送mMAR,并从CM中读出相应的微指令送入mIR。(2)由机器指令的操作码字段通过微地址形成部件产生该机器指令所对应的微程序的入口地址,并送入mMAR。(3)从CM中逐条取出对应的微指令并执行之。(4)执行完对应于一条机器指令的一个微程序后又回到取指微程序的入口地址,继续第(1)步,以完成取下一条机器指令的公共操作。以上是一条机器指令的执行过程,如此周而复始,直到整个程序执行完毕为止。3.机器指令与微程序的关系 通常,一条机器指令对应一个微程序。
31、由于任何一条机器指令的取指令操作都是相同的,因此将取指令操作的微命令统一编成一个微程序,这个微程序只负责将指令从主存单元中取出送至指令寄存器中。此外,还可以编出对应间址周期的微程序和中断周期的微程序。因此,控制存储器中的微程序个数应为机器指令数再加上对应取指、间址和中断周期等公用的微程序数。5.3.4 微地址产生方式1、微程序入口地址的产生方式当公用的取指微程序从主存中取出机器指令之后,由机器指令的操作码字段指出各个微程序的入口地址(初始微地址)。这是一种多分支(或多路转移)的情况。由机器指令的操作码转换成初始微地址的方式主要有3种。(1)一级功能转换如果机器指令操作码字段的位数和位置固定,可
32、以直接使操作码与入口地址码的部分位相对应。(2)二级功能转换当同类机器指令的操作码字段的位数和位置固定,而不同类机器指令的操作码的位数和位置不固定时,就不能再采用一级功能转换的方法。所谓二级功能转换是指第一次先按指令类型标志转移,以区分出指令属于哪一类,如:是单操作数指令,还是双操作数指令等。(3)通过PLA电路实现功能转换当机器指令的操作码位数和位置都不固定时,可以采用PLA电路将每条机器指令的操作码翻译成对应的微程序入口地址。这种方法对于变长度、变位置的操作码显得更有效,而且转换速度较快。2.后继微地址的产生方式 (1)增量方式(顺序转移型微地址)顺序执行时后继微地址就是现行微地址加上一个
33、增量(通常为“1”);转移或转子时,由微指令的顺序控制字段产生转移微地址。因此,在微程序控制器中应当有一个微程序计数器(PC)。为了降低成本,一般情况下都是将微地址寄存器MAR改为具有计数功能的寄存器,以代替PC。(2)断定方式 断定方式的后继微地址可由微程序设计者指定,或者根据微指令所规定的测试结果直接决定后继微地址的全部或部分值。这是一种直接给定与测试断定相结合的方式,其顺序控制字段一般由两部分组成:非测试段和测试段 5.3.5 微程序的时序控制微指令的执行分为串行和并行两种方式。在串行方式中,一个微周期等于取微指令和执行微指令两部分时间之和。执行微指令的时间与组合逻辑方式中的节拍周期大体
34、相当。由于包含有取微指令的时间,因此微程序控制方式中的基本时序单位微周期要大于组合逻辑控制方式中的节拍周期,使得指令的执行速度下降。在并行方式中,微周期就只等于微指令的执行时间。可以大大提高指令的执行速度,但由于有些微条件转移的条件是指令执行后的某些状态条件,而这些条件在微指令刚取出时不可能形成,如判断CX寄存器是否减为“0”,将使预取下条微指令变得复杂化。解决办法有下面几种:1.加入一条空操作微指令,等待执行结果形成,这种方法简单,但却失去了并行方式的意义。2.选择一个可能性较大的微指令预取,当预取微指令时,可以不增大微周期。3.两个分支次地址同时预取,待条件形成后再对取出的微指令进行取舍。
35、5.3.6 微程序应用 微程序控制技术从20世纪60年代一来已在许多方面得到了应用,主要包括计算机实现、仿真、操作系统支持、专用设备实现、高级语言支持、微诊断、用户加工等领域。本章讨论的微程序控制器就属于计算机实现方面的应用。通过使用微程序在一个机器上执行原本为另一类机器所编写的程序的过程叫做仿真(emulation)。仿真经常用在不同机器之间的软件移植领域。5.4 模型机微程序控制单元的设计 设计微程序控制单元的主要任务是编写对应各条机器指令的微程序,具体步骤是首先写出对应机器指令的全部微操作节拍安排,然后确定微指令格式,最后编写出每条微指令的二进制代码。5.4.1 模型机微指令的设计 由于
36、模型机非常简单,对速度要求比较低,因此模型机的指令编制采用串行方式。又因为微命令的数目不多,若采用垂直型微指令未免太浪费了,故采用水平型微指令和水平型微程序设计。1、微命令系统 根据图5.6至图5.10给出的模型机数据通路和指令流程图,可以写出所有的微命令。然后根据微命令的多少及特点确定微指令格式。微命令归纳在书上P88 将上述微命令进行分析发现,CLK可以使用微周期中的脉冲信号。CLR可以用控制器启动信号,机器一启动,PC清0,微程序从000H单元开始执行。故CLK和CLR信号在微指令中可以不给出。另外,D2、D3两个信号正好对应主存读、写两个信号,因此可以用R、W两个信号代替而不用体现出来
37、。2、微程序的顺序控制 模型机的后继微地址形成方法采用增量方式,由于微指令只有一种类型,即顺序执行,故微指令中不设顺序控制字段,执行一条微指令,PC自动加1。取指微指令放在控存的000H号单元,机器启动后,PC自动指向000H号单元。取指微指令从主存取出一条机器指令送入IR,再根据指令操作码变换成对应的微程序入口地址,实现一级功能转移。模型机的具体实现方法如表5-3所示,即用指令操作码(IR7、IR6、IR5和IR2)后面再加上三位“111”来形成机器指令的微程序入口地址。表53 模型机微程序入口地址表 表5-3中SHR,ADD两条运算指令的IR2位都未使用,但是为了简化入口地址,使它们默认为
38、0。在双字节指令中IRH寄存器的IR2为a10,即可取“0”也可取“1”,故有两个入口地址。可以在两个入口的控存中放同样的微指令。在双字节指令JMP中,由于需要获得内存地址,此时a10的状态并不确定,有“0”、“1”两中可能,因此相应的微程序入口地址为047H、04FH。ST指令的入口地址与JMP指令的类似。而在双字节指令LD中,a100,因为这条指令只是把下个字节所存储的8位立即数读入相应的寄存器中,所以微程序入口地址为067H。设计出微指令的格式,见图5.14所示。当然,这并不是唯一的方案,仅供读者参考。图5.14 模型机的微指令格式5.4.2 模型机的微程序编制与代真1、微程序编制根据微程序指令流程图和数据通路,写出每一个微周期的微操作,就得到了微程序。例如,取指微指令完成的微操作与图5.8给出的流程图相似。结合表52给出的微操作时间表很容易编制出各条机器指令的微程序,这里要注意微操作信号之间的顺序关系,因为有些微操作信号间有严格的时序关系,不应破坏这一关系。2、微程序代真把每一个微周期的操作都填入微指令中,再根据每一个微命令的有效电平,将微指令变换成二进制代码,这就是代真过程。