计算机组成与结构中央控制器.ppt

上传人:小飞机 文档编号:6606631 上传时间:2023-11-17 格式:PPT 页数:118 大小:2.72MB
返回 下载 相关 举报
计算机组成与结构中央控制器.ppt_第1页
第1页 / 共118页
计算机组成与结构中央控制器.ppt_第2页
第2页 / 共118页
计算机组成与结构中央控制器.ppt_第3页
第3页 / 共118页
计算机组成与结构中央控制器.ppt_第4页
第4页 / 共118页
计算机组成与结构中央控制器.ppt_第5页
第5页 / 共118页
点击查看更多>>
资源描述

《计算机组成与结构中央控制器.ppt》由会员分享,可在线阅读,更多相关《计算机组成与结构中央控制器.ppt(118页珍藏版)》请在三一办公上搜索。

1、计算机组成与结构,本课程主要讲授计算机系统的硬件和软件构成方法,包括硬件系统中运算器、控制器、存储器、输入设备和输出设备和总线系统的构成原理等;并与当代先进的计算机技术相结合。是计算机科学与技术本科专业核心课程。本课程着重计算机系统组成与结构方面的教学和研究。计算机结构定义为系统程序员所能见到的计算机硬件特性;计算机组成是指计算机硬件的具体实现。,第六章 中央控制器,计算机的硬件系统控制器的组成微程序控制的计算机微程序设计技术硬布线控制的计算机控制器的控制方式流水线工作原理CPU举例计算机的加电及控制过程,第六章 中央控制器,本章主要研究计算机控制器的组成原理。要求掌握在计算机运行过程中各硬件

2、部件的作用,了解CPU中各部件的操作过程及其实现方法;重点掌握控制器如何实现各指令的功能,如何保证逐条指令的连续执行过程。,6.4 微程序设计技术,在实际进行微程序设计时,应注意以下问题:(1)如何缩短微指令字长;(2)如何减少微程序长度;(3)如何提高微程序的执行速度。,6.4 微程序设计技术,一、微指令的编译法(编码译码方法)微指令由控制字段和下址字段组成,这里讨论几种常用的控制字段编译法。1、直接控制编码(不译码法)直接控制编码是指微指令的微命令字段中每一位都代表一个微命令。设计微指令时,选用或不选用某个微命令,只要将表示该微命令的对应位设置成1或0就可以了。因此,微命令的产生不需译码。

3、6.3节中所讲的就是这种方法。,6.4 微程序设计技术,这种编码的优点是简单、直观,执行速度快,操作并行性最好。其缺点是微指令字长过长,使控制存储器单元的位数过多。而且,在给定的任何一个微指令中,往往只需部分微命令,因此只有部分位置1,造成有效的空间不能充分利用。在某些复杂的计算机中,微命令甚至可多达三四百个,这使微指令字长达到难以接受的地步,并要求机器有大容量控制存储器,为了改进设计出现了以下各种编译法。,6.4 微程序设计技术,2、字段直接编译法计算机中的各个控制门,在任一微周期内,不可能同时被打开,而且大部分是关闭的(即相应的控制位为“o”)。所谓微周期,指的是一条微指令所需的执行时间。

4、如果有若干个(一组)微命令,在每次选择使用它们的微周期内,只有一个微命令起作用,那么这若干个微命令是互斥的。例如,向主存储器发出的读命令和写命令是互斥的;又如在ALU部件中,送往ALU两个输入端的数据来源往往不是唯一的,而每个输入端在任一微周期中只能输入一个数据,因此控制该输入门的微命令是互斥的。选出互斥的微命令,并将这些微命令编成一组,成为微指令字的一个字段,用二进制编码来表示。,6.4 微程序设计技术,相斥性微命令和相容性微命令同一微周期中不能同时出现的微命令称为相斥性微命令;在同一微周期中可以同时出现的微命令称为相容性微命令。分段直接编译法将微指令的微命令字段分成若干小字段,把相斥性微命

5、令组合在同一字段中,而把相容性微命令组合在不同的字段中,每个字段独立编码,每种编码代表一个微命令且各字段编码含义单独定义,与其它字段无关,这就称为分段直接编译法。,6.4 微程序设计技术,分段的原则 A.互斥性的微命令分在同一段内,兼容性的微命令分在不同段内。B.与数据通路结构相适应。C.每个小段中包含的信息位不能太多,否则将增加译码线路的复杂 性和译码时间。D.一般每个小段还要留出一个状态,表示本字段不发出任何现行命令。因此当某字段的长度为三位时,最多只能表示七个互斥的微命令,通常用000表示不操作。,6.4 微程序设计技术,【例如】,将7个互斥的微命令编成一组,用三位二进制码分别表示每个微

