計(jì)算機(jī)組成原理課件-第3章-計(jì)算機(jī)中的算術(shù)運(yùn)算_第1頁(yè)
計(jì)算機(jī)組成原理課件-第3章-計(jì)算機(jī)中的算術(shù)運(yùn)算_第2頁(yè)
計(jì)算機(jī)組成原理課件-第3章-計(jì)算機(jī)中的算術(shù)運(yùn)算_第3頁(yè)
計(jì)算機(jī)組成原理課件-第3章-計(jì)算機(jī)中的算術(shù)運(yùn)算_第4頁(yè)
計(jì)算機(jī)組成原理課件-第3章-計(jì)算機(jī)中的算術(shù)運(yùn)算_第5頁(yè)
已閱讀5頁(yè),還剩121頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第三章計(jì)算機(jī)中的算術(shù)運(yùn)算

第1講:算術(shù)邏輯單元ALU(>1)

定點(diǎn)加減運(yùn)算

第2講:定點(diǎn)乘除運(yùn)算

運(yùn)算器組織、浮點(diǎn)運(yùn)算、本章復(fù)習(xí)

1

-1-

3.1算術(shù)邏輯單元ALU

ALU是運(yùn)算器的核心組成部分,以邏輯運(yùn)算為基礎(chǔ).

ALU的核心部件是加法器.

3.1.1加法器及其進(jìn)位結(jié)構(gòu)

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一,■->-?

標(biāo)呼

BB

國(guó)

外AAAAA

A

流心

」B

注:表中的國(guó)標(biāo)符號(hào)引用ANSIIEEEStd.91—1984:國(guó)外流行符號(hào)引用補(bǔ)充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-

四、并行加法器

①進(jìn)位公式分析

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

=AjBi+(Ai+Bi)Ci

定義兩個(gè)輔助函數(shù)

Gj=AjBj

Pi=Aj?Bi

Gi(CarryGenerateFunction)

Pj(CarryPropagateFunction)

10

-10-

Ci+1=Gi+PjCj

②串行進(jìn)位加法器(RippleCarryAdder)

S3S2S1SO

A3B3A2B2A1B1A0BO

圖3?6見(jiàn)位串行進(jìn)位加法器框圖

11

-11

C1=G0+P0C0

C2=G1+P1C1

C3=G2+P2C2

I

I

I

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

最長(zhǎng)進(jìn)位延遲時(shí)間為[4+2.5(n-1)]ty,

形成最后和的時(shí)間是[4+2.5(n-2)+1.5]ty,

與n成正比.

12

-12-

③先行進(jìn)位加法器

提高加法器運(yùn)算速度的關(guān)鍵是消除行波進(jìn)位中進(jìn)位逐

位串行傳播,讓各位進(jìn)位獨(dú)立同時(shí)形成.

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)

先行進(jìn)位CLA(CarryLookAhead)力口法器(圖3?9).

15

-15-

Pi

=1

AiBj

圖I位并行進(jìn)位線路

-16-

④組間行波進(jìn)位加法器

圖3?11組間行波進(jìn)位形成過(guò)程

-18-

S14S12S10SsS6s4S2So

Si15S13SuS907S5S3S1

iffiit"j[

wiMrwLiranra行ti

CLACLACLA

1l

/nU\Jium\*

AI5A14Al3A12Al1AloA9AsA7A6A5A4A3A2A1A0

B15B14B13B12B11B10B9B8B7B6B5B4B3B2B1B0

16位組間行波進(jìn)位加法器

19

-19-

⑤兩嚶行進(jìn)位加法器

Gi為第i組先行進(jìn)位加法器的進(jìn)位

產(chǎn)生函抑,

Pi為第i組先行進(jìn)位加法器的進(jìn)位傳

遞函*數(shù)

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-

小組間產(chǎn)住四個(gè)進(jìn)位

C4=G0+P0*CO***

C8=G1+P1GO+P1POCO*

C12=G2*+P?GJ+P2P1GO+

P2rP11*POwCOw***

C16=G3+P3G2+P3P2G1+

P3P2P1GO+P3P2P1POCO

21

-21-

圖雷組間先行進(jìn)位BCLA(Block

CarryLookAhead)部碎

22

-22-

一ZJ一

Cl6組間先行進(jìn)位部件BCLA

C4

C8

Si

So

四位四位gl位Co

CLAJAA

加盤器

加法器c8

Al5A14Al3A12A11A10AQASA7AeAsA4A3A2AiAo

