【计算机组成原理Note】5.4.2 控制器-微程序

news2024/11/16 13:38:16
image-20221118205400539

5.4.2 控制器-微程序

image-20221123112034406
  • 硬布线工作原理:微操作控制信号由组合逻辑电路根据当前的指令码、状态和时序,即时产生
  • 微程序工作原理:事先把微操作控制信号存储在一个专门的存储器(控制存储器)中,将每一条机器指令编写成一个微程序,这些微程序可以存到一个控制存储器中,用寻址用户程序机器指令的办法来寻址每个微程序中的微指令。

5.4.2.1 微程序的基本思想

微操作就是指令的执行过程,微命令就是微操作的控制信号。我么通过将机器指令拆分成多个微操作命令(每一个微操作命令对应一个微操作)

相容性微命令:可以同时产生、共同完成某一些微操作的微命令。

互斥性微命令:在机器中不允许同时出现的微命令。

考虑微命令的互斥相容性,给微操作排序分组(和硬布线一样),每一组对应一个微指令,微指令是一串二进制编码,每一个二进制位代表一个微操作命令,对应位置为1说明当前执行对应微操作指令。

对于有些分在一组的相容性命令,其对应的微指令二进制串可能存在多个1。

一条机器指令对应的微指令组成一个微程序,存储在ROM制度存储器

image-20221122220101675

微指令需要指出当前操作类型,下一条指令的位置。所以微指令的基本格式:

image-20221122220654376

考虑到每条指令取指周期的操作是相同的,所以将取指令操作的微命令统一编成一个微程序,而每条机器指令所对应的具体操作再单独编写一个对应的微程序。

5.4.2.2 微程序控制器的基本结构

image-20221122221908833

指令传到指令寄存器,指令的操作码部分传到微地址形成部件产生初始微地址,传给顺序逻辑,顺序逻辑根据标志(程序表示寄存器)判断是否需要转移指令,然后将最终需要的地址传给微地址寄存器CMAR地址译码器根据微地址寄存器移码将地址码转化为存储单元控制信号,定位到控制存储器中对应存储单元,取出微指令,将微指令传给微数据寄存器CMDR,该指令分为微操作码和微地址码(顺序控制),微地址码传给顺序逻辑计算下一条微指令位置。而微操作码给CPU内部和系统总线提供控制信号

5.4.2.3 控制存储器

一般的将取指周期设计为统一微程序,有时候也会将间址周期和中断周期设计为统一的微程序(但这种很少见)。

周期内指令一般顺序执行。上一条指令地址码存放下一条微指令地址(看图)

取指周期最后一条微指令的地址码具体如何让存放要看顺序逻辑的控制(不用关注)

间址周期最后一条微指令执行完转到执行周期,

中断周期和执行周期的最后一条指令的地址码存储的是取指周期第一条微指令的地址(看图!)

image-20221122231951043

取指周期的微程序默认为公共的,所以对于某指令系统由n条指令,对应的微程序至少是n+1个(加上取指周期)。但对于一些指令系统如上图,间址周期和中断周期也是公共的部分,在这样的指令系统中,n个指令对应n+3个微程序。

5.4.2.4 微指令格式

image-20221122232608020

我们研究的是水平型微指令,下面讲解微指令的操作码字段如何编码

5.4.2.5 微指令的编码方式

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

  1. 直接编码方式

    在微指令的操作控制字段中,每一位代表一个微操作命令(某一位为1说明该控制信号有效)

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

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

    image-20221122233036512
  2. 字段直接编码方式

    将微指令的控制字段分成若干“段”,每段经译码后发出控制信号

    微命令字段分段的原则:

    • 互斥性微命令分在同一段内,相容性微命令分在不同段内。

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

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

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

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

    image-20221122233559162

    在直接编码方式中三个二进制位对应三个微操作命令,但在字段直接编码方式中三个二进制位我们可以利用译码器对应7个选通信号,缩短微指令长度。注意字段直接编码方式中有一个原则将互斥性微命令分在同一字段,如上图左下角的两个微操作命令就是互斥的,被分配到同一字段

    例题:

    某计算机的控制器采用微程序控制方式,微指令中的操作控制字段采用字段直接编码法,共有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. 字段间接编码方式(了解即可)

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

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

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

    image-20221122234423404

