微程序设计是用规整的存储逻辑代替不规则的硬接线逻辑来实现计算机控制器功能的技术。每一条指令启动一串微指令,这串微指令称为微程序。微程序存放在控制存储器中,修改控制存储器内容可以改变计算机的指令。

中文名

微程序设计

外文名

microprogram

定    义

由若干条微指令组成的序列执行方法

串行和并行两种方式

系    统

计算机

存    放

控制存储器中

微程序设计简介

编辑

语音

微程序是由若干条微指令组成的序列。在计算机中,一条机器指令的功能可由若干条微指令组成的序列来解释和执行,因此机器执行一条指令的过程,也就是执行一个相应的微程序的过程。

在计算机等数字系统中,控制器的典型功能是按时间节拍发出一定数量的控制信号,使系统完成若干基本操作,经过若干节拍后即完成一种相对完整的功能,如一条机器指令的功能。在一般的控制器中这些控制都是由硬接线逻辑来实现的,在微程序控制器中这些基本操作是由存在于控制存储器中的微程序段控制完成的,每个基本操作称为微操作。微程序段由若干条微指令组成。

微程序设计微程序设计方法

编辑

语音

在实际进行微程序设计时,应考虑尽量缩短微指令字长,减少微程序长度,提高微程序的执行速度。这几项指标是互相制约的,应当全面地进行分析和权衡。

(1)水平型微指令及水平型微程序设计

水平型微指令是指一次能定义并能并行执行多个微命令的微指令。它的并行操作能力强,效率高,灵活性强,执行一条机器指令所需微指令的数目少,执行时间短;但微指令字较长,增加了控存的横向容量,同时微指令和机器指令的差别很大,设计者只有熟悉了数据通路,才有可能编制出理想的微程序,一般用户不易掌握。由于水平型微程序设计是面对微处理器内部逻辑控制的描述,所以把这种微程序设计方法称为硬方法。

(2)垂直型微指令及垂直型微程序设计

垂直型微指令是指一次只能执行一个微命令的微指令。它的并行操作能力差,一般只能实现一个微操作,控制一两个信息传送通路,效率低,执行一条机器指令所需的微指令数目多,执行时间长;但是微指令与机器指令很相似,所以容易掌握和利用,编程比较简单,不必过多地了解数据通路的细节,且微指令字较短。由于垂直型微程序设计是面向算法的描述,所以把这种微程序设计方法称为软方法。

(3)混合型微指令

综合前述两者特点的微指令称为混合型微指令,它具有不太长的微指令字,又具有一定的并行控制能力,可高效地去实现机器的指令系统。[1]

微程序设计微指令的执行方式

编辑

语音

执行一条微指令的过程与执行机器指令的过程很类似。第一步将微指令从控存中取出,称为取微指令;对于垂直型微指令还应包括微操作码的译码时问。第二步执行微指令所规定的各个操作。微指令的执行方式可分为串行和并行两种方式。

(1)串行方式

在这种方式里,取微指令和执行微指令是顺序进行的,在一条微指令取出并执行之后,才能取下一条微指令。

一个微周期里,在取微指令阶段,CM工作,数据通路等待;而在执行微指令阶段,CM空闲,数据通路工作。

串行方式的微周期较长,但控制简单,形成后继微地卅所用的硬件设备较少。

(2)并行方式

为了提高微指令的执行速度,可以将取微指令和执行微指令的操作重叠起来,从而缩短微周期。因为这两个操作是在两个完全不同的部件中执行的,所以这种重叠是完全可行的。 ‘

在执行本条微指令的同时,预取下一条微指令。假设取微指令的时间比执行微指令的时间短,就以较长的执行时间作为微周期。

由于执行本条微指令与预取下一条微指令是同时进行的,若遇到某些需要根据本条微指令处理结果而进行条件转移的微指令,就不能并行地取出来。最简单的办法就是延迟一个微周期再取微指令。

除以上两种控制方式外,还有串、并行混合方式,即当待执行的微指令地址与现行微指令处理无关时,采用并行方式;当其受现行微指令操作结果影响时,则采用串行方式。[1]

微程序设计动态微程序设计

编辑

语音

通常,对应于一台计算机的指令系统有一系列固定的微程序。当微程序设计好之后,一般不允许改变而且也不便于改变,这样的设计叫做静态微程序设计。若一台计算机能根据不同应用目标的要求改变微程序,则这台计算机就具有动态微程序设计功能。

动态微程序设计的出发点是为了使计算机能更灵活、更有效地适应于各种不同的应用目标。例如,在不改变硬件结构的前提下,如果计算机配备了两套可供切换的微程序,一套是用来实现科学计算的指令系统,另一套是用来实现数据处理的指令系统,这样该计算机就能根据不同的应用需要随时改变和切换相应的微程序,以保证高效率地实现科学计算或数据处理。

动态微程序设计需要可写控制存储器(WCS)的支持,否则难以改变微程序的内容。由于动态微程序设计要求对计算机的结构和组成非常熟悉,所以这类改变微程序的方案也是由计算机的设计人员实现的。[1]

参考资料

1.

蒋本珊 编著,计算机组成原理 (第2版),清华大学出版社,2008.9,209-212

