《计算机组成原理》(第3版)第10章 控制单元的设计 复习笔记

news2024/9/24 15:24:03

第10章 控制单元的设计

一、组合逻辑设计

(一)组合逻辑控制单元框图
简化的控制单元框图,如图10-1所示。
在这里插入图片描述
图10-1 带译码和节拍输入的控制单元框图

(二)微操作的节拍安排
安排微操作节拍时应注意以下3点:
①有些微操作的次序是不容改变的,故安排微操作节拍时必须注意微操作的先后顺序;
②凡是被控制对象不同的微操作,若能在一个节拍内执行,应尽可能安排在同一个节拍内,以节省时间;
③如果有些微操作所占的时间不长,应该将它们安排在一个节拍内完成,并且允许这些微操作有先后次序。

(三)组合逻辑设计步骤
1.列出微操作命令的操作时间表
表10-1列出了上述10条机器指令微操作命令的操作时间表。
表10-1 操作时间表
在这里插入图片描述
2.写出微操作命令的最简逻辑表达式
纵览表10-1便可列出每一个微操作命令的初始逻辑表达式,经化简、整理便可获得能用现成电路实现的微操作命令逻辑表达式。
3.画出微操作命令的逻辑图
对应每一个微操作命令的逻辑表达式都可画出一个逻辑图。例如,M(MAR)→MDR的逻辑表达式所对应的逻辑图如图10-2所示,图中未考虑门的扇入系数。
在这里插入图片描述
图10-2 产生M(MAR)→MDR命令的逻辑图

二、微程序设计

(一)微程序设计思想的产生
微程序设计思想是英国剑桥大学教授M.V.Wilkes在1951年首先提出的。微程序设计省去了组合逻辑设计过程中对逻辑表达式的化简步骤,无须考虑逻辑门级数和门的扇人系数,使设计更简便,而且由于控制信号是以二进制代码的形式出现的,因此只要修改微指令的代码,就可改变操作内容,便于调试、修改,甚至增删机器指令,有利于计算机仿真。

(二)微程序控制单元框图及工作原理
1.机器指令对应的微程序
采用微程序设计方法设计控制单元的过程就是编写每一条机器指令的微程序,它是按执行每条机器指令所需的微操作命令的先后顺序而编写的,因此,一条机器指令对应一个微程序,如图10-3所示。图中每一条机器指令都与一个以操作性质命名的微程序对应。
在这里插入图片描述
图10-3 不同机器指令所对应的微程序
2.微程序控制单元的基本框图
图10-4示意了微程序控制单元的基本组成。
在这里插入图片描述
图10-4 微程序控制单元的基本组成
3.工作原理
(1)取指阶段
①将取指周期微程序首地址M→CMAR;
②取微指令:
将对应控存M地址单元中的第一条微指令读到控存数据寄存器中,记作CM(CMAR)→CMDR。
③产生微操作命令:
第一条微指令的操作控制字段中为“1”的各位发出控制信号,如PC→MAR,1→R,命令主存接收程序首地址并进行读操作。
④形成下一条微指令的地址:
此微指令的顺序控制字段指出了下一条微指令的地址为M+1,将M+1送至CMAR,即 Ad(CMDR)→CMAR。
⑤取下一条微指令:
将对应控存M+1地址单元中的第二条微指令读到CMDR中,即CM(CMAR)→CMDR。
⑥产生微操作命令:
由第二条微指令的操作控制字段中对应“1”的各位发出控制信号,如M(MAR)→MDR使对应主存2000H地址单元中的第一条机器指令从主存中读出送至MDR中。
⑦形成下一条微指令的地址:
将第二条微指令下地址字段指出的地址M+2送至CMAR,即Ad(CMDR)→CMAR
以此类推,直到取出取指周期最后一条微指令,并发出微操作命令为止。此时第一条机器指令“LDA X”已存至指令寄存器IR中。
(2)执行阶段
①取数指令微程序首地址的形成:
当取数指令存入IR后,其操作码0P(IR)直接送到微地址形成部件,该部件的输出即为取数指令微程序的首地址P,且将P送至CMAR,记作OP(IR)→微地址形成部件→CMAR。
②取微指令:
将对应控存P地址单元中的微指令读到CMDR中,即CM(CMAR)→CMDR。
③产生微操作命令:
由微指令操作控制字段中对应“1”的各位发出控制信号,如Ad(IR)→MAR,1→R.命令主存读操作数。
④形成下一条微指令的地址:
将此条微指令下地址字段指出的P+1送至CMAR,即Ad(CMDR)→CMAR。
⑤取微指令,即CM(CMAR)→CMDR。
⑥产生微操作命令。

