第十章 控制单元的设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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的逻辑表达式所对应的逻辑图如下图所示,图中未考虑门的扇入系数。

相关文档
最新文档