6、命令,那么在微指令中,该字段就从7位减成3位,缩短了微指令长度。而在微指令寄存器的输出端,为该字段增加一个译码器,该译码器的输出即为原来的微命令(图6.21)。,6.4 微程序设计技术,字段长度与所能表示的微命令数的关系如下:字段长度 微命令数 2位 23 3位 47 4位 815一般每个字段要留出一个代码,表示本段不发出任何微命令,因此当字段长度为3位时,最多只能表示7个互斥的微命令,通常代码000表示不发微命令。,6.4 微程序设计技术,3、字段间接编译法如果在字段直接编译法中,规定一个字段的某些微命令,要兼由另一字段中的某些微命令来解释,称为字段间接编译法。分段间接编译法是在直接编译法基

7、础上,进一步缩短微指令字长的一种编码方法。在这种编译法中,一个字段的含义不仅决定于本字段编码,还兼由其它字段来解释,以便使用较少的信息位表示更多的微命令。,6.4 微程序设计技术,图6.22表示字段A(3位)的微命令还受字段B控制,当字段B发出b1微命令时,字段A发出a1,1,a2,1,a7,1中的一个微命令;而当字段B发出b2微命令时,字段A发出a1,2,a2,2,a7,2中的一个微命令,仅当A为000时例外,此时什么控制命令都不产生。本方法进一步减少了指令长度,但很可能会削弱微指令的并行控制能力,因此通常只作为直接编译法的一种辅助手段。,6.4 微程序设计技术,6.4 微程序设计技术,4、

8、常数源字段E在微指令中,一般设有一个常数源字段E,就如指令中的直接操作数一样。E字段一般仅有几位,用来给某些部件发送常数,故有时称为发射字段。该常数有时作为操作数送入ALU运算;有时作为计算器初值,用来控制微程序的循环次数等。5、混合控制法直接控制法与译码控制法的混合使用。6、其他诸如微操作码编译法(见“微指令格式”)等将在下面介绍。,6.4 微程序设计技术,二、微程序流的控制当前正在执行的微指令,称为现行微指令,现行微指令所在的控制存储器单元的地址称为现行微地址,现行微指令执行完毕后,下一条要执行的微指令称为后继微指令,后继微指令所在的控存单元地址称为后继微地址。所谓微程序流的控制是指当前微

9、指令执行完毕后,怎样控制产生后继微地址。,6.4 微程序设计技术,产生后继微指令地址的两种方法:(1)由指令操作码译码器产生后继微地址。(2)由微指令的下址字段指出后继微地址。与程序设计相似,在微程序设计中除了顺序执行微程序外还存在转移功能和微循环程序与微子程序等,这将影响下址的形成。下面介绍几种常见的产生后继微指令地址的方法。,6.4 微程序设计技术,1、产生后继微指令地址的几种方法(1)以增量方式产生后继微地址在顺序执行微指令时,后继微地址由现行微地址加上一个增量(通常为1)形成的;而在非顺序执行时则要产生一个转移微地址,如图623所示。,6.4 微程序设计技术,6.4 微程序设计技术,机

10、器加电后执行的第一条微指令地址(微程序入口)来自专门的硬件电路,控制实现取指令操作,然后由指令操作码产生后继微地址。接下去,若顺序执行微指令,则将现行微地址(在微程序计数器PC中)+1产生后继微地址;若遇到转移类微指令,则由PC与形成转移微地址的逻辑电路组合成后继微地址。例如,利用该逻辑电路的输出与PC低位进行逻楫加,形成后继微地址。这种方式可使微指令的下址字段很短,仅起选择作用。其缺点是微程序转移很不灵活,使得微程序在控存中的物理空间分配相当困难。,6.4 微程序设计技术,在图6.23的“计数器”方式的原理图中,PC兼作控制存储器的地址寄存器,输入有四个来源。下址字段仅有两位,其功能是选择三

11、个输入源中的一个作为PC的输入,而微程序入口是由专门的硬件产生的,不受下址字段控制。(2)增量与下址字段结合产生后继微地址在图6.24中将微指令的下址字段分成两部分:转移控制字段BCF和转移地址字段BAF,当微程序实现转移时,将BAF送PC,否则顺序执行下一条微指令(PC+1)。,6.4 微程序设计技术,6.4 微程序设计技术,执行微程序条件转移时,决定转移与否的硬件条件有好几种。例如,“运算结果为零”、“溢出”、“已完成指定的循环次数”等。在图6.24中,我们假设有八种转移情况,定义了八个微命令(BCF取3位),在图中设置计数器CT,用来控制循环次数。如在执行乘(或除)法指令时,经常采用循环

12、执行“加、移位”(或减、移位)的方法,指令开始执行时,在CT中置循环次数,每执行一次循环,计数器减1,当计数器为零时结束循环。又考虑到执行微子程序时,要保留返回微地址,图中设置了一个返回寄存器RR。由BCF定义的八个微命令见表6.2。,6.4 微程序设计技术,6.4 微程序设计技术,BCF=0,顺序执行微命令,PC+I为后继微地址。BCF=1,条件转移微命令,当运算结果为0时,将BAF送PC,否则PC+1 PC,BCF=2,条件转移微命令,当运算结果溢出时,将BAF送PC,否则,PC+1+PC。BCF=3,无条件转移微命令,将BAF送PC。BCF=4;测试循环微命令,假如CT0,表示需要继续执

