第三章 計(jì)算機(jī)的算術(shù)運(yùn)算_第1頁(yè)
第三章 計(jì)算機(jī)的算術(shù)運(yùn)算_第2頁(yè)
第三章 計(jì)算機(jī)的算術(shù)運(yùn)算_第3頁(yè)
第三章 計(jì)算機(jī)的算術(shù)運(yùn)算_第4頁(yè)
第三章 計(jì)算機(jī)的算術(shù)運(yùn)算_第5頁(yè)
已閱讀5頁(yè),還剩38頁(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)介

第三章計(jì)算機(jī)的算術(shù)運(yùn)算提綱3.1引言3.2加法和減法3.3乘法3.4除法3.5浮點(diǎn)運(yùn)算3.6并行性和計(jì)算機(jī)算術(shù):結(jié)合律3.7實(shí)例:X86的浮點(diǎn)3.8謬誤與陷阱3.9本章小結(jié)3.10拓展閱讀3.1引言如何表示小數(shù)?遇到無(wú)法表示的大數(shù)怎么辦?如何運(yùn)算?3.2加法和減法運(yùn)算方法?減法轉(zhuǎn)換為補(bǔ)碼的加法;溢出的概念:運(yùn)算結(jié)果超出了數(shù)的表示范圍MIPS檢測(cè)到溢出時(shí)會(huì)產(chǎn)生異常,也叫中斷異常程序計(jì)數(shù)器EPC:保存導(dǎo)致異常的指令一位全加器加法運(yùn)算:Ai+Bi+Ci

=Si

(Ci+1)

加數(shù) 進(jìn)位輸入和進(jìn)位輸出一位全加器真值表輸入輸出AiBiCiSiCi+10000000110010100110110010101011100111111邏輯方程Si=Ai⊕Bi⊕CiCi+1=AiBi+BiCi+CiAi

全加器邏輯電路Si=Ai⊕Bi⊕CiCi+1=AiBi+BiCi+CiAi

Ci+1=AiBi

·(Ci

·(Ai⊕Bi))

邏輯電路(一位全加器)FAAiBiCiSiCi+1n位的行波進(jìn)位加減器[x]補(bǔ)

0.1001+[y]補(bǔ)

0.0011

0.1100FAAiBiCiSiCi+13.2.1多媒體算術(shù)運(yùn)算向量計(jì)算,或單指令多數(shù)據(jù)計(jì)算飽和操作:當(dāng)計(jì)算結(jié)果溢出時(shí),結(jié)果被設(shè)置成最大的正數(shù)或最小的負(fù)數(shù)例:旋轉(zhuǎn)收音機(jī)的音量3.3乘法MIPS乘法提供一對(duì)單獨(dú)的32位寄存器來(lái)容納64位的積;乘法只是簡(jiǎn)單的移位和加法;可以采用并行的方法提高乘法的速度同號(hào)相乘為正,異號(hào)相乘為負(fù)。設(shè)x=0.1101,y=0.1011

0.1101(x)x 0.1011(y)--------------------------------- 1101 1101 0000+1101-----------------------------------0.10001111(z)乘數(shù)為1,抄被乘數(shù)到對(duì)應(yīng)位置乘數(shù)為0,填全0到對(duì)應(yīng)位置或跳過(guò)習(xí)慣方法運(yùn)算過(guò)程k=4權(quán)為2^4i,j=4,03,12,21,30,4am-1am-2.........a0=Ax)bn-1......b1b0=Bam-1b0am-2b0......a1b0a0b0am-1b1am-2b1......a1b1a0b1..................+)am-1bn-1am-2bn-1...a1bn-1a0bn-1pm+n-1pm+n-2pm+n-3......pn-1......p1p0=p并行乘法器實(shí)現(xiàn)n位×n位,需要n(n-1)個(gè)全加器和n2個(gè)“與”門(mén)3.4除法例:設(shè)被除數(shù)x=0.1001,除數(shù)y=0.1011

0.1101

商q

0.1011

0.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ù)右移等價(jià)于被除數(shù)左移機(jī)器運(yùn)算與手算的不同在計(jì)算機(jī)中,小數(shù)點(diǎn)是固定的;機(jī)器不會(huì)心算,必須先作減法,若余數(shù)為正,才知道夠減;若余數(shù)為負(fù),才知道不夠減。不夠減時(shí)必須恢復(fù)原來(lái)的余數(shù),再繼續(xù)往下運(yùn)算——恢復(fù)余數(shù)法?;謴?fù)原來(lái)的余數(shù),只要當(dāng)前的余數(shù)加上除數(shù)即可。恢復(fù)余數(shù),使除法進(jìn)行過(guò)程的步數(shù)不固定,控制復(fù)雜。實(shí)際中常用不恢復(fù)余數(shù)法,又稱加減交替法。步數(shù)固定,控制簡(jiǎn)單。不恢復(fù)余數(shù)(加減交替法)試商 x-y

