N03-定點除法浮點運算_第1頁
N03-定點除法浮點運算_第2頁
N03-定點除法浮點運算_第3頁
N03-定點除法浮點運算_第4頁
N03-定點除法浮點運算_第5頁
已閱讀5頁,還剩59頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第二章運算方法與運算器

數(shù)據(jù)與文字的表示方法定點加法、減法運算定點乘法運算定點除法運算定點運算器的組成浮點運算方法和浮點運算器2.4定點除法運算

2.4.1原碼除法運算原理

兩個原碼表示的數(shù)相除時,商的符號由兩數(shù)的符號按位相加求得,商的數(shù)值部分由兩數(shù)的數(shù)值部分相除求得。

設(shè)有n位定點小數(shù)(定點整數(shù)也同樣適用):被除數(shù)x的原碼為[x]原=xf.xn-1…x1x0除數(shù)y的原碼為[y]原=yf.yn-1…y1y0則有商q=x/y,其原碼為[q]原=(xf⊕yf)+(0.xn-1…x1x0/0.yn-1…y1y0)商的符號運算qf=xf⊕yf0.1101

商q

0.10110.10010

x(r0)被除數(shù)小于除數(shù),商0

-0.01011

2-1y除數(shù)右移1位,減除數(shù),商1

0.001110

r1得余數(shù)r1

-0.0

01011

2-2y除數(shù)右移1位,減除數(shù),商1

0.0000110

r2

得余數(shù)r2

-0.0

001011

2-3y除數(shù)右移1位,不減除數(shù),商0

0.00001100

r3

得余數(shù)r3

-0.0

0001011

2-4y除數(shù)右移1位,減除數(shù),商1

0.00000001

r4得余數(shù)r4得x÷y的商q=0.1101,余數(shù)為r=0.00000001。設(shè)被除數(shù)x=0.1001,除數(shù)y=0.1011

設(shè)被除數(shù)x=0.1001,除數(shù)y=0.1011,模仿十進制除法運算,得x÷y的商q=0.1101,余數(shù)為r=0.00000001。1.判斷x是否小于y?現(xiàn)在x<y,故商的整數(shù)位商“0”,x的低位補0,得余數(shù)r0。2.比較r0和2-1y,因r0>2-1y,表示夠減,小數(shù)點后第一位商“1”,作r0-2-1y,得余數(shù)r1。3.比較r1和2-2y,因r1>2-2y,表示夠減,小數(shù)點后第二位商“1”,作r1-2-2y,得余數(shù)r2。4.比較r2和2-3y,因r2<2-3y,不夠減,小數(shù)點后第三位商“0”,不作減法,得余數(shù)r3(=r2)。5.比較r3和2-4y,因r3>2-4y,表示夠減,小數(shù)點后第四2位商“1”,作r3-2-4y,得余數(shù)r4。

“除數(shù)右移”“右移上商”機器不會心算,須先作減法,若余數(shù)為正,才知道夠減;若余數(shù)為負,才知道不夠減。不夠減時必須恢復(fù)原來的余數(shù),以便再繼續(xù)往下運算。這種方法稱為恢復(fù)余數(shù)法。要恢復(fù)原來的余數(shù),只要當(dāng)前的余數(shù)加上除數(shù)即可。

實際中常用不恢復(fù)余數(shù)法,又稱加減交替法。其特點是運算過程中如出現(xiàn)不夠減,則不必恢復(fù)余數(shù),根據(jù)余數(shù)符號,可以繼續(xù)往下運算,因此步數(shù)固定,控制簡單。串行除法器速度太慢,目前已被淘汰。

設(shè)有n位定點小數(shù)(定點整數(shù)也同樣適用):被除數(shù)x的原碼為[x]原=xf.xn-1…x1x0除數(shù)y的原碼為[y]原=yf.yn-1…y1y0則有商q=x/y,其原碼為

[q]原=(xf⊕yf)+(0.xn-1…x1x0/0.yn-1…y1y0)商的符號運算qf=xf⊕yf

設(shè)被除數(shù)x=0.1001,除數(shù)y=0.1011,模仿十進制除法運算,得x÷y的商q=0.1101,余數(shù)為r=0.00000001。

“除數(shù)右移” “右移上商”

恢復(fù)余數(shù)法 加減交替法2.4.2并行除法器

陣列除法器有多種多樣形式:不恢復(fù)余數(shù)陣列除法器補碼陣列除法器

1.可控加法/減法(CAS)單元Bi⊕PAi⊕(Bi⊕P)CiSi=Ai⊕(Bi⊕P)⊕CiCi+1=(Ai+Ci)·(Bi⊕P)+AiCiCiAi(Ai+Ci)AiCi(Ai+Ci)·(Bi⊕P)Ai

CAS單元的輸入與輸出的關(guān)系可用如下一組邏輯方程來表示:

Si=Ai⊕(Bi⊕P)⊕CiCi+1=(Ai+Ci)·(Bi⊕P)+AiCi

當(dāng)P=0時,方程式(2.27)就等于式(2.23),即得我們熟悉的一位全加器(FA)的公式:

Si=Ai⊕Bi⊕Ci

Ci+1=AiBi+BiCi+AiCi(2.27)當(dāng)P=1時,則得求差公式:

Si=Ai⊕Bi⊕CiCi+1=AiBi+BiCi+AiCi其中Bi=Bi⊕1。在減法情況下,輸入Ci稱為借位輸入,而Ci+1稱為借位輸出。(2.28)

為說明CAS單元的實際內(nèi)部電路實現(xiàn),將方程式(2.28)加以變換,可得如下形式:

Si=Ai⊕(Bi⊕P)⊕Ci

=AiBiCiP+AiBiCiP+AiBiCiP+AiBiCiP+

AiBiCiP+AiBiCiP+AiBiCiP+AiBiCiP

Ci+1=(Ai+Ci)(Bi⊕P)+AiCi

=AiBiP+AiBiP+BiCiP+BiCiP+AiCi2.不恢復(fù)余數(shù)的陣列除法器

[例20]將余數(shù)固定除數(shù)右移等效成除數(shù)固定余數(shù)左移碼制填補代碼正數(shù)原碼、反碼、補碼0負數(shù)原碼0補碼左移添0右移添1反碼1算術(shù)移位運算(有符號數(shù)的移位)邏輯移位運算(無符號數(shù)的移位)

不管左移還是右移都添0

原碼除法(加減交替運算規(guī)則)1、被除數(shù)(或余數(shù))減除數(shù),當(dāng)余數(shù)為正時商上1,余數(shù)左移減除數(shù);當(dāng)余數(shù)為負時商上0,余數(shù)左移加除數(shù);2、原碼運算時,商的符號運算qf=xf⊕yf,商的值為q=|x|/|y|,采用雙符號位,運算中余數(shù)左移n位,則r=2-n.[r]3、對于n位數(shù)除法需進行n+1次加法和n次移位。補碼除法(加減交替運算規(guī)則)1、符號位參加運算,被除數(shù)與除數(shù)均采用雙符號位。2、第一步,被除數(shù)與除數(shù)同號時,減除數(shù);被除數(shù)與除數(shù)異號時,加除數(shù);3、當(dāng)余數(shù)與除數(shù)同號時,商上1,余數(shù)左移,減除數(shù);當(dāng)余數(shù)與除數(shù)異號時,商上0,余數(shù)左移,加除數(shù);4、包括符號位在內(nèi)n+1,重復(fù)3,共作n+1步。商和余數(shù)的校正1、商的校正(僅對補碼運算)剛好除盡時(余數(shù)為0),若除數(shù)為正,則商不校正,若除數(shù)為負則商需加上2-n進行校正;不能除盡時,若商為正則不校正;商為負則商需加上2-n進行校正2、余數(shù)校正(對原碼和補碼):前提是,余數(shù)和被除數(shù)異號若商為正,將余數(shù)加上除數(shù)進行校正;若商為負,將余數(shù)減去除數(shù)進行校正。原碼除法對絕對值進行運算,結(jié)果商一定為正。因此當(dāng)運算結(jié)果余數(shù)為負時,與x的絕對值異號,余數(shù)加上除數(shù)進行校正,且校正后,余數(shù)符號應(yīng)與被除數(shù)x相同2.5定點運算器的組成

2.5.1邏輯運算

計算機中的邏輯運算,主要是指邏輯非、邏輯加、邏輯乘、邏輯異四種基本運算。1.邏輯非運算

邏輯非也稱求反。對某數(shù)進行邏輯非運算,就是按位求反,常用變量上方加一橫來表示。2.邏輯加運算

對兩個數(shù)進行邏輯加,就是按位求它們的“或”,所以邏輯加又稱邏輯或,常用記號“V”或“+”來表示。

[例22]

3.

邏輯乘運算

對兩數(shù)進行邏輯乘,就是按位求它們的“與”,所以邏輯乘又稱“邏輯與”,常用記號“∧”或“·”來表示。

[例23]4.邏輯異運算

對兩數(shù)進行異就是按位求它們的模2和,所以邏輯異又稱“按位加”,常用記號“⊕”表示。事實上,邏輯加還可以通過邏輯乘和邏輯非來實現(xiàn):

同樣,邏輯乘也可以用邏輯加和邏輯非來實現(xiàn):Xi,Yi與控制參數(shù)和輸入量的關(guān)系

表中紫色為該數(shù)的非運算根據(jù)上面所列的函數(shù)關(guān)系,即可列出Xi和Yi的邏輯表達式S0S1YiS2S3Xi0

0

0

1

1

0

1

1AiAiBi

AiBi000

0

1

1

0

111

Ai+Bi

Ai+Bi

Ai

2.5.2多功能算術(shù)/邏輯運算單元(ALU)

1.基本思想一位全加器(FA)的邏輯表達式為

Fi=Ai⊕Bi⊕CiCi+1=AiBi+BiCi+CiAi因此,一位算術(shù)/邏輯運算單元的邏輯表達式為

Fi=Xi⊕Yi⊕Cn+iCn+i+1=XiYi+YiCn+i+Cn+iXiFi=Xi⊕Yi⊕Cn+iCn+i+1=Y(jié)i+XiCn+i2.邏輯表達式Xi和Yi的邏輯表達式:

Xi=S2S3+S2S3(Ai+Bi)+S2S3(Ai+Bi)+S2S3Ai

Yi=S0S1Ai+S0S1AiBi+S0S1AiBiALU的某一位邏輯表達式如下:

Xi=S3AiBi+S2AiBiYi=Ai+S0Bi+S1Bi設(shè)

G=Y(jié)3+Y2X3+Y1X2X3+Y0X1X2X3

進位發(fā)生輸出

P=X0X1X2X3進位傳送輸出則

Cn+4=G+PCnG、P,有利于實現(xiàn)多片(組)ALU之間的先行進位先行進位發(fā)生器(CLA)(2.37)3.算術(shù)邏輯運算的實現(xiàn)M=0××××××××××M=14.兩級先行進位的ALUCn+x=G0+P0CnCn+y=G1+P1Cn+x=G1+G0P1+P0P1CnCn+z=G2+P2Cn+y=G2+G1P2+G0P1P2+P0P1P2Cn

Cn+4=G3+P3Cn+z=G3+G2P3+G1P1P2+G0P1P2P3+

P0P1P2P3Cn

=G*+P*Cn

(2.32)其中 P*=P0P1P2P3 G*=G3+G2P3+G1P1P2+G0P1P2P3圖2.13用兩個16位全先行進位部件級聯(lián)組成的32位ALU2.5.3內(nèi)部總線根據(jù)總線所在位置,總線分為:內(nèi)部總線外部總線按總線的邏輯結(jié)構(gòu)來說,總線可分為:單向傳送總線雙向傳送總線2.5.4定點運算器的基本結(jié)構(gòu)運算器包括ALU、陣列乘除器、寄存器、多路開關(guān)、三態(tài)緩沖器、數(shù)據(jù)總線等邏輯部件。計算機的運算器大體有如下三種結(jié)構(gòu)形式:單總線結(jié)構(gòu)的運算器雙總線結(jié)構(gòu)的運算器三總線結(jié)構(gòu)的運算器

1.單總線結(jié)構(gòu)的運算器ABABC2.雙總線結(jié)構(gòu)的運算器ABC3.三總線結(jié)構(gòu)的運算器ABC2.6浮點運算方法和浮點運算器

2.6.1浮點加法、減法運算設(shè)有兩個浮點數(shù)x和y,它們分別為 x=2Ex·Mx y=2Ey·My其中Ex和Ey分別為數(shù)x和y的階碼,Mx和My為數(shù)x和y的尾數(shù)。兩浮點數(shù)進行加法和減法的運算規(guī)則是x±y=(Mx2Ex-Ey

±My)2Ey,Ex<=Ey(2.39)浮點加減運算操作流程對階操作小階向大階看齊,大階不變。即小階的尾數(shù)向右移位(相當(dāng)于小數(shù)點左移),每右移一位,其階碼加1,直到兩數(shù)的階碼相等為止,右移的位數(shù)等于階差△E。

原因是什么?結(jié)果規(guī)格化右規(guī)處理:

01.x1…xn 10.x1…xn尾數(shù)右移1位,階碼加1,左邊補1位左規(guī)處理:

11.x1…xn 00.x1…xn尾數(shù)左移1位,階碼減1,右邊補1位[例25]舍入處理“0舍1入”法“恒置一”法在IEEE754標(biāo)準(zhǔn)中,舍入處理有四種可選方法:就近舍入朝0舍入朝+∞舍入朝-∞舍入浮點數(shù)的溢出

階碼上溢階碼下溢尾數(shù)上溢尾數(shù)下溢2.6.2浮點乘法、除法運算設(shè)有兩個浮點數(shù)x和y:x=2Ex·Mxy=2Ey·My

浮點乘法運算的規(guī)則是 x×y=2(Ex+Ey)·(Mx×My)浮點除法運算的規(guī)則是 x÷y=2(Ex-Ey)·(Mx÷My)(2.41)(2.40)浮點數(shù)的乘除運算大體分為四步: 第一步,0操作數(shù)檢查; 第二步,階碼加/減操作; 第三步,尾數(shù)乘/除操作; 第四步,結(jié)果規(guī)格化及舍入處理。(1)浮點數(shù)的階碼運算[x+y]移

=[x]移+[y]補

(mod2n+1)

(2.42)

[x-y]移=[x]移+[-y]補(2.43)10上溢11下溢00負01正(2)尾數(shù)處理

浮點加減法對結(jié)果的規(guī)格化及舍入處理也適用于浮點乘除法。

截斷處理

舍入處理2.6.3浮點運算流水線1.流水線原理流水線的分類:線性流水線和非線性流水線

設(shè)過程段Si所需的時間為τi,緩沖寄存器的延時為τl,線性流水線的時鐘周期定義為

τ=max{τi}+τl=τm+τl

(2.44)

故流水線處理的頻率為f=1/τ。

從理論上說,一個具有k級過程段的流水線處理n個任務(wù)需要的時鐘周期數(shù)為

Tk=k+(n-1)

(2.45)

如果用非流水線的硬件來處理這n個任務(wù),時間上只能串行進行,則所需時鐘周期數(shù)為

TL=n·k

(2.46)

將TL和Tk的比值定義為k級線性流水線的加速比:

Ck=TL/Tk=n·k/[k+(n-1)] (2.47)

當(dāng)n>>k時,Ck→k。這就是說,理論上k級線性流水線處理幾乎可以提高k倍速度。但實際上由于存儲器沖突、數(shù)據(jù)相關(guān),這個理想的加速比不一定能達到。2.流水線浮點加法器

[例29] [例30]2.6.4浮點運算器實例1.CPU之外的浮點運算器(1)以異步方式與80386并行工作,80x87相當(dāng)于386的一個I/O部件,本身有它自己的指令,但不能單獨使用,它只能作為386主CPU的協(xié)處理器才能運算。(2)可處理包括二進制浮點數(shù)、二進制整數(shù)、和壓縮十進制數(shù)串三大類7種數(shù)據(jù),其中浮點數(shù)的格式符合IEEE754標(biāo)準(zhǔn)。字整數(shù)(16位整數(shù))短整數(shù)(32位整數(shù))長整數(shù)(64位整數(shù))短實數(shù)(32位浮點數(shù))長實數(shù)(64位浮點數(shù))臨時實數(shù)(80位浮點數(shù))十進數(shù)串(十進制18位)7種數(shù)據(jù)類型在寄存器中表示如下:S15位(二進制補碼)S31位(二進制補碼)S63位(二進制補碼)S指數(shù)尾數(shù)(23位)S指數(shù)尾數(shù)(52位)S指數(shù)尾數(shù)(64位)S-d17d16…d1d080x87的內(nèi)部結(jié)構(gòu)邏輯框圖用每兩位表示寄存器堆棧中每個寄存器的狀態(tài),即特征值為00—11四種組合時表明相應(yīng)的寄存器有正確數(shù)據(jù)、數(shù)據(jù)為0、數(shù)據(jù)非法、無數(shù)據(jù)四種情況。加速移位操作處理浮點數(shù)的指數(shù)和尾數(shù)八個80位字長以“先進后出”方式管理的寄存器組用于表示80287的結(jié)果處理情況,例如當(dāng)“忙”標(biāo)志為1時,表示正在執(zhí)行一條浮點運算指令,為0則表示80×87空閑。狀態(tài)寄存器的低6位指出異常錯誤的6種類型,與控制寄存器低6位相對應(yīng)。當(dāng)對應(yīng)的控制寄存器位為0(未屏蔽)而狀態(tài)寄存器位為1時,因發(fā)生某種異常錯誤而產(chǎn)生中斷請求。用于控制80287的內(nèi)部操作。2.CPU之內(nèi)的浮點運算器

奔騰CPU將浮點運算器包含在芯片內(nèi)。浮點運算部件采用流水線設(shè)計。指令執(zhí)行過程分為8段流水線。一般情況下,由U流水線完成一條浮點數(shù)操作指令。浮點部件內(nèi)有浮點專用加法器、乘法器和除法器、寄存器堆等。對于浮點數(shù)的取數(shù)、加法、乘法等操作,采用了新的算法,其執(zhí)行速度是80486的10倍多。假設(shè)有4個過程段組成流水線浮點加法器,每個過程段所需的時間為:求階差τ1=70ns,對階τ2=60ns,相加τ3=90ns,規(guī)格化τ4=80ns,緩沖寄存器L的延時為tl=10ns,求4級流水線加法器的加速比為多少?(2)如果每個過程段的時

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論