一篇文章让你用我的世界中的红石搞懂什么是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 的基本组成部分。

  • 37
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值