5.4.2.6 微指令的地址形式方式

  1. 微指令的下地址字段指出(重点掌握)

    微指令格式中设置一个下地址字段,由微指令的下地址字段直接指出后继微指令的地址,这种方式又称为断定方式。

  2. 根据机器指令的操作码形成

    当机器指令取至指令寄存器后,微指令的地址由操作码经微地址形成部件形成。

  3. 增量计数器法(CMAR ) +1—→CMAR

  4. 分支转移

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

    image-20221123094649899

  5. 通络测试网络

  6. 由硬件产生微程序入口地址(后面四种了解即可)

5.4.2.7 微程序控制的基本概念

image-20221123104936334
  1. 微命令与微操作

    微命令是微操作的控制信号,微操作是微命令的执行过程。

  2. 微指令与微周期

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

  3. 主存储器与控制存储器

    主存储器用于存放程序和数据,在CPU外部,用RAM实现;
    控制存储器(CM)用于存放微程序,在CPU内部,用ROM实现。

  4. 程序与微程序

    程序是指冬的有序集合,用于完成特定的功能;
    微程序是微指令的有序集合,一条指令的功能由一段微程序来实现。

  5. 地址寄存器(MAR)与微地址寄存器(CMAR)

    地址寄存器在CPU内部,控制单元外部,目的是访存。

    微地址寄存器在CPU内部,控制单元内部,目的是访问控制存储器(存储微程序)

  6. 指令寄存器(IR)与微指令寄存器(CMDR)

    一个存储指令,一个存储指令

5.4.2.8 微程序控制单元的设计

设计步骤:

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

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

    image-20221123105629530

    那么如何让读出微指令?Ad ( CMDR ) -> CMAR

    如何转入下一周期?OP(IR)→微地址形成部件→CMAR

    每一个微指完成都需要执行读取下一个微指令,周期执行完需要转到下一个周期所以修改后,共需要6条微指令,所以只用微程序需要增加取微指令的操作

    image-20221123110615856

  3. 确定微指令格式

  4. 编写微指令码点

总结来说步骤为:

image-20221123110931596

5.4.2.9 微程序设计分类

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

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

  2. 毫微程序设计

    毫微程序设计的基本概念

    • 微程序设计―用微程序解释机器指令
    • 毫微程序设计用毫微程序解释微程序
    • 毫微指令与微指令的关系好比微指令与机器指令的关系

5.4.2.10 硬布线于微程序

image-20221123111719139

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/30506.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

差钱吗?周杰伦线上演唱会没关打赏惹争议,看看同时直播的腾格尔

随着世界杯的到来,全球都进入了世界杯时间,音乐领域的明星们,都以各种形式欢迎世界杯的到来。在世界杯开幕的前一晚上,著名音乐人周杰伦,在某手平台开启了线上演唱会,吸引了众多人前来围观。 据不完全统计&…

【正点原子FPGA连载】 第七章 Verilog HDL语法 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第七章 Verilog …

【计组】入门篇 --《深入浅出计算机组成原理》

课程链接:深入浅出计算机组成原理_组成原理_计算机基础-极客时间 目录 一、为什么需要学习计算机组成原理 二、冯诺依曼体系结构:计算机组成的金字塔 1、计算机的基本硬件组成 2、冯诺依曼体系结构 三、通过CPU主频谈性能 1、什么是性能 2、计算…

【微信早安定时推送消息】微信公众号定时推送早安消息 带天气、纪念日、生日、定时推送等(完整代码)

我挥舞着键盘和本子,发誓要把世界写个明明白白。 简介 利用所学知识给他/她一个惊喜,是作为计算机专业的你最大的乐趣。 无计算机基础,5分钟即设置好 (定时推送 及 最新版 将在下期带来) 获取完整代码,关注…

性能测试怎么做?性能测试重点和各项性能测试流程(超级详细)

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 性能测试基础 1&am…

【设计模式】过滤器模式(Filter Pattern)

过滤器模式属于结构型模式,但它并不属于我们常说的二十三种设计模式。主要是以相对解耦的方式来过滤一组对象。 文章目录过滤器模式的介绍优点应用场景过滤器模式的使用类图实现方法第一步,创建员工类第二步,创建过滤器接口第三步&#xff0c…

如何部署商城项目

如何部署商城项目 1.导入数据库 ​ 注意:先保证数据库开启了远程访问(见数据库安装和配置笔记)。 1.1设置数据库服务器编码 ​ vi /etc/my.cnf ​ 在[mysqld]下面添加 character_set_serverutf8 init_connectSET NAMES utf81.2打开本地…

RK3399平台开发系列讲解(中断篇)中断控制器(Generic Interrupt Controller)

