vault backup: 2026-07-04 12:32:07
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
> 📖 本章介绍控制单元的两种设计方法:组合逻辑设计和微程序设计。
|
||||
> 🎯 重点理解微程序设计方法
|
||||
> ⚠️ 考试范围:不考10.1节;重点复习例题10.4和414页微程序设计举例;课后习题10.1、10.2必须掌握
|
||||
|
||||
---
|
||||
|
||||
@@ -11,11 +12,15 @@
|
||||
- [[#10.2 微程序设计]]
|
||||
- [[#本章小结]]
|
||||
- [[#例题与解析]]
|
||||
- [[#真题与作业精选]]
|
||||
- [[#知识点速记卡]]
|
||||
|
||||
---
|
||||
|
||||
## 10.1 组合逻辑设计
|
||||
|
||||
> 📝 虽然考试范围注明10.1节不考,但组合逻辑设计的基本思想和步骤仍是理解微程序设计的基础,建议了解。
|
||||
|
||||
### 10.1.1 组合逻辑控制单元框图
|
||||
|
||||
```mermaid
|
||||
@@ -34,6 +39,15 @@ graph TB
|
||||
|
||||
这种设计方式的特点是速度快——信号通过逻辑门直接产生,不需要访问存储器。但缺点也很明显:电路复杂,修改困难,每增加一条指令可能都要重新设计电路。
|
||||
|
||||
#### 组合逻辑设计步骤
|
||||
|
||||
组合逻辑控制器的设计一般包括以下步骤:
|
||||
|
||||
1. **列出微操作时间表**:对每条指令,按节拍列出每个微操作。
|
||||
2. **写出微操作的逻辑表达式**:用操作码译码输出、节拍信号、标志位等变量表示每个微操作。
|
||||
3. **优化逻辑表达式**:用卡诺图或布尔代数化简。
|
||||
4. **画出逻辑电路图**:用与、或、非门实现。
|
||||
|
||||
### 10.1.2 微操作的节拍安排
|
||||
|
||||
安排微操作的节拍时,需要遵循三个原则。
|
||||
@@ -125,6 +139,8 @@ LDA X 和 ADD X 的前三步完全一样,区别在T₂:ADD 是做加法后
|
||||
|
||||
## 10.2 微程序设计
|
||||
|
||||
> 🔥 **本节是考试核心**。微指令格式设计(字段位数计算)、微程序控制器工作原理、414页微程序设计举例均为高频考点。
|
||||
|
||||
### 10.2.1 微程序设计的基本概念
|
||||
|
||||
> [!info] 定义
|
||||
@@ -136,17 +152,82 @@ LDA X 和 ADD X 的前三步完全一样,区别在T₂:ADD 是做加法后
|
||||
|
||||
举个例子,执行一条加法指令,它的微程序可能包含三条微指令:第一条完成取指(PC→MAR、1→R等),第二条完成取操作数(Ad(IR)→MAR、M(MAR)→MDR),第三条完成加法运算((ACC)+(MDR)→ACC)。每条微指令里的控制信号可以并行发出。
|
||||
|
||||
### 10.2.2 微指令的格式
|
||||
### 10.2.2 微程序控制器的工作原理
|
||||
|
||||
> 📌 这是复习资料中的原题,期中/期末考试高频出现。下面把工作原理完整梳理一遍。
|
||||
|
||||
微程序控制器的工作流程可以概括为:
|
||||
|
||||
1. **开机**:系统初始化,将取指微指令的地址送入微地址寄存器(CMAR)。
|
||||
2. **取微指令**:根据CMAR中的地址,从控制存储器(CM)中取出当前微指令。
|
||||
3. **执行微操作**:微指令的操作控制字段直接产生控制信号,驱动各部件完成微操作。
|
||||
4. **确定下地址**:根据微指令的顺序控制字段(下址字段),决定下一条微指令的地址,送入CMAR。
|
||||
5. **循环执行**:重复步骤2-4,直到该机器指令对应的微程序执行完毕。
|
||||
6. **回到取指**:一条机器指令执行完毕后,自动回到取指微程序的入口地址,开始下一条指令的取指。
|
||||
|
||||
**核心要点**:每条机器指令对应一段微程序,取指微程序是所有指令共用的公共部分。整个CPU的工作就是不断地从CM中读取微指令、执行微操作、更新地址——本质上是一个"微程序级的取指-执行循环"。
|
||||
|
||||
### 10.2.3 微指令格式与编译方法
|
||||
|
||||
微指令由两部分组成:**操作控制字段**产生各种控制信号,**顺序控制字段**决定下一条微指令的地址。
|
||||
|
||||
根据操作控制字段的编码方式,微指令分为两种格式。
|
||||
> ⚠️ **微指令格式设计(字段位数计算)是考试高频题型**,特别是给定CM容量和转移条件,计算各字段位数。务必掌握下面的编译方法和计算思路。
|
||||
|
||||
**水平型微指令**的操作控制字段很长,每一位(或每几位)对应一个控制信号,可以同时激活多个信号,实现并行操作。优点是执行速度快(一条微指令就能完成很多操作),缺点是微指令很长,占用存储空间大。现代高性能CPU通常采用水平型微指令。
|
||||
根据操作控制字段的编码方式,微指令有三种编译法。
|
||||
|
||||
**垂直型微指令**的操作控制字段很短,采用编码方式,一条微指令只能控制一个或少数几个操作。优点是微指令短、节省空间,缺点是执行速度慢(需要更多微指令才能完成一条机器指令)。简单处理器常用垂直型微指令。
|
||||
#### 直接控制法(不译码法)
|
||||
|
||||
### 10.2.3 微程序设计的步骤
|
||||
操作控制字段的每一位直接对应一个微操作控制信号。某位为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页的微程序设计举例,这是本章最重要的例题。建议对照教材完整走一遍。
|
||||
|
||||
微程序设计可以分为四步。
|
||||
|
||||
@@ -158,7 +239,7 @@ LDA X 和 ADD X 的前三步完全一样,区别在T₂:ADD 是做加法后
|
||||
|
||||
第四步是**实现控制存储器**:把微程序固化到ROM中。ROM的内容在制造时就确定了,不能修改(除非用可擦写的EPROM)。
|
||||
|
||||
### 10.2.4 微程序设计的优缺点
|
||||
### 10.2.6 微程序设计的优缺点
|
||||
|
||||
微程序设计最大的优点是**规整性和灵活性**。用程序的方法设计控制单元,逻辑清晰、容易理解;需要增加新指令时,只需要在ROM中添加对应的微程序,不需要重新设计电路;调试和维护也方便,可以通过修改微程序来修复bug。
|
||||
|
||||
@@ -177,6 +258,7 @@ LDA X 和 ADD X 的前三步完全一样,区别在T₂:ADD 是做加法后
|
||||
3. **微指令**:一组控制信号的集合
|
||||
4. **微程序**:微指令的有序序列,一条机器指令对应一个微程序
|
||||
5. **控制存储器**:存放微程序的ROM
|
||||
6. **硬布线vs微程序**:硬布线速度快但设计复杂难修改,适合RISC;微程序灵活规整易修改但速度较慢,适合CISC。现代CPU常混合使用
|
||||
|
||||
### 关键术语
|
||||
|
||||
@@ -186,6 +268,9 @@ LDA X 和 ADD X 的前三步完全一样,区别在T₂:ADD 是做加法后
|
||||
| 微程序 | Microprogram | 用程序实现 |
|
||||
| 微指令 | Microinstruction | 控制信号的集合 |
|
||||
| 控制存储器 | Control Storage | 存放微程序的ROM |
|
||||
| 直接控制法 | Direct Control | 每位对应一个微命令 |
|
||||
| 字段直接编译法 | Field Direct Encoding | 编码方式,需译码 |
|
||||
| 下址字段 | Next Address Field | 存放下一条微指令地址 |
|
||||
|
||||
### 重点图示
|
||||
|
||||
@@ -248,7 +333,7 @@ ADD X 的执行周期需要三次访存操作中的两次(送地址、读数
|
||||
|
||||
**答案**:
|
||||
|
||||
| 特性 | 组合逻辑设计 | 微程序设计 |
|
||||
| 特性 | 组合逻辑设计(硬布线) | 微程序设计 |
|
||||
|------|--------------|------------|
|
||||
| **设计方法** | 用逻辑电路直接实现 | 用程序(ROM)实现 |
|
||||
| **优点** | 速度快 | 规整性好,灵活,易修改 |
|
||||
@@ -279,25 +364,155 @@ ADD X 的执行周期需要三次访存操作中的两次(送地址、读数
|
||||
|
||||
---
|
||||
|
||||
## 📖 真题与作业精选
|
||||
|
||||
> 🔥 以下题目来自复习资料、期中/期末考试和课后习题,每道题都标注了来源和重要程度。考前务必全部过一遍。
|
||||
|
||||
### 真题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设计方法**:组合逻辑(硬连线,快但难改)vs 微程序(ROM存控制信号,灵活但慢)。
|
||||
**两种CU设计方法**:组合逻辑(硬布线,快但难改,适合RISC)vs 微程序(ROM存控制信号,灵活但慢,适合CISC)。现代CPU常混合使用。⭐ 对比题必考
|
||||
|
||||
**组合逻辑CU三部件**:操作码译码器(指令→控制信号)、节拍发生器(产生时序)、控制单元(综合输出)。
|
||||
|
||||
**组合逻辑设计步骤**:列微操作时间表→写逻辑表达式→化简→画电路。
|
||||
|
||||
**节拍安排三原则**:顺序原则(先MAR后读内存)、并行原则(不同部件可同时工作)、紧凑原则(短操作放同一节拍)。
|
||||
|
||||
**取指周期三拍**:T₀=PC→MAR+1→R,T₁=M(MAR)→MDR+(PC)+1→PC,T₂=MDR→IR+OP(IR)→ID。
|
||||
**取指周期三拍**:T₀=PC→MAR+1→R,T₁=M(MAR)→MDR+(PC)+1→PC,T₂=MDR→IR+OP(IR)→ID。⭐ 每次必考
|
||||
|
||||
**微程序核心三概念**:微指令(一组控制信号)、微程序(微指令序列,一条机器指令对应一个微程序)、控制存储器CS(存微程序的ROM)。
|
||||
|
||||
**微指令三种编译法**:直接控制法(每位一个微命令,快但长)、字段直接编译法(编码,短但需译码)、字段间接编译法(字段间有依赖,更短但更慢)。⭐ 选择/简答常考
|
||||
|
||||
**后继地址两种方式**:计数器方式(自动递增,省空间)和下址字段法(直接给地址,灵活但占空间)。
|
||||
|
||||
**微指令格式位数计算**⭐⭐:下址字段=log₂(CM单元数),判别测试字段=log₂(转移条件数),微命令字段=总位数-前两者。例:512×48,4条件→9+2+37。这是最常见的计算题。
|
||||
|
||||
**微程序控制器原理**⭐⭐:开机→置取指地址→从CM取微指令→执行微操作→根据下址取下一条→循环直到指令完成→回到取指。
|
||||
|
||||
**水平型 vs 垂直型微指令**:水平型(位长,可并行多信号,快但占空间)vs 垂直型(位短,编码方式,省空间但慢)。
|
||||
|
||||
**微程序设计四步**:分析指令→设计微指令格式→编写微程序→固化到ROM。核心思想:用数据(ROM)代替逻辑(电路)。
|
||||
**微程序设计四步**:分析指令→设计微指令格式→编写微程序→固化到ROM。核心思想:用数据(ROM)代替逻辑(电路)。⭐ 教材414页举例是重点
|
||||
|
||||
**选择策略**:追求速度→组合逻辑(RISC),追求灵活→微程序(CISC)。现代CPU常混合使用。
|
||||
**选择策略**:追求速度→组合逻辑(RISC),追求灵活→微程序(CISC)。现代CPU常混合使用。⭐ 对比题必考
|
||||
|
||||
---
|
||||
|
||||
@@ -314,9 +529,10 @@ ADD X 的执行周期需要三次访存操作中的两次(送地址、读数
|
||||
- 教材:《计算机组成原理》第3版 - 唐朔飞
|
||||
- 复习资料:计算机组成原理知识点总结
|
||||
- 习题:作业三、作业四
|
||||
- 真题来源:期中/期末考试、复习资料重点整理
|
||||
|
||||
---
|
||||
|
||||
*本章难度:⭐⭐⭐⭐⭐ 困难*
|
||||
*重要程度:⭐⭐⭐⭐⭐ 重点*
|
||||
*补充版本:增加了通俗解释、实际例子和例题*
|
||||
*补充版本:增加了通俗解释、实际例子、例题、真题与作业精选、考试重点标注*
|
||||
|
||||
Reference in New Issue
Block a user