计算机组成原理第10章:控制单元的设计
1 组合逻辑设计
1.1 组合逻辑控制单元框图
如果将指令译码和节拍发生器从CU中分离出来,可得到简化的控制单元框图如下:
1.2 组合逻辑设计步骤
1.2.1 列出操作时间表
1.2.2 写出微操作命令的最简表达式
根据上述操作时间表可以列出每一个微操作命令的初始逻辑表达式,经化简、整理便可获得能用现成电路实现的微操作命令逻辑表达式。例如:
$$
\begin{array}{l}\\mathrm{M}(\mathrm{MAR}) \longrightarrow \mathrm{MDR} \\=\mathrm{FE} \cdot T_{1}+\mathrm{IND} \cdot T_{1}(\mathrm{ADD}+\mathrm{STA}+\mathrm{LDA}+\mathrm{JMP}+\mathrm{BAN}) \\+\mathrm{EX} \cdot T_{1}(\mathrm{ADD}+\mathrm{LDA}) \\=T_{1}{\mathrm{FE}+\mathrm{IND}(\mathrm{ADD}+\mathrm{STA}+\mathrm{LDA}+\mathrm{JMP}+\mathrm{BAN}) \\+\operatorname{EX}(\mathrm{ADD}+\mathrm{LDA})}\end{array}
$$
1.2.3 画出逻辑图
采用组合逻辑设计方法设计方法设计控制单元,思路清晰,简单明了,速度快(RISC)。但是线路结构十分庞杂,也不规范,调试困难。
2 微程序设计
将一条机器指令编写成一个微程序,每一个微程序包含若干条微指令,每一条微指令对应一个或几个微操作命令。
微程序设计省去了组合逻辑设计过程中对逻辑表达式的化简步骤,无须考虑逻辑门级数和门的扇入希数,设计简单,并且便于调试。缺点是速度较慢。
2.1 微程序控制单元框图及工作原理
采用微程序设计方法设计控制单元的过程就是编写每一条机器指令的微程序,它是按执行每条机器指令所需的微操作命令的先后顺序而编写的。
2.1.1 机器指令对应的微程序
一条机器指令对应一个微程序,如下图所示。
2.1.2 微程序控制单元的基本框图
图中点画框内为微程序控制单元,其中的控制存储器(简称控存)是微程序控制单元的核心部件,用来存放全部微程序;CMAR是控存地址寄存器,用来存放欲读出的微指令地址;CMDR是控存数据寄存器,用来存放从控存读出的微操作。
微指令的基本格式如下图所示,分为两个字段:
- 操作控制字段:发出各种控制信号
- 顺序控制字段:可指出下条微指令的地址(简称下地址)
2.2 微指令的编码方式
编码方式又称微指令的控制方式,是指如何对微指令的控制字段进行编码,以形成控制信号。
2.2.1 直接编码(直接控制)
直接编码是指在微指令的操作控制字段中,每一位代表一个微操作命令。
- “1”代表控制信号有效
- “0”代表控制信号无效
2.2.2 字段直接编码
字段直接编码是指将控制字段分成若干 “段”,将一组互斥的微指令操作命令放在一个字段内,每段经译码后发出控制信号。这种方式因靠字段直接译码发出微命令,故又有显示编码之称。
2.2.3 字段间接编码
这种方式一个字段的某些微命令还需由另一个字段中的某些微命令来解释,称为字段间接编码,又称隐式编码。
2.2.4 混合编码
把直接编码和字段编码(直接或间接)混合使用。
2.3 微指令序列地址的形成
- 直接由微指令的下地址字段指出
- 根据机器指令的操作码形成
- 增量计数器法
- 分支转移
- 通过测试网络形成
- 由硬件产生微程序入口地址
2.4 微指令格式
微指令格式与微指令的编码方式有关,通常分为水平型微指令和垂直型微指令两种。
2.4.1 水平型微指令
水平型微指令的特点是一次能定义并执行多个并行操作的微命令。
2.4.2 垂直型微指令
垂直型微指令的特点是采用类似机器指令操作码的方式,在微指令字中,设置微操作码字段,由微操作码规定微指令的功能。
通常一条微指令有1~2个微命令,控制1~2种操作。
2.4.3 两种微指令格式的比较
- 水平型微指令比垂直型微指令并行操作能力强、效率高、灵活性强
- 水平型微指令执行一条机器指令所需的微指令数目少,因此速度比垂直型微指令的速度快
- 水平型微指令用较短的微程序结构换取较长的微指令结构,垂直型微指令正好相反,它以较长的微程序结构换取较短的微指令结构
- 水平型微指令与机器指令差别较大,垂直型微指令和机器指令相似
2.5 静态微程序设计和动态微程序设计
静态微程序设计:通常指令系统是固定的,对应每一条机器指令的微程序是计算机设计者事先编写好的,因此一般微程序无须改变,其控制存储器采用ROM。
动态微程序设计:人们可以通过改变微指令和微程序来改变机器的指令系统,其控制存储器采用EPROM。
2.6 豪微程序设计
微程序设计用微程序解释机器指令,毫微程序设计用毫微程序解释微程序,毫微指令与微指令的关系好比微指令与机器指令的关系。