🚀返回专栏总目录 文章目录 一、GIC硬件的实现形态二、主要的功能块三、中断类型四、中断状态沉淀、分享、成长,让自己和他人都能有所收获!😄 📢外围设备不是把中断请求直接发给处理器,而是发给中断控制器,由中断控制器转发给处理器。ARM公司提供了一种标准的中断控制…

NR CSI(二) the workflow of CSI report

微信同步更新欢迎关注同名modem协议笔记 本篇内容是对CSI report相关流程的整理,其描述主要集中在R16 38.331 38.321 38.214中,以实网中的一个配置开始,看下相关定义。 如上图实网中的配置,CSI-ReportConfig 对应的就是Reporting…

Cookie和Session的工作流程是什么样的?5min学懂:简易用户登录(前端+后端+数据库)

目录 前言 一、Cookie 1.1、Cookie从哪里来? 1.2、Cookie到哪里去? 二、Session 2.1、什么是sessionId? 三、Cookie和Session的区别 四、Cookie和Session的具体工作流程 五、代码实现用户登录 5.1、核心方法 5.2、代码 前言 想要了解Cookie和…

【设计模式】桥接模式(Bridge Pattern)

桥接模式属于结构型模式,主要解决因业务增长时滥用继承而导致的**“类爆炸”问题。桥接模式将一个树型的整体继承结构替换为由抽象的类(抽象化角色)组成的抽象部分和由实现接口(实现化角色)与实现类(具体实…

无法访问mybatis.dto.StudengInVO-使用maven编译报错

一、问题由来 最近一次拉代码后,合并代码然后进行编译时出现一个问题,使用maven在进行编译的时候报一个错,无法访问mybatis.dto.StudengInVO。 突然出现这个错误让自己感觉很奇怪,开发工具已经使用了好几个月,项目也已…

SSM毕设项目 - 基于SSM的汉服文化平台网站(含源码+论文)

文章目录1 项目简介2 实现效果2.1 界面展示3 设计方案3.1 概述3.2 系统流程3.3 系统结构设计4 项目获取1 项目简介 Hi,各位同学好呀,这里是M学姐! 今天向大家分享一个今年(2022)最新完成的毕业设计项目作品,【基于SSM的汉服文化…

(十三)Spring之JdbcTemplate

文章目录环境新增、删除与修改数据新增修改删除查询一个查询一个对象查询一个值查询多个对象批量操作批量添加批量修改批量删除使用回调函数使用德鲁伊连接池上一篇:(十二)Spring IoC注解式开发JdbcTemplate是Spring提供的一个JDBC模板类&…

高阶数据结构:二叉搜索树

本篇主要是在初级数据结构中介绍的二叉树的提升,了解二叉搜索树的特性。 文章目录 一、二叉搜索树的概念二、二叉搜索树操作 1、二叉搜索树的查找2、二叉搜索树的插入3、二叉搜索树的删除三、二叉搜索树的实现四、二叉搜索树的应用五、关于二叉树进阶面试题一、二叉…

大衣哥又有喜事了,孟文豪新作《克什克腾的眼泪》,是给他写的吗

农民歌唱家大衣哥又出新歌啦! 就在大衣哥被谷传民起诉不久,互联网上面又传出新消息,继《火火的情怀》之后,大衣哥的新歌《新时代的新农民》,又要和大家见面了。很多人不明白,大衣哥不过是一个农民歌唱家&am…

Java中的反射,枚举和Lambda表达式

一. 反射 1. 反射的概述 2. 反射的使用 反射常用的类 通过反射获取Class对象 获得Class类相关的方法 使用反射创建实例对象 使用反射获取实例对象中的构造方法 通过反射获取实例对象的属性 通过反射获取实例对象的方法 3. 反射的优缺点 二. 枚举 1…

Graalvm 安装和静态编译

文章目录1、下载2、graalvm安装3、native-image工具安装3.1 安装native-image3.2 安装C编译工具4、java编译成二进制exe4.1、普通的java命令行应用4.2、Swing应用编译4.3、使用maven插件静态编译4.4、javafx应用编译1、下载 文件下载:https://www.graalvm.org/down…

[附源码]计算机毕业设计JAVA剧本杀门店管理系统-

[附源码]计算机毕业设计JAVA剧本杀门店管理系统- 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM myb…

OBS-VirtualCam OBS的虚拟摄像头插件

OBS-VirtualCam 是OBS的一个虚拟摄像头插件,可以将OBS中的内容提供给一个虚拟摄像头,这样其它软件就可以使用这个内容了,这里试试这个插件功能。 1. 下载obs并安装 登录OBS Studio网站,下载windows版, 下载完成后并安装…