计算机组成原理课件-第3章-计算机中的算术运算_第1页
计算机组成原理课件-第3章-计算机中的算术运算_第2页
计算机组成原理课件-第3章-计算机中的算术运算_第3页
计算机组成原理课件-第3章-计算机中的算术运算_第4页
计算机组成原理课件-第3章-计算机中的算术运算_第5页
已阅读5页,还剩121页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章计算机中的算术运算

第1讲:算术逻辑单元ALU(>1)

定点加减运算

第2讲:定点乘除运算

运算器组织、浮点运算、本章复习

1

-1-

3.1算术逻辑单元ALU

ALU是运算器的核心组成部分,以逻辑运算为基础.

ALU的核心部件是加法器.

3.1.1加法器及其进位结构

2

-2-

门电路的几种表示方法

与或与非或非异或异或非非

(AND)(OR)(NAND)(NOR)(EXOR)(EXNOR)(NOR)

ABXY=AdBY=A+BY=ABY=A+BY=A®BY=AeBY=A

000011011

010110101

100110100

111100010

A___DA1\Y

-NlY

廿■好打

B-

以A.A__A_kY2AY

部一上〜+X一,■->-►

标呼

BB

外AAAAA

A

流心

」B

注:表中的国标符号引用ANSIIEEEStd.91—1984:国外流行符号引用补充ANSIIEEEStd.91a—1991

3

-3-

一、半加器

图3・1半加器框图及真值表

4

-4-

G+i=AiBi

E=45.+AiBi=44

Si

AiBj

图3・2半加器逻辑电路

5

-5-

二、全加器

si

ci+1

AiBi

3-3全加器框图及真

值表

6

-6-

Sj=Aj®BjeCj

Cj+1=AjBj+AjCj+BjCj

=AiBi+(Aj+Bi)Ci

=AjBj+(AjeBj)Cj

.5ty

3-4全加器逻辑电路

7

-7-

Fulladderconstructedfrom2HalfAdders!

8

-8-

三、串行加法器

图3・5串行加法器框图

-9-

四、并行加法器

①进位公式分析

Ci+l=AjBi+(Ai®Bi)Ci

=AjBi+(Ai+Bi)Ci

定义两个辅助函数

Gj=AjBj

Pi=Aj©Bi

Gi(CarryGenerateFunction)

Pj(CarryPropagateFunction)

10

-10-

Ci+1=Gi+PjCj

②串行进位加法器(RippleCarryAdder)

S3S2S1SO

A3B3A2B2A1B1A0BO

图3・6见位串行进位加法器框图

11

-11

C1=G0+P0C0

C2=G1+P1C1

C3=G2+P2C2

I

I

I

Cn=Gn-1+Pn-1Cn-1

最长进位延迟时间为[4+2.5(n-1)]ty,

形成最后和的时间是[4+2.5(n-2)+1.5]ty,

与n成正比.

12

-12-

③先行进位加法器

提高加法器运算速度的关键是消除行波进位中进位逐

位串行传播,让各位进位独立同时形成.

13

_13_

C1=G0+P0C0

C2=G1+P1C1=G1+P1(G0+P0C0)

C3=G2+P2c2

=G2+P2(G1+P1(GO+POCO))

C4=G3+P3C3

=G3+P3(G2+P2

(G1+P1(G0+P0C0)))

14

-14-

展开并整理得到

C1=G0+P0C0

C2=G1+P1G0+P1P0C0

C3=G2+P2G1+P2P1G0+P2P1POCO

C4=G3+P3G2+P3P2G1+P3P2PlGO

+P3P2P1P0C0(图3・8)

先行进位CLA(CarryLookAhead)力口法器(图3・9).

15

-15-

Pi

=1

AiBj

图I位并行进位线路

-16-

④组间行波进位加法器

图3・11组间行波进位形成过程

-18-

S14S12S10SsS6s4S2So

Si15S13SuS907S5S3S1

iffiit"j[

wiMrwLiranra行ti

CLACLACLA

1l

/nU\Jium\*

AI5A14Al3A12Al1AloA9AsA7A6A5A4A3A2A1A0

B15B14B13B12B11B10B9B8B7B6B5B4B3B2B1B0

16位组间行波进位加法器

19

-19-

⑤两嘤行进位加法器

Gi为第i组先行进位加法器的进位

产生函抑,

Pi为第i组先行进位加法器的进位传

递函*数

Gi=G4i+3+P4i+3G4i+2+P4i+3P4i+2G4i+1

*+P4i+3P4i+2P4i+lG4i

