微程序控制器的设计

2024-08-24 07:12
文章标签 设计 控制器 微程序

本文主要是介绍微程序控制器的设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

 一、微程序控制器的原理

1.模仿高级语言思想到微程序: 

2.采用存储程序思想到CU内构造: 

 3.微程序执行过程:

二、微指令的设计

1.前置概念: 

相容性微命令:

互斥性微命令:

2.微指令格式 

水平型微指令

(1)直接编码(直接控制)方式:

(2)字段直接编码方式:

(3)字段间接编码方式:

垂直型微指令

混合型微指令

 3.微指令的地址形成方式:

三、微程序控制单元的设计 

1.设计步骤:

(1).分析每个阶段的微操作序列

(2).写出对应机器指令的微操作命令及节拍安排

(3).确定微指令格式

(4).编写微指令码点

2.静态和动态微程序设计

3.毫微程序设计

四、硬布线与微程序的比较


 

 一、微程序控制器的原理

1.模仿高级语言思想到微程序: 

        首先我们来看高级语言转换到汇编语言,可以知道高级语言是可以被翻译成一条条的汇编指令序列的。 

        每条指令对应不同的机器周期,不同的机器周期对应着不同的微操作,CU就是发出微命令(每个微命令都对应一个微指令)来统筹CPU内部的执行工作的。 

        基于高级语言的思想,我们可以将多个微操作整合成一个微指令,而多个微指令整合成一个微程序,这个微程序就负责完成每条指令的执行。 

        其中的关系如下图示:

Tips:物理上,取指周期、执行周期看起来像是两个微程序但逻辑上应该把它们看作一个整体。因此,“一条指令对应一个微程序”的说法是正确的 

取指,间址,执行,中断四个微程序段应该看作一个微程序。

则指令系统中有N条机器指令,CM中就有N个微程序,有N+1个微程序段。 

2.采用存储程序思想到CU内构造: 

采用“存储程序”的思想,CPU出厂前将所有指令的“微程序存入“控制器存储器CM”中 

模仿CPU的取指执行的过程,在CU内部进行构造 :

微地址形成部件产生初始微地址和后继微地址,以保证微指令的连续执行。
顺序逻辑标志:根据指令地址码的寻址特征位判断是否要跳过间址周期
CLK:根据中断信号判断是否进入中断周期
CMAR别名:μPC,微地址寄存器,接收微地址形成部件送来的微地址,为在CM中读取微指令作准备。
地址译码将地址码转化为存储单元控制信号。
控制存储器CM用于存放各指令对应的微程序,控制存储器可用只读存储器ROM构成
CMDR别名:μIR,用于存放从CM中取出的微指令,它的位数同微指令字长相等。

 3.微程序执行过程:

1CPU中的IR将指令的OP(操作码)部分送入CU
2CU中的微地址形成部件接收并产生初始微地址。
3微地址形成部件将产生的初始微地址送入顺序逻辑判断,结合PSW和CLK判断是否要进行间址或中断。
4顺序逻辑判断后的地址送入CMAR
5CMAR将地址送入地址译码器
6地址译码器处理后的地址送入控制存储器CM
7控制存储器CM将微指令送入CMDR
8CMDR将微指令的操作控制部分送出CU,CU以此发送控制信号
9CMDR将微指令的顺序控制部分送微地址形成部件
10微地址形成部件产生下一条微指令的地址。
至此,循环往复就完成了微程序的执行。

二、微指令的设计

微指令的具体格式应该怎么设计?
如何根据微指令发出相应的微命令?
微命令与微操作一一对应,一个微命令对应一根输出线

有的微命令可以并行执行,因此一条微指令可以包含多个微命令

1.前置概念: 

相容性微命令:

 可以并行完成。

互斥性微命令:

 不允许并行完成

2.微指令格式 

水平型微指令

基本格式
描述一条微指令能定义多个可并行的微命令。
优点微程序短,执行速度快;
缺点微指令长,编写微程序较麻烦。
(1)直接编码(直接控制)方式:

在微指令的操作控制字段中,每一位代表一个微操作命令 

某位为“1”表示该控制信号有效

优点:简单、直观,执行速度快,操作并行性好。

缺点:微指令字长过长,n个微命令就要求微指令的操作字段有n位,造成控存容量极大。 

 

(2)字段直接编码方式:


将微指令的控制字段分成若干“段”,每段经译码后发出控制信号微命令字段分段的原则:
① 互斥性微命令分在同一段内,相容性微命令分在不同段内。

        例如:(PC)→MAR和(PC)+1→PC互斥, (PC)→MAR和1→R相容。

