挑战408——组成原理(25)——微程序控制器

微程序逻辑采用存储逻辑实现,其基本思想为:把操作控制信号编制成微指令,存放在存储器中,运行的时候,从存储器中取出微指令,从而产生指令运行所需要的操作控制信号。所以所谓的微程序设计技术,实际上是用软件的方法来设计硬件的技术
目前,大多数机器采用微程序设计技术。
处理器的内部可以分为:控制器部件和执行部件。下面学习一些术语:

  • 微命令:控制器部件向执行部件发出的控制命令,是构成控制序列的最小单位,例如打开或者关闭控制门的电位信号。是各部件完成某个基本微操作的命令
  • 微操作:执行部件接受微命令后所进行的操作,和微操作是一一对应的。
    (实际上,微命令是微操作的控制信号,微操作是微命令的执行过程,微操作是执行部件中最基本的操作)
  • 微指令:若干微命令的集合,存放在一个控制存储器中,而存放微指令的控制存储器的单元成为微地址。在同一CPU周期内,并行执行的一组微命令,存储在控制存储器上面,称为一条微指令
  • 微周期:从读取一条微指令,到执行执行完毕所需要的时间称为微周期。
  • 控制存储器:之前介绍的主存,主要用来存放程序和数据,位于CPU的外部,使用的是RAM。而控制存储器,则主要用于存储微程序,位于Cpu内部,采用的是ROM
  • 微程序:实现一条机器指令功能的微指令序列。

下面说说他们之间的相互关系:
指令系统 = 所有机器指令的集合;
一条机器指令 = 一个微程序
微程序 = 若干微指令
微指令 = 一组微命令
微命令 ->微操作
程序与微程序:程序由机器指令构成,编写好以后放到主存中运行,可以改写。而微程序由微指令构成,事先编写好在CM(控制存储器)中,一般是不可改写的。

微指令的构成

微指令由操作控制字段跟顺序控制字段构成。

  • 操作控制字段:又称微操作码字段,用以产生某一步操作所需要的各个微操作所需的各个控制信号
  • 顺序控制字段:又称微地址码字段,用来控制产生下一条将要执行的微指令的地址。(类似于PC)

在这里插入图片描述
上图中的控制存储器是微程序控制单元的核心,CMAR中存放着欲读出的微指令地址,而顺序逻辑则用于形成下一条微指令。

微指令的控制方式

微指令的编码方式,又称为微指令的控制方式,它是指如何对微指令的控制字段进行编码,以形成控制信号。目前主要有如下方式:

  1. 直接编码方式
    操作控制字段中的各位分别可以直接控制计算机,不需要进行译码。其中每一位都代表一个微操作命令,例如控制字段中的某位为1,则代表着控制信号有效,0代表无效。直接编码方式的格式图如下:
    在这里插入图片描述
    优点:简单直观,执行速度快;微命令的并行控制能力强,编制的微程序短。
    缺点:微指令字太长。空间不能充分利用,比如如果是微命令有N个,那么微指令的控制字段就要N位,这样就会造成控存容量极大。
  2. 字段直接编码方式
    将操作控制字段分为若干个小段,每段内采用最短编码法(互斥微命令),段与段之间采用直接编码方式(兼容微命令)。这句话比较难理解。
    举个例子,例如用3位二进制译码后代码可以表示7位互斥的微命令,留出的一位,用作状态码,表示不发出微命令,那么对比直接编码,采用7位来表示,减少了4位。
    在设计上:互斥性的微命令分在同一段内,兼容性的微命令分在不同段内
    在这里插入图片描述
    优点:可以避免互斥,使指令字大大缩短
    缺点:增加了译码电路,使微程序的执行速度减慢
  3. 混合编码方式
    将前两种结合在一起,兼顾两者特点。一个字段的某些编码不能独立地定义某些微命令,而需要与其他字段的编码来联合定义
微指令的地址形成

微指令的地址形成主要有两个方式:

  1. 直接由微指令的顺序控制字段(或者称为下地址)给出。
  2. 根据指令的操作码形成(一般由增量计数法,分支转移法,硬件直接产生)
微指令格式

微指令的格式与微指令的编码方式有关,通常分为水平型跟垂直型微指令。
水平型微指令的特点是,一次能定义并执行多个并行操作的微命令,从编码方式来看,直接编码,字段直接编码,以及混合编码都属于水平类型。
垂直型微指令的特点是,采用类似机器指令操作码方式,在微指令字段中,设置微操作码字段,由微操作码规定微指令功能,不过这种微指令并不强调并行控制功能。
例如寄存器数据传送型的微指令格式:

000元寄存器目的寄存器其他

前面的000表是微操作码。

两者之间的比较:

  • 水平型微指令并行操作能力强,效率高,灵活性强
  • 水平型微指令执行一条指令的时间短,并行好
  • 水平型微指令字长较长,微程序短;垂直型指令字长短,微程序长
  • 垂直型与指令相似,易于编写。

两种控制器之间的对比:
在这里插入图片描述

  • 17
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值