第6章控制器原理.docx
《第6章控制器原理.docx》由会员分享,可在线阅读,更多相关《第6章控制器原理.docx(21页珍藏版)》请在冰豆网上搜索。
![第6章控制器原理.docx](https://file1.bdocx.com/fileroot1/2023-1/21/bc6fc2d8-2e01-4611-8d83-30a8bd2a7542/bc6fc2d8-2e01-4611-8d83-30a8bd2a75421.gif)
第6章控制器原理
第6章控制器原理
主要内容:
控制器的基本功能、控制器的基本组成、指令的执行过程、组合逻辑控制器组成原理与实现方法、微程序控制器组成原理与实现方法、控制方式。
重点:
指令的执行过程,组合逻辑控制器的组成原理与设计方法,微程序控制器的设计方法,微指令的格式,微程序流的控制。
难点:
指令的执行过程,组合逻辑控制器的组成原理与设计方法,微程序控制器的设计方法,微指令的格式,微程序流的控制。
控制器是计算机系统的指挥中心,它把运算器、存储器、输入/输出设备等部件组成一个有机的整体,然后根据指令的要求指挥全机各部分的工作。
6.1控制器的基本功能及结构
6.1.1控制器的功能
计算机之所以能快速、自动、连续工作,是由于控制器在程序的要求下不断对机器控制的结果。
控制器的作用就是控制程序的执行,它必须具有以下基本功能:
1.取指令
2.分析指令
3.执行指令
4.控制程序和数据的输入与结果输出
5.随机事件和某些特殊请求的处理
6.1.2控制器的组成
控制器是计算机的指挥中心,影响其组成的因素很多,如微操作序列部件的组成、指令系统与指令格式、控制方式等,尽管如此,但控制器的基本工作过程、基本组成还是相同的。
图6-1是控制器的基本组成框图,主要包括以下几部分。
1.指令部件
指令部件的主要任务是完成取指令并分析指令。
包括以下部分:
(1)程序计数器PC:
程序计数器又称指令计数器,用来存放当前指令或接下来要执行的指令的地址。
(2)指令寄存器IR:
指令寄存器用来存放从存储器中取出的指令。
(3)指令译码器ID:
指令译码器的功能是对指令寄存器中的指令操作码进行分析、解释,并产生相应的控制信号送给微操作形成部件。
2.时序部件
时序部件能产生一定的时序信号,以保证计算机的各功能部件有节奏的运行。
(1)脉冲源:
用来产生一定频率和宽度的时钟脉冲信号作为整个机器的基准时序脉冲(也称为机器的主脉冲)。
(2)启停线路:
可靠地开放或封锁脉冲,实现对计算机安全可靠的启动和停机。
(3)节拍信号发生器:
其主要功能是按时间先后次序,周而复始地发出各个机器周期中的节拍信号,用来控制计算机完成每一步微操作。
3.微操作信号发生器
微操作是一个指令周期中最基本的不可再分割的操作,不同的机器指令具有不同的微操作序列。
微操作信号发生器就是用来产生微操作序列。
4.中断机构
响应和处理中断的逻辑线路称为中断机构,负责处理异常情况和特殊请求。
由于大规模集成电路的发展,目前计算机的体系结构已有了很大的发展,一些先进的技术已引入计算机系统中,如指令预取、流水线等,在后面的章节中我们将在图6-1的基础上逐步介绍。
6.2指令的执行过程
6.2.1时序系统
时序系统是控制器的心脏,其功能是为指令的执行提供各种定时信号,通常由周期(分指令周期和机器周期两种)、节拍和工作脉冲组成。
1.指令周期和机器周期
指令周期—指执行一条指令(包括取指令、分析指令和执行指令)所需的全部时间,不同指令的指令周期是不同的。
机器周期—又可称作CPU周期,通常它是主存储器的一个访问周期。
2.节拍
在每个机器周期内要执行若干个微操作,这些操作可能需要分成几步完成,例如按变址方式读取操作数,先要进行变址运算才能访存读取。
所以应把一个机器周期分为若干个相等的时间段,以便对应一个机器周期中规定的微操作,这样的每个时间段都对应一个电位信号,称为节拍电位信号。
“节拍”是计算机操作的最小时间单位,又可称作时钟周期或T周期。
3.工作脉冲
节拍电位信号提供了一项操作所需要的时间分段,它是信息的载体,在数据通路传输中起着开门或关门的作用,但在一个节拍中,有的操作还需要严格的定时脉冲,如将稳定的运算结果打入寄存器、机器周期状态切换等。
所以在一个节拍之内往往还需要设置几个工作脉冲,作为各种同步脉冲的来源。
6.2.2指令的执行过程
一条指令的执行通常都可以分为三个阶段,即取指令、分析指令和执行指令。
1.取指令
具体的操作如下:
(1)将程序的启动地址,即第一条指令的地址置于程序计数器PC中。
(2)将PC中的内容送至主存的地址寄存器MAR,并送地址总线AB。
(3)向存储器发读命令。
读取指令时CPU是空闲的,利用这段时间完成PC+△的操作,为指令的连续运行做准备。
(4)从主存中取出的指令经过主存的数据寄存器MDR,再经过数据总线进入CPU中的指令寄存器中。
2.分析指令
取出指令后指令译码器对保存在IR中的指令操作码进行译码,产生译码信号并送微操作序列形成部件,进而产生微操作序列送运算器、存储器、外设及控制器本身。
3.执行指令
根据分析指令阶段所产生的微操作序列,控制运算器、存储器、外设及控制器本身完成指令规定的各种操作。
6.2.3指令的执行过程举例
我们知道,控制器在实现一条指令的功能时,总是把每条指令分解成一系列时间上先后有序的最基本、最简单的微操作,即微操作序列。
通过一个简单的模型机来看具体指令的执行过程,即指令的微操作序列。
1.数据通路
假设某机的数据通路如图6-2所示。
其中ALU为运算器,Y为其输入端的一个暂存器,Z用来保存其输出结果;PC为程序计数器;IR、ID分别为指令寄存器和指令译码器;MAR、MDR分别为存储地址寄存器和存储数据寄存器;R0至RN-1为模型机的N个寄存器。
2.加法指令ADDR1,[NUM]
这条指令完成的功能是将指令中出现的地址NUM送到主存以取得第一个操作数,再与R1的内容相加,最后将结果送回R1中。
即实现:
(NUM)+(R1)→R1
相应的微操作如下:
(1)PCout、MARin、READ、在数据没取出的间隙进行PC+1(0→Y,1→C0,ADD,Zin);
(2)Zout、PCin、WMFC(等待存储功能完成);
(3)MDRout、IRin;
(4)IR(D)out、MARin、READ;
(5)R1out、Yin、WMFC;
(6)MDRout、ADD、Zin;
(7)Zout、R1in;
(8)END。
3.转移指令JZA
这是一条条件转移指令,若上次运算结果为0(ZF=1),就转移,转移地址为A;若上次运算结果不为0(ZF=0),就顺序执行下一条指令。
相应的微操作序列如下:
(1)PCout、MARin、READ、在数据没取出的间隙进行PC+1(0→Y,1→C0,ADD,Zin);
(2)Zout、PCin、WMFC(等待存储功能完成);
(3)MDRout、IRin
(4)IFZF=1THENIR(D)out、PCin
(5)END。
6.3硬布线控制器的组成原理与实现方法
硬布线控制器又称为组合逻辑控制器,是早期设计计算机的一种方法。
6.3.1硬布线控制器的组成原理
1.硬布线控制器的原理
图6-3是硬布线控制器的结构方框图。
逻辑网络的输入信号来源有三个:
(1)指令操作码译码器的输出In;
(2)来自时序发生器的节拍电位信号Tk;(3)来自执行部件的反馈信号Bj。
逻辑网络的输出信号就是微操作控制信号,用来对执行部件进行控制。
Cm=f(In,Mi,Tk,Bj)
2.组合逻辑控制器的设计步骤:
(1)绘制指令流程图
以指令为线索,按指令类型分类,将每条指令归纳成若干微操作,然后根据操作的先后次序画出流程图。
(2)安排指令操作时间表
指令流程图的进一步具体化,把每一条指令的微操作序列分配到各个机器周期的各个时序节拍信号上。
要求尽量多地安排公共操作,避免出现互斥。
(3)安排微命令表
以微命令为依据,表示在哪个机器周期的哪个节拍有哪些指令要求这些微命令。
(4)进行微操作逻辑综合
根据微操作时间表,将执行某一微操作的所有条件(哪条指令、哪个机器周期、哪个节拍和脉冲等)都考虑在内,加以分类组合,列出各微操作产生的逻辑表达式,并加以简化。
(5)实现电路
根据上面所得逻辑表达式,用逻辑门电路的组合或PLA电路来实现。
6.3.2硬布线控制器设计实例
以一个简单的模型机为例来讨论硬布线控制器的设计。
1.模型机的数据通路
模型机的数据通路如图6-4所示,全机采用单总线结构。
2.模型机的指令系统
模型机的指令系统包括5条指令,包括输入/输出指令IN和OUT,算术指令ADD,数据传送指令STA和控制转移指令JMP,其指令格式如下:
助记符
机器指令码
说明
IN
00000000
××××××××
开关状态→R0
ADDaddr
00010000
××××××××
R0+[addr]→R0
STRaddr
00100000
××××××××
R0→[addr]
OUTaddr
00110000
××××××××
[addr]→BUS
JMPaddr
01000000
××××××××
addr→PC
其中IN为单字节,其余为双字节指令,××××××××为addr对应的二进制地址码。
3.绘制指令流程图
根据模型机的5条指令所完成的功能及模型机的数据通路,绘制出指令的流程图见图6-5。
假设指令的执行采用统一节拍法,即无论简单还是复杂,都采用8个节拍来完成。
4.安排指令的操作时间表
表6-1是指令的操作时间表,实际是将指令流程图进一步细化,详细列出每个节拍应做的操作,要求尽量多地安排公共操作。
表6-1指令的操作时间表
时序
公共操作
IN
ADD
STA
OUT
JMP
0
SW-B、LDPC、LOAD
1
PC-B、LDAR、LDPC
2
CE、OE、LDIR
3
PC-B、LDAR、LDPC
4
CE、OE、LDAR
5
CE、OE、LDDR2
R0-B、CE、WE
CE、OE
6
R0-B、LDDR1
7
SW-B、LDR0
+、ALU-B、LDR0
CE、OE、LDPC、LOAD
5.安排指令的微命令表
表6-2是指令的微命令表,实际是以微操作为依据,详细列出在哪个节拍有哪些指令要求这个微命令。
表6-2指令的微命令表
微命令
T0
T1
T2
T3
T4
T5
T6
T7
SW-B
ALL
IN
LDPC
ALL
ALL
ALL
JMP
LOAD
ALL
JMP
LDAR
ALL
ALL
ALL
CE
ALL
ALL
ADD+STA+OUT
JMP
OE
ALL
ALL
ADD+OUT
JMP
WE
STA
LDIR
ALL
PC-B
ALL
ALL
LDDR1
ADD
LDDR2
ADD
LDR0
IN+ADD
R0-B
STA
ADD
+
ADD
ALU-B
ADD
6.进行微操作信号综合
如:
SW-B=T0+T7·IN
LDPC=T0+T1+T3+T7·JMP
CE=T2+T4+T5·(ADD+STA+OUT)+T7·JMP
7.实现电路
根据上述列出的各微操作控制信号的逻辑表达式,可画出相应的逻辑电路图,并用逻辑门电路实现之。
例如,CE逻辑如图6-6所示。
6.4微程序控制器的组成原理与实现方法
6.4.1微程序控制器的基本原理
微程序控制器的设计思想是由英国剑桥大学的教授威尔克斯(Wilkes)于1951年首先提出来的,同硬布线控制器相比较,具有规整性、灵活性、可维护性等一系列优点,因而在计算机设计中逐渐取代了早期采用的硬布线控制器,并已被广泛地应用。
在计算机系统中,微程序设计技术是利用软件方法来设计硬件的一门技术。
1.有关的术语和概念
(1)微命令:
构成控制信号序列的最小单位。
通常是指那些能直接作用于某部件控制门的命令,如:
打开或关闭某部件通路的控制门的电位,某寄存器、触发器的打入脉冲等。
微命令由控制部件通过控制总线箱执行部件发出。
(2)微操作:
由微命令控制实现的最基本的操作。
微命令是微操作的控制信号,微操作是微命令的执行过程。
在计算机内部实质上是同一个信号,对控制部件为微命令,对执行部件为微操作。
很多情况下两者常常不加区分地使用。
(3)微指令:
一组实现一定操作功能的用二进制编码表示的微命令的组合。
(4)微周期:
从控制存储器读取一条微指令并执行相应的微操作所需的时间。
(5)微程序:
一系列微指令的有序集合。
2.微程序控制器原理框图
微程序控制器原理框图如图6-7所示。
它主要由控制存储器、微地址寄存器、微命令寄存器和地址转移逻辑三大部分组成。
(1)控制存储器
控制存储器用来实现整个指令系统的所有微程序。
(2)微指令寄存器
微指令寄存器用来存放从控制存储器读出的当前微指令。
微指令中包含两个字段:
微操作控制字段和微地址字段。
(3)微地址寄存器
微地址寄存器用来存放将要访问的下一条微指令的地址。
(4)地址转移逻辑
地址转移逻辑用来形成即将要执行的微指令的地址。
3.微程序控制器执行过程描述
在采用微程序控制的计算机中,若整个指令系统对应的微程序已放入控制存储器中,则它的执行过程可描述如下:
(1)从控制存储器中逐条取出“取机器指令”用的微指令,执行取指令公共操作,执行完后,从主存中取出的机器指令就已存入指令寄存器中了。
一般取指令微程序的入口地址为控制存储器的0号单元。
(2)根据指令寄存器中的操作码,经过微地址形成部件,得到这条指令对应的微程序入口地址,并送入微地址寄存器。
(3)从控制存储器中逐条取出对应的微指令并执行之。
(4)执行完对应于一条机器指令的一段微程序后又回到取指微程序的入口地址,继续第
(1)步,以完成取下一条机器指令的公共操作。
6.4.2微程序设计的技术问题
微指令的结构格式、微程序的顺序控制方式及微指令的执行方式直接影响微程序控制器的结构和控制过程,它们就是微程序控制器设计要解决的关键技术问题。
1.微指令编码法
微指令可以分为操作控制字段和下址字段两大部分。
这里所说的微指令编码法就是操作控制字段的编码法,通常有以下三种方法。
(1)直接控制法
直接控制法—在微指令的操作控制字段中,每一个微命令都用一位信息表示。
如图6-8所示。
优点:
控制简单、直观,操作并行性最好,从而可以提高速度。
缺点:
微指令字太长,控制存储器的容量过大且微指令字利用效率很低。
因此这种编码方法只适用于结构简单或速度要求很高的高速数字控制部件。
(2)最短字长编码
这种编码法是将所有的微命令进行统一的二进制编码,用不同的码点去表示不同的微命令,通过译码器产生微操作控制信号,如图6-9所示。
优点:
微指令字长很短;
缺点:
每次只能产生一个微命令,所有微命令均不能够并行,难以提高微命令的执行效率,故在实际应用中很少采用。
(3)分段直接编码
这种编码法是将微操作控制字段划分为若干个小字段,每个小字段独立译码,每个码点表示一个微命令,其微指令结构如图6-10所示。
(4)分段间接编码
分段间接编码是在分段直接编码的基础上,进一步缩短微指令字长的一种编码方法。
在这种编码方法中,某些参与编码的微指令不能由一个控制字段直接定义,而需要两个或两个以上的控制字段来定义。
如图6-11。
分段间接编码是在分段直接编码的基础上,进一步缩短微指令字长的一种编码方法。
2.微指令格式
不同机器有不同的微指令格式,就其共性来说,大致可归纳为两大类,即水平型微指令和垂直型微指令。
(1)水平型微指令:
一次能定义多个微命令(控制执行多个微操作)的微指令。
(2)垂直型微指令:
一次只能执行一个微命令的微指令。
(3)混合型微指令:
水平型微指令和垂直型微指令各有其优缺点。
实际使用中,常常兼顾两者的优缺点,设计出一种混合型微指令,采用不太长的字长,又具有一定的并行控制能力,可高效地去实现机器的指令系统。
3.微地址的形成方式
后继微地址的确定方法:
(1)如何产生每条机器指令所对应的微程序的入口地址;
(2)另一个是在微程序内如何产生后继微地址。
(1)微程序入口地址的确定
根据其操作码经地址转移逻辑形成微程序入口地址,地址转移逻辑通常有以下两种:
当操作码的位数与位置固定时,可直接将操作码与微地址码的部分对应。
这时,不需要专门的硬件,只需要用连线将对应位直接相连即可。
若微地址码长度大于操作码长度,则对应位以下的低位一般填0,对应位以上的高位可以固定填某个二进制常数。
在操作码的位数或位置不固定的情况下,需用专门的硬件来实现操作码到微地址的变换。
通常是以查表的方法来实现。
(2)后继微地址的产生
计数器方式
顺序执行时,后继微地址就是现行微地址加上一个增量(通常为“1”);
转移时,由微指令的下址字段产生转移微地址。
优点:
简单、易于掌握,编制微程序容易;
缺点:
这种方式不能实现两路以上的并行微程序转移,因而不利于提高微程序的执行速度。
多路转移方式
一条微指令具有多个转移分支的能力称为多路转移,这种方式的后继微地址可由微程序设计者指定,或者根据微指令所规定的测试结果直接决定后继微地址的全部或部分值。
微地址分为两部分
(1)非测试地址,可由程序设计者直接指定,占高位部分
(2)测试地址,即由测试结果确定其地址值,占低位部分。
测试地址的位数确定了转移的并行度:
1位为2路转移,2位为4路转移,N位为2N路转移。
优点:
能以较短的顺序控制字段配合,实现多路并行转移,灵活性好,速度较快;
缺点:
后继微地址码的生成机构比较复杂。
4.微指令格式设计举例
某运算器数据通路如图6-12所示。
(1)指出相容性和相斥性的微操作。
(2)设计适合此运算器的微指令格式(要求微指令字长17位,其中下址字段6位)。
解:
(1)相斥性的微操作有:
(ⅰ)移位器的三个微操作R、L、V;(ⅱ)ALU的三个微操作+、-、M;(ⅲ)X输入端的三个微操作R1→X、R2→X、DR→X;Y输入端的三个微操作R1→Y、R2→Y、R3→Y;
相容性的微操作有:
(ⅰ)LDR1、LDR2、LDR3相容;(ⅱ)X输入端的任一微操作与Y输入端的任一微操作相容;
(2)根据题意,微指令字长为17位,微指令字中下址字段为6位,则应采用11位来实现数据通路中的15个微命令信号。
显然,只用直接控制法无法完成,因此我们采用直接控制与字段直接译码法相结合的方法来完成。
字段译码法要求将相斥的微命令放在一个字段中。
因此可分别将(R、L、V)、(+、-、M)、(R1→X、R2→X、DR→X)、(R1→Y、R2→Y、R3→Y)放在一个字段中译码,每个字段长2位,译码产生4个输出;LDR1、LDR2、LDR3各占1位,用直接表示法表示。
据此,设计的微指令格式见表6-3:
表6-3运算器的微指令格式
微操作控制字段
2位
2位
2位
2位
1位
1位
1位
00无
00无
00无
00无
0无
0无
0无
01R
01+
01R1→X
01R1→Y
1LDR1
1LDR2
1LDR3
10L
10-
10R2→X
10R2→Y
11V
11M
11DR→X
11R3→Y
6.4.3微程序控制器设计实例
仍以图6-4所示的模型机为例,只是将硬布线控制器改为微程序控制器,并假定控制存储器的容量为256×24(位),微地址寄存器为6位。
1.模型机的数据通路(见6.3.2节)
2.模型机的指令系统(见6.3.2节)
3.绘制微程序流程图
根据模型机的指令系统和数据通路,绘制出微程序流程图见图6-13,当拟定“取指”微指令时,该微指令的判别测试字段为P
(1)测试。
4.设计微指令格式
根据模型机的数据通路和控制存储器的要求(256×24(位)),设计出微指令格式见表6-4。
表6-4微指令格式
24
23
22
21
20
19
18
17
16
15
141312
11109
87
6
5
4
3
2
1
S3
S2
S1
S0
M
CN
CE
WE
OE
LDPC
A
B
C
uA5~uA0
A字段
B字段
C字段
0
0
0
0
0
0
0
0
0
0
1
LDR0
0
0
1
R0-B
0
1
P
(1)
0
1
0
LDDR1
0
1
0
ALU-B
0
1
1
LDDR2
0
1
1
SW-B
1
0
0
LDIR
1
0
0
PC-B
1
0
1
LOAD
1
1
0
LDAR
5、将微程序代码化
微指令格式设计好后,根据数据通路、微程序流程图和微指令格式,就可以编制指令系统中每一条指令的微程序。
表6-5给出了五条指令的微程序。
表6-5微程序代码表
微地址
24
23
22
21
20
19
18
17
16
15
14~12
11~9
87
6~1
S3
S2
S1
S0
M
CN
CE
WE
OE
LDPC
A
B
C
uA5~uA0
00
0
0
0
0
0
0
0
0
0
1
101
011
00
000001
01
0
0
0
0
0
0
0
0
0
1
110
100
00
000010
02
0
0
0
0
0
0
1
0
1
0
100
000
01
100000
03
0
0
0
0
0
0
1
0
1
0
110
000
00
000100
04
0
0
0
0
0
0
1
0
1
0
011
000
00
000101
05
0
0
0
0
0
0
0
0
0
0
010
001
00
000110
06
1
0
0
1
0
1
0
0
0
0
001
010
00
000001
07
0
0
0
0
0
0
1
0
1
0
110
000
00
001101
10
0
0
0
0
0
0
0
0
0
0
001
011
00
000001
1