图3.15 微程序控制器的基本组成
从图3.15可以看出该控制器的基本组成部件及它们相互间的逻辑关系。
最核心的部分是控制存储器,用于存放教学机的微程序,由56位组成,用7片74LS6116随机读写的8位×2048字的内存芯片实现。通常控存都是用ROM芯片实现,把厂家设计好的微程序固化在里边,仅提供读操作功能,可靠性更高些。教学机要支持动态微程序设计,即允许实验人员把自己设计的微程序写进控存,我们只能用可读写存储器支持这一要求。这还带来一个新的问题,即在实验机加电启动时,首先必须把已设计好的53条机器指令用到的微程序调入控存,这个问题将到该控制器的辅助组成部分去进一步讲解。正常执行微程序时,该控存将依据Am2910提供给它的10位地址,在读写命令W/R(为高是读操作)控制下读出相应单元的一条微指令。
读出的微指令将通过CP脉冲,打入该控制器的第二个组成部件--微指令寄存器PLR中。前边已提到过,一条微指令的内容通常由下地址和控制信号(微命令)两部分组成。下地址可能又被分成几个小字段,它们被用于控制、形成、或直接提供下一条微指令的地址,是供给控制器部件本身使用的。微命令也由若干个小字段组成,提供对计算机其它功能部件,如运算器、主存、输入/输出设备的控制信号。在第二章,我们已看到用于控制运算器的许多控制信号。在本小节稍后部分,将详细介绍教学计算机的微指令的格式和每个字段的内容及其控制功能。
该控制器的第三个组成成分,是微程序定序器Am2910器件及其配套电路。
在本教学计算机的实现中,已把Am2910的/OE端接地,使其输出Y11-Y0总保持有效(实用Y9-Y0共10位)。
把/CCEN接地,使Am2910的条件判断结果只取决于/CC。
把CI接电源,使微指令地址 +1总是执行。
用/VECT信号把通过水平板上的开关给出的10位微指令的手拨地址接通到Am2910的D输入端。分别用/MAP和/PL两个信号选通MAPROM和微指令下地址字段的输出送到Am2910的D输入端,从而形成D输入端的3选1逻辑功能。
与Am2910配套的电路,主要包括MAPROM和用于形成/CC信号逻辑值的条件判定线路。MAPROM被用作为指令微地址映射部件,它变换指令的操作码为该指令对应的微程序段入口地址,由两片74LS2716
ROM芯片组成,其地址为指令的操作码,对应单元中存放相应微程序段的入口地址,执行读操作,并用/MAP选通读出的信息,解决的是指令功能分支问题。
关于/CC条件码的形成问题,需解决指明判定条件和完成条件判定两个方面的需求。要判断的条件相当多,是通过微指令中下地址字段中的SCC(3位)和SC(1位)两个子字段指明的,其具体规定如表3.5所示,采用专门的硬件电路,即一片Gal20v8器件实现表中所规定的功能,对应该表的逻辑表达式给出在下一页。
表3.5 微指令转移的判定条件
|
SCC
|
SC
|
/CC
|
|
0
1
|
|
0
1
|
|
2
3
4
5
|
SC=0
SC=0
SC=0
SC=0
|
/FS1
/FS2
/FS3
/WAIT
|
|
2
3
4
5
6
|
SC=1
SC=1
SC=1
SC=1
SC=1
|
/C
/Z
/V
/S
/INT
|
|
|
IR10~IR8
|
|
|
7
|
0
1
2
3
4
5
6
7
|
/C
/Z
/V
/S
C
Z
V
S
|
|
|