(三)微指令的编码方式
1.直接编码(直接控制)方式
在微指令的操作控制字段中,每一位代表一个微操作命令。如图10-5所示。
在这里插入图片描述
图10-5 直接编码方式
2.字段直接编码方式
这种方式就是将微指令的操作控制字段分成若干段。将一组互斥的微操作命令放在一个字段内,通过对这个字段译码,便可对应每一个微命令,如图10-6所示。这种方式因靠字段直接译码发出微命令,故又有显式编码之称。
在这里插入图片描述
图10-6 字段直接编码方式
3.字段间接编码方式
这种方式一个字段的某些微命令还需由另一个字段中的某些微命令来解释,如图10-7所示。
在这里插入图片描述
图10-7 字段间接编码方式
4.混合编码
这种方法是把直接编码和字段编码(直接或间接)混合使用,以便能综合考虑微指令的字长、灵活性和执行微程序的速度等方面的要求。
5.其他
微指令中还可设置常数字段,用来提供常数、计数器初值等。

(四)微指令序列地址的形成
1.直接由微指令的下地址字段指出
微指令的下地址字段直接指出了后续微指令的地址。这种方式又称为断定方式。
2.根据机器指令的操作码形成
当机器指令取至指令寄存器后,微指令的地址由操作码经微地址形成部件形成。
3.增量计数器法
仔细分析发现,在很多情况下,后续微指令的地址是连续的,因此对于顺序地址,微指令可采用增量计数法,即(CMAR)+1→CMAR来形成后续微指令的地址。
4.分支转移
当遇到条件转移指令时,微指令出现了分支,必须根据各种标志来决定下一条微指令的地址。微指令的格式如下:
在这里插入图片描述
5.通过测试网络形成
微指令的地址还可通过测试网络形成,如图10-8所示。
在这里插入图片描述
图10-8 通过测试网络形成微指令地址
6.由硬件产生微程序入口地址
当电源加电后,第一条微指令的地址可由专门的硬件电路产生,也可由外部直接向CMAR输入微指令的地址,这个地址即为取指周期微程序的入口地址。

(五)微指令格式
1.水平型微指令
水平型微指令的特点是一次能定义并执行多个并行操作的微命令。
2.垂直型微指令
垂直型微指令的特点是采用类似机器指令操作码的方式,在微指令字中,设置微操作码字段,由微操作码规定微指令的功能。表10-2列出了一种垂直型微指令的格式。
表10-2 垂直型微指令示例
在这里插入图片描述
3.两种微指令格式的比较
(1)水平型微指令比垂直型微指令并行操作能力强、效率高、灵活性强。
(2)水平型微指令执行一条机器指令所需的微指令数目少,因此速度比垂直型微指令的速度快。
(3)水平型微指令用较短的微程序结构换取较长的微指令结构,垂直型微指令正相反,它以较长的微程序结构换取较短的微指令结构。
(4)水平型微指令与机器指令差别较大,垂直型微指令与机器指令相似。

(六)静态微程序设计和动态微程序设计
1.通常指令系统是固定的,对应每一条机器指令的微程序是计算机设计者事先编好的,因此一般微程序无须改变,这种微程序设计技术即称为静态微程序设计。
2.如果采用EPROM作为控制存储器,人们可以通过改变微指令和微程序来改变机器的指令系统,这种微程序设计技术称为动态微程序设计。

