第三章 計(jì)算機(jī)的算術(shù)運(yùn)算_第1頁
第三章 計(jì)算機(jī)的算術(shù)運(yùn)算_第2頁
第三章 計(jì)算機(jī)的算術(shù)運(yùn)算_第3頁
第三章 計(jì)算機(jī)的算術(shù)運(yùn)算_第4頁
第三章 計(jì)算機(jī)的算術(shù)運(yùn)算_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第三章第三章 計(jì)算機(jī)的算術(shù)運(yùn)算計(jì)算機(jī)的算術(shù)運(yùn)算提綱提綱v3.1 3.1 引言引言v3.2 3.2 加法和減法加法和減法v3.3 3.3 乘法乘法v3.4 3.4 除法除法v3.5 3.5 浮點(diǎn)運(yùn)算浮點(diǎn)運(yùn)算v3.6 3.6 并行性和計(jì)算機(jī)算術(shù):結(jié)合律并行性和計(jì)算機(jī)算術(shù):結(jié)合律v3.7 3.7 實(shí)例:實(shí)例:X86X86的浮點(diǎn)的浮點(diǎn)v3.8 3.8 謬誤與陷阱謬誤與陷阱v3.9 3.9 本章小結(jié)本章小結(jié)v3.10 3.10 拓展閱讀拓展閱讀3.1 3.1 引言引言v如何表示小數(shù)?如何表示小數(shù)?v遇到無法表示的大數(shù)怎么辦?遇到無法表示的大數(shù)怎么辦?v如何運(yùn)算?如何運(yùn)算?3.2 3.2 加法和減法加法和

2、減法v運(yùn)算方法?運(yùn)算方法? 減法轉(zhuǎn)換為補(bǔ)碼的加法;v溢出溢出的概念:運(yùn)算結(jié)果超出了數(shù)的表示范圍的概念:運(yùn)算結(jié)果超出了數(shù)的表示范圍 MIPS檢測(cè)到溢出時(shí)會(huì)產(chǎn)生異常,也叫中斷 異常程序計(jì)數(shù)器EPC :保存導(dǎo)致異常的指令一位全加器一位全加器加法運(yùn)算:加法運(yùn)算: A Ai i + B+ Bi i + C+ Ci i = S= Si i (C(Ci+1i+1) ) 加數(shù)加數(shù) 進(jìn)位輸入進(jìn)位輸入 和和 進(jìn)位輸出進(jìn)位輸出一位全加器真值表輸入輸出AiBiCiSiCi+10000000110010100110110010101011100111111邏輯方程Si=Ai Bi CiCi+1=AiBi+BiCi+Ci

