CPU内部结构窥探·「3」

加法器的工作原理:从简单的逻辑到现代计算

我们在cpu内部结构窥探·「1」中提到CPU内部ALU的核心部件就是运算器,今天就以加法器为例,来讲解我们ALU中算数逻辑运算的过程。


1.认识数字电路中的各种门电路

请添加图片描述

2. 什么是加法器?

加法器是一种数字电路,用于对二进制数进行加法运算。它们是计算机算术逻辑单元(ALU)的核心组件,也是各种数字系统(如计算器和数字信号处理器)的基础模块。加法器通常可以分为以下几种类型:

  • 半加器(Half Adder):处理两个单个位的加法。
  • 全加器(Full Adder):处理两个输入位和一个进位位的加法。
  • 多位加法器:处理多位二进制数的加法,通常通过连接多个全加器来实现。

3. 半加器(Half Adder)

逻辑电路

半加器是最基本的加法器,它负责对两个单个位进行加法运算,输出一个和(Sum)和一个进位(Carry)。
在这里插入图片描述

工作原理

半加器接收两个输入位 ( A ) 和 ( B ):

  • 和(Sum):由输入位 ( A ) 和 ( B ) 的异或(XOR)运算得出。其逻辑表达式为:

    Sum=A⊕B

  • 进位(Carry):由输入位 ( A ) 和 ( B ) 的与(AND)运算得出。其逻辑表达式为:

  • Carry=A⋅B

ABSumCarry
0000
0110
1010
1101

如表所示,当 ( A ) 和 ( B ) 都为 1 时,和为 0 并产生一个进位。半加器的局限性在于它不能处理进位输入,因此只能用于简单的单个位加法。


4. 全加器(Full Adder)

逻辑电路

全加器扩展了半加器的功能,能够处理两个输入位和一个来自低位的进位输入。它输出一个和和一个进位输出。

在这里插入图片描述

工作原理

全加器有三个输入:( A )、( B ) 和 ( C_{in} )(进位输入)。它通过组合两个半加器的逻辑实现:

  1. 第一个半加器对 ( A ) 和 ( B ) 进行加法,产生初步的和 ( S_1 ) 和进位 ( C_1 ):

    		S1=A⊕BC1=A⋅B
    
  2. 第二个半加器将初步的和 ( S_1 ) 与进位输入 ( C_{in} ) 相加,产生最终的和 ( S ) 和第二个进位 ( C_2 ):

    		S=S1⊕CinC2=S1⋅Cin
    
  3. 最终的进位输出 ( C_{out} ) 是两个进位的或运算:

    		Cout=C1∨C2
    
AB( Cin)Sum( Cout )
00000
01010
10010
11001
00110
01101
10101
11111

全加器的输出逻辑综合了两个半加器和一个或门(OR Gate)的运算结果,使它能够处理多位加法中的进位传递。


4. 多位加法器

如下图是一个4位加法器的逻辑电路:
在这里插入图片描述


5. 举一反三

以此类推,我们可以了解到ALU的其他运算单元如:加法器、减法器、与非门(用于逻辑运算)等的实现原理。
在这里仅从最基本的一个加法运算出发,来了解cpu内部ALU是如何实现这些运算的,真实的ALU要比这个复杂千万倍,这只是他最基本的原理。

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

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

相关文章

Web UI自动化测试_Selenium+Python

一、概述: 1.1 Selenium是什么 Selenium 是一个基于浏览器的自动化工具,可以跨平台、跨浏览器使用。 Selenium 主要包括三部分: 1、Selenium IDE: Firefox 浏览器的一个插件(扩展),它可以进行…

如何检测UV胶的均匀性?

如何检测UV胶的均匀性? 检测UV胶的均匀性可以通过以下几种方法来实现: 肉眼目视检查: 这是最简单直接的方法。将UV胶涂在表面上,使用裸眼观察胶层的表面。特别注意是否存在气泡、颜色不均匀、裂纹或其他明显的不均匀性。如凹凸不…

异步复位和同步释放

文章目录 前言一、为什么需要复位呢?二、同步复位1. 同步复位定义2. 同步复位的实现3. 同步复位的优点和缺点同步复位优点同步复位缺点 三、异步复位1. 异步复位定义2. 异步复位的实现3. 异步复位的优点和缺点异步复位优点异步复位缺点 四、异步复位同步释放1. reco…

Html/HTML5常用标签的学习

课程目标 项目实战,肯定就需要静态网页。朝着做项目方式去学习静态网页。 01、编写第一个html工程结构化 cssjsimages/imgindex.html 归档存储和结构清晰就可以。 02、HTML标签分类 认知:标签为什么要分类,原因因为:分门别类…

关于怎么用Cubemx生成的USBHID设备实现读取一体的鼠标键盘设备(改进版)

主要最近做了一个要用STM32实现读取鼠标键盘一体的那种USB设备,STM32的界面上要和电脑一样的能通过这个USB接口实现鼠标移动,键盘的按键。然后我就很自然的去参考了正点原子的例程,可是找了一圈,发现正点原子好像用的库函数&#…

