第四课算术逻辑单元Word文档格式.docx

上传人:b****6 文档编号:20036088 上传时间:2023-01-16 格式:DOCX 页数:7 大小:66.36KB
下载 相关 举报
第四课算术逻辑单元Word文档格式.docx_第1页
第1页 / 共7页
第四课算术逻辑单元Word文档格式.docx_第2页
第2页 / 共7页
第四课算术逻辑单元Word文档格式.docx_第3页
第3页 / 共7页
第四课算术逻辑单元Word文档格式.docx_第4页
第4页 / 共7页
第四课算术逻辑单元Word文档格式.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

第四课算术逻辑单元Word文档格式.docx

《第四课算术逻辑单元Word文档格式.docx》由会员分享,可在线阅读,更多相关《第四课算术逻辑单元Word文档格式.docx(7页珍藏版)》请在冰豆网上搜索。

第四课算术逻辑单元Word文档格式.docx

加减法。

它还会做很多其他的事情,比如给某个数字加1,“把两个数字相加”这叫增量运算

2)最简单的加法电路:

是拿2个bit加在一起(bit是0或1);

有2个输入:

A和B,一个输出,就是两个数字的和,需要注意的是:

A,B,输出,这3个都是单个(bit)(0或1)

3)输入只有4种可能:

前三个是0+0=01+0=10+1=1(记住在二进制里面,1与true相同,0与false相同。

4)这组输入和输出,和XOR门的逻辑完全一样,

AXOR

B

所以我们可以把XOR用作1位加法器(adder)

INPUT

OUTPUT

A

B

SUM

1

但第四个输入组合,1+1,是个特例。

1+1=2(显然)但二进制里面没有2,二进制里1+1的结果是0,1进到下一位,和是10(二进制)XOR的输出。

只对了一部分。

1+1输出0,但我们需要一根额外的线代表“进位”只有输出是1和1时,进位才是true因为算出来的结果用一个bit存不下,方便的是,我们刚好有个逻辑门能做这个事,“AND”门,只有当两个输入为“true”的输出才为“true”所以我们把它加到电路中。

这个电路叫叫“半加器”

Carry

半加器就是两个逻辑门组成的电路

ATRUE

BTRUEXORFALSE

ANDTRUE

再简化就变成如下图

AHALFADDERSUM

BCARRY

1)把半加器封装成一个单独组件:

两个输入

A和B都是1位,两个输出“总和”和“进位”

2)如果想处理超过1+1的运算,我们需要全加器,半加器输出了进位,意味着我们算下一列的时候,还有之后的每一列,我们的加3个位在一起,并不是2个

3)全加器表格

C

CARRY进位

SUM总和

有3个输入:

A,B,C都是1个bit

所以最大可能是1+1+1“总和1”进位“1”

所以要两条线输出“总和”和“进位”

我们可以用半加器做全加器

我们先用半加器将A和B相加,把C输入到第二个半加器,最后用一个OR门检查进位是不是true

全加器=半加器+半加器+OR(检查)

AAhalfCcarry

BBadderDAhalfCOR

CBadderDSUM

再提升一层抽象,全加器,作为独立组件,全加器会把“A”“B”“C”三个输入加起来,输出“总和”和“进位”

AFULLCARRY

BADDERSUM

有了新组件,可以相加两个8位数字,叫两个数字A和B

我们从A和B的第一位开始,叫A0和B0,现在不用处理任何进位,因为是第一位加法,我们可以用半加器来加这个数字,输出叫sum0,现在加A1和B1,因为A0和B0的结果有可能进位,所以这次要用全加器,除了A1和B1,还要连上进位,然后,把这个全加器的进位连到下个全加器的输入,处理A2,和B2,以此类推,把8个bit搞定

A0sum0

B0halfadder

SUM1

A1FULLADDER

B1SUM2

A2FULLADDER

B2SUM3

A3FULLADDER

B3SUM4

A4FULLADDER

B4SUM5

A5FULLADDER

B5SUM6

A6FULLADDER

B6SUM7

A7FULLADDER

B7SUM8

A8FULLADDER

B8CARRY

注意每个进位是怎么连接到下一个全加器的,所以这个叫“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的一个高层次概括,从零做零几个主要组件,比如行波进位加法器,它们只是一堆逻辑门巧妙地组合在一起而已

A70

A60OR00

A500oR

A40OROROUT

NOT

A30

A20OR0

A100oR

A00OR

74181只能处理4位输入,74181用了大概70个逻辑门,但不能执行乘除,8位ALU会需要数百个逻辑门,特殊符号代表ALU我们的8位ALU有两个输入A和B都是8位(bits)我们需要告诉ALU进行一些操作,例如加法或减法

(8bits)inputA(8bits)inputB

“1000=ADD”“1000”可能代表加法命令,“1100”代

表减法命令=subtract操作代码告诉我们ALU执行什么操

(4bits)OPERATIONCODE作,输出结果8位的

我们用4位的操作代码

OUTPUT

ALU还会输出一堆标志(Flag)“标志”是1位的,代表特定状态,

Flags:

Overflow(bit)溢出标志

Zero(bit)(true)零标志

Negative(bit)负标志

如果想知道想知道两个数字是否相等,比如相减两个数字,结果为0,我们的零测试电路(前面做的)会将零标志设为TRUE

(1),如果想知道:

A是否小于B,可以用ALU来算A减B,看负标志,是否为true,如果是true就知道A小于B,还有一条连到加法器的进位,如果溢出,我们就知道,这叫溢出标志,高级ALU有更多标志,但3个标志是ALU普遍通用的{半加器:

处理一个bit,2个输入}{全加器:

处理1个bit,3个输入}{8bit加法:

1个半加器,7个全加器}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1