第十章控制单元的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第十章控制单元的设计
本章以10条机器指令为例,介绍控制单元的两种设计方法。
第一节组合逻辑设计
一、组合逻辑控制单元框图
从控制单元的外特性图中可以看出,指令的操作码是决定控制单元发出不同控制信号的关键。为了简化控制单元的逻辑,将存放在IR的n位操作码经过一个译码电路产生2n个输出,这样,每对应一种操作码便有一个输出送至CU。当然,若指令的操作码长度可变,指令译码线路将更复杂。
控制单元的时钟输入实际上是一个脉冲序列,其频率即为机器的主频,它使CU能按一定的节拍(T)发出各种控制信号。节拍的宽度应满足数据信息通过数据总线从源到目的所需的时间。以时钟为计数脉冲,通过一个计数器,又称节拍发生器,便可产生一个与时钟周期等宽的节拍序列。如果将指令译码和节拍发生器从CU中分离出来,便可得简化的控制单元框图,如下图所示。
二、微操作的节拍安排
假设机器采用同步控制,每个机器周期包含3个节拍,而且CPU内部结构为非总线结构,其中MAR和MDR分别直接和地址总线和数据总线相连,并假设IR的地址码部分与MAR之间有通路。
安排微操作节拍时应注意三点:
第一,有些微操作的次序是不容改变的,故安排微操作节拍时必须注意微操作的先后顺序。
第二,凡是被控制对象不同的微操作,若能在一个节拍内执行,应尽可能安排在同一个
节拍内,以节省时间。
第三,如果有些微操作所占的时间不长,应该将它们安排在一个节拍内完成,并且允许这些微操作有先后次序。
按上述三条原则,以第九章中所分析的10条指令为例,其微操作的节拍安排如下:
1.取指周期微操作的节拍安排
①根据原则二,T
节拍可安排两个微操作:PC→MAR,1→R;
②根据原则二,T
1
节拍可安排M(MAR)→MDR和(PC)+1→PC两个微操作。
③T
2
节拍可安排MDR→IR,考虑到指令译码时间较短,根据原则三,可将指令译码OP(IR)
→ID也安排T
2
节拍内;
实际上(PC)+1→PC操作也可安排在T
2
节拍内,因一旦PC→MAR后,PC的内容就可修改。
2.间址周期微操作的节拍安排
T
Ad(IR) →MAR,1→R
T
1
M(MAR) →MDR
T
2
MDR→Ad(IR)
3.执行周期微操作的节拍安排
·非访存指令
①清除累加器指令CLA。
该指令在执行周期只有一个微操作,按同步控制的原则,此操作可安排在T
0~T
2
的任一
节拍内,其余节拍空,如
T
T
1
T
2
0→AC
②累加器取反指令COM。
同理,用加器取反操作可安排在T
0~T
2
的任一节拍中,即
T 0
T 1
T 2
③算术右移一位指令SHR。
T
T
1
T
2L(AC)→R(AC),AC
→AC
④循环左移一位指令CSL。
T
T
1
T 2R(AC)→R(AC),AC
→AC
(即ρ-1(AC))
⑤停机指令STP。
T
T
1
T
2
0→G
·访存指令
①加法指令ADD X
T
Ad(IR) →MAR, 1→R
T
1
M(MAR) →MDR
T
2
(AC)+(MDR)→AC,(该操作实际包括(AC) →ALU,(MDR) →ALU,ALU→AC)②存数指令STA X。
T
Ad(IR) →MAR, 1→W
T
1
AC →MDR
T
2
MDR→M(MAR)
③取数指令 LDA X。
T
Ad(IR) →MAR, 1→R
T
1
M(MAR) →MDR
T
MDR→AC
2
·转移类指令
①无条件转移指令JMP X。
T
T
1
Ad(IR)→PC
T
2
②有条件转移(负则转)指令BAN X。
T
T
1
T
2
4.中断周期微操作的节拍安排
在执行周期的最后时刻, CPU要向所有中断源发中断查询信号,若检测到某个中断源有请求,并且未被屏蔽又被排队选中,则在允许中断的条件下,CPU进入中断周期,此时CPU由中断隐指令完成下列操作(假设程序断点存入主存0号地址单元内):T
0→MAR, 1→W
PC →MDR
T
1
MDR→M(MAR),向量地址→PC
T
2
此外, CPU进入中断周期,由硬件置“0”允许中断触发器EINT,即关中断。
三、组合逻辑设计步骤
组合逻辑设计控制单元时,首先根据上述微操作的节拍安排,列出微操作命令的操作时间表,然后写出每一个微操作命令(控制信号)的逻辑表达式,最后根据逻辑表达式画出相应的组合逻辑电路图。
1.列出微操作命令的操作时间表