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