ch10_2控制单元的_微程序设计

news2024/11/16 1:29:11

1. 微程序设计

在这里插入图片描述

1.1 微程序设计思想

使用微程序的设计方式,实现计算机系统的控制器;

微程序的设计,是方便指令集的修改和扩展;

每个节拍发出的控制命令, 实际上就是一个电信号,或者是几个电信号,由电信号控制相应的部件进行操作。

微程序的设计思想,是将控制信号存储起来
存储高低电平,控制每个节拍需要发出的微操作命令;

一条机器指令 对应一个微程序, 一个微程序对应多个微指令,
每一个微指令对应 一个或者多个微操作控制信号
微指令之间的先后顺序,就是微操作在执行过程的先后顺序,

将逻辑信号,保存在存储器当中,使用存储器对给定的存储单元,进行读出,由这些信号控制相关部件进行操作

微程序设计思想就是将每一条机器指令编写成一个微程序,每一个微程序包含若干条微指令,每一条微指令对应一个或几个微操作命令。

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

取指周期需要三个节拍来完成,每个节拍对应了一条微指令。
完成那个节拍中,产生控制命令的工作;

微程序,微指令都保存在控制存储器当中,

机器语言程序是机器指令的有序集合;微程序是微指令的有序集合,一条机器指令的功能由一个微程序来实现

1.3 工作原理

每一条机器指令由若干条微指令组成的微程序来解释执行
机器指令对应的微程序

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3.1 取指阶段

取指阶段  执行取指微程序
M -> CMAR
CM ( CMAR ) --> CMDR

由 CMDR 发命令
形成下条微指令地址 M +1 ;

Ad (CMDR )–> CMAR
CM (CMAR ) --> CMDR

由 CMDR 发命令
形成下条微指令地址 M+2;

Ad (CMDR ) --> CMAR
CM (CMAR ) --> CMDR
由 CMDR 发命令

在这里插入图片描述

1.3.2 执行阶段

OP ( IR ) —> 微地址形成部件 --> CMAR

CM ( CMAR ) —> CMDR
在这里插入图片描述

1.3.2 取指阶段

M --> CMAR
CM ( CMAR ) —> CMDR
在这里插入图片描述

全部微指令存在 CM 中,程序执行过程中 只需读出;
关键:

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

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

2.1 直接编码(直接控制)方式

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

在这里插入图片描述

2.2 字段直接编码方式

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

在这里插入图片描述

每个字段中的命令是 互斥 的;
缩短 了微指令 字长, 增加 了译码 时间;

2.3 字段间接编码方式

在这里插入图片描述

2.4 混合编码

直接编码和字段编码(直接和间接)混合使用

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

3.1微指令的 下地址字段 指出

在这里插入图片描述

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

3.3 增量计数器

( CMAR ) + 1 --> CMAR

3.4分支转移

操作控制字段转移方式转移地址

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

3. 5通过测试网络

在这里插入图片描述

3.6由硬件产生微程序入口地址

第一条微指令地址, 由专门 硬件产生;

中断周期: 由 硬件 产生 中断周期微程序首地址

3.7后续微指令地址形成方式原理图

后续微指令的地址形成方式的是()。

  1. 直接由微指令的下地址字段给出
  2. 根据机器指令的操作码形成
  3. 增量计数器法,即(CMAR)+1→CMAR
  4. 通过测试网络形成

在这里插入图片描述

4. 微指令格式

4.1水平型微指令

一次能定义并执行多个并行操作;

如 直接编码、字段直接编码、字段间接编码、
直接和字段混合编码

4.2垂直型微指令

类似机器指令操作码 的方式;

由微操作码字段规定微指令的功能;

4.3 两种微指令格式的比较

    1. 水平型微指令比垂直型微指令 并行操作能力强 ,
      灵活性强
    1. 水平型微指令执行一条机器指令所要的
      微指令 数目少,速度快
  1. 水平型微指令 用较短的微程序结构换取较长的
    微指令结构

  2. 水平型微指令与机器指令 差别大

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

5.1静态

静态: 微程序无须改变,采用 ROM

5.2 动态

可以修改或者是扩展计算机系统的指令集;
增加指令集中的指令;

动态: 通过 改变微指令 和 微程序 改变机器指令,
有利于仿真,采用 EPROM;

6. 毫微程序设计

6.1毫微程序设计的基本概念

微程序设计: 用 微程序解释机器指令
毫微程序设计 :用 毫微程序解释微指令;

微指令是用来解释机器指令的;
毫微指令是用来解释微指令的。;

毫微指令与微指令 的关系好比 微指令与机器指令 的关系

6.2毫微程序控制存储器的基本组成

在这里插入图片描述

7. 串行微程序控制和并行微程序控制

7.1 串行微程序控制

在这里插入图片描述

8. 微程序设计举例

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

