第四课:算术逻辑单元
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一:算术逻辑单元——(ALU)
1)比如二进制的00101010是十进制的42,所以表示储存数字是计算机的重要功能,但真正的目标是计算,有意义的处理数字:比如把“两个数相加”这些操作由计算机的“算术逻辑单元”处理,简称“ALU”
2)ALU是计算机的数学大脑,ALU*就是*计算机里负责运算的组件,基本其他所有部件都用到它。3)最著名的ALU——英特尔——74181,1970年,它是第一个封装在单个芯片的完整ALU。
4)用布尔逻辑做个简单的ALU电路,功能和74181一样,用它从头做出一台电脑
二:ALU有两个单元,1个算术单元和一个逻辑单元
1)算术单元:它负责计算机里的所有数字在操作,例:加减法。它还会做很多其他的事情,比如给某个数字加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门的逻辑完全一样,
所以我们可以把XOR用作1位加法器(adder)
但第四个输入组合,1+1,是个特例。1+1=2(显然)但二进制里面没有2,二进制里1+1的结果文案大全
是0,1进到下一位,和是10(二进制)XOR的输出。只对了一部分。1+1输出0,但我们需要一根额外的线代表“进位”只有输出是1和1时,进位才是true因为算出来的结果用一个bit 存不下,方便的是,我们刚好有个逻辑门能做这个事,“AND”门,只有当两个输入为“true”
的输出才为“true”所以我们把它加到电路中。这个电路叫叫“半加器”
文案大全
半加器就是两个逻辑门组成的电路
再简化就变成如下图
1)把半加器封装成一个单独组件:两个输入
A和B都是1位,两个输出“总和”和“进位”
2)如果想处理超过1+1的运算,我们需要全加器,半加器输出了进位,意味着我们算下一列的时文案大全
候,还有之后的每一列,我们的加3个位在一起,并不是2个3)全加器表格
有3个输入:A,B,C都是1个bit
所以最大可能是1+1+1“总和1”进位“1”
所以要两条线输出“总和”和“进位”
文案大全
文案大全
我们可以用半加器做全加器
我们先用半加器将A 和B 相加,把C 输入到第二个半加器,最后用一个OR 门检查进位是不是true 全加器=半加器+半加器+OR (检查)
再提升一层抽象,全加器,
作为独立组件,全加器会把“A ”“B ”“C ”三个输入加起来,输出“总和”和“进位”
8位数字,叫两个数字A 和B
我们从A 和B 的第一位开始,叫A0和B0,现在不用处理任何进位,因为是第一位加法,我们可以用半加器来加这个数字,输出叫sum0,现在加A1和B1,因为A0和B0的结果有可能进位,所以这次要用全加器,除了A1和B1,还要连上进位,然后,把这个全加器的进位连到下个全加器的输入,处理A2,和B2,以此类推,把8个bit 搞定
注意每个进位是怎么连接到下一个全加器的,所以这个叫“8位行波进位加法器”,注意最后一个全加器有进位的输出.
文案大全
如果第9位有进行,代表着2个数字的和太大了,超过来8位,这叫“溢出”,一般来说,“溢出”的意思是:两个数字的和太大了,超过了用来表示的位数,这会导致错误和不可预期的结果。著名例子:吃豆人用8位在当前关卡数,如果你过了256关(8位bit最大表示255),ALU会溢出,造成一连串错误和乱码,使当前关卡无法进行。这个bug成了厉害吃豆人吃豆人玩家的代表,如果想避免溢出,我们可以加更多全加器,可以操作16或32位数字,让溢出更难发生,但代价是更多逻辑门,另外一个缺点是,每次进位都需要一点时间
现代计算机(加法电路)
电子移动很快,但如今的量级是每秒几十亿运算,所以会造成影响。叫“超前进加位器”把二进制相加,ALU的算术单元,也能做一些其他数字运算,一般支持8个操作,就想加法器一样,这些操作也是由逻辑门构成的,有趣的是,没有乘法和除法
因为简单的ALU没有专门的电路来处理,而是把乘法用多次加法来实现,假设想算12×5,这和把“12加5次是一样的”所以要5次ALU操作来实现这个乘法,很多简单的处理器都是这样做的:恒温器,电视遥控器和微波炉,当然,手机和电脑有专门做乘法乘法的算术单元,乘法电路电路比加法电路复
文案大全
杂,只是更多逻辑门,所以便宜的处理器没有。
ALU的另一半——逻辑单元
逻辑单元执行逻辑操作:比如之前讨论过的AND,OR,和NOT操作,它也能做简单的数值和测试,比如一个数字是不是负数,例如:这是检查ALU输出是否为0的电路,它用一堆OR门检查其中一位是否为1,哪怕只有一个bit(位)是1,我们就知道那个数字肯定不是,然后用一个NOT门取反。
以下就是ALU的一个高层次概括,从零做零几个主要组件,比如行波进位加法器,它们只是一堆逻辑门巧妙地组合在一起而已
文案大全
文案大全
74181只能处理4位输入,74181用了大概70个逻辑门,但不能执行乘除,8位ALU 会需要数百个逻辑门,特殊符号代表我们的8位ALU 有两个输入A 和B 都是8位(bits )我们需要告诉ALU
文案大全
进行一些操作,例如加法或减法
“1000=ADD ”
“1000”可能代表加法命令,“1100”代
表减法命令=subtract 操作代码告诉我们ALU 执行什么操 作,输出结果8位的
我们用
ALU 还会输出一堆标志(Flag) “标志”是1位的,代表特定状态,