減恢復(fù)余數(shù)

x-y+y試下一位商 2x-y=2(x-y)+y 加3.5浮點(diǎn)運(yùn)算小數(shù)點(diǎn)在計(jì)算機(jī)中如何表示?3.5.1浮點(diǎn)數(shù)的表示方法把一個(gè)數(shù)的有效數(shù)字和數(shù)的范圍在計(jì)算機(jī)的一個(gè)存儲(chǔ)單元中分別予以表示;任意一個(gè)十進(jìn)制數(shù)N可以寫(xiě)成:N=10E.M計(jì)算機(jī)中一個(gè)任意進(jìn)制數(shù)N可以寫(xiě)成:N=Re.mm:尾數(shù),是一個(gè)純小數(shù);e:比例因子的指數(shù),稱為浮點(diǎn)的指數(shù),是一個(gè)整數(shù);R:比例因子的基數(shù)。(1)機(jī)器浮點(diǎn)數(shù)機(jī)器浮點(diǎn)數(shù)由階碼、尾數(shù)及其符號(hào)位組成:尾數(shù):用定點(diǎn)小數(shù)表示,給出有效數(shù)字的位數(shù),決定浮點(diǎn)數(shù)的表示精度;階碼:用整數(shù)形式表示,指明小數(shù)點(diǎn)在數(shù)據(jù)中的位置,決定浮點(diǎn)數(shù)的表示范圍。EsE1E2....EmMsM1M2....Mn階符階碼數(shù)符尾數(shù)(2)浮點(diǎn)數(shù)的標(biāo)準(zhǔn)格式IEEE(國(guó)際電氣和電子工程師協(xié)會(huì))IEEE754標(biāo)準(zhǔn):尾數(shù)用原碼;階碼用移碼,基為2;S---尾數(shù)符號(hào),0正1負(fù);M---尾數(shù),純小數(shù)表示,小數(shù)點(diǎn)在尾數(shù)域最前;E---階碼,采用移碼方法來(lái)表示正負(fù)指數(shù)。313023220SEM(3)浮點(diǎn)數(shù)的規(guī)格化表示浮點(diǎn)數(shù)表示:0.5;0.05101

;0.005102;為提高數(shù)據(jù)的表示精度,需做規(guī)格化處理;規(guī)格化處理:對(duì)非0值的浮點(diǎn)數(shù),要求尾數(shù)的絕對(duì)值必須>=1/2,即尾數(shù)域的最高有效位應(yīng)為1:0.10001;規(guī)格化處理,通過(guò)尾數(shù)移位和修改階碼實(shí)現(xiàn)。隱藏位技術(shù)非0值浮點(diǎn)數(shù)的尾數(shù)數(shù)值最高位必定為1;保存時(shí)把該位去掉,用同樣多的尾數(shù)位就能多存一位二進(jìn)制數(shù);0.11000101.100010取回運(yùn)算時(shí),必須先恢復(fù)隱藏位。(4)規(guī)格化浮點(diǎn)數(shù)的真值移碼定義:[x]移

=x0x1x2···xn

=2n+x -2n

x

2nIEEE754標(biāo)準(zhǔn),一個(gè)規(guī)格化的32位浮點(diǎn)數(shù)x的真值為:x=

(-1)s

(1.M)

2E-127 e=E–127IEEE754標(biāo)準(zhǔn),一個(gè)規(guī)格化的64位浮點(diǎn)數(shù)x的真值為:x=(–1)s×(1.M)×2E-1023 e=E–1023E=0且M=0,浮點(diǎn)數(shù)x的真值為零,稱為機(jī)器零S=0,+0 S=1,-0E=11...1,M=0,浮點(diǎn)數(shù)x的真值為

S=0,+

S=1,-

例1若浮點(diǎn)數(shù)x的二進(jìn)制存儲(chǔ)格式為(41360000)16,求32位浮點(diǎn)數(shù)的十進(jìn)制值。0100,0001,0011,0110,0000,0000,0000,0000數(shù)符:0階碼:1000,0010尾數(shù):011,0110,0000,0000,0000,0000指數(shù)e=階碼-127=10000010-01111111=00000011=(3)10包括隱藏位1的尾數(shù):1.M=1.011011000000000

0000

