第六講定點(diǎn)運(yùn)算器及浮點(diǎn)數(shù)運(yùn)算演示文稿_第1頁(yè)
第六講定點(diǎn)運(yùn)算器及浮點(diǎn)數(shù)運(yùn)算演示文稿_第2頁(yè)
第六講定點(diǎn)運(yùn)算器及浮點(diǎn)數(shù)運(yùn)算演示文稿_第3頁(yè)
第六講定點(diǎn)運(yùn)算器及浮點(diǎn)數(shù)運(yùn)算演示文稿_第4頁(yè)
第六講定點(diǎn)運(yùn)算器及浮點(diǎn)數(shù)運(yùn)算演示文稿_第5頁(yè)
已閱讀5頁(yè),還剩57頁(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)介

第六講定點(diǎn)運(yùn)算器及浮點(diǎn)數(shù)運(yùn)算演示文稿現(xiàn)在是1頁(yè)\一共有62頁(yè)\編輯于星期四優(yōu)選第六講定點(diǎn)運(yùn)算器及浮點(diǎn)數(shù)運(yùn)算現(xiàn)在是2頁(yè)\一共有62頁(yè)\編輯于星期四S0S1S2S3X0Y0

參數(shù)S0,S1,S2,S3

分別控制輸入Ai

和Bi

,產(chǎn)生Y和X的函數(shù)。其中:Yi是受S0,S1控制的Ai和Bi的組合函數(shù);Xi是受S2

,S3控制的Ai和Bi組合函數(shù)。

函數(shù)關(guān)系如表所示。Xi=S2S3+S2S3(Ai+Bi)+S2S3(Ai+Bi)+S2S3Ai

Yi=S0S1Ai+S0S1AiBi+S0S1AiBi?

核心部分是由兩個(gè)半加器組成的全加器。?

由M控制第二級(jí)半加器選擇邏輯運(yùn)算或算術(shù)運(yùn)算(所需的低位進(jìn)位Cn

)。一位ALU基本邏輯電路現(xiàn)在是3頁(yè)\一共有62頁(yè)\編輯于星期四S0S1

Yi

S2S3

Xi

0

0

0

1

1

0

1

1Ai

AiBi

AiBi

00

0

0

1

1

0

1

11

Ai+Bi

Ai+Bi

Ai

進(jìn)一步化簡(jiǎn):Xi=S3AiBi+S2AiBiYi=Ai+S0Bi+S1BiAi+S0Bi+S1BiS3AiBi+S2AiBiXiYi==Yi

Fi=Y(jié)i⊕Xi⊕Cn+iCn+i+1=Y(jié)i+XiCn+i現(xiàn)在是4頁(yè)\一共有62頁(yè)\編輯于星期四綜上所述,ALU的一位邏輯表達(dá)式為:Xi=S3AiBi+S2AiBiYi=Ai+S0Bi+S1Bi

Fi=Y(jié)i⊕Xi⊕Cn+iCn+i+1=Y(jié)i+XiCn+i現(xiàn)在是5頁(yè)\一共有62頁(yè)\編輯于星期四4位之間采用先行進(jìn)位(并行進(jìn)位)公式。根據(jù)Cn+i+1=Y(jié)i+XiCn+i,每一位的進(jìn)位公式可遞推如下:

?

第0位向第1位的進(jìn)位公式為:

Cn+1=Y(jié)0+X0Cn

(其中Cn是向第0位(末位)的進(jìn)位)

?

第1位向第2位的進(jìn)位公式為:

Cn+2=Y(jié)1+X1Cn+1=Y(jié)1+Y0X1+X0X1Cn

?

第2位向第3位的進(jìn)位公式為:

Cn+3=Y(jié)2+X2Cn+2=Y(jié)2+Y1X1+Y0X1X2+X0X1X2Cn?

第3位的進(jìn)位輸出(即整個(gè)4位運(yùn)算進(jìn)位輸出)公式為:

Cn+4=Y3+X3Cn+3=Y3+Y2X3+Y1X2X3+Y0X1X2X3+X0X1X2X3Cn4位ALU的進(jìn)位關(guān)系及邏輯電路現(xiàn)在是6頁(yè)\一共有62頁(yè)\編輯于星期四Cn+1=Y(jié)0+X0CnCn+2=Y(jié)1+X1Cn+1=Y(jié)1+Y0X1+X0X1Cn

