第四课:算术逻辑单元docx

上传人:小** 文档编号:91717445 上传时间:2019-07-01 格式:DOC 页数:12 大小:38.51KB
返回 下载 相关 举报
第四课:算术逻辑单元docx_第1页
第1页 / 共12页
第四课:算术逻辑单元docx_第2页
第2页 / 共12页
第四课:算术逻辑单元docx_第3页
第3页 / 共12页
第四课:算术逻辑单元docx_第4页
第4页 / 共12页
第四课:算术逻辑单元docx_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《第四课:算术逻辑单元docx》由会员分享,可在线阅读,更多相关《第四课:算术逻辑单元docx(12页珍藏版)》请在金锄头文库上搜索。

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)3) 输入只有4种可能:前三个是0+0=0 1+0=1 0+1=1 (记住在二进制里面,1与true相同,0与false相同。4) 这组输入和输出,和XOR门的逻辑完全一样, A XOR B 所以我们可以把XOR用作1位加法器(adder)INPUTOUTPUTABSUM000101011但第四个输入组合,1+1,是个特例。1+1=2(显然)但二进制里

3、面没有2,二进制里1+1的结果是0,1进到下一位,和是10(二进制)XOR的输出。只对了一部分。1+1输出0,但我们需要一根额外的线代表“进位”只有输出是1和1时,进位才是true因为算出来的结果用一个bit存不下,方便的是,我们刚好有个逻辑门能做这个事,“AND”门,只有当两个输入为“true”的输出才为“true”所以我们把它加到电路中。这个电路叫叫“半加器”INPUTOUTPUTABCarrySUM0000100101011110半加器就是两个逻辑门组成的电路 A TRUE B TRUE XOR FALSE AND TRUE再简化就变成如下图A HALF ADDER SUMB CARRY

4、1) 把半加器封装成一个单独组件:两个输入A和B都是1位,两个输出“总和”和“进位”2) 如果想处理超过1+1的运算,我们需要全加器,半加器输出了进位,意味着我们算下一列的时候,还有之后的每一列,我们的加3个位在一起,并不是2个3) 全加器表格ABCCARRY进位SUM总和00000001010100110001011101101011111有3个输入:A,B,C都是1个bit所以最大可能是1+1+1“总和1”进位“1”所以要两条线输出“总和”和“进位”我们可以用半加器做全加器我们先用半加器将A和B相加,把C输入到第二个半加器,最后用一个OR门检查进位是不是true全加器=半加器+半加器+OR

5、(检查)A A half C carry B B adder D A half C OR C B adder D SUM 再提升一层抽象,全加器,作为独立组件,全加器会把“A”“B”“C”三个输入加起来,输出“总和”和“进位” A FULL CARRYB ADDER SUMC有了新组件,可以相加两个8位数字,叫两个数字A和B我们从A和B的第一位开始,叫A0和B0,现在不用处理任何进位,因为是第一位加法,我们可以用半加器来加这个数字,输出叫sum0,现在加A1和B1,因为A0和B0的结果有可能进位,所以这次要用全加器,除了A1和B1,还要连上进位,然后,把这个全加器的进位连到下个全加器的输入,处

6、理A2,和B2,以此类推,把8个bit搞定A0 sum0B0 half adder SUM1 A1 FULL ADDER B1 SUM2 A2 FULL ADDER B2 SUM3 A3 FULL ADDER B3 SUM4 A4 FULL ADDER B4 SUM5 A5 FULL ADDER B5 SUM6 A6 FULL ADDER B6 SUM7 A7 FULL ADDER B7 SUM8 A8 FULL ADDER B8 CARRY注意每个进位是怎么连接到下一个全加器的,所以这个叫“8位行波进位加法器”,注意最后一个全加器有进位的输出.如果第9位有进行,代表着2个数字的和太大了,超过

7、来8位,这叫“溢出”,一般来说,“溢出”的意思是:两个数字的和太大了,超过了用来表示的位数,这会导致错误和不可预期的结果。著名例子:吃豆人用8位在当前关卡数,如果你过了256关(8位bit最大表示255),ALU会溢出,造成一连串错误和乱码,使当前关卡无法进行。这个bug成了厉害吃豆人吃豆人玩家的代表,如果想避免溢出,我们可以加更多全加器,可以操作16或32位数字,让溢出更难发生,但代价是更多逻辑门,另外一个缺点是,每次进位都需要一点时间现代计算机(加法电路)电子移动很快,但如今的量级是每秒几十亿运算,所以会造成影响。叫“超前进加位器”把二进制相加,ALU的算术单元,也能做一些其他数字运算,一

8、般支持8个操作,就想加法器一样,这些操作也是由逻辑门构成的,有趣的是,没有乘法和除法因为简单的ALU没有专门的电路来处理,而是把乘法用多次加法来实现,假设想算125,这和把“12加5次是一样的”所以要5次ALU操作来实现这个乘法,很多简单的处理器都是这样做的:恒温器,电视遥控器和微波炉,当然,手机和电脑有专门做乘法乘法的算术单元,乘法电路电路比加法电路复杂,只是更多逻辑门,所以便宜的处理器没有。ALU的另一半逻辑单元逻辑单元执行逻辑操作:比如之前讨论过的AND,OR,和NOT操作,它也能做简单的数值和测试,比如一个数字是不是负数,例如:这是检查ALU输出是否为0的电路,它用一堆OR门检查其中一位是否为1,哪怕只有一个bit(位)是1,我们就知道那个数字肯定不是,然后用一个NOT门取反。以下就是ALU的一个高层次概括,从零做零几个主要组件,比如行波进位加法器,它们只是一堆逻辑门巧妙地组合在一起而已 A7 0 A6 0 OR 0 0 A5 0 0 oR A4 0 OR O

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号