计算机组成原理 1
控制器
主要功能
从内存中取指令,计算下一条指令的地址;
对指令进行译码,产生操作控制信号;
控制指令执行的步骤和数据流动的方向。
生成控制信号的方法
硬连线逻辑方式
微程序方式
阵列逻辑方式
计算机组成原理 2
控制器的主要功能
1、取指令:根据程序入口地址取出第一条指令
2、分析指令,确定指令的操作
产生相应的操作
形成操作数的地址
3、执行指令:根据操作命令和操作数地址形成操作控制信号
序列
4、控制程序和数据的输入和结果输出
5、对异常情况和某些请求进行处理
陷阱
中断请求
DMA请求
计算机组成原理 3
控制器的组成
程序计数器 (PC),存当前正在执行的指令的地址
存即将执行的下一条指令的地址
存下一条预取指令的地址
指令寄存器 (IR):存放当前正在执行的指令
指令译码器( ID),对操作码进行分析,产生相应控制信号
脉冲源,时钟信号,reset信号
启停控制线路,开启、封锁机器工作时钟
时序控制信号形成部件,产生节拍序列脉冲信号
程序状态字( PSW),状态寄存器,标志位,控制位
计算机组成原理 4
控制器逻辑框图
微操作控制
形成部件
时序脉冲
发生器
指令
译码器
操作码 地址码启停
地址形成电路
PCCPU外部状态
脉冲源
微操作控制信号
+1
(控制台 )
MAR
IR
1.根据不同指令的操作码产生所需的微操作命令,即指令译码
2.操作命令与时序脉冲结合形成一定时序的微命令
实现方法,
组合逻辑,硬布线逻辑 ; 可编程逻辑阵列 (PLA)
存储逻辑,微程序控制逻辑
计算机组成原理 5
一个时序系统的组成如图所示,
M1
脉冲发生器 节拍发生器
周期状态
触发器 …

脉冲源
启动
暂停
M2
T1
T2
时序系统的组成
1.脉冲源,由石英晶体震荡器及, 与非门, 组合的震荡电路组

2.脉冲发生器,通常是一个环行脉冲发生器,采用循环移位寄
存器的形式,产生一组有序的、间隔相等或不等的脉冲序列
3.节拍发生器,按先后顺序,循环地发出若干时钟周期信号,最
后通过译码电路,产生最后所需的节拍脉冲,通常由计数译码
器电路组成,
计算机组成原理 6
指令周期,取出一条指令并执行该指令的时间
机器周期, CPU同主存或外设进行一次信息交换所需的时间 ─
总线周期, CPU周期
时钟周期, CPU执行一个微操作的最小时间单位 ─ 节拍周期, T
周期
三者关系,一个指令周期包含若干个 CPU周期,一个 CPU周期的
功能由多个时钟周期来完成
4.周期状态触发器,产生电路与节拍发生器产生电路类似,表
示 CPU当前处于指令周期的哪个机器周期
5.启停控制逻辑,控制时钟系统,只有当启动机器运行时,才允
许发出所需的时钟脉冲,而且,由于机器的启停是随机的,必须
考虑发出的脉冲是完整的,
时序控制逻辑基本概念
计算机组成原理 7
时序产生器
多级时序的概念
(1)指令周期,在时序系统中通常不为指令周期设置时间标志
信号,因而也不将其作为时序的一级,
(2)机器周期,设置一组周期状态触发器,以标志不同的机器周
期,任一时刻只允许其中的一个触发器为 1,表明 CPU当前处在
哪个机器周期,
(3)时钟周期,一个时钟周期内完成一步基本操作,
(4)时钟脉冲信号,作为时序系统的基本定时信号,
多级时序信号之间的关系,
指令周期不作为时序的一级,下图反映了机器周期、
时钟周期、时钟脉冲 三级时序 信号的关系。
通常 硬布线逻辑 使用 三级时序系统。
微程序控制逻辑 使用 两级时序系统
计算机组成原理 8
一个指令周期
机器周期 M1
机器周期 M2
机器周期 M3
时钟周期 T1
时钟周期 T2
时钟周期 T3
时钟脉冲 CLK
三级时序信号间的关系
计算机组成原理 9
脉冲源
2
3
Q
D CP
C4
S
R
T4 T1 T2 T3
Q
D CP
+5 V
D CP
Q
C1 C2
C3
Q
D CP
Q Q Q
Q
CLR
φ
φ
T1-T4为四个输出节拍脉冲,其译码逻辑表达式为,
T1=C1*C2 T2=C2*C3 T3=C3 T4=C1
时序产生器的主要逻辑电路
计算机组成原理 10
1 2 3 4 5 6 7 8 9 10
CPU周期 CPU周期
T1
T2
T3
T4
C4
C1
C2
C3
φ
计算机组成原理 11
操作码 地址码
译码器
硬布线逻辑
(组合逻辑 )