Cn+3=Y(jié)2+X2Cn+2=Y(jié)2+Y1X1+Y0X1X2+X0X1X2CnCn+4=Y3+X3Cn+3=Y3+Y2X3+Y1X2X3+Y0X1X2X3+X0X1X2X3Cn

Cn+4是最后進(jìn)位輸出。邏輯表達(dá)式表明,這是一個(gè)先行進(jìn)位邏輯。換句話說(shuō),第0位的進(jìn)位輸入Cn可以直接傳送到最高位上去,因而可以實(shí)現(xiàn)高速運(yùn)算。下圖為用上述原始推導(dǎo)公式實(shí)現(xiàn)的4位算術(shù)/邏輯運(yùn)算單元(ALU)

——74181ALU從進(jìn)位關(guān)系上看現(xiàn)在是7頁(yè)\一共有62頁(yè)\編輯于星期四

正邏輯表示的74181現(xiàn)在是8頁(yè)\一共有62頁(yè)\編輯于星期四

第3位的進(jìn)位輸出(即整個(gè)4位運(yùn)算進(jìn)位輸出)公式為:

Cn+4=Y3+X3Cn+3=Y3+Y2X3+Y1X2X3+Y0X1X2X3+X0X1X2X3Cn設(shè)G=Y(jié)3+Y2X3+Y1X2X3+Y0X1X2X3

P=X0X1X2X3

Cn+4=G+PCn

其中G稱為進(jìn)位發(fā)生輸出,P稱為進(jìn)位傳送輸出。在電路中多加這兩個(gè)進(jìn)位輸出的目的,是為了便于實(shí)現(xiàn)多片(組)ALU之間的先行進(jìn)位。P和G的含義現(xiàn)在是9頁(yè)\一共有62頁(yè)\編輯于星期四負(fù)邏輯表示的74181X0Y0X1Y1X2Y2X3Y3現(xiàn)在是10頁(yè)\一共有62頁(yè)\編輯于星期四

2.算術(shù)邏輯運(yùn)算的實(shí)現(xiàn)上圖中控制端M用來(lái)控制ALU進(jìn)行算術(shù)運(yùn)算還是進(jìn)行邏輯運(yùn)算:M=0時(shí):

M對(duì)進(jìn)位信號(hào)沒有任何影響。此時(shí)Fi

不僅與本位的被操作數(shù)Yi和操作數(shù)Xi

有關(guān),而且與向本位的進(jìn)位值Cn+i

有關(guān),因此M=0時(shí),進(jìn)行算術(shù)操作。

M=1時(shí):

封鎖了各位的進(jìn)位輸出,即Cn+i

=0,因此各位的運(yùn)算結(jié)果Fi

僅與Yi

和Xi

有關(guān),故M=1時(shí),進(jìn)行邏輯操作?,F(xiàn)在是11頁(yè)\一共有62頁(yè)\編輯于星期四下圖為工作于負(fù)邏輯和正邏輯操作方式的74181ALU方框圖。兩種操作是等效的。?對(duì)正邏輯操作數(shù)來(lái)說(shuō):

算術(shù)運(yùn)算稱高電平操作;邏輯運(yùn)算稱正邏輯操作

(即高電平為“1”,低電平為“0”)。?對(duì)于負(fù)邏輯操作數(shù)來(lái)說(shuō):

正好相反?,F(xiàn)在是12頁(yè)\一共有62頁(yè)\編輯于星期四AA+BA+B減1A加AB(A+B)加ABA減B減1AB減1A加ABA加B(A+B)加ABAB減1A加A*(A+B)加A(A+B)加AA減1AA+BAB邏輯0ABBABABA+BABBAB邏輯1A+BA+BA

A減1AB減1

AB減1

減1A加(A+B)AB加(A+B)A減B減1A+BA加(A+B)A加BAB加(A+B)A+BA加A*AB加AAB加AA

AAB

A+B

邏輯1

A+BB

ABA+B

ABAB

BA+B

邏輯0AB

ABALLLLLLLHLLHLLLHHLHLLLHLHLHHLLHHHHLLLHLLHHLHLHLHHHHLLHHLHHHHLHHHH算術(shù)運(yùn)算M=LCn=H邏輯M=H算術(shù)運(yùn)算M=LCn=L邏輯M=H正邏輯輸入與輸出負(fù)邏輯輸入與輸出工作方式選擇輸入S3S2S1S0

