計(jì)算機(jī)組成原理 第5章_第1頁(yè)
計(jì)算機(jī)組成原理 第5章_第2頁(yè)
計(jì)算機(jī)組成原理 第5章_第3頁(yè)
計(jì)算機(jī)組成原理 第5章_第4頁(yè)
計(jì)算機(jī)組成原理 第5章_第5頁(yè)
已閱讀5頁(yè),還剩90頁(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)介

1、 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 第第5 5章章 運(yùn)算方法和運(yùn)算器運(yùn)算方法和運(yùn)算器 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 主要內(nèi)容主要內(nèi)容 定點(diǎn)加減運(yùn)算(補(bǔ)碼加減運(yùn)算、加法器、行波進(jìn)位加 法器、十進(jìn)制加法器); 定點(diǎn)乘法運(yùn)算(原碼一位乘法、補(bǔ)碼一位乘法、乘法 器) 定點(diǎn)除法運(yùn)算 定點(diǎn)運(yùn)算器的組成 定點(diǎn)運(yùn)算器的結(jié)構(gòu) 浮點(diǎn)加、減運(yùn)算 浮點(diǎn)乘除運(yùn)算 浮點(diǎn)運(yùn)算部件等 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 5.1 定點(diǎn)加減運(yùn)算定點(diǎn)加減運(yùn)算 5.1.1 補(bǔ)碼加減運(yùn)算補(bǔ)碼加減運(yùn)算 公式: X+Y補(bǔ)=X補(bǔ) +Y補(bǔ) X-Y補(bǔ)=X補(bǔ)-Y補(bǔ) =X補(bǔ)+-Y補(bǔ) =X補(bǔ)+/Y補(bǔ)+1 從Y補(bǔ)求-Y補(bǔ)的法則是:對(duì)Y補(bǔ)各

2、位(包括符號(hào)位)取反且末位 加1,即可得到-Y補(bǔ)。 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 判斷判斷“溢出溢出” 溢出判斷:定點(diǎn)在小數(shù)機(jī)器中,數(shù)的表示范圍為|X| x 0 4+x 0 x -2 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 判斷判斷“溢出溢出” 變形補(bǔ)碼的同余式: x補(bǔ)=4+x (mod 4) 下式也同樣成立: x+y補(bǔ)=x補(bǔ)+y補(bǔ) (mod 4) 為了得到兩數(shù)變形補(bǔ)碼之和等于兩數(shù)和的變形補(bǔ)碼,同樣必 須:1、兩個(gè)符號(hào)位都看做數(shù)碼一樣 參加運(yùn)算;2、兩進(jìn)行以4為 模的加法,即最高符號(hào)位上產(chǎn)生的進(jìn)位要丟失。 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 判斷判斷“溢出溢出” 采用變形補(bǔ)碼后,任何小

3、于“1”的正數(shù),兩個(gè)符號(hào)位都是“0”,即 00.x1x2.xn;任何大于-1 的負(fù)數(shù),兩個(gè)符號(hào)位都是“1”,即11. x1x2.xn。 如果兩個(gè)數(shù)相加后,其結(jié)果的符號(hào)位出現(xiàn)“01”或“10”兩種組合時(shí),表 示發(fā)生溢出。這是因?yàn)閮蓚€(gè)絕對(duì)值小1的數(shù)相加,其結(jié)果不會(huì)大于或的等 于2,所以最高符號(hào)位永遠(yuǎn)表示結(jié)果的正確符號(hào)。 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 實(shí)現(xiàn)定點(diǎn)補(bǔ)碼加減運(yùn)算?(例)實(shí)現(xiàn)定點(diǎn)補(bǔ)碼加減運(yùn)算?(例) 已知:X=+1011,Y=+1001,求:X+Y補(bǔ),;X-Y補(bǔ)。 解:1)分別求出X、Y的補(bǔ)碼及/Y補(bǔ)+1: X補(bǔ)=001011,Y補(bǔ)=001001, -Y補(bǔ)=/Y補(bǔ)+1=110111

4、2)分別列出雙符號(hào)位加減豎式: 3)判斷溢出 其實(shí),真正的計(jì)算結(jié)果還要根據(jù)以上結(jié)果(補(bǔ)碼)求出真值:X+Y=,X- Y=。 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 5.1.2 基本的二進(jìn)制加基本的二進(jìn)制加/減法器減法器 FA Ci AiBi Ci+1Si AiBi CiCi+1 Si (a)邏輯圖 (b)符號(hào) 1位全加器 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 2.并行加法器及進(jìn)位鏈結(jié)構(gòu)并行加法器及進(jìn)位鏈結(jié)構(gòu) 行波進(jìn)位的補(bǔ)碼加/減法器 A0B0 C0 S0 FAFAFAFA S1 Sn-2Sn-1 溢出 C1C2Cn-2 Cn-1 Cn B1Bn-2 Bn-1 A1An-2An-1 符號(hào)位 方式控