PC
周期状态
触发器
节拍发生器
时钟源


结果反
馈信息

M1 M2 M3
T1
T4
P
IR
中断
控制
逻辑
转移
地址
+1RESET
中断信号
微操作控制命令
组合逻辑控制器总框图
计算机组成原理 12
控制器的控制方式
1.同步控制方式 (集中控制方式 ):对机器的所有指令采用统一
的时序信号,用相同数目的机器周期,相同数目的节拍脉冲来
形成每条指令的控制操作序列,特点,时序关系简单,但以牺
牲速度为代价,
2.异步控制方式 (分散控制方式 ):每条指令、每个微操作需要
多少时间就占用多少时间,不采用统一的周期和节拍,时间
上的衔接通过应答通讯方式 (握手方式 )实现,特点,无时间浪
费,但时序控制比较复杂,
3.联合控制方式,同步控制与异步控制相结合,
计算机组成原理 13
同步控制方式, 对机器的所有指令采用统一的时序信号。
特点,
a)以微操作序列最长的指令为标准,确定控制微操作运行
的节拍数
b) 控制器产生统一的,顺序固定的,周而复始的节拍脉冲
c) 微操作序列短的指令可空着一部分不用
优点,电路简单
缺点,运行速度慢
计算机组成原理 14
异步控制方式,采用, 结束 —— 起始, 的工作方式,无统一
的时序信号。 特点:
a)每条指令按实际需要产生节拍数
b)指令执行完毕,发出, 结束, 信号
c)控制器收到, 结束, 信号,开始执行下条指令
优点,运行速度快
缺点,控制电路比较复杂
计算机组成原理 15
联合控制方式, 将同步控制方式与异步控制方式结合使用。
特点,
a)大部分指令按同步控制执行 —— 中央控制
b)小部分特殊指令(过长、过短),采用异步控制方式执
行 —— 局部控制
优点,能保证一定的运行速度
缺点,电路设计相对复杂
计算机组成原理 16
设计步骤
1、设计指令的操作码,确定指令长度是固定的还是可变长的。
确定机器周期、节拍与主频,确定机器周期是固定的还是可
变长的。
2、选择合适的控制方式和控制时序。
3、根据 CPU的结构图,写出每条指令的操作流程图并分解成
微操作序列,确定每一条指令所需的机器周期以及每一周期
所完成的操作。
4、对微操作流程图安排时序,排出微操作时间表,
5、根据操作时间表写出微操作的表达式,即
微操作 =周期 *节拍 *脉冲 *指令码 *其它条件
6、根据微操作的表达式,综合所有指令的每一个操作命令,
写出逻辑表达式,并进行化简。
计算机组成原理 17
指令周期的确定
固定时钟信号环形脉冲发生器:
—— 指令执行的时钟数固定。
可变长度时钟信号环形脉冲发生器:
—— 指令执行的时钟数不固定。
实现方法,用 END信号,如
END = T5*ADD + T3*CLA +
计算机组成原理 18
指令流程图
AD D ST O R E LO AD JM P
PC → M AR
PC + 1 → P C
D B U S → M D R → IR
R 1 → Y
R 2 +Y → Z
Z → R 3
P C → Y
Y +IR → Z
Z → P C
IR → M AR
D B U S → M D R
M D R → R 1
AR → M AR
R 1 → M D R
一个操作步骤代表在一个机器周期中可完成的操作
计算机组成原理 19
执行步骤所需的控制信号
分支 操作 时钟周期 控制信号
取指令 PC ? MAR,PC+1,r ead T1 PCout,M ARin,PC+1,Read
MDR ? IR T2 MDRout,I Rin
R1 ? Y T3 R1out,Yi n
ADD 操作 R2+Y ? Z T4 R2out,Zi n,ADD
Z ? R3 T5 Zout,R3i n
LOAD 操作 IR ? MAR,r ead T3 I Rout,M ARin,Read
MDR ? R1 T4 MDRout,R1in
STORE 操作 IR ? MAR T3 I Rout,M ARin
R1 ? MDR,wr it e T4 R1out,M DRin,W r it e
PC ? Y T3 PCout,Yi n
JMP 操作 I R+Y ? Z T4 I Rout,ADD,Zin
Z ? PC T5 Zout,PCi n
计算机组成原理 20
ADD指令每个时钟周期内的控制信号为,
T1,PCout,MARin,PC+1,Read ;PC?MAR,PC+1,read
T2,MDRout,IRin ;MDR?IR
T3,R1out,Yin ;R1?Y
T4,R2out,Zin,Add ;R2+Y?Z
T5,Zout,R3in ;Z?R3
JMP指令中各时钟周期的控制信号为:
T1,PCout,MARin,PC+1,Read ;PC?MAR,PC+1,read
T2,MDRout,IRin ;MDR?IR
T3,PCout,Yin ;PC?Y
T4,IRout,Add,Zin ;IR+Y?Z
T5,Zout,PCin ;Z?PC
微操作控制形成电路的逻辑表达形式
C = T1*(INS1 + INS2 + … ) + T2*(INS1 + INS2 + … )
+ …
计算机组成原理 21
控制器的逻辑表达式
PC+1 = T1
PCin = T5*JMP
PCout = T1 + T3*JMP
Yin = T3*(ADD + JMP)
Add = T4*(ADD + JMP)
Zin = T4*(ADD + JMP)
Zout = T5*(ADD + JMP)
END = T5*(ADD + JMP)
...
计算机组成原理 22
优点,速度快,可用于速度要求较高的机器中,
缺点,(1) 缺乏规整性,将几百个微操作的执行逻辑组合在
一起,构成的微操作产生部件,是计算机中最复杂、最不规整的
逻辑部件,不适合于指令复杂的机器,
(2)缺乏灵活性,各微命令的实现是用硬连的逻辑电路完
成,改动不易,设计困难,
组合逻辑控制器的特点
计算机组成原理 23
PLA控制器的设计步骤与组合逻辑控制器相同,只是实现
方法不同,它采用 PLA阵列 (Programmed Logic Array),从
设计思想来看是组合逻辑控制器,从实现方法来看,是存储逻
辑控制器,
特点,可使杂乱无章的组合逻辑规整化、微型化,而且可
以利用 PLA的可编程特性,用存储逻辑部分地取代组合逻辑,
增加了一定的灵活性。
PLA控制器
计算机组成原理 24
组合逻辑 电路一经实现,不能变动其逻辑关系,必要时,必须
改变其连线或重新设计。
微程序控制方法,把指令执行所需要的所有控制信号存放在控
制存储器中,需要时从这个存储器中读取,存储逻辑 可以修
改 ROM存放的数据,从而修改逻辑功能,速度略慢,有一个寻址
和读数据的过程,
微程序控制的特点,灵活性好,速度慢
其实质是用程序设计的思想方法来组织操作控制逻辑。
微程序控制器
计算机组成原理 25
1.微命令与微操作
微命令,构成控制信号序列的最小单位。
微操作,控制器中执行部件接受微指令后所进行的操作。
2.微指令和微程序
微指令,在机器的一个节拍中,一组实现一定操作功能的微
命令,或者说,控制存储器中每个单元存放的微命令信息组成一
条微指令,
微程序,由微指令组成的序列称为微程序,一个微程序的功
能对应一条机器指令的功能,
微程序控制的基本概念
计算机组成原理 26
机器指令指提供给使用者编成的基本单位,每一条指令可
以完成一个独立的算术运算或逻辑运算操作,
一条机器指令对应一组微指令组成的微程序,可见,一条
机器指令对应多条微指令,而一条微指令可为多个机器指令服务,
4.控制存储器 CM(Control Memory):
用于存放全部指令的所有微程序,采用只读存储器结构 (固
化 ).控制存储器的字长等于微指令的长度,其总容量决定于所
有微程序的总长度,
3.机器指令与微指令
计算机组成原理 27
5.微指令周期,从控制存储器中读取一条微指令并执行这条微指
令所需的时间,通常一个微指令周期与一个 CPU周期的时间相等,
微指令中的微命令可以用节拍脉冲来同步定时,
微周期
子周期
T1
T2
T3
T4
多周期节拍脉冲
T1 T2 T3 T4 T1 T2 T3 T4
读微指令
执行微指令 微指令周期
CPU周期
CPU周期与微指令周期的关系
计算机组成原理 28
一、基本组成
1、控制存储器 CM
用来存放微程序。
2、微指令寄存器 ?IR
用来存放从控制存储器中取得的微指令。
3、微地址形成部件 ?AG
用来产生机器指令的首条微指令地址和后续地址。
4、微地址寄存器 ?AR
接收微地址形成部件送来的微地址。
微程序控制器的基本结构和工作过程
计算机组成原理 29
微程序控制器 基本结构
计算机组成原理 30
二、工作过程
微程序控制器的工作过程实质上就是在微程序控制器
的控制之下,计算机执行机器指令的过程:
1,从控制存储器中运行取指令微程序,完成从主存储器中取得
机器指令的工作;
2,根据机器指令的操作码,得到相应机器指令的微程序入口;
3,逐条取出微指令,完成相关微操作控制;
4,执行下一条机器指令。
计算机组成原理 31
微程序设计技术
微程序设计考虑的问题:
1、如何缩短微指令字长
2、如何减少微程序长度
3、如何提高微程序的执行速度
微指令的 编码
编码的实质是在微指令中如何组织微操作的问题
构成:
1、直接控制编码法
控制字段中的每一位表示一个微命令
缺点,
控制字段长,如三,四百位
-控制存储器容量要大 ?IR顺序控制字段直接表示法操作控制字段

