计算机用二进制存储数字的目的是为了计算,而计算的过程是由“算术逻辑单元”来完成的。
那什么是算术逻辑单元?
算术逻辑单元(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”的符号来代表它。
一个4位的alu需要很多逻辑门,一个8位的alu需要的逻辑门肯定更多,我们工程师肯定不想在这里浪费很多时间,那就出现了一种便于alu执行所需要的操作代码,这个后面有机会再详细介绍给大家。
alu除了输出计算结果外,还会输出一系列标志(flag),这个标志代表特定状态的1位(bit)输出,例如,如果我们相减两个数字,结果为0,我们的零测试电路就会将零标志设为true(1),这在确定两个数字是否相等时是非常有用的。
当然这个标志位也可以用来判断数字的大小和是否出现溢出等,如果使用的alu越好,它的标志也会更多,但刚说的这3个标志是alu普遍会用到的。
韩国半导体厂商争先恐后,积极开展与供应商的“相生”战略
小麦麸皮呕吐毒素检测仪的产品特点
田间小气候观测站助力智慧农业的发展
小米松果处理器3年就想大跃进?是做梦吗?
带你了解石英晶振的金属封装和玻璃封装区别
什么是算术逻辑单元?
金雅拓提出的人脸识别系统,成功识别率达到了99.44
巴航工业2018年向市场共交付了90架商用飞机和91架公务机
摩尔线程携手光线云:赋能全场景应用,加速元宇宙创新发展
人脸识别系统的广泛应用场景
喜报 | 英码科技深元智能工作站入选广东省名优高新技术产品名单!
电动车电机知识问答
通过集成和功率缩放解决超声领域的工程挑战
压力很大 阿尔卑斯称三大核心技术可御寒
ARM7风机监测仪的数据采集接口方案
激光焊接技术在焊接球磨罐的工艺优点
物联网安全风险正在不断蔓延 哪些安全风险值得关注
EEG数据采集,EEG数据处理
论工业控制系统的FPGA设计方法(3)
台积电与IBM签署协议 打破英特尔的垄断