5、制 M M=0 加 M=1 減 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 組內(nèi)并行、組間串行的單級(jí)先行進(jìn)位方式 44444444 4位CLA 加法器 4位CLA 加法器 4位CLA 加法器 4位CLA 加法器 C16 C12 C8 C4C0 S1512 S118 S74S30 B30B74B118B1512A30A74A118A1512 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 組內(nèi)并行、組間并行的多級(jí)先行進(jìn)位方式 44444444 4位BCLA 加法器 4位BCLA 加法器 4位BCLA 加法器 4位BCLA 加法器 CLA電路 C16 C12C8 C4C0 G4 S1512 S118 S74S30

6、 B30B74B118B1512A30A74A118A1512 G3G2G1P4P3P2P1 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 5.1.3 十進(jìn)制加法器十進(jìn)制加法器 十進(jìn)制加法器可以由BCD碼進(jìn)行設(shè)計(jì),BCD碼的加法 基本上還是用二進(jìn)加法器來(lái)完成,但是BCD碼的加減 法逢十進(jìn)一,1001(9)以上的二進(jìn)碼并不存在,所以每 當(dāng)加法器的和大于9時(shí)就需要加以修正,通過修正將四 位二進(jìn)制數(shù)的和改為所要要求的十進(jìn)制形式。主要修 正就是在和數(shù)為1015時(shí)以及和數(shù)有進(jìn)位時(shí)進(jìn)行“加6 校正”。 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 一位BCD碼加法器單元的邏輯結(jié)構(gòu) Ci Ci+1 被加數(shù)加數(shù) 0 S0S1

7、S2S3 Z3Z2Z1Z0 實(shí)際的BCD碼 A3A2A1A0B3B2B1B0 Ci S9,Ci+1=0,A3A2A1A0=0000 S9,Ci+1=1,A3A2A1A0=0110 (主要)四位二進(jìn)制加法器 (校正)四位二進(jìn)制加法器 C0 C0 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 5.2 定點(diǎn)乘法運(yùn)算定點(diǎn)乘法運(yùn)算 實(shí)現(xiàn)乘法的方式很多:如在僅有加減運(yùn)算功能的低檔 小型機(jī)與微機(jī)中是用軟件通過乘法子程序?qū)崿F(xiàn)的。功 能較強(qiáng)的計(jì)算機(jī)中有實(shí)現(xiàn) 乘法運(yùn)算的硬件,大多是與 加減運(yùn)算共用一個(gè)加法器,但在輸入或輸出的控制中 有移位操作的功能,并在時(shí)序控制上能形成一個(gè)序列 以分步執(zhí)行乘法運(yùn)算。在高速的大、中型機(jī)則可

8、能設(shè) 置專門的多位乘法部件。 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 5.2.1 原碼一位乘法原碼一位乘法 算法思路 :由于原碼的數(shù)值部分與真值相同,而原碼一位乘 法基本上是從手算法演變而來(lái)的,即用兩操作數(shù)的絕對(duì)值相乘, 符號(hào)單獨(dú)按“同號(hào)相乘為正,異號(hào)相乘為負(fù)”的原則處理。 設(shè)被乘數(shù) x原 原=xf . x1x2 xn 乘數(shù) y原 原=yf . y1y2 yn 則: 乘積 z原 原=(xf yf)(0.x1x2 xn)(0.y1y2 yn) 式中 xf 為被乘數(shù)符號(hào),yf為乘數(shù)符號(hào)。 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 5.2.1 原碼一位乘法原碼一位乘法 運(yùn)算規(guī)則: 1)被乘數(shù)和乘數(shù)用原碼表

9、示,兩操作數(shù)絕對(duì)值相乘即 |X|*|Y|。 2)以乘數(shù)末位為判斷位:若為1則部分積加被加數(shù); 否則加0。 3)累加后部分積右移一位,乘數(shù)C也同步右移,C 內(nèi)容逐步被取代。 4)移位次數(shù)取決于乘數(shù)位數(shù)。乘積符號(hào)取決于 Pf=Xf Yf。 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 5.2.1 原碼一位乘法原碼一位乘法 說(shuō)明:上述規(guī)則可歸納為: 同號(hào)相乘為正,異號(hào)相乘為負(fù)。由于被乘數(shù)和乘數(shù)的符號(hào)組合有4 種情況(xfyf=00, 01, 10, 11),因此積的符號(hào)可按“異或”(按位 加)得到。 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 5.2.1 原碼一位乘法原碼一位乘法 舉例:舉例:已知X= +1101