Pj=P4i+3P4i+2P4i+1P4i,i=0,1,2,3

20

-20-

小组间产住四个进位

C4=G0+P0*CO***

C8=G1+P1GO+P1POCO*

C12=G2*+P?GJ+P2P1GO+

P2rP11*POwCOw***

C16=G3+P3G2+P3P2G1+

P3P2P1GO+P3P2P1POCO

21

-21-

图雷组间先行进位BCLA(Block

CarryLookAhead)部碎

22

-22-

一ZJ一

Cl6组间先行进位部件BCLA

C4

C8

Si

So

四位四位gl位Co

CLAJAA

加盘器

加法器c8

Al5A14Al3A12A11A10AQASA7AeAsA4A3A2AiAo

BI5B14B13B12B11BioB9BeB7BeB5B4B3B2BiBo

两级先行进位加法器

24

24

25

-25-

⑥其它的并行加法器

3-1632位进位选择加法器

26

-26-

五、一位8421码十进制加法器

3十进制数的8421码加法运算规则

⑴和01001时,不必修正

27

-27-

例x=3,y=4,求x+y=?

解:十进制数运算

3

8421码

+40011

7十)0100

0111(+7)

止确结果

28

-28-

(2)和21010时,需要修正

例x=8,y=5,求x+y=?

解:十进制数运算

8421码

8

1000

+5

+)0101

131101

错误结果

29

-29-

例x=9,y=8,求x+y=?

解:十进制数运算

98421码

1001

+8

+)1000

17

10001

错误结果

30

-30-

1101

10001

+)0110

+)0110

10011(13)

——10111(17)

止碉

正确

2、8421码十进制加法器的组成

31

-31-

表348421码加法器修正关系

32

-32-

需要修正的项为:C4,+S3,S2,+S3,S1=1;

33

一33-

A34津2AiBjHoBoC。

IIf11(3—UI

图3778421码十进制加法器

34

-34-

3.1.2多功能算术逻辑单元ALU

一、多功能算术逻辑单元74181

Fi=Ai©BieCi=Pi㊉Ci

35

-35-

74181的逻辑结构框图

36

-36-

Xi=S3AiBi

表3・2XiYi与AiBi的关系

XiS1SOYi

00100

01Ai+Bi01AiBi

10Ai+Bi10A旧i

11Ai110

-37-

对于任一Xi、Yi都满足

Xi+Yi=Xi

XiYi=Yi

■/Gi=XiYi

Pj=Xi©Yi=Xi+Yi

则Yi=Gi

Xi=Pi

Ci+1=Gi+PiCi=Yi+XiCi

38

-38-

则C1=YO+XOCO

C2=Y1+X1C1=Y1+X1Y0+X1X0C0

C3=Y2+X2C2=Y2+X2Y1+X2X1YO

+X2X1X0C0

39

-39-

-40-

二、先行进位发生器74182

图中G0~G3即〜3

*女

■P3

41

-41

Cn+x=G0(PO+Cn)

****

Cn+y=Gl(P1+G0(PO+Cn))

******

Un+Z=G2(P2+G1(P1+GO(PO+Cn)))

********

G(G)=G3(P3+G2)(P3+P2+G1)

****

(P3+P2+P1+GO)

******

P(P)=P3+P2+P1+PO

42

-42-

P3G3P2G2P1G1PoGoCn

o74182逻辑图

43

-43-

图,116位先行进位加法器框图

44

-44-

多功能算逻单元总结

•SN74181是4位先行进位ALU芯片,中规模集成电路.

•SN74182是4位BCLA(组间先行进位)芯片.

•多芯片级联构成先行进位ALU

-4个SN74181芯片串行构成一个16位单级先行进位ALU

-4个SN74181芯片与1个SN74182芯片可构成16位两级先行进位ALU

-16个SN74181芯片与5个SN74182芯片可构成64位先行进位ALU

•现代主流计算机中ALU并非通过芯片级联而成

-一个CPU芯片中有多个处理器核

-一个核中有多个32位/64位ALU!

45

-45-

3.2定点运算

3.2.1定点加减运算

一、补码加减法所依据的关系式

1、加法[x]补+囚]补=僮+丫]补

⑴x>0,y>0,贝!|x+y>0

[x]#+[y]#=x+y=[x+y]#

46

-46-

(2)x>0,y<0

[x]#=x,[y]#=2+y

则[x]补+[y]补=2+(x+y)

(i)|x|>|y|

O0x+y<1(正数)

[x]补+[y]补=2+(x+y)

