一、组合逻辑设计
1. 组合逻辑控制单元框图
- CU外特性
· CU发出控制信号的时序由节拍发生器控制,在每个节拍信号的起始端CU发出操作命令
- 节拍信号
· 节拍信号是在时钟的控制下产生的
· 节拍信号的宽度或高电频的长度就是一个时钟周期
2. 微操作的节拍安排
假设条件:
· 采用同步控制方式
· 一个周期内有三个节拍(时钟周期)
· CPU内部采用非总线方式
- 安排微操作时序的原则
· 微操作的先后顺序不得随意更改
· 被控对象不同的微操作,尽量安排在一个节拍内完成(即,并行的不占用统一控件的微操作尽量安排在一个节拍内完成)
· 占用时间较短的薇操作,尽量安排在一个节拍内完成,并允许有先后顺序 - 取值周期(FE)微操作的节拍安排
· T0(原则二):PC → MAR,1 → R
· T1(原则二):M(MAR) → MDR,(PC) + 1 → PC
· T2(原则三):MDR → IR,OP(IR) → ID - 间址周期(IND)微操作的节拍安排
· T0:Ad(IR) → MAR,1 → R
· T1:M(MAR) → MDR
· T2:MDR → Ad(IR) - 执行周期(EX)微操作的节拍安排
· 对累加器清零CLA: T0/1/2:0 → AC
· 取反COM: T0/1/2:AC(非) → AC
· 算术右移SHR:T0/1/2:L(AC) → R(AC) ,A0 → A0
· 循环左移CSL:T0/1/2:R(AC) → L(AC) ,AC0 → ACn
` 停机指令STP:T0/1/2:0 → G
· 加法操作ADD X
· 存数操作STA X
· 取数指令LDA X
· 跳转指令JMP X:T0/1/2:Ad(IR) → PC
· 分支指令(条件转移)BAN X:T0/1/2:A0·Ad(IR) + A0(非)·PC → PC - 中断周期微操作的节拍安排(中断隐指令)
· T0:0 → MAR,1 → W,硬件关中断
· T1:PC → MDR
·T2:MDR → M(MAR),向量地址 → PC
· 中断隐指令不是一条指令,而是硬件中中断周期所做的所有操作
3. 组合逻辑设计步骤
- 列出操作时间表:工作周期标记、节拍、状态条件、微操作命令信号
- 写出微操作命令的最简表达式
- 画出逻辑图
· 思路清晰,简单明了
· 庞杂,调试、修改困难
· 采用硬件连接,速度快(RISC)
二、微程序设计
1. 微程序设计思想的产生
- 1951年剑桥大学教师wilkes
- 存储逻辑方式,存储在ROM中
- 一条机器指令对应一个微程序,一个微程序当中包含若干微指令,每一个微指令包含了一个或多个微操作的控制信号。
2. 微程序控制单元框图及工作原理
机器指令对应的微程序
1 取值周期微程序:M
2. 间址周期微程序
3. 中断周期微程序
4. 对应LDA操作的微程序:P
5. 对应STA操作的微程序:K
微程序控制单元的基本框图
- 核心:控制存储器
- 微指令地址:控制存储器CMAR(只读)
- 微指令基本格式:操作控制 + 顺序控制
工作原理
- 取值阶段:执行取值微程序
- 执行阶段:执行LDA微程序
- 取值阶段:执行取值微程序
· 全部微指令存在CM中,程序执行过程中只需读出
· 微指令的关键:操作控制字段如何形成操作命令?后续地址如何形成?
3. 微程序的编码方式(控制方式)
- 直接编码(直接控制方式)
· 在微指令的操作控制字段中,每一位代表一个微操作命令
· 某位为“1”表示该控制信号有效,速度快
- 字段直接编码方式
· 将微指令的控制字段分成若干“段”,每段经译码后发出控制信号。
· 显示编码:分到一组的微操作是互斥的,不同组发出的微操作命令可能是互斥的
· 缩短了微指令字长,增加了译码时间,微程序执行慢
- 字段间接编码方式(隐式编码)
· 不仅与每段的译码结果有关,还与其他端的译码结果有关
- 混合编码:直接编码和字段编码(直接和间接)混合使用
- 其他
4. 微指令序列地址的形成
-
微指令的下地址字段
-
根据机器指令的操作码形成
-
增量计数器:(CMAR) + 1 → CMAR
-
分支转移:操作控制字段 + 转移方式(指明判别条件) + 转移地址(指明转移成功后的去向)
-
通过网络测试(小范围)
-
由硬件产生微程序入口地址
· 第一条微指令地址:由专门的硬件产生
· 中断、间址周期:由硬件产生该周期微程序首地址 -
后续微指令地址形成方式原理图
5. 微指令格式
- 水平型微指令
· 一次能定义并执行多个并行操作
· eg. 直接编码、字段直接(间接)编码、直接和字段混合编码 - 垂直型微指令
· 一次只能定义一个操作,操作复杂,类似机器指令操作码的方式
· 由操作码字段规定微指令的功能 - 两种微指令格式的比较
· 水平型微指令比垂直型微指令并行操作能力强,灵活性强
· 水平型微指令执行一条机器指令所要的微指令数目少、速度快
· 水平型微指令用较短的微程序结构换区较长的微指令结构
· 水平型微指令与机器指令差别大
6. 静态微程序设计和动态微程序设计
- 静态:微程序无须改变,采用ROM
- 动态:通过改变微指令和微程序 改变机器指令,有利于仿真,采用EPROM
7. 毫微程序设计
- 毫微程序设计的基本概念
· 微指令当中的操作复杂,且内部的毫微操作内部也有一定的时间顺序,则可用毫微程序解释该微指令
· 微程序设计用微程序解释机器指令
· 毫微程序设计用毫微程序解释微指令 - 毫微程序控制存储器的基本组成
8. 串行微程序控制和并行微程序控制
9. 微程序设计举例
机器指令的微操作及节拍安排
- 假设CPU结构与组合逻辑相同
- 取值阶段微操作及节拍安排
- 访存指令与非访存指令需要的微操作指令:Ad(CMDR) → CMAR
确定微指令格式
- 微指令的编码方式:采用直接控制
- 后续微指令的地址形成方式
· 由机器指令的操作码通过微地址形成部件构成
· 由微指令的下地址字段直接给出 - 微指令字长
· 由20个微操作(确定操作控制字段最少20位) 及 38条微指令(确定微指令的下地址字段为6为)组成
· 微指令字长可取 20+6=26位 - 微指令字长的确定
· 38条微指令中19条是关于后续微指令地址 → CMAR
· 其中,1条:OP(IR) → 微地址形成部件 → CMAR,18条Ad(CMDR) → CMAR。若用Ad(CMDR)直接送控存地址线,则省去了输至CMAR的时间,省去了CMAR,同理OP(IR) → 微地址形成部件 → 控存地址线
· 则可省去19条微指令,2个微操作 - 省去了CMAR的控制存储器