跳转至

冯诺依曼计算机的控制器

概述

控制器是冯诺依曼计算机的指挥中心,负责从存储器中取出指令、分析指令、执行指令,并控制计算机各部件协调工作。

控制器的功能

控制器功能

控制器的主要功能包括:

控制器功能
  • 取指令: 从存储器取出指令
  • 分析指令: 解释指令含义
  • 执行指令: 产生控制信号
  • 控制数据流向
  • 处理异常和中断

控制器的组成

graph TB
    A[控制器] --> B[程序计数器<br/>PC]
    A --> C[指令寄存器<br/>IR]
    A --> D[指令译码器]
    A --> E[时序发生器]
    A --> F[操作控制器]

1. 程序计数器(PC)

程序计数器(Program Counter, PC)

存放当前指令的地址,自动加1指向下一指令。

功能:

  • 存放指令地址
  • 自动增量
  • 支持跳转指令

2. 指令寄存器(IR)

指令寄存器(Instruction Register, IR)

存放当前正在执行的指令。

功能:

  • 存放指令
  • 提供给译码器
  • 保持指令稳定

3. 指令译码器

指令译码器

对指令进行译码,识别指令类型。

功能:

  • 识别操作码
  • 确定指令类型
  • 产生控制信号

4. 时序发生器

时序发生器

产生时序控制信号。

功能:

  • 产生时钟信号
  • 产生节拍信号
  • 控制时序

5. 操作控制器

操作控制器

根据指令产生操作控制信号。

功能:

  • 产生控制信号
  • 控制数据通路
  • 协调各部件

控制器的工作过程

控制器工作过程

控制器按以下步骤工作:

sequenceDiagram
    participant PC as 程序计数器
    participant Memory as 存储器
    participant IR as 指令寄存器
    participant Decoder as 译码器
    participant CU as 操作控制器
    
    PC->>Memory: 取指令地址
    Memory-->>IR: 返回指令
    IR->>Decoder: 译码
    Decoder->>CU: 产生控制信号
    CU->>CU: 执行指令
    PC->>PC: PC+1

1. 取指周期

取指周期(Fetch Cycle)
  1. PC → MAR (送指令地址)
  2. M(MAR) → MDR (读指令)
  3. MDR → IR (存指令)
  4. PC + 1 → PC (更新PC)

2. 译码周期

译码周期(Decode Cycle)

对IR中的指令进行译码,识别指令类型。

3. 执行周期

执行周期(Execute Cycle)

根据译码结果执行相应操作。

控制器的实现方式

1. 硬布线控制器

硬布线控制器

使用组合逻辑电路实现控制。

特点:

  • 速度快
  • 设计复杂
  • 不易修改
  • 适合RISC

2. 微程序控制器

微程序控制器

使用微程序实现控制。

特点:

  • 设计灵活
  • 易于修改
  • 速度较慢
  • 适合CISC

参考资料