10、,Y=-1011,試?yán)迷a一位乘法計(jì)算整數(shù): X*Y=? 解:X原=001101,Y原=111011 (雙符號(hào)數(shù)) 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 5.2.1 原碼一位乘法原碼一位乘法 列豎式:列豎式: 即 |X|*|Y|=10001111, Xf Yf=1,則 X*Y=-10001111 驗(yàn)算結(jié)果。 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 原碼一位乘法硬件邏輯圖 加法器 被乘數(shù) 乘數(shù) 乘積 進(jìn)位 R1 R0 R2 移位和相加 控制邏輯 計(jì)數(shù)器 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 5.2.2 補(bǔ)碼一位乘法補(bǔ)碼一位乘法 問題的提出: 原碼乘法的主要問題是符號(hào)位不能參加運(yùn)算。單獨(dú)用一個(gè)異或

11、門產(chǎn)生 符號(hào)位,所以很自然提出能否讓符號(hào)數(shù)字化后也參加乘法運(yùn)算,補(bǔ)碼乘 法就可以實(shí)現(xiàn)符號(hào)位直接參加運(yùn)算。 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 5.2.2 補(bǔ)碼一位乘法補(bǔ)碼一位乘法 1、補(bǔ)碼和真值的轉(zhuǎn)換公式 設(shè)x 補(bǔ)=x0 x1x2xn 當(dāng)x=0時(shí), x0=0 , x補(bǔ)=0.x1x2 xn= n i i i xx 1 2 當(dāng)x0時(shí),x0=1 , x補(bǔ)=1.x1x2 xn=2+x 所以x= 1.x1x2 xn-2=-1+ 0.x1x2 xn= n i i i x 1 21 故得出: n i i i xxx 1 0 2 此公式說(shuō)明真值和補(bǔ)碼之間的關(guān)系 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 5.2.

12、2 補(bǔ)碼一位乘法補(bǔ)碼一位乘法 2、補(bǔ)碼的右移、補(bǔ)碼的右移 正數(shù)右移1位,相當(dāng)于乘以1/2。負(fù)數(shù)用補(bǔ)碼表示時(shí),右移1位也相當(dāng) 于乘1/2。因此,在補(bǔ)碼運(yùn)算的機(jī)器中,一個(gè)數(shù)不論其正負(fù),連同符號(hào)位 向右移1位,符號(hào)位保持不變,就等于乘1/2。(證明略) 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 5.2.2 補(bǔ)碼一位乘法補(bǔ)碼一位乘法 補(bǔ)碼乘法規(guī)則:補(bǔ)碼乘法規(guī)則: 如 被乘數(shù)x補(bǔ)= x0 .x1x2xn 乘數(shù) y補(bǔ)= y0 . y1y2 yn ,兩者均為任意符號(hào),則有補(bǔ)碼乘法算式 (證明略 xy補(bǔ)=x補(bǔ)y= x補(bǔ)( ) n i i i yy 1 0 2 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 5.2.2 補(bǔ)碼

13、一位乘法補(bǔ)碼一位乘法 說(shuō)明:說(shuō)明:1)被乘數(shù)和乘數(shù)用補(bǔ)碼表示,被乘數(shù)和部分積采用雙 符號(hào)位參與運(yùn)算;乘數(shù)采用單符號(hào)數(shù),以決定是否校正(加-X 補(bǔ))。 2)乘數(shù)末尾設(shè)附加位(初始值為0),與移入的乘數(shù)末位構(gòu)成判斷位, 并進(jìn)行比較: YnYn+1=00,部分積、乘數(shù)右移一位 YnYn+1=01,部分積加X補(bǔ)后右移一位 YnYn+1=10,部分積加-X補(bǔ)后右移一位 YnYn+1=11,部分積、乘數(shù)右移一位 3)右移按補(bǔ)碼移位進(jìn)行,即符號(hào)位不變,并連同符號(hào)位右移。 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 5.2.2 補(bǔ)碼一位乘法補(bǔ)碼一位乘法 舉例:舉例:已知X補(bǔ) =10011,Y補(bǔ)=10101,利用補(bǔ)碼

