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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第二章運算方法與運算器

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

2.4.1原碼除法運算原理

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

設有n位定點小數(定點整數也同樣適用):被除數x的原碼為[x]原=xf.xn-1…x1x0除數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)被除數小于除數,商0

-0.01011

2-1y除數右移1位,減除數,商1

0.001110

r1得余數r1

-0.0

01011

2-2y除數右移1位,減除數,商1

0.0000110

r2

得余數r2

-0.0

001011

2-3y除數右移1位,不減除數,商0

0.00001100

r3

得余數r3

-0.0

0001011

2-4y除數右移1位,減除數,商1

0.00000001

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

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

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

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

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

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

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

“除數右移” “右移上商”

恢復余數法 加減交替法2.4.2并行除法器

陣列除法器有多種多樣形式:不恢復余數陣列除法器補碼陣列除法器

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單元的輸入與輸出的關系可用如下一組邏輯方程來表示:

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

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

Si=Ai⊕Bi⊕Ci

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

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

為說明CAS單元的實際內部電路實現,將方程式(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.不恢復余數的陣列除法器

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

不管左移還是右移都添0

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

2.5.1邏輯運算

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

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

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

[例22]

3.

邏輯乘運算

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

[例23]4.邏輯異運算

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

同樣,邏輯乘也可以用邏輯加和邏輯非來實現:Xi,Yi與控制參數和輸入量的關系

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

0

0

1

1

0

1

1AiAiBi

AiBi000

0

1

1

0

111

Ai+Bi

Ai+Bi

Ai

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

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

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

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

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

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

Xi=S3AiBi+S2AiBiYi=Ai+S0Bi+S1Bi設

G=Y3+Y2X3+Y1X2X3+Y0X1X2X3

進位發(fā)生輸出

P=X0X1X2X3進位傳送輸出則

Cn+4=G+PCnG、P,有利于實現多片(組)ALU之間的先行進位先行進位發(fā)生器(CLA)(2.37)3.算術邏輯運算的實現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位全先行進位部件級聯組成的32位ALU2.5.3內部總線根據總線所在位置,總線分為:內部總線外部總線按總線的邏輯結構來說,總線可分為:單向傳送總線雙向傳送總線2.5.4定點運算器的基本結構運算器包括ALU、陣列乘除器、寄存器、多路開關、三態(tài)緩沖器、數據總線等邏輯部件。計算機的運算器大體有如下三種結構形式:單總線結構的運算器雙總線結構的運算器三總線結構的運算器

1.單總線結構的運算器ABABC2.雙總線結構的運算器ABC3.三總線結構的運算器ABC2.6浮點運算方法和浮點運算器

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

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

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

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

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

階碼上溢階碼下溢尾數上溢尾數下溢2.6.2浮點乘法、除法運算設有兩個浮點數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)浮點數的乘除運算大體分為四步: 第一步,0操作數檢查; 第二步,階碼加/減操作; 第三步,尾數乘/除操作; 第四步,結果規(guī)格化及舍入處理。(1)浮點數的階碼運算[x+y]移

=[x]移+[y]補

(mod2n+1)

(2.42)

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

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

截斷處理

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

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

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

(2.44)

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

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

Tk=k+(n-1)

(2.45)

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

TL=n·k

(2.46)

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

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

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

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

奔騰CPU將浮點運算器包含在芯片內。浮點運算部件采用流水線設計。指令執(zhí)行過程分為8段流水線。一般情況下,由U流水線完成一條浮點數操作指令。浮點部件內有浮點專用加法器、乘法器和除法器、寄存器堆等。對于浮點數的取數、加法、乘法等操作,采用了新的算法,其執(zhí)行速度是80486的10倍多。假設有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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論