CPU内部结构窥探·「3」

2024-06-08 14:52
文章标签 cpu 内部结构 窥探

本文主要是介绍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要比这个复杂千万倍,这只是他最基本的原理。

这篇关于CPU内部结构窥探·「3」的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1042496

相关文章

Java程序到CPU上执行 的步骤

相信很多的小伙伴在最初学习编程的时候会容易产生一个疑惑❓,那就是编写的Java代码究竟是怎么一步一步到CPU上去执行的呢?CPU又是如何执行的呢?今天跟随小编的脚步去化解开这个疑惑❓。 在学习这个过程之前,我们需要先讲解一些与本内容相关的知识点 指令 指令是指导CPU运行的命令,主要由操作码+被操作数组成。 其中操作码用来表示要做什么动作,被操作数是本条指令要操作的数据,可能是内存地址,也

win10不用anaconda安装tensorflow-cpu并导入pycharm

记录一下防止忘了 一、前提:已经安装了python3.6.4,想用tensorflow的包 二、在pycharm中File-Settings-Project Interpreter点“+”号导入很慢,所以直接在cmd中使用 pip install -i https://mirrors.aliyun.com/pypi/simple tensorflow-cpu下载好,默认下载的tensorflow

定位cpu占用过高的线程和对应的方法

如何定位cpu占用过高的线程和对应的方法? 主要是通过线程id找到对应的方法。 1 查询某个用户cpu占用最高的进程号 top -u 用户名 2 查询这个进程中占用cpu最高的线程号 top –p 进程号-H    3 查询到进程id后把进程相关的代码打印到jstack文件 jstack -l pid > jstack.txt 4 在jstack文件中通过16进制的线程id搜索到

CPU亲和性设置 代码示例 sched_setaffinity sched_getaffinity

视频教程在这: cpu亲和性设置,NCCL,sched_setaffinity sched_getaffinity,CPU_ZERO、SET、ISSET、linux_哔哩哔哩_bilibili 一、CPU亲和性简介 CPU亲和性(CPU Affinity)设置是操作系统中一个重要的性能优化手段,它允许程序或进程被绑定到特定的CPU核心上运行。这样做的好处包括减少缓存未命中、降低线程迁移(co

ubuntu16.04 caffe(github源码cpu)+python3.5+opencv3.4.5安装编译

https://www.cnblogs.com/hanjianjian90/p/10604926.html

Ubuntu 标题栏实时显示网速CPU内存

1.用 wget 下载 indicator-sysmonitor,终端执行命令: $ wget -c https://launchpad.net/indicator-sysmonitor/trunk/4.0/+download/indicator-sysmonitor_0.4.3_all.deb2.安装依赖: sudo apt-get install python python-psu

木马导致inetinfo.exe进程占100% CPU的解决方法

电脑进程inetinfo.exe主要用于支持微软Windows IIS网络服务的除错。正常情况下,inetinfo.exe 是 IIS admin Service 或 world wide web publishing service 。这个程序对你系统的正常运行是非常重要的。inetinfo.exe进程属于系统组件,请不要试图停止和删除!   但是如果inetinfo.exe占用CPU 10

cisvc.exe进程占用大量内存和CPU的解决方法

推荐:用电脑尽情K歌、练歌,一展歌喉。打造自己的MTV音乐专辑,分享给所有网友   我的电脑现在反映非常的慢,打开任务管理器发现cisvc.exe这个进程占用了大量的内存和CPU,才导致变慢的。   上网查询之后得知,这是微软Windows 操作系统自带的一个程序,CIDAEMON.EXE和CISVC.EXE都不是木马程序,用来监测CIDAEMON.EXE内存信息的,防止可用内存太低

CPU大小端字节序的检测

机器的字节序有两种,即大端字节序和小端字节序。 大端字节序:在内存中,低地址存放数据的 高位,高地址存放数据的 低位 小端字节序:在内存中,低地址存放数据的 低位,高地址存放数据的 高位 如例:定义数据  a = 0x01020304 小端方式:01 02 03 04 大端方式:04 03 02 01 那么如何判断呢,方式如下--> 一、 指

CPU 虚拟化技术概述

  CPU 虚拟化 CPU虚拟化基础知识  CPU虚拟化是一种技术,它允许多个操作系统在同一个物理CPU上运行。这种技术可以提高计算机的性能和安全性。 CPU 虚拟化是系统虚拟化技术中最核心的部分,因为 CPU 是计算机中最核心的组件,直接控制着整个系统的运行。同时内存访问(内存虚拟化)与 I/O 操作(I/O 虚拟化)也都直接依赖于 CPU,因此 CPU 虚拟化