计算机组成原理学习笔记——控制器
CPU 中的控制器相关知识。
·
一、结构和功能
1、结构
- 计算机硬件系统的五大功能部件通过
数据总线、地址总线和控制总线
连接在一起,如下图:
1)运算器部件通过数据总线
与内存储器、输入设备和输出设备传送数据
。
2)输入设备和输出设备通过接口电路与总线
相连。
3)内存储器、输入设备和输出设备从地址总线
接收地址信息,从控制总线
得到控制信号,通过数据总线
与其他部件传输数据。
4)控制器部件从数据总线
接收指令信息,从运算器部件接收转移指令地址,送出指令地址到地址总线,并向其他部件提供运行所需的控制信号。
2、功能
- 控制器作为计算机系统的指挥中心,其主要功能有:
1)从主存中取出指令
和指出下一条指令的地址
。
2)进行指令译码、测试
,产生对应的控制信号
。
3)指挥并控制 CPU、主存、I/O之间的数据流
。
二、硬布线控制器
- 硬布线控制器的基本原理是根据指令的要求、当前的时序和外部及内部状态,
按时间顺序
产生一系列微操作控制信号
。通常由复杂的组合逻辑门电路和一些触发器构成,因此又称组合逻辑控制器
。 - 硬布线控制单元图如下:
- 指令操作码是决定控制单元发出控制信号的关键,
CU 的输入信号来源
:
1)经指令译码器
译码产生的指令信息。
2)时序系统
产生的机器周期信号和节拍信号。
3)来自执行单元
的反馈信息(标志)。
4)来自控制总线
的控制信号(中断请求等)。
1、硬布线控制器的时序系统及微操作
1)时钟周期
- 用
时钟信号控制节拍发生器
产生宽度为一个时钟周期的节拍。
2)机器周期
- 通常以
存取周期作为基准时间
,即内存中读取一个指令字的最短时间作为机器周期。
3)指令周期
- 一条指令从主存取出到执行完成的时间。
4)微操作命令分析
- 控制单元发出一系列用于
控制功能部件
执行相关功能的操作信号
,必须按一定顺序发出才能让机器有序地工作。
1.1、微操作命令
一条指令分为 3 个工作周期:取指、间址和执行
,每个周期地微操作命令:
2、CPU 控制方式
- 主要有
同步控制、异步控制和联合控制
三种控制方式。
1)同步控制
- 指系统有一个
统一的时钟
,所有控制信号均来自这个统一的时钟信号;通常以最长的微操作序列和最繁琐的微操作为标准
,采取完全统一的、具有相同时间间隔和相同数目的节拍作为机器周期来运行不同指令。优点是电路简单
,缺点是速度慢
。
2)异步控制
- 指
不存在基准时标信号
,各部件按自身固有的速度工作
,通过应答方式联络
;优点是运行速度快
,缺点是控制电路复杂
。
3)联合控制
- 是
同步控制、异步控制的折中
,对不同指令的微操作实行大部分采用同步控制、小部分采用异步控制的方法。
3、设计步骤
- 硬布线控制单元设计步骤包括:
- 1)列出微操作的
操作时间表
。先根据微操作节拍安排,列出微操作命令的操作时间表,操作时间表包括各个机器周期、节拍下每条指令完成的微操作控制信号。 - 2)进行为
操作信号综合
。根据微操作时间表进行综合分析、归类,写出各微操作控制信号的逻辑表达式并进行适当简化;表达式一般包括下列因素:
微操作控制信号=机器周期∧节拍∧脉冲∧操作码∧机器状态条件
经过化简、整理得出用现有门电路实现的微操作命令逻辑表达式。 - 3)画出
微操作命令的逻辑图
。根据逻辑表达式画出对应每个微操作信号的逻辑电路图,并用逻辑门电路实现。
三、微程序控制器
- 微程序控制器通过
将微操作信号代码化,使每条机器指令转化为一段微程序并存放在专门的控制存储器,微操作控制信号由微指令产生
;因此,微程序控制用存储逻辑实现。
1、基本概念
- 微程序设计思想:
将每条机器指令编写成一个微程序,每个微程序包含若干微指令,每条微指令对应一个或几个微操作命令
。 - 微程序设计技术相关术语:
1)微命令和微操作
- 一条机器指令可分解为一个微操作序列,而微操作是计算机中最基本、不可再分的操作。
- 在微程序控制的计算机中,将
控制部件向执行部件发出的各种控制命令称为微命令
。 - 微命令的相容性:
指那些可以同时产生、共同完成某一些微操作的命令
。 - 微命令的互斥性:
指在机器中不允许同时出现的微命令
。 - 微命令的相容与互斥是相对的,不是绝对的。
2)微指令与微周期
- 微指令:
若干微命令的集合
,存放微指令的控制存储器的单元地址称为微地址;一条微指令包括:操作控制字段(操作码字段),用于产生某一步操作所需的各种操作信号;顺序控制字段(微地址码字段),用于控制产生下一条要执行的微指令地址
。 - 微周期:
指从控制存储器中读取一条微指令并执行相应微操作所需的时间
。
3)主存储器与控制存储器
- 主存储器用于
存放程序和数据
,位于 CPU 外部,用 RAM 实现;控制存储器(CM)用于存放微程序
,在 CPU 内部,用 ROM 实现。
4)程序与微程序
- 程序是
指令的有序集合
,用于完成特定的功能;微程序是微指令的有序集合
,一条指令的功能由一段微程实现
。微程序用于描述机器指令,是机器指令的实时解释器,由计算机设计者事先编制好并存放在控制存储器中,一般不提供给用户
;程序由机器指令组成,由软件设计人员事先编制好并存放在主存或辅存中。
2、微程序控制器的结构
- 相比组合逻辑控制器,微程序控制器多了控制存储器、微指令寄存器、微地址形成部件和微地址寄存器。
①控制存储器
微程序控制器的核心,存放各指令对应的微程序,用 ROM 制作
。
②微指令寄存器
存放从控制存储器取出的微指令,位数同微指令字长
。
③微地址形成部件
用于产生初始微地址和后继微地址,为在控制存储器中读取微指令做准备
。
3、微程序控制器工作过程
①取微指令
- 执行取微指令公共操作,在机器开始运行时,将
取指微程序入口地址(一般为 0 号单元)
送入 CMAR,并从 CM 读取相应微指令送入 CMDR。
②翻译微指令
- 指
解析微指令的操作码字段
,通过微地址形成部件产生该机器指令对应的微程序的入口地址,并送入 CMAR。
③执行
-从 CM 中逐条取出对应微指令并执行
。
④为下一个执行准备
指执行完当前机器指令对应的微程序后,回到取指微程序入口地址,继续第①步操作
。- 由于任何机器指令的取指令操作都是相同的,故而将取指令操作的微命令统一编成一个微程序,该微程序只负责从主存单元取出指令并送到指令寄存器。
若指令系统中有 n 种机器指令,则控制存储器种的微程序数量至少是 n+1.
4、微指令的编码
- 指如何
对微指令的控制字段进行编码
,以形成控制信号;编码的目标是在保证速度的情况下,尽量缩短微指令字长
。
1)直接编码
- 又叫
直接控制方式
,此方式下无须进行译码
,微指令中的每一位都代表一个微命令
;设计微指令时,选用某个微命令则只需将对应位设置成 1,反之则反。
优点是简单、直观,执行速度快,操作并行性好;缺点时微指令字长容易过长,n 个微命令则微指令就得有 n 位,造成控制存储器容量极大。
2)字段直接编码方式
将微指令的微命令字段分成若干小字段,把互斥性微命令组合在同一字段中,把相容性微命令组合在不同字段中
,每个字段独立编码,每种编码对应一个微命令且个字段编码含义单独定义,与其他字段无关,如下图:
- 优点是缩短微指令字长,缺点就是速度较直接编码慢,因为需要经过译码电路后再发出微命令。微命令分段原则如下:
①互斥性微命令再同一段内,相容性的不同段;
②每个小段包含的信息位不能太多,否则增加译码线路的复杂性和译码时间;
③一般每个小段要留出一个状态,表示本字段不发出任何微命令。因此,但某字段为 3 位,则最多只能表示 7 个互斥的微命令,通常 000 表示不操作。
3)字段间接编码
一个字段的某些微命令需由另一个字段中的某些命令来解释,因此称为字段间接编码
,又称隐式编码。可进一步缩短微指令字长,但因为削弱了微指令的并行控制能力,因此通常作为字段直接编码方式的一种辅助手段。
5、微指令的地址形成方式
- 后继微地址的形成主要有:
- 1)直接由微指令的
下地址字段指出
。微指令中设置一个下地址字段,由微指令的下地址字段直接指出后继指令的地址,这种方式又称为断定方式
。 - 2)
根据机器指令的操作码形成
。机器指令取至指令寄存器后,微指令的地址由操作码经微地址形成部件形成。 - 3)其他方法:
①增量计数器法,即(CMAR)+1→CMAR,适用于后继微指令的地址连续的情况。
②根据各种标志决定微指令分支转移的地址。
③通过网络测试形成。
④由硬件直接产生微程序入口地址;电影加电后,第一条微指令的地址可由专门的硬件电路产生,也可由外部直接向 CMAR 输入微指令的地址,这个地址即为取指周期微程序的入口地址。
6、微指令格式
- 微指令格式与编码方式有关,通常分为
水平型微指令和垂直型微指令
。
1)水平型微指令
直接编码、字段直接编码、字段间接编码和混合编码
都属于水平型微指令,其基本指令格式如下:
每一位都对应一个控制信号,1 表示有效,0 表示无效
。优点是微程序短,执行速度快;缺点是微指令长,编写微程序较麻烦。
2)垂直型微指令
采用类似机器指令操作码的方式,在微指令中设有操作码字段
,采用微操作码编译法,由微操作码规定微指令的功能,指令格式如下:
3)混合型微指令
-
在垂直型基础上增加一些不太复杂的并行操作,具有微指令较短、便于编写、微程序短和执行速度快的特定。
-
水平型微指令和垂直型微指令的异同:
①水平型并行操作能力强、效率高、灵活性强;垂直型则较差。
②水平型的指令执行时间短;垂直型的指令执行时间长。
③由水平型微指令解释指令的微程序,具有微指令字较长但微程序短的特点;垂直型则相反,其微指令短而微程序较长。
④水平型微指令用户难以掌握,而垂直型微指令与指令比较相似,相对容易掌握。
7、微程序控制单元的设计
- 微程序控制单元设计的主要任务是编写各条机器指令所对应的微程序,通常步骤如下:
- 1)写出对应机器指令的微操作命令及节拍安排。
- 2)确定微指令格式。
- 3)编写微指令码点。
7.1、动态微程序设计和毫微程序设计
1)动态微程序设计
- 在一台微程序控制的计算机中,假如能根据用户的要求改变微程序的内容,实现动态微程序设计可采用可擦除可编程只读存储器(EPROM)。
2)毫微程序设计
- 在普通的微程序计算机中,从主存取出的每条指令是由放在控制存储器中的微程序来解释执行的,通过控制线对硬件进行直接控制。若硬件不由微程序直接控制,而是通过存放在第二级控制存储器中的毫微程序来解释的,这个第二级控制存储器就称为毫微存储器,直接控制硬件的就是毫微指令。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献9条内容
所有评论(0)