控制器

需熟练掌握CPU在执行指令时是如何控制信号控制各个部件的,这个过程偶尔会在大题中考察。还需了解硬布线控制器和微程序控制器的概念,可能在选择题中考察。
IR
Data Bus
Address Bus
Control Bus
Input
Device
Memory
Output
Device
Flags

Clock
Control Unit

控制器是计算机系统的指挥中心,控制器的主要功能有:

  • 指令解码:CPU从存储器取出一个指令后,控制器负责解码这个指令,以确定要执行的操作和涉及的操作数。
  • 生成控制信号:基于解码的指令,控制器生成一系列的控制信号,这些信号会驱动其他计算机部分(如算术逻辑单元、寄存器和存储器)按预期执行相应的操作。
  • 指令执行的顺序和时序:通过先后发出不同的控制信号,确保指令的逻辑正确被执行,

根据控制器产生微操作控制信号方式的不同,控制器可以分为硬布线控制器和微程序控制器。

控制信号

概念

控制信号是由控制单元(Control Unit)生成和发出的电信号,这些信号用于指挥CPU内部的各种操作。例如,控制信号可以指示算术逻辑单元(ALU)执行加法还是减法,或者指示寄存器进行读写操作。

类型

其实控制信号的种类很多,但就目前阶段而言,会考察的可以被总结为三类控制信号:

  • 读写信号:对内存或IO设备进行读写,比如 MemRMemW
  • 寄存器选择信号:选择特定的寄存器进行读写操作,比如 PCinPCout
  • 操作码信号:示算术逻辑单元(ALU)执行哪种运算,如加法、减法、与、或等。
R4
R3
R2
R1
Internal Bus
T1
ALU
MAR
MDR
Control Unit
IR
External Bus
MARout
PC
MARin
MDRout
MDRin
PCout
PCin
Memory
MemOp
ALUop (such as add, sub)
IRin
MUX
Word Length
MUXop
T2
T1out
T1in
T2out
T2in
0
1

指令的不同执行阶段对应的控制信号

指令的执行包含取指、译码、执行、写回阶段,在这四个阶段中控制单元会发出不同的控制信号,以实现指令的执行。

以指令ADD R0, (R1)为例,说明一下指令执行阶段四个阶段的控制信号。

取指和译码阶段

时钟功能控制信号解释
C1MAR ← (PC)PCout, MARin从 PC 中读取指令地址至 MAR 中
C2MDR ← M(MAR)MemR, MDRin存储器从MAR地址所在的内存单元读取数据
并加载到MDR中
C3MUXop ← PCIncrPCIncr在二路选择器中生成值 1 添加入 ALU 的一端
C4T2 ← PC + 1MARout, T2in, AddALU 计算下一条指令的地址
C5PC ← T2T2out, PCin将计算得到的地址加载进 PC 中
C6指令译码由指令译码器件完成

执行和写回阶段

时钟功能控制信号解释
C7MAR ← R1R1out,MARin将 R1 中的内容加载进 MAR
C8MDR ← M(MAR)MemR, MDRin存储器从MAR地址所在的内存单元读取数据
并加载到MDR中
C9T1 ← R0R0out, T1in将 R0 的内容存储在暂存器 T1
C10T2 ← MDR + T1MDRout, MUXop,Add, T2inMDR的内容存储进入ALU另一个入口
执行加法操作
并将结果存储进入T2
C11R0 ← T2T2out, R0in将计算结果写回 R0

硬布线控制器

定义:硬布线控制器是通过组合逻辑电路来实现的,通常使用逻辑门、多路复用器、解码器等组合电路元件。

特点

  • 性能:因为是硬件实现,所以通常速度较快。
  • 固定功能:一旦设计和实现完成,修改它就比较困难,需要改变物理电路。
  • 设计复杂性:对于复杂的控制逻辑,硬布线控制器可能会变得非常复杂,难以设计和验证。

微程序控制器

定义:微程序控制器基于存储的微指令集来实现控制逻辑。它使用一块称为“控制存储器”或“微指令存储器”的特殊存储器来存储微指令。每一个微指令定义了一系列的控制信号。

特点

  • 灵活性:由于控制逻辑是存储在存储器中的,所以更改控制逻辑只需要更改存储的微指令,而无需更改硬件。
  • 简化设计:对于复杂的控制逻辑,使用微指令可能会简化设计和验证过程。
  • 性能:通常比硬布线控制器慢,因为它需要从控制存储器中读取微指令。
  • 易于修改和扩展:添加新的指令或修改现有的指令相对容易。

指令、微指令、微命令

微命令是计算机硬件控制的基础指令,用于控制某些硬件单元完成某种操作。

一条机器指令对应一个微程序,一个微程序由数条微指令构成,每个微指令可以包含数个微命令。

微指令编码方式

下地址
操作控制
控制信号
下地址
操作控制
译码
译码
译码
直接编码方式
字段直接编码方式
  1. 直接编码方式

微指令中的微命令字段中每位都代表一个微命令。

  1. 字段直接编码方式

将微指令的微命令字段分为若干小段,把互斥行微命令组合在同一字段中,把相容性微命令组合在不同字段中,每个字段独立编码,每种编码代表一个微命令且各字段编码含义单独定义。