Files
obsidian/计算机组成原理/学习笔记/10_控制单元设计_补充版.md

539 lines
27 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 第10章 控制单元设计(详细补充版)
> 📖 本章介绍控制单元的两种设计方法:组合逻辑设计和微程序设计。
> 🎯 重点理解微程序设计方法
> ⚠️ 考试范围不考10.1节重点复习例题10.4和414页微程序设计举例课后习题10.1、10.2必须掌握
---
## 📋 本章目录
- [[#10.1 组合逻辑设计]]
- [[#10.2 微程序设计]]
- [[#本章小结]]
- [[#例题与解析]]
- [[#真题与作业精选]]
- [[#知识点速记卡]]
---
## 10.1 组合逻辑设计
> 📝 虽然考试范围注明10.1节不考,但组合逻辑设计的基本思想和步骤仍是理解微程序设计的基础,建议了解。
### 10.1.1 组合逻辑控制单元框图
```mermaid
graph TB
subgraph "组合逻辑控制单元"
IR[IR<br/>指令寄存器] --> |"操作码"| DEC[操作码译码器]
CLK[时钟] --> |"时钟信号"| TG[节拍发生器]
DEC --> |"译码输出"| CU[控制单元]
TG --> |"节拍信号"| CU
FLAG[标志] --> CU
CU --> |"控制信号"| CTRL[控制信号输出]
end
```
组合逻辑控制单元由三个核心部件组成。操作码译码器负责把指令的操作码翻译成具体的控制信号——比如加法指令的码进来,就输出"做加法"的信号。节拍发生器产生时序信号,控制微操作的先后顺序,就像节拍器控制乐队的节奏。控制单元则是核心,它综合译码结果、节拍信号和标志位,在正确的时刻发出正确的控制信号。
这种设计方式的特点是速度快——信号通过逻辑门直接产生,不需要访问存储器。但缺点也很明显:电路复杂,修改困难,每增加一条指令可能都要重新设计电路。
#### 组合逻辑设计步骤
组合逻辑控制器的设计一般包括以下步骤:
1. **列出微操作时间表**:对每条指令,按节拍列出每个微操作。
2. **写出微操作的逻辑表达式**:用操作码译码输出、节拍信号、标志位等变量表示每个微操作。
3. **优化逻辑表达式**:用卡诺图或布尔代数化简。
4. **画出逻辑电路图**:用与、或、非门实现。
### 10.1.2 微操作的节拍安排
安排微操作的节拍时,需要遵循三个原则。
**顺序原则**有些微操作的次序不能改变。比如必须先送地址到MAR才能读内存必须先读到MDR才能送到IR——这些顺序是硬件决定的不能颠倒。
**并行原则**不同控制对象的微操作可以同时执行。比如ALU做加法的同时寄存器可以读数据——因为它们控制的是不同的硬件部件互不干扰。
**紧凑原则**时间短的微操作可以安排在同一节拍。比如PC送MAR和发读命令可以同时进行因为它们的操作对象不同而且都很快速。
#### 取指周期节拍安排
| 节拍 | 微操作 | 说明 |
|------|--------|------|
| T₀ | PC → MAR, 1 → R | 地址送MAR发读命令 |
| T₁ | M(MAR) → MDR, (PC)+1 → PC | 读指令PC加1 |
| T₂ | MDR → IR, OP(IR) → ID | 指令送IR译码 |
```mermaid
sequenceDiagram
participant T0 as 节拍T0
participant T1 as 节拍T1
participant T2 as 节拍T2
Note over T0: PC → MAR, 1 → R
Note over T1: M(MAR) → MDR, (PC)+1 → PC
Note over T2: MDR → IR, OP(IR) → ID
```
三个节拍就完成了取指。T₀节拍同时做两件事送地址和发读命令因为它们操作的对象不同MAR和控制总线可以并行。T₁节拍也是两件事并行从内存读指令到MDR同时PC加1——读内存是主存的操作PC加1是CPU内部操作互不影响。T₂节拍把指令从MDR搬到IR同时操作码送到译码器。
#### 间址周期节拍安排
| 节拍 | 微操作 | 说明 |
|------|--------|------|
| T₀ | Ad(IR) → MAR, 1 → R | 形式地址送MAR |
| T₁ | M(MAR) → MDR | 读有效地址 |
| T₂ | MDR → Ad(IR) | 有效地址送IR |
间址周期和取指周期结构类似但目的不同——这里是为了获取有效地址。T₀送形式地址并发读命令T₁从内存读有效地址到MDRT₂把有效地址写回指令的地址字段。这样后续执行周期就知道该去哪操作了。
#### 执行周期节拍安排
**非访存指令**不需要访问内存所以很多只需要用到T₂节拍
| 指令 | T₀ | T₁ | T₂ |
|------|----|----|-----|
| CLA | 空 | 空 | 0 → ACC |
| COM | 空 | 空 | $\overline{ACC}$ → ACC |
| SHR | 空 | 空 | L(ACC) → R(ACC) |
| CSL | 空 | 空 | R(ACC) → L(ACC) |
| STP | 空 | 空 | 0 → G |
这些指令都是CPU内部操作不需要去内存取数据所以T₀和T₁空闲只在T₂执行一个操作。这也是为什么非访存指令通常比访存指令快。
**访存指令**需要访问内存,三个节拍都用满了:
**加法指令 ADD X**
| 节拍 | 微操作 |
|------|--------|
| T₀ | Ad(IR) → MAR, 1 → R |
| T₁ | M(MAR) → MDR |
| T₂ | (ACC) + (MDR) → ACC |
T₀送地址并发读命令T₁从内存读操作数到MDRT₂把累加器的值和MDR的值送到ALU做加法结果写回累加器。
**存数指令 STA X**
| 节拍 | 微操作 |
|------|--------|
| T₀ | Ad(IR) → MAR, 1 → W |
| T₁ | ACC → MDR |
| T₂ | MDR → M(MAR) |
STA X 和 ADD X 的区别在于方向ADD 是从内存读到CPUSTA 是从CPU写到内存。所以T₀发的是写命令1→WT₁把累加器的值送到MDRT₂把MDR的内容写入内存。
**取数指令 LDA X**
| 节拍 | 微操作 |
|------|--------|
| T₀ | Ad(IR) → MAR, 1 → R |
| T₁ | M(MAR) → MDR |
| T₂ | MDR → ACC |
LDA X 和 ADD X 的前三步完全一样区别在T₂ADD 是做加法后送回累加器LDA 是直接把MDR的值送到累加器累加器原来的值被覆盖
---
## 10.2 微程序设计
> 🔥 **本节是考试核心**。微指令格式设计字段位数计算、微程序控制器工作原理、414页微程序设计举例均为高频考点。
### 10.2.1 微程序设计的基本概念
> [!info] 定义
> 微程序设计是用程序的方法来设计控制单元,把控制信号编成微指令,存放在控制存储器中。
组合逻辑设计虽然速度快,但电路复杂、修改困难。微程序设计的思路完全不同——它把控制信号看成"数据"存到一个ROM只读存储器执行指令时从ROM中读取控制信号。这样设计控制单元就变成了编写"微程序",和写软件的思路类似。
三个核心概念:**微指令**是一组控制信号的集合,一条微指令可以同时激活多个控制信号;**微程序**是微指令的有序序列,一条机器指令对应一个微程序;**控制存储器**CS是存放微程序的ROM通常在CPU内部。
举个例子执行一条加法指令它的微程序可能包含三条微指令第一条完成取指PC→MAR、1→R等第二条完成取操作数Ad(IR)→MAR、M(MAR)→MDR第三条完成加法运算(ACC)+(MDR)→ACC。每条微指令里的控制信号可以并行发出。
### 10.2.2 微程序控制器的工作原理
> 📌 这是复习资料中的原题,期中/期末考试高频出现。下面把工作原理完整梳理一遍。
微程序控制器的工作流程可以概括为:
1. **开机**系统初始化将取指微指令的地址送入微地址寄存器CMAR
2. **取微指令**根据CMAR中的地址从控制存储器CM中取出当前微指令。
3. **执行微操作**:微指令的操作控制字段直接产生控制信号,驱动各部件完成微操作。
4. **确定下地址**根据微指令的顺序控制字段下址字段决定下一条微指令的地址送入CMAR。
5. **循环执行**重复步骤2-4直到该机器指令对应的微程序执行完毕。
6. **回到取指**:一条机器指令执行完毕后,自动回到取指微程序的入口地址,开始下一条指令的取指。
**核心要点**每条机器指令对应一段微程序取指微程序是所有指令共用的公共部分。整个CPU的工作就是不断地从CM中读取微指令、执行微操作、更新地址——本质上是一个"微程序级的取指-执行循环"。
### 10.2.3 微指令格式与编译方法
微指令由两部分组成:**操作控制字段**产生各种控制信号,**顺序控制字段**决定下一条微指令的地址。
> ⚠️ **微指令格式设计(字段位数计算)是考试高频题型**特别是给定CM容量和转移条件计算各字段位数。务必掌握下面的编译方法和计算思路。
根据操作控制字段的编码方式,微指令有三种编译法。
#### 直接控制法(不译码法)
操作控制字段的每一位直接对应一个微操作控制信号。某位为1就表示激活对应的控制信号为0就不激活。可以同时激活多个信号实现并行操作。
- 优点:不需要译码,速度快,设计简单。
- 缺点微指令字长很长——如果有N个控制信号操作控制字段就需要N位。
#### 字段直接编译法(编码法)
把控制信号分成若干组字段每个字段内部用二进制编码来表示。比如一个字段有3位可以编码表示 2³ = 8 个互斥的控制信号(同一时刻只能激活其中一个)。
- 优点:缩短了微指令字长。
- 缺点:需要译码器,增加了硬件开销;同一字段内的信号不能并行(互斥)。
#### 字段间接编译法
在字段直接编译的基础上,一个字段的含义还依赖于另一个字段的值——即字段之间有层次关系。比如第一个字段选择操作类型,第二个字段在该操作类型下进一步细分。
- 优点:进一步压缩微指令字长。
- 缺点:译码电路更复杂,速度更慢。
#### 后继地址的产生方式
确定下一条微指令地址有两种方式:
**计数器方式(增量方式)**用一个微程序计数器μPC记录当前微指令地址每执行一条微指令自动加1。遇到转移时把目标地址送到μPC。优点是顺序执行时下址字段可以省略自动+1节省空间缺点是遇到转移需要额外处理。
**判定方式(下址字段法)**:在微指令中直接设置一个"下址字段",存放下一条微指令的地址。优点是地址灵活,转移效率高;缺点是增加了微指令的长度。
实际设计中常把两者结合:顺序执行时用计数器自动递增,转移时用下址字段指定目标地址。
### 10.2.4 微指令格式设计实例
> 📌 **这是考试的核心计算题**,期中/期末都曾考过。下面通过具体例子讲解字段位数的计算方法。
**题目**CM容量为 512×48位转移条件有4个。求微指令各字段的位数。
**解题思路**
1. **下址字段**CM有512个单元需要 2⁹ = 512所以下址字段需要 **9位**
2. **判别测试字段**有4个转移条件需要 2² = 4所以判别测试字段需要 **2位**
3. **微命令字段**操作控制字段总宽度48位减去下址和判别测试字段即 48 - 9 - 2 = **37位**
**答案**下址字段9位判别测试字段2位微命令字段37位。
**解题模板**:遇到这类题目,记住三个公式:
- 下址字段位数 = log₂(CM单元数)
- 判别测试字段位数 = log₂(转移条件数)
- 微命令字段位数 = 微指令总位数 - 下址字段位数 - 判别测试字段位数
### 10.2.5 微程序设计的步骤
> 📌 对应教材414页的微程序设计举例这是本章最重要的例题。建议对照教材完整走一遍。
微程序设计可以分为四步。
第一步是**分析指令**把每条机器指令分解成微操作序列确定需要哪些控制信号。比如加法指令需要PC→MAR、1→R、M(MAR)→MDR、(ACC)+(MDR)→ACC这些控制信号。
第二步是**设计微指令格式**:确定操作控制字段和顺序控制字段的宽度和编码方式。操作控制字段要能表示所有需要的控制信号,顺序控制字段要能表示微程序的地址范围。
第三步是**编写微程序**:为每条机器指令编写对应的微程序。取指周期的微程序是所有指令共用的,执行周期的微程序因指令而异。
第四步是**实现控制存储器**把微程序固化到ROM中。ROM的内容在制造时就确定了不能修改除非用可擦写的EPROM
### 10.2.6 微程序设计的优缺点
微程序设计最大的优点是**规整性和灵活性**。用程序的方法设计控制单元逻辑清晰、容易理解需要增加新指令时只需要在ROM中添加对应的微程序不需要重新设计电路调试和维护也方便可以通过修改微程序来修复bug。
缺点主要是**速度**。每条微指令都要从控制存储器读取,增加了访存时间,比组合逻辑直接产生信号要慢。另外需要额外的控制存储器,增加了硬件成本。
实际应用中现代复杂CPU如x86系列通常采用微程序设计因为指令集复杂、需要灵活扩展。而简单处理器如一些嵌入式处理器可能采用组合逻辑设计追求更高的执行速度。
---
## 📝 本章小结
### 核心概念
1. **组合逻辑设计**:用组合逻辑电路直接产生控制信号,速度快但设计复杂
2. **微程序设计**把控制信号存到ROM中用读取ROM的方式产生控制信号灵活但速度较慢
3. **微指令**:一组控制信号的集合
4. **微程序**:微指令的有序序列,一条机器指令对应一个微程序
5. **控制存储器**存放微程序的ROM
6. **硬布线vs微程序**硬布线速度快但设计复杂难修改适合RISC微程序灵活规整易修改但速度较慢适合CISC。现代CPU常混合使用
### 关键术语
| 术语 | 英文 | 含义 |
|------|------|------|
| 组合逻辑 | Combinational Logic | 用逻辑电路实现 |
| 微程序 | Microprogram | 用程序实现 |
| 微指令 | Microinstruction | 控制信号的集合 |
| 控制存储器 | Control Storage | 存放微程序的ROM |
| 直接控制法 | Direct Control | 每位对应一个微命令 |
| 字段直接编译法 | Field Direct Encoding | 编码方式,需译码 |
| 下址字段 | Next Address Field | 存放下一条微指令地址 |
### 重点图示
> [!summary] 必须掌握的图
> 1. 组合逻辑控制单元框图
> 2. 微程序控制单元框图
> 3. 微指令格式图
> 4. 取指周期的节拍安排图
---
## 🧪 例题与解析
### 例题1取指周期节拍安排
**题目**:写出取指周期的节拍安排。
**答案**
| 节拍 | 微操作 | 说明 |
|------|--------|------|
| T₀ | PC → MAR, 1 → R | 地址送MAR发读命令 |
| T₁ | M(MAR) → MDR, (PC)+1 → PC | 读指令PC加1 |
| T₂ | MDR → IR, OP(IR) → ID | 指令送IR译码 |
每个节拍都安排了两个可以并行的操作T₀送地址和发读命令操作对象不同可以同时进行T₁读内存和PC加1一个是主存操作、一个是CPU内部操作互不干扰T₂送指令和译码也是类似道理。这样三个节拍就完成了取指效率很高。
### 例题2加法指令节拍安排
**题目**:写出加法指令 ADD X 的节拍安排。
**答案**
| 节拍 | 微操作 |
|------|--------|
| T₀ | Ad(IR) → MAR, 1 → R |
| T₁ | M(MAR) → MDR |
| T₂ | (ACC) + (MDR) → ACC |
ADD X 的执行周期需要三次访存操作中的两次送地址、读数据然后做加法。T₀送地址并发读命令T₁等待内存响应并把数据读到MDRT₂把累加器的值和MDR的值送到ALU做加法结果写回累加器。如果X是间接寻址的还需要在前面加一个间址周期。
### 例题3微程序设计步骤
**题目**:简述微程序设计的步骤。
**答案**
微程序设计的步骤:
1. **分析指令**:把每条机器指令分解成微操作序列,确定需要哪些控制信号
2. **设计微指令格式**:确定操作控制字段和顺序控制字段的宽度和编码方式
3. **编写微程序**:为每条机器指令编写对应的微程序,取指周期的微程序是共用的
4. **实现控制存储器**把微程序固化到ROM中
这四步的核心思想是"用数据代替逻辑"——把原本需要复杂电路实现的控制逻辑变成存储在ROM中的数据通过读取ROM来产生控制信号。这样设计更灵活但代价是速度稍慢。
### 例题4组合逻辑与微程序比较
**题目**:比较组合逻辑设计和微程序设计的优缺点。
**答案**
| 特性 | 组合逻辑设计(硬布线) | 微程序设计 |
|------|--------------|------------|
| **设计方法** | 用逻辑电路直接实现 | 用程序ROM实现 |
| **优点** | 速度快 | 规整性好,灵活,易修改 |
| **缺点** | 设计复杂,不灵活,难修改 | 速度较慢需要额外的ROM |
| **应用** | 简单CPU、RISC处理器 | 复杂CPU、CISC处理器 |
选择哪种方式取决于设计目标追求极致速度就用组合逻辑追求灵活性和可扩展性就用微程序。现代CPU往往混合使用——简单常用的指令用组合逻辑加速复杂指令用微程序实现。
### 例题5微指令格式设计
**题目**设计一个简单的微指令格式支持8种控制信号。
**答案**
**操作控制字段**8种控制信号如果采用水平型编码每位对应一个信号需要8位。如果采用垂直型编码用3位二进制编码选择8种信号之一只需要3位但一次只能激活一个信号。
**顺序控制字段**需要支持顺序执行和跳转。假设微程序最多16条微指令地址需要4位再加1位跳转标志是否跳转共5位。
**水平型微指令格式**16位
- 操作控制字段8位每位控制一个信号可同时激活多个
- 顺序控制字段4位地址 + 1位跳转标志 + 3位备用 = 8位
**垂直型微指令格式**8位
- 操作控制字段3位编码选择8种信号之一
- 顺序控制字段4位地址 + 1位跳转标志 = 5位
水平型微指令更灵活(一条指令可以同时控制多个操作),但占用更多空间;垂直型微指令更紧凑,但需要更多条微指令才能完成同样的功能。
---
## 📖 真题与作业精选
> 🔥 以下题目来自复习资料、期中/期末考试和课后习题,每道题都标注了来源和重要程度。考前务必全部过一遍。
### 真题1微指令格式设计字段位数计算
> 📌 复习资料原题,期中/期末高频考点。掌握公式即可秒杀。
**题目**CM容量为 512×48 位转移条件有4个。计算微指令各字段的位数。
**解题过程**
这道题考查的是微指令格式设计中的位数分配,关键是搞清楚三个字段各自怎么算。
**下址字段**——CM有512个单元要能寻址每一个单元。512 = 2⁹所以下址字段需要 **9位**。简单理解9位二进制数刚好能表示0到511这512个地址。
**判别测试字段**——有4个转移条件需要判断。4 = 2²所以判别测试字段需要 **2位**。2位二进制数00、01、10、11刚好对应4个条件。
**微命令字段**操作控制字段——剩下的位数全归它。总位数48减去下址9位再减去判别测试2位48 - 9 - 2 = **37位**
**答案**下址字段9位判别测试字段2位微命令字段37位。
**举一反三**如果CM容量是 1024×64 位转移条件8个那么下址字段 = log₂(1024) = 10位判别测试字段 = log₂(8) = 3位微命令字段 = 64 - 10 - 3 = 51位。
### 真题2微程序控制器原理简答题
> 📌 复习资料原题。这是简答题的标准答案模板,直接背下来。
**题目**:简述微程序控制器的工作原理。
**答案**
微程序控制器的工作过程如下:
1. **开机初始化**CPU开机后将取指微程序的入口地址送入微地址寄存器。
2. **取微指令**根据微地址寄存器中的地址从控制存储器CM中取出当前微指令。
3. **执行微操作**:微指令的操作控制字段产生控制信号,驱动数据通路完成相应的微操作。
4. **后继地址形成**:根据微指令的顺序控制字段(下址字段),确定下一条微指令的地址。
5. **循环**重复步骤2-4直到当前机器指令对应的微程序全部执行完毕。
6. **回到取指**:执行完一段微程序后,自动回到取指微程序入口,开始下一条机器指令的处理。
**核心思想**每条机器指令对应一段微程序控制存储器中存放了所有指令的微程序。微程序控制器的本质就是按地址从CM中逐条取出微指令并执行是一个"微程序级的取指-执行循环"。
### 真题3微指令三种编译法
> 📌 复习资料原题。选择题和简答题都可能出现。
**题目**:说明微指令的三种编译法及其特点,并简述后继地址的产生方式。
**答案**
**三种编译法**
| 编译法 | 原理 | 优点 | 缺点 |
|--------|------|------|------|
| 直接控制法 | 操作控制字段每位直接对应一个微命令 | 不需译码,速度快 | 微指令字长很长 |
| 字段直接编译法 | 把控制信号分组编码,需译码器 | 缩短字长 | 同组信号互斥,不能并行 |
| 字段间接编译法 | 字段含义依赖于其他字段 | 进一步压缩字长 | 译码复杂,速度更慢 |
**后继地址产生方式**
- **计数器方式(增量方式)**:用微程序计数器自动递增,顺序执行时效率高,转移时需要特殊处理。
- **判定方式(下址字段法)**:在微指令中直接给出下址,地址灵活但增加了字长。
### 真题4硬布线控制器 vs 微程序控制器
> 📌 复习资料原题。对比题几乎是每次考试必考。
**题目**:比较硬布线控制器和微程序控制器的特点。
**答案**
| 对比项 | 硬布线控制器 | 微程序控制器 |
|--------|-------------|-------------|
| 实现方式 | 组合逻辑电路直接产生控制信号 | 控制存储器ROM存放微程序 |
| 速度 | 快(信号直接由电路产生) | 较慢需访问CM取微指令 |
| 设计难度 | 复杂,不规整 | 规整,类似编程 |
| 可修改性 | 难修改,改指令要改电路 | 易修改,改微程序即可 |
| 适用场景 | RISC处理器 | CISC处理器 |
| 现代趋势 | 常用于简单指令的加速 | 常用于复杂指令的实现 |
**补充**现代高性能CPU通常混合使用两种方式——简单常用的指令用硬布线实现以获得更高性能复杂不常用的指令用微程序实现以降低设计难度。
### 课后习题10.1
> 📌 教材课后习题,必做。
**题目**:什么是指令周期、机器周期和时钟周期?三者有什么关系?
**答案**
- **指令周期**:从取出一条指令到执行完该指令所用的全部时间。一条指令的指令周期可能包含取指、间址、执行、中断等多个阶段。
- **机器周期**也叫CPU周期是完成一个基本操作如取指、取操作数所需的时间。一个指令周期由若干个机器周期组成。
- **时钟周期**也叫节拍或T周期是CPU时钟信号的最小时间单位。一个机器周期由若干个时钟周期节拍组成。
**关系**:时钟周期 ≤ 机器周期 ≤ 指令周期。一个指令周期包含若干机器周期,一个机器周期包含若干时钟周期。
### 课后习题10.2
> 📌 教材课后习题,必做。
**题目**:画出微程序控制器的组成框图,说明各部分的功能。
**答案**
微程序控制器的核心组成:
| 部件 | 功能 |
|------|------|
| 控制存储器CM | 存放全部微程序通常用ROM实现 |
| 微指令寄存器CMIR | 存放当前正在执行的微指令 |
| 微地址寄存器CMAR | 存放下一条微指令的地址 |
| 地址转移逻辑 | 根据判别测试字段和转移条件,修改微地址 |
| 控制信号输出 | 将微指令的操作控制字段直接作为控制信号输出到数据通路 |
**工作流程**CMAR中的地址送CM读出微指令→微指令送CMIR→操作控制字段输出控制信号→顺序控制字段送地址转移逻辑→形成下一条微指令地址→送回CMAR→开始下一个周期。
---
## ⚡ 知识点速记卡
> 考前快速过一遍30秒回忆整章核心
> 🔥 标注了考试高频考点和常见题型
**两种CU设计方法**组合逻辑硬布线快但难改适合RISCvs 微程序ROM存控制信号灵活但慢适合CISC。现代CPU常混合使用。⭐ 对比题必考
**组合逻辑CU三部件**:操作码译码器(指令→控制信号)、节拍发生器(产生时序)、控制单元(综合输出)。
**组合逻辑设计步骤**:列微操作时间表→写逻辑表达式→化简→画电路。
**节拍安排三原则**顺序原则先MAR后读内存、并行原则不同部件可同时工作、紧凑原则短操作放同一节拍
**取指周期三拍**T₀=PC→MAR+1→RT₁=M(MAR)→MDR+(PC)+1→PCT₂=MDR→IR+OP(IR)→ID。⭐ 每次必考
**微程序核心三概念**微指令一组控制信号、微程序微指令序列一条机器指令对应一个微程序、控制存储器CS存微程序的ROM
**微指令三种编译法**:直接控制法(每位一个微命令,快但长)、字段直接编译法(编码,短但需译码)、字段间接编译法(字段间有依赖,更短但更慢)。⭐ 选择/简答常考
**后继地址两种方式**:计数器方式(自动递增,省空间)和下址字段法(直接给地址,灵活但占空间)。
**微指令格式位数计算**⭐⭐:下址字段=log₂(CM单元数),判别测试字段=log₂(转移条件数),微命令字段=总位数-前两者。例512×484条件→9+2+37。这是最常见的计算题。
**微程序控制器原理**⭐⭐开机→置取指地址→从CM取微指令→执行微操作→根据下址取下一条→循环直到指令完成→回到取指。
**水平型 vs 垂直型微指令**水平型位长可并行多信号快但占空间vs 垂直型(位短,编码方式,省空间但慢)。
**微程序设计四步**分析指令→设计微指令格式→编写微程序→固化到ROM。核心思想用数据ROM代替逻辑电路。⭐ 教材414页举例是重点
**选择策略**追求速度→组合逻辑RISC追求灵活→微程序CISC。现代CPU常混合使用。⭐ 对比题必考
---
## 🔗 相关链接
- [[00_计算机组成原理学习指南]] - 返回主目录
- [[09_控制单元功能]] - 上一章
- [[01_计算机系统概论]] - 返回第一章
---
## 📚 参考资料
- 教材《计算机组成原理》第3版 - 唐朔飞
- 复习资料:计算机组成原理知识点总结
- 习题:作业三、作业四
- 真题来源:期中/期末考试、复习资料重点整理
---
*本章难度:⭐⭐⭐⭐⭐ 困难*
*重要程度:⭐⭐⭐⭐⭐ 重点*
*补充版本:增加了通俗解释、实际例子、例题、真题与作业精选、考试重点标注*