微程序控制器
20世纪50年代,M.V.Wilkes最先提出了微程序这个术语, 提出了一种控制器的设计方法。它是有组织而又有体系的,避免了硬布线实现的复杂性。
IBM的system 360 在1964年4月公布,采用了微程序控制器。
基本思想
一条机器指令可以分解为许多基本的微命令序列。将微操作控制信号按一定规则进行信息编码(代码化)形成控制字(微指令),一条机器指令对应一段“程序”,该程序存放在控制存储器中,因为“程序”的指令结果是实现一条机器指令的功能,所以称为“指令的微程序”。
基本概念
(1)微命令:控制部件通过控制线向执行部件发出各种控制命令,通常把这种控制命令称为微命令。
(2)微操作:执行部件接受微命令后所进行的操作 ,称为微操作 。
微命令和微操作是一一对应的。微命令是微操作的控制信号,微操作是微命令的操作过程。
(3)微指令:在机器的一个CPU周期中,一组实现一定操作功能的微命令的组合
,构成一条微指令 。是控制存储器中的一个单元的内容,即控制字。
(4)微地址:存放控制字的控制存储器的单元地址就称为微地址。人们常把全部指令的控制字存放在一个高速存储器中,即控制存储器中(简称控存),控存的一个单元的内容即控制字代表了某一个节拍的一组微操作控制信号的信息,而把控存单元的地址称为“微地址”。
(5)微程序:微指令序列为微程序。
(6)控制存储器:用来存放微程序的高速存储器。
基本组成


图6.5-1 微程序控制器组成原理框图
(1)
控制存储器(CM)
这是微程序控制器的核心部件,用来存放微程序。
(2)伪指令寄存器(μIR)
用来存放CM中取出的微指令,它的位数同微指令字长相等。
(3)微地址形成部件
用来产生初始微地址和后继微地址,以保证微指令字长相等。
(4)微地址寄存器(μMAR)
它接受微地址形成部件送来的微地址,为在CM中读取微指令做准备。
工作过程
微程序控制器的工作过程实质上就是在微程序控制器的控制下,计算机执行机器指令的过程:
1. 执行取指令公共操作。 从控存中取出一段“取机器指令”用的微程序,称为取指微程序,这是一段公用的微操作,其首址通常方在“0”号微地址单元。该微程序完成从主存中读取机器指令并送往指令寄存器。具体执行是:在机器开始运行时,自动将取指微程序的入口微地址送入μMAR,并从CM中读出相应的微指令送入μIR。
2. 机器指令操作码通过微地址形成部件,产生对应的微程序入口地址,并送入微地址寄存器。
3. 逐条取出对应的微指令,每一条微指令提供一个微命令序列,控制有关的微操作。
4. 执行完对应于一条机器指令的一段微程序后,返回到取指微程序的入口,以便取出下一条机器指令。不断重复,直至程序执行完毕。
机器指令与微指令的关系
一条机器指令对应一个微程序。由于任何一条机器指令的取指令操作都是相同的,因此可以将取指令操作抽出来编程一个独立的微程序。这个微程序只负责将指令从主存中取出送至指令寄存器。
第一,一条机器指令对应一个微程序,这个微程序是由若干条微指令序列组成的。因此,一条机器指令的功能是由若干条微指令组成的序列来实现的。简言之,一条机器指令所完成的操作划分成若干条微指令来完成, 由微指令进行解释和执行。
第二,从指令与微指令,程序与微程序,地址与微地址的意义对应关系来看, 前者与内存储器有关, 后者与控制存储器有关。

图6.5-2 机器指令与微指令的关系
CPU周期与微指令周期的关系
微指令周期等于读出微指令的时间加上执行该条微指令的时间。 为了保证整个机器控制信号的同步,可以将一个微指令周期时间设计得恰好和CPU周期时间相等。