计算机组成原理学习笔记
一、组合逻辑控制器
-
定义:利用组合逻辑电路生成控制信号,无存储功能,直接通过硬件实现控制逻辑。
-
基本原理
:通过输入信号和逻辑电路生成输出控制信号,主要用于控制器中控制特定操作的执行。
- 根据操作需要,输入端口传递信号给组合逻辑电路;
- 通过逻辑门输出所需的控制信号,用以触发硬件微操作。
二、微操作的节拍安排
- 微操作的定义:计算机系统中每个基本硬件操作,例如寄存器间的数据传输、数据存储、加法操作等。
- 节拍安排:
- 微操作的执行由时钟周期(节拍)控制。
- 在每个节拍中,特定的微操作被安排执行,多个微操作可以在同一节拍内并行完成,但需要硬件资源不冲突。
三、微程序编码方式
-
直接编码:每个微操作对应一个控制字段的位,简单直观,但控制字段长度较长。
- 优点:无额外硬件译码,控制灵活。
- 缺点:微指令长度随微操作数量线性增加。
-
字段直接编码:
- 将微操作分为多个字段组,每组字段可独立控制一类操作。
- 例如,一个字段控制寄存器操作,另一个字段控制总线操作。
-
字段间接编码:
- 对每组字段的微操作进行间接编码,利用译码器将字段值翻译为控制信号。
- 优点:大大缩短微指令长度。
- 缺点:硬件译码逻辑复杂,灵活性下降。
-
混合编码:结合直接编码和间接编码的特点,对频繁使用的操作直接编码,对复杂操作间接编码。
四、CU(控制单元)的控制字段
- 定义:控制字段是微程序控制器或组合逻辑控制器用来控制微操作的二进制编码字段。
- 每一位或每组字段激活一个硬件微操作。
- 为什么需要多少微操作就需要多少位控制字段?
- 每个微操作需要一个独立的控制信号,CU需要生成所有这些控制信号。
- 每一位控制字段用
0或1表示是否激活某个具体的微操作。 - 例如:
- 微操作
MAR <- PC需要1位控制字段。 - 微操作
MDR <- Memory[MAR]需要1位控制字段。
- 微操作
- 优化方法:
- 直接编码:每位控制一个微操作,灵活但字段长度长。
- 字段分组(Field Partitioning):将微操作分组,每组用一个字段控制。
- 间接编码(译码器方式):将字段值翻译为具体的控制信号,减少字段长度,但增加译码逻辑复杂度。
五、微程序与硬布线控制器的比较
| 特性 | 微程序控制器 | 硬布线控制器 |
|---|---|---|
| 实现方式 | 微指令+存储器 | 组合逻辑电路 |
| 灵活性 | 高(可编程) | 低(硬件固定) |
| 扩展性 | 易于扩展 | 扩展困难 |
| 执行速度 | 较慢 | 较快 |
| 设计复杂度 | 简单 | 复杂 |
| 硬件需求 | 需要控制存储器 | 需要大量逻辑电路 |
六、微程序控制器
-
定义:通过存储在控制存储器(Control Memory, CM)中的微程序(Microprogram)生成控制信号。
-
主要过程:
- 微指令存储:
- 每条微指令存储在控制存储器中,描述一个或一组微操作。
- 微指令的内容包括:需要发出的控制信号、下一条微指令的地址等。
- 控制存储器读取:
- 根据当前指令的操作码,通过微指令地址寄存器(CAR,Control Address Register)选择相应的微指令。
- 读取微指令后,将其送到控制寄存器(Control Register,CR)。
- 微指令执行:
- 微指令被解释为控制信号,直接驱动各硬件部件(如ALU、寄存器、存储器等)完成操作。
- 若需要多个步骤完成,则通过更新地址寄存器(CAR)来读取下一条微指令。
- 循环执行:
- 通过这种读取-执行-跳转的方式,完成一条机器指令的执行过程。
- 微指令存储: