冯诺依曼计算机的控制器¶
概述¶
控制器是冯诺依曼计算机的指挥中心,负责从存储器中取出指令、分析指令、执行指令,并控制计算机各部件协调工作。
控制器的功能¶
控制器功能
控制器的主要功能包括:
控制器功能
- 取指令: 从存储器取出指令
- 分析指令: 解释指令含义
- 执行指令: 产生控制信号
- 控制数据流向
- 处理异常和中断
控制器的组成¶
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)
- PC → MAR (送指令地址)
- M(MAR) → MDR (读指令)
- MDR → IR (存指令)
- PC + 1 → PC (更新PC)
2. 译码周期¶
译码周期(Decode Cycle)
对IR中的指令进行译码,识别指令类型。
3. 执行周期¶
执行周期(Execute Cycle)
根据译码结果执行相应操作。
控制器的实现方式¶
1. 硬布线控制器¶
硬布线控制器
使用组合逻辑电路实现控制。
特点:
- 速度快
- 设计复杂
- 不易修改
- 适合RISC
2. 微程序控制器¶
微程序控制器
使用微程序实现控制。
特点:
- 设计灵活
- 易于修改
- 速度较慢
- 适合CISC