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

news2024/9/21 14:40:51

目录

一、微程序控制器概述

二、微程序控制器设计方法

三、微指令执行过程

四、控制字段的编码方式

五、下址字段的设计方法

六、微程序入口地址的产生方法


一、微程序控制器概述

微程序:微指令构成的有序集合,一条指令对应一段微程序

微指令:一组微命令构成的集合,用于完成一个功能(相对完整的操作)

微命令:组成微指令的最小单位,是控制实现微操作的控制信号

微操作:微命令执行时产生的动作

控制存储器(控存):存放所有指令的微程序,一个存储单元存放一条微指令,一般为ROM

微地址:微指令在控存中的地址

微地址寄存器μAR:存放微地址的寄存器,用于提供访问控存CM的地址,又称为控存地址寄存器CMAR(Control Memory Address Regeister)

微指令寄存器μIR:存放从控存取出来的微指令的寄存器

微周期:指从控存取出并执行一条微指令所花的时间,一般与一个机器周期相当

微程序控制器的组成与结构:除了操作控制形成部件,其他部分都等同于硬布线控制器

  1. 控制存储器CM
  2. 微地址寄存器μAR
  3. 微指令寄存器μIR
  4. 后继微地址形成电路:多路选择器

  • 取微指令:CM[μAR] -> μIR
  • 执行微指令:μIR控制字段产生微操作控制信号
  • 下一条指令地址:由后继微地址形成电路产生

 硬布线控制器与微程序控制器对比

二、微程序控制器设计方法

设计目标:

  • 产生正确的微命令
  • 产生正确的微指令序列,即CPU状态转换序列

设计微程序控制器的步骤:

  1. 确定指令系统
  2. 确定部件组成和系统结构
  3. 分析每条指令的执行过程,画出微程序流程图
  4. 写出每条微指令所发送的微操作控制信号序列
  5. 设计微指令格式及微程序控制器结构
  6. 分配微地址和编写微指令代码
  7. 将所有的微指令代码装入控制存储器的相应单元

1. 确定指令系统:ADD和JMP

2. 确定部件组成与系统结构

3. 分析每条指令的执行过程,画出微程序程序流程图

4. 写出每条微指令所发送的微操作控制信号序列

5. 设计微指令格式及微程序控制器结构

6. 分配微地址,并编写微指令代码

7. 微指令编码装入控制存储器

三、微指令执行过程

研究与应用微程序设计技术的目的:

  • 缩短微程序指令字长
  • 减少控制存储器的容量
  • 加快微程序的执行速度
  • 便于微程序的修改与扩充
  • 提高微程序设计的灵活性

四、控制字段的编码方式

微指令由控制字段下址字段组成

水平型微指令

  • 基本特征:一条微指令能定义并发送多个微命令,控制数据通路中多个功能部件并行操作
  • 控制字段:采用直接控制法、字段直接编译法、字段间接编译法的微指令格式,都属于水平型微指令
  • 优点:一条微指令可同时发许多条微命令,微指令的执行效率高、灵活,各部件执行操作的并行能力强,编制的微程序比较短
  • 缺点:微指令字太长,增加了控制存储器的横向距离

垂直型微指令

  • 基本特征:一条微指令只能控制1~2中微操作
  • 控制字段:全译码方式,编码为微操作字段μOP,由μOP规定微指令功能
  • 优点:比较直观,容易掌握和便于使用,微指令字长短,减少了横向控制存储器的容量
  • 缺点:微指令要经过译码才能发出微命令,微指令的执行效率低,并行操作性差,增加了纵向微程序容量

1. 直接编码法

  • 控制字段的编码方式:每一位代表一个微命令(控制信号)
  • 执行微指令时:控制字段的各个控制信号,直接连接到部件
  • 优点:无需译码,执行速度快,微程序短
  • 缺点:微指令字长很长,占用控存容量大

2. 全译码法

  • 控制字段的编码方法:将所有控制字段进行二进制编码
  • 执行微指令时:译码产生各个微命令
  • 优点:微指令字长短
  • 缺点:并行操作能力弱,微程序很长,执行速度经译码而降低
  • 一般采用垂直型指令格式

3. 字段直接编译法

  • 控制字段的编码方式:将控制字段分为若干个小段,每小段通过编码-译码方式,对应到各个控制信息
  • 分段原则:相斥性微命令(不能在同一个微周期中同时出现的微命令)分在同一字段内(提高信息位的利用率,缩短微指令字长),相容性微命令(可以在同一个微周期中同时出现的微命令)分在不同字段内(有利于实现并行操作,加快指令的执行速度)
  • 每个小字段要保留一个编码作为空操作,表示本组所有控制信号都不发送
  • 优点:并行操作能力较强,字长较短,将同类操作的微命令划分在一个字段内,微指令结构清晰、规整,易于编制微程序和扩充功能

