(截图来自MOOC平台华中科技大学计算机组成原理课程)
硬布线控制器存在一些缺陷:逻辑设计比较繁杂,而且每当需要新增或删除指令时,都需要对整个系统进行变更。因此,人们发明了微程序控制器。
硬布线控制器的一条指令中有多个时钟周期,每个时钟周期对应一个状态,而一个状态对应一组并发控制信号。
而微程序的思想是将并发信号事先存储为微指令,而一条指令就对应多条微指令,那么每一个状态就相当于是并发信号所在的存储器地址。
微程序是一种软硬结合的思想,可以避免复杂的逻辑设计。
下面以单总线结构的CPU为例来说明微程序控制器的设计步骤。
微指令分为操作控制字段和顺序控制字段两部分;
操作控制字段中的每一位对应的是一个控制信号,就是微命令,哪一位写1,说明给出了该位对应的操作信号;
顺序控制字段中的P1、P2是判别位,如果为0吓一跳微指令的地址就从顺序控制字段的下址字段获取。如果不为0,说明这一段微程序已经执行完,需要执行下一个微程序的第一条微指令。
如图所示,不同的指令会对应不同的微程序,每一段微程序中微指令的数量也是不同的;
而微指令中的操作控制字段的每一位都可以称为微命令。
执行指令时,首先从IR中取出指令操作码,在不同的状态条件下,经过地址转移组合逻辑获得微程序的入口地址;
微程序入口地址在判别字段的判别下,获得下一条微指令的地址。如果判别字为0,那么下址字段就是下一条指令的地址,如果为1说明需要跳转,去执行新的微程序;
微地址写入微地址寄存器,该寄存器在初始时为0,所以0号地址为取值微程序的入口,然后顺序执行取值微程序,直到判别字为1时发生跳转。根据时钟周期,将微地址写入控制存储器,对应的微指令就被选中,其中的微操作控制字段生成操作控制信号到达对应的控制点,而顺序控制字段继续配合生成下一个微地址。
(创作不易,请点赞收藏哦~)