現(xiàn)在是13頁(yè)\一共有62頁(yè)\編輯于星期四(1)H=高電平,L=低電平;(2)*表示每一位均移到下一個(gè)更高位,即A*=2A。(3)

算術(shù)運(yùn)算操作是用補(bǔ)碼表示法來(lái)表示的,其中:

“加”是指算術(shù)加,運(yùn)算時(shí)要考慮進(jìn)位;符號(hào)“+”是指“邏輯加”。(4)

減法是用補(bǔ)碼方法進(jìn)行的,其中數(shù)的反碼是內(nèi)部產(chǎn)生的,而結(jié)果輸出“A減B減1”,因此做減法時(shí)需在最末位產(chǎn)生一個(gè)強(qiáng)迫進(jìn)位(加1),以便產(chǎn)生“A減B”的結(jié)果。(5)

“A=B”輸出端可指示兩個(gè)數(shù)是否相等;現(xiàn)在是14頁(yè)\一共有62頁(yè)\編輯于星期四3.并行加法器的進(jìn)位邏輯74181ALU為4位并行加法器,組成16位的并行加法器——怎么辦?

4片(組)74181連接——怎樣連?

?組與組之間串行連接

?組與組之間并行連接現(xiàn)在是15頁(yè)\一共有62頁(yè)\編輯于星期四組間串行進(jìn)位C4=G0+P0C0C8=G1+P1C4C12=G2+P2C8C16=G3+P3C12進(jìn)位關(guān)系Cn+1=Y(jié)0+X0CnCn+2=Y(jié)1+X1Cn+1=Y(jié)1+Y0X1+X0X1Cn

Cn+3=Y(jié)2+X2Cn+2=Y(jié)2+Y1X1+Y0X1X2+X0X1X2CnCn+4=Y3+X3Cn+3=Y3+Y2X3+Y1X2X3+Y0X1X2X3+X0X1X2X3Cn組內(nèi)組間X0Y0X1Y1X2Y2X3Y3X0Y0X1Y1X2Y2X3Y3C4C8C4C00011G=Y(jié)3+Y2X3+Y1X2X3+Y0X1X2X3

P=X0X1X2X3現(xiàn)在是16頁(yè)\一共有62頁(yè)\編輯于星期四(2)組間并行進(jìn)位——兩級(jí)先行進(jìn)位的ALU由串行進(jìn)位關(guān)系C8=G1+P1C4=G1+P1(G0+P0C0)=G1+G0P1+P0P1C0得:C4=G0+P0C0C8=G1+P1C4C12=G2+P2C8C16=G3+P3C12C4=G0+P0C0C12=G2+P2C8=G2+P2(G1+G0P1+P0P1Cn)=G2+G1P2+G0P1P2+P0P1P2C0C16=G3+P3C12=G3+G2P3+G1P1P2+G0P1P2P3+P0P1P2P3C0

=G*+P*C0其中:P*=P0P1P2P3G*=G3+G2P3+G1P1P2+G0P1P2P3根據(jù)上述公式實(shí)現(xiàn)邏輯電路:現(xiàn)在是17頁(yè)\一共有62頁(yè)\編輯于星期四

X0Y0X1Y1X2Y2X3Y3

C12C8C4

X0Y0X1Y1X2Y2X3Y3

X0Y0X1Y1X2Y2X3Y3

0

X0Y0X1Y1X2Y2X3Y3

現(xiàn)在是18頁(yè)\一共有62頁(yè)\編輯于星期四4.先行進(jìn)位部件(CLA)——7418274182是一個(gè)并行進(jìn)位部件,其內(nèi)部結(jié)構(gòu)圖如下:其中G*稱為成組進(jìn)位發(fā)生輸出,P*稱為成組進(jìn)位傳送輸出。現(xiàn)在是19頁(yè)\一共有62頁(yè)\編輯于星期四Cn+x=G0+P0CnCn+y=G1+P1Cn+x=G1+G0P1+P0P1CnCn+z=G2+P2Cn+y=G2+G1P2+G0P1P2+P0P1P2CnCn+4=G3+P3Cn+z=G3+G2P3+G1P1P2+G0P1P2P3+P0P1P2P3Cn

=G*+P*Cn其中:P*=P0P1P2P3

