欢迎来到天天文库
浏览记录
ID:39563134
大小:38.51 KB
页数:12页
时间:2019-07-06
《第四课:算术逻辑单元docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一:算术逻辑单元——(ALU)1)比如二进制的00101010是十进制的42,所以表示储存数字是计算机的重要功能,但真正的目标是计算,有意义的处理数字:比如把“两个数相加”这些操作由计算机的“算术逻辑单元”处理,简称“ALU”2)ALU是计算机的数学大脑,ALU*就是*计算机里负责运算的组件,基本其他所有部件都用到它。3)最著名的ALU——英特尔——74181,1970年,它是第一个封装在单个芯片的完整ALU。4)用布尔逻辑做个简单的ALU电路,功能和74181一样,用它从头做出一台电脑二:ALU有两个单元,1个算术单元和一个逻辑单元1)算术单元:它负责计算机里
2、的所有数字在操作,例:加减法。它还会做很多其他的事情,比如给某个数字加1,“把两个数字相加”这叫增量运算2)最简单的加法电路:是拿2个bit加在一起(bit是0或1);有2个输入:A和B,一个输出,就是两个数字的和,需要注意的是:A,B,输出,这3个都是单个(bit)(0或1)1)输入只有4种可能:前三个是0+0=01+0=10+1=1(记住在二进制里面,1与true相同,0与false相同。2)这组输入和输出,和XOR门的逻辑完全一样,AXORB所以我们可以把XOR用作1位加法器(adder)INPUTOUTPUTABSUM000101011但第四个输入组合,
3、1+1,是个特例。1+1=2(显然)但二进制里面没有2,二进制里1+1的结果是0,1进到下一位,和是10(二进制)XOR的输出。只对了一部分。1+1输出0,但我们需要一根额外的线代表“进位”只有输出是1和1时,进位才是true因为算出来的结果用一个bit存不下,方便的是,我们刚好有个逻辑门能做这个事,“AND”门,只有当两个输入为“true”的输出才为“true”所以我们把它加到电路中。这个电路叫叫“半加器”INPUTOUTPUTABCarrySUM0000100101011110半加器就是两个逻辑门组成的电路ATRUEBTRUEXORFALSEANDTRUE再
4、简化就变成如下图AHALFADDERSUMBCARRY1)把半加器封装成一个单独组件:两个输入A和B都是1位,两个输出“总和”和“进位”2)如果想处理超过1+1的运算,我们需要全加器,半加器输出了进位,意味着我们算下一列的时候,还有之后的每一列,我们的加3个位在一起,并不是2个1)全加器表格ABCCARRY进位SUM总和00000001010100110001011101101011111有3个输入:A,B,C都是1个bit所以最大可能是1+1+1“总和1”进位“1”所以要两条线输出“总和”和“进位”我们可以用半加器做全加器我们先用半加器将A和B相加,把C输入到
5、第二个半加器,最后用一个OR门检查进位是不是true全加器=半加器+半加器+OR(检查)AAhalfCcarryBBadderDAhalfCORCBadderDSUM再提升一层抽象,全加器,作为独立组件,全加器会把“A”“B”“C”三个输入加起来,输出“总和”和“进位”AFULLCARRYBADDERSUMC有了新组件,可以相加两个8位数字,叫两个数字A和B我们从A和B的第一位开始,叫A0和B0,现在不用处理任何进位,因为是第一位加法,我们可以用半加器来加这个数字,输出叫sum0,现在加A1和B1,因为A0和B0的结果有可能进位,所以这次要用全加器,除了A1和B
6、1,还要连上进位,然后,把这个全加器的进位连到下个全加器的输入,处理A2,和B2,以此类推,把8个bit搞定A0sum0B0halfadderSUM1A1FULLADDERB1SUM2A2FULLADDERB2SUM3A3FULLADDERB3SUM4A4FULLADDERB4SUM5A5FULLADDERB5SUM6A6FULLADDERB6SUM7A7FULLADDERB7SUM8A8FULLADDERB8CARRY注意每个进位是怎么连接到下一个全加器的,所以这个叫“8位行波进位加法器”,注意最后一个全加器有进位的输出.如果第9位有进行,代表着2个数字的和太
7、大了,超过来8位,这叫“溢出”,一般来说,“溢出”的意思是:两个数字的和太大了,超过了用来表示的位数,这会导致错误和不可预期的结果。著名例子:吃豆人用8位在当前关卡数,如果你过了256关(8位bit最大表示255),ALU会溢出,造成一连串错误和乱码,使当前关卡无法进行。这个bug成了厉害吃豆人吃豆人玩家的代表,如果想避免溢出,我们可以加更多全加器,可以操作16或32位数字,让溢出更难发生,但代价是更多逻辑门,另外一个缺点是,每次进位都需要一点时间现代计算机(加法电路)电子移动很快,但如今的量级是每秒几十亿运算,所以会造成影响。叫“超前进加位器”把二进制相加,A
8、LU的算术单元,也能做一
此文档下载收益归作者所有