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执行周期微操作安排
非访存指令
清除累加器CLA
累加器取反COM
算术右移SHR
循环左移CSL
停机指令STP
访存指令
加法指令ADD X
存数指令STA X
取数指令LDA X
转移类指令
无条件转移JMP X
有条件转移BAN X
1.1.4中断周期微操作节拍安排
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,机器指令操作码部分送至微地址形成部件,其输出为该机器指令微程序首地址
增量计数器法
分支转移
通过测试网络形成
由硬件产生微程序入口地址
2.4微指令格式
2.5微程序设计举例