G*=G3+G2P3+G1P1P2+G0P1P2P3先行進(jìn)位部件74182CLA所提供的進(jìn)位邏輯關(guān)系如下:現(xiàn)在是20頁(yè)\一共有62頁(yè)\編輯于星期四74181ALU設(shè)置了P和G兩個(gè)本組先行進(jìn)位輸出端。如果將四片74181的P,G輸出端送入到74182先行進(jìn)位部件(CLA),又可實(shí)現(xiàn)第二級(jí)的先行進(jìn)位,即組與組之間的先行進(jìn)位。例:16位字長(zhǎng)ALU的構(gòu)成G*P*現(xiàn)在是21頁(yè)\一共有62頁(yè)\編輯于星期四?C3、C7、C11是由74182同時(shí)形成的;?其不同點(diǎn)是74182還提供大組間的進(jìn)位函數(shù)G*

和大組傳遞條件P*,以便在位數(shù)更長(zhǎng)時(shí)組成下一級(jí)先行進(jìn)位鏈。由圖可知:現(xiàn)在是22頁(yè)\一共有62頁(yè)\編輯于星期四

用若干個(gè)74181ALU位片,與配套的74182先行進(jìn)位部件CLA在一起,可構(gòu)成一個(gè)全字長(zhǎng)的ALU。例:全字長(zhǎng)的ALU的構(gòu)成用兩個(gè)16位全先行進(jìn)位部件級(jí)聯(lián)組成的32位ALU邏輯方框圖。現(xiàn)在是23頁(yè)\一共有62頁(yè)\編輯于星期四十進(jìn)制加法器

十進(jìn)制加法器可由BCD碼(二-十進(jìn)制碼)來(lái)設(shè)計(jì),它可以在二進(jìn)制加法器的基礎(chǔ)上加上適當(dāng)?shù)摹靶U边壿媮?lái)實(shí)現(xiàn)。70111+6+0110131101

(=D)

+011010011(=13)30011+5+010181000(=8)X+Y+C<10不調(diào)整X+Y+C>10調(diào)整現(xiàn)在是24頁(yè)\一共有62頁(yè)\編輯于星期四故:

1.和為10~15時(shí),加6校正;

2.和數(shù)有進(jìn)位時(shí),加6校正。和數(shù)(4位)有進(jìn)位調(diào)整2800101000+9+000010013700110001(=31)

+0000011000110111(=37)現(xiàn)在是25頁(yè)\一共有62頁(yè)\編輯于星期四1.一位BCD碼行波式進(jìn)位加法器一般結(jié)構(gòu):011101010111100110111101111現(xiàn)在是26頁(yè)\一共有62頁(yè)\編輯于星期四2.n位BCD碼行波式進(jìn)位加法器一般結(jié)構(gòu):現(xiàn)在是27頁(yè)\一共有62頁(yè)\編輯于星期四浮點(diǎn)運(yùn)算方法和浮點(diǎn)運(yùn)算器浮點(diǎn)加、減法運(yùn)算浮點(diǎn)乘、除法運(yùn)算現(xiàn)在是28頁(yè)\一共有62頁(yè)\編輯于星期四

尾數(shù):用定點(diǎn)小數(shù)表示,給出有效數(shù)字的位數(shù),決定了浮點(diǎn)數(shù)的表示精度;階碼:用整數(shù)形式表示,指明小數(shù)點(diǎn)在數(shù)據(jù)中的位置,決定了浮點(diǎn)數(shù)的表示范圍。機(jī)器浮點(diǎn)數(shù)格式:

浮點(diǎn)數(shù)的表示方法階符階碼數(shù)符尾數(shù)EsE1E2……EmMsM1M2……Mn現(xiàn)在是29頁(yè)\一共有62頁(yè)\編輯于星期四IEEE標(biāo)準(zhǔn):尾數(shù)用原碼;階碼用“移碼”;基為2。浮點(diǎn)數(shù)的標(biāo)準(zhǔn)格式

按照IEEE754的標(biāo)準(zhǔn),32位浮點(diǎn)數(shù)和64位浮點(diǎn)數(shù)的標(biāo)準(zhǔn)格式為:313023220SEM32位SEM63625251064位?為便于軟件移植,使用IEEE標(biāo)準(zhǔn)現(xiàn)在是30頁(yè)\一共有62頁(yè)\編輯于星期四設(shè)有兩個(gè)浮點(diǎn)數(shù)x和y,它們分別為:

浮點(diǎn)加、減法運(yùn)算

其中Ex和Ey分別為數(shù)x和y的階碼,

Mx和My為數(shù)x和y的尾數(shù)。兩浮點(diǎn)數(shù)進(jìn)行加法和減法的運(yùn)算規(guī)則是:

x±y=(Mx2Ex-Ey±My)2EyEx<=Ey

x=2Ex·Mxy=2Ey·My現(xiàn)在是31頁(yè)\一共有62頁(yè)\編輯于星期四完成浮點(diǎn)加減運(yùn)算的操作過(guò)程大體分為四步:(1)0操作數(shù)的檢查;(2)比較階碼大小并完成對(duì)階;(3)尾數(shù)進(jìn)行加或減運(yùn)算;(4)結(jié)果規(guī)格化。(5)舍入處理。(6)溢出處理?,F(xiàn)在是32頁(yè)\一共有62頁(yè)\編輯于星期四

使二數(shù)階碼相同(即小數(shù)點(diǎn)位置對(duì)齊),這個(gè)過(guò)程叫作對(duì)階。

?

先求兩數(shù)階碼Ex和Ey之差,即△E=Ex-Ey

若△E=0,表示

Ex=Ey

若△E>0,Ex>Ey

若△E<0,Ex<Ey通過(guò)尾數(shù)的移動(dòng)來(lái)改變Ex或Ey,使其相等.

?對(duì)階原則階碼小的數(shù)向階碼大的數(shù)對(duì)齊;小階的尾數(shù)右移,每右移一位,其階碼加1(右規(guī))。(2)對(duì)階(1)0操作數(shù)檢查

現(xiàn)在是33頁(yè)\一共有62頁(yè)\編輯于星期四例:x=201×0.1101,y=211×(-0.1010),求x+y=?解:為便于直觀了解,兩數(shù)均以補(bǔ)碼表示,階碼、尾數(shù)均采用雙符號(hào)位。

[x]補(bǔ)=0001,00.1101[y]補(bǔ)=0011,11.0110[△E]補(bǔ)=[Ex]補(bǔ)-[Ey]補(bǔ)=0001+1101=1110

△E=-2,表示Ex比Ey小2,

因此將x的尾數(shù)右移兩位.

右移一位,

得[x]補(bǔ)=0010,00.0110

再右移一位,

得[x]補(bǔ)=0011,00.0011

至此,△E=0,對(duì)階完畢.現(xiàn)在是34頁(yè)\一共有62頁(yè)\編輯于星期四

尾數(shù)求和方法與定點(diǎn)加減法運(yùn)算完全一樣。對(duì)階完畢可得:[x]補(bǔ)=0011,00.0011[y]補(bǔ)=0011,11.0110

對(duì)尾數(shù)求和:00.0011+11.011011.1001即得:[x+y]補(bǔ)=0011,11.1001(3)尾數(shù)求和運(yùn)算現(xiàn)在是35頁(yè)\一共有62頁(yè)\編輯于星期四(4)結(jié)果規(guī)格化

求和之后得到的數(shù)可能不是規(guī)格化了的數(shù),為了增加有效數(shù)字的位數(shù),提高運(yùn)算精度,必須將求和的結(jié)果規(guī)格化.①規(guī)格化的定義:

(二進(jìn)制)對(duì)正數(shù):S=00.1×××…×對(duì)負(fù)數(shù):S=11.0×××…×采用雙符號(hào)位的補(bǔ)碼:采用原碼:

正數(shù):S=0.1×××…×

負(fù)數(shù):S=1.1×××…×現(xiàn)在是36頁(yè)\一共有62頁(yè)\編輯于星期四

若不是規(guī)格化的數(shù),需要尾數(shù)向左移位,以實(shí)現(xiàn)規(guī)格化的過(guò)程,我們稱其為向左規(guī)格化。②向左規(guī)格化

前例中,0011,11.1001不是規(guī)格化數(shù),因而需要左規(guī),即左移一位,階碼減1,得:[x+y]補(bǔ)=0010,11.0010③向右規(guī)格化

浮點(diǎn)加減運(yùn)算時(shí),尾數(shù)求和的結(jié)果也可能得到:

01.×××…×或10.×××…×,

即兩符號(hào)位不等,即結(jié)果的絕對(duì)值大于1。向左破壞了規(guī)格化。此時(shí),將尾數(shù)運(yùn)算的結(jié)果右移一位,階碼加1,稱為向右規(guī)格化。現(xiàn)在是37頁(yè)\一共有62頁(yè)\編輯于星期四例:兩浮點(diǎn)數(shù)x=0.1101210,y=(0.1011)201,求x+y。解:[x]補(bǔ)=0010,00.1101[y]補(bǔ)=0001,00.1011