BI5B14B13B12B11BioB9BeB7BeB5B4B3B2BiBo

兩級(jí)先行進(jìn)位加法器

24

24

25

-25-

⑥其它的并行加法器

3-1632位進(jìn)位選擇加法器

26

-26-

五、一位8421碼十進(jìn)制加法器

3十進(jìn)制數(shù)的8421碼加法運(yùn)算規(guī)則

⑴和01001時(shí),不必修正

27

-27-

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

解:十進(jìn)制數(shù)運(yùn)算

3

8421碼

+40011

7十)0100

0111(+7)

止確結(jié)果

28

-28-

(2)和21010時(shí),需要修正

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

解:十進(jìn)制數(shù)運(yùn)算

8421碼

8

1000

+5

+)0101

131101

錯(cuò)誤結(jié)果

29

-29-

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

解:十進(jìn)制數(shù)運(yùn)算

98421碼

1001

+8

+)1000

17

10001

錯(cuò)誤結(jié)果

30

-30-

1101

10001

+)0110

+)0110

10011(13)

——10111(17)

止碉

正確

2、8421碼十進(jìn)制加法器的組成

31

-31-

表348421碼加法器修正關(guān)系

32

-32-

需要修正的項(xiàng)為:C4,+S3,S2,+S3,S1=1;

33

一33-

A34津2AiBjHoBoC。

IIf11(3—UI

圖3778421碼十進(jìn)制加法器

34

-34-

3.1.2多功能算術(shù)邏輯單元ALU

一、多功能算術(shù)邏輯單元74181

Fi=Ai?BieCi=Pi十Ci

35

-35-

74181的邏輯結(jié)構(gòu)框圖

36

-36-

Xi=S3AiBi

表3?2XiYi與AiBi的關(guān)系

XiS1SOYi

00100

01Ai+Bi01AiBi

10Ai+Bi10A舊i

11Ai110

-37-

對(duì)于任一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-

二、先行進(jìn)位發(fā)生器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位先行進(jìn)位加法器框圖

44

-44-

多功能算邏單元總結(jié)

?SN74181是4位先行進(jìn)位ALU芯片,中規(guī)模集成電路.

?SN74182是4位BCLA(組間先行進(jìn)位)芯片.

?多芯片級(jí)聯(lián)構(gòu)成先行進(jìn)位ALU

-4個(gè)SN74181芯片串行構(gòu)成一個(gè)16位單級(jí)先行進(jìn)位ALU

-4個(gè)SN74181芯片與1個(gè)SN74182芯片可構(gòu)成16位兩級(jí)先行進(jìn)位ALU

-16個(gè)SN74181芯片與5個(gè)SN74182芯片可構(gòu)成64位先行進(jìn)位ALU

?現(xiàn)代主流計(jì)算機(jī)中ALU并非通過(guò)芯片級(jí)聯(lián)而成

-一個(gè)CPU芯片中有多個(gè)處理器核

-一個(gè)核中有多個(gè)32位/64位ALU!

45

-45-

3.2定點(diǎn)運(yùn)算

3.2.1定點(diǎn)加減運(yùn)算

一、補(bǔ)碼加減法所依據(jù)的關(guān)系式

1、加法[x]補(bǔ)+囚]補(bǔ)=僮+丫]補(bǔ)

⑴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]補(bǔ)+[y]補(bǔ)=2+(x+y)

(i)|x|>|y|

O0x+y<1(正數(shù))

[x]補(bǔ)+[y]補(bǔ)=2+(x+y)

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

47

-47-

(ii)N<|y|

-1Sx+y<0(負(fù)數(shù))