13、行循环微命令,将循环人口微地址从BAF送PC。假如CT=0,表示循环结束,后继微地址为PC+1。本条微命令同时完成CT-1操作。BCF=5,转微子程序微命令,把微子程序人口地址从BAF送PC,从而实现转移。在转移之前要把该条微指令的下一地址(PC+1)送人返回寄存器RR之中。BCF=6,返回微命令,把RR中的返回微地址送人PC,从而实现从微子程序返回到原来的微程序。BCF=7,操作码产生后继微地址的微命令,这是取指后,按现行指令执行的第一条微指令。,6.4 微程序设计技术,BAF的长度有两种情况:与PC的位数相等;可以从控制存储器的任一单元取微指令。比PC短;考虑到转移点在PC附近,或者在控制

14、存储器的某区域内,所以由原来的PC的若干位与BAF组合成转移微地址。第一种情况,转移灵活,但增加了微指令的长度;第二种情况,转移地址受到限制,但可缩短微指令长度。,6.4 微程序设计技术,(3)多路转移方式一条微指令存在多个转移分支的情况称为多路转移。在执行某条微指令时,可能会遇到在若干个微地址中选择一个作为后继微地址的情况,最明显的例子是根据操作码产生不同的后继微地址。实现此功能的电路通常是由PROM(可编程序只读存储器)组成的,也有把它称为MAPROM(映像只读存储器)的。该存储器的特点是 以指令的操作码作为地址输入,而相应的存储单元内容即为该指令的第一条微指令的入口地址。该存储器的容量等

15、于或略大于机器的指令数,所以容量小,速度快。,6.4 微程序设计技术,有时要根据某些硬件状态来决定后继微地址,属于这些状态的可以是根据运算结果所置的标志位(N,Z,V,C)、计数器状态、数据通路状态等。根据一种状态(非0即1)来决定微地址可以有两种情况,即两路转移;而根据两种状态来决定微地址可以有四种情况,即四路转移。微程序设计实践表明,实现两路转移的情况居多,其次是四路转移,向更多路方向转移的情况就比较少见。两路转移只涉及微地址的一位;四路转移涉及微地址的两位,一般就定在微地址的最后两位,也就是说当执行转移微指令时,根据条件可转移到四个微地址中的一个,这四个微地址的高位部分相等,仅是最低两位

16、不同。实现多路转移可减少微程序的长度,对于一般条件转移微指令(相当于两路转移)来说,需要两条微指令来完成上述四路转移的功能。,6.4 微程序设计技术,(4)微中断微中断与程序中断的概念相似,在微程序执行过程中,一旦出现微中断请求信号,通常在完成现行指令的微程序后响应该微中断请求,这时中止当前正在执行的程序,而转去执行微中断处理程序,微中断请求信号是由程序中断请求信号引起的。在进行微程序设计时,已安排好微中断处理程序在控制存储器的位置,因此该微程序段的人口地址是已知的。当CPU响应微中断请求时,由硬件产生微中断程序的入口地址。当中断处理完毕后,再返回到原来被中断的程序。这也是产生后继微地址的一种

17、情况。,6.4 微程序设计技术,2、用AM2900系列芯片构成的微程序CPU图6.25所示的系统中:AM2901为4位运算部件,包含4位ALU及16个4位通用寄存器,本系统将其中一个寄存器用作程序计数器PC。AM2902是为了加速进位而采用的集成电路。AM2910为微程序控制器,用于产生下一条微指令地址,可寻址4K字的控制存储器。图中的MAP为操作码译码器产生本条指令的微程序入口地址。,6.4 微程序设计技术,6.4 微程序设计技术,图6.26是AM2910内部组成框图。AM2910由PC、微堆栈、计数器/寄存器、命令译码器及多路地址选择器组成。其输出Y11一Y0直接送到控存。与图6.24相比

18、,它将多个逻辑电路集成在一个芯片上,并具有更强的功能。AM2910的多路地址选择器,用来选择下一条微指令的地址,它可从片内的微程序计数器PC、寄存器/计数器、微堆栈或直接从输入微地址(D11D0)中选择一个作为输出。微程序计数器是由12位增量器和12位寄存器组成。当增量器的进位输入CI为高电平时,多路器的输出Y加1后装入PC(即PCY十1),用于实现微程序的顺序执行;而当CI为低电平时,多路器的输出Y直接装入PC(即PCY),用于实现一条微指令的多次执行。,6.4 微程序设计技术,6.4 微程序设计技术,寄存器/计数器由12个D型触发器组成。当它用作寄存器时,主要用于保存一个微地址,用以实现微

