vault backup: 2026-07-04 12:32:07

This commit is contained in:
2026-07-04 12:32:07 +08:00
parent ba1ad4e098
commit 36c88d8b9b
9 changed files with 1207 additions and 155 deletions

View File

@@ -2,6 +2,7 @@
> 📖 本章分析控制单元为完成不同指令所发出的各种微操作命令。
> 🎯 重点理解微操作命令和指令执行过程
> 📝 考试范围9.2.3~9.2.5 不考复习重点例题9.1、9.2课后习题9.1~9.8、9.11、9.12
---
@@ -11,6 +12,7 @@
- [[#9.2 控制单元的功能]]
- [[#本章小结]]
- [[#例题与解析]]
- [[#真题与作业精选]]
---
@@ -41,7 +43,7 @@ graph LR
### 9.1.3 取指周期的微操作
取指周期是所有指令共有的阶段,它的微操作序列是固定的:
取指周期是所有指令共有的阶段,它的微操作序列是固定的(这是考试高频考点,期中/期末均考过默写取指周期微操作序列的题目)
| 步骤 | 微操作 | 说明 |
|------|--------|------|
@@ -71,6 +73,8 @@ sequenceDiagram
这个过程很直白先把PC里的地址送到MAR告诉主存"我要读这个地址的东西"主存把指令送到MDR再从MDR搬到IR同时把操作码送给CU去译码最后PC加1指向下一条指令。整个流程就像从货架上取货——先告诉仓库你要哪个货架的东西PC→MAR仓库把东西放到传送带上M(MAR)→MDR你从传送带上拿过来MDR→IR然后看看是什么东西OP(IR)→CU同时记一下下一个要取的位置(PC)+1→PC
完整链路写法为:**PC→MAR→1→R→M(MAR)→MDR→MDR→IR→OP(IR)→CU→(PC)+1→PC**。这六步顺序不可变——必须先送地址才能读内存必须先读到MDR才能送到IR必须先送到IR才能译码。唯一可以和其他操作重叠的是最后一步PC加1它和前面的译码操作可以并行。
### 9.1.4 间址周期的微操作
间址周期只在间接寻址时出现,目的是把形式地址转换成有效地址:
@@ -123,6 +127,8 @@ sequenceDiagram
ADD X 是把内存地址X处的数取出来加到累加器STA X 是把累加器的值存到内存地址XLDA X 是把内存地址X处的数取到累加器。它们都需要先送地址、再读写内存、最后在CPU内部完成数据操作。
STA X 和 LDA X 的关键区别在于数据流方向和读写命令STA 发的是写命令1→W数据从 ACC→MDR→M(MAR)LDA 发的是读命令1→R数据从 M(MAR)→MDR→ACC。考试经常让你区分这两者。
**转移指令**改变程序的执行顺序:
| 指令 | 微操作 | 说明 |
@@ -132,6 +138,20 @@ ADD X 是把内存地址X处的数取出来加到累加器STA X 是把累加
JMP X 就是无条件跳转到地址X直接把X送到PC。BAN X 是条件转移——如果累加器最高位符号位为1表示负数就跳转到X否则继续执行下一条指令。
### 9.1.6 微操作的节拍安排
微操作不能随意执行必须分配到不同的时钟节拍T₀、T₁、T₂...中。安排的原则是同一个节拍内可以同时执行不冲突的微操作比如一个节拍里可以同时做寄存器读和ALU运算但不能同时读同一个寄存器和写同一个寄存器。考试中经常给出具体指令要求你写出每个节拍安排的微操作这是期中/期末的重点题型。
### 9.1.7 指令执行的完整过程分析
`MOV R0,04H` 为例分析完整的指令执行过程。这条指令需要 5 个机器周期,访存 3 次(取指 2 次 + 取操作数 1 次)。
**取指过程**PC→MAR→读主存→MDR→IR这是一条指令执行的第一步每条指令都要走一遍。取到的指令送入 IR 后,操作码送 CU 译码PC 同时加 1。
**执行过程**PC+1→MAR→读 04H→MAR→读 M(04H)→R0。注意这里 PC 加 1 后不是简单地指向下一条指令,而是指向操作数地址 04H需要再访存一次把真正的操作数取出来送到 R0。
这类题目考察的是你对"机器周期"概念的理解——取指占几个机器周期、执行占几个机器周期、每次访存对应一个机器周期,把这些搞清楚,题目就不难了。
---
## 9.2 控制单元的功能
@@ -150,6 +170,9 @@ JMP X 就是无条件跳转到地址X直接把X送到PC。BAN X 是条件转
在取指周期每个时钟周期发出一组控制信号按固定顺序完成取指操作。在执行周期根据指令类型的不同CU会发出不同的控制信号组合——加法指令需要ALU做加法存数指令需要向内存发写命令转移指令需要修改PC的值。
> [!warning] 考试范围提醒
> 9.2.3~9.2.5 不在考试范围内,以下仅做简要了解即可。
### 9.2.3 控制信号的组成
控制信号按控制对象可以分为四类ALU控制信号决定ALU做什么运算加法、减法、逻辑与、逻辑或等寄存器控制信号控制寄存器的读写哪些寄存器要读、哪些要写数据通路控制信号控制数据在CPU内部的传输方向比如从ALU输出送到哪个寄存器总线控制信号控制总线的读写操作读内存还是写内存
@@ -187,7 +210,7 @@ JMP X 就是无条件跳转到地址X直接把X送到PC。BAN X 是条件转
## 🧪 例题与解析
### 例题1取指周期分析
### 例题1取指周期分析教材例题9.1
**题目**:写出取指周期的微操作序列。
@@ -204,7 +227,7 @@ JMP X 就是无条件跳转到地址X直接把X送到PC。BAN X 是条件转
这六步是所有指令共有的顺序不能变——必须先送地址才能读内存必须先读到MDR才能送到IR必须先送到IR才能译码。唯一可以和其他操作重叠的是最后一步PC加1它和前面的译码操作可以并行。
### 例题2间址周期分析
### 例题2间址周期分析教材例题9.2
**题目**:写出间址周期的微操作序列。
@@ -219,7 +242,7 @@ JMP X 就是无条件跳转到地址X直接把X送到PC。BAN X 是条件转
间址周期的目的就是把形式地址变成有效地址。形式地址是指令里给出的地址,但它不是最终地址——那个位置存放的才是真正的有效地址。所以需要额外访问一次内存,把有效地址取出来,写回指令的地址字段,这样后续的执行周期就知道该去哪操作了。
### 例题3加法指令分析
### 例题3加法指令分析课后习题9.1~9.3同类型)
**题目**:写出加法指令 ADD X 的微操作序列。
@@ -234,7 +257,7 @@ JMP X 就是无条件跳转到地址X直接把X送到PC。BAN X 是条件转
前三步和取数指令一样都是把内存地址X处的操作数取到MDR。第四步是关键——把累加器里原来的值和MDR里的值送到ALU做加法结果写回累加器。如果X是间接寻址的还需要在前面加一个间址周期来获取有效地址。
### 例题4存数指令分析
### 例题4存数指令分析课后习题9.4~9.6同类型)
**题目**:写出存数指令 STA X 的微操作序列。
@@ -249,7 +272,7 @@ JMP X 就是无条件跳转到地址X直接把X送到PC。BAN X 是条件转
STA X 和 LDA X 的区别在于方向相反LDA 是从内存读到累加器STA 是从累加器写到内存。注意第二步发的是写命令1→W而不是读命令1→R数据流方向也反过来——从ACC到MDR再到内存。
### 例题5控制单元功能分析
### 例题5控制单元功能分析课后习题9.11~9.12同类型)
**题目**:简述控制单元的功能和输入输出信号。
@@ -271,6 +294,82 @@ CU的工作可以这样理解它看着指令操作码结合当前状
---
## 📖 真题与作业精选
以下是来自作业、期中/期末考试和复习资料的典型题目,建议重点练习。
### 真题1微操作节拍安排作业三原题期中/期末高频考点)
**题目**:对下列指令分别安排微操作节拍:
1. STA X存数指令
2. AND X逻辑与指令
3. ADD #a(立即数加法指令)
**答案**
**STA X 的执行周期节拍安排:**
| 节拍 | 微操作 |
|------|--------|
| T₀ | Ad(IR)→MAR, 1→W |
| T₁ | ACC→MDR |
| T₂ | MDR→M(MAR) |
注意 T₀ 同时发出地址和写命令,这是考试中的常见写法,体现了微操作的并行性。
**AND X 的执行周期节拍安排:**
| 节拍 | 微操作 |
|------|--------|
| T₀ | Ad(IR)→MAR, 1→R |
| T₁ | M(MAR)→MDR |
| T₂ | (ACC)∧(MDR)→ACC |
逻辑与指令需要先从内存取操作数再和ACC做逻辑与运算。
**ADD #a 的执行周期节拍安排:**
| 节拍 | 微操作 |
|------|--------|
| T₀ | Ad(IR)→MDR |
| T₁ | (ACC)+(MDR)→ACC |
立即数加法不需要访存,操作数直接在指令的地址字段里,只需两步即可完成。
### 真题2指令执行过程分析复习资料原题
**题目**:分析 `MOV R0,04H` 指令的执行过程,说明需要几个机器周期、访存几次。
**答案**
该指令需要 **5 个机器周期**,共 **访存 3 次**(取指 2 次 + 取操作数 1 次)。
**取指阶段**PC→MAR→读主存→MDR→IR这一步把 MOV 指令从内存取到 IR 中。
**执行阶段**PC+1→MAR→读 04H→MAR→读 M(04H)→R0。
执行过程的关键在于PC 加 1 后不是直接执行完毕,而是继续用 PC 的值去取操作数地址 04H再用 04H 去内存中读取真正的数据送到 R0。所以访存次数多于你可能预期的数量。计数机器周期时每一次访存操作对应一个机器周期再加上取指的一个周期总共 5 个。
### 真题3取指周期微操作链路必须掌握考试必考
**题目**:用链路形式写出取指周期的微操作序列,并说明 PC 加 1 能否与其他操作并行。
**答案**
取指周期的完整链路:**PC→MAR→1→R→M(MAR)→MDR→MDR→IR→OP(IR)→CU→(PC)+1→PC**
六步顺序不可变:
1. PC→MAR送地址
2. 1→R发读命令
3. M(MAR)→MDR读指令到MDR
4. MDR→IR送指令到IR
5. OP(IR)→CU操作码译码
6. (PC)+1→PCPC加1
PC 加 1 可以与译码第5步并行执行。因为译码操作使用的是 IR 中的操作码字段,而 PC 加 1 操作使用的是 PC 寄存器本身,两者没有数据依赖关系,所以可以在同一个节拍内同时进行。这是考试中常问的一个细节,很多人会忽略。
---
## ⚡ 知识点速记卡
> 考前快速过一遍30秒回忆整章核心
@@ -279,16 +378,23 @@ CU的工作可以这样理解它看着指令操作码结合当前状
**指令周期四阶段**:取指(所有指令)→ 间址(间接寻址才要)→ 执行(所有指令)→ 中断(有中断才要)。
**取指周期六步**(必PC→MAR → 1→R → M(MAR)→MDR → MDR→IR → OP(IR)→CU → (PC)+1→PC。
**取指周期六步**(必背,考试必考PC→MAR → 1→R → M(MAR)→MDR → MDR→IR → OP(IR)→CU → (PC)+1→PC。PC加1可与译码并行。
**间址周期四步**Ad(IR)→MAR → 1→R → M(MAR)→MDR → MDR→Ad(IR)。目的:形式地址→有效地址。
**访存指令执行周期**ADD X读+加、STA X、LDA X读+送ACC。先送地址再读写内存最后CPU内部操作
**访存指令执行周期**ADD X读+加、STA X1→W, ACC→MDR→M(MAR)、LDA XM(MAR)→MDR→ACC。先送地址再读写内存最后CPU内部操作。STA和LDA的数据流方向和读写命令是考试常考的区分点
**非访存指令**CLA清零、COM取反、SHR右移、CSL循环左移、STP停机不访存所以快。
**控制单元输入**时钟、操作码IR、标志、外来信号中断/总线请求)。**输出**CPU内部控制信号 + 控制总线信号。
**微操作节拍安排**(高频考题类型):给出指令写出各节拍微操作,注意同一节拍内无冲突的微操作可并行(如 T₀ 同时做 Ad(IR)→MAR 和 1→R。立即数指令不需要访存节拍数更少。
**考试常见题型**:默写取指/间址/执行周期微操作序列、给指令安排节拍、分析指令执行过程(机器周期数和访存次数)、取指周期六步顺序及并行关系。
> [!tip] 考试范围提示
> 本章不考 9.2.3~9.2.5。复习重点为例题9.1、9.2课后习题9.1~9.8、9.11、9.12。
---
## 🔗 相关链接
@@ -303,10 +409,10 @@ CU的工作可以这样理解它看着指令操作码结合当前状
- 教材《计算机组成原理》第3版 - 唐朔飞
- 复习资料:计算机组成原理知识点总结
- 习题:作业三、作业四
- 习题:作业三、作业四、课后习题9.1~9.8、9.11、9.12
---
*本章难度:⭐⭐⭐⭐ 中等*
*重要程度:⭐⭐⭐⭐ 重要*
*补充版本:增加了通俗解释、实际例子例题*
*补充版本:增加了通俗解释、实际例子例题、真题精选与考试技巧*