0000=1.011011于是有x=(-1)s×1.M×2e=+(1.011011)×23=+1011.011=(11.375)10例2將十進(jìn)制數(shù)20.59375轉(zhuǎn)換成32位浮點(diǎn)數(shù)的二進(jìn)制格式來(lái)存儲(chǔ)首先分別將整數(shù)和分?jǐn)?shù)部分轉(zhuǎn)換成二進(jìn)制數(shù):20.59375=10100.10011然后移動(dòng)小數(shù)點(diǎn),使其在第1,2位之間10100.10011=1.010010011×24 e=4于是得到:S=0,E=4+127=131=1000,0011,M=010010011最后得到32位浮點(diǎn)數(shù)的二進(jìn)制存儲(chǔ)格式為01000001

10100100110000000000

0000=(41A4C000)16移碼表示法n位整數(shù),假定移碼形式為x0x1x2···

xn2n+x-2n

x

2n[x]移

=移碼通常用于表示浮點(diǎn)數(shù)的階碼;8位移碼表示的機(jī)器數(shù)為數(shù)的真值在數(shù)軸上向右平移了128個(gè)位置。0-128+127負(fù)數(shù)正數(shù)機(jī)器數(shù)移碼的特點(diǎn)與原碼、補(bǔ)碼、反碼的符號(hào)位值正好相反;移碼的大小直觀地反映了真值的大小,有助于兩個(gè)浮點(diǎn)數(shù)進(jìn)行階碼大小比較;真值0在移碼中的表示形式是唯一的,即:[+0]移=[-0]移=100…00同一數(shù)值的移碼和補(bǔ)碼除最高位相反外,其他各位相同。3.5.2浮點(diǎn)加法設(shè)有兩個(gè)浮點(diǎn)數(shù)x和y,它們分別為:x=2Ex·

Mxy=2Ey·MyEx和Ey

分別為階碼,Mx

和My為尾數(shù)。兩浮點(diǎn)數(shù)進(jìn)行加法和減法的運(yùn)算規(guī)則是:x±y=(Mx2Ex-Ey±My)2Ey Ex<=Ey完成浮點(diǎn)加減運(yùn)算的操作過(guò)程大體分為:(1)比較階碼大小并完成對(duì)階;(2)尾數(shù)進(jìn)行加或減運(yùn)算;(3)結(jié)果規(guī)格化(4)溢出處理(5)舍入處理。對(duì)階使二數(shù)階碼相同(小數(shù)點(diǎn)位置對(duì)齊),叫對(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。結(jié)果規(guī)格化尾數(shù)求和方法與定點(diǎn)加減法運(yùn)算完全一樣;將求和的結(jié)果規(guī)格化.

規(guī)格化的定義:

采用原碼:正數(shù):S=0.1×××…×負(fù)數(shù):S=1.1×××…×采用雙符號(hào)位的補(bǔ)碼:對(duì)正數(shù):S=00.1×××…×對(duì)負(fù)數(shù):S=11.0×××…×舍入處理在對(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。溢出處理浮點(diǎn)數(shù)的溢出表現(xiàn)為階碼溢出;階碼上溢超過(guò)了階碼可能表示的最大值的正指數(shù)值,一般將其認(rèn)為是+∞和-∞。階碼下溢超過(guò)了階碼可能表示的最小值的負(fù)指數(shù)值,一般將其認(rèn)為是0。對(duì)尾數(shù)的溢出也需要處理尾數(shù)上溢

兩個(gè)同符號(hào)尾數(shù)相加產(chǎn)生了最高位向上的進(jìn)位,將尾數(shù)右移,階碼增1來(lái)重新對(duì)齊。尾數(shù)下溢在將尾數(shù)右移時(shí),尾數(shù)的最低有效位從尾數(shù)域右端流出,要進(jìn)行舍入處理3.5.3浮點(diǎn)乘/除法設(shè)有兩個(gè)浮點(diǎn)數(shù)x和y:x=2Ex·Mx,y=2Ey·My浮點(diǎn)乘法運(yùn)算的規(guī)則是:x

y=2(Ex+Ey)·(Mx

My)浮點(diǎn)除法運(yùn)算的規(guī)則是:

x÷y=2(Ex-Ey)·(Mx÷My)浮點(diǎn)乘、除法運(yùn)算步驟:(1)0操作數(shù)檢查;(2)階碼加/減操作;(3)尾數(shù)乘/除操作;(4)結(jié)果規(guī)格化及舍入處理浮點(diǎn)運(yùn)算流水線流水線原理把輸入的任務(wù)分割為一系列子任務(wù),使各子任務(wù)能在流水線的各個(gè)階段并發(fā)地執(zhí)行;將任務(wù)連續(xù)不斷地輸入流水線,從而實(shí)現(xiàn)了子任務(wù)的并行。在流水線中,原則上要求各個(gè)階段的處理時(shí)間都相同。對(duì)子任務(wù)的劃分,是決定流水線性能的一個(gè)關(guān)鍵因素。假定作業(yè)T被分成k個(gè)子任務(wù),可表達(dá)

溫馨提示

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