14、一位乘法求X*Y補(bǔ)。 解:1)X補(bǔ) =10011的雙符號(hào)變形碼為110011,-X補(bǔ) =001101 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 5.2.2 補(bǔ)碼一位乘法補(bǔ)碼一位乘法 2)列豎式: 3)驗(yàn)算 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 Booth算法的流程圖算法的流程圖 開始 i=n+1? 結(jié)束 01 N 10 X補(bǔ)R2,Y補(bǔ)R1 0R0,Yn+1=0,i=0 YnYn+1= ? R0+R2R0R0-R2R0 00/11 Y R0,R1右移1位 i=i+1 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 Booth乘法邏輯結(jié)構(gòu)圖乘法邏輯結(jié)構(gòu)圖 加法器 R0 R2 R1YnYn+1 右移 原反 加法

15、減法 + 計(jì)數(shù)器 乘數(shù)Y 被乘數(shù)X 部分積Z 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 5.3 定點(diǎn)除法運(yùn)算定點(diǎn)除法運(yùn)算 除法運(yùn)算與乘法運(yùn)算思想相似,通常是將位除轉(zhuǎn)換成若干次“加 減移位”循環(huán),然后通過硬件或軟件實(shí)現(xiàn)。 實(shí)現(xiàn)除法運(yùn)算的方法:比較法、恢復(fù)余數(shù)法、不恢復(fù)余數(shù)法。 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 5.3.1 原碼一位除法原碼一位除法 兩個(gè)原碼表示的數(shù)相除時(shí),商的符號(hào)由兩熟的符號(hào)按位相加求得, 商的數(shù)值部分有兩數(shù)的數(shù)值部分相除求得。 設(shè)有 被除數(shù) x 其原碼為x原=xf . x1x2 xn 除數(shù) y 其原碼為y原= 則有商q=x/y ,其原碼為: q原=(xfyf) . (xf .

16、x1x2 xn/ yf . y1y2 yn) 商的符號(hào)運(yùn)算qf = (xfyf) 與原碼乘法一樣,用模2求和得到。商的數(shù) 值部分的運(yùn)算,實(shí)質(zhì)上是兩個(gè)正數(shù)求商的運(yùn)算。 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 5.3.1 原碼一位除法原碼一位除法 說(shuō)明:說(shuō)明: 由于定點(diǎn)數(shù)的絕對(duì)值小于1,如果被除數(shù)大于或等于除數(shù),則商就大于或 等于1,因而會(huì)產(chǎn)生溢出,這是不允許的 。因此在執(zhí)行除法以前,先要 判別是否溢出,不溢出時(shí)才執(zhí)行除法運(yùn)算,否則除法就不進(jìn)行,并由程 序進(jìn)行處理。判別方法是被除數(shù)減去除數(shù),若差為正,即最高位有進(jìn)位 輸出就表示溢出。(模仿十進(jìn)制運(yùn)算) 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 5.3.1

17、 原碼一位除法原碼一位除法 在計(jì)算機(jī)中,小數(shù)點(diǎn)是固定 的,不能簡(jiǎn)單地采用手算的 辦法。為便于計(jì)算機(jī)操作, 除數(shù)y固定不動(dòng)(小數(shù)點(diǎn)固 定),使被除數(shù)和余數(shù)進(jìn)行 左移(相當(dāng)于乘2),其效果 與筆算是相同的。 例:x=0.1010 y=0.1101 -y補(bǔ)=1.0011 商q xy,商1 減y,即+ -y補(bǔ) 第一次余數(shù)r1 ,左移1位,2r1y, 商1 減y,即+ -y補(bǔ) 第二次余數(shù)r2 左移1位, 2r2 y ,商 0 左移1位,r3=4r2 y , 商0 第四次余數(shù)r4 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 5.3.1 原碼一位除法原碼一位除法 例題說(shuō)明:例題說(shuō)明: 與手算相比,結(jié)果是一樣的,只

