微程序控制器是一种控制器,同组合
逻辑控制器相比较,具有规整性、灵活性、
可维护性等一系列优点,因而在计算机设计中逐渐取代了早期采用的组合逻辑控制器,并已被广泛地应用。在
计算机系统中,
微程序设计技术是利用软件方法来设计硬件的一门技术 。
定义
采用微程序控制方式的控制器称为微程序控制器。所谓微程序控制方式是指
微命令不是由
组合逻辑电路产生的,而是由微指令
译码产生。一条
机器指令往往分成几步执行,将每一步操作所需的若干位命令以代码形式编写在一条微指令中,若干条微指令组成一段微程序,对应一条机器指令。在设计CPU时,根据
指令系统的需要,事先编制好各段微程序 ,且将它们存入一个专用
存储器(称为
控制存储器)中。微程序控制器由
指令寄存器IR、
程序计数器PC、
程序状态字寄存器PSW、时序系统、控制存储器CM、
微指令寄存器以及微地址形成电路、微
地址寄存器等部件组成。执行指令时,从控制存储器中找到相应的
微程序段,逐次取出
微指令,送入微指令寄存器,译码后产生所需微命令,控制各步操作完成。
基本概念
微命令和微操作
微命令:控制部件通过控制线向执行部件发出的各种控制命令。它构成控制信号的最小单元。
微操作:执行部件接受微命令后所进行的操作。它是由微命令实现的最基本操作。
控制部件与执行部件通过控制线和反馈信息进行联系。
微指令和微程序
微指令,在机器的一个
CPU周期中,一组实现一定操作功能的微命令的组合。
微程序,实现一条
机器指令功能的许多条微指令组成的序列。
控制部件与执行部件通过控制线和反馈信息进行联系。
CPU周期与微指令周期的关系
在串行方式的微程序控制器中:微指令周期 = 读出微指令的时间 + 执行该条微指令的时间
一个
CPU周期为0.8μs,它包含四个等间隔的节拍脉冲T1—T4,每个
脉冲宽度为200ns。用T4作为读取微指令的时间,用T1+T2+T3时间作为执行微指令的时间。例如,在前600ns时间内
运算器进行运算,在600ns时间的末尾运算器已经运算完毕,可用T4
上升沿将运算结果打入某个寄存器。与此同时可用T4间隔读取下条微指令,经200ns时间延迟,下条
微指令又从
只读存储器读出,并用T1上升沿打入到
微指令寄存器。如忽略触发器的翻转延迟,那么下条微指令的
微命令信号就从T1上升沿起就开始有效,直到下一条微指令读出后打入微指令寄存器为止。因此一条微指令的
保持时间恰好是0.8μs,也就是一个
CPU周期的时间。
组成
微程序控制器主要由
控制存储器、
微指令寄存器和地址转移逻辑三大部分组成。
控制存储器
控制存储器用来存放实现全部
指令系统的
微程序,它是一种
只读存储器。若指令系统中有多少条机器指令,就有多少微程序。一旦微程序固化,机器运行时则只读不写。其工作过程是:每读出一条
微指令,则执行这条微指令;接着又读出下一条微指令,又执行这一条微指令……。读出一条微指令并执 行微指令的时间总和称为一个
微指令周期。通常,在串行方式的微程序控制器中,微指令周期就是只读存储器的工作周期。控制存储器的
字长就是微指令字的长度,其存储容量视机器指令系统而定,即取决于微程序的数量。对控制存储器的要求是速度快,读出周期要短。
微指令寄存器
微指令寄存器用来存放由
控制存储器读出的一条
微指令信息。其中微
地址寄存器决定将要访问的下一条微指令的地址,而
微命令寄存器则保存一条微指令的操作控制字段和判别测试字段的信息。
地址转移逻辑
在一般情况下,微指令由控制存储器读出后直接给出下一条微指令的地址,通常我们简称微地址,这个微地址信息就存放在微地址寄存器中。如果
微程序不出现分支,那么下一条微指令的地址就直接由微地址寄存器给出。当微程序出现分支时,意味着微程序出现
条件转移。在这种情况下,通过判别测试字段P和执行部件的“状态条件”反馈信息,去修改微地址寄存器的内容,并按改好的内容去读下一条
微指令。地址转移逻辑就承担自动完成修改微地址的任务。
控制原理
微程序控制的基本思想,就是仿照通常的解题程序的方法,把操作控制信号编成所谓的“微指令”,存放到一个只读存储器里.当机器运行时,一条又一条地读出这些微指令,从而产生全机所需要的各种操作控制信号,使相应部件执行所规定的操作 。
微程序控制的基本原理是:
(1)将机器指令分解为基本的微命令序列,在制造CPU时固化在控制存储器CM中,执行一条机器指令时,CPU依次从CM中取出微指令产生微命令。
(2)一条
微指令包含的微命令控制实现一步(一个节拍)操作,若干条微指令组成一小段
微程序解释执行一条机器指令。
执行过程
(1)根据计算机给出的第一条微指令的地址,从控制存储器中取出第一条微指令。
(2)微指令由操作控制部分和顺序控制部分组成。操作控制部分产生微操作控制信号,控制执行部分完成规定的操作。顺序控制部分中的直接顺序控制部分放入微地址寄存器,
顺序控制部分的P字段和执行部件反馈的状态条件信息决定修改微地址寄存器中的值。
(3)按地址寄存器中的值从控制存储器中取出下一条微指令,继续第二步,如此循环,直到全部指令执行完毕。
设计步骤
微程序控制器的设计步骤如下:
(1)根据CPU的结构图描述出每条指令的微操作流程图并综合成总的流程图;
(2)用混合控制法对微命令进行编码;
(3)选择合适的控制和时序;
(4)选用
微程序的顺序控制方式为微指令安排微地址;
(5)画出微程序控制器组成框图。
组合逻辑控制器和微程序控制器的比较
组合
逻辑控制器和微程序控制器,除了操作控制信号的形成方法和原理有差别外,其余的组成部分上没有本质的区别。最显著的差别可归纳为如下两点:
实现方式
微程序控制器的控制功能是在存放微程序的控制存储器和存放当前正在执行的微指令的寄存器直接控制下实现的,而组合逻辑控制器由
逻辑电路实现。前者电路比较规整,各条指令控制信号的差别反映在控制存储器的内容上,因此无论是增加或修改(包括纠正设计中的错误或升级)指令,只要增加或者修改内容即可。组合逻辑控制器先用逻辑表达式列出,精简化后用
逻辑门电路实现,因而显得零乱复杂,当需要增加或修改指令时很麻烦甚至不可能,因此微程序控制器得到了广泛应用,尤其是指令系统复杂的计算机,一般都采用微程序控制器。
性能
在同样的工艺条件下,微程序控制的速度比
组合逻辑电路速度低,因为执行每条微指令都要从控制存储器(CM)中读取一次,影响了速度,而组合逻辑电路的速度主要取决于电路延迟,因而在高速或超高速计算机中,对影响速度的关键部分如CPU,往往采用组合逻辑电路。近年来,一些新的计算机系统如
RISC(精简指令计算机),选用了组合逻辑控制器。