=x+y=[x+y]1bO.xx...x

47

-47-

(ii)N<|y|

-1Sx+y<0(负数)

冈补+[y]补=2+(x+y-[x+y]补

(3)x<0,y>0与(2)类似

(4)x<0,y<0x+y<0

区补=2+x,[y]补=2+y,

贝lj[x]|b+[y]1b=2+x+2+y=2+(2+x+y)

48

-48-

・・・x+y<0,而且其绝对值又小于1.

则1S2+x+y<2

[XX

2+(2+x+y)=2+(x+y)

---[x]#+[y]#=2+(x+y)=[x+y]1b

2、减法[xy]补=[x+(・y)]补

=[x]补+[・y]补

49

-49-

(1)0Sy<1(正数)

[y]补=[y]原=0.yiy2・・・yn

[■y]原=i・yiy2…yn

[■y]补=1・yiy2...yn+2

50

-50-

因[y]#=2+y

1.11...1

贝。=»]补2—1.y1y2...yn

=(21.y1y2...yjn)

=(1.11...1+21.yly2...yn)

=(0.y1y2…yn+2)

n

y=0.yly2…yn+2

・・,(y)为正数

/.[y]补=0・yly2…yn+2

51

-51-

例1y=0.0110

[y]|b=1.1010

[y]补=0.0110

例2y=0.0111

[y]补=0.0111

[y]1b=1.1001

52

-52-

二、运算规则

①参加运算的操作数用补码表示.

②符号位参加运算.

③对于两数相加减的各种情况,计算

机都执行求和操作.当操作码为加运算时

,两数直接相加;当操作码为减运算时,

将减数连同符号位一起求反加1与被减数相加.

④运算结果以补码表示.

53

-53-

例1已知:x=0.1001,y=0.0110,

求:x+y=?

解:[x]补=0.1001[y]补=1.1010

[x]补0.1001

+M补1.1010

[x+y]补10.0011

x+y=O.OO11

54

-54-

例2已知:x=0.1001

y=0.0101,求:x+y=?

解:3]补=1.0111[y]|b=1.1011

冈补1.0111

+M补1.1011

[x+y]补11.0010

x+y=0.1110

55

-55-

例3已知:x=0.1001,y=0.0110,

求:xy=?

解:[x]补=0.1001[y]|b=0.0110

[y]补=1.1010

[x]补0.1001

+[y]补1.1010

[x・y]补10.0011

xy=0.0011

56

-56-

例4已知:x=0.1001

y=0.0110,求次y=?

解:凶补=1.0111[y]|b=1.1010

[y]补=0.0110

[x]补1.0111

+[y]补0.0110

[x・y]补1.1101

xy=0.0011

57

-57-

三、实现补码加减运算的逻辑电路

实现补码加减运算的逻辑电路图

58

-58-

S3s2S1s。

图3・22四位串行进位补码加减法器

59

-59-

四、溢出检测

1、溢出的概念

加法器和寄存器由多少个二进制

位组成通常称为定点运算器的字长.

计算机执行算术运算所产生的结

果超出机器数所能表示的数据范兑

,称为溢出.

60

-60-

例如x=0,110,y=0,011,

则冈补0,110

+[y]补0,011

[x+y]补1,001(溢出)

x*y=

正溢

负溢

61

-61-

(a)0,110(+6)(b)1,110(2)

+)1,011(5)+)1,101(3)

AC113

IVrVZ■\■II

无溢出

(c)0,110(+6)(d)1,100(4)

+)0,011(+3)+)1,011(5)

1,001、10,111

溢出溢出

62

-62-

2、溢出检测方法

(1)采用一个符号位

A=an-1an-2......aO

B=bn-1bn-2......bO

S=sn-1sn-2……so

OVR=an-1bn-1sn-1+an-1bn-1sn-1

63

-63-

an-1

Sn-1

R

bn-1

图3・24溢出检测电路

64

-64-

(2)用cn-1和cn判断

0VR=cn-1ecn

(3)采用双符号位(模4补码或变形补码)

模4补码的定义为

冈补=

x0^x<2

冈补+[y]补=□+y]补一

4+x2<x<0

65

-65-

两数相加后结果符号为:

00或11没有溢出;

01正溢;

10负溢.

OVR=sf1esf2

66

-66-

例1已知x=0・010,y=0,011,求x+y=?

解[x]补=00.010[y]补=00.011

凶补00.010

+)[y]补00.011

00.101

无溢出x+y=0.101

67

-67-

例2已知x=0.010,y=0.011,求x+y=?

