微程序设计技术是利用软件方法来设计硬件的一门技术。
微程序控制的基本思想,是依照解题程序的方法,将操作控制信号编成“微指令”,存放在控制存储器中,当计算机运行时,一条一条地读出这些微指令,从而产生机器所需要的各种操作控制信号,使操作部件完成指定的操作。
微程序控制器具有规整性、灵活性和可维护性等一系列优点。
一、微命令和微操作
从控制的角度来看,计算机可分为两大部分:
控制部件:发出控制信号的部件(控制器)。
执行部件:根据控制信号执行相应操作的(运算器、存储器、输入输出设备等)。
微命令:微程序控制器中,具有开、关控制门的控制命令称作微命令,是最基本的控制信号。(由微指令发出一组微命令)
微操作:微命令控制实现的操作过程称作微操作。
微命令与微操作的关系:微命令是操作控制信号,微操作是微命令对应的操作过程。
相容微操作:在同时或同一CPU周期内可以并行执行的微操作。
互斥微操作:不能在同时或同一CPU周期内并行执行的微操作。
二、微指令与微程序
微指令 :在机器的一个CPU周期中,一组实现一定操作功能的微命令的组合。
微指令由操作控制和顺序控制两大部分组成。
操作控制:发出管理和指挥全机工作的控制信号。
其中每一位表示一个微命令(控制信号)。
1:发出控制命令
0:无控制命令
微命令控制信号都是节拍控制信号,其维持时间都是一个CPU周期。因此,实际控制时,一般要将这些控制信号和节拍脉冲结合生成控制信号。
顺序控制:用于决定下一条微指令的地址(后继地址)
微程序 :实现一条机器指令功能的许多条微指令组成的序列。
控制部件与执行部件通过控制线和反馈信息进行联系。
微程序控制器原理框图如图5.24,它主要由控制存储器、微指令寄存器和地址转移逻辑三大部分组成
1、控制存储器
控制存储器用来存放实现全部指令系统的微程序,它是一种只读存储器。
一旦微程序固化,机器运行时则只读不写。其工作过程是:每读出一条微指令,则执行这条微指令;接着又读出下一条微指令,又执行这一条微指令……。读出一条微指令并执行微指令的时间总和称为一个微指令周期。通常,在串行方式的微程序控制器中,微指令周期就是只读存储器的工作周期。
控制存储器的字长就是微指令字的长度,其存储容量视机器指令系统而定,即取决于微程序的数量。对控制存储器的要求是速度快,读出周期要短。控制存储器的字长一般都较长。
2.微指令寄存器
微指令寄存器用来存放由控制存储器读出的一条微指令信息。其中微地址寄存器决定将要访问的下一条微指令的地址,而微命令寄存器则保存一条微指令的操作控制字段和判别测试字段的信息。
3.地址转移逻辑
在一般情况下,微指令由控制存储器读出后直接给出下一条微指令的地址,通常我们简称微地址(下址字段),这个微地址信息就存放在微地址寄存器中。 如果微程序不出现分支,那么下一条微指令的地址就直接由微地址寄存器给出。当微程序出现分支时,意味着微程序出现条件转移。在这种情况下,通过判别测试字段P和执行部件的“状态条件”反馈信息,去修改微地址寄存器的内容,并按改好的内容去读下一条微指令。
地址转移逻辑就承担自动完成修改微地址的任务。
我们举“十进制加法”指令为例,具体看一看微程序控制的过程。
第一条微指令的二进制编码是
000 000 000 000 11111 10 0000
完成取指令和判断转移微指令
第二条微指令的二进制编码是
010 100 100 100 00000 00 1001
R1+R2→R2
第三条微指令的二进制编码是
010 001 001 100 00000 01 0000
R2+R3(6)→R2
第四条微指令的二进制编码是
010 001 001 001 00000 00 0000
R2-R3(6)→R2
在串行方式的微程序控制器中,微指令周期等于读出和执行该条微指令的时间。通常设计与CPU周期相等。
六、机器指令与微指令的关系
一条机器指令对应一个微程序,一条机器指令所完成的操作划分为若干条微指令完成,并由微指令解释和执行。
指令存放在内存中,微指令存放在控制存储器中。
一个CPU周期对应一条微指令。
指令执行流程图实际为微程序流程图。