硬布线控制器

基础

也叫组合逻辑控制器,被当前RISC计算机和高性能计算机普遍采用

控制部件为产生固定时序控制信号的逻辑电路

特点:

  • 形成控制信号的传输延迟少,系统运行速度快

  • 设计控制CPU的时序控制信号的逻辑较复杂

  • 与微程序控制相比,硬布线控制速度快

基本原理:

C=f(Im,Mi,Tk,Bj)C=f(I_m,M_i,T_k,B_j)

CC为微操作控制信号, ImI_m为译码器输出, MiM_i为节拍电位, TkT_k为节拍脉冲, BjB_j为状态条件,C 由组合电路实现,速度快,但难以修改。

结构

定长指令周期三级时序硬布线控制器基本架构
现代时序系统硬布线控制器

树型逻辑网络拥有三个输入:指令译码器的译码输出、结果反馈信息和节拍点位/节拍脉冲发生器。树型逻辑网络内部为组合逻辑电路,根据输入调整输出,输出即为微操作控制信号

与微程序控制器不同的是,时序产生器除了产生节拍脉冲,还需要产生节拍电位信号用来控制流程

所以硬布线控制器的时序信号有三级主状态周期->节拍电位->节拍脉冲

硬布线控制器的指令周期流程

以下图为例。此图使用的CPU模型还是前面的那个模型

时序产生器产生节拍电位信号M1、M2和M3用来控制当前处于流程中的哪一个阶段,也就是各个微操作的先后顺序

比如某控制信号C0在以下情况下被激活:

  • 节拍电位为M1时被激活

  • 节拍电位为M3且指令译码器发出的指令信号为ADD/LAD/AND

那么在树型逻辑网络里面C0的表达式就是C0 = M1 + M3(ADD + LAD + AND)

如果使用同步控制方式,则所有指令都要有M1-M3三个阶段,但是像MOV这种指令在M3阶段没有任何操作,会导致时间的浪费。为了改进,可以使一些指令跳过一些节拍,如MOV指令进行M2节拍之后就结束。相应的节拍信号发生器的电路会更复杂

与微程序控制器相比,微程序控制器的控制信号可以复用(这也导致了速度比较慢),而硬布线完全使用布尔表达式实现,每个输出都有自己的表达式控制,几乎不能复用。可以使用布尔表达式化简

硬布线控制器的设计

  1. 分析指令,列出所有执行的方框图

  2. 对流程进行划分,分隔到不同的时钟周期和节拍电位

  3. 总结表达式

举例:设计如图所示模型机的控制器,假设该模型机的系统只有如下5条指令,使用硬布线控制

5-23
指令助记符
指令
功能

CLA

清零指令

0 -> AC

ADD AC, M

加法指令

(AC) + (M) -> AC

STA M

存数指令

(AC) -> M

JMP m

跳转指令

m -> PC

NOP

空指令

延时

  • 分析指令,画出框图

5-24

因为总线数量受限,取指阶段的三个操作需要使用同一个总线,所以被拆分在了三个节拍脉冲中

  • 对流程进行划分,划分到不同的时钟周期和节拍电位

5-25

给操作分配时钟周期T和节拍电位M

访存操作需要两个时钟周期,其他操作1个时钟周期。每个节拍电位中可以有数量不等的时钟周期。读指令自身一个节拍电位

  • 总结表达式

从图中找出所有的微操作,并命名如下表

5-26

按照流程图给出表达式。注意表达式中同时含有时钟周期和节拍电位

Last updated

Was this helpful?