19、程序分支;当它用作计数器时,具有减“1”功能(受AM2910的命令码I3I0控制),主要用于控制微程序的循环次数,若装入的初值为N,则可执行N+1次。微堆栈由寄存器堆和微堆栈指示器组成,其中寄存器堆可保存5个字(12位/字),主要用于保存微子程序调用的返回地址和微程序循环的首地址。微堆栈指示器SP总是指向最后一次压入的数据,因此,执行微程序循环时,允许不执行弹出操作而直接访问微堆栈的栈顶。当堆栈中的数据达到五个时,就发出堆栈已满信号(FULL=0),这时,任何压入操作都将覆盖掉栈顶的数据。命令译码器接收从微指令有关控制字段送来的命令码(1310)及硬件状态CC,用来执行AM2910的内部操作及

20、选择下址输出。,6.4 微程序设计技术,三、微指令格式微指令的格式大体上可分成两类:一是水平型微指令;二是垂直型微指令。1、水平型微指令格式下图属于水平型微指令的典型例子。,6.4 微程序设计技术,基本特点是在一条微指令中定义并执行多个并行操作微命令。采用直接控制法进行编码。在实际应用中,直接控制法、字段编译法(直接、间接编译法)经常应用在同一条水平型微指令中。从速度来看,直接控制法最快,字段编译法要经过译码,所以会增加一些延迟时间。2、垂直型微指令格式在微指令中设置有微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能,称为垂直型微指令。,6.4 微程序设计技术,其特点是不强调实现微

21、指令的并行控制功能,通常一条微指令只要求能控制实现一二种操作。这种微指令格式与指令相似;每条指令有一个操作码;每条微指令有一个微操作码。下面我们举一个经简化的例子,设微指令字长16位,微操作码3位,有八条微指令如下:,6.4 微程序设计技术,(1)寄存器寄存器传送型微指令微指令格式:功能:把源寄存器数据送目标寄存器。第02位为微操作码。第37位是源寄存器编址,这五位可以指定31个寄存器之一作为源寄存器,00000可表示为由指令的地址码部分指出源寄存器地址,因为当执行传送指令时,由指令给出源寄存器地址。所以参与操作的数据地址可由指令给出,也允许由微指令给出。此结论同样适用于水平型微指令。第812

22、位是目标寄存器的编址,这5位可以指定31个寄存器之一作为目标寄存器,00000可表示为由指令的地址码部分指出目标寄存器地址。第1315位是“其他字段”,可协助本条微指令完成其他控制功能。,6.4 微程序设计技术,(2)运算控制型微指令微指令格式:功能:选择运算器(ALU)的左、右两输入端的信息,按ALU字段所指定的运算功能进行处理,并将结果送人暂存器中。第02位为微操作码。第37位为运算器左输入源的编址,这5位可以指定31种源信息之一,00000可表示为由指令的地址码部分指定左输人源的编址。第812位为运算器右输入源的编址,这5位可以指定31种源信息之一,00000可表示为由指令的地址码部分指

23、定右输入源的编址。第1315位为ALU字段,完成八种操作之一,例如加法、减法、逻辑加、逻辑乘等等。,6.4 微程序设计技术,(3)移位控制型微指令微指令格式:功能:将寄存器中的数据按指定的移位方式进行移位。第02位为微操作码。第37位为移位数据所在寄存器的编址,移位结果仍保留在原寄存器中。编址方式与上同。第812位为移位次数。第1315位为移位方式,可表明循环左移、循环右移、逻辑左移、逻辑右移、算术左移、算术右移等。,6.4 微程序设计技术,(4)访问主存微指令微指令格式:功能:将存储器中一个单元的信息送人寄存器或将寄存器中的数据送往存储器。第02位为微操作码。第37位为寄存器地址编址。第81

24、2位为存储器编址,可以按照系统设计所规定的寻址方式进行编址。例如,可以是存储器地址所在的寄存器地址。第1314位规定是读或写操作。第15位可协助本微指令完成其他控制功能。,6.4 微程序设计技术,(5)五条件转移微指令微指令格式:功能:实现五条件转移或转微子程序功能。第02位为微操作码。第314位为微指令的转移地址。第15位用于区分是无条件转移或是转微子程序微指令,当是后者时,将现行微地址的下一顺序微地址(PC+1)保存在返回微地址寄存器RR中。,6.4 微程序设计技术,(6)条件转移微指令微指令格式:功能:根据测试对象的状态(例如运算结果为0、结果溢出、计数器状态等)决定转移到D所指定的微地

25、址单元,还是顺序执行下一条微指令。9位D字段不足以表示一个完整的微地址,但可以用来替代现行微地址PC的低位。测试条件字段有4位,可以规定十六种测试条件。,6.4 微程序设计技术,(7)其他还有110与111两种操作码,可以用来定义输入输出微操作或其他难以归类的杂操作,第315位可以根据需要定义各种相应的微命令字段。,6.4 微程序设计技术,3、水平型微指令与垂直型微指令的比较(1)水平型微指令并行操作能力强,效率高,灵活性强,垂直型微指令则差。在一条水平型微指令中,设置有控制机器中信息传送通路(门)以及进行所有操作的微命令。因此,在进行微程序设计时,可以同时定义比较多的并行操作的微命令,控制尽