18、是余數(shù)不是真正的余數(shù)。由于每次所得 的余數(shù)多乘了2,求得小數(shù)點(diǎn)后的n位商后,相當(dāng)于多乘了2n, 故最后的正 確余數(shù)應(yīng)該為2-n .rn , 很顯然,用余數(shù)左移代替除數(shù)右移,可使“余數(shù)左 移”和“左移上商”的 左移操作統(tǒng)一起來(lái)。 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 原碼一位除法原碼一位除法-恢復(fù)余數(shù)法恢復(fù)余數(shù)法 由于機(jī)器的運(yùn)算過程與人畢竟不同。(例如,機(jī)器不會(huì)心算,做除法時(shí)必 須先做減法,若余數(shù)為正,才知道夠減;若余數(shù)為負(fù),才知道不夠減。 不夠減時(shí)必須恢復(fù)原來(lái)的余數(shù),以便再繼續(xù)往下運(yùn)算。這種方法稱為恢 復(fù)余數(shù)法。要恢復(fù)余數(shù),只要當(dāng)前的余數(shù)加上除數(shù)即可。 例:x=0.1010, y=0.1101

19、,用恢復(fù)余數(shù)法求 x/y=? 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 原碼一位除法原碼一位除法-恢復(fù)余數(shù)法恢復(fù)余數(shù)法 解:為便于減法運(yùn)算,參見運(yùn)算的數(shù)都現(xiàn)成補(bǔ)碼的形 式: x愿=x補(bǔ)=0.1010 y補(bǔ)=0.1101, -y補(bǔ)=1.0011 (圖) 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 原碼一位除法原碼一位除法-恢復(fù)余數(shù)法恢復(fù)余數(shù)法 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 原碼一位除法原碼一位除法-加減交替法加減交替法 由于恢復(fù)余數(shù)法要恢復(fù)余數(shù),使除法進(jìn)行過程的步數(shù)不固定,因 此控制比較復(fù)雜,實(shí)際在工程中不多用。常用的有加減交替法。 加減交替法的特點(diǎn)是:在運(yùn)算過程中如出現(xiàn)不夠減,則不必恢復(fù) 余數(shù),

20、根據(jù)余數(shù)符號(hào),可以繼續(xù)向下運(yùn)算。這樣運(yùn)算時(shí)步數(shù)固定, 控制簡(jiǎn)單。 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 原碼一位除法原碼一位除法-加減交替法加減交替法 原碼加減交替法的規(guī)則是:當(dāng)余數(shù)為正時(shí),商“1”,余數(shù)左移1位, 減除數(shù),當(dāng)余數(shù)為負(fù)時(shí),商“0”,余數(shù)左移1位,加除數(shù)。這是因 為: 當(dāng)余數(shù)ri為正時(shí) 恢復(fù)余數(shù)法為: +ri2-y 商為“1” 加減交替法為: +ri2-y 商為“1” 當(dāng)余數(shù)ri為負(fù)時(shí) 恢復(fù)余數(shù)法為: -(ri+y)2-y=-2ri+y 商為“0” 加減交替法為: -2ri+y 商為“0” 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 原碼一位除法原碼一位除法-加減交替法加減交替法 原碼

21、加減交 替法的算法 流程圖: 開始 被除數(shù)高位R1,被除數(shù)低位 R0, 除數(shù)R2 R1-R2R1 R10? 商Q=1,R1,R2左移1 位 商Q=0,R1,R2左移1 位 R1-R2R1R1-R2R1 重復(fù)n-1次? R10,表示exey 若 e0,表示exey 若 exey ,要通過尾數(shù)的移位來(lái)改變ex和ey,使它們相等。原則上既可以通過S 以為來(lái)改變ex來(lái)達(dá)到ex=ey。但是,由于浮點(diǎn)表示的數(shù)多是規(guī)格化的,尾數(shù) 左移會(huì)引起最高有效位的丟失,造成很大的誤差。而尾數(shù)右移雖然引起最 低有效位的丟失,但造成的誤差較小。因此,對(duì)階操作規(guī)定使尾數(shù)右移, 尾數(shù)右移后使階碼響應(yīng)能夠增加,其值保持不變。 計(jì)

22、算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 浮點(diǎn)算術(shù)運(yùn)算浮點(diǎn)算術(shù)運(yùn)算-浮點(diǎn)加法和減法運(yùn)算浮點(diǎn)加法和減法運(yùn)算 很顯然,一個(gè)增加后的階碼與另一個(gè)階碼相等,所增加的階碼一定是小階。 因此在對(duì)階時(shí),總是使小階向大階對(duì)齊,即小階的尾數(shù)向右移位(相當(dāng) 于小數(shù)點(diǎn)左移),每右移1位,其階碼加1,直到兩數(shù)的階碼相等為止, 右移的位數(shù)等于階差e。 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 浮點(diǎn)算術(shù)運(yùn)算浮點(diǎn)算術(shù)運(yùn)算-浮點(diǎn)加法和減法運(yùn)算浮點(diǎn)加法和減法運(yùn)算 例:兩浮點(diǎn)數(shù)x=2010.1001, y=211 (-0.1101),求x+y=? 假設(shè)兩數(shù)在計(jì)算機(jī)中以補(bǔ)碼表示: x浮=0001,00.1001 y浮=0011,11.001

23、1 要進(jìn)行加法運(yùn)算,必須先對(duì)階,故先求階差: e補(bǔ)=ex補(bǔ)-ey補(bǔ)=0001+1101=1110 即e=-2,表示ex比ey小2,因此將x 的尾數(shù)右移2位: 右移1位,得x浮=0010,00.0100 再移1位,得x浮=0011,00.0010 至此,兩數(shù)的階差1=0,表示對(duì)階完畢。 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 浮點(diǎn)算術(shù)運(yùn)算浮點(diǎn)算術(shù)運(yùn)算-浮點(diǎn)加法和減法運(yùn)算浮點(diǎn)加法和減法運(yùn)算 2、尾數(shù)求和 對(duì)階完畢后可得: x浮=0011,00.0010 y浮=0011,11.0011 對(duì)尾數(shù)求和: 00.0010 +11.0011 11.0101 即得x +y 浮=0011,11.0101 計(jì)算機(jī)組

24、成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 浮點(diǎn)算術(shù)運(yùn)算浮點(diǎn)算術(shù)運(yùn)算-浮點(diǎn)加法和減法運(yùn)算浮點(diǎn)加法和減法運(yùn)算 3、規(guī)格化 求和之后得到的數(shù)可能不是規(guī)格化了的數(shù),為了增加有效數(shù)字的位數(shù),提高 運(yùn)算精度,必須將求和的結(jié)果規(guī)格化。 當(dāng)尾數(shù)用二進(jìn)制表示時(shí),浮點(diǎn)規(guī)格化的定義是尾數(shù)S應(yīng)滿足 1/2 |S| x -2n 則按此定義,有: x移+y移=2n+x+2n+y =2n+(2n+(x+y) =2n+x+y移 即直接用移碼實(shí)現(xiàn)求階碼之和時(shí),結(jié)果的最高位多加了1,要得到正確的移 碼 形式結(jié)果,必須對(duì)結(jié)果的符號(hào)在求一次反。 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 浮點(diǎn)乘法、除法的運(yùn)算步驟 當(dāng)混合使用移碼和補(bǔ)碼時(shí),考慮到移碼和

25、補(bǔ)碼的關(guān)系:對(duì)同一個(gè)數(shù)值, 其數(shù)值位完全相同,而 符號(hào)位正好相反。而y補(bǔ)的定義為: y補(bǔ)=2n+1+y 則求階碼和用如下方式完成: x移+y移=2n+x+2n+1+y =2n+1+(2n+(x+y) 即 x+y移=x移+y補(bǔ) (mod 2n+1) 同理 x-y移=x移+-y補(bǔ) 上兩式表明執(zhí)行階碼加減時(shí),對(duì)加數(shù)或減數(shù)不要來(lái)說(shuō)應(yīng)送移碼符號(hào) 位正常值的反碼。 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 浮點(diǎn)乘法、除法的運(yùn)算步驟 如果階碼運(yùn)算的結(jié)果溢出,上述條件則不成立。此時(shí),使用雙符 號(hào)位的階碼加法器,并規(guī)定移碼的第二個(gè)符號(hào)位,即最高符號(hào)位 恒用0參加加減運(yùn)算,則溢出條件是結(jié)果的最高符號(hào)位為1,此時(shí), 當(dāng)

26、低位符號(hào)位為0時(shí),表明結(jié)果上溢;為1時(shí),表明結(jié)果下溢。當(dāng) 最高符號(hào)位為0時(shí),表明沒有溢出;低位符號(hào)位為1,表明結(jié)果為 正;為0時(shí),表明結(jié)果為負(fù)。 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 浮點(diǎn)乘法、除法的運(yùn)算步驟 例: x=+011, y=+110, 求x+y移和x-y移,并判斷是否溢出。 解:x移=01 011, y補(bǔ)=00 110,-y補(bǔ)=11 010, x+y移=x移+y移=10 001 ,結(jié)果上溢。 x-y移=x移+-y補(bǔ)=00 101,結(jié)果正確,為-3。 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 浮點(diǎn)乘法、除法的運(yùn)算步驟 (2)尾數(shù)處理 浮點(diǎn)數(shù)加減法對(duì)結(jié)果的規(guī)范化及舍入處理也適用于浮點(diǎn)乘除法

27、。 第一種簡(jiǎn)單方法是:無(wú)條件地丟掉正常尾數(shù)最低位之后的全部數(shù)值。 截?cái)嗵幚?第二種簡(jiǎn)單方法:運(yùn)算過程中保留右移中移出的若干高位的值,最后再按某 種規(guī)則用這些位上的值修正尾數(shù)。這種方法稱為舍入處理。 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 浮點(diǎn)乘法、除法的運(yùn)算步驟 當(dāng)尾數(shù)用原碼表示時(shí),舍入規(guī)則比較簡(jiǎn)單。最簡(jiǎn)單的方法,是只要尾數(shù) 最低位為1,或移出的幾位中有為1的數(shù)值位,就使最低位的值為1。另一 種是0舍1入法,即當(dāng)丟失的最高位的值為1時(shí),把這個(gè)1加到最低數(shù)值上 進(jìn)行修正,否則舍去丟失的各位的值。這樣處理時(shí),舍入效果對(duì)正數(shù)負(fù) 數(shù)是相同的,入將使數(shù)的絕對(duì)值變大,舍則將使數(shù) 的絕對(duì)值變小。 計(jì)算機(jī)組成原

28、理與實(shí)驗(yàn) 冶金工業(yè)出版社 浮點(diǎn)乘法、除法的運(yùn)算步驟 當(dāng)尾數(shù)用補(bǔ)碼表示時(shí),所用的舍入規(guī)則,應(yīng)該與用原碼表示時(shí)產(chǎn)生相同的 處理效果.具體規(guī)則是: 1)當(dāng)丟失的各位均0時(shí),不必舍入; 2)當(dāng)丟失的最高位為0,以下各位不全為0時(shí),或者丟失的最高位為9,以下各 位均為0時(shí),則舍去丟失位上的值; 3)當(dāng)丟失的最高位為1,以下各位不全為0時(shí),則執(zhí)行在尾數(shù)最低位入1的修 正操作。 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 浮點(diǎn)乘法、除法的運(yùn)算步驟 例例:設(shè)設(shè)x1補(bǔ) 補(bǔ)=11.01100000 , x2補(bǔ)補(bǔ)=11.01100001,x3補(bǔ)補(bǔ)=11.01101000,x4補(bǔ)補(bǔ) =11.01111001 ,求執(zhí)行只保留

