当前位置: 首页 > news >正文

一篇文章让你用我的世界中的红石搞懂什么是ALU!

目录

1.一些在开始的约定

2.七大逻辑门电路

1、 与门

2、 或门

3、 非门

5、 或非门

6、 异或门

7、 同或门

3.半加器

4.全加器

5.ALU


1.一些在开始的约定

相同的概念:相同的概念:
高电平低电平
逻辑真逻辑假

开关的开

开关的关

灯的亮

灯的不亮

二进制的:1二进制的:0

2.七大逻辑门电路

七种常见的逻辑门真值表 

1、 与门

:所有输入为高时,才会有输出高。逻辑函数表示为F=A*B。

输入A输入B 输出Y图示
000
010
100
111

2、 或门

:所有输入为低时,才会有输出低。逻辑函数表示为F= A + B。

输入A 输入B  输出Y图示
000
011
101
111

3、 非门

:逆转输入的高低状态。逻辑函数表示为F=A’。

输入A  输出Y图示
0   1
1  0

 
4、 与非门

:所有输入为高时,才会有输出低。逻辑函数表示为F=(A*B)’。

输入A输入B 输出Y图示
001
011
101
110

5、 或非门

:所有输入为低时,才会有输出高。逻辑函数表示为F=(A + B)’。

输入A输入B 输出Y图示
001
010
100
110

6、 异或门

:输入相同时输出为低,否则为高。逻辑函数表示为F=A’B + AB’。

输入A输入B 输出Y图示
000
011
101
110

7、 同或门

:与异或门相反。输入相同时输出为高,否则为低。逻辑函数表示为F= A*B + A’*B’。

输入A输入B 输出Y图示
001
010
100
111

3.半加器

 我们来用表格模拟一下两个二进制数相加的过程:

输入A输入B进位位加法位
0000
0101
1001
1110

我们先看输入和加法位的关系:和异或门的的输入输出结果是一样的!

输入A输入B输出

 接着看输入和进位位的关系:和与门的输入输出结果是一样的!

输入A输入B输出

        所以我们用异或门来表示两个二进制数加法中的加法位结果,用与门来表示进位位的结果,二者组合在一起就能完成两个二进制数的加法了。 

 

当然用MC中的红石电路展示就是这样了:

0+0

 1+0

 0+1

 1+1

 以上就是,一个半加器的完整演示了。其是异或门与门的组合。

4.全加器

        由于上述的半加器只能接收两个输入,如果此时有两个半加器(一个计算高位,一个计算低位),需要计算两个二位二进制数的加法,低位在进行加法运算时需要进位怎么办呢?另外一个半价器并没有一个可以用于接收进位的接收端。

        所以我们需要给半加器增加一个接收进位输入的输入端!

输入A输入B进位输入加法位输出进位位输出
00000
00110
10010
10101
01010
01101
11001
11111

 根据以上的真值表,可以用以下的电路组合来表示上述的过程:

        就像这样,将两个半加器组合起来,再组合上一个或门就完成了一个有A,B,进位输入和加法位输出和进位位输出的全加器了。

用MC中的红石电路展示就是这样了:

 示例:

进位输入1,A:1,B:1,

加法位输出:1,进位位输出:1。

逻辑正确。

像这样的,将N个全加器串联在一起,就可以构成计算机中的最基础的运算部件——N位加法器:

        像这个,每层串联4个全加器,共八层,层层串联,可知如下就是一个32位加法器,可以用来计算结果在2^32-1之内的加法。

5.ALU

