计算机组成原理19----控制单元CU设计

                                                             控制单元CU设计

1.组合逻辑设计

1.1微操作节拍安排

1.1.1安排微操作时序原则

1.1.2取值周期微操作节拍安排

1.1.3间址周期微操作节拍安排

1.1.4执行周期微操作安排

1.1.5中断周期微操作节拍安排

1.2组合逻辑设计步骤

1.2.1列出微操作操作时间表

1.2.2 写出微操作命令的最简表达式

1.2.3画出组合逻辑电路图

2.微程序设计

2.1微程序控制单元工作原理

2.1.1微程序控制单元基本框图

2.1.2LDA X微指令执行分析

2.2微指令编码方式

2.2.1直接编码方式

2.2.2字段直接编码方式

2.2.3字段间接编码方式

2.3微指令序列地址形成

2.4微指令格式

2.4.1 水平型和垂直型微指令

2.4.2 静态和动态微程序设计

2.4.3 毫微程序设计

2.4.4 串行和并行微程序控制

2.5微程序设计举例

2.5.1 机器指令微操作分析和节拍安排

2.5.2确定微指令格式

2.5.3编写微指令码点


CPU中控制单元结构示意如下,其中控制单元CU主要负责发出各种微操作命令序列来控制完成各种指令。

根据CU的功能特性来进行CU的设计,主要包括组合逻辑设计和微程序设计。

1.组合逻辑设计

CU的外特性如下所示

机器主频时钟,输入到节拍发生器,产生节拍序列输入到CU中控制各种微操作

IR指令寄存器操作码输入到操作码译码中产生各种控制信号来控制完成各种操作

1.1微操作节拍安排

假设CPU内部结构采用非总线方式如下所示,采用同步控制方式,一个机器周期内部有三个节拍

1.1.1安排微操作时序原则

1.微操作先后顺序不得随意更改

2.被控对象不同的微操作,尽量安排在一个节拍内部完成

3.占用时间较短的微操作,尽量安排在一个节拍内完成,并允许有先后顺序

1.1.2取值周期微操作节拍安排

T0 指令地址送入MAR,向主存发送读信号

T1 MAR所指内存指令送入MDR,PC+1形成下一条指令地址

T2 MDR中指令送入IR指令寄存器,将指令中操作码送到ID译码部件

1.1.3间址周期微操作节拍安排

1.1.4执行周期微操作安排

非访存指令

清除累加器CLA

累加器取反COM

算术右移SHR

循环左移CSL

停机指令STP

访存指令

加法指令ADD X

存数指令STA X

取数指令LDA X

转移类指令

无条件转移JMP  X

有条件转移BAN  X

1.1.5中断周期微操作节拍安排

1.2组合逻辑设计步骤

根据微操作节拍安排,列出微操作命令操作时间表,写出每一个微操作的逻辑表达式,画出组合逻辑电路图

1.2.1列出微操作操作时间表

假定FE,IND,EX表示CPU工作周期标志取指,间接寻址和执行

T0-T2为节拍

I为间址标记,在取指周期T2时刻,如果I=1,IND触发器=1,则表示进入间址周期;如果I=0,表示进入执行周期;

在间址周期T2时刻,如果IND=1,表示继续间址;IND=0,EX触发器=1,进入执行周期

1.2.2 写出微操作命令的最简表达式

以微操作M(MAR)-->MDR为例:

1.2.3画出组合逻辑电路图

思路清晰,简单明了

每一个微操作都对应一个逻辑电路,庞杂,调试困难,修改困难

采用RISC来实现,速度快

2.微程序设计

将一个微指令编写一个微程序,每一个微程序包含若干微指令,每一条微指令对应一个或多个微操作

每一个机器指令对应一个微程序,存入ROM中,执行一个机器指令需要多次访问ROM

2.1微程序控制单元工作原理

不同机器指令对应的微程序,取指,间址和中断周期操作是固定的,可以存入ROM中,后面继续存放各种操作的执行周期微程序

2.1.1微程序控制单元基本框图

控制存储器核心部件,用来存放全部微程序;

CMAR控存地址寄存器,存放欲读出微指令地址;

