硬布线控制器是早期设计计算机的一种方法。硬布线控制器是将控制部件做成产生专门固定时序
控制信号的
逻辑电路,产生各种
控制信号,因而又称为组合逻辑控制器。这种逻辑电路以使用最少元件和取得最高操作速度为
设计目标,因为该逻辑电路由
门电路和
触发器构成的复杂树型网络,所以称为硬布线控制器。
一旦控制部件构成后,除非重新设计和物理上对它重新布线,否则要想增加新的控制功能是不可能的。 硬布线控制器是计算机中最复杂的
逻辑部件之一。当执行不同的
机器指令时,通过激活一系列彼此很不相同的
控制信号来实现对指令的解释,其结果使得控制器往往很少有明确的结构而变得杂乱无章。结构上的这种缺陷使得硬布线控制器的设计和调试非常复杂且代价很大。正因为如此,硬布线控制器被
微程序控制器所取代。但是,在同样的半导体工艺条件下,硬布线控制器速度要比微程序控制的快,随着新一代机器及VLSI技术的发展与不断进步,硬布线的随机
逻辑设计思想又得到了重视,现代新型
计算机体系结构如RISC中多采用硬布线控制逻辑。
硬布线控制器主要由组合
逻辑网络、
指令寄存器和
指令译码器、节拍电位/节拍
脉冲发生器等部分组成,硬布线控制器的结构
方框图如图1所示。其中组合逻辑网络产生计算机所需的全部操作命令,是控制器的核心。
(1)来自指令
操作码译码器的输出
I1~Im ,译码器每根输出线表示一条指令,译码器的输出反映出当前正在执行的指令;
组合
逻辑网络N的
输出信号就是微操作
控制信号C1~Cn,用来对执行部件进行控制。另有一些信号则根据条件变量来改变时序发生器的计数顺序,以便跳过某些状态,从而可以缩短
指令周期。
硬布线控制器的基本原理,归纳起来可叙述为:某一微操作
控制信号C是指令
操作码译码器输出Im 、
时序信号(节拍电位Mi ,节拍脉冲Tk )和状态条件信号Bj 的
逻辑函数,其数学描述为:
控制信号C是用
门电路、
触发器等许多器件采用
布尔代数方法来设计实现的。当机器加电工作时,某一操作
控制信号C在某条特定指令和状态条件下,在某一操作的特定节拍电位和节拍脉冲
时间间隔中起作用,从而激活这条控制
信号线,对执行部件实施控制。显然,从指令
流程图出发,就可以一个不漏地确定在
指令周期中各个时刻必须激活的所有操作控制信号。例如,对引起一次
主存读操作的控制信号C3来说,当节拍电位M1=1,取指令时被激活;而节拍电位M4=1,三条指令(
LDA,ADD,AND)取
操作数时也被激活,此时
指令译码器的LDA,ADD,AND输出均为1,因此C3的
逻辑表达式可由下式确定:
一般来说,还要考虑节拍脉冲和状态条件的约束,所以每一
控制信号C可以由以下形式的布尔代数
表达式来确定:
与
微程序控制相比,硬布线控制的速度较快。其原因是微程序控制中每条
微指令都要从控存中读取一次,影响了速度,而硬布线控制主要取决于电路延迟。因此,在某些超高速新型计算机结构中,又选用了硬布线控制器或与
微程序控制器混合使用。
(5) 明确
组合逻辑电路。 将简化后的
逻辑表达式用组合逻辑电路来实现。操作命令的
控制信号先用逻辑表达式列出,进行化简,考虑各种条件的约束,合理选用
逻辑门电路、
触发器等器件,采用组合逻辑电路的设计方法产生控制信号。
总之,控制信号的设计与实现,技巧性较强,一些专门的开发系统或工具供
逻辑设计使用,但是,对全局的考虑主要依靠设计人员的智慧和经验实现。
硬布线控制器与
微程序控制器相比较,在操作
控制信号的形成上有较大的区别外,其它没有本质的区别。对于实现相同的一条指令,不管是采用硬布线控制还是采用微程序
控制技术,都可以采用多种逻辑
设计方案,导致了各种不同的控制器在具体实现方法和手段上的区别,性能差异。
微程序控制器的控制功能是在存放微程序
存储器和存放当前正在执行的
微指令的
寄存器直接控制下实现的,而硬布线控制的功能则由
逻辑门组合实现。微程序控制器的电路比较规整,各条指令信号的差别集中在
控制存储器内容上,因此,无论是增加或修改指令都只要增加或修改控制存储器内容即可,若控制存储器是
ROM,则要更换芯片,在
设计阶段可以先用
RAM或
EPROM来实现,验证正确后或
成批生产时,再用ROM代替。硬布线控制器的
控制信号先用
逻辑式列出,经化简后用电路来实现,因此,显得零乱复杂,当需要修改指令或增加指令时就必须重新设计电路,非常麻烦而且有时甚至无法改变。因此,微操作控制取代了硬布线控制并得到了广泛应用,尤其是指令复杂的计算机,一般都采用微程序来实现控制功能。
在同样的半导体工艺条件下,微程序控制的
速度比硬布线控制的速度低,因为执行每条微程序指令都要从
控制存储器中读取,影响了速度;而硬布线
控制逻辑主要取决于电路延时,因而在超高速机器中,对影响速度的关键部分如核心部件
CPU,往往采用硬布线逻辑实现。在一些新型
计算机系统中,例如,RISC(精简指令系统计算机)中,一般都选用硬布线
逻辑电路。