解冈补=11.110[y]补=11.101

[x]补11.110

+)[y]补11.101

11.011

无溢出x+y=0.101

68

-68-

例3已知x=0.110,y=0,011,求x+y=?

解M|b=00.110[y]补=00.011

[x]补00.110

+)[y]补00.011

01,001

正溢出

69

-69-

例4已知x=0.100,y=0.101,求x+y=?

解冈补=11.100[y]补=11.011

冈补11.100

+)[y]补11.011

10.111

负溢出

70

-70-

关于溢出标志位

•除Zero(ZF)、Overflow(OF)外,许多机器还生成进/借

位标志(CF)、符号标志(NF/SF)等.

•标志(Flag)在运算电路中产生,被记录到专门的寄存

器中,以便在分支指令中被用来作为条件.

•存放标志的寄存器通常称为程序/状态字寄存器或标

志寄存器.每个标志对应标志寄存器中的一个标志位.

无符号教:CF表示进住、

溢出(不考虑OF)

有符号教:OF表示溢出

(不考虑CF)

71

-71-

3.3.2定点乘法运算

通过多次相加和移位来实现乘除运算.

一、移位操作

1、移位操作的种类

逻辑移位

循环移位

算术移位

72

-72-

2、逻辑移位(图3・25)

左移低位补0,右移高位补0

如10110101

01101010

01011010

3、循环移位(图3・25)

10011001

00110011

11001100

73

-73-

4、算术移位

算术移位则数的符号不变而数量

发生变化.左移一位将使数值扩大一

倍(乘以2)(在不产生溢出的情况下),

右移一位则使数值缩小一倍(乘以1/2)

(如果不考虑舍入的情况).

(1)正数

移位后的空位均补0(符号不变)

74

-74-

例0.0110

0.1100

0.G011

例:某变重初值:01111111(=127)

左移1位后为:

11111110(=・126/254,溢出,错误)

75

-75-

(2)负数

①负数的原码移位后的空位补0

②负数的补码左移后的空位补0,右移

后的空位补1.

③负数的反码移位后的空位补1

76

-76-

二、原码一位乘法

设冈原=xs,x1x2・・・xn

[y]B=ys.yiy2...yn

贝U[x]原・[y]原

=[xs®ys].(0.x!x2--.xn)(O.y1y2-..yn)

78

-78-

1、运算方法

例x=0.1101y=0.1011

0.1101

x)0.1011

1101

1101

uuuu

1101

0.10001111

乘数寄存器

79

-79-

x-y=x-(0,1011)

=0,1-x+O.OO-x+0.001-x+0.0001・x

=0.1{x+0.1[Ox+0.1(x+0.1x)]}

■1-1

=2{x+2-[Ox+2"(x+2"(x+0))]}

P1

P2

P3

P480

-80-

对于一般情况

设x=0.xi平・・・xn,y=y.y1y2・・・,n

贝l]xy=2/y1x+2(y2x+2(...

+2(yn-1x+2(ynx+O))...)))

81

-81-

其递推公式为:

P0=01

P1=21(ynx+PO)

P2=2(yn-1x+Pl)

p^■=21

1(yn-i+1x+Pi-1)

I

;1

Pn=2(ylx+Pn-1)

[xy]=(xs®ys)Pn

82

-82-

举例:x=0.1101y=0.1011,

[x・y]原=(xseys)Pn=0.10001111

x-y=0.10001111

83

-83-

部分积(A)乘数(C)

000001011

+)01101

―011011011

—>00110ihoi

+)01101

ikoi

10011

—01001iiho

+)00000

0100111H0

—00100nih

+)01101

10001111H

1111]

f0100084

-84-

2、原理框图

86

-86-

三、补码一位乘法

1、补码与真值之间的关系

设[x]|b=xs-x1x2...xn

贝ljx="xs+0.x1x2...xn

(证明略)

87

-87-

2、补码乘法算法的推导

设被乘数[X]补=xs.x1X2.・.xn,

乘数M补=ys・yiy2…yn

则[X・y]补=[x]补・y

(证明略)

88

-88-

3、补码乘法比较法一布斯(Booth)乘法

(1)运算规则

12n

区叨补=冈补[ys+y12+y22+...+yn2]

=冈补[ys+(y1y12)+(y22

2(n-1)

y22)+...+(yn2

=冈补[(y14*y2yi)2

(n1)

+(ynyn-1)2—+(0yn)2

89

-89-

+

+

2

2

0一

(

o【

x

+

】"

【*

x

x

】M

*

y

*

M

3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论