硬布线控制器
硬布线控制器单元图
根据指令操作码、当前的机器周期、节拍信号、机器状态条件即可确定当前节拍下应发出什么微命令。
硬布线控制器
- 通过判断取值周期、节拍数和具体指令操作码,写出逻辑表达式
- 将逻辑表达式以电路实现
硬布线控制器的设计
分析每个阶段的微操作序列
- 会用到哪些指令
- 在什么阶段用到
- 在什么条件下用到
选择CPU控制方式
- 定长周期 & 不定长周期
- 每个机器周期几个节拍
安排微操作时序
- 哪些微操作在前,那些在后
- 每个节拍内安排多少指令
电路设计
- 列出操作时间表
- 写出微操作命令的最简表达式
- 画出逻辑图
排微操作时序的原则
- 微操作的先后顺序不得随意更改
- 先分析指令的依赖顺序
- 被控对象不同的微操作尽量安排在一个节拍内完成
- 占用时间较短的微操作尽量安排在一个节拍内完成,并允许有先后顺序
- 同样在CPU内部的寄存器之间的数据流可以安排在一个周期内
- 主存和内部寄存器之间的数据操作不能在一个节拍内
硬布线控制器的特点
- 一般用于RISC (精简指令集系统)
- 扩充指令较困难
- 执行速度很快,微操作控制信号由组合逻辑电路即时产生
微程序控制器
微程序控制器的设计思路
- 若干微命令编制成一条微指令,控制实现一步操作;
- 若干微指令组成一段微程序,解释执行一条机器指令;
- 采用存储程序思想,出厂前将所有指令的微程序存入控制器存储器中
微程序控制器的基本结构
微指令执行原理
- 控制存储器CM:存放微程序,由ROM构成
- 容量为:微指令数量×微指令字长微指令数量×微指令字长
- CMAR(μPC):微地址寄存器,相当于PC和MAR的作用
- 地址译码:处理微地址,转化为CM控制信号
- CMDR(μIR):存储从CM中取出的微指令,位数与微指令字长相等
- 微地址形成部件:通过IR中指定的操作码确定该指令对应的微指令序列的首微地址
- 顺序逻辑:控制微指令的执行顺序
- 可以通过机器指令的寻址特征判断寻址方式,决定是否要跳过间址周期
- 一个微程序理论上包括寻址周期微程序、间址周期微程序、执行周期微程序和中断周期微程序四个微程序段
- 取值周期、间址周期和中断周期的微程序通常是共用的
- 若有n条指令,则最少有n+1条微程序段(可能会没有间址周期和中断周期)
微指令工作过程
取机器指令
转微程序入口
执行首条微指令
取后续微指令
继续执行直到返回
微指令的格式
水平型微指令
一条微指令能定义多个可并行的微命令。
- 优点
- 微程序短
- 执行速度快
- 缺点
- 微指令长
- 编写麻烦
垂直型微指令
一条微指令只能定义一个微命令,由微操作码字段规定具体功能
- 优点
- 微指令短
- 简单规整,便于编写
- 缺点
- 微程序长
- 执行速度慢,工作效率低
混合型微指令
在垂直型的基础上增加一些不太复杂的并行操作。
- 微指令较短,仍便于编写
- 微程序也不长,执行速度加快
微指令的编码方式
讨论水平型微指令中操作控制部分如何编码表示微指令
直接编码
- 在微指令的操作控制字段中,每一位代表一个微操作命令。
- 某位为“1”表示该控制信号有效
- 优点
- 简单直观
- 执行速度快
- 操作并行性好
- 缺点
- 微指令字长过长,导致CM容量需求极大S
字段直接编码方式
- 将微指令的控制字段分成若干“段” ,每段经译码后发出控制信号
- 分段原则
- 互斥性微命令分在同一段内,相容性微命令分在不同段内
- 每个小段中包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间
- 一般每个小段还要留出一个状态,表示本字段不发出任何微命令
- 当某字段的长度为3位时,最多只能表示7个互斥的微命令,通常用000表示不操作
互斥性微命令:不允许并行完成的微命令
相容性微命令:允许并行完成的微命令
例:某计算机的控制器采用微程序控制方式,微指令中的操作控制字段采用字段直接编码法。共有33个微命令,构成5个互斥类,分别包含7、3、12、5和6个微命令,则操作控制字段至少有多少位?
- 第一个互斥类:7+1=8≤237+1=8≤23
- 第二个互斥类:3+1=4≤223+1=4≤22
- 第三个互斥类:12+1=13≤2412+1=13≤24
- 第四个互斥类:5+1=6≤235+1=6≤23
- 第五个互斥类:6+1=7≤236+1=7≤23
- 总字段数:3+2+4+3+3=15 位
优点 - 可以缩短指令字长
缺点 - 要通过译码电路后再发出微命令,因此比直接编码方式慢
字段间接编码
一个字段的某些微命令需由另一个字段中的某些微命令来解释,由于不是靠子段直接译码发出的微命令,故称为字段间接编码,又称隐式编码。
- 进一步缩短指令字长
- 执行更慢
微指令的地址形成方式
- 通过微指令的下地址字段指出
- 依据机器指令的操作码形成
- 机器指令放入IR
- 微地址形成部件通过机器指令的操作码部分形成微指令的地址
- 增量计数器法:(CMAR)+1 → CMAR,类似PC
- 分支转移
- 转移方式:指明判别条件
- 转移地址:指明转移成功后的去向
- 通过测试网络
- 由硬件产生微程序入口地址
- 取值周期的第一条微指令的地址由硬件自动给出
微程序控制单元的设计
设计步骤
分析每个阶段的微操作序列
写出对应机器指令的微操作命令及节拍安排
- 写出每个周期所需要的微操作(与硬布线相同)
- 添加微程序控制器特有的微操作
- 取值周期
- 每条微指令执行结束之后:Ad(CMDR)→CMAR,指明下地址
- 最后一条执行结束后:OP(IR)→微地址形成部件→CMAR,确定执行周期的微程序首地址
- 执行周期
- 指明下地址:Ad(CMDR)→CMAR
- 取值周期
确定微指令格式
- 根据操作码的编码方式确定操作控制字段的位数
- 根据CM中的微指令总数确定顺序控制字段的位数
- 根据操作控制字段和顺序控制字段的长度确定微指令字长
编写微指令码点
微程序设计分类
- 静态微程序设计:
- 微程序无需改变
- 采用ROM
- 动态威程序设计
- 通过改变微指令和微程序改变机器指令
- 有利于仿真
- 采用EPROM
毫微程序设计:用毫微程序解释微程序(更进一步)
微程序控制器的特点
- 执行速度慢
- 较规整,易于扩充修改
- 适用于CISC(复杂指令集系统)