4. 字段间接编译法

  • 控制字段的编码方法:某字段的编码含义,需要由另一字段来加一解释
  • 某一字段所产生的微命令,是和另一字段的代码联合起来定义出来的

四种控制字段编码方法,可以混合应用在微指令的格式中

 

五、下址字段的设计方法

1. 判定方式

  • 当前微指令的后继微地址:由判别测试字段和下址字段共同决定
  • 下址地段:全地址(控存全局转移)or 部分地址(控存局部转移)
  • 转移微地址:通过逻辑电路生成 or 在下址字段基础上修改,有时还需要状态条件参与
  • 优点:每一条微指令都能实现微程序的转移,可以实现快速多路分支,执行速度快,微程序在控存中不用连续存储(微程序设计灵活)
  • 缺点:形成后继微地址的电路结构比较复杂,微指令字长较长

2. 计数器方式

  • 在微程序中设计一个微程序计数器μPC,由μPC来提供后继微地址:在顺序执行时,μPC自增,在遇到转移指令时,由微指令给出转移微地址,直入μPC
  • 优点:微指令字长较短,便于编写微程序,后继微地址产生电路比较简单
  • 缺点:微程序较长,执行速度相对较慢

微指令下址字段的设计

  • 微指令中下址字段的结构和后继微指令地址的形成方法有关,又称为微程序流的控制。
  • 判定方式产生后继微指令地址可由设计者指定或设计者指定的测试判别字段控制产出。
  • 测试判别字段的位数取决于测试源的个数。
  • 微指令寄存器的下址字段的位数取决于控制存储器的容量。

六、微程序入口地址的产生方法

微程序入口地址:当前指令对应的微程序段的第一条微指令在控存中的地址,是后继微地址的必不可少的一个来源,由指令译码器产生

微程序控制器中,指令译码器的功能:根据指令操作码,产生各指令的微程序入口地址

 

1. 映射存储器(MAPROM)方法

 

2. 逻辑电路法

MAPROM和逻辑电路方法对比

①MAPROM方法

  • 优点:非常灵活、不受限制,便于自由安排指令的微程序在控存中的位置
  • 缺点:需要访存才能得到微程序入口,速度慢

②逻辑电路方法

  • 优点:能快速的产生微程序入口
  • 缺点:微程序入口是指令OP的逻辑函数,故有一定限制,即某条指令的微程序入口一定某个控存地址

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

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

相关文章

【小沐学Android】Material Design设计规范之颜色篇

文章目录 1、简介1.1 Android1.2 Material Design 2、Material Design 12.1 材料设计2.2 颜色 3、Material Design 23.1 材料系统3.2 颜色 4、Material Design 34.1 颜色样式4.2 配色方案4.3 Material Theme Builder 结语 1、简介 1.1 Android 谷歌在2007年发布了第一个测试版…

chatgpt赋能python:Python清除代码:让你的项目更加优美

Python清除代码:让你的项目更加优美 随着时间推移和项目规模扩大,代码中可能会出现许多冗余、无用或重复的代码。这不仅会让代码难以维护,还会降低代码的性能和可读性。而Python作为一种高级编程语言,提供了许多工具和技术来清除…

牛客练习赛108 E.琉焰(非树边性质/线段树分治+可撤销并查集 or LCT)

题目 思路来源 官方题解 题解 针对每个连通块,单独考虑: 一方面, 任取连通块的某棵生成树, 对于任意非树边(u,v),把树边u到v上的所有边都选中,即被覆盖1次, 任取某个非树边集合S&#xff…

LangChain for LLM Application Development 基于LangChain开发大语言应用模型(下)

以下内容均整理来自deeplearning.ai的同名课程 Location 课程访问地址 DLAI - Learning Platform Beta (deeplearning.ai) LangChain for LLM Application Development 基于LangChain开发大语言应用模型(上) 一、LangChain: Q&A over Documents基于文…

bert4rec简介

1、bert4rec提出动机 用户行为动态变化,序列行为建模取得了不错的效果 单向结构限制了行为序列中隐藏信息的挖掘 序列神经网络顺序依赖,无法并行计算 为此,提出了 基于双向self-attention和Cloze task的用户行为序列建模方法。据我们所知…

解决Jenkins报错

解决Jenkins报错 1 linux空间不够问题1.1 报错现象1.2 定位问题1.3 解决措施 2 bash问题2.1 问题现象2.2 问题定位2.3 解决措施 3 虚拟环境问题3.1 问题现象3.2 问题定位3.3 解决措施 4 jenkins构建完成但一直转圈问题4.1 问题现象4.2 问题定位4.3 解决措施 5 jenkins自动化部署…

