1 简介
硬布线控制器,又称组合逻辑控制器
2 方法原理
硬布线控制器
一旦控制部件构成后,除非重新设计和物理上对它重新布线,否则要想增加新的控制功能是不可能的。 硬布线控制器是计算机中最复杂的逻辑部件之一。当执行不同的机器指令时,通过激活一系列彼此很不相同的控制信号来实现对指令的解释,其结果使得控制器往往很少有明确的结构而变得杂乱无章。结构上的这种缺陷使得硬布线控制器的设计和调试非常复杂且代价很大。正因为如此,硬布线控制器被微程序控制器所取代。但是,在同样的半导体工艺条件下,硬布线控制器速度要比微程序控制的快,随着新一代机器及VLSI技术的发展与不断进步,硬布线的随机逻辑设计思想又得到了重视,现代新型计算机体系结构如RISC中多采用硬布线控制逻辑。
硬布线控制器主要由组合逻辑网络、指令寄存器和指令译码器、节拍电位/节拍脉冲发生器等部分组成,硬布线控制器的结构方框图如右图所示。其中组合逻辑网络产生计算机所需的全部操作命令,是控制器的核心。
3 信号来源
(1)来自指令操作码译码器的输出I1~Im ,译码器每根输出线表示一条指令,译码器的输出反映出当前正在执行的指令;
(2)来自执行部件的反馈信息B1~Bj ;
(3)来自时序产生器的时序信号,包括节拍电位信号M1~Mi和节拍脉冲信号T1~Tk。其中节拍电位信号就是机器周期(CPU周期)信号,节拍脉冲信号是时钟周期信号。
组合逻辑网络N的输出信号就是微操作控制信号C1~Cn,用来对执行部件进行控制。另有一些信号则根据条件变量来改变时序发生器的计数顺序,以便跳过某些状态,从而可以缩短指令周期。
硬布线控制器的基本原理,归纳起来可叙述为:某一微操作控制信号C是指令操作码译码器输出Im 、时序信号(节拍电位Mi ,节拍脉冲Tk )和状态条件信号Bj 的逻辑函数,其数学描述为:
C=f(Im,Mi,Tk,Bj )
控制信号C是用门电路、触发器等许多器件采用布尔代数方法来设计实现的。当机器加电工作时,某一操作控制信号C在某条特定指令和状态条件下,在某一操作的特定节拍电位和节拍脉冲时间间隔中起作用,从而激活这条控制信号线,对执行部件实施控制。显然,从指令流程图出发,就可以一个不漏地确定在指令周期中各个时刻必须激活的所有操作控制信号。例如,对引起一次主存读操作的控制信号C3来说,当节拍电位M1=1,取指令时被激活;而节拍电位M4=1,三条指令(LDA,ADD,AND)取操作数时也被激活,此时指令译码器的LDA,ADD,AND输出均为1,因此C3的逻辑表达式可由下式确定:
C3=M1+M4(LDA+ADD+AND)
一般来说,还要考虑节拍脉冲和状态条件的约束,所以每一控制信号C可以由以下形式的布尔代数表达式来确定:
Cn=∑(Mi*Tk*Bj*∑Im)
与微程序控制相比,硬布线控制的速度较快。其原因是微程序控制中每条微指令都要从控存中读取一次,影响了速度,而硬布线控制主要取决于电路延迟。因此,在某些超高速新型计算机结构中,又选用了硬布线控制器或与微程序控制器混合使用。
4 设计注意
(1) 采用适宜指令格式,合理分配指令操作码;
(2) 确定机器周期、节拍与主频;
(3) 确定机器周期数及一周期内的操作;
(4) 进行指令综合; 综合所有指令的每一个操作命令,写出逻辑表达式,并进行化简。
(5) 明确组合逻辑电路。 将简化后的逻辑表达式用组合逻辑电路来实现。操作命令的控制信号先用逻辑表达式列出,进行化简,考虑各种条件的约束,合理选用逻辑门电路、触发器等器件,采用组合逻辑电路的设计方法产生控制信号。
总之,控制信号的设计与实现,技巧性较强,一些专门的开发系统或工具供逻辑设计使用,但是,对全局的考虑主要依靠设计人员的智慧和经验实现。