岡補(bǔ)+[y]補(bǔ)=2+(x+y-[x+y]補(bǔ)

(3)x<0,y>0與(2)類似

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

區(qū)補(bǔ)=2+x,[y]補(bǔ)=2+y,

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

48

-48-

???x+y<0,而且其絕對(duì)值又小于1.

則1S2+x+y<2

[XX

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

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

2、減法[xy]補(bǔ)=[x+(?y)]補(bǔ)

=[x]補(bǔ)+[?y]補(bǔ)

49

-49-

(1)0Sy<1(正數(shù))

[y]補(bǔ)=[y]原=0.yiy2???yn

[■y]原=i?yiy2…yn

[■y]補(bǔ)=1?yiy2...yn+2

50

-50-

因[y]#=2+y

1.11...1

貝。=?]補(bǔ)2—1.y1y2...yn

=(21.y1y2...yjn)

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

=(0.y1y2…yn+2)

n

y=0.yly2…yn+2

??,(y)為正數(shù)

/.[y]補(bǔ)=0?yly2…yn+2

51

-51-

例1y=0.0110

[y]|b=1.1010

[y]補(bǔ)=0.0110

例2y=0.0111

[y]補(bǔ)=0.0111

[y]1b=1.1001

52

-52-

二、運(yùn)算規(guī)則

①參加運(yùn)算的操作數(shù)用補(bǔ)碼表示.

②符號(hào)位參加運(yùn)算.

③對(duì)于兩數(shù)相加減的各種情況,計(jì)算

機(jī)都執(zhí)行求和操作.當(dāng)操作碼為加運(yùn)算時(shí)

,兩數(shù)直接相加;當(dāng)操作碼為減運(yùn)算時(shí),

將減數(shù)連同符號(hào)位一起求反加1與被減數(shù)相加.

④運(yùn)算結(jié)果以補(bǔ)碼表示.

53

-53-

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

求:x+y=?

解:[x]補(bǔ)=0.1001[y]補(bǔ)=1.1010

[x]補(bǔ)0.1001

+M補(bǔ)1.1010

[x+y]補(bǔ)10.0011

x+y=O.OO11

54

-54-

例2已知:x=0.1001

y=0.0101,求:x+y=?

解:3]補(bǔ)=1.0111[y]|b=1.1011

岡補(bǔ)1.0111

+M補(bǔ)1.1011

[x+y]補(bǔ)11.0010

x+y=0.1110

55

-55-

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

求:xy=?

解:[x]補(bǔ)=0.1001[y]|b=0.0110

[y]補(bǔ)=1.1010

[x]補(bǔ)0.1001

+[y]補(bǔ)1.1010

[x?y]補(bǔ)10.0011

xy=0.0011

56

-56-

例4已知:x=0.1001

y=0.0110,求次y=?

解:兇補(bǔ)=1.0111[y]|b=1.1010

[y]補(bǔ)=0.0110

[x]補(bǔ)1.0111

+[y]補(bǔ)0.0110

[x?y]補(bǔ)1.1101

xy=0.0011

57

-57-

三、實(shí)現(xiàn)補(bǔ)碼加減運(yùn)算的邏輯電路

實(shí)現(xiàn)補(bǔ)碼加減運(yùn)算的邏輯電路圖

58

-58-

S3s2S1s。

圖3?22四位串行進(jìn)位補(bǔ)碼加減法器

59

-59-

四、溢出檢測(cè)

1、溢出的概念

加法器和寄存器由多少個(gè)二進(jìn)制

位組成通常稱為定點(diǎn)運(yùn)算器的字長(zhǎng).

計(jì)算機(jī)執(zhí)行算術(shù)運(yùn)算所產(chǎn)生的結(jié)

果超出機(jī)器數(shù)所能表示的數(shù)據(jù)范兌

,稱為溢出.

60

-60-

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

則岡補(bǔ)0,110

+[y]補(bǔ)0,011

[x+y]補(bǔ)1,001(溢出)

x*y=

正溢

負(fù)溢

61

-61-

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

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

AC113

IVrVZ■\■II

無(wú)溢出

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

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

1,001、10,111

溢出溢出

62

-62-

2、溢出檢測(cè)方法

(1)采用一個(gè)符號(hào)位

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溢出檢測(cè)電路

64

-64-

(2)用cn-1和cn判斷

0VR=cn-1ecn

(3)采用雙符號(hào)位(模4補(bǔ)碼或變形補(bǔ)碼)

模4補(bǔ)碼的定義為

岡補(bǔ)=

x0^x<2

岡補(bǔ)+[y]補(bǔ)=□+y]補(bǔ)一

4+x2<x<0

65

-65-

兩數(shù)相加后結(jié)果符號(hào)為:

00或11沒(méi)有溢出;

01正溢;

10負(fù)溢.

OVR=sf1esf2

66

-66-

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

解[x]補(bǔ)=00.010[y]補(bǔ)=00.011

兇補(bǔ)00.010

+)[y]補(bǔ)00.011

00.101

無(wú)溢出x+y=0.101

67

-67-

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

解岡補(bǔ)=11.110[y]補(bǔ)=11.101

[x]補(bǔ)11.110

+)[y]補(bǔ)11.101

11.011