對(duì)階:

[△E]補(bǔ)=[Ex]補(bǔ)-[Ey]補(bǔ)=0010+1111=0001y向x對(duì)齊,將y的尾數(shù)右移一位,階碼加1。

[y]補(bǔ)=0010,00.0101

求和:

00.1101+00.010101.0010[x+y]補(bǔ)=0010,01.0010右歸:運(yùn)算結(jié)果兩符號(hào)位不同,其絕對(duì)值大于1,右歸。

[x+y]補(bǔ)=0011,00.1001現(xiàn)在是38頁(yè)\一共有62頁(yè)\編輯于星期四

在對(duì)階或向右規(guī)格化時(shí),尾數(shù)要向右移位,這樣,被右移的尾數(shù)的低位部分會(huì)被丟掉,從而造成一定誤差,因此要進(jìn)行舍入處理。

?

簡(jiǎn)單的舍入方法有兩種:①“0舍1入”法即如果右移時(shí)被丟掉數(shù)位的最高位為0則舍去,反之則將尾數(shù)的末位加“1”。②“恒置1”法即只要數(shù)位被移掉,就在尾數(shù)的末位恒置“1”。從概率上來(lái)說(shuō),丟掉的0和1各為1/2。(5)舍入處理

?IEEE754標(biāo)準(zhǔn)中,舍入處理提供了四種可選方法:現(xiàn)在是39頁(yè)\一共有62頁(yè)\編輯于星期四(6)溢出處理

與定點(diǎn)加減法一樣,浮點(diǎn)加減運(yùn)算最后一步也需判溢出。在浮點(diǎn)規(guī)格化中已指出,當(dāng)尾數(shù)之和(差)出現(xiàn)01.××…×或10.××…×?xí)r,并不表示溢出,只有將此數(shù)右規(guī)后,再根據(jù)階碼來(lái)判斷浮點(diǎn)運(yùn)算結(jié)果是否溢出?,F(xiàn)在是40頁(yè)\一共有62頁(yè)\編輯于星期四

若機(jī)器數(shù)為補(bǔ)碼,尾數(shù)為規(guī)格化形式,并假設(shè)階符取2位,階碼取7位、數(shù)符取2位,尾數(shù)取n位,則它們能表示的補(bǔ)碼在數(shù)軸上的表示范圍如圖所示。正負(fù)現(xiàn)在是41頁(yè)\一共有62頁(yè)\編輯于星期四

圖中A,B,a,b分別對(duì)應(yīng)最小負(fù)數(shù)、最大正數(shù)、最大負(fù)數(shù)和最小正數(shù)。它們所對(duì)應(yīng)的真值分別是:

A最小負(fù)數(shù)2+127(-1)B最大正數(shù)2+127(1-2-n)a最大負(fù)數(shù)2-128(-2-1-2-n)b最小正數(shù)2-128

2-1正負(fù)現(xiàn)在是42頁(yè)\一共有62頁(yè)\編輯于星期四圖中a,b之間的陰影部分,對(duì)應(yīng)階碼小于128的情況,叫做浮點(diǎn)數(shù)的下溢。下溢時(shí).浮點(diǎn)數(shù)值趨于零,故機(jī)器不做溢出處理,僅把它作為機(jī)器零。圖中的A、B兩側(cè)陰影部分,對(duì)應(yīng)階碼大于127的情況,叫做浮點(diǎn)數(shù)的上溢。此刻,浮點(diǎn)數(shù)真正溢出,機(jī)器需停止運(yùn)算,作溢出中斷處理。一般說(shuō)浮點(diǎn)溢出,均是指上溢。

可見,浮點(diǎn)機(jī)的溢出與否可由階碼的符號(hào)決定:

階碼[j]補(bǔ)=01,為上溢,機(jī)器停止運(yùn)算,做中斷處理;階碼[j]補(bǔ)=10,為下溢,按機(jī)器零處理?,F(xiàn)在是43頁(yè)\一共有62頁(yè)\編輯于星期四例:若某次加法操作的結(jié)果為[X+Y]補(bǔ)=11.010,00.0000110111則應(yīng)對(duì)其進(jìn)行向左規(guī)格化操作:尾數(shù)為:00.1101110000,階碼減4:

11.010+11.100[-4]補(bǔ)

