一、微程序控制器
1. 基本思想
微程序控制器采用存储逻辑,将微操作信号按照一定规则进行信息编码,形成微指令。再将微指令按照时间的先后顺序排列起来,构成微程序,并存入专门的存储器(控制存储器CM)中。机器执行指令时,一条条读出微指令,从而产生各种操作控制信号,使各部件执行相应的操作。
2. 基本概念
● 微命令:控制部件通过控制总线向执行部件发出的控制命令。
● 微操作:执行部件收到微命令后执行的操作。
● 微指令:在机器的一个CPU周期中,一组实现一定操作功能的微命令的组合,构成一条微指令。
● 微程序:一组完成某个功能的微指令序列,构成一个微程序。
● 控制存储器:简称控存,是用来存放微程序的存储器。
● 微地址:控制存储器的存储单元的编号。
3. 组成部分
微程序控制器的微操作信号发生器由以下部分组成:
- 控制存储器:保存指令系统中所有指令的微程序。
- 微指令寄存器:保存当前正在执行的微指令。
- 微地址寄存器:接受微地址形成部件送来的微地址,为在CM中读取微指令做准备。
- 地址转移逻辑:产生微程序的入口地址和后续地址,保证微指令额连续执行。
4. 微操作分类
- 相容性微操作:能够同时或在同一个CPU周期内并行执行的微操作。
- 相斥性微操作:不能同时或在同一个CPU周期内并行执行的微操作。
在一条微指令中,相容性微操作的微命令可以同时为1,而相斥性微操作的微命令不能同时为1。
5. 工作流程
- 根据PC的值,取出一条内存放入指令寄存器IR;
- 根据微程序入口地址,从控存中取出微指令放入微指令寄存器,产生微命令,完成规定操作;
- 继续从控存中取出下一条微指令并执行,直到这段微程序执行完成,此时一条机器指令执行完毕;
- 重复以上步骤,直到程序执行完毕。
例:如图是一个运算器的数据通路图,设微指令字长为23位,格式如图。试编写指令:ADD R2,R1 -> R2 对应的微程序。
分析:指令的微程序流程图如下:
根据流程图,我们可以得知,该微程序由两条微指令组成,分别为:
- 000 000 000 000 11111 10 0000 (该直接地址不是下一微指令的直接地址,因为需要指令译码;P1即译码后获取地址)
- 010 100 100 100 00000 00 0000 (指令运行完毕,返回起点0000)
其中第一条微指令是取指微指令。对于同一台机器,取指微指令是相同的。也可以单独拿出这条指令,设为机器的取指微程序。
6. 微指令设计目标
设计微指令结构应当追求以下目标:
- 有利于缩短微指令字长
- 有利于减小控存的容量
- 有利于提高微程序的执行速度
- 有利于对微指令的修改
- 有利于提高微程序设计的灵活性
7. 微指令编码方式
- 直接表示法:在微指令的操作控制字段中,每一位代表一个微命令。
优点:简单、直观、运行速度快; 缺点:微指令长度过长。
- 字段直接编码法:控制字段分为若干小字段,一组互斥的微命令放在一个字段内;字段分别编码,每种编码代表一个命令。
优点:缩短微指令字长 缺点:需要译码,减慢执行速度。
- 混合编码法:直接表示法和字段直接编码法混合使用。
8. 微地址形成方式
微地址可以分为两大类:微程序的入口地址和后继微地址。
入口地址是根据机器指令的操作生成的:
第一条微指令的地址可以由专门的硬件电路生成,也可以外部向微地址寄存器输入;该第一条微指令就是取指微程序的入口地址。当取指微程序取出机器指令后,机器指令的操作码字段就会指出各个微程序的入口地址。
因此,对于微地址的形成方式,应重点关注后继微地址。
- 计数器法
顺序执行微程序时,后继微地址由当前的微地址加上一个增量产生(类似于程序计数器PC)。在非顺序执行时,由微指令的顺序控制字段产生转移地址。
优点:顺序控制字段较短,微地址产生机构简单; 缺点:不能实现两路以上的并行微程序转移。
- 断定法
后继微地址由微程序设计者指定,或是根据测试结果直接决定后继微地址的全部或部分值。
优点:灵活性好,速度快; 缺点:微地址产生机构复杂。
9. 微指令格式
- 水平型微指令
一次能定义并执行多个并行操作的微指令格式。上面例题中使用的就是水平型微指令。 - 垂直型微指令
微指令中设有微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能。相当于机器指令操作码的使用方法。
垂直型微指令不要求并行执行的能力,通常一条微指令只有1~2个微命令,执行1~2个微操作。
对于同一条机器指令,需要发出的微命令实际上是固定不变的。水平型微指令牺牲了微指令长度,换来了微指令数目的简化;而垂直型微指令恰好相反。
两者的比较:
- 水平型微指令的并行能力、灵活性更强;
- 水平型微指令执行一条机器指令所需要的微指令数目更少,执行速度更快;
- 水平型微指令用较短的微程序结构换取较长的微指令结构;
- 水平型微指令与机器指令相差较大。
二、硬布线控制器
1. 设计思想
硬布线控制器是采用组合逻辑的思想,把微操作信号发生器看作一个产生专门固定时序控制信号的逻辑电路。
该逻辑电路是按数字逻辑电路的设计原则设计出的由门电路和触发器构成的复杂树形网络,故称为硬布线控制器。
2. 基本结构
硬布线控制器逻辑网络的输入信号共有三类:
● 指令操作码译码器的输出I
● 执行部件的反馈信号B
● 时序部件的时序信号,又分为节拍电位信号M和节拍脉冲信号T
其输出信号就是微操作控制信号C。
由数字电路可以归纳,该逻辑网络的输出方程为:C = f(I, B, M, T)
3. 设计步骤
- 绘制指令的指令周期流程图:以数据通路图为基础,分析所有指令的指令周期流程图。
- 列出微操作时间表:把指令流程图中的微操作序列合理地安排在各个机器周期的节拍和脉冲中,保证不发生冲突。
- 微操作逻辑综合:把同一微操作用逻辑关系式综合起来,并加以简化。
- 画出逻辑电路图。
例:一个数据通路图如下,试设计实现以下指令的硬布线控制器。
分析:
第一步,画出指令周期流程图。
第二步,列出时间表
第三步,根据时间表,得出微操作逻辑表达式。
例如:对于PCout,其在且仅在T0时有效,可以得到PCout = T0;
对于MARin,在T0时一定有效,且在非JZ指令的T3上有效。可以得到MARin = T0 + T3 · !JZ。
最后可得各个微操作控制信号的逻辑表达式如图:
第四步,画出逻辑电路图。(太多了,略)