5.5 微程序设计技术
在本章节中,我们将深入探讨微程序设计的技术细节,主要包括微指令的设计与优化方法。我们之前已经了解了微程序控制器的基本原理,现在将聚焦于如何有效地构建和优化微指令结构,以达到以下设计目标:
- 缩短微指令字长度;
- 减小控制存储器的容量;
- 提高微程序的执行速度;
- 便于微指令的修改;
- 增强微程序设计的灵活性。
一、微命令编码
微命令编码关键在于如何表示微指令中的操作控制字段。下面介绍三种常见的编码方法:
1. 直接表示法
直接表示法中,操作控制字段的每一位直接代表一个微命令。这种方法的优点在于它的简单性和直观性,因为其输出可以直接用于控制操作。然而,这种方法的主要缺点是微指令字较长,从而导致控制存储器的容量较大。直接表示法适用于指令简单、控制信号较少的场景。
2. 编码表示法
编码表示法将一组互斥的微命令信号组合成一个字段,然后通过字段译码器对每个微命令信号进行译码,其输出作为操作控制信号。例如,使用3位二进制位可以表示7个微命令,而4位则可以表示15个微命令。与直接表示法相比,编码表示法可以显著减少微指令的长度,尽管它可能略微降低执行速度,但由于其能有效减少控制存储器的容量,因此广泛应用于设计中。
3. 混合表示法
混合表示法结合了直接表示法和编码表示法的优点,以达到一个平衡点,综合考虑微指令字长、灵活性和执行速度等多个方面。这种方法适用于复杂度较高且对执行速度有一定要求的微程序控制器设计。
附加设计元素
在微指令中,还可以设定一个常数字段,该字段可以用作ALU的操作数,或者作为计数器的初值以控制微程序的循环次数。这为微程序提供了更多的灵活性和功能性。
通过上述技术,微程序设计不仅能够满足基本的功能需求,还可以在保证性能的前提下,提供更高的灵活性和可维护性。
二、微地址的形成方法
微指令执行的顺序控制问题实质是如何确定下一条微指令的地址的问题。一般来说,有以下几种产生后继微地址的方法:
1. 计数器方式
这种方法和机器指令地址生成类似。顺序执行微指令时,后继微地址由当前微地址加一个增量产生。若是跳转执行,则需通过转移指令来定位下一条微指令的地址。这种方式要求微指令序列在控制存储器中是连续排列的。其特点是顺序控制字段较短,微地址生成结构简单;但转移功能较弱,速度慢,灵活性差。
2. 增量方式与判定方式结合
这种方法将微指令的顺序控制分为两个部分:条件选择字段和转移地址字段。根据条件转移时,将转移地址送入微程序计数器(μPC)。若无转移需求,则按顺序执行下一条微指令(μPC加1)。该方法的图示(图5.32(a))展示了微程序控制器的组成原理,而微指令格式(图5.32(b))由微命令控制字段、条件选择字段和转移地址字段组成。