前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >5.4.3微程序控制器

5.4.3微程序控制器

作者头像
week
发布2018-08-24 16:30:22
1.4K0
发布2018-08-24 16:30:22
举报
文章被收录于专栏:用户画像用户画像用户画像

微程序控制器采用存储逻辑实现,也就是把微操作信号代码化,使每条机器指令转化成为一段微程序并存入一个专门的存储器(控制存储器)中。微操作控制信号由微指令产生。

1.微程序控制的基本概念

微程序设计思想就是将每一条机器指令编写成一个微程序,每一个微程序包含若干条微指令,每一条微指令对应一个或几个微操作命令。这些微程序可以存到一个控制存储器中,用寻址用户程序机器指令的办法寻址每个微程序中的微指令。

(1)微命令与微操作

一条机器指令可以分解成一个微操作序列,这些微操作是计算机中最基本的、不可再分解的操作。在微程序控制的计算机中,将控制部件向执行部件发出的各种控制命令称为微命令,它是构成控制序列的最小单位。例如打开或关闭某个控制门的电位信号、某个寄存器的打入脉冲等。微命令和微操作是一一对应的。微命令是微操作的控制信号,微操作是微命令的执行过程。

微命令和微操作有相容性和互斥性之分。相容性微命令是指那些可以同时产生、共同完成某一些微操作的微命令;而互斥性微命令是指在机器中不允许同时出现的微命令。相容和互斥都是相对的,一个微命令和一些微命令相容,和另一些微命令互斥。

注意:在组合逻辑控制器中也存在微命令与微操作这两个概念,它们并非只是微程序控制器的专用概念。

(2)微指令与微周期

微指令是若干个微命令的集合。存放微指令的控制存储器的单元地址称为微地址。一条微指令通常包含两大部分信息: ①操作控制字段,又称微操作码字段,用于产生某一步操作所需的各种操作控制信号。

②顺序控制字段,又称微地址字段,用于控制下一条要执行的微指令地址。

微周期通常指从控制存储器中读取一条微指令并执行相应的微操作所需要的时间。

(3)主存储器和控制存储器

主存储器用于存放程序和数据,在CPU外部,用RAM实现;

控制存储器(CM)用于存放微程序,在CPU内部,用ROM实现。

(4)程序与微程序

程序是指令的有序集合,用于完成特定的功能。

微程序是微指令的有序集合,一条指令的功能由一段微程序来实现。

微程序和程序是两个不同的概念。

微程序是由微指令组成,用于描述机器指令。微程序实际上是机器指令的实时解释器,是由计算机设计者事先编好并存放在控制存储器中的,一般不提供给用户的。对于程序员来说,计算机系统中微程序的结构和功能是透明的,无须知道。

而程序最终由机器指令组成,由软件设计人员实现编制好并存放在主存或辅存中的。

①地址寄存器(MAR):用于存放主存的读、写地址。

②微地址寄存器(CMAR):用于存放控存的读、写微指令的地址。

③指令寄存器(IR):用于存放从主存中读出的指令。

④微指令寄存器(CMDR或uIR):用于存放从控存(CM)中读出的微指令。

2.微程序控制器组成和工作过程

(1)微程序控制器的基本组成

①微地址形成部件:用于产生初始微地址和后继微地址,以保证微指令的连续指令。

②微地址寄存器:接受微地址形成部件送来的微地址,为在CM中读取微指令做准备。

③控制存储器:它是为微程序控制器的核心部件,用于存放各指令对应的微程序,控制存储器可以用只读存储器ROM构成。

④微指令寄存器:用于存放从CM中取出的微指令,它的位数同微指令字长相等。

(2)微程序控制器的工作过程

微程序控制器的工作过程实际上是在程序控制器的控制下计算机执行机器指令的过程,这个过程可以描述如下: ①执行取微指令公共操作。具体的执行是:在机器开始运行时,自动将取指微程序的入口地址送入CMAR,并从CM中读出相应的微指令送入CMDR。取指微程序的入口地址一般为CM的0号单元,当取指微程序执行完后,从主存中取出的机器指令就已存入指令寄存器中了。

②由机器指令的操作码字段通过微地址形成部件产生该机器指令所对应的微程序的入口地址,并送入CMAR。

③从CM中逐条取出对应的微指令并执行。

④执行完对应于一条机器指令的一条微程序后又回到取指微程序的入口地址,继续执行第一步,以完成取下一条机器指令的公共操作。

以上是一条机器指令的执行过程,如此周而复始,直到整个程序执行完毕为止。

(3)微程序和机器指令

通常,一条机器指令对应一个微程序。由于任何一条机器指令的取指令操作都是相同的,因此,可将取指令操作的微命令统一变成一个微程序,这个微程序只负责将指令从主存单元中取出送至指令寄存器中。

此外,也可以编出对应间址周期的微程序和中断周期的微程序。这样,控制存储器中的微程序个数应为机器指令数再加上对应取指、间址和中断中期等共用的的微程序数。

注意:若指令系统中的具有n种机器指令,则控制存储器中的微程序数至少是n+1个(1个为公共的取指微程序)。

3.微指令的编码方式

微指令的编码方式又称为微指令的控制方式,它是指如何对微指令的控制字段进行编码,以形成控制信号。编码的目标是在保证速度的情况下,尽量缩短微指令字长。

(1)直接编码(直接控制)方式(类似于一级页表)

直接编码无须进行译码,微指令的微命令字段中每一位都代表一个微命令。设计微指令时,选用或不选用某个微命令,只要将表示该微命令的对应位设置成1或0即可。每一个微命令对应控制数据通路中的一个微操作。

这种编码的优点是简单、直观,执行速度快,操作并行性好。其缺点是微指令字长过长,n个微命令就要求微指令的操作字段有n位,造成控存容量极大。

(2)字段直接(译码)编码方式(类似于二级页表)

将微指令的微命令字段分成若干小字段,把互斥性微命令组合在同一字段中,把相容性微命令组合在不同的字段中,每个字段独立编码,每种编码代表一个微命令且各字段编码含义单独定义,与其他字段无关,这就是字段直接编码方式。

这种方式可以缩短微指令字长,但因为要通过译码电路后再发出微命令,因此比直接编码方式慢。

微命令字段分段的原则: ①互斥性微命令组合在同一字段中,把相容性微命令组合在不同的字段中

②每个小段中包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间

③一般每个小段还要留出一个状态,表示本字段不能发出任何微命令。因此,当某字段的长度为3位时,最多只能表示7个互斥的微命令,通常用000表示不操作。

(3)字段间接(译码)编码方式(类似于多级页表)

一个字段的某些微命令需另一个字段中的某些微命令来解释,由于不是要字段直接译码发出的微命令,故称为字段间接编码,又称隐式编码。这种方式可进一步缩短微指令字长,但因削弱了微指令的并行控制能力,因此,通常作为字段直接编码方式的一种辅助手段。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年10月08日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档