微程序控制器
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周期时间相等。
微程序设计技术
在实际进行微程序设计时,应关心以下问题:
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. 垂直型微指令
垂直型微指令:在微指令中设置微操作码字段,一次只能控制数据通路的一、两中信息穿的微指令称为垂直型微指令。
基本特征:(1)微指令字短。(2)微指令的并行操作能力有限,一条微指令只能控制数据通路中的一、两中信息传送。(3)微指令编码比较复杂,全部微命令组成一个微操作码字段,经过完全译码,微指令的各个二进制位与数据通路的各个控制点之间完全不存在直接对应关系。
“龙芯”的发明人胡伟武的讲解视频
1. 胡伟武讲解CPU自主创新之路
https://www.bilibili.com/video/BV1BK411T7Za?from=search&seid=12957565438272647451
2. 胡伟武讲解龙芯指令集架构
https://www.bilibili.com/video/BV1Qx411R7g7?from=search&seid=6896976439838144520
微程序控制器的基本思想
微程序控制器的基本思想
1、控制存储器: 控制存储器是微程序控制器中的核心部件,通常由只读存储器ROM器件实现,简称控存。
2、微指令: 控制存储器中的一个存储单元(字)表示了某一条指令的某一操作步骤的控制信号,以及下一步骤的有关信息,称该字为微指令。
作用:准确提供了指令执行中的每一步要用的操作信号及下一微指令的地址。
3、微程序: 全部 微指令的集合称为微程序。
4、微程序控制器的基本工作原理: 根据IR(指令寄存器)中的操作码,找到与之对应的控存中的一段微程序的入口地址,并按指令功能所确定的次序,逐条从控制存储器中读出微指令,以驱动计算机各部件正确运行。
5、得到下一条微指令的地址的有关技术: 要保证微指令的逐条执行,就必须在本条微指令的执行过程中,能得到下一条微指令的地址。
形成下条微指令地址(简称下地址)可能有下列五种情况:
①下地址为本条微指令地址加1;
②微程序必转某一微地址,可在微指令中给出该微地址值;
③根据状态标志位,选择顺序执行或转向某一地址;
④微子程序的调用及返回控制,要用到微堆栈;
⑤根据条件判断转向多条微指令地址中的某一地址,比③更复杂的情况。
如:若C=1,转移到 A1 微地址;
若S=1,转移到 A2 微地址;
若Z=1,转移到 B1 微地址;
这种情况,在微指令中直接给出多个下地址是不现实的,应找出更合理的解决方案。
微指令的格式和内容:
补充:微指令编码的方法
(1)直接表示法(水平型微指令):操作控制字段中的每一位带代表一个微操作控制信号。如教学实验计算机的微指令56位
(2)编码表示法(垂直型微指令):把一组相斥性的微命令信号组成一个小组,通过小组字段译码器对每一个微命令信号进行译码。
(3)混合表示法:将直接表示法与编码表示法相混合使用。

下地址字段的内容 得到下地址的方法
由指令操作码得到 微指令顺序执行 微指令必转或条件转移 多路微地址转移 微子程序调用和返回 按次数循环一段微程序 其它:如特定入口微地址 | 在微指令下地址字段中表示清楚: 使用哪种方法 哪个判断条件, 要用的有关地址等, 并用专门电路完成 必要支持和处理 微指令的下地址是微程序设计中要重 点解决的问题之一, 技术、技巧性强应学得好些 |
|
|
微程序定序器Am2910芯片的组成与功能
①功能:在微程序控制器中,Am2910用于形成下一条微指令地址。它能提供12位微指令地址,因此可直接寻址4096条微指令字的空间范围。
②组成:
4输入的多路地址选择器,可从下列4个之一选择
寄存器/计数器(RIC)
直接输入微地址(D)
微程序计数器(μPC)
微堆栈(F)
( 见下图)