26、可能多的并行信息传送,从而使水平型微指令具有效率高及灵活性强的优点。在一条垂直型微指令中,一般只能完成一个操作,控制一两个信息传送通路,因此微指令的并行操作能力低,效率低。,6.4 微程序设计技术,(2)水平型微指令执行一条指令的时间短,垂直型微指令执行时间长。因为水平型微指令的并行操作能力强,因此与垂直型微指令相比,可以用较少的微指令数来实现一条指令的功能,从而缩短了指令的执行时间。而且当执行一条微指令时,水平型微指令的微命令一般直接控制对象,而垂直型微指令要经过译码也会影响速度。(3)由水平型微指令解释指令的微程序,具有微指令字比较长,但微程序短的特点。垂直型微指令则相反,微指令字比较短而

27、微程序长。(4)水平型微指令用户难以掌握,而垂直型微指令与指令比较相似,相对来说,比较容易掌握。,6.4 微程序设计技术,水平型微指令与机器指令差别很大,一般需要对机器的结构、数据通路、时序系统以及微命令很精通才能进行设计。对机器已有的指令系统进行微程序设计是设计人员而不是用户的事情,因此这一特点对用户来讲并不重要。然而某些计算机允许用户自行设计并扩充指令系统,此时就要注意是否容易编写微程序,有关问题将在下一小节“动态微程序设计”中讨论。,6.4 微程序设计技术,四、微程序控制存储器和动态微程序设计1、微程序控制存储器微程序控制存储器一般由只读存储器构成,因为微程序是以解释的方式执行指令,而指

28、令系统一般是固定的,因此可以使用只读存储器。但假如用可读可写的随机存储器作为控制存储器未必不行,但停电后RAM中的内容消失,所以开机后首先要将外存(磁盘或磁带)上存放的微程序调到控存(RAM),然后机器才能执行程序。由于ROM中的内容不会丢失,因此一般认为用ROM作为控制存储器比较可靠。用RAM作为控制存储器的优点是可以修改微程序,也就是说可以修改指令系统。所以可考虑部分控存用ROM构成,实现固定的指令系统;部分控存由RAM构成,用于扩充或修改一些指令。,6.4 微程序设计技术,2、动态微程序设计在一台微程序控制的计算机中,假如能根据用户的要求改变微程序,那么这台机器就具有动态微程序设计功能。

29、动态微程序设计的出发点是为了使计算机能更灵活、更有效地适应于各种不同的应用目标。,6.4 微程序设计技术,例如,在不改变硬件结构的前提下,如果计算机配备了两套可供切换的微程序,其中一套用来实现科学计算的指令系统,另一套用来实现数据处理的指令系统,那么该计算机就能高效率地实现科学计算或者数据处理。另外也可以用两套微程序分别实现两个不同系列计算机的指令系统,使得这两种计算机的软件得以兼容。也允许用户在原来指令系统的基础上增加一些指令来提高程序的执行效率。用于动态微程序设计的控存称为可写控制存储器(WCS)或用户控制存储器(UCS)。,6.4 微程序设计技术,由于动态微程序设计要求用户对计算机的结构

30、与组成非常熟悉,因此真正由用户自行编写微程序是很困难的,所以尽管设想很好,事实上难以推广。而前面讲到的一台机器实现两套微程序等方案也是由机器设计人员实现的。,6.4 微程序设计技术,3、控制存储器的操作执行一条微指令的过程基本上分为两步,第一步将微指令从控制存储器中取出,称为取微指令,对于垂直型微指令还应包括微操作码译码的时间。第二步执行微指令所规定的各个操作。根据这两步是串行还是并行进行而具有下述的两种方式:(1)串行方式执行一条微指令所需要的时间称为微周期。在串行方式下微周期的安排如下:,6.4 微程序设计技术,微周期即是控制存储器的工作周期,包括取微指令和执行微指令两部分时间。一条指令的

31、功能需要执行若干条微指令才能实现,所以控制存储器的取微指令时间对机器速度影响很大。一般控存要比主存储器快得多。图6.27是串行微程序控制器原理图与时序图。由控制存储器直接输出控制信号与下址,而控制存储器地址又是由CSAR直接送来的,因此在一条微指令执行过程中,不允许CSAR改变。如控制信号负载较重,则可外接门电路或驱动器。,6.4 微程序设计技术,6.4 微程序设计技术,(2)并行方式为了提高微程序的执行速度,将执行本条微指令的功能与取下一条微指令的操作在时间上重叠起来,图6.28是并行微程序控制器的原理图与时序图。与图6.27(a)相比,图6.28(a)增加了微指令寄存器,控制微命令由微指令