假设 CPU 结构与组合逻辑相同

  1. 取指阶段微操作分析
    在这里插入图片描述
    OP ( IR ) —> 微地址形成部件 —> CMAR

  2. 取指阶段的微操作及节拍安排

在这里插入图片描述

  1. 执行阶段的微操作及节拍安排

考虑到需形成后续微指令的地址:
取指微程序的入口地址 M
由微指令下地址字段指出

非访存指令

在这里插入图片描述

访存指令
在这里插入图片描述

转移类指令:
在这里插入图片描述
20 种微操作,共组成38条微指令;
如果采用,水平型直接编码方式, 每个微操作在操作控制字段都需要一位来表示;

8.2 确定微指令格式

(1) 微指令的编码方式
采用直接控制

(2) 后续微指令的地址形成方式
由机器指令的操作码通过微地址形成部件形成;
由微指令的下地址字段直接给出;

(3) 微指令字长
由 20 个微操作
确定 操作控制字段, 最少 20 位;

由 38 条微指令:
确定微指令的 下地址字段 为 6 位
微指令字长 可取 20 + 6 = 26 位

(4) 微指令字长的确定

38 条微指令中有 19 条
是关于后续微指令地址 CMAR

其中
1 条:OP ( IR ) 微地址形成部件 CMAR
18 条: Ad ( CMDR ) —> CMAR

若用 Ad ( CMDR ) 直接送控存地址线
则 省去了输至 CMAR 的时间,省去了 CMAR;

  • 同理 OP ( IR )—> 微地址形成部件 --> 控存地址线

可省去 19 条微指令, 2 个微操作
38 - 19 = 19
下地址字段最少取 5 位;

20 - 2 = 18
操作控制字段最少取 18 位;

(5) 省去了 CMAR 的控制存储器

在这里插入图片描述
考虑留有一定的余量:

取操作控制字段:

下地址字段:

(6) 定义微指令操作控制字段每一位的微操作;
在这里插入图片描述

8.3 编写微指令码点

下地址字段中: 每3位代表一个八进制数;
在这里插入图片描述

后记

2023, 06.30.
哈工大的计算机组成原理,理论部分看完;
年初的时候,开始学习;
那时候外公还在,今天是农历十三,
希望后续自己继续变强,
直到有一天,我有能力可以保护我想守护的人。

后面开始,

  1. 汇编语言(王爽),
  2. 以及操作系统(南京大学)的学习。
  3. 操作系统45讲,彭东;
    学习过程中,会穿插看华科 计算机组成原理的部分内容;

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

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

相关文章

堆的向下调整算法,堆排,TopK问题

文章目录 堆的向下调整算法堆的删除:堆排序向上调整建堆的时间复杂度向下调整建堆的时间复杂度为:TopK问题 堆的向下调整算法 我们在这里都已小堆为例: 在这里我们有一个数组 int array[] {27,15,19,18,28,34,65,49,25,37}; 我们通过把根节…

Oracle VM VirtualBox添加磁盘

文章目录 1、Oracle VM VirtualBox添加磁盘 1、Oracle VM VirtualBox添加磁盘 1.关闭正在启动的Oracle VM VirtualBox 2、选择存储 3、点击最右边 4、选择创建 直接下一步: 直接下一步: 调整需要的大小–创建即可: 此时此刻磁盘加载成功&#xff0…

【综合企业管理平台】网络杂谈(10)之什么是Unicenter TNG?

涉及知识点 什么是 Unicenter TNG,Unicenter TNG的基本管理功能,Unicenter TNG Discovery ,深入了解Unicenter TNG技术,综合企业管理平台 Unicenter TNG 。 原创于:CSDN博主-《拄杖盲学轻声码》,更多内容可…

8.串行通信

1.通信接口相关知识: (1)处理器与外界设备通信的两种方式: 1)并行通信: 传输原理:数据各个位同时传输; 优点:速度快; 缺点:占用引脚资源多&…

vue+leaflet笔记之地图网格

vueleaflet笔记之地图网格 本文介绍了Web端使用Leaflet开发库显示地图经纬网和标准图幅网格的方法 (底图来源:天地图), 地图格网是由间隔均匀的横向线和纵向线组成的网络,用于在地图上识别各个位置。 经纬网通过在地图上描绘纬度和经度格网,…

40.Docker

目录 一、Docker。 (1)认识Docker。 (1.1)什么是Docker。 (1.2)Docker和虚拟机的区别。 (2)镜像、容器、DockerHub、Docker架构。 (3)安装Docker&#…

VS+QT+VTK三维曲面网格点选切割

程序示例精选 VSQTVTK三维曲面网格点选切割 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<VSQTVTK三维曲面网格点选切割>>编写代码&#xff0c;代码整洁&#xff0c;规则&…

DAMA学习笔记1:概念模型-逻辑模型篇