無(wú)溢出x+y=0.101

68

-68-

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

解M|b=00.110[y]補(bǔ)=00.011

[x]補(bǔ)00.110

+)[y]補(bǔ)00.011

01,001

正溢出

69

-69-

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

解岡補(bǔ)=11.100[y]補(bǔ)=11.011

岡補(bǔ)11.100

+)[y]補(bǔ)11.011

10.111

負(fù)溢出

70

-70-

關(guān)于溢出標(biāo)志位

?除Zero(ZF)、Overflow(OF)外,許多機(jī)器還生成進(jìn)/借

位標(biāo)志(CF)、符號(hào)標(biāo)志(NF/SF)等.

?標(biāo)志(Flag)在運(yùn)算電路中產(chǎn)生,被記錄到專門的寄存

器中,以便在分支指令中被用來(lái)作為條件.

?存放標(biāo)志的寄存器通常稱為程序/狀態(tài)字寄存器或標(biāo)

志寄存器.每個(gè)標(biāo)志對(duì)應(yīng)標(biāo)志寄存器中的一個(gè)標(biāo)志位.

無(wú)符號(hào)教:CF表示進(jìn)住、

溢出(不考慮OF)

有符號(hào)教:OF表示溢出

(不考慮CF)

71

-71-

3.3.2定點(diǎn)乘法運(yùn)算

通過(guò)多次相加和移位來(lái)實(shí)現(xiàn)乘除運(yùn)算.

一、移位操作

1、移位操作的種類

邏輯移位

循環(huán)移位

算術(shù)移位

72

-72-

2、邏輯移位(圖3?25)

左移低位補(bǔ)0,右移高位補(bǔ)0

如10110101

01101010

01011010

3、循環(huán)移位(圖3?25)

10011001

00110011

11001100

73

-73-

4、算術(shù)移位

算術(shù)移位則數(shù)的符號(hào)不變而數(shù)量

發(fā)生變化.左移一位將使數(shù)值擴(kuò)大一

倍(乘以2)(在不產(chǎn)生溢出的情況下),

右移一位則使數(shù)值縮小一倍(乘以1/2)

(如果不考慮舍入的情況).

(1)正數(shù)

移位后的空位均補(bǔ)0(符號(hào)不變)

74

-74-

例0.0110

0.1100

0.G011

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

左移1位后為:

11111110(=?126/254,溢出,錯(cuò)誤)

75

-75-

(2)負(fù)數(shù)

①負(fù)數(shù)的原碼移位后的空位補(bǔ)0

②負(fù)數(shù)的補(bǔ)碼左移后的空位補(bǔ)0,右移

后的空位補(bǔ)1.

③負(fù)數(shù)的反碼移位后的空位補(bǔ)1

76

-76-

二、原碼一位乘法

設(shè)岡原=xs,x1x2???xn

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

貝U[x]原?[y]原

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

78

-78-

1、運(yùn)算方法

例x=0.1101y=0.1011

0.1101

x)0.1011

1101

1101

uuuu

1101

0.10001111

乘數(shù)寄存器

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-

對(duì)于一般情況

設(shè)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)乘數(shù)(C)

000001011

+)01101

―011011011

—>00110ihoi

+)01101

ikoi

10011

—01001iiho

+)00000

0100111H0

—00100nih

+)01101

10001111H

1111]

f0100084

-84-

2、原理框圖

86

-86-

三、補(bǔ)碼一位乘法

1、補(bǔ)碼與真值之間的關(guān)系

設(shè)[x]|b=xs-x1x2...xn

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

(證明略)

87

-87-

2、補(bǔ)碼乘法算法的推導(dǎo)

設(shè)被乘數(shù)[X]補(bǔ)=xs.x1X2.?.xn,

乘數(shù)M補(bǔ)=ys?yiy2…yn

則[X?y]補(bǔ)=[x]補(bǔ)?y

(證明略)

88

-88-

3、補(bǔ)碼乘法比較法一布斯(Booth)乘法

(1)運(yùn)算規(guī)則

12n

區(qū)叨補(bǔ)=岡補(bǔ)[ys+y12+y22+...+yn2]

=岡補(bǔ)[ys+(y1y12)+(y22

2(n-1)

y22)+...+(yn2

=岡補(bǔ)[(y14*y2yi)2

(n1)

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

89

-89-

+

+

2

2

0一

(

o【

x

+

】"

【*

x

x

】M

*

y

*

M

3

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論