硬布线控制器与微程序控制器

硬布线控制器和微程序控制器都是控制单元(CU)的实现方式,用于协调和控制计算机系统的操作。它们的主要区别在于控制信号的生成方式:

硬布线控制器 (Hardwired Controller):

概念: 硬布线控制器使用组合逻辑电路直接生成控制信号。这意味着控制器的功能是由逻辑门(AND、OR、NOT等)和触发器直接实现的。每一个控制信号都对应着特定的逻辑表达式,根据指令译码的结果来决定输出哪个控制信号。 你可以把它想象成一个复杂的电路板,每个部件都有预先定义的功能,通过电路间的连接来实现控制。

实现: 通过设计复杂的逻辑电路来实现。设计者需要仔细分析指令集,并为每条指令设计相应的逻辑电路,产生正确的控制信号序列。

优点:

速度快: 由于控制信号是直接生成的,没有中间步骤,因此执行速度快。
效率高: 因为电路直接针对特定指令集优化,所以效率通常较高。

缺点:

设计复杂: 设计和调试硬布线控制器非常复杂,需要大量的逻辑设计和验证工作。 任何指令集的改变都意味着需要重新设计整个控制器。
难以修改: 一旦设计完成,修改指令集或添加新的指令非常困难,甚至需要重新设计整个控制器。
灵活性差: 适应性差,难以实现复杂的控制功能。

微程序控制器 (Microprogrammed Controller):

概念: 微程序控制器使用存储器来存储控制信号序列,即微程序。控制器的操作是通过执行存储在控制存储器 (Control Memory, CM) 中的微程序来实现的。每个微指令对应一个或多个控制信号。微指令根据指令译码的结果从控制存储器中顺序读取并执行。

实现: 使用一个控制存储器 (通常是ROM) 来存储微程序。一个微指令通常由多个字段组成,每个字段控制一个或多个控制信号。控制器从控制存储器读取微指令,根据微指令的各个字段产生相应的控制信号。

优点:

设计简单: 设计相对简单,因为控制器设计者只需要编写微程序,而不需要设计复杂的组合逻辑电路。
易于修改: 修改指令集或添加新的指令只需要修改或添加微程序,而不需要改变硬件结构。
灵活性高: 可以实现复杂的控制功能,并且易于扩展。

缺点:

速度慢: 执行速度比硬布线控制器慢,因为需要从控制存储器中读取微指令。 这增加了指令执行的延迟。
效率可能较低: 如果微程序设计不好,可能会导致效率降低。
联系:

两者都是控制单元的实现方式,其目标都是根据指令来产生控制信号,控制计算机的各个部件完成指令的执行。 它们都能实现同样的控制功能,只是实现方式不同。

在这里插入图片描述
**

微程序控制器主要由以下几个部分组成:

控制存储器 (Control Memory, CM): 这是微程序控制器的核心部件,它是一个只读存储器 (ROM) 或可编程只读存储器 (PROM),存储着微程序。 每个存储单元存储一条微指令。 CM 的地址空间决定了微程序的容量。

控制地址寄存器 (Control Address Register, CAR): 该寄存器保存当前正在执行的微指令的地址。 它类似于CPU中的程序计数器(PC),指示下一条要执行的微指令的位置。

微指令寄存器 (Microinstruction Register, MIR): 该寄存器保存从控制存储器中取出的微指令。 微指令的各个字段会分别被送到不同的控制单元,从而产生相应的控制信号。

微程序控制器逻辑电路: 这部分电路负责从CM中读取微指令,并根据微指令的内容生成相应的控制信号。 它通常包括译码器、选择器等逻辑电路。 这部分电路根据MIR的内容,决定哪些控制信号需要被激活,从而控制CPU的其他部件。

指令译码器: 这部分电路负责将CPU取到的指令译码,并根据译码结果,将控制地址寄存器 (CAR) 设置为对应微程序的起始地址。 不同的指令对应不同的微程序段。

条件转移逻辑: 这部分电路允许微程序执行条件转移,即根据某些条件跳转到微程序中的其他位置。 这使得微程序能够实现更复杂的控制逻辑。

关键术语解释:

微操作 (Micro-operation): 微操作是 CPU 硬件执行的最基本的动作,例如,将数据从寄存器 A 传送到寄存器 B,或将数据写入内存。 一条微指令通常可以执行一个或多个微操作。

微命令 (Micro-command): 微命令是控制单个微操作的控制信号。 例如,一个微命令可以控制ALU进行加法运算,另一个微命令可以控制数据总线的传输。 一条微指令由多个微命令组成。

微指令 (Microinstruction): 微指令是一条存储在控制存储器中的指令,它指定了一组微操作,以及下一个要执行的微指令的地址(或者跳转条件)。 它本质上是一组微命令的集合。

微周期 (Microcycle): 微周期是微程序控制器执行一条微指令所需要的时间。 一个微周期通常比一个机器周期短得多。

微指令的编码方式:

微指令的编码方式有多种,常见的包括:

水平型微指令 (Horizontal Microinstruction): 水平型微指令的每个位或位组都直接控制一个特定的微操作。 这种编码方式允许在一个微周期内执行多个微操作,速度快,但编码效率低,需要较多的位数。 它有许多控制字段,每个字段对应一个微命令。

垂直型微指令 (Vertical Microinstruction): 垂直型微指令使用较少的位数,但每个微指令只能控制一个或几个微操作。 它需要多个微周期才能完成一条指令的执行。编码效率高,但速度相对较慢。 它用较少的位来编码多个微命令,需要通过译码来确定执行哪些微操作。

混合型微指令: 混合型微指令结合了水平型和垂直型微指令的优点。 它使用一些位直接控制常用的微操作,而其他位则用于指定更复杂的微操作。

微指令的格式示例 (水平型):

假设一条微指令需要控制以下微操作:

ALU 操作 (加法、减法、与、或等)
数据源选择 (寄存器 A, 寄存器 B, 内存)
数据目的选择 (寄存器 C, 内存)
条件跳转 (无条件跳转、条件跳转)
那么,一条水平型微指令可能如下所示:
| ALU操作(3位) | 数据源1选择(3位) | 数据源2选择(3位) | 数据目的选择(3位) | 条件跳转(2位) | 下一条微指令地址(n位) |

其中,每个字段的位数取决于需要控制的微操作数量。 例如,ALU操作需要3位,因为假设有8种ALU操作。 n位表示下一条微指令的地址。

选择哪种编码方式取决于具体的应用需求,需要权衡速度、硬件成本和设计复杂度。 水平型微指令速度快,但硬件复杂;垂直型微指令硬件简单,但速度慢;混合型微指令则试图在两者之间取得平衡。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值