计算机组成:控制器
一、概述
还记着数据通路那部分中,有一大堆控制信号咩,这些控制信号又称微命令,主宰着通路的正常运行,而控制器,就是在特定时间产生特定控制信号的系统,一般由下面三个部分组成:
- 控制寄存器、译码器:PC、IR、指令译码器 ID
- 时序信号产生器
- 控制单元 CU
时序系统
时序系统由一组作为时间基准的信号组成,称为时序信号 。
三级时序体制
- 主状态周期:又称机器周期/CPU 周期,一个指令可由几个步骤组成,每一步所需要时间就是一个主状态周期
- 节拍电位:一个主状态周期中可以执行多个相互独立的传送操作,可以将其划分为若干节拍点位,一个节拍宽度对应一个时钟周期,用来控制产生电位型操作控制信号
- 节拍脉冲:在要给节拍点位中可以包含多个节拍脉冲,用于产生脉冲型操作控制信号,作为寄存器或触发器的控制信号
计算机控制方式
同步控制
采用统一的时间基准信号为所有操作进行定时:
- 完全统一的机器周期和节拍
- 不定长机器周期
- 中央控制与局部控制结合
- 常采用三级时序系统(机器周期、节拍、脉冲)
异步控制
不需要统一的时间基准信号来定时
- 每条指令、每个操作需要多少时间就占用多少时间
- 当控制器发出某一操作控制信号后,等待执行部件完成该操作后送回“完成”信号,再开始新的操作
- 可以充分发挥各部件的运行速度,时间利用率高,但控制复杂,技术上不易实现
- 异步控制的计算机常采用二级时序系统(节拍、脉冲)
联合控制
同步 + 异步
- 以同步控制为主,以异步控制为辅,称为同步计算机
- 以异步控制为主,以同步控制为辅,称为异步计算机
例如:
在一台计算机中,CPU 内部,常采用同步控制方式;主机和 I/O 间,常采用异步控制方式。
- CPU和内存间,采用同步(同步机)
- CPU和内存间,采用异步(异步机)
二、组合逻辑控制器
控制单元是一个组合逻辑网络,产生全机运行所需要的全部控制信号
比如在多周期数据通路下,将各个周期间的信号的变化做成有限状态机,如图:
目标 CU 有两种实现方案:
-
同步 CU:组合逻辑模块 + 当前状态寄存器 SR
-
异步 CU:和同步没啥区别,就多一个 Ready 信号
三、微程序控制器
控制单元被称为微程序控制单元,其组成核心是 CM(Control Memory,控制存储器),由微程序解释执行机器指令,产生指令运行所需要的全部控制信号。
首先要确认各个微命令之间的关系:
- 相容性微命令:能在同时或同一个时钟周期内有效的微命令,例如:存储器读(MemRd)、指令寄存器写(IRWr)、加法(add)和 PC 写(PCWr)等
- 互斥性微命令:不能在同时或在同一个时钟周期内有效的微命令,例如:存储器读(MemRd)和存储器写(MemWr)等
将这些微命令用 0-1 表示,组成一大串二进制串,这个串就是所谓的微指令,若干微指令结合就能实现一条指令的执行,这些微指令合起来就是一段微程序,全部微操作都存在 CM 中。
微指令基本格式
- 操作控制字段(μOP):一堆微命令
- 顺序控制字段(μAddr):指出下一条微指令在 CM 中的地址
微指令编码方式
直接编码方式
微操作控制字段的每一位表示一个微命令,“0”表示无效,“1”表示有效
字段直接编码方式
将微操作控制字段分为若干小字段,把一组互斥微命令组织在一起,用一个小字段编码表示,将相容的微命令安排在不同字段内。在某一时刻,每个字段通过译码产生一条微命令,不同字段可以发出多条微命令
注意:为每个字段分配编码时,应考虑无操作的情况,即 n 位通常仅能安排 2n -1 个微命令。
字段间接编码方式
在字段直接编码方式的基础上,若规定一个字段的某些微命令,要兼由另一个字段中的某些微命令来解释,称为字段间接编码方式
混合编码方式
当分段编码方式(直接或间接)中某些小字段的位数少到只有一位时,就可认为是直接编码方式和字段直接编码方式的混合编码方式
举例
某机的微指令格式中,共有8个控制字段,每个字段可分别激活5、8、3、16、1、7、25、4种控制信号。分别采用直接编码和字段直接编码方式设计微指令的操作控制字段,并说明两种方式的操作控制字段各取几位。
⑴ 采用直接编码方式时,直接用微指令的操作控制字段的一位表示 1 个微命令,则操作控制字段的位数等于微命令个数,即:总位数 = 5+8+3+16+1+7+25+4 = 69 位
⑵ 采用字段直接编码方式时,每个小字段中的微命令应为互斥的。此时为每个小字段分配位数时要在有效微命令个数的基础上再加 1 种无操作状态,则每个小字段需给出的状态数分别为6、9、4、17、2、8、26、5种,据此设计的微指令的操作控制字段格式如下:
共分8个小字段,微指令操作控制字段的总位数为: 总位数=3+4+2+5+1+3+5+3=26位
ps:与直接编码法相比,压缩了:69-26 = 43 位
微地址形成方法
直接表示方法
顺序控制字段直接给出后继微地址
增量方法(计数器方法)
- 硬件上CMAR 增加计数功能(μPC)
- 两种基本格式:顺序微指令和转移微指令
- 二路分支
增量 + 下址字段相结合
- 硬件上CMAR 增加计数功能(μPC)
- 仅有一种微指令格式,每条微指令都具有转移功能
- 二路分支
断定方式
- 后继微地址只能由微指令的顺序控制字段产生
- 每一条微指令都具有转移能力,CMAR 无计数功能
- 微指令中给出后继微地址的部分位,其余位由机器运行状态来断定(其实就是状态机)
特点:可实现微程序的多路分支转移,转移路数由微地址被断定的位数决定
微入口技术
微入口解决的是机器指令 - 微程序对应的问题,根据特定机器指令进入对应的微程序执行的方法通常称为“功能转移”,按照机器指令操作码转移到相应微程序的入口,属于微程序多路分支,需要外加相应的硬件逻辑实现:
-
硬件查表法(ROM 或者 PLA)
-
转移地址产生逻辑
设计实例
直接编码 + 直接表示 + 二级功能转移
-
微命令编码方式:直接编码方式
-
微地址形成方法:直接表示方式
-
微入口:二级功能转移(指令操作码译码,LW/SW)
混合编码 + 编码选择 + 二级功能转移
-
微命令编码方式:混合编码方式
-
微地址形成方法:编码选择微地址
异步内存 + 混合编码 + 条件选择+ 编码选择
-
采用异步内存方式:存储器以Ready应答MemRd、MemWr命令
-
微命令编码方式:混合编码方式
-
微地址形成方法:条件选择+编码选择微地址

原文链接:计算机组成:控制器
nightmorning的博客 版权所有,转载请注明出处。
感觉我们学的不是同一个计算机组成╮(╯▽╰)╭
这些东西我们老师都没讲,讲的只是基础的理论
这些东西只存在于实验课上的看不懂的讲义里面
这玩意儿期末差点没把人搞死。。。实验也是,指令流水 CPU 设计 (\#-_-)\┯━┯