【计算机组成体系结构】电路基本原理与加法器设计

一、算术逻辑单元—ALU

 

1.基本的逻辑运算(1bit的运算) 

基本逻辑运算分为,。大家应该很熟悉了,与:全1为1,否则为0。或:全0为0,否则为1。非:取反。三个基本的逻辑运算可以由对应的门电路实现。(与门或门非门

这里以上图的与门为例,若输入端A为高电压5V,表示1,输入端B电压为1V,表示0。则输出端Y输出的是低电压1V,表示0。由此完成电信号表示的逻辑运算。或门同理。

(1)“与”和“或”的优先级

在加法乘法中,我们知道乘法的优先级是高于加法的。那么在逻辑运算中如果,与或运算同时出现,“与”运算的优先级是高于“或”运算的

如“A·B + C·D”应该先计算A·BC·D,再计算A·B + C·D

(2)分配律和结合律

与或操作同时满足分配律,和结合律,同时类比加法和乘法的关系。

分配律——A·(C+D)= A·C+A·D 

结合律——A·B·C=A·(B·C)

结合律——A+B+C=A+(B+C)

同一种运算的两种电路实现

这些定律的用处,以上面的 A·C + A·D 为例,如果保持原来的式子不变,我们可以用两个与门和一个或门实现(如上图左)。但如果用分配律变换为A·(C+D),我们仅仅需要一个与门和一个或门就可以实现相同的运算(如上图右),并且会节省硬件成本

2.复合逻辑(1bit的运算) 

与非就是进行运算,进行运算。

或非就是进行运算,进行运算。

异或运算则是 相同为0,不同为1。 三种符合逻辑的电路构成如上图所示。

同时,有反演律,让我们可以把或非转换成非的与,把与非转换成非的或。 

(1)异或门的逻辑实现

异或操作我们说是一种符合逻辑运算,因此我们可以用基本的逻辑运算实现,如上图所示。

分析得知A,B不同情况,A=0B=1A=1B=0,即可得出逻辑表达式从而设计电路。

(2)同或运算

同或运算其实就是异或运算的取反

(3)异或门实现奇偶校验

通过以上的基本逻辑运算和符合逻辑运算,我们可以组成更复杂的逻辑运算,比如奇偶校验。奇偶校验和我们的异或门逻辑是对应的,所以完全可以由异或门实现。同时异或门也是天然的加法运算。

如上图所示,是两种不同计算顺序的逻辑表达式实现求偶校验位对应的异或门电路。(本质上就是判断有奇数个1还是偶数个1)

(4)异或门实现加法运算

我们知道加法会产生进位,如上图8bit的加法所示。那么本位的和Si是否进位由三个数决定,被加数的本位Ai,加数的本位Bi,以及来自低位的进位Ci-1

很容易知道,SiAiBi异或结果Ci-1异或得到,如上图所示。

而是否产生进位,则有两种情况,首先至少有2个1才能产生进位。那么2个1的情况有两种,我们需要进行或运算,一种情况是两个本位Ai和Bi都为1,或者Ai,Bi其中一个为1,然后进位是1。

一位全加器

根据上面推断出的不同情况,列出逻辑表达式之后,我们就可以很容易的得到一位全加器(FA,Full Adder)的门电路表示,如上图所示。

(5)多位加法的实现——串行加法器

串行加法器,顾名思义就是串行运算。它是通过一位一位的运算来实现加法的,也正是因为如此,它只有一个一位全加器和一个进位触发器构成。 一位全加器负责我们上面提到的本位运算,而进位触发器则负责保存进位位。因为本位的进位位会决定高位的进位位。

以上图为例,最开始的Ai=1,Bi=0,Ci-1=0,经过一位全加器后得到高位进位位Ci为0,

接着进行高位运算Ai=1,Bi=1,Ci-1=0,经过一位全加器后得到高位进位位Ci为1。

继续进行高位运算Ai=1,Bi=1,Ci-1=1,经过一位全加器后得到高位进位位Ci为1。

以此类推……可以看到,由于逐位的运算,如果操作数长n位,就需要进行n次加法,并且需要串行送回寄存器,所以串行加法器的效率是比较低的。


(6)串行进位的并行加法器

我们可以把多个一位全加器串联起来,组成串行进位的并行加法器,这样就可以同时输入n位的数,同时低位的进位会作为高位全加器的一个输入信号。

虽然我们可以同时输入A,B数值位的信息,但是电信号的传递依然是串行。也就是说只有低位运算结束之后,才知道往高位进的信号是什么,而高位的进位信号可能会导致更高位的进位信号发生改变,所以我们称之为串行进位的并行加法器

以此,串行进位的并行加法器的进位信号是逐级形成的,只有来自低位的进位信号决定了,我们才能决定本位和和更高位的进位信号。因此串行进位的并行加法器的运算速度很大程度上取决于我们每一位进位的产生速度。

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

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

相关文章

Unity关键词语音识别

一、背景 最近使用unity开发语音交互内容的时候,遇到了这样的需求,就是需要使用语音关键字来唤醒应用程序,然后再和程序做交互,有点像智能音箱的意思。具体的技术方案方面,也找了一些第三方的服务,比如百度…

华为云云耀云服务器L实例评测|华为云耀云服务器L实例私有库搭建verdaccio(八)

九、华为云耀云服务器L实例私有库搭建verdaccio: Verdaccio 是一个简单的、零配置本地私有 npm 软件包代理注册表。Verdaccio 开箱即用,拥有自己的小型数据库,能够代理其它注册表(例如 npmjs.org),缓存下载…

node.js+NPM包管理器+Webpack打包工具+前端项目搭建

javascript运行环境(无需依赖html文件) BFF,服务于前端的后端 官网下载安装,node -v查看是否安装成功 ①、创建一个01.js文件 //引入http模块 const httprequire(http)//创建服务器 http.createServer(function(request,respo…

【angular】TodoList小项目(已开源)

参考:https://segmentfault.com/a/1190000013519099 文章目录 准备工作headerTodo、Doing、Done样式(HTMLCSS)功能(TS)将输入框内容加入todoList(addTodo)将todo事件改到doing 服务 参考开源后续…

9.Linear Maps

线性映射 线性映射是将向量作为输入并产生一些新向量作为输出的转换。 从坐标定义开始(数组),再到2,3,并展示它们是如何关联的 线性映射的坐标表示最终是矩阵, 1.坐标定义(数组) 列向量是向量的坐标表示…

uniapp小程序实现绘制内容,生成海报并保存截图(Painter和Canvas两种方式举例)

一、Painter方法 Painter插件传送门 1.下载资源包 2.将资源包的如下部分 3.使用页面引入组件 ui样式 <paintercustomStyle=margin-left: 40rpx; height: 1000rpx;palette="{{palette}}"bind:imgOK="onImgOK"/>data 中数据(绘制内容,替换区域) pai…

《动手学深度学习 Pytorch版》 8.3 语言模型和数据集

8.3.1 学习语言模型 依靠在 8.1 节中对序列模型的分析&#xff0c;可以在单词级别对文本数据进行词元化。基本概率规则如下&#xff1a; P ( x 1 , x 2 , … , x T ) ∏ t 1 T P ( x t ∣ x 1 , … , x t − 1 ) P(x_1,x_2,\dots,x_T)\prod^T_{t1}P(x_t|x_1,\dots,x_{t-1}) …

uniapp 运行到 app 报错 Cannot read property ‘nodeName‘ of null

uniapp 运行到某一个页面&#xff0c;报错&#xff0c;h5没有问题 Unhandled error during execution of scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repovuejs/coreat <GuiPagecustomHeadertruecustomF…

docker 安装oracle

拉取镜像 拉取oracle_11g镜像 拉取oracle镜像(oracle 11.0.2 64bit 企业版 实例名: helowin) Oracle主要在Docker基础上安装&#xff0c;安装环境注意空间和内存&#xff0c;Oracle是一个非常庞大的一个软件&#xff0c; 建议使用网易镜像或阿里镜像网站这里以oracle 11.0.2…

力扣-461.汉明距离

Method 1 直接比较x&#xff0c;y二进制中的每一位&#xff0c;如果不同则cnt加一&#xff0c;并且x&#xff0c;y每次右移一位 class Solution { public:int hammingDistance(int x, int y) {int cnt 0;while(x > 0 && y > 0) {if((x & 1) ! (y & 1)…

当涉及到API接口数据分析时,主要可以从以下几个方面展开

当涉及到API接口数据分析时&#xff0c;主要可以从以下几个方面展开&#xff1a; 请求分析&#xff1a;可以统计每个API接口的请求次数、请求成功率、失败率等基础指标。这些指标可以帮助你了解API接口的使用情况&#xff0c;比如哪个API接口被调用的次数最多&#xff0c;哪个…

“之江创客”跨境电商赛区决赛暨浙南新电商发展论坛圆满落幕

9月26日&#xff0c;由商务部中国国际电子商务中心指导&#xff0c;浙江省商务厅等十个部门主办&#xff0c;浙江省电子商务促进中心、温州市商务局、苍南县人民政府承办的“之江创客”2023全球电子商务创业创新大赛跨境电商赛区决赛暨浙南新电商发展论坛在苍南圆满落幕。浙江省…

用 Three.js 创建一个酷炫且真实的地球

接下来我会分步骤讲解&#xff0c;在线示例在数字孪生平台。 先添加一个球体 我们用threejs中的SphereGeometry来创建球体&#xff0c;给他贴一张地球纹理。 let earthGeo new THREE.SphereGeometry(10, 64, 64) let earthMat new THREE.MeshStandardMaterial({map: albed…

结构体对齐规则

1.第一个成员在结构体变量偏移量为0的地址处。 2.其他成员变量对齐到某个数字(对齐数)的整数倍的地址处。(对齐数编译器默认的一个对齐数与该成员大小的较小值&#xff09;注意&#xff1a;目前有且只有VS编译器有默认为8. 3.结构体总大小为最大对齐数的整数倍。 4.如果嵌套…

常用的软件项目管理工具一览

软件项目管理工具是帮助团队成功管理和完成软件开发项目的软件程序和应用程序。根据项目及其规模和复杂性&#xff0c;可以使用各种各样的这些工具来协助完成任务&#xff0c;从任务跟踪和调度&#xff0c;到项目报告&#xff0c;到版本控制和协作。 项目经理对软件项目的整体成…

qgis c++ api 整体框架详解

文章目录 整体架构QGis库官方文档编译生成的库 core地图和图层矢量图层(Vector layers)图层要素符号图层要素要素渲染(feature renderer)符号(symbol) 坐标映射数据源(data provider) Raster layers图层符号数据源坐标映射 core库其他有用类 guiQgsMapCanvasQgsMapToolQgsLayer…

计算机视觉和机器视觉有什么区别?

人工智能是一个概念性术语&#xff0c;涵盖了若干特定技术。本文中&#xff0c;我们将探讨机器视觉&#xff08;MV&#xff09;和计算机视觉&#xff08;CV&#xff09;。二者都涉及可视化输入的摄取和解释&#xff0c;因此&#xff0c;了解这些重叠技术的优势、约束和最佳应用…

Vue 绑定style和class

在应用界面中&#xff0c;某些元素的样式是动态的。class 与 style 绑定就是专门用来实现动态样式效果的技术。 如果需要动态绑定 class 或 style 样式&#xff0c;可以使用 v-bind 绑定。 绑定 class 样式【字符串写法】 适用于&#xff1a;类名不确定&#xff0c;需要动态指…

leetcode:1929. 数组串联(python3解法)

难度&#xff1a;简单 给你一个长度为 n 的整数数组 nums 。请你构建一个长度为 2n 的答案数组 ans &#xff0c;数组下标 从 0 开始计数 &#xff0c;对于所有 0 < i < n 的 i &#xff0c;满足下述所有要求&#xff1a; ans[i] nums[i]ans[i n] nums[i] 具体而言&am…

Mongodb----部署副本集 实现读写分离

使用软件&#xff1a; xshell7 vmware16 centos8 nosql booster 1 部署副本集 推荐方案&#xff1a; 为了降低资源分配&#xff0c;这里仅使用一台服务器&#xff0c;但是分配3个端口&#xff08;27017、27018、27019&#xff09;来分别实现 主节点、副本节点…