微程序控制器
20世纪50年代,M.V.Wilkes最先提出了微程序这个术语, 提出了一种控制器的设计方法。它是有组织而又有体系的,避免了硬布线实现的复杂性。
IBM的system 360 在1964年4月公布,采用了微程序控制器。
基本思想
一条机器指令可以分解为许多基本的微命令序列。将微操作控制信号按一定规则进行信息编码(代码化)形成控制字(微指令),一条机器指令对应一段“程序”,该程序存放在控制存储器中,因为“程序”的指令结果是实现一条机器指令的功能,所以称为“指令的微程序”。
基本概念
(1)微命令:控制部件通过控制线向执行部件发出各种控制命令,通常把这种控制命令称为微命令。
(2)微操作:执行部件接受微命令后所进行的操作 ,称为微操作 。
微命令和微操作是一一对应的。微命令是微操作的控制信号,微操作是微命令的操作过程。
(3)微指令:在机器的一个CPU周期中,一组实现一定操作功能的微命令的组合
,构成一条微指令 。是控制存储器中的一个单元的内容,即控制字。
(4)微地址:存放控制字的控制存储器的单元地址就称为微地址。人们常把全部指令的控制字存放在一个高速存储器中,即控制存储器中(简称控存),控存的一个单元的内容即控制字代表了某一个节拍的一组微操作控制信号的信息,而把控存单元的地址称为“微地址”。
(5)微程序:微指令序列为微程序。
(6)控制存储器:用来存放微程序的高速存储器。
基本组成
![*](file://localhost/var/folders/gn/fsp8ppy11wn16tfhz698wvm40000gn/T/com.microsoft.Powerpoint/art01C325B8)
![](http://p.ananas.chaoxing.com/star3/origin/676a00f73baf0202406602fe45cf137e.jpg)
图6.5-1 微程序控制器组成原理框图
(1)
控制存储器(CM)
这是微程序控制器的核心部件,用来存放微程序。
(2)伪指令寄存器(μIR)
用来存放CM中取出的微指令,它的位数同微指令字长相等。
(3)微地址形成部件
用来产生初始微地址和后继微地址,以保证微指令字长相等。
(4)微地址寄存器(μMAR)
它接受微地址形成部件送来的微地址,为在CM中读取微指令做准备。
工作过程
微程序控制器的工作过程实质上就是在微程序控制器的控制下,计算机执行机器指令的过程:
1. 执行取指令公共操作。 从控存中取出一段“取机器指令”用的微程序,称为取指微程序,这是一段公用的微操作,其首址通常方在“0”号微地址单元。该微程序完成从主存中读取机器指令并送往指令寄存器。具体执行是:在机器开始运行时,自动将取指微程序的入口微地址送入μMAR,并从CM中读出相应的微指令送入μIR。
2. 机器指令操作码通过微地址形成部件,产生对应的微程序入口地址,并送入微地址寄存器。
3. 逐条取出对应的微指令,每一条微指令提供一个微命令序列,控制有关的微操作。
4. 执行完对应于一条机器指令的一段微程序后,返回到取指微程序的入口,以便取出下一条机器指令。不断重复,直至程序执行完毕。
机器指令与微指令的关系
一条机器指令对应一个微程序。由于任何一条机器指令的取指令操作都是相同的,因此可以将取指令操作抽出来编程一个独立的微程序。这个微程序只负责将指令从主存中取出送至指令寄存器。
第一,一条机器指令对应一个微程序,这个微程序是由若干条微指令序列组成的。因此,一条机器指令的功能是由若干条微指令组成的序列来实现的。简言之,一条机器指令所完成的操作划分成若干条微指令来完成, 由微指令进行解释和执行。
第二,从指令与微指令,程序与微程序,地址与微地址的意义对应关系来看, 前者与内存储器有关, 后者与控制存储器有关。
![](http://p.ananas.chaoxing.com/star3/origin/ac43b983e92bcd181ad0621fa1b54587.jpg)
图6.5-2 机器指令与微指令的关系
CPU周期与微指令周期的关系
微指令周期等于读出微指令的时间加上执行该条微指令的时间。 为了保证整个机器控制信号的同步,可以将一个微指令周期时间设计得恰好和CPU周期时间相等。
微程序设计技术
在实际进行微程序设计时,应关心以下问题:
1. 如何缩短微指令字长;
2. 如何减少微程序长度;
3. 如何提高微程序的执行速度。
微指令的编码方式
微指令的编码方式又称为微指令的控制方式, 是指如何对微指令的控制字段进行编码, 以形成控制信号。
(1)直接编码(直接控制)方式
在微指令的操作控制字段中每一个微命令都用一位信息表示,对应于一种微操作。设计微指令时,选用或不选用某个微命令,只要将表示该微命令的相应位设置成“1”或“0”就可以了。因此,微命令的产生不必经过译码,所需的控制信号直接送到相应的控制点。
(2)字段直接编译方式
将微指令的控制字段分为若干个小字段,每个字段分别编码,每种编码代表一种微命令。
字段直接编码法的分段原则:1.相斥性位命令分在同一字段内 ,相容性命令分在不同的字段内。前者可提高信息位的利用率,缩短微指令字长;后者有利于实现并行操作,加快指令的执行速度。2.一般将同类操作中互斥的微命令划分在同一个字段中。3.每个小字段包含的信息位不能太多,一般不超过6位,否则将增加译码线路的复杂性和译码时间。
(3)字段间接编译方式:
在字段直接编译法的基础上进一步缩短指令字长的一种编译法。一个字段的微命令编码要兼由另一字段的编码或某个标志位加以解释,以便用较少的信息位表示更多的微命令。
微程序地址的形成
1. 入口地址的形成
当公用的取指微程序从主存中取出机器指令后, 有机器指令的操作码字段指出各个微程序的入口地址(初始微地址)。由机器指令的操作码转换成初始微地址的方式主要有三种:
(1)一级功能转换
如果机器指令操作码字段的位数和位置固定,可以直接使操作码与入口地址码的部分位相对应。
(2)二级功能转移
当同类机器指令的操作码字段的位数和位置固定,而不同类机器指令的操作码字段的位数和位置不固定时,就不能再采用一级功能转换的方法。所谓二级功能转换是指第一次先按指令类慈宁宫标志转移,以区分出指令属于哪一类。
(3)通过PLA电路实现功能转移
当机器指令的操作码位数和位置都不固定时, 可以采用PLA电路将每条机器指令的操作码翻译成对应的微程序入口地址,这种方法对于变长度、变位置的操作码显得更有效,而且转换速度较快。
2. 后继微地址的形成
后继微地址的形成主要有以下两大基本类型:
(1)直接由微指令的下址字段给出。 微指令格式中设置一个下地址字段, 由微指令的下地址字段直接指出后继微指令的地址, 这种方式又称为断定方式。
(2)
计数器方式:设置一个微程序计数器uPC,在顺序执行微指令时,后继微指令地址由现行微地址加上一个增量来实现。遇到转移时,由微指令给出转移微地址。
微指令格式
1. 水平型微指令
水平型微指令:一次能定义并执行多个并行操作微命令的微指令,叫做水平型微指令。
基本特征:(1)微指令字较长;(2)一条微指令能控制数据通路中多个功能部件并行操作;(3)微命令的编码简单,尽可能使微命令与控制门之间具有直接对应关系。
2. 垂直型微指令
垂直型微指令:在微指令中设置微操作码字段,一次只能控制数据通路的一、两中信息穿的微指令称为垂直型微指令。![*](/ananas/ueditor/themes/default/images/spacer.gif)
基本特征:(1)微指令字短。(2)微指令的并行操作能力有限,一条微指令只能控制数据通路中的一、两中信息传送。(3)微指令编码比较复杂,全部微命令组成一个微操作码字段,经过完全译码,微指令的各个二进制位与数据通路的各个控制点之间完全不存在直接对应关系。