首页 > 编程语言 >二、微程序设计

二、微程序设计

时间:2023-06-18 20:23:18浏览次数:43  
标签:微指令 编码 CMDR 微程序 CMAR 地址 程序设计

二、微程序设计

组合方式进行控制器的设计结构清晰,简单明了,但是电路庞杂,每一个控制信号都需要设计单独的电路来完成控制信号的生成,修改起来十分困难,因此产生了这种设计容易,修改容易的控制器设计方法

1.微程序设计思想

一条机器指令对应一个微程序,一个微程序包含多个微指令,一个微指令包含一条或多条微操作命令,微指令具有先后顺序,所有的微指令存储在ROM(制度存储器中)

2.微程序控制单元的基本框图及工作原理

微程序控制单元的基本框图

原理分析:
1)取指阶段
M->CMAR
CM(CMAR)->CMDR
由CMDR发命令
形成下条微指令地址 M+1
Ad(CMDR)->CMAR
CM(CMAR)->CMDR
由CMDR发命令
形成下条微指令地址 M+2
Ad(CMDR)->CMAR
由CMDR发命令
2)执行阶段 执行LDA微程序
OP(IR)->微地址形成部件->CMAR
CM(CMAR)->CMDR
由CMDR发命令
Ad(CMDR)->CMAR
CM(CMAR)->CMDR
由CMDR发命令
Ad(CMDR)->CMAR
CM(CMAR)->CMDR
由CMDR发命令
Ad(CMDR)->CMAR 最后跳转回M地址,即取指阶段的首地址
3)取指阶段 与1)相同
全部微指令存在CM中,程序执行过程中只需读出

关键:

  • 微指令的操作控制字段如何形成微操作命令
  • 后续的地址如何形成

3.微指令的编码方式(控制方式)

  1. 直接编码方式(直接控制)
    在微操作的操作控制字段中,每一位代表一个微操作命令,某位为1表示改控制信号有效
    这种方式速度最快,但是微指令的操作控制字段会很长
  2. 字段直接编码方式
    将微指令的控制字段分成若干段
    每段经移码后发出控制信号
    每个字段中的命令是互斥的,缩短了微指令字长,增加了译码时间
    显式编码,微程序执行速度较慢
  3. 字段间接编码方式
    控制信号的输出不仅和该段的译码结果相关,还与其他段的译码结果相关,叫做隐式编码
  4. 混合编码
    直接编码和字段编码(直接和间接)混合使用
  5. 其他

4.微指令序列地址的形成

  1. 微指令的下地址字段指出
  2. 根据机器指令的操作码形成
  3. 增量计数器 (CMAR)+1->CMAR
  4. 分支转移
    微指令组成: 操作控制地段|转移方式|转移地址
    转移方式 指明判别条件
    转移地址 指明转移成功后的去向
  5. 通过测试网络,测试上调指令的下一条指令是否是通的
  6. 由硬件产生微程序入口地址
    第一条微指令地址 由专门硬件产生
    中断周期 由硬件产生中断周期微程序首地址
  7. 后续微指令地址形成方式原理图
    后续微指令地址形成方式原理图

5. 微指令的格式

  1. 水平型微指令
    一次能定义并执行多个并行操作
    如:直接编码、字段直接编码、字段间接编码、直接和字段混合编码
    2.垂直型微指令
    类似机器指令操作码的方式,用于控制硬件操作,操作比较复杂
    由微操作码字段规定微指令的功能
    3.两种微指令格式的比较
    1)水平型微指令比垂直型微指令并行操作能力强,灵活性强
    2)水平型微指令执行一条机器指令所要的伪指令数目少,速度快
    3)水平型微指令用较短的微程序结构换取较长的微指令结构
    4)水平型微指令与机器指令差别大

标签:微指令,编码,CMDR,微程序,CMAR,地址,程序设计
From: https://www.cnblogs.com/Oh-mydream/p/17489688.html

相关文章

  • 程序设计实习2023复习
    还没写完。这个东西也许和OI有关?反正也要复习,干脆写篇博客。introduction传统算法设计一般考虑有效算法(多项式时间),以及追求“精确解”,尤其是“经典”算法或者数据结构。这节课一般考虑那些不那么传统的、更加偏向现代的算法设计。一种就是近似算法,比如探索NP-hard问题在......
  • C++《面向对象程序设计课程设计》[2023-06-16]
    C++《面向对象程序设计课程设计》[2023-06-16]《面向对象程序设计课程设计》任务书时间:班级:一分组和评分周一上午8:30作业布置周四5/6节开始,周五12点前检查,提问并打分;每人完成自己的课程设计报告,不能复制其他同学的报告内容,报告中主要说明自己在设计中所作的工作。......
  • 2023年icpc大学生程序设计竞赛-nhr
    icpc的省赛是在洛阳举办,第一次出省,还是两天,第一次离开郑州去别的城市比赛,心情更多的是激动,非常感谢老师给了这次机会,第一天20号,打完热身赛之后回寝室,和队友一起看了一下去年省赛的题,感觉还是挺简单的。然后21号,省赛当天,因为设备原因,比赛推迟了1h,然后开赛。这次两道签到题比较简单......
  • 2023CCPC大学生程序设计竞赛-nhr
    新生菜菜第一次参加这种大型比赛,还是有点紧张的,CCPC我们队就A了三题,铜牌。第一道,以为是签到,然后就交给clk了,我和crf看下一道过的题比较多的,然后感觉是一个滑动窗口,另一道题是纯数学公式。但是都有一些小问题,交的时候wa了几发。。。最后好在过了,然后剩下两h看其他算法也不太会,就写......
  • C/C++《程序设计课程设计》[2023-06-14]
    C/C++《程序设计课程设计》[2023-06-14]《程序设计课程设计》指导书程序设计课程设计说明书一、设计任务与要求《程序设计课程设计》是在完成《程序设计基础》课程学习后进行的一门专业实践课程,是培养学生综合运用所学知识解决专业相关问题的重要环节,是对学生实际工作能力的......
  • [推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下)
    [推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下)——通过知识共享树立个人品牌。继上六篇:       [顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功)      [推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不......
  • [推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下)
    [推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下)——通过知识共享树立个人品牌。继上六篇:       [顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功)      [推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不......
  • 吉大 高级语言程序设计
    基础知识算法——程序设计精髓什么是算法?一个计算过程,具体指明应该进行的操作描述了解决问题的方法和途径是程序设计的基础和精髓有效算法的特点有穷性、确定性、有效性输入、输出组成基本操作表达式、变量赋值、读(输入)、写(输出)基本的控制结构顺序控制结构、......
  • papamelon 344. 奶牛展览 Cow Exhibition(挑战程序设计竞赛) dp
    地址https://www.papamelon.com/problem/344贝西有权选择让哪些奶牛参加展览。由于负的智商或情商会造成负面效果,所以贝西不希望出展奶牛的智商之和小于零,或情商之和小于零。满足这两个条件下,她希望出展奶牛的智商与情商之和越大越好,请帮助贝西求出这个最大值。输入第一行:......
  • Java入门(一) 基本的Java程序设计
    (基本的Java程序设计)一、一个简单的Java程序1.1最简单的程序下面是一个最基本的Java程序:publicclassFirstSample{publicstaticvoidmain(String[]args){System.out.println("helloworld");}}这个程序非常的简单,但所有的Java都有这样的结构。在......