控制单元是计算机中央处理单元 (CPU) 的一部分,它指导处理器的操作。它被约翰·冯·诺依曼列为冯·诺依曼架构的一部分。控制单元的职责是告诉计算机的存储器、算术/逻辑单元以及输入和输出设备如何响应已发送到处理器的指令。它将程序的内部指令从主存储器中取出到处理器指令寄存器中,控制单元根据该寄存器的内容产生一个控制信号,监督这些指令的执行。
控制单元通过接收输入信息来工作,并将其转换为控制信号,然后将其发送到中央处理器。计算机的处理器然后告诉连接的硬件要执行什么操作。控制单元执行的功能取决于 CPU 的类型,因为 CPU 的架构因制造商而异。需要 CU 的设备示例包括:
- 控制处理单元(CPU)
- 图形处理单元 (GPU)
控制单元的功能 –
- 它协调处理器的许多子单元进出和之间的数据移动顺序。
- 它解释指令。
- 它控制处理器内部的数据流。
- 它接收外部指令或命令,并将其转换为控制信号序列。
- 它控制 CPU 中包含的许多执行单元(即 ALU、数据缓冲区和寄存器)。
- 它还处理多项任务,例如获取、解码、执行处理和存储结果。
控制单元的类型 –
有两种类型的控制单元:硬接线控制单元和可编程控制单元。
- 硬接线控制单元 –
在Hardwired控制单元中,对指令执行控制很重要的控制信号是由专门设计的硬件逻辑电路产生的,其中我们不能在电路结构没有物理变化的情况下修改信号产生方法。指令的操作码包含产生控制信号的基本数据。在指令解码器中,对操作码进行解码。指令解码器由一组许多解码器组成,用于对指令操作码的不同字段进行解码。结果,从指令解码器出去的很少输出线获得有效信号值。这些输出线连接到为计算机的执行单元生成控制信号的矩阵的输入端。该矩阵实现了来自指令操作码的解码信号与来自矩阵的输出的逻辑组合,该输出生成表示连续控制单元状态的信号以及来自处理器外部的信号,例如中断信号。矩阵的构建方式与可编程逻辑阵列类似。
指令执行的控制信号必须不是在单个时间点产生,而是在对应于指令执行周期的整个时间间隔内产生。按照该循环的结构,在控制单元中组织适当的内部状态序列。
由控制信号发生器矩阵产生的多个信号被发送回下一个控制状态发生器矩阵的输入。该矩阵将这些信号与计时信号组合在一起,计时信号根据通常由石英发生器提供的矩形图案由计时单元生成。当新指令到达控制单元时,控制单元处于取新指令的初始状态。指令解码允许控制单元进入与新指令执行相关的第一状态,只要定时信号和其他输入信号作为标志和计算机的状态信息保持不变,该状态就会持续。前面提到的任何信号的变化都会刺激控制单元状态的变化。
这导致为控制信号发生器矩阵生成新的相应输入。当出现外部信号(例如中断)时,控制单元进入下一个控制状态,该状态是与对该外部信号的反应(例如中断处理)有关的状态。计算机的标志和状态变量的值用于为指令执行周期选择合适的状态。
循环中的最后一个状态是控制状态,开始提取程序的下一条指令:将程序计数器内容发送到主存地址缓冲寄存器,然后读取指令字到计算机的指令寄存器。当正在进行的指令是结束程序执行的停止指令时,控制单元进入操作系统状态,等待下一个用户指令。
- 可编程控制单元 –
这些单元结构与硬连线控制单元的结构之间的根本区别在于控制存储的存在,用于存储包含指令执行所必需的编码控制信号的字。在微程序控制单元中,后续指令字以正常方式取入指令寄存器。然而,每条指令的操作码不是直接解码以启用立即控制信号生成,而是包括包含在控制存储器中的微程序的初始地址。
- 使用单级控件存储:
在这种情况下,来自指令寄存器的指令操作码被发送到控制存储地址寄存器。根据该地址,将解释该指令执行的微程序的第一条微指令读入微指令寄存器。该微指令在其操作部分中包含编码控制信号,通常为少量位字段。在一组微指令字段解码器中,字段被解码。微指令还包含给定指令微程序的下一条微指令的地址和用于控制微指令地址生成器活动的控制字段。最后提到的字段决定了要应用于嵌入在进行中的微指令中的地址的寻址模式(寻址操作)。在微指令和条件寻址模式中,通过使用处理器条件标志来细化该地址,这些标志代表当前程序中的计算状态。给定微程序的指令中的最后一条微指令是从主存中取出下一条指令到指令寄存器的微指令。
- 使用两级控件存储:
其中,在具有两级控制存储器的控制单元中,除了用于微指令的控制存储器外,还包括纳米指令存储器。在这样的控制单元中,微指令不包含编码的控制信号。微指令的运算部分包含字在纳米指令存储器中的地址,其中包含编码的控制信号。纳米指令存储器包含出现在解释给定计算机的完整指令集的微程序中的所有控制信号组合,以纳米指令的形式编写一次。这样就避免了对微指令的相同操作部分进行不必要的存储。在这种情况下,微指令字可以比单级控制存储短得多。它使微指令存储器的位数小得多,因此整个控制存储器的大小也小得多。微指令存储器包含对连续微指令选择的控制,而这些控制信号是在纳米指令的基础上产生的。在纳米指令中,控制信号经常使用 1 位/1 信号方法进行编码,无需解码。
- 使用单级控件存储: