




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第六講定點運算器及浮點數運算演示文稿第一頁,共六十二頁。優選第六講定點運算器及浮點數運算第二頁,共六十二頁。S0S1S2S3X0Y0
參數S0,S1,S2,S3
分別控制輸入Ai
和Bi
,產生Y和X的函數。其中:Yi是受S0,S1控制的Ai和Bi的組合函數;Xi是受S2
,S3控制的Ai和Bi組合函數。
函數關系如表所示。Xi=S2S3+S2S3(Ai+Bi)+S2S3(Ai+Bi)+S2S3Ai
Yi=S0S1Ai+S0S1AiBi+S0S1AiBi?
核心部分是由兩個半加器組成的全加器。?
由M控制第二級半加器選擇邏輯運算或算術運算(所需的低位進位Cn
)。一位ALU基本邏輯電路第三頁,共六十二頁。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
進一步化簡:Xi=S3AiBi+S2AiBiYi=Ai+S0Bi+S1BiAi+S0Bi+S1BiS3AiBi+S2AiBiXiYi==Yi
Fi=Yi⊕Xi⊕Cn+iCn+i+1=Yi+XiCn+i第四頁,共六十二頁。綜上所述,ALU的一位邏輯表達式為:Xi=S3AiBi+S2AiBiYi=Ai+S0Bi+S1Bi
Fi=Yi⊕Xi⊕Cn+iCn+i+1=Yi+XiCn+i第五頁,共六十二頁。4位之間采用先行進位(并行進位)公式。根據Cn+i+1=Yi+XiCn+i,每一位的進位公式可遞推如下:
?
第0位向第1位的進位公式為:
Cn+1=Y0+X0Cn
(其中Cn是向第0位(末位)的進位)
?
第1位向第2位的進位公式為:
Cn+2=Y1+X1Cn+1=Y1+Y0X1+X0X1Cn
?
第2位向第3位的進位公式為:
Cn+3=Y2+X2Cn+2=Y2+Y1X1+Y0X1X2+X0X1X2Cn?
第3位的進位輸出(即整個4位運算進位輸出)公式為:
Cn+4=Y3+X3Cn+3=Y3+Y2X3+Y1X2X3+Y0X1X2X3+X0X1X2X3Cn4位ALU的進位關系及邏輯電路第六頁,共六十二頁。Cn+1=Y0+X0CnCn+2=Y1+X1Cn+1=Y1+Y0X1+X0X1Cn
Cn+3=Y2+X2Cn+2=Y2+Y1X1+Y0X1X2+X0X1X2CnCn+4=Y3+X3Cn+3=Y3+Y2X3+Y1X2X3+Y0X1X2X3+X0X1X2X3Cn
Cn+4是最后進位輸出。邏輯表達式表明,這是一個先行進位邏輯。換句話說,第0位的進位輸入Cn可以直接傳送到最高位上去,因而可以實現高速運算。下圖為用上述原始推導公式實現的4位算術/邏輯運算單元(ALU)
——74181ALU從進位關系上看第七頁,共六十二頁。
正邏輯表示的74181第八頁,共六十二頁。
第3位的進位輸出(即整個4位運算進位輸出)公式為:
Cn+4=Y3+X3Cn+3=Y3+Y2X3+Y1X2X3+Y0X1X2X3+X0X1X2X3Cn設G=Y3+Y2X3+Y1X2X3+Y0X1X2X3
P=X0X1X2X3
則
Cn+4=G+PCn
其中G稱為進位發生輸出,P稱為進位傳送輸出。在電路中多加這兩個進位輸出的目的,是為了便于實現多片(組)ALU之間的先行進位。P和G的含義第九頁,共六十二頁。負邏輯表示的74181X0Y0X1Y1X2Y2X3Y3第十頁,共六十二頁。
2.算術邏輯運算的實現上圖中控制端M用來控制ALU進行算術運算還是進行邏輯運算:M=0時:
M對進位信號沒有任何影響。此時Fi
不僅與本位的被操作數Yi和操作數Xi
有關,而且與向本位的進位值Cn+i
有關,因此M=0時,進行算術操作。
M=1時:
封鎖了各位的進位輸出,即Cn+i
=0,因此各位的運算結果Fi
僅與Yi
和Xi
有關,故M=1時,進行邏輯操作。第十一頁,共六十二頁。下圖為工作于負邏輯和正邏輯操作方式的74181ALU方框圖。兩種操作是等效的。?對正邏輯操作數來說:
算術運算稱高電平操作;邏輯運算稱正邏輯操作
(即高電平為“1”,低電平為“0”)。?對于負邏輯操作數來說:
正好相反。第十二頁,共六十二頁。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算術運算M=LCn=H邏輯M=H算術運算M=LCn=L邏輯M=H正邏輯輸入與輸出負邏輯輸入與輸出工作方式選擇輸入S3S2S1S0
第十三頁,共六十二頁。(1)H=高電平,L=低電平;(2)*表示每一位均移到下一個更高位,即A*=2A。(3)
算術運算操作是用補碼表示法來表示的,其中:
“加”是指算術加,運算時要考慮進位;符號“+”是指“邏輯加”。(4)
減法是用補碼方法進行的,其中數的反碼是內部產生的,而結果輸出“A減B減1”,因此做減法時需在最末位產生一個強迫進位(加1),以便產生“A減B”的結果。(5)
“A=B”輸出端可指示兩個數是否相等;第十四頁,共六十二頁。3.并行加法器的進位邏輯74181ALU為4位并行加法器,組成16位的并行加法器——怎么辦?
4片(組)74181連接——怎樣連?
?組與組之間串行連接
?組與組之間并行連接第十五頁,共六十二頁。組間串行進位C4=G0+P0C0C8=G1+P1C4C12=G2+P2C8C16=G3+P3C12進位關系Cn+1=Y0+X0CnCn+2=Y1+X1Cn+1=Y1+Y0X1+X0X1Cn
Cn+3=Y2+X2Cn+2=Y2+Y1X1+Y0X1X2+X0X1X2CnCn+4=Y3+X3Cn+3=Y3+Y2X3+Y1X2X3+Y0X1X2X3+X0X1X2X3Cn組內組間X0Y0X1Y1X2Y2X3Y3X0Y0X1Y1X2Y2X3Y3C4C8C4C00011G=Y3+Y2X3+Y1X2X3+Y0X1X2X3
P=X0X1X2X3第十六頁,共六十二頁。(2)組間并行進位——兩級先行進位的ALU由串行進位關系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根據上述公式實現邏輯電路:第十七頁,共六十二頁。
X0Y0X1Y1X2Y2X3Y3
C12C8C4
X0Y0X1Y1X2Y2X3Y3
X0Y0X1Y1X2Y2X3Y3
0
X0Y0X1Y1X2Y2X3Y3
第十八頁,共六十二頁。4.先行進位部件(CLA)——7418274182是一個并行進位部件,其內部結構圖如下:其中G*稱為成組進位發生輸出,P*稱為成組進位傳送輸出。第十九頁,共六十二頁。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先行進位部件74182CLA所提供的進位邏輯關系如下:第二十頁,共六十二頁。74181ALU設置了P和G兩個本組先行進位輸出端。如果將四片74181的P,G輸出端送入到74182先行進位部件(CLA),又可實現第二級的先行進位,即組與組之間的先行進位。例:16位字長ALU的構成G*P*第二十一頁,共六十二頁。?C3、C7、C11是由74182同時形成的;?其不同點是74182還提供大組間的進位函數G*
和大組傳遞條件P*,以便在位數更長時組成下一級先行進位鏈。由圖可知:第二十二頁,共六十二頁。
用若干個74181ALU位片,與配套的74182先行進位部件CLA在一起,可構成一個全字長的ALU。例:全字長的ALU的構成用兩個16位全先行進位部件級聯組成的32位ALU邏輯方框圖。第二十三頁,共六十二頁。十進制加法器
十進制加法器可由BCD碼(二-十進制碼)來設計,它可以在二進制加法器的基礎上加上適當的“校正”邏輯來實現。70111+6+0110131101
(=D)
+011010011(=13)30011+5+010181000(=8)X+Y+C<10不調整X+Y+C>10調整第二十四頁,共六十二頁。故:
1.和為10~15時,加6校正;
2.和數有進位時,加6校正。和數(4位)有進位調整2800101000+9+000010013700110001(=31)
+0000011000110111(=37)第二十五頁,共六十二頁。1.一位BCD碼行波式進位加法器一般結構:011101010111100110111101111第二十六頁,共六十二頁。2.n位BCD碼行波式進位加法器一般結構:第二十七頁,共六十二頁。浮點運算方法和浮點運算器浮點加、減法運算浮點乘、除法運算第二十八頁,共六十二頁。
尾數:用定點小數表示,給出有效數字的位數,決定了浮點數的表示精度;階碼:用整數形式表示,指明小數點在數據中的位置,決定了浮點數的表示范圍。機器浮點數格式:
浮點數的表示方法階符階碼數符尾數EsE1E2……EmMsM1M2……Mn第二十九頁,共六十二頁。IEEE標準:尾數用原碼;階碼用“移碼”;基為2。浮點數的標準格式
按照IEEE754的標準,32位浮點數和64位浮點數的標準格式為:313023220SEM32位SEM63625251064位?為便于軟件移植,使用IEEE標準第三十頁,共六十二頁。設有兩個浮點數x和y,它們分別為:
浮點加、減法運算
其中Ex和Ey分別為數x和y的階碼,
Mx和My為數x和y的尾數。兩浮點數進行加法和減法的運算規則是:
x±y=(Mx2Ex-Ey±My)2EyEx<=Ey
x=2Ex·Mxy=2Ey·My第三十一頁,共六十二頁。完成浮點加減運算的操作過程大體分為四步:(1)0操作數的檢查;(2)比較階碼大小并完成對階;(3)尾數進行加或減運算;(4)結果規格化。(5)舍入處理。(6)溢出處理。第三十二頁,共六十二頁。
使二數階碼相同(即小數點位置對齊),這個過程叫作對階。
?
先求兩數階碼Ex和Ey之差,即△E=Ex-Ey
若△E=0,表示
Ex=Ey
若△E>0,Ex>Ey
若△E<0,Ex<Ey通過尾數的移動來改變Ex或Ey,使其相等.
?對階原則階碼小的數向階碼大的數對齊;小階的尾數右移,每右移一位,其階碼加1(右規)。(2)對階(1)0操作數檢查
第三十三頁,共六十二頁。例:x=201×0.1101,y=211×(-0.1010),求x+y=?解:為便于直觀了解,兩數均以補碼表示,階碼、尾數均采用雙符號位。
[x]補=0001,00.1101[y]補=0011,11.0110[△E]補=[Ex]補-[Ey]補=0001+1101=1110
△E=-2,表示Ex比Ey小2,
因此將x的尾數右移兩位.
右移一位,
得[x]補=0010,00.0110
再右移一位,
得[x]補=0011,00.0011
至此,△E=0,對階完畢.第三十四頁,共六十二頁。
尾數求和方法與定點加減法運算完全一樣。對階完畢可得:[x]補=0011,00.0011[y]補=0011,11.0110
對尾數求和:00.0011+11.011011.1001即得:[x+y]補=0011,11.1001(3)尾數求和運算第三十五頁,共六十二頁。(4)結果規格化
求和之后得到的數可能不是規格化了的數,為了增加有效數字的位數,提高運算精度,必須將求和的結果規格化.①規格化的定義:
(二進制)對正數:S=00.1×××…×對負數:S=11.0×××…×采用雙符號位的補碼:采用原碼:
正數:S=0.1×××…×
負數:S=1.1×××…×第三十六頁,共六十二頁。
若不是規格化的數,需要尾數向左移位,以實現規格化的過程,我們稱其為向左規格化。②向左規格化
前例中,0011,11.1001不是規格化數,因而需要左規,即左移一位,階碼減1,得:[x+y]補=0010,11.0010③向右規格化
浮點加減運算時,尾數求和的結果也可能得到:
01.×××…×或10.×××…×,
即兩符號位不等,即結果的絕對值大于1。向左破壞了規格化。此時,將尾數運算的結果右移一位,階碼加1,稱為向右規格化。第三十七頁,共六十二頁。例:兩浮點數x=0.1101210,y=(0.1011)201,求x+y。解:[x]補=0010,00.1101[y]補=0001,00.1011
對階:
[△E]補=[Ex]補-[Ey]補=0010+1111=0001y向x對齊,將y的尾數右移一位,階碼加1。
[y]補=0010,00.0101
求和:
00.1101+00.010101.0010[x+y]補=0010,01.0010右歸:運算結果兩符號位不同,其絕對值大于1,右歸。
[x+y]補=0011,00.1001第三十八頁,共六十二頁。
在對階或向右規格化時,尾數要向右移位,這樣,被右移的尾數的低位部分會被丟掉,從而造成一定誤差,因此要進行舍入處理。
?
簡單的舍入方法有兩種:①“0舍1入”法即如果右移時被丟掉數位的最高位為0則舍去,反之則將尾數的末位加“1”。②“恒置1”法即只要數位被移掉,就在尾數的末位恒置“1”。從概率上來說,丟掉的0和1各為1/2。(5)舍入處理
?IEEE754標準中,舍入處理提供了四種可選方法:第三十九頁,共六十二頁。(6)溢出處理
與定點加減法一樣,浮點加減運算最后一步也需判溢出。在浮點規格化中已指出,當尾數之和(差)出現01.××…×或10.××…×時,并不表示溢出,只有將此數右規后,再根據階碼來判斷浮點運算結果是否溢出。第四十頁,共六十二頁。
若機器數為補碼,尾數為規格化形式,并假設階符取2位,階碼取7位、數符取2位,尾數取n位,則它們能表示的補碼在數軸上的表示范圍如圖所示。正負第四十一頁,共六十二頁。
圖中A,B,a,b分別對應最小負數、最大正數、最大負數和最小正數。它們所對應的真值分別是:
A最小負數2+127(-1)B最大正數2+127(1-2-n)a最大負數2-128(-2-1-2-n)b最小正數2-128
2-1正負第四十二頁,共六十二頁。圖中a,b之間的陰影部分,對應階碼小于128的情況,叫做浮點數的下溢。下溢時.浮點數值趨于零,故機器不做溢出處理,僅把它作為機器零。圖中的A、B兩側陰影部分,對應階碼大于127的情況,叫做浮點數的上溢。此刻,浮點數真正溢出,機器需停止運算,作溢出中斷處理。一般說浮點溢出,均是指上溢。
可見,浮點機的溢出與否可由階碼的符號決定:
階碼[j]補=01,為上溢,機器停止運算,做中斷處理;階碼[j]補=10,為下溢,按機器零處理。第四十三頁,共六十二頁。例:若某次加法操作的結果為[X+Y]補=11.010,00.0000110111則應對其進行向左規格化操作:尾數為:00.1101110000,階碼減4:
11.010+11.100[-4]補
10.110例:若某次加法操作的結果為[X+Y]補=00.111,10.1011100111則應對其進行向右規格化操作:尾數為:11.0101110011,階碼加1:01.000
階碼超出了它所能表示的最大正數(+7),表明本次浮點運算產生了溢出。
階碼超出了它所能表示的最小負數(-8),表明本次浮點運算產生了溢出。第四十四頁,共六十二頁。
在加、減運算過程中要檢查是否產生了溢出:若階碼正常,加減運算正常結束;若階碼溢出,則要進行相應的處理。階碼上溢——
超過了階碼可能表示的最大值的正指數值,一般將其認為是+∞和-∞。階碼下溢——
超過了階碼可能表示的最小值的負指數值,一般將其認為是0。?
浮點數的溢出是以其階碼溢出表現出來的?
對尾數的溢出也需要處理(上溢—右歸,下溢—舍入)。小結:第四十五頁,共六十二頁。第四十六頁,共六十二頁。例
設x=20100.11011011,y=2100(-0.10101100),求x+y。解:階碼采用雙符號位,尾數采用單符號位,則它們的浮點表示分別為[x]浮=00010,
0.11011011
[y]浮=00100,
1.01010100(1)求階差并對階△E=Ex-
Ey=[Ex]補+[-Ey]補=00010+11100=11110[x]浮=00100,0.00110110(11)其中(11)表示Mx右移2位后移出的最低兩位數。即△E為-2,x的階碼小,應使Mx右移兩位,Ex加2,第四十七頁,共六十二頁。(2)尾數求和(4)舍入處理采用0舍1入法處理,則有:1.00010101+11.000101100.00110110(11)+1.01010100
1.10001010(11)(3)規格化處理尾數運算結果的符號位與最高數值位為同值,應執行左規處理,結果為1.00010101(10),階碼為00011。(5)判斷溢出階碼符號位為00,不溢出,故得最終結果為
x+y=2011×(-0.11101010)第四十八頁,共六十二頁。例兩浮點數x=201×0.1101,y=211×(-0.1010)。假設尾數在計算機中以補碼表示,可存儲4位尾數,2位保護位,階碼以原碼表示,求x+y。解:將x,y轉換成浮點數據格式
[x]浮
=0001,00.1101 [y]浮
=0011,11.0110步驟1:對階,階差為11-01=10,即2,因此將x的尾數右移兩位,得
[x]浮
=0011,00.001101步驟2:對尾數求和,得: [x+y]浮
=0011,11.100101步驟3:由于符號位和第一位數相等,不是規格化數,向左規格化,得
[x+y]浮
=0010,11.001010步驟4:截去。
[x+y]浮
=0010,11.0010步驟5:數據無溢出,因此結果為
x+y=210×(-0.1110)第四十九頁,共六十二頁。浮點運算電路浮點加法器原理框圖MESMES小ALU大ALU控制右移左移或右移舍入部件階碼差加1或減1MES111000第五十頁,共六十二頁。
浮點乘、除法運算1.浮點乘法、除法運算規則
設有兩個浮點數x和y:x=2Ex·Mx
y=2Ey·My浮點乘法運算的規則是:xy=2(Ex+Ey)·(Mx
My)
即:乘積的尾數是相乘兩數的尾數之積;
乘積的階碼是相乘兩數的階碼之和。浮點除法運算的規則是:
x÷y=2(Ex-Ey)·(Mx÷My)
即:商的尾數是相除兩數的尾數之商;
商的階碼是相除兩數的階碼之差。第五十一頁,共六十二頁。2.浮點乘、除法運算步驟浮點數的乘除運算大體分為四步:(1)0操作數檢查;(2)階碼加/減操作;(3)尾數乘/除操作;(4)結果規格化及舍入處理。第五十二頁,共六十二頁。(2)浮點數的階碼運算
?
對階碼的運算有+1、-1、兩階碼求和、兩階碼求差四種,
運算時還必須檢查結果是否溢出。
?在計算機中,階碼通常用補碼或移碼形式表示。①移碼的運算規則和判定溢出的方法移碼的定義為[x]移=2n+x-2n
≤x<2n[x]移+[y]移=2n+x+2n+y=2n+[x+y]移按此定義,則有=2n+(2n+(x+y))[x+y]移=-2n+[x]移+[y]移第五十三頁,共六十二頁。
考慮到移碼和補碼的關系:
對同一個數值,其數值位完全相同,而符號位正好完全相反。
[y]補的定義為
[y]補=2n+1+y則求階碼和用如下方式完成:
=2n+1+(2n+(x+y))[x]移+[y]補=2n+x+2n+1+y即:[x+y]移=[x]移+[y]補
(mod2n+1)同理:[x-y]移=[x]移+[-y]補
(mod2n+1)②混合使用移碼和補碼第五十四頁,共六十二頁。
使用雙符號位的階碼加法器,并規定移碼的第二個符號位,即最高符號位恒用0參加加減運算,則溢出條件是結果的最高符號位為1:
?當低位符號位為0時,(10)表明結果上溢,
?當低位符號位為1時,(11)表明結果下溢。
?當最高符號位為0時,表明沒有溢出:
低位符號位為1,(01)表明結果為正;
為0,(00)表明結果為負。③階碼運算結果溢出處理第五十五頁,共六十二頁。例:
x=+011,y=+110,求[x+y]移和[x-y]移,并判斷是否溢出。解:階碼取3位(不含符號位),其對應的真值范圍是-8~+7[x]移=01011,[y]補=00110,[-y]補=11010[x+y]移=[x]移+[y]補=[x-y]移=[x]移+[-y]補=01011+0011010001結果上溢。結果正確,為-3。01011+1101000101第五十六頁,共六十二頁。(3)尾數處理
浮點加減法對結果的規格化及舍入處理也適用于浮點乘除法。第一種方法是:無條件地丟掉正常尾數最低位之后的全部數值。這種辦法被稱為截斷處理
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 租賃設備包清工合同樣本
- 工業機器人技術與應用模擬習題與答案
- 植物學習題庫含答案
- 線上升國旗課件
- 水電工程承包合作合同
- 2024年2月份暗物質探測器共有權分割技術標準協議
- 機電安裝工程合同補充條款范本
- 肩關節鏡手術護理
- 給排水工程承包合同范本
- 2024年3月份墻體廣告動態紫外線消毒集成協議
- 日常保安服務投標技術方案(技術標)
- 行政復議法-形考作業1-國開(ZJ)-參考資料
- 中國軍事武器
- 八年級語文(完整版)標點符號及使用練習題及答案
- 金屬非金屬地下礦山人員定位系統建設規范
- 中考語文專題復習十議論性文本閱讀市賽課公開課一等獎省名師獲獎課件
- 噴塑車間安全培訓
- 2024活躍用戶研究報告(小紅書平臺)-千瓜-202404
- 市場營銷策劃(本)-形考任務二(第五~七章)-國開(CQ)-參考資料
- 2024年煤礦探放水考試題庫附答案
- 技能成才強國有我
評論
0/150
提交評論