②每个小段中包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间。
③ 一般每个小段还要留出一个状态,表示本字段不发出任何微命令。因此,当某字段的长度为3位时,最多只能表示7个互斥的微命令,通常用000表示不操作。

优点:可以缩短指令字长。

缺点:要通过译码电路再发出微命令,因此比直接编码方式慢。

例题: 

某计算机的控制器采用微程序控制方式,微指令中的操作控制字段采用字段直接编码法,共有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位。 

(3)字段间接编码方式:

一个字段的某些微命令需由另一个字段中的某些微命令来解释由于不是靠字段直接译码发出的微命令,故称为字段间接编码,又称隐式编码。、

优点:可进一步缩短微指令字长。

缺点:削弱了微指令的并行控制能力,故通常作为字段直接编码方式的一种辅助手段。 

垂直型微指令

基本格式
描述一条微指令只能定义一个微命令,由微操作码字段规定具体功能
优点:微指令短、简单、规整,便于编写微程序!
缺点:微程序长,执行速度慢,工作效率低

混合型微指令

描述在垂直型的基础上增加一些不太复杂的并行操作。
微指令较短,仍便于编写;微程序也不长,执行速度加快。

 3.微指令的地址形成方式:

微指令的下地址字段指出微指令格式中设置一个下地址字段,由微指令的下地址字段直接指出后继微指令的地址,这种方式又称为断定方式
根据机器指令的 操作码形成当机器指令取至指令寄存器后,微指令的地址由操作码经微地址形成部件形成。
增量计数器(CMAR)+1→CMAR
分支转移 

转移方式:指明判别条件;转移地址:指明转移成功后的去向。

通过测试网络

内部电路网络给出:

由硬件产生微程序入口地址第一条微指令地址由专门硬件产生(用专门的硬件记录取指周期微程序首地址)
中断周期硬件产生中断周期微程序首地址(用专门的硬件记录)

 例题:

三、微程序控制单元的设计 

1.设计步骤:


(1).分析每个阶段的微操作序列

和硬布线一样:(取指、间址、执行、中断四个阶段) 

 确定哪些指令在什么阶段、在什么条件下会使用到的微操作

取指:

PC→MAR
1→R
M(MAR)→MDR
MDR →IR
OP(IR)→ID
(PC)+1→PC

间址:

 Ad(IR)→MAR
1→R
M(MAR)→MDR
MDR → Ad(IR)

执行:

CLA0→ACclear ACC指令
ACC清零
LDA X Ad (IR)→ MAR取数指令,把X所指内容,取到ACC
1→R
M(MAR)→MDR
MDR→AC
JMP X Ad (IR)→PC无条件转移
BAN XA0·Ad (IR )+A0·(PC)→PCBranch ACC Negative
条件转移,当AC为负时转移

 中断:

步骤微指令描述
1. 保存当前程序计数器(PC)内容MAR ← PC将当前的程序计数器(PC)内容传送到存储地址寄存器(MAR)。
M[SP] ← MAR将MAR中的内容(即PC值)存储到堆栈指针(SP)指向的内存地址。
SP ← SP - 1将堆栈指针减1,指向下一个空闲堆栈位置。
2. 保存CPU状态(例如标志寄存器)MAR ← FLAGS将当前标志寄存器(FLAGS)内容传送到MAR。
M[SP] ← MAR将FLAGS中的内容存储到堆栈中。
SP ← SP - 1堆栈指针减1,指向下一个空闲堆栈位置。
3. 加载中断向量地址PC ← Interrupt_Vector_Address将中断向量地址加载到程序计数器(PC)中,这样CPU将跳转到对应的中断服务程序。
4. 转到中断服务程序的入口地址MAR ← PC将新的PC内容传送到MAR,以便从内存中读取中断服务程序的第一条指令。
IR ← M[MAR]将中断服务程序的第一条指令从内存读取到指令寄存器(IR)。
PC ← PC + 1程序计数器递增,准备执行下一条指令。
5. 执行中断服务程序-CPU现在开始按照从中断向量表中得到的地址来执行中断服务程序。
6. 恢复原来的程序状态SP ← SP + 1增加堆栈指针以指向之前存储的标志寄存器的内容。
FLAGS ← M[SP]将标志寄存器的值恢复到FLAGS寄存器中。
SP ← SP + 1增加堆栈指针以指向之前存储的PC内容。
PC ← M[SP]恢复程序计数器的值,使得中断返回后继续执行中断前的程序。

(2).写出对应机器指令的微操作命令及节拍安排

(1)写出每个周期所需要的微操作(参照硬布线)

例如取指周期:

(2)补充微程序控制器特有的微操作:

