# 第9章 控制单元的功能 > 📖 本章分析控制单元为完成不同指令所发出的各种微操作命令。 > 🎯 重点理解微操作命令和指令执行过程 --- ## 📋 本章目录 - [[#9.1 微操作命令的分析]] - [[#9.2 控制单元的功能]] - [[#本章小结]] --- ## 9.1 微操作命令的分析 ### 9.1.1 微操作命令的概念 > [!info] 定义 > 微操作命令是控制单元发出的最基本控制信号,控制计算机各部件完成相应操作。 **特点**: - 是最基本的操作,不可再分 - 由控制单元发出 - 控制数据通路和功能部件 ### 9.1.2 指令周期的四个阶段 ```mermaid graph LR A[指令周期] --> B[取指周期] A --> C[间址周期] A --> D[执行周期] A --> E[中断周期] ``` ### 9.1.3 取指周期的微操作 **操作序列**: | 步骤 | 微操作 | 说明 | |------|--------|------| | 1 | PC → MAR | 现行指令地址送MAR | | 2 | 1 → R | 向主存发读命令 | | 3 | M(MAR) → MDR | 指令从主存读至MDR | | 4 | MDR → IR | 指令送指令寄存器 | | 5 | OP(IR) → CU | 操作码送CU译码 | | 6 | (PC) + 1 → PC | 程序计数器加1 | ```mermaid sequenceDiagram participant PC participant MAR participant MEM as 主存 participant MDR participant IR participant CU PC->>MAR: PC → MAR Note over MAR: 1 → R(发读命令) MEM->>MDR: M(MAR) → MDR MDR->>IR: MDR → IR IR->>CU: OP(IR) → CU Note over PC: (PC) + 1 → PC ``` ### 9.1.4 间址周期的微操作 **操作序列**: | 步骤 | 微操作 | 说明 | |------|--------|------| | 1 | Ad(IR) → MAR | 形式地址送MAR | | 2 | 1 → R | 向主存发读命令 | | 3 | M(MAR) → MDR | 有效地址从主存读至MDR | | 4 | MDR → Ad(IR) | 有效地址送IR地址字段 | ```mermaid sequenceDiagram participant IR participant MAR participant MEM as 主存 participant MDR IR->>MAR: Ad(IR) → MAR Note over MAR: 1 → R(发读命令) MEM->>MDR: M(MAR) → MDR MDR->>IR: MDR → Ad(IR) ``` ### 9.1.5 执行周期的微操作 #### 1. 非访存指令 | 指令 | 微操作 | 说明 | |------|--------|------| | CLA | 0 → ACC | 清除累加器 | | COM | $\overline{ACC}$ → ACC | 累加器取反 | | SHR | L(ACC) → R(ACC), ACC₀ → ACC₀ | 算术右移 | | CSL | R(ACC) → L(ACC), ACC₀ → ACCₙ | 循环左移 | | STP | 0 → G | 停机 | #### 2. 访存指令 ##### 加法指令 ADD X | 步骤 | 微操作 | 说明 | |------|--------|------| | 1 | Ad(IR) → MAR | 地址送MAR | | 2 | 1 → R | 发读命令 | | 3 | M(MAR) → MDR | 操作数读至MDR | | 4 | (ACC) + (MDR) → ACC | 加法运算 | ##### 存数指令 STA X | 步骤 | 微操作 | 说明 | |------|--------|------| | 1 | Ad(IR) → MAR | 地址送MAR | | 2 | 1 → W | 发写命令 | | 3 | ACC → MDR | 数据送MDR | | 4 | MDR → M(MAR) | 数据写入主存 | ##### 取数指令 LDA X | 步骤 | 微操作 | 说明 | |------|--------|------| | 1 | Ad(IR) → MAR | 地址送MAR | | 2 | 1 → R | 发读命令 | | 3 | M(MAR) → MDR | 数据读至MDR | | 4 | MDR → ACC | 数据送累加器 | #### 3. 转移类指令 | 指令 | 微操作 | 说明 | |------|--------|------| | JMP X | Ad(IR) → PC | 无条件转移 | | BAN X | A₀·Ad(IR) + $\overline{A₀}$·(PC) → PC | 条件转移(负则转) | ### 9.1.6 中断周期的微操作 **操作序列**: | 步骤 | 微操作 | 说明 | |------|--------|------| | 1 | 0 → MAR | 特定地址送MAR | | 2 | 1 → W | 发写命令 | | 3 | PC → MDR | 断点送MDR | | 4 | MDR → M(MAR) | 断点存入主存 | | 5 | 向量地址 → PC | 中断服务程序入口送PC | | 6 | 0 → EINT | 关中断 | ```mermaid sequenceDiagram participant PC participant MAR participant MDR participant MEM as 主存 Note over MAR: 0 → MAR Note over MAR: 1 → W(发写命令) PC->>MDR: PC → MDR MDR->>MEM: MDR → M(MAR) Note over PC: 向量地址 → PC Note over PC: 0 → EINT(关中断) ``` --- ## 9.2 控制单元的功能 ### 9.2.1 控制单元的外特性 ```mermaid graph TB subgraph "控制单元CU" INPUT[输入] --> CU[控制单元] CU --> OUTPUT[输出] end subgraph "输入信号" CLK[时钟] INST[指令寄存器] FLAG[标志] INT[中断请求] BUS[总线信号] end subgraph "输出信号" CTRL[控制信号] ADDR[地址信号] DATA[数据信号] end CLK --> INPUT INST --> INPUT FLAG --> INPUT INT --> INPUT BUS --> INPUT OUTPUT --> CTRL OUTPUT --> ADDR OUTPUT --> DATA ``` ### 9.2.2 控制信号 **控制信号分类**: | 类型 | 说明 | 示例 | |------|------|------| | **操作控制信号** | 控制数据通路操作 | ALU操作、寄存器读写 | | **时序控制信号** | 控制操作时序 | 时钟、节拍 | | **总线控制信号** | 控制总线操作 | 总线请求、总线允许 | ### 9.2.3 控制信号举例 #### 取指周期的控制信号 | 时钟 | 控制信号 | 功能 | |------|----------|------| | T₀ | PCout, MARin | PC → MAR | | T₁ | MemR, MARout | 读主存 | | T₂ | MDRinE | M(MAR) → MDR | | T₃ | MDRout, IRin | MDR → IR | | T₄ | PC+1 | PC加1 | #### 执行周期的控制信号(加法指令) | 时钟 | 控制信号 | 功能 | |------|----------|------| | T₀ | IRout, MARin | Ad(IR) → MAR | | T₁ | MemR, MARout | 读主存 | | T₂ | MDRinE | M(MAR) → MDR | | T₃ | MDRout, Yin | MDR → Y | | T₄ | ADD, Zin | ACC + Y → Z | | T₅ | Zout, ACCin | Z → ACC | ### 9.2.4 多级时序系统 ```mermaid graph TB subgraph "多级时序系统" MACHINE[机器周期] --> CLOCK[时钟周期] CLOCK --> MICRO[微操作] end subgraph "时序关系" T[指令周期] --> M1[机器周期1] T --> M2[机器周期2] T --> M3[机器周期3] M1 --> C1[时钟周期T0] M1 --> C2[时钟周期T1] M1 --> C3[时钟周期T2] end ``` **时序关系**: - **指令周期**:取出并执行一条指令的时间 - **机器周期**:完成一个基本操作的时间 - **时钟周期**:最基本的时序单位 ### 9.2.5 控制方式 #### 1. 同步控制方式 > [!info] 特点 > 所有操作由统一时钟控制,时序固定。 **优点**:设计简单,可靠性高 **缺点**:效率低,不灵活 #### 2. 异步控制方式 > [!info] 特点 > 操作按需进行,采用应答方式。 **优点**:效率高,灵活 **缺点**:设计复杂 #### 3. 联合控制方式 > [!info] 特点 > 同步和异步结合,大部分操作同步,特殊操作异步。 **应用**:现代计算机常用 --- ## 📝 本章小结 ### 核心概念 1. **微操作命令**:最基本的控制信号 2. **指令周期**:取指周期、间址周期、执行周期、中断周期 3. **控制信号**:控制数据通路和功能部件 4. **时序系统**:机器周期、时钟周期 ### 重点图示 > [!summary] 必须掌握的内容 > 1. 指令周期四个阶段的微操作序列 > 2. 控制单元的外特性 > 3. 多级时序系统 > 4. 各类指令的控制信号 --- ## 🧪 自测练习 ### 概念题 1. 说明微操作命令的概念和特点。 2. 比较指令周期四个阶段的微操作。 3. 解释控制信号的作用和分类。 ### 分析题 1. 写出加法指令的微操作序列。 2. 设计取指周期的控制信号。 --- ## 🔗 相关链接 - [[08_CPU结构与功能]] - 上一章 - [[10_控制单元设计]] - 下一章 - [[07_指令系统]] - 指令格式 --- *本章难度:⭐⭐⭐⭐ 中等偏难* *重要程度:⭐⭐⭐⭐ 重点*