找回密码
 立即注册

QQ登录

只需一步,快速开始

  • 欢迎访问 计算机技术论坛-电脑迷与初学者的家园!由于论坛管理严格,新注册会员可能遇到各种问题,无法解决的请发邮件 admin@jsjbbs.cn
查看: 1266|回复: 0

什么是算术逻辑单元?

[复制链接]
发表于 2021-4-7 20:43:37 | 显示全部楼层 |阅读模式
#111723#盘算机用二进制存储数字的目标是为了盘算,而盘算的进程是由“算术逻辑单位”来实现的。
那甚么是算术逻辑单位?
算术逻辑单位(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广泛会用到的。   义务编纂:pj
更多内容阅读推荐:壁挂炉显示水温不稳定怎么办
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

|计算机技术论坛 JSJBBS.CN @ 2008-2025 ( 鲁ICP备17021708号 )

技术支持 : 腾讯云计算(北京)有限责任公司

快速回复 返回顶部 返回列表