计算机组成微程序设计,微程序设计相关推荐

  1. 【考研408】计算机与组成原理笔记

    文章目录 计算机系统概述 计算机系统层次结构 计算机硬件的基本组成 计算机软件的分类 计算机的工作过程 计算机系统的多级层次结构 课后习题 计算机的性能指标 计算机的主要性能指标 几个专业术语 课后习 ...

  2. 计算机组成原理知识点汇总(考研用)——第五章:中央处理器

    计算机组成原理知识点汇总(考研用)--第五章:中央处理器  本文参考于<2021年计算机组成原理考研复习指导>(王道考研),<计算机组成原理> 思维导图: 文章目录 计算机组成 ...

  3. 计算机组成微程序设计,计算机组成原理微程序设计.doc

    文档介绍: 计算机组成原理微程序设计1.已知某机采用微程序控制方式,其存储器容量为512×48(位),微程序在整个控制存储器中实现转移,可控制微程序的条件共4个,微指令采用水平型格式,后继微指令地址采 ...

  4. 《计算机组成原理》课程设计报告——TEC-2实验系统——微程序设计

    课程设计任务书:<计算机组成原理>课程设计任务书--TEC-2实验系统--微程序设计 一.目的和要求 深入了解计算机各种指令的执行过程,以及控制器的组成,指令系统微程序设计的具体知识,进一 ...

  5. 《计算机组成原理》课程设计任务书——TEC-2实验系统——微程序设计

    一.目的和要求 深入了解计算机各种指令的执行过程,以及控制器的组成,指令系统微程序设计的具体知识,进一步理解和掌握动态微程序设计的概念:完成微程序控制的特定功能计算机的指令系统设计和调试. 二.实验环 ...

  6. 《计算机组成原理》课程设计---微程序设计

    <计算机组成原理>课程设计---微程序设计 一.目的和要求 二.实验环境 三.具体内容 1.分析TEC-2机的功能部件组成,分析TEC-2机支持的指令格式等. (一)AM2901芯片的内部 ...

  7. 计算机组成原理汇编微程序,计算机组成原理课程设计(微程序设计).doc

    . . <计算机组成原理>课程设计报告 --微程序设计 指导老师: 丁 伟 学院: 计算机学院 班级: 软件 1501 姓名: 学号: 一.项目任务 本项目的任务是针对第2章所述的Open ...

  8. 计算机课设微程序最大值,计算机组成原理课程设计(微程序设计).doc

    . . . .......... <计算机组成原理>课程设计报告 --微程序设计 指导老师: 丁 伟 学院: 计算机学院 班级: 软件 1501 姓名: 学号: 一.项目任务 本项目的任务 ...

  9. 计算机组成流水灯原理,计算机组成原理课程设计(微程序设计)

    <计算机组成原理课程设计(微程序设计)>由会员分享,可在线阅读,更多相关<计算机组成原理课程设计(微程序设计)(13页珍藏版)>请在人人文库网上搜索. 1.计算机组成原理课程设 ...

最新文章

  1. 自动化测试用java还是python_现在自动化测试用Java好还是Python好?
  2. Spring RESTful Web服务中的异常处理
  3. spring学习(30):定义第一个bean
  4. 调试Python的方式
  5. Go语言实战-nginx日志处理
  6. App测试如何进行?手机app测试要点
  7. 滑动窗口协议如何实现流量控制
  8. css如何实现自动换行,CSS实现自动换行的方法
  9. ubuntu图形界面乱码解决办法
  10. 全国计算机二级c语言程序题库,全国计算机二级C语言操作题题库
  11. 防汛抗洪中,北峰应急通信小系统如何筑起通信防线
  12. vs怎么配置c语言codemac,在Mac上使用vs-code快速上手c语言学习(入门文,老鸟退散)...
  13. 机器学习项目实战——10决策树算法之动物分类
  14. 浙大计算机专业是不是图灵班,浙大图灵班录取条件
  15. 如何快速查看IP地址和MAC地址
  16. 读过的laravel文章
  17. 洛谷题单 算法1-3 暴力枚举
  18. 艾韵智能红外盒子刷写飞阳物联平台红外固件
  19. 四川师范大学区域规划(3-区域发展的经济社会背景分析)90分以上版本
  20. SpringBoot-生成验证码

热门文章

  1. [网络安全提高篇] 一〇五.SQL注入之揭秘Oracle数据库注入漏洞和致命问题(联合Cream老师)
  2. C# 系统应用之清空回收站操作
  3. 2020年第十一届蓝桥杯 - 省赛 - Python大学组 - B.寻找2020
  4. 2019年第十届蓝桥杯 - 省赛 - C/C++大学B组 - H. 等差数列
  5. 编程求一个后缀表达式的值
  6. Java单层循环实现输出九九乘法表
  7. 【Java9】异常,finally,线程创建(卖票),线程同步(卖包子),线程练习
  8. 【Tiny4412】使用dnw烧写内核
  9. 【读书笔记】阅读的危险
  10. 每天一道LeetCode-----找到有多少条连续路径的和为给定值,路径不需要从根节点出发到达叶子节点