5.4.2 控制器-微程序
- 硬布线工作原理:微操作控制信号由组合逻辑电路根据当前的指令码、状态和时序,即时产生
- 微程序工作原理:事先把微操作控制信号存储在一个专门的存储器(控制存储器)中,将每一条机器指令编写成一个微程序,这些微程序可以存到一个控制存储器中,用寻址用户程序机器指令的办法来寻址每个微程序中的微指令。
5.4.2.1 微程序的基本思想
微操作就是指令的执行过程,微命令就是微操作的控制信号。我么通过将机器指令拆分成多个微操作命令(每一个微操作命令对应一个微操作)
相容性微命令:可以同时产生、共同完成某一些微操作的微命令。
互斥性微命令:在机器中不允许同时出现的微命令。
考虑微命令的互斥相容性,给微操作排序分组(和硬布线一样),每一组对应一个微指令,微指令是一串二进制编码,每一个二进制位代表一个微操作命令,对应位置为1说明当前执行对应微操作指令。
对于有些分在一组的相容性命令,其对应的微指令二进制串可能存在多个1。
一条机器指令对应的微指令组成一个微程序,存储在ROM制度存储器
微指令需要指出当前操作类型,下一条指令的位置。所以微指令的基本格式:
考虑到每条指令取指周期的操作是相同的,所以将取指令操作的微命令统一编成一个微程序,而每条机器指令所对应的具体操作再单独编写一个对应的微程序。
5.4.2.2 微程序控制器的基本结构
指令传到指令寄存器,指令的操作码部分传到微地址形成部件产生初始微地址,传给顺序逻辑,顺序逻辑根据标志(程序表示寄存器)判断是否需要转移指令,然后将最终需要的地址传给微地址寄存器CMAR,地址译码器根据微地址寄存器移码将地址码转化为存储单元控制信号,定位到控制存储器中对应存储单元,取出微指令,将微指令传给微数据寄存器CMDR,该指令分为微操作码和微地址码(顺序控制),微地址码传给顺序逻辑计算下一条微指令位置。而微操作码给CPU内部和系统总线提供控制信号
5.4.2.3 控制存储器
一般的将取指周期设计为统一微程序,有时候也会将间址周期和中断周期设计为统一的微程序(但这种很少见)。
周期内指令一般顺序执行。上一条指令地址码存放下一条微指令地址(看图)
取指周期最后一条微指令的地址码具体如何让存放要看顺序逻辑的控制(不用关注)
间址周期最后一条微指令执行完转到执行周期,
中断周期和执行周期的最后一条指令的地址码存储的是取指周期第一条微指令的地址(看图!)
取指周期的微程序默认为公共的,所以对于某指令系统由n条指令,对应的微程序至少是n+1个(加上取指周期)。但对于一些指令系统如上图,间址周期和中断周期也是公共的部分,在这样的指令系统中,n个指令对应n+3个微程序。
5.4.2.4 微指令格式
我们研究的是水平型微指令,下面讲解微指令的操作码字段如何编码
5.4.2.5 微指令的编码方式
微指令的编码方式又称为微指令的控制方式,它是指如何对微指令的控制字段进行编码,以形成控制信号。编码的目标是在保证速度的情况下,尽量缩短微指令字长。
-
直接编码方式
在微指令的操作控制字段中,每一位代表一个微操作命令(某一位为1说明该控制信号有效)
优点:简单、直观,执行速度快,操作并行性好。
缺点:微指令字长过长,n个微命令就要求微指令的操作字段有n位,造成控存容量极大。
-
字段直接编码方式
将微指令的控制字段分成若干“段”,每段经译码后发出控制信号
微命令字段分段的原则:
-
互斥性微命令分在同一段内,相容性微命令分在不同段内。
-
每个小段中包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间。
-
一般每个小段还要留出一个状态,表示本字段不发出任何微命令。因此,当某字段的长度为3位时,对应7个选通信号,最多只能表示7个互斥的微命令,通常用000表示不操作。
优点:可以缩短微指令字长。
缺点:要通过译码电路后再发出微命令,因此比直接编码方式慢。
在直接编码方式中三个二进制位对应三个微操作命令,但在字段直接编码方式中三个二进制位我们可以利用译码器对应7个选通信号,缩短微指令长度。注意字段直接编码方式中有一个原则将互斥性微命令分在同一字段,如上图左下角的两个微操作命令就是互斥的,被分配到同一字段
例题:
某计算机的控制器采用微程序控制方式,微指令中的操作控制字段采用字段直接编码法,共有33个微命令,构成5个互斥类,分别包含7、3、12、5和6个微命令,则操作控制字段至少有多少位?
第1个互斥类有7个微命令,要留出1个状态表示不操作,所以需要表示8种不同的状态,故需要3个二进制位.。
以此类推,后面4个互斥类各需要表示4、13、6、7种不同的状态,分别对应2、4、3、3个二进制位。
故操作控制字段的总位数为3+2+4+3+3 = 15 位
-
-
字段间接编码方式(了解即可)
一个字段的某些微命令需由另一个字段中的某些微命令来解释,由于不是靠字段直接译码发出的微命令,故称为字段间接编码,又称隐式编码。
优点:可进一步缩短微指令字长。
缺点:削弱了微指令的并行控制能力,故通常作为字段直接编码方式的一种辅助手段。
5.4.2.6 微指令的地址形式方式
-
微指令的下地址字段指出(重点掌握)
微指令格式中设置一个下地址字段,由微指令的下地址字段直接指出后继微指令的地址,这种方式又称为断定方式。
-
根据机器指令的操作码形成
当机器指令取至指令寄存器后,微指令的地址由操作码经微地址形成部件形成。
-
增量计数器法(CMAR ) +1—→CMAR
-
分支转移
转移方式:指明判别条件;转移地址:指明转移成功后的去向。
-
通络测试网络
-
由硬件产生微程序入口地址(后面四种了解即可)
5.4.2.7 微程序控制的基本概念
-
微命令与微操作
微命令是微操作的控制信号,微操作是微命令的执行过程。
-
微指令与微周期
微指令是若干微命令的集合。
微周期通常指从控制存储器中读取一条微指令并执行相应的微操作所需的时间 -
主存储器与控制存储器
主存储器用于存放程序和数据,在CPU外部,用RAM实现;
控制存储器(CM)用于存放微程序,在CPU内部,用ROM实现。 -
程序与微程序
程序是指冬的有序集合,用于完成特定的功能;
微程序是微指令的有序集合,一条指令的功能由一段微程序来实现。 -
地址寄存器(MAR)与微地址寄存器(CMAR)
地址寄存器在CPU内部,控制单元外部,目的是访存。
微地址寄存器在CPU内部,控制单元内部,目的是访问控制存储器(存储微程序)
-
指令寄存器(IR)与微指令寄存器(CMDR)
一个存储指令,一个存储指令
5.4.2.8 微程序控制单元的设计
设计步骤:
-
分析每个阶段的微操作序列
-
写出对应机器指令的微操作命令及节拍安排
那么如何让读出微指令?Ad ( CMDR ) -> CMAR
如何转入下一周期?OP(IR)→微地址形成部件→CMAR
每一个微指完成都需要执行读取下一个微指令,周期执行完需要转到下一个周期所以修改后,共需要6条微指令,所以只用微程序需要增加取微指令的操作
-
确定微指令格式
-
编写微指令码点
总结来说步骤为:
5.4.2.9 微程序设计分类
-
静态微程序设计和动态微程序设计
静态–瞭微程序无需改变,采用ROM
动态–通过改变微指令和微程序改变机器指令,有利于仿真,采用 EPROM -
毫微程序设计
毫微程序设计的基本概念
- 微程序设计―用微程序解释机器指令
- 毫微程序设计用毫微程序解释微程序
- 毫微指令与微指令的关系好比微指令与机器指令的关系