中央处理器__ 操作控制器
操作控制器
常见的有两种:
- 时序逻辑型:硬布线控制器
- 存储逻辑型:微程序控制器
硬布线控制器
硬布线控制器,它是采用时序逻辑技术来实现的,其操作控制信号形成部件是由门电路组成的复杂树形网络。
这种方法是分立元件时代的产物,以使用最少器件数和取得最高操作速度为设计目标。
优点: 速度快
缺点:
时序、控制信号形成部件的结构不规整,使得设计、调试、维修较困难,难以实现设计自动化。
微程序控制器
微程序控制器是采用存储逻辑来实现的,也就是把微操作信号代码化,使每条机器指令转化成为一段微程序并存入一个专门的存储器(控制存储器)中,微操作控制信号由微指令产生。
优点:
它具有设计规整、调试、维修以及更改、扩充指令方便的优点,易于实现自动化设计,已成为当前控制器的主流。
缺点:
由于增加了一级控制存储器,所以指令执行速度比组合逻辑控制器慢。
微程序控制器
发展
微程序的概念和原理是由英国剑桥大学的M·V·Wilkes教授于1951年在曼彻斯特大学计算机会议上首先提出来的,当时还没有合适的存放微程序的控制存储器的元件。
直到1964年,IBM公司在IBM 360系列机上成功地采用了微程序设计技术。
20世纪70年代以来,由于VLSI技术的发展,推动了微程序设计技术的发展和应用。
目前,从大型机到小型机、微型机都普遍采用了微程序设计技术。
基本思想:
仿照解题的方法,
- 把操作控制信号编制成微指令,存放到CPU中的控制存储器里
- 运行时,从控存中取出微指令,产生指令运行过程中所需的各种操作控制信号。
因此:
微程序设计技术是用软件方法来设计硬件的技术。
微程序控制原理
组成计算机的部件可以分为\(控制部件和执行部件\)两大类,他们之间通过控制线进行联系。
微命令和微操作
微命令:
控制部件向执行部件发出的各种控制命令叫作微命令,它是构成控制序列的最小单位。
方向:\(控制部件\to 执行部件\)
例如:打开或关闭某个控制门的电位信号、某个寄存器的打入脉冲等。
微命令是控制计算机各部件完成某个基本微操作的命令。
微操作
执行部件接受微命令后所完成的操作叫微操作。微操作是执行部件中最基本的操作。
方向:\(执行部件\to 操作\)
分类:
由于数据通路的结构关系,微操作可分为相容性的和互斥性的两种:
-
互斥性的微操作
是指不能同时或不能在同一个CPU周期内可以并行执行的微操作。可以编码实现 -
相容性的微操作
是指能够同时或在同一个CPU周期内并行执行的微操作。必须各占一位
举例
1,2,3之间相互相容。 4,6,8与5,7,9相容
两者关系:微命令和微操作是一一对应的。
微命令是微操作的控制信号,微操作是微命令的操作过程。
微指令和微程序
微指令
把在同一个CPU周期内一组实现一定操作功能的微命令的组合叫做一条微指令(Microinstruction)。
它是并行执行的微操作控制信息,存储在控制存储器
里。
内容:
一条微指令通常至少包含 两大部分信息:
- 操作控制字段/微操作码字段 用以产生某一步操作(CPU周期)所需的各个微操作控制信号。
某位为1,表明发微命令
(微指令发出的控制信号都是节拍电位信号,持续时间为一个CPU周期,微命令信号还要引入时间控制)
- 顺序控制字段/微地址码字段 用以控制产生下一条要执行的微指令地址。
微程序
实现一条机器指令功能的一系列微指令的有序集合就是微程序。
一段微程序对应一条机器指令。
微地址 :存放微指令的控制存储器的单元地址
CPU周期和微指令周期的关系
为了保证整个机器控制信号的同步和设计的简易性。
通常将一个微指令周期设计的恰好和CPU周期时间相等。
机器指令和微指令的关系
-
一条机器指令对应着一段微程序
-
对应的硬件设备不同
-
一个CPU周期就是一条微指令
下面我们举一个十进制加法指令为实例。
微指令基本格式
十进制加法指令 ADDB R1,R2,假定操作码为1010
数据通路图
操作流程图(假定相加的俩数已存放在R1、R2中,常数6在R3中)
微程序控制器
微程序控制器原理框图如下:
控制存储器(CM) 是微程序控制器的核心部件,用来存放微程序。
其性能(包括容量、速度、可靠性等)与计算机的性能密切相关。
微指令寄存器(μIR) 用来存放从CM取出的正在执行的微指令,它的位数同微指令字长相等。
由两部分组成:
-
微地址寄存器(μMAR) 它接受微地址形成部件送来的微地址,为下一步从CM中读取微指令作准备。
-
微命令寄存器: 产生一个CPU周期下所需要的全部控制信号。
微命令寄存器则保存一条微指令的操作控制字段和判别测试字段的信息。
地址转移逻辑(微地址形成部件) 用来产生初始微地址和后继微地址,以保证微指令的连续执行。
- 一般情况下,微指令由控存读出后就直接给出了下一条微指令的所在地址;
- 当微程序发生转移时,需要通过判别测试字段P(下地址)和执行部件的“状态条件”反馈信息,来修改微地址寄存器的内容来形成。
机器指令的执行过程
指令周期: 取出并执行一条机器指令所需的时间。
机器周期/CPU周期/总线周期: 通常把一条指令周期划分为若干个机器周期,每个机器周期完成一个基本操作。
一个机器指令 = 一段微程序
又因为通常微指令周期=CPU周期,
因此 一个机器指令周期=多个CPU周期=多个微指令周期
借助微程序控制器就可以自动的完成程序的所有机器指令,一条机器指令的执行过程如下:
(设只有取指令和执行指令两个CPU周期)
(一) 取指令
取指令的公共操作通常由一段取指微程序来完成,
- 在机器开始运行时,自动将取指微程序的入口微地址送μMAR
- 从CM中读出相应的微指令送入μIR。
- 微指令的操作控制字段产生有关的微命令,用来控制实现取机器指令的公共操作。取指微程序的入口地址一般为CM的0号单元,
当取指微程序执行完后,从主存中取出的机器指令就已存人指令寄存器IR中了。
(二)执行指令
2. 由机器指令的操作码字段通过微地址形成部件产生出该机器指令所对应的执行阶段微程序的入口地址,并送入μMAR
-
从CM中逐条取出对应的微指令并执行之,每条微指令都能自动产生下一条微指令的地址。
-
一条机器指令对应的微程序的最后一条微指令执行完毕后,其下一条微指令地址又回到取指微程序的人口地址,从而继续第(1)步,以完成取下条机器指令的公共操作。
如此周而复始,直到整个程序的所有机器指令执行完毕。
微程序设计技术
设计微指令应当追求的目标
- 有利于缩短微指令的长度
- 有利于缩小CM的容量
- 有利于提高微程序的执行速度
- 有利于对微指令的修改(因为微程序针对 存储逻辑 提出)
- 有利于提高微程序设计的灵活性
微命令的编码方法
编码有三种方法:直接表示法/编码表示法/混合表示法
直接表示法
操作控制字段中的各位分别可以直接控制计算机,不需要进行译码。
直接表示法中,操作控制字段中的每一个独立的二进制位代表一个微命令,该位为“1”表示这个微命令有效,为“0”表示这个微命令无效。
直接表示法特点:
-
这种方法结构简单,并行性强,操作速度快,
-
微指令字太长,若微命令的总数为N个,则微指令字的操作控制字段就要有N位。
-
另外,在N个微命令中,有许多是互斥的,不允许并行操作,将它们安排在一条微指令中是毫无意义的,只会使信息的利用率下降。
编码表示法
将操作控制字段分为若干个小段,每段内采用最短编码法,段与段之间采用直接控制法。
编码表示法特点:
- 可以避免互斥,使微指令字大大缩短,
- 但增加了译码电路,使微程序的执行速度减慢,
注意: n位编码最多只能表示\(2^{n-1}\)个微命令。
混合编码法
将前两种结合在一起,兼顾两者特点。
一个字段的某些编码采用直接控制法;而另一些采用最短编码法。
编码注意几点:字段编码法中操作控制字段并非是任意的,必须要遵循如下的原则:
- ①把互斥性的微命令分在同一段内,兼容性的微命令分在不同段内。
这样不仅有助于提高信息的利用率,缩短微指令字长,而且有助于充分利用硬件所具有的并行性,加快执行的速度。 - ②应与数据通路结构相适应。
- ③每个小段中包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间。
- ④一般每个小段还要留出一个状态,表示本字段不发出任何微命令。 因此当某字段的长度为三位时,最多只能表示七个互斥的微命令,通常用000表示不操作。
微指令地址的形成
微指令执行的顺序控制问题,实际上是如何确定下一条微指令的地址问题。
入口地址的产生方式:
每条机器指令对应一段微程序,当公用的取指微程序从主存中取出机器指令之后,由机器指令的操作码字段指出各段微程序的入口地址,这是一种多分支(或多路转移)的情况。
后继微地址的产生方式主要有两种:
- 计数器方式 (增量方式):\(( CMAR ) + 1 \to CMAR\)
- 多路转移方式 (断定方式):微指令的 下地址字段 指出
入口地址的形成方法
入口地址形成:如果机器指令操作码字段的位数和位置固定,可以直接使用操作码与微程序入口地址的部分位相对应。
后继微地址形成方法
计数器方式/增量方式
计数器方式/增量方式:同程序器计数PC原理类似,也就是 \(( CMAR ) + 1 \to CMAR\)。具体方法如下:
- 在微程序顺序执行时:后继微地址就是现行微地址加上一个固定增量(通常为1);
- 当微程序遇到转移或转子程序时:由微指令的转移地址段来形成后继微地址。
注意:
- 顺序执行的微指令序列必须安排在控制存储器的连续单元中。
- 在这种方法中,微地址寄存器μMAR通常改为微程序计数器μPC。
优点: 微指令的顺序控制字段较短,微地址产生机构简单。
简单、易于掌握,编制微程序容易
缺点: 多路并行转移功能较弱,速度较慢,灵活性较差。
是这种方式不能实现两路以上的并行微程序转移,因而不利于提高微程序的执行速度。
多路转移的方式/断定方式
多路转移方式/断定方式:后继微地址根据条件转移,条件可以是状态条件/测试/操作码
。
(微指令格式中设置一个下地址字段,由微指令的下地址字 段直接指出后继微指令的地址,这种方式又称为断定方式。)
- 测试段如果只有一位,则微地址将产生两个分支;若有两位,则最多可产生四个分支;依此类推,\(测试段为n位最多可产生2^n个分支\)。
例题
【例2】微地址寄存器有6位(μA5-μA0),当需要修改其内容时,可通过某一位触发器的强置端S将其置“1”。现有三种情况:
(1)执行“取指”微指令后,微程序按IR的OP字段(\(IR_3-IR_0\))进行16路分支;
(2)执行条件转移指令微程序时,按进位标志C的状态进行2路分支;
(3)执行控制台指令微程序时,按\(IR_4,IR_5\)的状态进行4路分支。
请按多路转移方法设计微地址转移逻辑。
按所给设计条件,微程序有三种判别测试,分别为P1,P2,P3。 由于修改μA5-μA0内容具有很大灵活性,现分配如下:
(1)用P1和IR3-IR0修改μA3-μA0;
(2)用P2和C修改μA0;
(3)用P3和IR5,IR4修改μA5,μA4。
另外还要考虑时间因素T4(假设CPU周期最后一个节拍脉冲),故转移逻辑表达式如下:
μA5=P3·IR5·T4
μA4=P3·IR4·T4
μA3=P1·IR3·T4
μA2=P1·IR2·T4
μA1=P1·IR1·T4
μA0=P1·IR0·T4+P2·C·T4
由于从触发器强置端修改,故前5个表达式可用“与非”门实现,最后一个用“与或非”门实现。
下图仅画出了μA2、μA1、μA0触发器的微地址转移逻辑图。
微指令格式
微指令格式分为两类:
- 水平型微指令:一条微指令能定义多个可并行的微命令。
- 垂直型微指令:一条微指令只能定义一个微命令,由微操作码字段规定具体功能
比较
(1)水平型微指令并行操作能力强,效率高,灵活性强,垂直型微指令则较差。
(2)水平型微指令用来解释执行一条机器指令的时间短,垂直型微指令执行时间长。
(3)由水平型微指令解释指令的微程序,有微指令字较长而微程序短的特点。垂直型微指令则相反。
(4)水平型微指令用户难以掌握,而垂直型微指令与指令比较相似,相对来说,比较容易掌握。
水平型微指令
水平型微指令:一条微指令能定义多个可并行的微命令。
它具体又分为三种:全水平型,字段译码法水平型,混合型
组成:
- 控制字段
- 判别测试字段:控制微程序转移的条件(几个条件就占几位)
- 下地址字段:和控制存储器容量有关(\(2^x\)关系)
优点: 微程序短,执行速度快
- 微指令字较长,速度较快。
- 执行的微操作有高度的并行性。
- 微指令译码简单。
- 控制存储器的纵向容量小,灵活性强。
缺点: 微指令长,编写微程序较麻烦。
- 微指令字比较长,明显地增加了控制存储器的横向容量。
- 水平微指令与机器指令差别很大,一般要熟悉机器结构、数据通路、时序系统以及指令执行过程的人才能进行微程序设计,这对用户来说是很困难的。
垂直型微指令
垂直型微指令:一条微指令只能定义一个微命令,设置微操作码字段,采用操作码编译法,由微操作码规定微指令的功能。(类似机器指令)
- 微操作码:规定微指令的功能
特点:
- 微指令字短,一般为10~20位左右。
- 微指令的并行微操作能力有限,一条微指令一般只包含一个微操作命令。
优点: 微指令短、简单、规整,便于编写微程序
- 设计用户只需注意微指令的功能,而对微命令及其选择、数据通路的结构则不用过多地考虑,因此,便于用户编制微程序。
- 编制的微程序规整、直观,便于实现设计的自动化。
- 垂直微指令字较短,使控制存储器的横向容量少。
缺点: 微程序长,执行速度慢,工作效率低。
- 微指令的并行微操作能力有限,一条微指令一般只包含一个微操作命令。
- 微指令译码比较复杂。全部微命令用一个微操作控制字段进行编码,微指令执行时需进行完全译码。
- 用垂直微指令编制微程序要使用较多的微指令,微程序较长;要求控制存储器的纵向容量大。
- 垂直微指令产生微命令要经过译码,微程序执行速度慢。
- 不能充分利用数据通路具有的多种并行操作能力
硬布线控制器
实现方法
通过逻辑电路直接连线而产生的,又称为组合逻辑控制方式
设计目标
- 使用最少元件(复杂的树形网络)
- 速度最快
优点是速度快,缺点是结构复杂,设计、调试困难。
注意:
硬布线控制器速度快,但设计复杂繁琐,适合于RISC结构。
微程序控制器相对硬布线控制器速度慢,但设计比较规整,易于实现指令系统修改,适合于CISC结构。
逻辑原理
(1)逻辑原理图
C为微操作控制信号,Im为译码器输出,Mi为节拍电位,Tk为节拍脉冲,Bj为状态条件
C由组合电路实现,速度快,但难以修改。
(2)指令的执行流程
硬布线控制器,时序信号采用主状态周期—节拍电位(CPU周期)—节拍脉冲(时钟周期)三级体制。
硬连线控制器实现的操作控制器中,时序产生器除了产生节拍脉冲信号(时钟周期)外,还应当产生节拍电位信号(CPU周期)。如上图所示,所有指令的取指周期放在M1节拍。指令的执行周期由M2,M3两个节拍来完成。
- 微程序控制器时序信号简单。只需要若干节拍脉冲信号即可。
- 组合逻辑控制器除了节拍脉冲信号外,还需要节拍电位信号
(3)微操作控制信号产生
- 在微程序控制器中,微操作控制信号由微指令产生,并且可以重复使用。
- 在硬联线控制器中,某一微操作控制信号由布尔代数表达式描述的输出函数产生。C=f(Im,Mi,Tk,Bj)
即由门电路和触发器构成的复杂时序控制逻辑电路产生。