(七)毫微程序设计
微程序可看做是解释机器指令的,毫微程序可看做是解释微程序的,而组成毫微程序的毫微指令则是用来解释微指令的。

(八)串行微程序控制和并行微程序控制
与机器指令一样,完成一条微指令也分两个阶段:取微指令和执行微指令。如果这两个阶段按图10-9(a)所示的方式运行,则为串行微程序控制。由于取微指令和执行微指令的操作是在两个完全不同的部件中完成的,因此可将这两部分操作并行进行,以缩短微指令周期,这就是并行微程序控制,如图10-9(b)所示,与指令二级流水相似。
在这里插入图片描述
图10-9 串行微程序和并行微程序控制方式

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

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

相关文章

OpenCv学习-python

一.OpenCv介绍 简介 OpenCV(Open Source Computer Vision Library:opencv官网地址)是一个开源的基于BSD许可的库,它包括数百种计算机视觉算法。文档OpenCV 2.x API描述的是C API,相对还有一个基于C语言的OpenCV 1.x API&#xf…

生成式人工智能服务大模型——安全评估要求

(推荐性条款是指能愿动词为“宜”或“不宜”的条款)正式稿许多调整有调整。 自行开展安全评估的,评估报告应至少具有三名负责人共同签字。 单位法定代表人(表述更正)。 整体负责安全评估工作的负责人,应为单…

多串口互传指令代码遇到的问题