32、寄存器发出,因此在微指令执行过程中,即使控存输出改变,只要微指令寄存器打人脉冲不来,其内容不会跟着发生变化,因而允许取微指令与执行上一条微指令并行进行,在某些书上将微指令寄存器称为流水线寄存器。,6.4 微程序设计技术,6.4 微程序设计技术,4、毫微程序设计的基本概念 毫微程序可以看作是用以解释微程序的一种微程序,因此组成毫微程序的毫微指令就可看作是解释微指令的微指令。采用毫微程序设计的主要目的是减少控制存储器的容量(字数位数/字),采用的是两级微程序设计方法。通常第一级采用垂直微程序,第二级采用水平微程序。当执行一条指令时,首先进入第一级微程序,由于它是垂直型微指令,所以并行操作功能不强,

33、当需要时可由它来调用第二级微程序(即毫微程序),执行完毕后再返回第一级微程序。所以在这里有两个控制存储器如图6.29所示。,6.4 微程序设计技术,6.4 微程序设计技术,第一级垂直微程序是根据实现指令系统和其他处理过程的需要而编制的,它有严格的顺序结构,由它确定后继微指令的地址。垂直微指令很像机器指令,编程过程就像用机器指令编程一样,容易实现微程序设计自动化。其控制存储器的主要特点是字短。第二级水平型微指令是由第一级调用的,具有并行操作控制的能力,但不包含后继微指令地址的信息。若干条垂直微指令可以调用同一条毫微指令,所以在控制存储器中每条毫微指令都是不相同的(在一级微程序设计的控制存储器中,

34、会多次出现相同的微指令)。在各条毫微指令之间没有顺序关系。毫微程序控制存储器的主要特点是字数较少,但每个字的长度较长。,6.4 微程序设计技术,上述二级微程序设计方法将微程序的顺序控制和执行微操作的命令完全分离开来,分别由第一级垂直型微指令和第二级水平型微指令实现。在实际应用时则有所变化,例如:(1)若从第一级控存读出的垂直型微指令功能比较简单,这时不必将它变换成毫微指令,而可直接译码,用作微操作控制信号,因此不再调用第二级微指令。(2)垂直型微指令与水平型微指令之间不是一条一条地对应,而是由水平型微指令(毫微指令)组成若干步的微程序(即毫微程序)去执行垂直型微指令的操作,在这种情况下,毫微指

35、令与微指令的关系就相当于微指令与指令的关系。采用二级微程序控制能减少控制存储器的总容量,但有时一条微指令要访问二次控存,影响速度。,6.4 微程序设计技术,五、微程序设计语言在微程序控制的计算机中,用机器语言表示的指令是由微指令解释执行而实现的。一般微指令的字长达到100位左右,甚至更多些。假如要求设计者直接用二进制编码来进行微程序设计是很困难的,错误难以避免。因而引入了微程序设计语言。,6.4 微程序设计技术,设计者或其他用户用来编制微程序的语言叫做微程序设计语言,用微程序设计语言编制的程序叫做源微程序。将源微程序翻译成二进制码的程序叫做微编译程序。微程序设计基本上沿用了程序设计的方法,可以

36、仿照程序设计语言来建立微程序设计语言,因此可以把它分成初级的和高级的两种类型。初级的微程序设计语言有微指令语言、微汇编语言、框图语言等。高级微程序设计语言类似于高级程序设计语言,比较接近于数学描述或自然语言。,6.4 微程序设计技术,微汇编语言与汇编语言相似,是用符号表示微指令的语言。微程序设计者先用微汇编语言编制源微程序,然后把它输入计算机中利用微汇编程序翻译成由0和1两种代码组成的微程序。微汇编程序中的一条语句和微程序中的一条微指令是一一对应的,这点也与汇编语言相似。垂直微指令一般由一个微操作码字段,一个或少数几个操作数控制字段组成,通常只指定一种运算(或控制)操作,与机器指令相似,它的微

37、汇编语言语句很像机器的汇编语言语句。水平型微指令通常由多个字段或较多位代码组成,其中各个“字段”或各“位”所定义的微命令可以并行执行,因此描述水平型微指令的微语句就比垂直型微指令长且复杂。,6.4 微程序设计技术,高级微语言,类似于程序设计中的高级语言。如用高级微语言来描述图6.30相应的源微程序,那么可写成:K:A+BAK+1:IF(A(0)=0)THEN(GO TO K+3)K+2:0-AAK+3:AM(D)上述源微程序表示对A,B两数相加,并将结果的绝对值送存储器单元D,其中A(0)为符号位。该源微程序在编译时,根据硬件及微指令的并行操作能力进行优化,尽量减少微指令数。,6.4 微程序设

