13-第四篇-控制单元的功能
一、微操作命令分析
微操作:指令解释阶段由控制单元发出的一些指令,这些指令完成的动作跟整条指令完成的功能相比要小的多
完成一条指令分4个周期
取指周期
间址周期
指令周期
中断周期
1.取指周期
PC-> MAR-> 地址线
1-> R
M(MAR) -> MDR
MDR -> IR
OP(IR) ->CU
PC+1->PC
2.间址周期
指令形式地址 -> MAR
Ad(IR)->MAR
1->R
M(MAR)->MDR
MDR->Ad(IR)
3.执行周期
-
非访存指令
1)CLA 清A o->ACCC
2) COM 取反
3) SHA 算术右移 L(ACC)->R(ACC), ACC_0->ACC_0
4) CSL 循环左移 R(ACC)->L(ACC),ACC_0->ACC_n
5) STP 停机指令 0->G -
访存指令
1)加法指令 ADD X
Ad(IR)->MAR
1->R
M(MAR)->MDR
(ACC)+(MDR)->ACC
2)存数指令 STA X 将ACC中的数据保存到内存单元X里
Ad(IR)->MAR
1->W
ACC->MDR
MDR->M(MAR)
3) 取数指令 LDA X
Ad(IR)->MAR
1->R
M(MAR)-> MDR
MDR->ACC -
转移指令
1)无条件转移 JMP X
Ad(IR)->PC
2) 条件转移 BAN X 如果上一调指令的值为负数,跳转到X
A_0Ad(IR) + A_O取反(PC)->PC -
三类指令的指令周期
非访存指令周期:取指周期+执行周期
直接访存的指令周期 取指周期+执行周期
间接访存指令周期 取指周期+间址周期+执行周期
转移指令周期 取指周期+间址走起
间接转移指令周期 取指周期+间址周期+执行周期
4.中断周期
中断周期完成3件事
- 保存断点
1)程序断点存入“0”地址
0->MAR
0->W
PC->MDR
MDR->M(MAR)
向量地址->PC
0->EINT(置零)
2)程序断点进栈
(SP)-1->MAR
PC->MDR
MDR->M(MAR)
向量地址->PC
0->EINT(置零) - 形成中断服务入口地址
- 关中断
二、控制单元的功能
1.控制单元的外特性
输入:指令寄存器内容 标志、时钟及来自系统总线的控制信号
1)时钟信号
一个时钟脉冲
发一个操作命令或一组需同时执行的操作命令
2)指令寄存器 OP(IR)->CU
控制信号与操作码有关
3)标志
CU 受标志控制 例如跳转指令
4)外来信号
如 INTR 中断请求 HRQ 总线请求
输出:CPU内部的控制信号及到系统总线的控制信号
1)CPU内的各种控制信号
R_i->R_j
(PC)+1->PC
ALU +、-、与、或
2)送至控制总线的信号
MREQ 访存控制信号
访IO/存储器的控制信号
RD 读命令
WR 写命令
INTA 中断响应信号
HLDA 总线响应信号
2. 控制信号举例
- 不采用CPU内部总线的方式
- 采用CPU内部总线的方式
3.多级时序系统
- 机器周期
1)机器周期的概念
所有指令周期需考虑的因素
2)确定机器周期需考虑的因素
每条指令的指令步骤
每一步骤所需的时间
3)基准时间的确定
以完成最复杂指令功能的时间为准
以访问一次存储器的时间为基准
若指令字长=存储字长 取指周期=机器周期 - 时钟周期(节拍、状态)
一个机器周期内可完成若干个微操作
每个微操作需一定的时间
将一个机器周期分成若干个时间相等的时间段(节拍、状态、时钟周期)
时钟周期是控制计算机操作的最小单位时间
用时钟周期控制产生一个或几个微操作命令 - 多级时序系统
机器周期、节拍(状态)组成多级时序系统
一个指令周期包含若干个机器周期
一个机器周期包含若干个节拍
机器周期可以不相等 例如取指周期和执行周期的可以包含不同数量的节拍 - 机器速度和主频的关系
机器的主频f越快 机器的速度也越快
在机器周期所含时钟周期数相同的前提下,两机平均指令执行速度之比等于两机主频之比
机器速度不仅与主频有关,还与指令周期中包含的机器周期的数量以及机器周期中包含的节拍数量有关,并且采用指令流水和非指令流水的配置也得一致
4. 控制方式
产生不同微操作命令序列锁用的时序控制方式
- 同步控制方式(采用的比较多)
任一微操作均由统一基准时标的时序信号控制
1)采用定长的机器周期
以最长的微操作序列和最复杂的微操作作为标准
机器周期内含有的节拍数是相同的,这种方式可能在执行周期会有时间被浪费
2)机器周期内节拍数不等
3)采用中央控制和局部控制相结合的方法
局部控制的节拍宽度与中央控制的节拍宽度一致 - 异步控制方式
无基准时标信号
无固定的周期节拍和严格的时钟同步
采用应答方式 - 联合控制方式
同步和异步相结合
如果是操作内存的指令采用同步方式,如果是操作IO设备的指令,采用异步方式 - 人工控制方式
为了调机或者调程序方便软件上设置的方法
1)reset
2) 连续和单条指令执行转换开关
3) 符合停机开关