微程序控制器与硬布线控制器相比较,除在微 *** 作控制信号的形成上有较大的区别,其他没有本质的区别。微程序控制器的控制功能是在存放微程序存储器和存放当前正在执行的微指令的寄存器直接控制下实现的,而硬布线控制器的控制功能则由逻辑门组合实现。
在微指令的控制字段中,每一位代表一个微命令,在设计微指令时,是否发出某个微命令,只要将控制字段中相应位置成"1"或"0",这样就可打开或关闭某个控制门,这就是直接控制法
在63节中所讲的就是这种方法但在某些复杂的计算机中,微命令甚至可多达三四百个,这使微指令字长达到难以接受的地步,并要求机器有大容量控制存储器,为了改进设计出现了以下各种编译法
641 微指令的编译法(编码译码方法)(2)
2字段直接编译法
在计算机中的各个控制门,在任一微周期内,不可能同时被打开,而且大部分是关闭的(相应的控制位为"0")所谓微周期,指的是一条微指令所需的执行时间如果有若干个(一组)微命令,在每次选择使用它们的微周期内,只有一个微命令起作用,那么这若干个微命令是互斥的
例如,向主存储器发出的读命令和写命令是互斥的;又如在ALU部件中,送往ALU两个输入端的数据来源往往不是唯一的,而每个输入端在任一微周期中只能输入一个数据,因此控制该输人门的微命令是互斥的
选出互斥的微命令,并将这些微命令编成一组,成为微指令字的一个字段,用二进制编码来表示, 就是字段直接编译法
641 微指令的编译法(编码译码方法)(3)
例如,将7个互斥的微命令编成一组,用三位二进制码分别表示每个微命令,那么在微指令中,该字段就从7位减成3位,缩短了微指令长度而在微指令寄存器的输出端,为该字段增加一个译码器,该译码器的输出即为原来的微命令
641 微指令的编译法(编码译码方法)(4)
字段长度与所能表示的微命令数的关系如下:
字段长度 微命令数
2位 2~3
3位 4~7
4位 8~15
一般每个字段要留出一个代码,表示本段不发出任何微命令,因此当字段长度为3位时,最多只能表示7个互斥的微命令,通常代码000表示不发微命令
641 微指令的编译法(编码译码方法)(5)
3字段间接编译法
字段间接编译法是在字段直接编译法的基础上,进一步缩短微指令字长的一种编译法
如果在字段直接编译法中,还规定一个字段的某些微命令,要兼由另一字段中的某些微命令来解释,称为字段间接编译法
本方法进一步减少了指令长度,但很可能会削弱微指令的并行控制能力,因此通常只作为直接编译法的一种辅助手段
641 微指令的编译法(编码译码方法)(6)
字段A(3位)的微命令还受字段B控制,当字段B发出b1微命令时,字段A发出a1,1,a1,2,…,a1,7中的一个微命令;而当字段B发出b2微命令时,字段A发出a2,1,a2,2,…,a2,7中的一个微命令,仅当A为000时例外,此时什么控制命令都不产生
641 微指令的编译法(编码译码方法)(7)
4常数源字段E
在微指令中,一般设有一个常数源字段E就如指令中的直接 *** 作数一样E字段一般仅有几位,用来给某些部件发送常数,故有时称为发射字段
该常数有时作为 *** 作数送入ALU运算;有时作为计算器初值,用来控制微程序的循环次数等
642 微程序流的控制 (1)
当前正在执行的微指令,称为现行微指令,现行微指令所在的控制存储器单元的地址称现行微地址,现行微指令执行完毕后,下一条要执行的微指令称为后继微指令,后继微指令所在的控存单元地址称为后继微地址
所谓微程序流的控制是指当前微指令执行完毕后,怎样控制产生后继微指令的微地址
与程序设计相似,在微程序设计中除了顺序执行微程序外还存在转移功能和微循环程和微子程序等,这将影响下址的形成
下面介绍几种常见的产生后继微指令地址的方法
642 微程序流的控制 (2)
(1)以增量方式产生后继微地址
在顺序执行微指令时,后继微地址由现行微地址加上一个增量(通常为1)形成的;而在非顺序执行时则要产生一个转移微地址
机器加电后执行的第一条微指令地址(微程序入口)来自专门的硬件电路,控制实现取令 *** 作,然后由指令 *** 作码产生后继微地址接下去,若顺序执行微指令,则将现行微地址主微程序计数器( PC中)+1产生后继微地址;若遇到转移类微指令,则由 PC与形成转移微地址的逻辑电路组合成后继微地址
642 微程序流的控制 (3)
642 微程序流的控制 (4)
(2)增量与下址字段结合产生后继微地址
将微指令的下址字段分成两部分:转移控制字段BCF和转移地址字段BAF,当微程序实现转移时,将BAF送 PC,否则顺序执行下一条微指令( PC+1)
执行微程序条件转移时,决定转移与否的硬件条件有好几种例如,"运算结果为零","溢出","已完成指定的循环次数"等
我们假设有八种转移情况,定义了八个微命令(BCF取3位),在图中设置计数器CT用来控制循环次数如在执行乘(或除)法指令时,经常采用循环执行"加,移位"(或减,移位)的方法,指令开始执行时,在CT中置循环次数)每执行一次循环,计数器减1,当计数器为零时结束循环又考虑到执行微子程序时,要保留返回微地址,因此图中设置了一个返回寄存器RR
微程序设计技术
微程序设计的关键是如何确定微指令的结构(包括微指令编码和微地址形成方法)。
微指令设计追求的目标 (1) 有利于缩短微指令字长度;
(2) 有利于减小控制存储器的容量;
(3) 有利于提高微程序的执行速度;
(4) 有利于对微指令的修改;
(5) 有利于微程序设计的灵活性。
一、微指令编码
(1)直接表示法---微指令 *** 作控制宇段中的每一位代表一个微命令。
· 优点:简单直观,其输出可直接用于控制;
· 缺点:微指令字较长,因而使控制存储器容量较大。
(2)编码表示法---把一组相斥性的微命令信号组成一个小组(即一个字段),然后通过小组(字段)译码器产生 *** 作控制信号。
· 优点:可以用较少的二进制信息位表示较多的微命令信号,使微指令字长大大缩短;
· 缺点:由于增加了译码延时,微程序的执行速度略有减慢。
(3)混合表示法---把直接表示法与编码表示法混合使用,以便综合考虑微指令字长、灵活性和执行微程序速度等方面的要求。
微程序控制器中,机器指令与微指令的关系如下。
微程序控制器中,机器指令与微指令的关系是每一条机器指令由若干微指令组成的微程序来解释执行。在一个CPU周期中,一组实现一定功能的微命令的组合构成一条微指令,有序的微指令序列构成一段微程序,微程序的作用是实现一条对应的机器指令。
机器指令是CPU能直接识别并执行的指令,它的表现形式是二进制编码。机器指令通常由 *** 作码和 *** 作数两部分组成, *** 作码指出该指令所要完成的 *** 作,即指令的功能, *** 作数指出参与运算的对象,以及运算结果所存放的位置等。机器指令是CPU能直接识别并执行的指令,它的表现形式是二进制编码。机器指令通常由 *** 作码和 *** 作数两部分组成, *** 作码指出该指令所要完成的 *** 作,即指令的功能, *** 作数指出参与运算的对象,以及运算结果所存放的位置等。
MCU(Micro Control Unit),叫微控制器,是指随着大规模集成电路的出现及其发展,将计算机的CPU、RAM、ROM、定时计数器和多种I/O接口集成在一片芯片上,形成芯片级的芯片,比如51,AVR、Cortex-M这些芯片,内部除了CPU外还有RAM、ROM,可以直接加简单的外围器件(电阻,电容)就可以运行代码了。而如x86、ARM这些MPU就不能直接放代码了,它只不过是增强版的CPU,所以得添加RAM,ROM。
以上就是关于什么是微程序设计,它与硬布线逻辑有什么区别全部的内容,包括:什么是微程序设计,它与硬布线逻辑有什么区别、微程序设计的基本原理是什么、微程序设计的基本原理是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)