A实体的某个字段指向 B实体的主键, 则称A实体的那个字段为该实体的外键, 一个表里可以有多个外键&#xff0c;也可以没有外键&#xff1b; 被指向的实体称为主实体(主表)&#xff0c;也叫父实体(父表)&#xff0c;负责指向的实体称为从实体(从表)&#xff0c;也叫子实体(子表)…

记录好项目D18

记录好项目 你好呀&#xff0c;这里是我专门记录一下从某些地方收集起来的项目&#xff0c;对项目修改&#xff0c;进行添砖加瓦&#xff0c;变成自己的闪亮项目。修修补补也可以成为毕设哦 本次的项目是个网上商城 一、系统介绍 前台商城系统&#xff1a;包含首页登录、商…

动态规划——下降路径最小和

题目链接 leetcode在线oj题——下降路径最小和 题目描述 给你一个 n x n 的 方形 整数数组 matrix &#xff0c;请你找出并返回通过 matrix 的下降路径 的 最小和 。 下降路径 可以从第一行中的任何元素开始&#xff0c;并从每一行中选择一个元素。在下一行选择的元素和当前…

mmpose冻结参数训练,如何添加find_unused_parameters参数

mmpose冻结参数训练&#xff0c;如何添加find_unused_parameters参数 在backbone下方添加 frozen_stages7即可冻结前7层的参数。要注意对于多卡训练来说还需要添加 find_unused_parameters True。看图片中代码的位置。

回忆雅礼朱哥二三事

少年时代的记忆是最模糊的&#xff0c;却也是最深刻的。一些瞬间在大脑里几十年&#xff0c;那一定是你曾经心动和在乎过的感受。年少求学期间&#xff0c;因对数学的痴迷&#xff0c;和数学有关的一切我都记忆犹新&#xff1a;记得一个人趴在地上解题一下午的投入&#xff0c;…

分析各种富文本框的自动填写方法

怎样自动填写表单中的富文本框&#xff1f; 什么是富文本框&#xff1f;富文本框就是在网页上可以输入带格式的文本输入框。在富文本框中&#xff0c;可以设置使用不同的字体、颜色&#xff0c;可以控制段落、边距&#xff0c;还可以插入图片、表情等。是实现在线编辑不可或缺…

c++ word简单的写文本与画表格只支持docx

简单使用的代码如下所示&#xff1a; #include "stdafx.h" #include <windows.h> #include "minidocx.hpp" using namespace docx; using namespace std; std::string GB2312ToUTF8(const std::string& gb2312) { int len MultiByteToWid…

【ESP32C3合宙ESP32C3】:ESP32C3和合宙ESP32C3的环境搭建与离线包安装

项目场景&#xff1a; 最近买了一块合宙ESP32C3的开发板&#xff0c;于是想要开发一下&#xff0c;当然开发最开始少不掉开发环境的搭建&#xff0c;在这个搭建的过程中&#xff0c;遇到了一些问题&#xff0c;解决了&#xff0c;也希望能帮助到大家。 ESP32C3 和 合宙ES…

Spring Boot 中的 Elasticsearch 的数据操作配置

Spring Boot 中的 Elasticsearch 的数据操作配置 Elasticsearch是一个基于Lucene的搜索引擎&#xff0c;可以快速地存储、搜索和分析大量的数据。Spring Boot是一个开发框架&#xff0c;提供了快速构建基于Spring的应用程序的工具和技术。在本文中&#xff0c;我们将讨论如何在…

GBASE南大通用时代亿信共筑商业秘密防护联合解决方案

当前&#xff0c;数字经济因其覆盖面广且渗透力强&#xff0c;与各行业深度融合&#xff0c;正在逐渐引领新经济发展。另一方面&#xff0c;数据安全已上升为国家战略&#xff0c;中央相继出台政策文件&#xff0c;加强数据安全、商业秘密、个人隐私保护&#xff0c;提高网络安…

聚观早报 | 美团收购光年之外;世卫:可乐中甜味剂或致癌

今日要闻&#xff1a;美团以20.65亿人民币收购光年之外&#xff1b;世卫&#xff1a;可乐中甜味剂或致癌&#xff1b;AI公司融13亿美元&#xff0c;仅次于OpenAI&#xff1b;微信支付就校园支付费率过高致歉&#xff1b;B站回应成立交易生态中心 美团以20.65亿人民币收购光年之…

C# Excel 表列序号

171 Excel 表列序号 给你一个字符串 columnTitle &#xff0c;表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。 例如&#xff1a; A -> 1 B -> 2 C -> 3 … Z -> 26 AA -> 27 AB -> 28 … 示例 1: 输入: columnTitle “A” 输出: 1 示例 2: …

11-Vue的diff算法

参考回答&#xff1a;​​​​​​​ 当组件创建和更新时&#xff0c;vue均会执行内部的update函数&#xff0c;该函数使用render函数生成的虚拟dom树&#xff0c;将新旧两树进行对比&#xff0c;找到差异点&#xff0c;最终更新到真实dom对比差异的过程叫diff&#xff0c;vue在…