Files
obsidian/计算机组成原理/学习笔记/09_控制单元功能.md

7.6 KiB
Raw Permalink Blame History

第9章 控制单元的功能

📖 本章分析控制单元为完成不同指令所发出的各种微操作命令。 🎯 重点理解微操作命令和指令执行过程


📋 本章目录


9.1 微操作命令的分析

9.1.1 微操作命令的概念

[!info] 定义 微操作命令是控制单元发出的最基本控制信号,控制计算机各部件完成相应操作。

特点

  • 是最基本的操作,不可再分
  • 由控制单元发出
  • 控制数据通路和功能部件

9.1.2 指令周期的四个阶段

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
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地址字段
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 关中断
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 控制单元的外特性

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 多级时序系统

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. 设计取指周期的控制信号。

🔗 相关链接


本章难度: 中等偏难 重要程度: 重点