10.110例:若某次加法操作的結(jié)果為[X+Y]補(bǔ)=00.111,10.1011100111則應(yīng)對(duì)其進(jìn)行向右規(guī)格化操作:尾數(shù)為:11.0101110011,階碼加1:01.000

階碼超出了它所能表示的最大正數(shù)(+7),表明本次浮點(diǎn)運(yùn)算產(chǎn)生了溢出。

階碼超出了它所能表示的最小負(fù)數(shù)(-8),表明本次浮點(diǎn)運(yùn)算產(chǎn)生了溢出?,F(xiàn)在是44頁(yè)\一共有62頁(yè)\編輯于星期四

在加、減運(yùn)算過(guò)程中要檢查是否產(chǎn)生了溢出:若階碼正常,加減運(yùn)算正常結(jié)束;若階碼溢出,則要進(jìn)行相應(yīng)的處理。階碼上溢——

超過(guò)了階碼可能表示的最大值的正指數(shù)值,一般將其認(rèn)為是+∞和-∞。階碼下溢——

超過(guò)了階碼可能表示的最小值的負(fù)指數(shù)值,一般將其認(rèn)為是0。?

浮點(diǎn)數(shù)的溢出是以其階碼溢出表現(xiàn)出來(lái)的?

對(duì)尾數(shù)的溢出也需要處理(上溢—右歸,下溢—舍入)。小結(jié):現(xiàn)在是45頁(yè)\一共有62頁(yè)\編輯于星期四現(xiàn)在是46頁(yè)\一共有62頁(yè)\編輯于星期四例

設(shè)x=20100.11011011,y=2100(-0.10101100),求x+y。解:階碼采用雙符號(hào)位,尾數(shù)采用單符號(hào)位,則它們的浮點(diǎn)表示分別為[x]浮=00010,

0.11011011

[y]浮=00100,

1.01010100(1)求階差并對(duì)階△E=Ex-

Ey=[Ex]補(bǔ)+[-Ey]補(bǔ)=00010+11100=11110[x]?。?0100,0.00110110(11)其中(11)表示Mx右移2位后移出的最低兩位數(shù)。即△E為-2,x的階碼小,應(yīng)使Mx右移兩位,Ex加2,現(xiàn)在是47頁(yè)\一共有62頁(yè)\編輯于星期四(2)尾數(shù)求和(4)舍入處理采用0舍1入法處理,則有:1.00010101+11.000101100.00110110(11)+1.01010100

1.10001010(11)(3)規(guī)格化處理尾數(shù)運(yùn)算結(jié)果的符號(hào)位與最高數(shù)值位為同值,應(yīng)執(zhí)行左規(guī)處理,結(jié)果為1.00010101(10),階碼為00011。(5)判斷溢出階碼符號(hào)位為00,不溢出,故得最終結(jié)果為

x+y=2011×(-0.11101010)現(xiàn)在是48頁(yè)\一共有62頁(yè)\編輯于星期四例兩浮點(diǎn)數(shù)x=201×0.1101,y=211×(-0.1010)。假設(shè)尾數(shù)在計(jì)算機(jī)中以補(bǔ)碼表示,可存儲(chǔ)4位尾數(shù),2位保護(hù)位,階碼以原碼表示,求x+y。解:將x,y轉(zhuǎn)換成浮點(diǎn)數(shù)據(jù)格式

[x]浮

=0001,00.1101 [y]浮

=0011,11.0110步驟1:對(duì)階,階差為11-01=10,即2,因此將x的尾數(shù)右移兩位,得

[x]浮

=0011,00.001101步驟2:對(duì)尾數(shù)求和,得: [x+y]浮

=0011,11.100101步驟3:由于符號(hào)位和第一位數(shù)相等,不是規(guī)格化數(shù),向左規(guī)格化,得

[x+y]浮

=0010,11.001010步驟4:截去。

[x+y]浮

=0010,11.0010步驟5:數(shù)據(jù)無(wú)溢出,因此結(jié)果為

x+y=210×(-0.1110)現(xiàn)在是49頁(yè)\一共有62頁(yè)\編輯于星期四浮點(diǎn)運(yùn)算電路浮點(diǎn)加法器原理框圖MESMES小ALU大ALU控制右移左移或右移舍入部件階碼差加1或減1MES111000現(xiàn)在是50頁(yè)\一共有62頁(yè)\編輯于星期四

浮點(diǎn)乘、除法運(yùn)算1.浮點(diǎn)乘法、除法運(yùn)算規(guī)則

