3.4 微程序控制器的逻辑结构与功能
下图是微程序控制器的结构框图。它由控制存储器、微地址寄存器、微命令寄存器和地址转移逻辑几部分组成。微地址寄存器和微命令寄存器两者的总长度即为一条微指令的长度,二者合在一起称为微指令寄存器。
图3.2 微程序控制器的结构框图
1.控制存储器
ROM中存放微程序,也就是全部的微指令。ROM的容量取决于微指令的总数。假如控制器需要128条微指令,则微地址寄存器长度为7位。ROM的字长取决于微指令长度。如果微指令为32位,则ROM的字长就是32位。实际应用中ROM可采用EPROM或E2PROM、EAROM,用户写入和修改微程序比较方便。
2.微命令寄存器
微命令寄存器暂存由控制存储器中读出的当前微指令中控制字段与测试判别字段信息,可由8D寄存器组成。
3.微地址寄存器
微地址寄存器暂存由控制存储器读出的当前微指令的下址字段信息。它可由带RD、SD强置端的D触发器组成。其中时钟端和D端配合用做ROM的读出打入,用SD进行下址修改。
4.地址转移逻辑
微指令由ROM读出后直接给出下一条微指令的地址,这个地址就放在微地址寄存器中。当微程序出现分支时通过地址转移逻辑去修改微地址寄存器内容,并
8
按修改好的微地址读出下条微指令。地址转移逻辑是一个组合逻辑电路,其输入是当前微指令的判别测试字段Pi、执行部件反馈的“状态条件”及时间因素T4。
5.控制时序信号
上图中标明了一个基本机器周期中的控制时序信号。例如用上一周期的T4时间按微地址寄存器内容从ROM中读一条微指令,经过一段时间后被读出,用当前周期的T1时间打入到微指令寄存器。T2、T3时间用来控制执行部件进行操作。T4时间修改微地址寄存器内容并读出下一条微指令。 3.5 微程序的设计与实现
用规整的存储逻辑代替不规则的硬接线逻辑来实现计算机控制器功能的技术。每一条指令启动一串微指令,这串微指令称为微程序。微程序存放在控制存储器中,修改控制存储器内容可以改变计算机的指令。
图中,从存储器中取一条机器指令送入指令寄存器,寄存器的输出接微程序控制器,由后者控制微程序的执行。通常,机器指令的操作码通过微程序控制器给出执行这条机器指令微程序段的首址,从控制存储器中取出此微程序段的第一条微指令存入微指令寄存器。一条微指令包含若干个微码域。各个微码域通过一定的译码控制各相应功能执行部件,在微指令周期内完成相应的各个微操作。微指令周期也称为微周期。微指令中一部分信息(微码域)也可反馈到微程序控制器,协同微指令执行后产生的状态信息和机器指令中除操作码以外的其他信息,通过微程序控制器去选取下一条微指令,从而控制微程序的流程相继执行这一段微程序而完成一条相应机器指令所要求的功能。把设计编制的各微程序段适当组合起来可形成一个微程序整体,控制器的功能就反映在这一整体中,所以微程序控制的物理结构很规整,而其功能设计方法又很灵活。
微程序运行流程图如图3.3
9
图3.3 微程序流程图
10
表3-7 微指令2进制码表
微地址 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 S3~CN 000001 000001 000001 000001 000001 000001 000001 000001 000001 000001 000001 000001 000001 000001 000001 100101 000001 000001 000001 000001 000001 000001 000001 001111 000001 000001 000001 000001 000001 000001 001101 001101 000001 000001 000001 000001 000001 100101 WE 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 B1 B0 11 11 01 01 01 01 01 01 11 11 01 11 00 01 11 11 11 11 11 11 00 10 11 11 11 11 11 11 11 11 11 11 01 01 11 11 11 11 A 000 110 100 010 110 110 010 110 110 110 010 000 010 010 011 110 110 110 110 110 001 000 000 001 001 010 011 010 010 010 000 000 001 000 101 000 000 010 11
B 000 110 000 000 000 000 000 000 110 110 000 000 000 000 011 101 110 110 110 110 000 010 000 101 001 001 001 001 001 001 001 001 000 010 101 000 000 101 C 100 110 001 000 010 000 000 010 110 110 000 000 000 000 000 000 110 110 110 110 000 000 000 000 000 000 000 000 000 000 000 000 000 001 110 011 000 010 uA5~uA0 001000 000010 010000 000100 100000 000110 000111 100000 001010 001100 111011 000001 111100 001110 001111 100101 000011 000101 001101 100110 000001 000001 100110 000001 000001 101010 101100 110010 110011 110110 110111 111001 000001 000001 000001 100100 000001 100000 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 000001 000001 100101 100101 000001 100101 000001 000001 000011 000001 000011 100101 000001 000001 000001 101111 000011 001011 000001 000111 000001 000011 000001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 01 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 10 01 010 011 110 010 011 001 010 010 010 010 000 001 001 011 101 001 001 000 001 000 001 000 000 000 110 101 101 010 101 010 101 101 101 000 101 101 001 101 101 101 100 100 100 100 101 101 000 000 000 010 000 101 000 101 000 000 111 100 000 000 110 100 000 000 000 000 000 000 000 100111 101000 101001 100000 101011 000001 101101 101110 101111 110000 100001 100001 000001 110111 000001 100001 000001 111010 000001 111010 000001 001000 001001 在实验中必须结合本系统的各电路图,学会分析微指令24位代码中各位的作用。微指令控制字段各位(24~7位)的作用分析如下:
24~19 S3、S2、S1、S0 、M、Cn 16种算术运算及带进位情况、16种逻辑运算选择位;18 WE 外部写操作位,WE=0 无写操作,WE=1 有写操作;17、16 B1、B0 外部选择00 选输入装置;01 选主存;10 选输出;11 无操作。 3.6 微程序与监控程序
$ M00 088105 $ M01 82ED05 $ M02 50C004 $ M03 A0E004 $ M04 05B004 $ M05 06A205 $ M06 019A65 $ M07 0FE004
12