38、计技术,微程序设计人员希望能有一种既便于描述微程序又能尽量接近数据描述,既能与机器无关,又能翻译成高效率微码的微高级语言。但到目前为止,这还是设计人员为之奋斗的目标。当前能付之实用的能描述水平型微指令的语言还是微汇编语言。,6.5 硬布线控制的计算机,在图6.8所示的运算控制器逻辑图中,由“时序控制信号形成部件”产生控制计算机各部分操作所需的控制信号。这个部件的组成一般有两种方式,其一为微程序控制方式,另一种即是下面要讨论的硬布线控制方式,由于这些信号是通过逻辑电路直接连线而产生的,所以又称为组合逻辑控制方式。组合逻辑控制器的核心部件就是微操作产生部件。微操作产生部件,是采用组合逻辑设计思想,

39、以布尔代数为主要工具设计而成。它的输入信号来自指令译码器的输出、时序发生器的时序信号及程序运行的结果特征及状态。它的输出是一组带有时间标志的微操作控制信号。每个微操作控制信号是指令、时序、结果特征及状态等的逻辑函数,可表示为:微操作周期节拍脉冲指令码其它条件,6.5 硬布线控制的计算机,一、时序与节拍一条指令的实现可分成取指、计算地址、取数及执行等几个步骤。在微程序控制方式中,每一步由一条微指令实现,而在这里则由指令的操作码直接控制并产生实现上述各步骤所需的控制信号。在大部分情况下,每一步由一个机器周期实现,如何区分一条指令的四个机器周期呢?可以考虑用两位计数器的译码输出来表示当前所处的机器周

40、期,如图6.31所示;或用四位触发器来分别表示四个周期,当机器处于某一周期时,相应的触发器处于“1”状态,而其余三个触发器则处于“0”状态,四位移位寄存器即可实现此功能。,6.5 硬布线控制的计算机,设以cy1,cy2,cy3,cy4分别表示四个机器周期,在初始化(reset)时,令cy1处于“1”状态,其余的均处于“0”状态,即机器处于取指周期。然后实现循环移位,可保证四个触发器中有一位且仅有一位处于“1”状态。,6.5 硬布线控制的计算机,由于每条指令的功能不同,所以所需的机器周期数可能就不相同,因此某些指令可能缺少某个周期(例如转移指令),而有些复杂指令的某个周期则需要延长(例如乘法指令

41、的执行周期),从而使得上述计数器或移位寄存器的工作时序发生变化,而且其变化规律与指令有关。例如,执行A指令时需要四个机器周期,因此计数器的变化规律是00011011;而执行B指令时仅需要三个机器周期(例如不用计算地址),则计数器的变化规律为001011,据此可列出真值表(表6.3)。表6.3中cyA,cyB表示当前周期的计数器状态,cyA,cyB表示下一周期计数器状态。,6.5 硬布线控制的计算机,6.5 硬布线控制的计算机,根据真值表列出表达式:对于A指令,其表达式为 cyA=cyA#cyB+cyA cyB#;cyB=cyA#cyB#+cyA cyB#=cyB#。对于B指令,其表达式为 cy

42、A=cyA#cyB#+cyA cyB#=cyB#;cyB=cyA cyB#。根据表达式得出逻辑图6.32。,6.5 硬布线控制的计算机,6.5 硬布线控制的计算机,图6.32为仅有两条指令的逻辑图,实际机器有几十条几百条指令,根据指令功能列出每条指令的机器周期变化规律,最后归纳出几种情况,将情况相同的指令归为一类,然后列出表达式,画出逻辑图。假如,要延长某个机器周期时间,封锁CP是最简单的方法,也可以用控制计数器输入的方法,逻辑图要复杂一些。,6.5 硬布线控制的计算机,二、操作控制信号的产生1、操作码译码器指令由操作码与地址码两部分组成,其中操作码表示当前正在执行的是什么指令,例如是加法指令

43、还是减法指令等等。各条指令所需实现的操作,有些是相同的,有些是不同的,随指令而异。由译码器的输出和机器周期状态cy1cy4作为输入,使用逻辑电路产生操作控制信号,其框图如图6.33所示。,6.5 硬布线控制的计算机,6.5 硬布线控制的计算机,2、操作控制信号的产生以加法指令为例,如前所述,假设一条加法指令的功能是由四个机器周期cy1cy4完成的,分别为取指、计算有效地址、取操作数、进行加法运算并送结果。机器逻辑图仍如图6.8所示,所以完成一条指令的操作所需的操作信号仍如前所示。参考图6.7的波形图,在取指周期要完成从存储器取出指令送指令寄存器以及将指令计数器加1,为取下一条指令作好准备。,6

44、.5 硬布线控制的计算机,6.5 硬布线控制的计算机,6.5 硬布线控制的计算机,为访问存储器,需要将地址送往地址总线(PC AB),并发出启动存储器所需的信号 ADS、MIO#及WR#,然后将取得的指令送往指令寄存器(DB IR)。用逻辑式表示:PCAB=加法指令 cy1(6.6)ADS=加法指令 cy1 T1(6.7)M/IO#=加法指令 cy1(6.8)W/R#=(加法指令 cy1)#(6.9)DBIR=加法指令 cy1(6.10)PC+1=加法指令 cy1(6.11),6.5 硬布线控制的计算机,公式6.66.11存在一个问题,即在取指周期,当前这条指令尚未取出,在IR中保留的还是上一