設(shè)有兩個(gè)浮點(diǎn)數(shù)x和y:x=2Ex·Mx

y=2Ey·My浮點(diǎn)乘法運(yùn)算的規(guī)則是:xy=2(Ex+Ey)·(Mx

My)

即:乘積的尾數(shù)是相乘兩數(shù)的尾數(shù)之積;

乘積的階碼是相乘兩數(shù)的階碼之和。浮點(diǎn)除法運(yùn)算的規(guī)則是:

x÷y=2(Ex-Ey)·(Mx÷My)

即:商的尾數(shù)是相除兩數(shù)的尾數(shù)之商;

商的階碼是相除兩數(shù)的階碼之差?,F(xiàn)在是51頁(yè)\一共有62頁(yè)\編輯于星期四2.浮點(diǎn)乘、除法運(yùn)算步驟浮點(diǎn)數(shù)的乘除運(yùn)算大體分為四步:(1)0操作數(shù)檢查;(2)階碼加/減操作;(3)尾數(shù)乘/除操作;(4)結(jié)果規(guī)格化及舍入處理?,F(xiàn)在是52頁(yè)\一共有62頁(yè)\編輯于星期四(2)浮點(diǎn)數(shù)的階碼運(yùn)算

?

對(duì)階碼的運(yùn)算有+1、-1、兩階碼求和、兩階碼求差四種,

運(yùn)算時(shí)還必須檢查結(jié)果是否溢出。

?在計(jì)算機(jī)中,階碼通常用補(bǔ)碼或移碼形式表示。①移碼的運(yùn)算規(guī)則和判定溢出的方法移碼的定義為[x]移=2n+x-2n

≤x<2n[x]移+[y]移=2n+x+2n+y=2n+[x+y]移按此定義,則有=2n+(2n+(x+y))[x+y]移=-2n+[x]移+[y]移現(xiàn)在是53頁(yè)\一共有62頁(yè)\編輯于星期四

考慮到移碼和補(bǔ)碼的關(guān)系:

對(duì)同一個(gè)數(shù)值,其數(shù)值位完全相同,而符號(hào)位正好完全相反。

[y]補(bǔ)的定義為

[y]補(bǔ)=2n+1+y則求階碼和用如下方式完成:

=2n+1+(2n+(x+y))[x]移+[y]補(bǔ)=2n+x+2n+1+y即:[x+y]移=[x]移+[y]補(bǔ)

(mod2n+1)同理:[x-y]移=[x]移+[-y]補(bǔ)

(mod2n+1)②混合使用移碼和補(bǔ)碼現(xiàn)在是54頁(yè)\一共有62頁(yè)\編輯于星期四

使用雙符號(hào)位的階碼加法器,并規(guī)定移碼的第二個(gè)符號(hào)位,即最高符號(hào)位恒用0參加加減運(yùn)算,則溢出條件是結(jié)果的最高符號(hào)位為1:

?當(dāng)?shù)臀环?hào)位為0時(shí),(10)表明結(jié)果上溢,

?當(dāng)?shù)臀环?hào)位為1時(shí),(11)表明結(jié)果下溢。

?當(dāng)最高符號(hào)位為0時(shí),表明沒有溢出:

低位符號(hào)位為1,(01)表明結(jié)果為正;

為0,(00)表明結(jié)果為負(fù)。③階碼運(yùn)算結(jié)果溢出處理現(xiàn)在是55頁(yè)\一共有62頁(yè)\編輯于星期四例:

x=+011,y=+110,求[x+y]移和[x-y]移,并判斷是否溢出。解:階碼取3位(不含符號(hào)位),其對(duì)應(yīng)的真值范圍是-8~+7[x]移=01011,[y]補(bǔ)=00110,[-y]補(bǔ)=11010[x+y]移=[x]移+[y]補(bǔ)=[x-y]移=[x]移+[-y]補(bǔ)=01011+0011010001結(jié)果上溢。結(jié)果正確,為-3。01011+1101000101現(xiàn)在是56頁(yè)\一共有62頁(yè)\編輯于星期四(3)尾數(shù)處理

浮點(diǎn)加減法對(duì)結(jié)果的規(guī)格化及舍入處理也適用于浮點(diǎn)乘除法。第一種方法是:無(wú)條件地丟掉正常尾數(shù)最低位之后的全部數(shù)值。這種辦法被稱為截?cái)?/p>

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論