1.首先是字节格式,因为串口底层是一字节一字节的传输,所以每个要传输的字符与16进制数都要经过设计一定要保证是一字节一字节的发送 下面是把字符串拆分成字节一个一个发送示例 void Serial_SendString(char *String) {uint8_t i;for (i 0; String[i]…

泛微OA流程监控设置

泛微OA的流程监控设置问题 简单介绍 给流程设置监控主要是为了对系统中流转的流程进行相应的监控,例如对流程进行流程干预、强制归档、删除、查看等操作 如何设置 监控设置这个需要有相应后台权限账号的用户进行设置,进入流程引擎----->监控管理-…

用uniapp写app,想要打包后横屏显示的方法

在网络上找了很多方法,打包之后都没什么用,该竖屏还是竖屏,挺无语的,最后试了一种方法才解决了打包后也横屏显示的方法 在 pages.json 文件中: "pageOrientation": "auto" 这一条属性即可 设置…

可视化大屏适不适合组件化?报表类的很适合,数字孪生也可以

有小伙伴们问,可视化大屏能不能组件化,其实没问题的,而且已经很常见 也很成熟了,比如一些报表软件,把组件拖到画布上,设置一下,对接一下数据源,很快就做好了。 即便在UI设计环节&am…

【docker】docker资源管理

docker资源管理 docker cpu管理 Docker提供了多种方式来管理容器的CPU使用情况,包括以下几种方法: CPU限制:使用--cpus参数可以限制容器使用的CPU核心数。例如,docker run --cpus 2将限制容器使用2个CPU核心。CPU共享&#xff…

iPhone如何全选删除照片:一步到位的清理指南

随着时间的推移,iPhone中的照片会迅速累积,最终可能占据大量的存储空间。无论是为了释放空间,还是整理照片库,iPhone如何全选删除照片成为许多用户的需求。然而,iPhone原生的“照片”应用并没有直接提供“全选删除”功…

软考学习笔记(0):软考准备

文章目录 前言软考的优点软考项目的选择资料选择时间安排 前言 最近因为某些原因,我又开始上班了。新工作是纯内网开发,那以后发博客的频率我估计就会很少了。 软考的优点 简单来说,软考考上了,大概一个月的薪资可以涨1000-300…

使用JvisualVM 连接linux远程服务器

一、添加配置 在 java 启动参数中添加如下配置 -Dcom.sun.management.jmxremotetrue -Djava.rmi.server.hostname服务器IP(公网) -Dcom.sun.management.jmxremote.port端口号 -Dcom.sun.management.jmxremote.sslfalse -Dcom.sun.management.jmxremote.authenticatefalse添加…

树莓派智能语音助手之ASR2 – sherpa-ncnn

前几天虽然让树莓派学会了“听”(《树莓派智能语音助手之ASR – SpeechRecognitionPocketSphinx》),但是,PocketSphinx的识别效果真心不咋的。可我的树莓派因为系统等原因,一直装不了sherpa-onnx。正当我只能无奈地接受…

Windows配置开机直达桌面并跳过锁屏登录界面在 Windows 10 中添加在启动时自动运行的应用

目录 Win10开机直达桌面并跳过锁屏登录界面修改组策略修改注册表跳过登录界面 在 Windows 10 中添加在启动时自动运行的应用设置系统级别服务一、Windows下使用sc将应用程序设置为系统服务1. 什么是sc命令?2. sc命令的基本语法3. 创建Windows服务的步骤与示例创建服…

spring boot同时连接两个数据库

一、需求说明 1. 项目要求同时操作两个数据库&#xff0c;一个在本地服务器&#xff0c;一个在云服务器。 2. 两个数据库均为SQL server数据库。 二、实现 1. 在pom中导入多数据源依赖 <dependency><groupId>com.baomidou</groupId><artifactId>dynam…

【Kubernetes】身份认证与鉴权

一&#xff0c;认证 所有 Kubernetes 集群有两类用户&#xff1a;由Kubernetes管理的ServiceAccounts(服务账户)和(Users Accounts)普通账户。 两种账户的区别&#xff1a; 普通帐户是针对(人)用户的&#xff0c;服务账户针对Pod进程普通帐户是全局性。在集群所有namespaces…

ansible安装K8s

部署Kubernetes (k8s) 集群使用Ansible是一个常见的自动化解决方案。下面我将提供一个基本的步骤概述和所需的命令&#xff0c;用于在CentOS 7.8上使用Ansible部署k8s集群&#xff0c;包括Master节点和Worker节点&#xff08;Web和DB节点&#xff09;。 步骤 1: 准备环境 确保所…

# 利刃出鞘_Tomcat 核心原理解析(七)

利刃出鞘_Tomcat 核心原理解析&#xff08;七&#xff09; 一、Tomcat专题 - Tomcat管理配置 - host-manager 1、Tomcat 管理配置 从早期的Tomcat版本开始&#xff0c;就提供了Web版的管理控制台&#xff0c;他们是两个独立的Web应用&#xff0c;位于webapps目录下。Tomcat …

C语言典型例题40

《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 题目 例题3.8 运输公司对用户计算运费。路程&#xff08;以s表示&#xff0c;单位为千米&#xff09;&#xff0c;吨/千米运费越低。标准如下&#xff1a; s<250 没…

C:每日一题:逆序字符串(牛客)

一、题目来源 字符逆序__牛客网 (nowcoder.com) 二、题目介绍 将一个字符串str的内容颠倒过来&#xff0c;并输出。 三、思路分析 要将字符串str存储起来&#xff0c;可以使用字符数组或者字符指针的方式存储起来&#xff1b;从题目中我们知道该题需要我们自己输入字符串&a…

C++优先级队列priority_queue(容器适配器)

目录 一、优先级队列简述 二、优先级队列的大堆、小堆&#xff08;仿函数控制&#xff09; 三、优先级队列与sort函数中仿函数区别 四、优先级队列的接口 一、优先级队列简述 priority_queue是一个类模板 二、优先级队列的大堆、小堆&#xff08;仿函数控制&#xff09; p…

LLM 量化算法AutoRound 0.3 发布及原理浅析

这里写自定义目录标题 AutoRound V0.3 特性原理浅析其他工作AutoRound 原理 AutoRound&#xff08;https://github.com/intel/auto-round&#xff09;在Llama3.1-8B-Instruct上效果明显优于AWQ/GPTQ等方法&#xff0c;在10个任务的平均准确率上我们以63.93%由于AWQ的63.15%和GP…