29、小數(shù)點(diǎn)后求執(zhí)行只保留小數(shù)點(diǎn)后4位有效的舍入操作值位有效的舍入操作值. 解:執(zhí)行操作后,其結(jié)果值分別為: x1補(bǔ)=11.0110 (不舍不入) x2補(bǔ)=11.0110 (舍) x3補(bǔ)=11.0110 (舍) x4補(bǔ)=11.1000 (入) 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 浮點(diǎn)乘法、除法的運(yùn)算步驟 例例:設(shè)有浮點(diǎn)數(shù):設(shè)有浮點(diǎn)數(shù)x=2-5 0.0110011 , y=23 (-0.1110010),階碼用階碼用4位移碼表示,尾數(shù)位移碼表示,尾數(shù) (含符號(hào)位)用(含符號(hào)位)用8位補(bǔ)碼表示,求位補(bǔ)碼表示,求x y浮 浮。要求直接用補(bǔ)碼完成尾數(shù)乘法運(yùn)算, 。要求直接用補(bǔ)碼完成尾數(shù)乘法運(yùn)算, 運(yùn)算結(jié)果

30、尾數(shù)仍保留運(yùn)算結(jié)果尾數(shù)仍保留8位(含符號(hào)位),并用尾數(shù)之后的位(含符號(hào)位),并用尾數(shù)之后的4位值處理舍入操作。位值處理舍入操作。 解:移碼用雙符號(hào)位,尾數(shù)補(bǔ)碼采用單符號(hào)位,則有: Mx補(bǔ)=0.0110011 , My補(bǔ)=1.0001110, Ey移=11 011, Ey補(bǔ)=00 011 , Ex移=00 011 , x浮= 00 011 , 0.0110011, y浮= 11 011, 1.0001110 (1)求階碼和: Ex+Ey移=Ex移+Ey補(bǔ)=00 011+00 011=00 110, 值為移碼形式-2。 (2) 尾數(shù)乘法運(yùn)算可直接采用補(bǔ)碼陣列乘法器實(shí)現(xiàn),即有: Mx補(bǔ) My補(bǔ)=0.

31、0110011補(bǔ) 1.0001110補(bǔ)=1.0011001, 10010010補(bǔ) 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 浮點(diǎn)乘法、除法的運(yùn)算步驟 (3)規(guī)格化處理 乘積的尾數(shù)符號(hào)位與最高數(shù)值位符號(hào)相反,已是規(guī)格化的數(shù),不需要左規(guī), 階碼仍為00 110。 (4)舍入處理 尾數(shù)為負(fù)數(shù),且是雙倍字長(zhǎng)的乘積,按舍入規(guī)則,尾數(shù)低位部分的前4 位為1001,應(yīng)作“入”,故尾數(shù)為1.0011010。 最終相乘結(jié)果為: x y浮=00 110, 1.0011010 其真值為: x y=2-2 (-0.1100110) 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 浮點(diǎn)運(yùn)算流水線浮點(diǎn)運(yùn)算流水線 1、流水線原理:設(shè)作業(yè)

32、T被分成k個(gè)任務(wù),表達(dá)為: T=T1 , T2 , , Tk 各個(gè)子任務(wù)之間有一定 的優(yōu)先關(guān)系:若i=k時(shí),Ckk。即理論上k級(jí)線性流水線處理幾乎可以提高k倍速度。 單實(shí)際上由于存儲(chǔ)器沖突、數(shù)據(jù)相關(guān),這個(gè)理想的比例不一定能達(dá)到。 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 浮點(diǎn)運(yùn)算流水線 設(shè)有兩個(gè)規(guī)格化的浮點(diǎn)數(shù) A=a 2p , B= b 2q 其中,a,b為二進(jìn)制純小數(shù),且小數(shù)點(diǎn)后第一位不為零。求浮點(diǎn)加法: C=A+B= c 2r = d 2s 其中, r = max (p,q) , 1 d =0.5 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 浮點(diǎn)運(yùn)算流水線 例2

33、9,圖2.18中,假設(shè)每個(gè)過程段所需的時(shí)間為:求階差1=70ns,對(duì) 階2=60ns,相加3=90ns,規(guī)格4=80ns,緩沖寄存器L的延時(shí)為I=10ns, 求: (1)4級(jí)流水線加法器的加速比為多少? (2)如果每個(gè)過程段的時(shí)間都相同,即都為75ns(包括緩沖寄存 器時(shí)間)時(shí),加速比是多少? 解:(1)加法器的 流水線時(shí)鐘周期至少為: =90ns+10ns=100ns 如果采用同樣的邏輯電路,但不是流水線方式,則浮點(diǎn)加法所需的時(shí) 間為: 1+ 2+ 3+ 4=300ns 因此, 4級(jí)流水線加法器的加速比為:Ck=300/100=3 (2)當(dāng)每個(gè)過程段的時(shí)間都是75ns時(shí),加速比為: Ck=3

34、00/75=4 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 浮點(diǎn)運(yùn)算流水線 例30:已知計(jì)算一維向量x,y的求和表達(dá)式如下: zyx 55.4 4.142 5.121 336 1.35 121 41.1 8.72 2.7 336 6.14 65 14.3 6.69 3.114 0 5.20 56 試用4段的浮點(diǎn)加法流水線來(lái)實(shí)現(xiàn)一維向量的求和運(yùn)算,這4段 流水線是階碼比較、對(duì)階操作、尾數(shù)相加、規(guī)格化。只要求畫出向量 加法計(jì)算流水時(shí)空?qǐng)D。 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 解:運(yùn)算流水線對(duì)向量計(jì)算顯示出很大的優(yōu)越性。以縱向表示空 間軸(段),橫向表示時(shí)間軸,這樣字母C, S, A, N分別表示流水 線的階碼比較、對(duì)階操作、尾數(shù)相加、規(guī)格化四個(gè)段,那么向量 加法計(jì)算的流水線時(shí)空?qǐng)D如下圖所示: 浮點(diǎn)運(yùn)算流水線 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 浮點(diǎn)運(yùn)算流水線-向量加法計(jì)算的流水時(shí)空?qǐng)D 計(jì)算機(jī)組成原理與實(shí)驗(yàn) 冶金工業(yè)出版社 浮點(diǎn)運(yùn)算器實(shí)例浮點(diǎn)運(yùn)算器實(shí)例 80 x87浮點(diǎn)運(yùn)算器 0 1 2 3 4 5 6 7 可編程 移位器 寄存器堆棧 (80位) 指令 譯碼器 操作數(shù)隊(duì)列 數(shù) 據(jù) 緩沖器 控制字 狀態(tài)字 控制 部件 算術(shù)運(yùn)算 部件 臨時(shí)

溫馨提示

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