【计算机网络】对应用层协议中HTTPS协议的总结

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

Oracle的优化器

sql优化第一步:搞懂Oracle中的SQL的执行过程 从图中我们可以看出SQL语句在Oracle中经历了以下的几个步骤: 语法检查:检查SQL拼写是否正确,如果不正确,Oracle会报语法错误。 语义检查:检查SQL中的访问对象…

【C++】用红黑树封装map、set

用红黑树封装map、set 1. 红黑树1.1 模板参数的控制1.1.1 Value1.1.2 KeyOfValue 1.2 正向迭代器1.2.1 构造函数1.2.2 begin()end()1.2.3 operator()1.2.4 operator--()1.2.5 operator*()1.2.6 operator->()1.2.7 operator()1.2.8 operator!()1.2.9 总代码 1.3 反向迭代器1.…

规则引擎-Easy rule

规则引擎-Easy rule 最近有几个项目中都出现了根据XX条件执行XX方法的业务,在动手之前脑中总会下意识的发现如果按照常规的去写代码,无论使用何种设计模式,都会出现不同程度上的代码冗余或大量if-else判断。 甚至说判断XX条件的代码和执行X…

2024中国大学计算机科学与技术专业排名(非常详细)零基础入门到精通,收藏这一篇就够了

今天 6 月 8 号,高考第二天,随着大部分地区的高考结束,接下来就是焦急的等待分数的公布,然后学生们就迎来人生中的一个重要时刻——选择大学和专业。 在众多专业中,计算机科学与技术一直是备受瞩目的热门选择&#xf…

【爬虫】使用Python爬取百度学术页面的标题、作者、摘要和关键词

目录 安装所需库编写爬虫代码解释运行脚本结果 在本文中,我将介绍如何使用Python编写一个网络爬虫,从百度学术页面提取研究论文的标题、作者、摘要和关键词。我们将使用 requests和 BeautifulSoup库来实现这一目标。 安装所需库 首先,确保…

uniapp引入uview无代码提示

前提安装正确: 无论是基于npm和Hbuilder X方式安装,一定要配置正确。 解决办法 以前在pages.json里面的写法: "easycom": {"^u-(.*)": "uview-ui/components/u-$1/u-$1.vue" }但是现在hbuilderx要求规范ea…

驱动开发之 input 子系统

1.input 子系统介绍 input 就是输入的意思,input 子系统就是管理输入的子系统,和 pinctrl、gpio 子系统 一样,都是 Linux 内核针对某一类设备而创建的框架。比如按键输入、键盘、鼠标、触摸屏等 等这些都属于输入设备,不同的输入…

Redis到底支不支持事务?

文章目录 一、概述二、使用1、正常执行:2、主动放弃事务3、全部回滚:4、部分支持事务:5、WATCH: 三、事务三阶段四、小结 redis是支持事务的,但是它与传统的关系型数据库中的事务是有所不同的 一、概述 概念: 可以一次执行多个命令,本质是一…

《解决方案架构师修炼之道》读书笔记

1. 水在前面 第一次看到“解决方案架构师”这个词,就把这本书借回家翻了。最近也在网上看点资料,对比起来发现还是出版物内容更完整和更有体系,而且看书真的能让人安静下来。。。 《解决方案架构师修炼之道》所罗伯死里瓦斯塔瓦,内…

每天五分钟深度学习pytorch:pytorch中的广播机制是什么?

本文重点 在pytorch中经常有张量和张量之间的运算,那么有一点需要注意,那就是维度要匹配,如果维度不匹配就有可能出现问题。如果维度不一致,此时也可以同时进行操作,此时就需要使用pytorch中的广播机制,本节课程就讲解pytorch中的广播机制。 广播机制示意图 如上就是py…

RK3568技术笔记之三 SAIL-RK3568开发板板卡功能测试

从这里开始,就是老生常谈系列之一:板卡功能测试。 放一张图镇一下帖 按照我自己顺手的方式,把这板子功能测一下。 先把开发板串口信息打印出来。 工具 功能 备注 电脑(必备) 提供使用终端软件环境 需要具备至少…

【ArcGIS微课1000例】0117:ArcGIS中如何将kml(kmz)文件转json(geojson)?

文章目录 一、kml获取方式二、kml转图层三、图层转json一、kml获取方式 kml文件是一种很常用的数据格式,可以从谷歌地球(googleearth)获取某一个地区的kml范围文件,如青海湖(做好的kml文件可以从配套实验数据包0117.rar中获取)。 二、kml转图层 打开【KML转图层】工具,…

2 程序的灵魂—算法-2.4 怎样表示一个算法-2.4.2 用流程图表示算法

流程图表示算法,直观形象,易于理解。 【例 2.6】将例 2.1 求 5!的算用流程图表示。 【例 2.7】将例 2.2 的算用流程图表示。 【例 2.8】将例 2.3 判定闰年的算用流程图表示。