微操作控制字段 顺序控制字段
计算机组成原理 32
2、字段直接编码法
(1) 把互斥的微命令编为一组
(2) 对微命令进行编码,留出一个代码表示 本段不发微命令
(3) 增设 微命令译码器
计算机组成原理 33
3、字段间接编码法
一个字段的某些微命令由另一个字段的某些微命令来解释
如, 字段 A受字段 B的控制
计算机组成原理 34
因为,
1、转移类指令要有分支
2、大多数指令都有几种寻址方式
3、每条指令都对应一个独立的微程序
如果为每条机器指令、每种寻址方式都单独设置一段微程序,
导致整个必将微程序太长,需要大量的控存容量,因此,应把
重复部分作为共享的微子程序库,由各微程序调用,因而会
产生大量的寻址分支流程。
微程序的特征, 存在大量的分支
计算机组成原理 35
A
CT 1 -CT 4 =?
B 1 B 2 B 16...
0000 0001 1111
CT 5 =?
D 2D 1
微程序的特征
计算机组成原理 36
1、初始微地址的形成
每条机器指令对应一段微程序,当执行公用的取指微程序
从主存中取出机器指令后,由机器指令的操作码指出微程序
的首地址。这是一种多分支情况,通常有以下几种方式:
( 1)操作码的位数与位置固定,这时可直接使操作码与微地址
码的部分位相对应。例如,若微入口地址 =00OC,则控制存储
器第零页的一些单元被安排为各个微程序入口,再通过无条
件微转移指令使这些单元与相应的后续微指令相连接。
微指令地址
( 2)当每类指令的操作码位数与位置固定,而各类指令之间的
操作码位数与位置不固定时,可采用分级转移的方法。先按
指令类型转移到某条微指令,区分出是哪一大类,然后进一
步按机器指令操作码转移,区分出是哪一种具体的机器指令。
( 3)当操作码的位数与位置都不固定时,通常的方法是采用
PLA可编程逻辑阵列实现。
计算机组成原理 37
(1)顺序 -转移型微地址
2、后继微指令地址形成
得到微程序入口以后,就开始执行微程序,后继微地址
的形成方法对微程序编制的灵活性影响很大。通常采用两种
方法形成后继微地址:
顺序 -转移型微地
址原理图
计算机组成原理 38
顺序 -转移型微地址
微程序按地址 递增顺序 一条一条地执行微指令,遇到 转移
时,由微指令给出转移微地址,使微程序按新的顺序执行。
微指令格式:
微操作控制字段 顺序控制字段
微操作控制字段 BCF BAF
转移地址字段 BAF:用于给出后继转移微地址
转移控制字段 BCF:用于规定后继微地址是顺序执行还是按 BAF
字段的转移地址执行。
计算机组成原理 39
( 2)顺序 -转移型微地址
计算机组成原理 40
顺序 -转移型微地址特点
优点,微指令中顺序控制字段较短,
微程序便于顺序执行,
便于编写微程序循环和微子程序,
后继微地址产生机构比较简单。
缺点:
1、不利于解决两路以上的并行微程序转移。
因为微程序或者顺序执行,或者按 BAF转移微地址来执行
若进行四路转移,顺序控制字段应有三个 BAF字段,增加微指
令的长度
2、微程序在 CM中的物理分配不方便。
原因是:既有满足微地址递增顺序规律,又要灵活的
转向各种微程序与微子程序入口的要求。
计算机组成原理 41
(2) 断定型微地址
所谓 断定型微地址 是指后继微地址可 由微程序设计者指
定,或者根据微指令所规定的 测试结果直接决定 后继微地址
全部 或 部分 地址值。
微指令格式,微操作控制字段 HF TCF
HF:表示非测试地址,可由设计者直接指定,占高位部分
TCF:表示测试地址,由测试结果指定,占低位部分
计算机组成原理 42
断定型微地址形成原理示意图
微操作控制字段 HF TCF
HF TF
译码
测试网络 测试条件
微指令字
微地址
计算机组成原理 43
4重测试微指令字结构
LF,4位直接地址。 LCF:测试控制字段
1,LCF=0,LF直接送到 4位测试位
2,LCF=1,第 1组测试源送测试位
3,LCF=2,第 2组测试源送测试位
4,LCF=3,第 3组测试源送测试位
测试源 应具有某些特征,
如操作码或部分操作码,
特殊微地址值等。
L F (4 位) L C F (2 位)
4 位测试位
译码
测试网络
微指令字
微地址
第1组测 试源
第2组测 试源
第3组测 试源
0
1
2
3
计算机组成原理 44
断定型微地址特点
优点,以较短的顺序控制字段配合 实现多路并行转移,
提高微程序的 执行速度 ;
微程序在 CM中物理 分配很方便 ;
微程序设计 灵活 。
缺点,形成后继微地址结构比较复杂。
计算机组成原理 45
综合上述,后继微地址的形成是设计微程序控制的关键
问题之一。确定后继微指令地址有以下几种情况:
(A)顺序执行时,后继微地址可以由现行微指令字的下地址字
段或微程序计数器 ?PC直接确定。
(B)无条件转向 的后继微地址,可以由现行微指令字的下地址
字段确定。
(C)有条件转向 的后继微地址由现行机器指令操作码,现行微
指令执行时产生状态特征或条件码的判别结果决定。
计算机组成原理 46
微指令格式
(1) 水平型微指令 —— 并行性。
微指令中的微操作有高度并行性,灵活性强;执行指令
的时间较短;微指令字比较长,但微程序比较短;硬件
密切相关,微程序设计比较困难。微指令编码简单
(2) 垂直型微指令 —— 有微操作码、部件号 。
微指令中的并行微操作能力有限,每条微指令只表示一
个微操作;需要对微操作码和部件号译码;微指令字短,
微程序长。微指令编码比较复杂。
可以用助记符表示,例,
MOV MDR MAR
计算机组成原理 47
异常事件处理
异常和中断事件改变处理机正常指令的执行顺序
1、异常,指令执行过程中,由于操作非法和指令非法引起
的事件。
2、陷阱,指陷阱指令,有些处理机用陷阱指令来实现操纵
系统的调用。
3、中断,由外部 I/O设备所引起。
计算机组成原理 48
异常事件处理包括两方面的内容:
1、异常事件的检测,当异常事件发生时,应能让处理机知道。
2、处理机应有相应的硬件机制,实现向异常事件处理程序
的转移及处理完毕后回到用户程序。
计算机组成原理 49
如何保存 PC?
1、保存 PC到指定的通用寄存器中
2、保存 PC到专门的寄存器中
3、保存 PC到存储器堆栈。
计算机组成原理 50
多周期处理机设计为例
新增加 5条指令如下:
指令 意义
rdepc rd 读 EPC的内容,写入寄存器 rd
wrepc rs1 读寄存器 rs1的内容,写入 EPC
retex 从异常事件处理程序中返回
enai 开中断
disi 关中断
计算机组成原理 51
ALU
立即数符号扩展
P
C
Q1
存储器
寄存器堆
rs2
A
rd
A1
Q2
Write PC
SelS t
Alu OP
IR
SelLdEPC
dis p
Write Reg
DI
rs1
AD
DO
B
A2
DI
WriteZ ero1
imm e
WE CS
Add
偏移量符号扩展
Z ero
SelA luB
SelA luA
Write IR
SelD st
Z
Z ero
OpC od e
控制部件
E
P
C
SelLoa d
SelE X C
SelR S1
WriteE PCSelR S1 00 00 0V 0H
Over
Ov er
V
SelR S1
WriteEPC
SelEXC
SelL dE PC
EI
EI
E ISet
E IC lear
Write Mem
s
R
Q
具有异常事件处理功能的处理机硬件结构
计算机组成原理 52
1、使 WriteEPC,SelRS1,SelEXC有效,并输出向量 V,程序转
移到, 向量, 入口地址执行程序
具有 异常事件处理的过程:一旦检测到异常事件,在该指令
的最后一个机器周期
2、在 异常事件处理程序中,首先执行 rdepc rd指令,保存
EPC内容到 rd寄存器,便于嵌套。
3、在返回前,根据是否嵌套决定是否执行 wrepc rs1指令,然
后再执行 retex指令实现返回。
计算机组成原理 53
异常事件人口地址的产生如下
基 址 向量V 000...0
地址低位 0的个数取决于异常事件处理程序入口之间的间隔
向量的位数根据 异常事件的种类而定
为灵活方便,可增加一个基址寄存器,异常事件处理程序可
动态安排任何位置
计算机组成原理 54
异常事件 向量 V 解释
overflow 00000000B 结果溢出
invalid 00000001B 非法指令
考虑两种异常事件的, 向量,
0000 0000 0000 0000 0000 V 0000 B
基址为 0,向量的位数 8,两个 异常事件处理程序入口之间的
间隔为 4条指令,异常事件人口地址的产生如下: