布条百科 - 专业百科知识分享的网站 手机版
首页 > 百科 >

alu是什么意思的缩写(一个被工程师们用“V”表示的器件符号究竟是啥?)

100次浏览     发布时间:2024-10-01 08:54:46    

计算机用二进制存储数字的目的是为了计算,而计算的过程是由“算术逻辑单元”来完成的。


那什么是算术逻辑单元?


算术逻辑单元(Arithmetic and Logic Unit)简称ALU,就是负责实现计算机里的多组算术运算和逻辑运算的组合逻辑电路。



看看上面这个实物,图片中是最著名的ALU——英特尔74181,1970年发布,当时它是第一个完全被封装在单个芯片里的完整ALU,对人们来说这是一个惊人的工程。


今天,让我们一起用布尔逻辑门来构建一个简单的与74181功能相同的ALU电路吧。


在构建ALU之前,我们要知道ALU电路包含2个单元,一个是算术单元和一个是逻辑单元。


我们先从算术单元开始,算术单元负责计算机中所有的数字操作,比如加减法,当然它还会做一些其他简单的事,比如给某个数字加1,这叫增量运算。


在算术单元中,我们会用到AND,OR,NOT和XOR逻辑门,最简单的加法电路,就是有2个二进制的输入:A和B,还有1个就是输出,即两个二进制数字的和。


假设A和B都是只有一个bit,即0或1,那A和B的运算就只有下列四种可能的组合:


0+0=0

1+0=1

0+1=1

1+1=10


提醒一下,在二进制里,1代表true,0代表false,所以这组输入和输出的前三种可能与XOR门的逻辑关系是一样。


第四中输入组合,显然1+1≠2,因为在二进制里是没有2的,所以结果是0,将1进位到下一位,和为二进制的“10”,对于XOR门的输出,只对了一部分,即1加1,输出0,这个时候,我们只需要一根额外的线来代表进位,即只有当输入是1和1时,进位才是“true”。



针对上面出现的问题,我们可以把AND门加到电路中,即当两个输入都为“true”时,输出才为“true”,这样就组成了“半加器”电路。



如果你想处理大于1+1的情况,就需要“全加器”(full adder),全加器比半加器复杂点,它有3个bit的输入:A、B、C,所以最大可能输入为:1+1+1,总和1,进位1,因此需要两条输出线,即进位线与总和线。



其实,我们也可以用半加器来实现全加器的功能,先用半加器将A和B相加,然后把C输入到第二个半加器中,最后用一个OR门检查进位是不是true就可以了。



现在,我们可以做一个两个8 Bit进行相加的电路,这两个8 bit分别为A和B,看下图:



我们从A和B的第一位开始相加,第一位分别称为A0和B0,因为只有2个数,所以用一个半加器就可以,我们将它俩的和称为Sum0,考虑到A1和B1相加的时候可能会有A0和B0相加的进位,就会有3个数,所以从A1和B1相加开始就得用全加器,然后依次类推,搞定8个bit的相加,这叫 "8位脉动进位加法器"。


请注意:A7和B7的全加器有“进位”输出,如果它俩相加有输出进位,代表数字A和B相加,和超过了8位,这叫“溢出”(overflow)。如果想避免溢出,就得加更多全加器,然后相加16或32位数字,这就会让溢出更难发生,但缺点是每次进位都要一点时间向前移动。


简单的ALU没有专门的电路去处理乘法和除法,而是用多次加法实现乘法运算,比如:可以将12加5次来实现12乘以5。


当然,不用去担心我们现在的笔记本和手机,因为他们有更好的处理器,可以专门做乘法的算术单元哦。


关于算术单元我们说的很多了,现在,我们来说一下ALU的另一半:逻辑单元。逻辑单元执行的是逻辑操作,像之前讨论过的AND,OR和NOT操作,当然也可以执行简单的数值测试,比如检查数字的正负。



上图是检查ALU的输出是否为0的电路,用了一堆OR门来检查其中一位是否为1,哪怕只有一个Bit (位)是1,我们就可以肯定那个数字肯定不是0,然后用一个NOT门取反,所以只有输入的数字为0时,输出才为1。


到此,我们已经对ALU进行了一个高层次的概括,甚至做了几个主要组件,比如脉动进位加法器,虽然只是巧妙的将一大堆逻辑门连在了一起。我们再回到开始时说的ALU,英特尔74181,它只有4位输入,而我们刚才介绍的是8位输入,是74181的两倍哦!


虽然我们没有做出ALU实物,但是我们应该已经对ALU有了整体的概念,它的诞生打开了通向更强大电脑的大门。


由于ALU在市面的应用越来越多,工程师们为了方便,就用了一个看起来很像大“V”的符号来代表它,看下图,是不是很像“V”啊?



一个4位的ALU需要很多逻辑门,一个8位的ALU需要的逻辑门肯定更多,我们工程师肯定不想在这里浪费很多时间,那就出现了一种便于ALU执行所需要的操作代码,这个后面有机会再详细介绍给大家。



ALU除了输出计算结果外,还会输出一系列标志(Flag),这个标志代表特定状态的1位(bit)输出,例如,如果我们相减两个数字,结果为0,我们的零测试电路就会将零标志设为True(1),这在确定两个数字是否相等时是非常有用的。


当然这个标志位也可以用来判断数字的大小和是否出现溢出等,如果使用的ALU越好,它的标志也会更多,但刚说的这3个标志是ALU普遍会用到的。

相关文章

为什么婴儿床都用松木(婴儿床的选择和摆放!)

现如今,家长们的育儿责任心都是大大的有。虽然上班族们通常也要父母帮忙照看孩子,但大多数家长还是能陪孩子尽量陪孩子。即使孩子还很小,大部分家长也都是选择——跟宝宝一起睡。于是,婴儿床成了必备。 为了帮助家长们更好地利用婴儿床,既培养宝宝的独立性,又能恰当地增进家长与宝宝的情感,今天我们就来聊聊:婴儿床

2025-04-18 23:40:07

电脑为什么有嗡嗡作响(电脑发出异响有四种情况!)

电脑确实给我们的生活带来了很多的方便,但是电脑有的时候也会出现一些故障,比如蓝屏、黑屏、死机、加载程序缓慢、发出异响、发热发烫等等,这些故障有的是硬件问题引起,有的是软件问题引起,对于硬件问题我们直接采取措施就可以了,对于软件故障的话,我们充其量做个系统就可以了。最近很多朋友都咨询小编电脑发出异响的

2025-04-18 23:14:30

为什么卫生间有异味散发出来(卫生间里的臭味从哪来?)

那有没有什么办法不让家里的下水道反味呢?我自己家常用的,是下面这三招。堵首先要把各个可能反味的口都堵住,不让味道反涌。最常见的口有三类:竖管(洗手台、水槽)、地漏和马桶。堵竖管,要注意两个地方。一个是排水软管和竖管之间的缝隙,在网上花三两块钱就能买到一个硅胶密封圈。不想花钱的话,也可以用塑料袋卷成团

2025-04-18 22:41:28

为什么新生儿不用枕头(新生儿需要用枕头吗)

新生儿一般不需要使用枕头。但3个月开始,可以考虑使用枕头,以下是具体分析:新生儿颈椎与脊柱特点新生儿出生之后,其颈椎处于平直的状态,背部、颈部以及头部都处于同一直线上,颈背部肌肉也会自然松弛。新生儿在出生后的前几周和几个月内,其颈椎和脊柱都尚未形成明显的生理弯曲,头部与背部几乎处于同一平面。过早使用

2025-04-18 22:13:04

家用配电箱发热为什么(家用电表线发热怎么办?)

在我们用电的过程中,电表接线发热是非常值得重视的问题。电线发热,短时间内可能不会出什么问题,但是随着时间的增加就可能出现电线起火的情况。那么电表线发热该怎么办?第一种情况:电表线的进线发热怎么办?这段电线的来源是我们室外的供电总线。这根电线是由电力局进行布置的,所以我们业主自己一般很难解决。只能向电

2025-04-18 21:54:22

家里墙砖为什么会裂(铺贴好的瓷砖出现开裂的问题)

铺贴好的瓷砖出现开裂,一定是瓷砖的问题吗?一般铺好的瓷砖出现开裂,大家第一反应就觉得是瓷砖的质量问题。其实造成铺好的瓷砖出现开裂,有很多种原因。具体有以下10种原因。一:水泥标号过高。瓷砖铺贴一般用普通的425号硅酸水泥,水泥沙子混合比例为1:3,如果水泥标号过高,当水泥砂浆凝固时,水泥会大量吸水水

2025-04-18 21:22:44