CMDR控存数据寄存器,存放从控存读出的微指令;

顺序逻辑控制微指令序列,控制形成下一条微指令地址

微指令基本格式如下

操作控制字段 发出各种控制信号

顺序控制字段  指出下条微指令地址,控制微指令序列执行顺序

2.1.2LDA X微指令执行分析

取指阶段

1.将取指周期微程序首地址

2.取微指令 将控存M地址单元中第一条微指令读到控存数据寄存器中

3.产生微操作命令,微操作控制字段为1的各位发出控制信号

4.形成下一条微指令地址

5.取出下一条微指令

。。。。如此往复直到所有取指周期微程序执行完毕

此时指令指令  LDA  X已存至寄存器IR中

执行阶段   执行LDA微程序

1.取数指令微程序首地址形成

2.取微指令

3.产生微指令操作命令

4.形成下一条微指令地址

。。。如此往复,最终主存X地址单元中的操作数取至累加器ACC中

2.2微指令编码方式

2.2.1直接编码方式

在微指令操作控制字段中,每一位代表一个微操作命令

2.2.2字段直接编码方式

将微指令控制字段分成若干段,每段经译码后发出控制信号

每个字段中的命令是互斥的,缩短了微指令字长,增加了译码时间

2.2.3字段间接编码方式

某些字段微命令还需另一个字段中的微指令来解释

2.3微指令序列地址形成

直接由微指令下地址字段指出

根据机器指令操作码形成

机器指令取到指令寄存器IR,机器指令操作码部分送至微地址形成部件,其输出为该机器指令微程序首地址

增量计数器法

对于顺序地址,微指令可采用增量计数法

分支转移

对于条件转移指令,转移方式指明判别条件;转移地址指明转移成功后的去向

通过测试网络形成

由硬件产生微程序入口地址

电源上电后,第一条微指令地址可以由硬件直接产生,或者由外部直接输入到CMAR,也就是取指周期微程序入口地址;

中断周期,由硬件产生中断周期微程序入口地址;

综上所述,微指令后序地址生成方式如下

由外部微程序入口产生

指令操作码经微地址形成部件产生

由CMAR自增产生

由微指令下地址字段产生

2.4微指令格式

2.4.1 水平型和垂直型微指令

水平型:一次定义并并行执行多个操作

垂直型:由微操作码字段规定微指令功能

比较

2.4.2 静态和动态微程序设计

静态:微程序无需改变 采用ROM

动态:通过改变微程序和微指令改变机器指令 采用EPROM

2.4.3 毫微程序设计

微程序设计:用微指令解释机器指令

毫微程序设计:用毫微程序解释微指令

2.4.4 串行和并行微程序控制

串行微程序控制

并行微程序控制

2.5微程序设计举例

CPU结构如下

2.5.1 机器指令微操作分析和节拍安排

取指阶段微指令分析

微指令中第一条由微程序入口地址给出,后面每一条微指令需要由上一条微指令下地址字段给出

考虑需要形成后序微指令地址,取指阶段微指令分析和节拍安排

当取出指令时,送入微地址形成部件,送入CMAR

执行阶段微操作和节拍安排

非访存指令

访存指令

转移指令

2.5.2确定微指令格式

微指令编码方式

采用直接控制方式

后续微指令地址形成方式

由机器指令操作码经微程序地址形成部件产生

由微程序下地址字段直接给出

微指令字长

20个微操作  操作控制字段需要20位

38个微指令  下地址字段为6位

微指令字长需要26位

微指令字长确定

38条微指令中19条是后续微指令地址送入CMAR中

若Ad(CMDR)直接送到地址线,微地址形成部件地址直接送到地址线,则可以省去19条微指令,2个微操作

则微指令需要19条,微操作18个

则控制字段需要18位,下地址字段需要5位

考虑余量,取控制字段24位,下地址字段6位,共30位

定义微指令控制字段每一位的控制操作

2.5.3编写微指令码点

操作控制字段共20位,其中第0,1,2,3,4,10代表操作如下所示

对于取指各种指令的微指令编码如下

参考资料:计算机组成原理--哈工大--刘宏伟

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值