计算机组成原理中的算术逻辑单元(Arithmetic Logic Unit,简称ALU)是中央处理器(CPU)中的一个核心组件。它负责执行所有算术和逻辑操作,如加法、减法、乘法、除法、与(AND)、或(OR)、非(NOT)以及异或(XOR)等。ALU是CPU进行数据处理和计算的主要部分。
具体来说,ALU执行以下几类操作:
算术运算:包括整数加法、减法、乘法和除法。
逻辑运算:包括与、或、非、异或等逻辑操作。
移位操作:包括算术左移、算术右移、逻辑左移、逻辑右移等。
比较操作:用于比较两个操作数的大小,生成相应的标志位(如大于、小于、等于等)。
ALU通过接收控制单元(Control Unit)发出的指令,并根据操作码(Opcode)和操作数进行相应的计算,最后将结果返回给寄存器或存储器。这使得计算机能够执行各种复杂的计算任务。

一个典型的 ALU 通常由以下几个部分组成:

  1. 操作数寄存器 (Operand Registers):存储待处理的数据操作数。ALU 需要从寄存器或内存中读取这些操作数。

  2. 运算控制单元 (Control Unit):决定 ALU 执行的操作类型,如加法、减法、逻辑与、逻辑或等。它接收来自 CPU 控制单元的操作码,并生成相应的控制信号来驱动 ALU 执行特定的运算。

  3. 算术单元 (Arithmetic Unit):执行各种算术操作,如加法、减法、乘法、除法等。它通常包括加法器 (Adder)、减法器 (Subtractor) 等电路。

  4. 逻辑单元 (Logic Unit):执行各种逻辑操作,如与 (AND)、或 (OR)、非 (NOT)、异或 (XOR) 等。

  5. 移位单元 (Shifter Unit):执行位移操作,如左移 (Left Shift)、右移 (Right Shift)、循环移位 (Rotate) 等。

  6. 状态寄存器 (Status Register) 或 标志寄存器 (Flag Register):存储运算结果的状态信息,如进位 (Carry)、溢出 (Overflow)、零 (Zero)、负数 (Negative) 等标志位。

  7. 多路复用器 (Multiplexer, MUX):选择输入数据和运算结果的输出路径,使得 ALU 可以处理不同类型的操作。

ALU 的设计和复杂度可能因计算机体系结构和应用需求的不同而有所不同,但上述这些部分通常是一个典型 ALU 的基本组成部分。

http://www.lryc.cn/news/415356.html

相关文章:

  • 硬盘数据恢复:所需时长、全面指南及注意事项
  • 基于SpringBoot+Vue的科研管理系统(带1w+文档)
  • 计算机组成原理 —— 五段式指令流水线
  • 【Bigdata】什么是关系联机分析处理
  • svd在求解最小二乘中的应用
  • JVM—垃圾收集算法和HotSpot算法实现细节
  • nvidia系列教程-AGX-Orin基础环境搭建
  • 使用SpringAOP实现公共字段填充
  • c++初阶-----适配器---priority_queue
  • VSCode上安装C#环境教程
  • VS Code 和 Visual Studio 哪个更好
  • FCA-数据分析理论试卷
  • WPF程序通过CadLib4加载CAD .dwg格式文件
  • 图表全能王(ChartStudio) 上架VisionPro!
  • 【云原生】Job一次性任务详解
  • 化工厂人员定位采用多种定位技术的融合定位系统的好处
  • 使用AI绘图工具生成风景图像的教程
  • 迷你主机:华硕PN65和nuc13pro如何选择?
  • 分享一个好用的印花重绘工具
  • 力扣题解(递增的三元子序列)
  • 做不好PPT的原因
  • 嵌入式人工智能(45-基于树莓派4B的扩展板-舵机驱动板PCA9685)
  • 【数据结构与算法】建立多个栈的三种方案的优缺点分析
  • DjangoRF-14-创建request子应用
  • SOMEIP_ETS_005:检查字节序
  • 为什么要对医疗器械进行网络安全评估?
  • 沃尔玛1P账号的强悍作用重要反映在那些方面?——WAYLI威利跨境助力商家
  • 学习python你不能不知道的几个接单平台!实现如月上万不是梦
  • Golang面试题三(map)
  • [windows10]win10永久禁用系统自动更新操作方法