微程序设计是用规整的存储逻辑代替不规则的硬接线逻辑来实现
计算机控制器功能的技术。每一条指令启动一串微指令,这串微指令称为微程序。微程序存放在
控制存储器中,修改控制存储器内容可以改变计算机的指令。
简介
微程序是由若干条
微指令组成的序列。在计算机中,一条
机器指令的功能可由若干条
微指令组成的序列来解释和执行,因此机器执行一条指令的过程,也就是执行一个相应的微程序的过程。
在计算机等数字系统中,控制器的典型功能是按时间节拍发出一定数量的控制信号,使系统完成若干基本操作,经过若干节拍后即完成一种相对完整的功能,如一条机器指令的功能。在一般的控制器中这些控制都是由硬接线逻辑来实现的,在微程序控制器中这些基本操作是由存在于
控制存储器中的微程序段控制完成的,每个基本操作称为微操作。微程序段由若干条微指令组成。
微程序设计方法
在实际进行微程序设计时,应考虑尽量缩短微指令字长,减少微程序长度,提高微程序的执行速度。这几项指标是互相制约的,应当全面地进行分析和权衡。
(1)水平型微指令及水平型微程序设计
水平型微指令是指一次能定义并能并行执行多个微命令的微指令。它的并行操作能力强,效率高,灵活性强,执行一条机器指令所需微指令的数目少,执行时间短;但微指令字较长,增加了控存的横向容量,同时微指令和机器指令的差别很大,设计者只有熟悉了数据通路,才有可能编制出理想的微程序,一般用户不易掌握。由于水平型微程序设计是面对微处理器内部逻辑控制的描述,所以把这种微程序设计方法称为硬方法。
(2)垂直型微指令及垂直型微程序设计
垂直型微指令是指一次只能执行一个微命令的微指令。它的并行操作能力差,一般只能实现一个微操作,控制一两个信息传送通路,效率低,执行一条机器指令所需的微指令数目多,执行时间长;但是微指令与机器指令很相似,所以容易掌握和利用,编程比较简单,不必过多地了解数据通路的细节,且微指令字较短。由于垂直型微程序设计是面向算法的描述,所以把这种微程序设计方法称为软方法。
(3)混合型微指令
综合前述两者特点的微指令称为混合型微指令,它具有不太长的微指令字,又具有一定的并行控制能力,可高效地去实现机器的指令系统。
微指令的执行方式
执行一条
微指令的过程与执行机器指令的过程很类似。第一步将微指令从控存中取出,称为取微指令;对于垂直型微指令还应包括微操作码的译码时问。第二步执行微指令所规定的各个操作。微指令的执行方式可分为串行和并行两种方式。
(1)串行方式
在这种方式里,取微指令和执行微指令是顺序进行的,在一条微指令取出并执行之后,才能取下一条微指令。
一个微周期里,在取微指令阶段,CM工作,数据通路等待;而在执行微指令阶段,CM空闲,数据通路工作。
串行方式的微周期较长,但控制简单,形成后继微地卅所用的硬件设备较少。
(2)并行方式
为了提高微指令的执行速度,可以将取微指令和执行微指令的操作重叠起来,从而缩短微周期。因为这两个操作是在两个完全不同的部件中执行的,所以这种重叠是完全可行的。 ‘
在执行本条微指令的同时,预取下一条微指令。假设取微指令的时间比执行微指令的时间短,就以较长的执行时间作为微周期。
由于执行本条微指令与预取下一条微指令是同时进行的,若遇到某些需要根据本条微指令处理结果而进行条件转移的微指令,就不能并行地取出来。最简单的办法就是延迟一个微周期再取微指令。
除以上两种控制方式外,还有串、并行混合方式,即当待执行的微指令地址与现行微指令处理无关时,采用并行方式;当其受现行微指令操作结果影响时,则采用串行方式。
动态微程序设计
通常,对应于一台计算机的
指令系统有一系列固定的
微程序。当微程序设计好之后,一般不允许改变而且也不便于改变,这样的设计叫做静态微程序设计。若一台计算机能根据不同应用目标的要求改变微程序,则这台计算机就具有动态微程序设计功能。
动态微程序设计的出发点是为了使计算机能更灵活、更有效地适应于各种不同的应用目标。例如,在不改变硬件结构的前提下,如果计算机配备了两套可供切换的微程序,一套是用来实现科学计算的指令系统,另一套是用来实现数据处理的指令系统,这样该计算机就能根据不同的应用需要随时改变和切换相应的微程序,以保证高效率地实现科学计算或数据处理。
动态微程序设计需要可写
控制存储器(WCS)的支持,否则难以改变微程序的内容。由于动态微程序设计要求对计算机的结构和组成非常熟悉,所以这类改变微程序的方案也是由计算机的设计人员实现的。