1. 微程序设计
1.1 微程序设计思想
使用微程序的设计方式,实现计算机系统的控制器;
微程序的设计,是方便指令集的修改和扩展;
每个节拍发出的控制命令, 实际上就是一个电信号,或者是几个电信号,由电信号控制相应的部件进行操作。
微程序的设计思想,是将控制信号存储起来
存储高低电平,控制每个节拍需要发出的微操作命令;
一条机器指令 对应一个微程序, 一个微程序对应多个微指令,
每一个微指令对应 一个或者多个微操作控制信号
微指令之间的先后顺序,就是微操作在执行过程的先后顺序,
将逻辑信号,保存在存储器当中,使用存储器对给定的存储单元,进行读出,由这些信号控制相关部件进行操作
微程序设计思想就是将每一条机器指令编写成一个微程序,每一个微程序包含若干条微指令,每一条微指令对应一个或几个微操作命令。
1.2 微程序控制单元的基本框图
取指周期需要三个节拍来完成,每个节拍对应了一条微指令。
完成那个节拍中,产生控制命令的工作;
微程序,微指令都保存在控制存储器当中,
机器语言程序是机器指令的有序集合;微程序是微指令的有序集合,一条机器指令的功能由一个微程序来实现
1.3 工作原理
每一条机器指令由若干条微指令组成的微程序来解释执行
机器指令对应的微程序
1.3.1 取指阶段
取指阶段 执行取指微程序
M -> CMAR
CM ( CMAR ) --> CMDR
由 CMDR 发命令
形成下条微指令地址 M +1 ;
Ad (CMDR )–> CMAR
CM (CMAR ) --> CMDR
由 CMDR 发命令
形成下条微指令地址 M+2;
Ad (CMDR ) --> CMAR
CM (CMAR ) --> CMDR
由 CMDR 发命令
1.3.2 执行阶段
OP ( IR ) —> 微地址形成部件 --> CMAR
CM ( CMAR ) —> CMDR
1.3.2 取指阶段
M --> CMAR
CM ( CMAR ) —> CMDR
全部微指令存在 CM 中,程序执行过程中 只需读出;
关键:
- 微指令的 操作控制字段如何形成微操作命令
- 微指令的 后续地址如何形成
2. 微指令的编码方式(控制方式)
2.1 直接编码(直接控制)方式
在微指令的操作控制字段中,
每一位代表一个微操作命令
2.2 字段直接编码方式
将微指令的控制字段分成若干 “段” ,
每段经译码后发出控制信号
每个字段中的命令是 互斥 的;
缩短 了微指令 字长, 增加 了译码 时间;
2.3 字段间接编码方式
2.4 混合编码
直接编码和字段编码(直接和间接)混合使用
3. 微指令序列地址的形成
3.1微指令的 下地址字段 指出
3.2 根据机器指令的 操作码 形成
3.3 增量计数器
( CMAR ) + 1 --> CMAR
3.4分支转移
操作控制字段 | 转移方式 | 转移地址 |
---|---|---|
转移方式: 指明判别条件
转移地址: 指明转移成功后的去向
3. 5通过测试网络
3.6由硬件产生微程序入口地址
第一条微指令地址, 由专门 硬件产生;
中断周期: 由 硬件 产生 中断周期微程序首地址
3.7后续微指令地址形成方式原理图
后续微指令的地址形成方式的是()。
- 直接由微指令的下地址字段给出
- 根据机器指令的操作码形成
- 增量计数器法,即(CMAR)+1→CMAR
- 通过测试网络形成
4. 微指令格式
4.1水平型微指令
一次能定义并执行多个并行操作;
如 直接编码、字段直接编码、字段间接编码、
直接和字段混合编码
4.2垂直型微指令
类似机器指令操作码 的方式;
由微操作码字段规定微指令的功能;
4.3 两种微指令格式的比较
-
- 水平型微指令比垂直型微指令 并行操作能力强 ,
灵活性强
- 水平型微指令比垂直型微指令 并行操作能力强 ,
-
- 水平型微指令执行一条机器指令所要的
微指令 数目少,速度快
- 水平型微指令执行一条机器指令所要的
-
水平型微指令 用较短的微程序结构换取较长的
微指令结构 -
水平型微指令与机器指令 差别大
5. 静态微程序设计和动态微程序设计
5.1静态
静态: 微程序无须改变,采用 ROM
5.2 动态
可以修改或者是扩展计算机系统的指令集;
增加指令集中的指令;
动态: 通过 改变微指令 和 微程序 改变机器指令,
有利于仿真,采用 EPROM;
6. 毫微程序设计
6.1毫微程序设计的基本概念
微程序设计: 用 微程序解释机器指令
毫微程序设计 :用 毫微程序解释微指令;
微指令是用来解释机器指令的;
毫微指令是用来解释微指令的。;
毫微指令与微指令 的关系好比 微指令与机器指令 的关系
6.2毫微程序控制存储器的基本组成
7. 串行微程序控制和并行微程序控制
7.1 串行微程序控制
8. 微程序设计举例
8.1写出对应机器指令的微操作及节拍安排
假设 CPU 结构与组合逻辑相同
-
取指阶段微操作分析
OP ( IR ) —> 微地址形成部件 —> CMAR -
取指阶段的微操作及节拍安排
- 执行阶段的微操作及节拍安排
考虑到需形成后续微指令的地址:
取指微程序的入口地址 M
由微指令下地址字段指出
非访存指令
访存指令
转移类指令:
20 种微操作,共组成38条微指令;
如果采用,水平型直接编码方式, 每个微操作在操作控制字段都需要一位来表示;
8.2 确定微指令格式
(1) 微指令的编码方式
采用直接控制
(2) 后续微指令的地址形成方式
由机器指令的操作码通过微地址形成部件形成;
由微指令的下地址字段直接给出;
(3) 微指令字长
由 20 个微操作
确定 操作控制字段, 最少 20 位;
由 38 条微指令:
确定微指令的 下地址字段 为 6 位
微指令字长 可取 20 + 6 = 26 位
(4) 微指令字长的确定
38 条微指令中有 19 条
是关于后续微指令地址 CMAR
其中
1 条:OP ( IR ) 微地址形成部件 CMAR
18 条: Ad ( CMDR ) —> CMAR
若用 Ad ( CMDR ) 直接送控存地址线
则 省去了输至 CMAR 的时间,省去了 CMAR;
- 同理 OP ( IR )—> 微地址形成部件 --> 控存地址线
可省去 19 条微指令, 2 个微操作
38 - 19 = 19
下地址字段最少取 5 位;
20 - 2 = 18
操作控制字段最少取 18 位;
(5) 省去了 CMAR 的控制存储器
考虑留有一定的余量:
取操作控制字段:
下地址字段:
(6) 定义微指令操作控制字段每一位的微操作;
8.3 编写微指令码点
下地址字段中: 每3位代表一个八进制数;
后记
2023, 06.30.
哈工大的计算机组成原理,理论部分看完;
年初的时候,开始学习;
那时候外公还在,今天是农历十三,
希望后续自己继续变强,
直到有一天,我有能力可以保护我想守护的人。
后面开始,
- 汇编语言(王爽),
- 以及操作系统(南京大学)的学习。
- 操作系统45讲,彭东;
学习过程中,会穿插看华科 计算机组成原理的部分内容;