还需考虑如何读出这3条微指令以及如何转入下一个机器周期:

Ad(CMDR)→CMAR用当前微指令的下地址表示找到下一条微指令
OP(IR)→微地址形成部件→CMAR转入下一个机器周期

因此需要进行补充:
        a.取指周期:

                Ad(CMDR)→CMAR(指明下一条微指令地址)

                OP(IR)→CMAR(转入下一个周期)

        b.执行周期:

                Ad(CMDR)→CMAR(用于执行下一个微指令)

 


(3).确定微指令格式

        根据微操作个数决定采用何种编码方式,以确定微指令的操作控制字段的位数。根据CM中存储的微指令总数,确定微指令的顺序控制字段的位数。最后按操作控制字段位数和顺序控制字段位数就可确定微指令字长


(4).编写微指令码点

        根据操作控制字段每一位代表的微操作命令,编写每一条微指令的码点。

        也就是每个状态对应一个控制线。

2.静态和动态微程序设计

 静态微程序无需改变,采用ROM
 动态通过改变微指令和微程序 改变机器指令 有利于仿真,采用EPROM


3.毫微程序设计


        毫微程序设计的基本概念
        微程序设计用微程序解释机器指令
        毫微程序设计 用 亳微程序解释微程序
        毫微指令与微指令的关系好比 微指令与机器指令 的关系

四、硬布线与微程序的比较

微程序控制器硬布线控制器
工作原理微操作控制信号以微程序的形式存放在控制存储器中,执行指令时读出即可微操作控制信号由组合逻辑电路根据当前的指令码、状态和时序,即时产生
执行速度
规整性较规整烦琐、不规整
应用场合CISC CPURISC CPU
易扩充性易扩充修改困难

这篇关于微程序控制器的设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1101802

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

SprinBoot+Vue网络商城海鲜市场的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者,全网30w+

单片机毕业设计基于单片机的智能门禁系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订

Spring的设计⽬标——《Spring技术内幕》

读《Spring技术内幕》第二版,计文柯著。 如果我们要简要地描述Spring的设计⽬标,可以这么说,Spring为开发者提供的是⼀个⼀站式的轻量级应⽤开发框架(平台)。 作为平台,Spring抽象了我们在 许多应⽤开发中遇到的共性问题;同时,作为⼀个轻量级的应⽤开发框架,Spring和传统的J2EE开发相⽐,有其⾃⾝的特点。 通过这些⾃⾝的特点,Spring充分体现了它的设计理念:在

开题报告中的研究方法设计:AI能帮你做什么?

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 大家都准备开题报告了吗?研究方法部分是不是已经让你头疼到抓狂? 别急,这可是大多数人都会遇到的难题!尤其是研究方法设计这一块,选定性还是定量,怎么搞才能符合老师的要求? 每次到这儿,头脑一片空白。 好消息是,现在AI工具火得一塌糊涂,比如ChatGPT,居然能帮你在研究方法这块儿上出点主意。是不

创业者该如何设计公司的股权架构

本文来自七八点联合IT橘子和车库咖啡的一系列关于设计公司股权结构的讲座。 主讲人何德文: 在公司发展的不同阶段,创业者都会面临公司股权架构设计问题: 1.合伙人合伙创业第一天,就会面临股权架构设计问题(合伙人股权设计); 2.公司早期要引入天使资金,会面临股权架构设计问题(天使融资); 3.公司有三五十号人,要激励中层管理与重要技术人员和公司长期走下去,会面临股权架构设计问题(员工股权激

分布式文件系统设计

分布式文件系统是分布式领域的一个基础应用,其中最著名的毫无疑问是 HDFS/GFS。如今该领域已经趋向于成熟,但了解它的设计要点和思想,对我们将来面临类似场景 / 问题时,具有借鉴意义。并且,分布式文件系统并非只有 HDFS/GFS 这一种形态,在它之外,还有其他形态各异、各有千秋的产品形态,对它们的了解,也对扩展我们的视野有所俾益。本文试图分析和思考,在分布式文件系统领域,我们要解决哪些问题、有

(入门篇)JavaScript 网页设计案例浅析-简单的交互式图片轮播

网页设计已经成为了每个前端开发者的必备技能,而 JavaScript 作为前端三大基础之一,更是为网页赋予了互动性和动态效果。本篇文章将通过一个简单的 JavaScript 案例,带你了解网页设计中的一些常见技巧和技术原理。今天就说一说一个常见的图片轮播效果。相信大家在各类电商网站、个人博客或者展示页面中,都看到过这种轮播图。它的核心功能是展示多张图片,并且用户可以通过点击按钮,左右切换图片。