計算機組成原理第5講浮點運算.ppt_第1頁
計算機組成原理第5講浮點運算.ppt_第2頁
計算機組成原理第5講浮點運算.ppt_第3頁
計算機組成原理第5講浮點運算.ppt_第4頁
計算機組成原理第5講浮點運算.ppt_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

計算機組成原理,PrinciplesofComputerOrganization,廣義雙語教學(xué)課程,09/skyclass25/,青島理工大學(xué)校級精品課程,2,第6章計算機的運算方法,(6),Floating-pointcomputationinacomputercanrunintothreekindsofproblems:,Anoperationcanbemathematicallyillegal,suchasdivisionbyzero.,Anoperationcanbelegalinprinciple,butnotsupportedbythespecificformat,forexample,calculatingthesquarerootof1ortheinversesineof2(bothofwhichresultincomplexnumbers).,Anoperationcanbelegalinprinciple,buttheresultcanbeimpossibletorepresentinthespecifiedformat,becausetheexponentistoolargeortoosmalltoencodeintheexponentfield.Suchaneventiscalledanoverflow(exponenttoolarge)orunderflow(exponenttoosmall).,3,6.4浮點四則運算,Floating-PointArithmetic,浮點加減法運算,浮點乘法運算,Floating-PointMultiplication,Floating-PointAddition&Subtraction,浮點除法運算,Floating-PointDivision,4,浮點運算Floating-PointArithmetic,浮點運算要把階碼和尾數(shù)分別處理。,階碼的運算是定點整數(shù)運算,對階碼的運算有四種:階碼加1,階碼減1,兩階碼求和,兩階碼求差。,尾數(shù)的運算是定點小數(shù)運算。,運算過程中一般取雙符號位。,浮點運算器總是由處理階碼和處理尾數(shù)的兩部分組成。,Floating-pointrepresentationissimilarinconcepttoscientificnotation.Thewayinwhichthesignificand,exponentandsignbitsareinternallystoredonacomputerisimplementation-dependent.,5,浮點數(shù)的溢出Overflow,當(dāng)一個數(shù)的大小超出了浮點數(shù)的表示范圍時,機器無法表示該數(shù),就發(fā)生溢出。浮點數(shù)的溢出判斷方法與定點數(shù)不同,是對規(guī)格化數(shù)的階碼Exponent進行判斷。,當(dāng)浮點數(shù)的階碼大于機器所能表示的最大階碼時(即階碼發(fā)生正溢出),稱為溢出或上溢,此時機器應(yīng)停止運算,進行出錯中斷處理。,當(dāng)浮點數(shù)的階碼小于機器所能表示的最小階碼時(即階碼發(fā)生負(fù)溢出),稱為下溢。這時一般規(guī)定把該浮點數(shù)的尾數(shù)強迫置零,作為零處理,機器可繼續(xù)運行。,當(dāng)一個浮點數(shù)的尾數(shù)為0,不論其階碼為何值,或者階碼的值小于等于它能表示的最小數(shù)值(下溢)時,不論其尾數(shù)為何值,計算機都把該浮點數(shù)看成零值,稱為機器零。,浮點數(shù)的尾數(shù)運算的溢出可以通過右規(guī)消除。,6,浮點加減法運算Floating-PointAddition&Subtraction,設(shè)有兩個規(guī)格化浮點數(shù),X=MX2Ex,Y=MY2Ey,若兩數(shù)的階碼相等,即EX=EY,有,X+Y=,將兩浮點數(shù)的尾數(shù)相加,就可得到浮點形式的和。,一般情況下,EXEY,計算X+Y要用如下五個步驟來完成:,對階尾數(shù)相加規(guī)格化舍入檢查階碼是否溢出。,1、浮點加法運算Floating-PointAddition,MX2Ex+MY2Ey,=(MX+MY)2Ex,7,(1)對階Alignment,兩數(shù)相加,必須使小數(shù)點對齊。對于浮點數(shù)來說,就是使階碼相等。使階碼相等的過程稱為對階。,對階的原則是:小的階碼向大階碼看齊。,對階操作,首先比較兩數(shù)的階碼值的大小,即求E=EXEY,并保留其最大值E=MAX(EX,EY)作為和的階碼。,當(dāng)E0時,將階碼小的數(shù)的尾數(shù)右移|E|位。,尾數(shù)每右移一次將階碼加1,直至E0。,為了減少誤差,可用附加線路(Guardbits保留位)保留右移出的1位或幾位的高位,在以后的舍入操作時用。,(2)尾數(shù)相加AddtheSignificands(Mantissa),完成對階后,將兩浮點數(shù)的尾數(shù)部分相加,方法與定點小數(shù)加法相同。,8,(3)規(guī)格化處理NormalizetheResult,當(dāng)運算結(jié)果的尾數(shù)部分不是規(guī)格化數(shù)(即不是00.1或11.0的形式)時,必須進行規(guī)格化處理。,規(guī)格化處理的規(guī)則:,若結(jié)果尾數(shù)的兩個符號位不同(01或10),表明尾數(shù)運算結(jié)果溢出,應(yīng)進行右規(guī)。將結(jié)果尾數(shù)右移一位,并將階碼的值加1。,若尾數(shù)的運算結(jié)果不溢出,但最高數(shù)值位與符號位同值(即11.1或00.0),則應(yīng)進行左規(guī)。,將尾數(shù)連同符號位一起左移一位,并將和的階碼減1,如此反復(fù)直至尾數(shù)最高數(shù)值位與符號位不同為止。,9,(4)舍入操作Round,在進行對階或右規(guī)操作時,尾數(shù)低位的一位或幾位數(shù)值被移出。如果采用“截斷法”把移出的數(shù)位丟掉,會影響數(shù)值的精度。因此,可采用舍入法來減少誤差。,“0”舍“1”入法,當(dāng)移出部分的最高位為1時在尾數(shù)末位加1,為0時則舍去移出的數(shù)值。此方法的最大誤差為2(n+1)。,“0”舍“1”入法由于有舍有入,舍入機會均等,有利于減少誤差積累。但對末位加1的操作可能引起一連串的進位而使尾數(shù)溢出,此時還要再做一次右規(guī)。,末位恒置1法,無論右移丟失的是何數(shù)值,一律將結(jié)果的末位置1。,把尾數(shù)最低位的0置成1,對于正數(shù),是使其值變大,對于負(fù)數(shù)補碼和反碼,則使其值變小。而舍入前尾數(shù)最低位已經(jīng)是1時,再置1無實際效用,與截斷法無異。,10,(5)檢查階碼是否溢出ChecktheExponentOverfloworUnderflow,若階碼正常,加減運算正常結(jié)束;若階碼下溢,要置運算結(jié)果為浮點形式的機器零;若階碼上溢,則置溢出標(biāo)志。,【例1】浮點數(shù)的階碼為4位補碼,尾數(shù)為9位補碼。,X0.110110112010,Y=(0.10101100)2100,求X+Y=?,Roundingisusedwhentheexactresultofafloating-pointoperation(oraconversiontofloating-pointformat)wouldneedmoredigitsthantherearedigitsinthesignificand.Thereareseveraldifferentroundingschemes(orroundingmodes).,11,例1浮點數(shù)的階碼為4位補碼,尾數(shù)為9位補碼。求X+Y=?,X0.110110112010,Y=(0.10101100)2100,,解:,EX補=0010,EY補=0100,-EY補=1100,MX補=0.11011011,MY補=1.01010100,對階,E補=EX補EY補=EX補-EY補=00010+11100=11110,即E2。由于X的階碼小,應(yīng)使MX右移兩位,EX加2,,尾數(shù)相加,12,規(guī)格化處理,結(jié)果的符號位與最高數(shù)值位同值,應(yīng)進行左規(guī)。,尾數(shù)左移1位,階碼減1。,MX+Y補=11.0001010110,EX+Y補=00011,舍入處理,采用0舍1入法,MX+Y補=11.00010110,判斷溢出,補碼表示的階碼的符號位為00,不溢出。結(jié)果:,MX+Y補=1.00010110,EX+Y補=0011,XY(0.11101010)2011,例1浮點數(shù)的階碼為4位補碼,尾數(shù)為9位補碼。求X+Y=?,13,2、浮點數(shù)減法Floating-PointSubtraction,對階,尾數(shù)相減,規(guī)格化,舍入,檢查階碼是否溢出。,浮點數(shù)減法運算的步驟:,Thefactthatfloating-pointnumberscannotfaithfullymimictherealnumbers,andthatfloating-pointoperationscannotfaithfullymimictruearithmeticoperations,leadstomanysurprisingsituations.Thisisrelatedtothefiniteprecisionwithwhichcomputersgenerallyrepresentnumbers.,14,浮點乘法運算Floating-PointMultiplication,兩浮點數(shù)相乘,乘積的尾數(shù)為相乘兩數(shù)的尾數(shù)之積,階碼為兩數(shù)的階碼之和。即,XY,浮點乘法運算可分為四個步驟:,階碼相加,尾數(shù)相乘,規(guī)格化和舍入處理,判斷溢出,(MX2Ex)(MY2Ey)=,(MXMY)2Ex+Ey,規(guī)格化浮點數(shù),X=MX2Ex,Y=MY2Ey,Tomultiply,thesignificandsaremultipliedwhiletheexponentsareadded,andtheresultisroundedandnormalized.,階碼相加AddExponent,乘數(shù)和被乘數(shù)的階碼按定點整數(shù)補碼或移碼加法的規(guī)則相加,得到乘積的階碼。,尾數(shù)相乘MultiplySignificands(Mantissa),乘數(shù)和被乘數(shù)的尾數(shù)按定點小數(shù)(原碼或補碼)乘法運算的方法相乘,得到乘積的尾數(shù)。,規(guī)格化和舍入處理Normalizing&Round,規(guī)格化和舍入方法與浮點加減法處理的方法相同。但兩個數(shù)值位是m位的數(shù)相乘,乘積的數(shù)值位為2m位。舍入處理后,尾數(shù)只保留m個數(shù)值位。,一般情況下,兩個規(guī)格化數(shù)相乘,尾數(shù)最多左規(guī)一次,因為兩個純小數(shù)相乘是不會溢出的。但是有一個特例,當(dāng)尾數(shù)做補碼乘法的時候,如果乘數(shù)和被乘數(shù)尾數(shù)的值都是-1,則乘積的尾數(shù)的值是+1,此時需要做一次右規(guī)。,16,判斷溢出ChecktheExponentOverfloworUnderflow,檢查階碼是否溢出。若階碼正常,加減運算正常結(jié)束;若階碼下溢,要置運算結(jié)果為浮點形式的機器零;若階碼上溢,則置溢出標(biāo)志。,Floating-pointarithmeticisatitsbestwhenitissimplybeingusedtomeasurereal-worldquantitiesoverawiderangeofscales(suchastheorbitalperiodofIoorthemassoftheproton),andatitsworstwhenitisexpectedtomodeltheinteractionsofquantitiesexpressedasdecimalstringsthatareexpectedtobeexact.,Anexampleofthelattercaseisfinancialcalculations.Forthisreason,financialsoftwaretendsnottouseabinaryfloating-pointnumberrepresentation.,17,【例2】浮點數(shù),階碼為4位移碼(含1符號位),尾數(shù)為8位補碼(含1符號位),階碼以2為底。,X0.11100112-101,Y=(0.1110010)2011,求X*Y=?,解:,MX補=,MY補=,階碼相加,EXEY移=,EX移=,0.1110011,=00011,0011,EY移=,1.0001110,=01011,1011,00110,=00011+00011=,EX移EY補,EX補=,EY補=,1011,0011,00011,+00011,00110,例2浮點數(shù),階碼為4位移碼(含1符號位),尾數(shù)為8位補碼(含1符號位),階碼以2為底。,尾數(shù)相乘,規(guī)格化和舍入處理,判斷溢出,MX補MY補=,已經(jīng)是規(guī)格化數(shù)。,MX*Y補=1.0011010,移碼表示的階碼為00,未溢出。,XY=,采用0舍1入法,將低n位舍去。,1.00110011001010,0.11100111.0001110=,EX*Y移=00110,X0.11100112-101,Y=(0.1110010)2011,求X*Y=?,MX補=0.1110011,MY補=1.0001110,EX*Y移=00110,2,(-0.1100110),010,19,浮點除法運算Floating-PointDivision,除了除數(shù)不能為0外,浮點除法對除數(shù)和被除數(shù)的大小沒有限制。,兩浮點數(shù)相除,商的尾數(shù)部分是被除數(shù)的尾數(shù)除以除數(shù)的尾數(shù)所得的商,階碼部分是被除數(shù)的階碼減去除數(shù)的階碼所得的差。,XY=,浮點除法運算分以下五個步驟:,尾數(shù)調(diào)整,階碼求差,尾數(shù)相除,規(guī)格化,判斷溢出,(MX2Ex)(MY2Ey),(MXMY)2ExEy,20,尾數(shù)調(diào)整DividendAlignment,檢查|MX|是否小于|MY|。,若|MX|MY|,則將MX右移一位并將階碼加1。,階碼求差SubtractExponent,被除數(shù)的階碼減去除數(shù)的階碼得到商的階碼(按定點整數(shù)補碼或移碼減法的規(guī)則)。,尾數(shù)相除DivideSignificands(Mantissa),兩數(shù)的尾數(shù)按定點小數(shù)(原碼或補碼)除法的規(guī)則相除。,21,判斷溢出,檢查階碼是否溢出。,規(guī)格化NormalizetheResult,由于除數(shù)和被除數(shù)都是規(guī)格化數(shù)并經(jīng)過尾數(shù)的調(diào)整,所以,尾數(shù)相除的結(jié)果一般是規(guī)格化定點小數(shù)。,只有一個例外,當(dāng)補碼表示的商為-0.5時,必須做一次左規(guī)。,IntheIEEE754standard,zeroissigned,meaningthatthereexistbothapositivezero(+0)andanegativezero(-0).Inmostrun-timeenvironments,positivezeroisusuallyprintedas0,whilenegativezeromaybeprintedas-0.Thetwovaluesbehaveasequalinnumericalcomparisons,butsomeoperationsreturndifferentresultsfor+0and0.,例3設(shè)浮點數(shù)基數(shù)為2,階碼為4位補碼,尾數(shù)為5位原碼(均包含1個符號位)。X=+6.5,Y=2.25。,(1)寫出X和Y的規(guī)格化浮點機器數(shù)。,(2)計算XY(尾數(shù)運算用補碼加減交替除法),解:,X=(+6.5)10=(+110.1)2=+0.11012+011,Y=(-2.25)10=(-10.01)2=-0.10012+010,EX補=0011EY補=0010MX原=0.1101MY原=1.1001,設(shè)浮點數(shù)格式為:,浮點機器數(shù):,X浮點=000111101Y浮點=100101001,(1)寫出X和Y的規(guī)格化浮點機器數(shù)。,(2)計算XY(尾數(shù)運算用補碼加減交替除法),MX補=,尾數(shù)調(diào)整,階碼求差,尾數(shù)相除,|MX|MY|,MX補=,-EY補=,EX補EY補=,MY補=1.0111,EX補=0011EY補=0010MX原=0.1101MY原=1.1001,0.1101,MY補=,1.0111,-MY補=,需進行尾數(shù)調(diào)整,,將MX右移1位,EX加1。,EX補=,=00100+11110=,EX補+-EY補,00010,0.01101=0.0111,0100,1110,00010,0.1001,0舍1入,被除數(shù)/余數(shù)00.0111,商0.0000,X,Y異號,R補與Y補同號,商上1,末位商置1,R補與Y補異號,商上0,R補與Y補同號,商上1,R補與Y補異號,商上0,1.0011,11.1011,左移,11.0010,1.001,11.1001,0.1001,左移,00.0010,0.100,00.0001,0.0100,加MY補11.0111,左移,00.1010,0.010,00.0101,0.0010,加-MY補00.1001,左移,11.1100,0.001,11.1110,0.0001,加MY補11.0111,MY補=1.0111,加MY補11.0111,加-MY補00.1001,25,規(guī)格化,判斷溢出,MXY補=1.0011,MXY原=,階碼(補碼)的符號

溫馨提示

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

評論

0/150

提交評論