3、Ai全加器邏輯電路全加器邏輯電路 Si=AiBiCi Ci+1=AiBi+BiCi+CiAiCi+1= = AiBi (Ci (Ai Bi)邏輯電路(一位全加器)FAAiBiCiSiCi+1n n位的行波進(jìn)位加減器位的行波進(jìn)位加減器 x補(bǔ)0. 1 0 0 1+y補(bǔ)0. 0 0 1 1 0. 1 1 0 0FAAiBiCiSiCi+13.2.1 3.2.1 多媒體算術(shù)運(yùn)算多媒體算術(shù)運(yùn)算v向量計(jì)算,或單指令多數(shù)據(jù)計(jì)算向量計(jì)算,或單指令多數(shù)據(jù)計(jì)算v飽和操作:飽和操作: 當(dāng)計(jì)算結(jié)果溢出時(shí),結(jié)果被設(shè)置成最大的正數(shù)或最小的負(fù)數(shù) 例:旋轉(zhuǎn)收音機(jī)的音量3.3 3.3 乘法乘法vMIPS乘法提供一對(duì)單獨(dú)的乘法提

4、供一對(duì)單獨(dú)的32位寄存器來容納位寄存器來容納64位位的積;的積;v乘法只是簡(jiǎn)單的移位和加法;乘法只是簡(jiǎn)單的移位和加法;v可以采用并行的方法提高乘法的速度可以采用并行的方法提高乘法的速度v同號(hào)相乘為正,異號(hào)相乘為負(fù)。同號(hào)相乘為正,異號(hào)相乘為負(fù)。v設(shè)設(shè)=0.1101,=0.1101,=0.1011=0.1011 0 . 1 1 0 1 (0 . 1 1 0 1 (x x) ) x x 0 . 1 0 1 1 (y) 0 . 1 0 1 1 (y)- 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 0 0 0 0 0 0 0 0 + 1 1 0 1 + 1 1 0 1-0 . 1 0

5、 0 0 1 1 1 1 (0 . 1 0 0 0 1 1 1 1 (z z) )乘數(shù)為乘數(shù)為1 1,抄被乘數(shù)到對(duì)應(yīng)位置,抄被乘數(shù)到對(duì)應(yīng)位置乘數(shù)為乘數(shù)為0 0,填全,填全0 0到對(duì)應(yīng)位置或跳過到對(duì)應(yīng)位置或跳過習(xí)慣方法運(yùn)算過程習(xí)慣方法運(yùn)算過程k=4 權(quán)為24i,j=4,0 3,1 2,2 1,3 0,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并行乘法器并行乘法器v實(shí)現(xiàn)實(shí)現(xiàn)n

6、 n位位n n位位, ,需要需要n n( (n n-1)-1)個(gè)全加器和個(gè)全加器和n n2 2個(gè)個(gè)“與與”門門3.4 3.4 除法除法v例例: : 設(shè)被除數(shù)設(shè)被除數(shù)x=0.1001, x=0.1001, 除數(shù)除數(shù)y=0.1011y=0.1011 0.1 1 0 1 商q0.1 0 1 1 0.1 0 0 1 0 (r0)被除數(shù)小于除數(shù),商0 -0.0 1 0 1 1 2-1 除數(shù)右移1位,減除數(shù), 商1 0.0 0 1 1 1 0 r1 得余數(shù)r1 -0.0 0 1 0 1 1 2-2 除數(shù)右移1位,減除數(shù), 商1 0.0 0 0 0 1 1 0 r2 得余數(shù)r2 -0.0 0 0 1 0 1

7、 1 2-3 除數(shù)右移1位,不減除數(shù),商0 0.0 0 0 0 1 1 0 0 r3 得余數(shù)r3 -0.0 0 0 0 1 0 1 1 2-4 除數(shù)右移1位,減除數(shù), 商1 -0.0 0 0 0 0 0 0 1 r4 得余數(shù)r4得的商q=0.1101,余數(shù)為r=0.00000001。除數(shù)右移等價(jià)于被除數(shù)左移機(jī)器運(yùn)算與手算的不同機(jī)器運(yùn)算與手算的不同v在計(jì)算機(jī)中在計(jì)算機(jī)中, , 小數(shù)點(diǎn)是固定的;小數(shù)點(diǎn)是固定的;v機(jī)器不會(huì)心算機(jī)器不會(huì)心算, ,必須先作減法必須先作減法, ,若余數(shù)為正若余數(shù)為正, ,才知道才知道夠減;若余數(shù)為負(fù)夠減;若余數(shù)為負(fù), ,才知道不夠減。不夠減時(shí)必須才知道不夠減。不夠減時(shí)必須

8、 恢復(fù)原來的余數(shù)恢復(fù)原來的余數(shù), , 再繼續(xù)往下運(yùn)算再繼續(xù)往下運(yùn)算恢復(fù)余數(shù)恢復(fù)余數(shù)法法。v恢復(fù)原來的余數(shù)恢復(fù)原來的余數(shù), ,只要當(dāng)前的只要當(dāng)前的余數(shù)余數(shù)加上加上除數(shù)除數(shù)即可。即可。恢復(fù)余數(shù)恢復(fù)余數(shù), ,使除法進(jìn)行過程的步數(shù)不固定使除法進(jìn)行過程的步數(shù)不固定, , 控制復(fù)控制復(fù)雜。雜。 實(shí)際中常用不恢復(fù)余數(shù)法,又稱加減交替法。步數(shù)固定, 控制簡(jiǎn)單。不恢復(fù)余數(shù)不恢復(fù)余數(shù)( (加減交替法加減交替法) )v試商試商x-yx-y減減v恢復(fù)余數(shù)恢復(fù)余數(shù)x-y+yx-y+yv試下一位商試下一位商2x-y=2(x-y)+y2x-y=2(x-y)+y加加3.5 3.5 浮點(diǎn)運(yùn)算浮點(diǎn)運(yùn)算v小數(shù)點(diǎn)在計(jì)算機(jī)中如何表示?

9、小數(shù)點(diǎn)在計(jì)算機(jī)中如何表示?3.5.1 3.5.1 浮點(diǎn)數(shù)的表示方法浮點(diǎn)數(shù)的表示方法v把一個(gè)數(shù)的把一個(gè)數(shù)的有效數(shù)字有效數(shù)字和數(shù)的和數(shù)的范圍范圍在計(jì)算機(jī)的一個(gè)存在計(jì)算機(jī)的一個(gè)存儲(chǔ)單元中分別予以表示;儲(chǔ)單元中分別予以表示;v任意一個(gè)十進(jìn)制數(shù)任意一個(gè)十進(jìn)制數(shù) 可以寫成:可以寫成:N=10 E.Mv計(jì)算機(jī)中一個(gè)任意進(jìn)制數(shù)計(jì)算機(jī)中一個(gè)任意進(jìn)制數(shù)可以寫成可以寫成 :=R e.mm:尾數(shù),是一個(gè)純小數(shù);e:比例因子的指數(shù), 稱為浮點(diǎn)的指數(shù), 是一個(gè)整數(shù);R:比例因子的基數(shù)。(1)(1)機(jī)器浮點(diǎn)數(shù)機(jī)器浮點(diǎn)數(shù)v機(jī)器浮點(diǎn)數(shù)由階碼、尾數(shù)及其符號(hào)位組成:機(jī)器浮點(diǎn)數(shù)由階碼、尾數(shù)及其符號(hào)位組成: 尾數(shù):用定點(diǎn)小數(shù)表示,給出

10、有效數(shù)字的位數(shù),決定浮點(diǎn)數(shù)的表示精度; 階碼:用整數(shù)形式表示,指明小數(shù)點(diǎn)在數(shù)據(jù)中的位置,決定浮點(diǎn)數(shù)的表示范圍。EsE1 E2 . EmMsM1 M2 . Mn階符階碼數(shù)符尾數(shù)(2) (2) 浮點(diǎn)數(shù)的標(biāo)準(zhǔn)格式浮點(diǎn)數(shù)的標(biāo)準(zhǔn)格式vIEEE(國際電氣和電子工程師協(xié)會(huì)國際電氣和電子工程師協(xié)會(huì)) IEEE754 標(biāo)準(zhǔn):標(biāo)準(zhǔn): 尾數(shù)用原碼;階碼用移碼,基為2; S-尾數(shù)符號(hào),0正1負(fù); M-尾數(shù), 純小數(shù)表示, 小數(shù)點(diǎn)在尾數(shù)域最前; E-階碼,采用移碼方法來表示正負(fù)指數(shù)。31 30 23 22 0SEM(3) (3) 浮點(diǎn)數(shù)的規(guī)格化表示浮點(diǎn)數(shù)的規(guī)格化表示v浮點(diǎn)數(shù)表示:浮點(diǎn)數(shù)表示:0.50.5; 0.050.

11、05 10101 1 ; 0.005 0.005 10102 2;v為提高數(shù)據(jù)的表示精度,需做規(guī)格化處理;為提高數(shù)據(jù)的表示精度,需做規(guī)格化處理;v規(guī)格化處理:規(guī)格化處理: 對(duì)非 0 值的浮點(diǎn)數(shù),要求尾數(shù)的絕對(duì)值必須 = 1/2,即尾數(shù)域的最高有效位應(yīng)為1:0.10001; 規(guī)格化處理,通過尾數(shù)移位和修改階碼實(shí)現(xiàn)。隱藏位技術(shù)隱藏位技術(shù)v非非 0 0 值浮點(diǎn)數(shù)的尾數(shù)數(shù)值最高位必定為值浮點(diǎn)數(shù)的尾數(shù)數(shù)值最高位必定為 1 1;v保存時(shí)把該位去掉保存時(shí)把該位去掉, , 用同樣多的尾數(shù)位就能多存一用同樣多的尾數(shù)位就能多存一位二進(jìn)制數(shù);位二進(jìn)制數(shù);v0.1100010 0.1100010 1.100010 1

12、.100010v取回運(yùn)算時(shí),必須先恢復(fù)隱藏位。取回運(yùn)算時(shí),必須先恢復(fù)隱藏位。(4) (4) 規(guī)格化浮點(diǎn)數(shù)的真值規(guī)格化浮點(diǎn)數(shù)的真值v移碼定義:移碼定義: x移 = x0 x1 x2 xn = 2n + x-2n x 2nvIEEE754標(biāo)準(zhǔn)標(biāo)準(zhǔn), 一個(gè)規(guī)格化的一個(gè)規(guī)格化的32位浮點(diǎn)數(shù)位浮點(diǎn)數(shù)的的真值為:真值為: x = (-1)s (1.) 2-127 e = 127vIEEE754標(biāo)準(zhǔn)標(biāo)準(zhǔn),一個(gè)規(guī)格化的一個(gè)規(guī)格化的64位浮點(diǎn)數(shù)位浮點(diǎn)數(shù)的的真值為:真值為: x = ( 1)s(1.)2-1023e = 1023vE=0且且M=0, 浮點(diǎn)數(shù)浮點(diǎn)數(shù)的真值為零,稱為機(jī)器的真值為零,稱為機(jī)器零零 S=0

13、, +0S=1, -0vE=11.1,M=0,浮點(diǎn)數(shù)浮點(diǎn)數(shù)的真值為的真值為 S=0, + S=1, - 例例1 1v若浮點(diǎn)數(shù)若浮點(diǎn)數(shù) x x 的二進(jìn)制存儲(chǔ)格式為的二進(jìn)制存儲(chǔ)格式為(41360000)(41360000)1616,求,求3232位浮點(diǎn)數(shù)的十進(jìn)制值。位浮點(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.011 0

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

15、儲(chǔ)格式為 0100 0001 1010 0100 1100 0000 0000 0000= (41A4C000)16移碼表示法移碼表示法vn n位位整數(shù),整數(shù),假定移碼形式為假定移碼形式為 x0 x1 x2 x0 x1 x2 xn xn 2n + x -2n x 2nx移 = 移碼通常用于表示浮點(diǎn)數(shù)的階碼; 8 位移碼表示的機(jī)器數(shù)為數(shù)的真值在數(shù)軸上向右平移了 128 個(gè)位置。0-128+127負(fù)數(shù)正數(shù)機(jī)器數(shù)移碼的特點(diǎn)移碼的特點(diǎn)v與原碼、補(bǔ)碼、反碼的符號(hào)位值正好相反;與原碼、補(bǔ)碼、反碼的符號(hào)位值正好相反;v移碼的大小直觀地反映了真值的大小,有助于兩個(gè)移碼的大小直觀地反映了真值的大小,有助于兩個(gè)浮

16、點(diǎn)數(shù)進(jìn)行階碼大小比較;浮點(diǎn)數(shù)進(jìn)行階碼大小比較;v真值真值0 0在移碼中的表示形式是唯一的,即:在移碼中的表示形式是唯一的,即: +0移= -0移= 10000v同一數(shù)值的移碼和補(bǔ)碼除最高位相反外,其他各位同一數(shù)值的移碼和補(bǔ)碼除最高位相反外,其他各位相同。相同。3.5.2 3.5.2 浮點(diǎn)加法浮點(diǎn)加法v設(shè)有兩個(gè)浮點(diǎn)數(shù)設(shè)有兩個(gè)浮點(diǎn)數(shù)x x和和y, y, 它們分別為它們分別為: : x=2Ex Mx y=2Ey My Ex 和 Ey 分別為階碼,Mx 和 My為尾數(shù)。v兩浮點(diǎn)數(shù)進(jìn)行加法和減法的運(yùn)算規(guī)則是兩浮點(diǎn)數(shù)進(jìn)行加法和減法的運(yùn)算規(guī)則是: : xy=(Mx2Ex-EyMy)2EyEx 0, ExEy

17、 若E 0, ExEy 通過尾數(shù)的移動(dòng)來改變Ex或Ey,使其相等.v對(duì)階原則對(duì)階原則 階碼小的數(shù)向階碼大的數(shù)對(duì)齊; 小階的尾數(shù)右移,每右移一位,其階碼加1。結(jié)果規(guī)格化結(jié)果規(guī)格化v尾數(shù)求和方法與定點(diǎn)加減法運(yùn)算完全一樣尾數(shù)求和方法與定點(diǎn)加減法運(yùn)算完全一樣; ;v將求和的結(jié)果規(guī)格化將求和的結(jié)果規(guī)格化. . 規(guī)格化的定義規(guī)格化的定義: : 采用原碼:采用原碼: 正數(shù): S=0.1 負(fù)數(shù): S=1.1 v采用雙符號(hào)位的補(bǔ)碼:采用雙符號(hào)位的補(bǔ)碼: 對(duì)正數(shù): S=00.1 對(duì)負(fù)數(shù): S=11.0121S舍入處理舍入處理v在對(duì)階或向右規(guī)格化時(shí)在對(duì)階或向右規(guī)格化時(shí), , 尾數(shù)要向右移位尾數(shù)要向右移位, , 被右

18、被右移的尾數(shù)的低位部分會(huì)被丟掉移的尾數(shù)的低位部分會(huì)被丟掉, , 造成一定誤差造成一定誤差, , 要進(jìn)行要進(jìn)行舍入處理舍入處理。v簡(jiǎn)單的舍入方法有兩種簡(jiǎn)單的舍入方法有兩種: “0舍1入”法:右移時(shí)被丟掉數(shù)位的最高位為0則舍去,反之則將尾數(shù)的末位加“1”。 “恒置1”法:只要數(shù)位被移掉,就在尾數(shù)的末位恒置“1”。從概率上來說,丟掉的0和1各為1/2。溢出處理溢出處理v浮點(diǎn)數(shù)的溢出表現(xiàn)為階碼溢出浮點(diǎn)數(shù)的溢出表現(xiàn)為階碼溢出; ; 階碼上溢 超過了階碼可能表示的最大值的正指數(shù)值,一般將其認(rèn)為是+和-。 階碼下溢 超過了階碼可能表示的最小值的負(fù)指數(shù)值,一般將其認(rèn)為是0。v對(duì)尾數(shù)的溢出也需要處理對(duì)尾數(shù)的溢出

19、也需要處理 尾數(shù)上溢 兩個(gè)同符號(hào)尾數(shù)相加產(chǎn)生了最高位向上的進(jìn)位,將尾數(shù)右移,階碼增1來重新對(duì)齊。 尾數(shù)下溢 在將尾數(shù)右移時(shí),尾數(shù)的最低有效位從尾數(shù)域右端流出,要進(jìn)行舍入處理3.5.3 3.5.3 浮點(diǎn)乘浮點(diǎn)乘/ /除法除法v設(shè)有兩個(gè)浮點(diǎn)數(shù)設(shè)有兩個(gè)浮點(diǎn)數(shù)x和和y:x=2ExMx,y=2EyMy 浮點(diǎn)乘法運(yùn)算的規(guī)則是: x y = 2(Ex+ Ey) (Mx My) 浮點(diǎn)除法運(yùn)算的規(guī)則是: xy=2(Ex-Ey) (MxMy)v浮點(diǎn)乘、除法運(yùn)算步驟浮點(diǎn)乘、除法運(yùn)算步驟: (1) 0 操作數(shù)檢查; (2) 階碼加/減操作; (3) 尾數(shù)乘/除操作; (4) 結(jié)果規(guī)格化及舍入處理浮點(diǎn)運(yùn)算流水線浮點(diǎn)運(yùn)算

20、流水線v流水線原理流水線原理 把輸入的任務(wù)分割為一系列子任務(wù)子任務(wù),使各子任務(wù)能在流水線的各個(gè)階段并發(fā)并發(fā)地執(zhí)行;將任務(wù)連續(xù)不斷連續(xù)不斷地輸入流水線, 從而實(shí)現(xiàn)了子任務(wù)的并行。 在流水線中, 原則上要求各個(gè)階段的處理時(shí)間都相同。 對(duì)子任務(wù)的劃分, 是決定流水線性能的一個(gè)關(guān)鍵因素。 假定作業(yè) T 被分成 k 個(gè)子任務(wù), 可表達(dá)為 T=T1,T2,Tk 各個(gè)子任務(wù)之間有一定的優(yōu)先關(guān)系: 若ij, 則必須在 Ti 完成以后,Tj才能開始工作。線性流水線過程段過程段v處理一個(gè)子任務(wù)的過程稱為處理一個(gè)子任務(wù)的過程稱為過程段過程段(S(Si i) )。v線性流水線由一系列串聯(lián)的過程段組成,各個(gè)過程線性流水線由一系列串聯(lián)的過程段組成,各個(gè)過程之間設(shè)有高速的緩沖寄存器之間設(shè)有高速的緩沖寄存器(L)(L),數(shù)據(jù)從一個(gè)過程,數(shù)據(jù)從一個(gè)過程段流向相鄰的過程段。段流向相鄰的過程段。線性流水線處理的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論