C高级6.24

一、整理grep、find、cut、tar、apt-get、dpkg、ln、ln-s指令 1.grep ----->查找字符串 grep 字符串 文件名 -w:按单词查找 -R:实现递归查找,主要用于路径是目录的情况 -i:不区分大小写 -n:显示行号 grep -w "^ubuntu" /etc/passwd ---->查找以ub…

【深度学习】RepVGG解析和学习体会

文章目录 前言0. Vgg1.RepVGG Block 详解 前言 论文名称:RepVGG: Making VGG-style ConvNets Great Again 论文下载地址:https://arxiv.org/abs/2101.03697 官方源码(Pytorch实现):https://github.com/DingXiaoH/RepV…

今天是世界Wi-Fi日!

很多人都不知道,今天其实是世界Wi-Fi日: 这个特殊的纪念日,是由无线宽带联盟(Wireless Broadband Alliance)确定的,并得到了互联城市咨询委员会 (CCAB)等组织的大力支持。 无线宽带联…

数据处理神器tidyverse!教你如何秒速搞定数据处理!

一、前言 在R语言中,tidyverse是一个庞大的数据分析生态系统,它由一系列数据可视化和数据处理软件包组成,能够极大地提高数据分析的效率和准确性。 在使用 Tidyverse 的过程中,我们会经常用到以下几个工具: ggplot2&am…

chatgpt赋能python:Python浮点数:介绍、精度和应用

Python浮点数:介绍、精度和应用 Python是一种高级编程语言,许多程序员使用Python编写计算机程序。与其他编程语言不同,Python是一种动态类型的语言,并且它处理浮点数时更加灵活。在本文中,我们将介绍Python浮点数的概…

python自动化办公——读取PPT写入word表格

Python自动化办公——读取PPT内容写入word表格 文章目录 Python自动化办公——读取PPT内容写入word表格一、需求分析二、导入依赖三、代码四、结果及总结 一、需求分析 📖由于我们知识图谱课程需要将课堂小组汇报的PPT总结成word文档,而我觉得一页一页复…

win10安装nginx的配置和使用方法(图文)

window10系统安装nginx服务,提供网页方面的服务。下面为详细图文安装配置教程。 1)下载nginx软件 官方下载地址:http://nginx.org/en/download.html 2)解压缩软件 unzip nginx-1.20.1.zip 或者 使用解压缩软件,下…

视频与AI,与进程交互(二) pytorch 极简训练自己的数据集并识别

目标学习任务 检测出已经分割出的图像的分类 2 使用pytorch pytorch 非常简单就可以做到训练和加载 2.1 准备数据 如上图所示,用来训练的文件放在了train中,验证的文件放在val中,train.txt 和 val.txt 分别放文件名称和分类类别&#xff…

Android之 弹框总结

一 简介 1.1 弹框即浮与页面之上的窗口,如键盘弹框,吐司弹框,确认弹框,下拉选择框,应用悬浮框等 1.2 弹框控件也很多,比如常用的Spinner,Dialog,Toast,PopWindow等&…

小主机折腾记14

1.m72e主机,3240t-2390t-3470t测试; 2390t官方参数 在m72e上 全核3.08Ghz 单核3.28-3.31Ghz 核显2帧 评分 3470t官方参数 在m72e上 全核睿频3.28 单核最高3.44 核显1.2帧???还不如那啥HD2000 最后评分 进入…

chatgpt赋能python:Python求累加的方法及其应用

Python求累加的方法及其应用 在Python编程中,经常需要对一系列数字进行求和或累加的操作。那么在Python中,我们可以通过哪些方法来实现这个功能呢?本文将为大家介绍Python求累加的方法及其应用。 1. Python中的for循环 首先,我…

05-事件循环

事件循环 以下知识点都涉及到事件循环 计时器,promise,ajax,node 明白此知识点,是前端的分水岭,可以提高效率,js中奇怪的东西都可以得到解决,整个过程是根据W3C和谷歌源码进行 浏览器的进程…

一文理解cast转换

目录 写在前边 1. what?又报错: 2. 靠,难道是这样? 3. 小试牛刀 4. 实际中的“坑” 写在后边 写在前边 关于$cast转换的结论无外乎以下四条: 如果将子类句柄复制给父类句柄,可以实现父类句柄的向下转换…

翻筋斗觅食策略改进灰狼算法

目录 一、动态扰动因子策略 二、翻筋斗觅食策略 三、改进灰狼算法收敛曲线图 灰狼优化算法(grey wolf optimization,GWO)存在收敛的不合理性等缺陷,目前对GWO算法的收敛性改进方式较少,除此之外,当GWO迭代至后期,所有灰狼个体…