45、条指令内容,因此不可能用它来产生控制本条指令所需的信号,所以在取指周期只允许安排与指令类型无关的操作,因此应将这些公式中的“加法指令”取消,于是将式(6.6)改写为:PCAB=cy1(6.12)6.76.11应同样修改。,6.5 硬布线控制的计算机,同样,在计算地址周期cy2完成有效地址的计算(rs1)+Disp),为此要将rs1的内容取出与IR中的位移量一起送ALU,发出rs1GR(送通用寄存器地址),(rs1)ALU,DispALU以及“+”命令,最后将运算结果送地址总线,发出ALU+AR信号。逻辑表达式:rs1GR=加法指令 cy2(6.13)(rs1)ALU=加法指令 cy2(6.14

46、)ALUAR=加法指令 cy2(6.15),6.5 硬布线控制的计算机,式(6.13)一式(6.15)的右边全部相同。逻辑图6.34只考虑了加法指令计算有效地址时的一种情况。然后按同样方法列出后面两个机器周期所需产生的控制信号的逻辑表达式。对每一条指令都进行同样的分析,得出逻辑表达式。,6.5 硬布线控制的计算机,对所有指令的全部表达式进行综合分析后可得出下述结论:(1)取指周期cy1所产生的信号,对所有指令都是相同的,即与当前执行的指令无关,逻辑式得到最简单的形式。(2)通常,同一个控制信号在若干条指令的某些周期(或再加上一些条件)中都需要,为此需要把它们组合起来。,6.5 硬布线控制的计算

47、机,例如,“+”命令在加法指令的cy2(计算有效地址)与cy4(操作数相加)时需要;在减法指令的cy2(计算有效地址)时需要;在转移指令的cy2(计算转移地址)时需要;。用逻辑式表示如下:“+”=加法指令(cy2+cy4)+减法指令cy2+转移指令cy2+=加法指令cy2+加法指令cy4+减法指令cy2+转移指令cy2+(6.16)上式中的加法指令、减法指令等信号通常由操作码译码器输出,译码器实际上是由各操作码的二进制代码作为输入的一组“与门”。设某机有7位操作码(OP0OP6),已知加法指令的操作码为0001100,则形成加法指令信号的逻辑表达式为:加法指令=OP0#OP1#OP2#OP3O

48、P4OP5#OP6#(6.17),6.5 硬布线控制的计算机,从式(6.16)可以看出,利用两级门电路(第一级为与门,第二级为或门)可产生“+”命令,但有时受逻辑门输入端限制(如上式的乘积项超过第二级或门所允许的最大输入端数)将修改逻辑式,此时就可能要增加逻辑电路。假如,信号所经过的级数也增加的话,还将增加延迟时间。另外在实现时还有负载问题。例如,操作码译码器的输出要控制很多信号,需注意是否会超载,必要时可增强译码器输出驱动能力或增加器件或修改逻辑。,6.5 硬布线控制的计算机,(3)同种类型的指令所需的控制信号大部分是相同的,仅有少量区别,例如算术运算指令中的加法指令(ADD)与减法指令(S

49、UB),除了一个信号(“+”命令或“-”命令)以外,其余的控制信号全部相同。整个算术逻辑运算指令仅ALU的操作命令以及是否置状态位(N,Z,V,C)上有差别。不同类型的指令,其控制信号的差别就比较大。(4)在确定指令的操作码时(即对具体指令赋于二进制操作码),为了便于逻辑表达式的化简以减少逻辑电路数量,往往给予特别关注。,6.5 硬布线控制的计算机,例如,某机有128条指令,7位操作码(OP0OP6),其中有十六条算术逻辑运算指令,那么可以令这些指令的三位操作码完全相等(例如OP0OP2为001),而OP3 OP6分别表示16条指令,设命令A是所有算术逻辑指令在cy2周期中都需产生的,则:A=

50、加法指令cy2+减法指令cy2+逻辑加指令cy2+=(加法指令+减法指令+逻辑加指令+)cy2=OP0#OP1#OP2cy2从16项简化成1项,用一个与门即可实现。,6.5 硬布线控制的计算机,表6.4是Sun 4 工作站CPU(SPARC)部分指令的操作码。该机器的操作码有8位,表中仅列出7位操作码,对于表内所列指令,另一位操作码均为1。加法指令有四条:ADD,ADDX,ADDcc,ADDXcc。尾部标以CC表示根据运算结果置状态位,否则不置位;X表示加进位。以LD开始的指令为取数指令,LD取单字,LDUB为取无符号字节,LDSB为取带符号的字节,LDUH为取无符号半字,LDSH为取带符号半

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号