曹桂濤 計算機組成2_第1頁
曹桂濤 計算機組成2_第2頁
曹桂濤 計算機組成2_第3頁
曹桂濤 計算機組成2_第4頁
曹桂濤 計算機組成2_第5頁
已閱讀5頁,還剩102頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2021-11-141第2章 運算方法和運算器2021-11-142第2章主要內(nèi)容n數(shù)據(jù)的表示法n數(shù)的表示n字符的表示n數(shù)據(jù)的運算法n加減法運算n乘除法運算n運算的電路實現(xiàn)2021-11-143補充內(nèi)容(進制之間的轉(zhuǎn)換)n十進制二進制 如 (20.59375)10=(10100.10011)2 ( 100.11011 )2=(4.84375)10n二進制八進制 如 (1101.10101)2=(15.52)8n二進制十六進制 如 ( 1101.10101 )2=(0d.a8)162021-11-1442.1 數(shù)據(jù)與文字的表示方法n數(shù)的表示n數(shù)值的表示n符號的表示n小數(shù)點的表示n字符的表示n校驗

2、碼2021-11-145機器數(shù)與真值n數(shù)在計算機中的表示形式統(tǒng)稱為機器數(shù)n機器數(shù)有兩個基本特點: 1 符號的數(shù)值化。 符號數(shù)符號數(shù), 用其最左邊一位用其最左邊一位msb(most significant bit)表示數(shù)的正表示數(shù)的正負負. msb=0,表示正數(shù)表示正數(shù), 如如+1011,表示表示01011 msb=1,表示負數(shù)表示負數(shù), 如如-1011,表示表示 11011 2 二進制位數(shù)受機器設(shè)備限制。n真值真值:是數(shù)值數(shù)據(jù)代表的實際值是數(shù)值數(shù)據(jù)代表的實際值,即用即用表示符號表示符號,再加上數(shù)的絕對值再加上數(shù)的絕對值.01011 真值真值+101111011 真值真值-1011即符號被編碼了

3、即符號被編碼了2021-11-146無符號數(shù)與符號數(shù)無符號數(shù)與符號數(shù)(1)無符號數(shù)無符號數(shù):即沒有符號的數(shù)即沒有符號的數(shù),同字長的無符號數(shù)同字長的無符號數(shù)表示的最大值可比符號數(shù)大一倍表示的最大值可比符號數(shù)大一倍. 無符號數(shù)無符號數(shù) nmax=1111=15 符號數(shù)符號數(shù) nmax =0111=7(2)用用1位符號位位符號位(0,1)表示正負表示正負,給運算帶來的問給運算帶來的問題題n 正正,正相加正相加:符號位符號位0+0=0,仍為正仍為正,不影響結(jié)果不影響結(jié)果.n 正正,負相加負相加:0+1=1,不一定對不一定對,要看哪個絕對值大要看哪個絕對值大,和和的符號位由大數(shù)定的符號位由大數(shù)定.n 負

4、負,負相加負相加:1+1=10,和的符號與實際值不符和的符號與實際值不符.(3)結(jié)論結(jié)論:用上述方法表示符號數(shù)用上述方法表示符號數(shù),負數(shù)的符號位不負數(shù)的符號位不能與數(shù)值部分一起參加運算能與數(shù)值部分一起參加運算,為解決機器內(nèi)負數(shù)為解決機器內(nèi)負數(shù)的符號位參與運算的問題的符號位參與運算的問題,要引入補碼與反碼要引入補碼與反碼.當(dāng)字長為當(dāng)字長為4位時位時2021-11-147數(shù)的機器表示(1)原碼原碼:x原原=符號位符號位+|x|(2)反碼反碼:x反反=x原原 , x 0 x反反=x符符. xn xn-1. x1 x0 , x 0(3)補碼補碼:手搖計算機的齒輪數(shù)字輪如圖所示手搖計算機的齒輪數(shù)字輪如圖

5、所示.符號位不變數(shù)值位變反052 3146789觀察孔手搖計算機齒輪手搖計算機齒輪如做加法,5+3=?,只需把5轉(zhuǎn)到觀察孔位置,再順時鐘轉(zhuǎn)3格,從觀察孔看到和8.如要算8-4=?,有二種方法:將8逆時鐘轉(zhuǎn)動4格,結(jié)果為4從8順時鐘轉(zhuǎn)動6格,結(jié)果也為4.實際是8+6=14,但“1”是進位,齒輪只有10格,進位自動丟失.分析:減4與加6等價,6是-4對10的補碼 數(shù)學(xué)表示式數(shù)學(xué)表示式:8-4=8+6 mod 10 2021-11-148原碼表示法n1位原碼: x0 x1x2 xnnx原原=符號位符號位+|x|定點整數(shù): x原x x 0 x原2nx= 2n+|x| -2nx 0 x原1x=1+|x|

6、 -1x02021-11-149反碼表示法n不管是定點整數(shù)或定點小數(shù)不管是定點整數(shù)或定點小數(shù)nx反反=x原原 , x 0nx反反=x符符. xn xn-1. x1 x0 , x 0符號位不變數(shù)值位變反2021-11-1410n1位補碼: x0 x1x2 xnn定點整數(shù): x補x x 0 x補2n+1x x0n定點小數(shù): x補x x 0 x補2x x0n總而言之:不管是定點整數(shù)或定點小數(shù):總而言之:不管是定點整數(shù)或定點小數(shù): x補補 x原原 x反反 x 0 x補補x反反+1 x0 (即在反碼的最低位(即在反碼的最低位+1)注意:對補碼再次求補,即得到原碼!注意:對補碼再次求補,即得到原碼!補碼表

7、示法2021-11-1411n已知x補=10001011,求x的真值.解:x原= x補補=10001011補 =11110101故:x的真值為-1110101.即-117.n思考題:已知x補=01110101,求x的真值.2021-11-1412移碼表示法 x移2nx最高位為1,x 0最高位為0,x0n移碼與補碼除符號位相反外,其余位相同2021-11-1413分析以8位定點整數(shù)為例:n最大值: x原 = x補 = 01111111 x移=11111111n最小值: x原 =11111111(即-127) x補 =10000000 (即-128) x移=00000000 (即-128)n零的表

8、示: 0原 =0000000或 10000000n0補 =00000000 0移=100000002021-11-1414數(shù)據(jù)格式n定點數(shù)表示n浮點數(shù)表示n十進制數(shù)表示2021-11-1415定點數(shù)表示n定點數(shù):約定機器中的所有數(shù)據(jù)的小數(shù)點位置是固定不變的。nn1位定點數(shù):x0 x1x2 xnx0 :符號 x1x2 xn :量值n定點整數(shù)(純整數(shù))n定點小數(shù)(純小數(shù))2021-11-1416機器數(shù)的定點表示法機器數(shù)的定點表示法(1)定點表示法定點表示法: 定點數(shù)是小數(shù)點固定在某一位置的數(shù)定點數(shù)是小數(shù)點固定在某一位置的數(shù).可看成所有的可看成所有的數(shù)都采用同樣的階碼數(shù)都采用同樣的階碼aj( 如如

9、j=0, a0=1 ), aj可略去不可略去不表示表示,也叫比例因子也叫比例因子.因此因此,定點數(shù)可簡化為定點數(shù)可簡化為: sf (數(shù)符數(shù)符)和和s(尾數(shù)尾數(shù)) 理論上講理論上講,比例因子可任意選擇比例因子可任意選擇,但一般把尾數(shù)表示成但一般把尾數(shù)表示成純小數(shù)或純整數(shù)純小數(shù)或純整數(shù).比例因子的選擇有以下要求比例因子的選擇有以下要求:(2)比例因子的選擇比例因子的選擇:不能太大不能太大:會丟失有效數(shù)字會丟失有效數(shù)字,影響運算精度影響運算精度. 當(dāng)比例因子為當(dāng)比例因子為21時時,s=0.011 當(dāng)比例因子為當(dāng)比例因子為22時時,s=0.001,損失損失1位位 當(dāng)比例因子為當(dāng)比例因子為23時時,s=

10、0.000,損失損失2位位不能太小不能太小:可能使數(shù)超過機器允許的范圍可能使數(shù)超過機器允許的范圍.如如:0111+0101=1100,正數(shù)相加正數(shù)相加,變成了負數(shù)變成了負數(shù).若數(shù)若數(shù)n=0.112021-11-1417浮點數(shù)nremm 稱為浮點數(shù)的尾數(shù)e 稱為浮點數(shù)指數(shù)r 為基數(shù)(r2,8或16)浮點數(shù)組成:階符 階碼 數(shù)符 尾數(shù)2021-11-1418機器數(shù)的浮點表示機器數(shù)的浮點表示1.機器數(shù)的浮點表示法機器數(shù)的浮點表示法(floating point)十進制數(shù)十進制數(shù)n1=3.14159=0.314159*101=0.0314159*102二進制數(shù)二進制數(shù)n2=0.011 =0.110 *

11、2-1 = 0.0011 *21式中式中,e為數(shù)為數(shù)n的階碼的階碼(exponent) m為尾數(shù)為尾數(shù),是數(shù)是數(shù)n的有效數(shù)字的有效數(shù)字(mantissa)當(dāng)當(dāng)e變化時變化時,數(shù)數(shù)n的尾數(shù)的尾數(shù)m中的小數(shù)點位置也隨之向左或向右中的小數(shù)點位置也隨之向左或向右浮動浮動,稱數(shù)的浮點表示法稱數(shù)的浮點表示法. 階符 階碼 數(shù)符 尾 數(shù)n=2e.mefesm注意注意:e為整數(shù)為整數(shù) m為純小數(shù)為純小數(shù)2021-11-1419機器數(shù)的浮點表示機器數(shù)的浮點表示nieee754標(biāo)準(zhǔn)標(biāo)準(zhǔn) 31 30 8b 23 22 23b 0ns:尾數(shù)符號位尾數(shù)符號位nm:尾數(shù)尾數(shù),23位位,用純小數(shù)用純小數(shù)ne:階碼階碼,8位

12、位,其中階符用隱含方式其中階符用隱含方式,即用移碼表示正、負指數(shù)即用移碼表示正、負指數(shù)nx=(-1)sx(1.m)x2e -127n浮點數(shù)運算規(guī)則浮點數(shù)運算規(guī)則:(1)加減加減:先對階先對階(使兩者階碼相同使兩者階碼相同),再尾數(shù)再尾數(shù)+.-(2)乘除乘除:階碼階碼+(乘乘) 尾數(shù)乘尾數(shù)乘 階碼階碼- (除除) 尾數(shù)除尾數(shù)除sem s=0,正 s=1,負2021-11-1420ieee 754標(biāo)準(zhǔn)若浮點數(shù)的二進制存儲格式為(41360000)16,求其32位浮點數(shù)的十進制值。解解: 將十六進制數(shù)展開后,可得二進制數(shù)格式為 指數(shù)e階碼1271000001001111111 =00000011=(

13、3)10包括隱藏位1的尾數(shù)1.m1.011 0110 0000 0000 0000 00001.011011于是有(1)s1.m2e(1.011011)231011.011(11.375)10 2021-11-1421 將十進制數(shù)20.59375轉(zhuǎn)換成32位浮點數(shù)的二進制格式來存儲。 解解: 首先分別將整數(shù)和分?jǐn)?shù)部分轉(zhuǎn)換成二進制數(shù):20.5937510100.10011然后移動小數(shù)點,使其在第1,2位之間 10100.100111.01001001124 e4于是得到: s0,e4127131,m010010011最后得到32位浮點數(shù)的二進制存儲格式為:0100 0001 1010 0100

14、1100 0000 0000 0000(41a4c000)16 2021-11-1422浮點數(shù)與定點數(shù)的比較浮點數(shù)與定點數(shù)的比較(1)當(dāng)字長一定時當(dāng)字長一定時,浮點表示的數(shù)值范圍比定點大浮點表示的數(shù)值范圍比定點大,且階碼部且階碼部分占的位數(shù)越多分占的位數(shù)越多,表示數(shù)的范圍越大表示數(shù)的范圍越大.舉例舉例:8位機位機(含符號位含符號位) 階碼階碼 尾數(shù)尾數(shù)定點定點: sf .xxxxxxx 浮點浮點: sf j fxx xxxx 定點定點:0.00000000.1111111 0127/128小小 浮點浮點:2-11*0.0001 211 *0.1111 1/1287.5 大大(2)浮點數(shù)運算分階

15、碼和尾數(shù)兩部分浮點數(shù)運算分階碼和尾數(shù)兩部分,步驟復(fù)雜步驟復(fù)雜,速度較慢速度較慢.(3)浮點數(shù)判溢出比定點容易浮點數(shù)判溢出比定點容易,只要判斷規(guī)格化尾數(shù)的階碼只要判斷規(guī)格化尾數(shù)的階碼,而定點數(shù)要判數(shù)值本身而定點數(shù)要判數(shù)值本身.(4)高檔微機同時用定、浮點高檔微機同時用定、浮點,而單片機中多采用定點而單片機中多采用定點.2021-11-1423十進制數(shù)表示n 二二-十進制碼十進制碼(bcd-binary coded decmal)又稱二進制編碼的十進制又稱二進制編碼的十進制.用于二用于二-十進制轉(zhuǎn)換十進制轉(zhuǎn)換.(1)定義定義:用用4位二進制碼表示一位十進制碼位二進制碼表示一位十進制碼.最簡單的是最

16、簡單的是8-4-2-1碼碼.也叫壓縮也叫壓縮(或組合或組合)的的bcd碼碼.n8,4,2,1為每位的權(quán)為每位的權(quán)(weight)例例 3579d=?bcd碼碼 3 5 7 9 0011010101111001bcd0011 0101 0111 1001 (2)bcd碼的運算規(guī)則碼的運算規(guī)則: 8-4-2-1的的bcd碼只用碼只用015中的前中的前10種狀態(tài)種狀態(tài)09,后后6種是非法碼種是非法碼.所以所以,當(dāng)和當(dāng)和超過超過9時時,要作要作+6修正操作修正操作.例例:4+9=13 0100 上述的上述的9和和15,實際是兩者之差實際是兩者之差. +1001二進制的二進制的13 1101 +6修正修

17、正 +0110bcd碼的碼的13 100112021-11-1424十進制數(shù)表示n字符串形式:一個字節(jié)存放一個十進制數(shù)(非壓縮非壓縮(非組合非組合)bcd碼碼:用用8位二進制碼表示位二進制碼表示1位位十進制碼十進制碼.高高4位無意義位無意義.):例例: 89d 00001000 00001001bcd,占占2個字節(jié)個字節(jié)n壓縮十進制數(shù)串形式:一個字節(jié)存放兩個十進制數(shù)(壓縮壓縮(組合組合)bcd碼碼:用用8位二進制碼表位二進制碼表示示2位十進制碼位十進制碼)例例: 89d 1000 1001bcd,只占只占1個字節(jié)個字節(jié)2021-11-1425字符表示方法n西文字符表示nascii碼n漢字表示n

18、漢字輸入碼(將漢字轉(zhuǎn)換成計算機能接收的0,1組成的編碼) 區(qū)位碼、拼音碼、字形編碼n漢字內(nèi)碼(漢字在計算機內(nèi)部存儲,運算等操作的機內(nèi)代碼) 兩字節(jié)表示,每字節(jié)的最高位為1n漢字國標(biāo)碼(標(biāo)準(zhǔn)化內(nèi)碼,如gb2312-80)n漢字字模碼(用點陣表示的漢字字形代碼,是漢字的輸出形式)2021-11-1426校驗碼n奇偶校驗碼(可檢測奇數(shù)個錯誤,無法識別錯誤信息的位置)n海明碼(能糾正一位錯誤)n循環(huán)冗余碼 (crc, 檢錯碼)2021-11-1427奇偶校驗碼例例7已知下表中左面一欄有5個字節(jié)的數(shù)據(jù)。請分別用奇校驗和偶校驗進行編碼,填在中間一欄和右面一欄。 2021-11-1428解解: 假定最低一位

19、為校驗位,其余高8位為數(shù)據(jù)位,校驗位的值取0還是取1, 是由數(shù)據(jù)位中1的個數(shù)決定的。2021-11-1429n海明碼是一種可以糾正一位差錯的編碼。它是利用在信息位為k位,增加r位冗余位,構(gòu)成一個n=k+r位的碼字,然后用r個監(jiān)督關(guān)系式產(chǎn)生的r個校正因子來區(qū)分無錯和在碼字中的n個不同位置的一位錯。 海明碼2021-11-1430海明碼2021-11-1431crc循環(huán)冗余校驗的基本原理n發(fā)送器和接收器發(fā)送器和接收器約定選擇同一個約定選擇同一個由由n+1個位組成的個位組成的二進制二進制位列位列p作為校驗列作為校驗列發(fā)送器在數(shù)據(jù)幀的發(fā)送器在數(shù)據(jù)幀的k個位信號后添加個位信號后添加n個位個位(nk)組成

20、的組成的fcs幀檢幀檢驗列驗列(frame check sequence),以保證新組成的全部信,以保證新組成的全部信號列值可以被預(yù)定的校驗二進制位列號列值可以被預(yù)定的校驗二進制位列p的值對二取模整除;的值對二取模整除;接收器檢驗所接收到數(shù)據(jù)信號列值接收器檢驗所接收到數(shù)據(jù)信號列值(含有數(shù)據(jù)信號幀和含有數(shù)據(jù)信號幀和fcs幀檢驗幀檢驗列列)是否能被校驗列是否能被校驗列p對二取模整除,如果不能,則存在傳輸錯誤對二取模整除,如果不能,則存在傳輸錯誤位。位。np被稱為被稱為crc循環(huán)冗余校驗列,正確選擇循環(huán)冗余校驗列,正確選擇p可以提高可以提高crc冗余校驗的能力。冗余校驗的能力。 nfcs幀檢驗列可由

21、下列方法求得:在幀檢驗列可由下列方法求得:在m后添加后添加n個零后對個零后對二取模整除以二取模整除以p所得的余數(shù)。所得的余數(shù)。 2021-11-1432循環(huán)冗余碼(crc)2021-11-14332.2 定點數(shù)加減法運算n加法n減法n溢出n電路實現(xiàn)2021-11-1434加法實現(xiàn)n原碼加法實現(xiàn)n如果符號位相同,兩數(shù)絕對值相加,符號位不變n如果符號位不同,兩數(shù)絕對值相減,符號位與絕對值大的數(shù)相同n補碼加法實現(xiàn)n符號位與數(shù)值位一起參加運算,若符號位相加有進位,則舍去nx補+y補=x+y補2021-11-1435減法實現(xiàn)n原碼減法實現(xiàn)n首先將減數(shù)符號取反,然后按原碼加法進行運算n補碼減法實現(xiàn)n對減數(shù)

22、求補,然后按補碼加法進行運算nx-y補=x補-y補 =x補+ -y補n已知y補,求-y補方法:對y補包括符號位“求反且最末位加1”2021-11-1436溢出n溢出的發(fā)生n下溢:運算結(jié)果小于機器所能表示的最小負數(shù)n上溢:運算結(jié)果大于機器所能表示的最大正數(shù)2021-11-1437溢出判別條件n單符號位表示法(補碼)n最高有效位有進位而符號位無進位,產(chǎn)生上溢n最高有效位無進位而符號位有進位,產(chǎn)生下溢n其它情況,無溢出nv=cfc0n雙符號位表示法(變形補碼)n兩位符號位相同,無溢出n兩位符號位相異,有溢出nv=sf1sf22021-11-1438溢出判別條件(續(xù))例例 0.1011, 0.1001

23、,求。解解:補0.1011 補0.1001補 0.1011 補0.1001 補 1.0100 兩個正數(shù)相加的結(jié)果成為負數(shù),這顯然是錯誤的。例例 0.1101, 0.1011,求。解解:補1.0011 補1.0101補 1.0011 補1.0101 補 0.1000兩個負數(shù)相加的結(jié)果成為正數(shù),這同樣是錯誤的。2021-11-1439溢出判別條件(續(xù))n采用變形補碼后,如果兩個數(shù)相加后,其結(jié)果的符號位出現(xiàn)采用變形補碼后,如果兩個數(shù)相加后,其結(jié)果的符號位出現(xiàn)“01”或或“10”兩種組合時兩種組合時,表示發(fā)生溢出。表示發(fā)生溢出。例例 0.1100, 0.1000,求求。解解: 補補00.1100,補補

24、00.1000 補補00.1100補補00.1000 01.0100兩個符號位出現(xiàn)兩個符號位出現(xiàn)“01”,表示已溢出表示已溢出,即結(jié)果大于即結(jié)果大于1。例例 0.1100, -0.1000,求求。解解:補補11.0100,補補11.1000 補補11.0100補補11.1000 10.1100兩個符號位出現(xiàn)兩個符號位出現(xiàn)“10”,表示已溢出表示已溢出,即結(jié)果小于即結(jié)果小于1。2021-11-1440定點數(shù)加減法運算的實現(xiàn)n一位加法器n二進制加法器n二進制減法器n十進制加法器2021-11-1441一位全加器siai bi cici1aibibiciciai aibici(bi ai)表表2.2

25、 一位全加器真值表一位全加器真值表輸入輸出aibicisici100000001100101001101100101010111001111112021-11-1442二進制加/減法器行波進位的補碼加行波進位的補碼加/減法器減法器2021-11-14432.3 定點數(shù)乘法運算n乘法的實現(xiàn)算法n乘法的電路實現(xiàn)2021-11-1444原碼乘法n運算規(guī)則:乘積的符號位由兩數(shù)的符號位異或運算得到,乘積的數(shù)值部分是兩個正數(shù)相乘之積n運算方法:從乘數(shù)的最低位開始,若為“1”,則記錄被乘數(shù);若為“0”,則記錄全“0”。左移一位被乘數(shù),對高一位乘數(shù)作同樣操作。最后統(tǒng)加。n乘法實現(xiàn):與操作、加法、移位2021-

26、11-1445并行乘法實現(xiàn)-不帶符號位的陣列乘法器 2021-11-1446并行乘法實現(xiàn)-不帶符號位的陣列乘法器2021-11-1447并行乘法實現(xiàn)-帶符號位的陣列乘法器e=0時,輸入和輸出相等 e=1時,則從數(shù)最右端往左邊掃描,直到第一個1的時候,該位和右邊各位保持不變0 a=a,左邊各數(shù)值位按位取反1 a=乛a ??梢杂梅栕鳛閑 的輸入2021-11-1448并行乘法實現(xiàn)-帶符號位的陣列乘法器2021-11-14492.4 定點除法運算原碼除法運算:原碼除法運算:n運算規(guī)則:符號位異或運算;商的數(shù)值部分由兩個正數(shù)求商獲得。n恢復(fù)余數(shù)法:先做減法,余數(shù)為正說明夠減,上商1;余數(shù)為負說明不夠

27、減,上商0,恢復(fù)原來余數(shù)。n加減交替法:先做減法,余數(shù)為正說明夠減,商上1余數(shù)左移一位,下一次為減法運算;余數(shù)為負說明不夠減,商上0余數(shù)左移一位,下一次為加法運算。2021-11-1450原碼恢復(fù)余數(shù)法除法(例)例:已知x=-0.10101,y=0.11110,求x/y。|x|=00.10101|y|=00.11110-|y|變補=11.000102021-11-1451原碼加減交替法除法(例)例:已知x=-0.10101,y=0.11110,求x/y。|x|=00.10101|y|=00.11110-|y|變補=11.000102021-11-1452補碼除法運算n被除數(shù)和除數(shù)都用補碼表示,

28、符號位參與運算,商和余數(shù)也用補碼表示。運算過程中應(yīng)考慮:1.夠減的判斷 參加運算的兩個數(shù)符號任意。為了判斷是否夠減,當(dāng)兩數(shù)同號時,實際應(yīng)做減法;兩數(shù)異號時,實際應(yīng)做加法。 當(dāng)被除數(shù)(或部分余數(shù))與除數(shù)同號,如果得到的新部分余數(shù)與除數(shù)同號,表示夠減;否則為不夠減。 當(dāng)被除數(shù)(或部分余數(shù))與除數(shù)異號,如果得到的新部分余數(shù)與除數(shù)異號,表示夠減;否則為不夠減。2021-11-1453補碼除法運算(續(xù))2. 上商規(guī)則 部分余數(shù)ri補和除數(shù)y補同號,商上“1”,反之,商上“0”。3. 商符的確定 商符是在求商的過程中自動形成的。4. 求新部分余數(shù) 若商上“1”,下一步操作為部分余數(shù)左移一位,減去除數(shù); 若

29、商上“0”,下一步操作為部分余數(shù)左移一位,加上除數(shù);5. 末位恒置1 假設(shè)商的數(shù)值位為n位,運算次數(shù)為n+1次,商的最末一位恒置為“1”,運算的最大誤差為2-n。2021-11-1454補碼除法運算(例)2021-11-1455并行除法器的實現(xiàn)n除法運算的關(guān)鍵操作:加法、減法、判斷n加法操作由全加器實現(xiàn)n減法操作轉(zhuǎn)化成加法實現(xiàn)n判斷操作的重點在于部分積的符號位2021-11-1456可控加法/減法單元(cas)n結(jié)構(gòu):全加器異或門n外部特征:n輸入:ai、bi、ci、pn輸出:si、ci+1、bi、pn功能:在p的控制下執(zhí)行加、減法np0:abnp1:ab2021-11-1457n邏輯函數(shù)si

30、= ai(bip)cici+1=(ai+ci)(bip)+aicin電路實現(xiàn)cas電路2021-11-1458陣列除法器n電路實現(xiàn)(有n位小數(shù)的除法器)n復(fù)雜性估算n器件:(n1)2個cas器件n時間:o(n1)2 t不恢復(fù)余數(shù)陣列除法器邏輯結(jié)構(gòu)圖2021-11-1459n運算器的功能n算術(shù)運算n邏輯運算n運算器的組成n算術(shù)/邏輯運算單元n數(shù)據(jù)緩沖寄存器n通用寄存器n多路轉(zhuǎn)換器n內(nèi)部總線2.5定點運算器的組成2021-11-1460邏輯運算n邏輯數(shù):不帶符號位的二進制數(shù)n特點:無權(quán)逐位運算n常用運算:非、或(加)、與(乘)、異或n意義:邏輯判斷2021-11-1461alu電路nalu:多功能

31、算術(shù)邏輯運算單元nalu結(jié)構(gòu):n位全加器函數(shù)發(fā)生器nn位全加器fi=xiyicn+icn+i1=xiyi+yicn+i+cn+ixin函數(shù)發(fā)生器的邏輯表達式xi=x(s3,s2,ai,bi)yi=y(s1,s0,ai,bi)2021-11-1462總線概念n總線分類n內(nèi)部總線與外部總線(根據(jù)總線所處的位置)n單向總線與雙向總線(按總線的邏輯結(jié)構(gòu)分類)n總線驅(qū)動電路2021-11-1463定點運算器的基本結(jié)構(gòu)n單總線運算器(電路簡單)n雙總線運算器(數(shù)據(jù)傳送靈活)n三總線運算器(操作速度快)2021-11-1464單總線運算器2021-11-1465雙總線運算器2021-11-1466三總線運算

32、器2021-11-1467n浮點數(shù)表示n加減法操作步驟n乘除法操作步驟n流水線技術(shù)2.6 浮點數(shù)運算2021-11-1468n浮點數(shù)的格式組成n尾數(shù):用定點小數(shù)表示,通常是原碼或補碼n階碼:用定點整數(shù)表示,通常是移碼或補碼n作用:n尾數(shù)給出有效位數(shù),決定浮點數(shù)的表示精度n階碼給出小數(shù)點位置,決定浮點數(shù)的表示范圍浮點數(shù)表示2021-11-1469n浮點數(shù)的最大數(shù)n浮點數(shù)的最小數(shù)n浮點數(shù)最大或最小絕對值n浮點數(shù)的溢出n尾數(shù)溢出n階碼溢出浮點數(shù)的表示范圍2021-11-1470浮點數(shù)中階碼與尾數(shù)的關(guān)系n尾數(shù)小數(shù)點左移一位,階碼加一n尾數(shù)小數(shù)點右移一位,階碼減一n機器零n當(dāng)尾數(shù)為0,不論階碼為何值n當(dāng)

33、階碼的值比規(guī)定能表示的值還小,不論尾數(shù)為何值2021-11-1471浮點數(shù)的規(guī)格化表示法n尾數(shù)的規(guī)格化表示:尾數(shù)的絕對值大于等于0.5n尾數(shù)原碼表示:尾數(shù)最高數(shù)值位為1n尾數(shù)補碼表示:尾數(shù)最高數(shù)值位與符號位相異n規(guī)格化處理:左移或右移尾數(shù)小數(shù)點位置,同時調(diào)整階碼,以滿足浮點數(shù)的規(guī)格化表示2021-11-1472尾數(shù)處理n截斷處理n無條件地丟掉正常尾數(shù)最低位之后的全部數(shù)值n優(yōu)點:處理簡單;缺點:影響結(jié)果精度n舍入處理n運算過程中保留右移中移出的若干高位值,再按某種規(guī)則根據(jù)這些位修正尾數(shù)n1位舍入處理和多位舍入處理2021-11-14731位舍入處理n0舍1入法:如果右移時被丟掉數(shù)位的最高位為0則

34、舍去,反之則將尾數(shù)的末位加一n恒置1法:只要有尾數(shù)位被移掉,則在尾數(shù)的末位置一2021-11-1474多位舍入處理n對原碼處理n方法一:只要尾數(shù)最低位為1,或移出的若干位中有1,就使尾數(shù)最低位為1n方法二:移出位最高位為1,在尾數(shù)最低位上加1修正n對補碼處理n當(dāng)丟失位均為0時,不必舍入n當(dāng)丟失的最高位為0其它各位不全為0,或最高位為1以下均為0,則舍去丟失位上的值n當(dāng)丟失的最高位為1,以下各位不全為0時,則執(zhí)行在尾數(shù)最低位入1修正2021-11-1475關(guān)于尾數(shù)移位的操作的討論1尾數(shù)右移n低位移出n按舍入的規(guī)則操作n高位移入n原碼:最高位(符號位)不變,0移入次高位(非符號位最高位)n補碼:按

35、最高位(符號位)的值移入該位2021-11-1476尾數(shù)左移n低位移入n0移入n高位移出n原碼:最高位(符號位)不動,次高位(非符號位最高位)移出n補碼:最高位移出關(guān)于尾數(shù)移位的操作的討論22021-11-1477浮點數(shù)加減法兩個浮點數(shù):x=2exmxy= 2eymy兩數(shù)相加減運算規(guī)則(ex ey)xy = (mx 2ex - ey my) 2ey2021-11-1478浮點數(shù)加減法操作步驟n0操作數(shù)檢查n對階n尾數(shù)相加減n結(jié)果規(guī)格化并舍入n溢出處理2021-11-14790操作數(shù)檢查n對于xy,如果是減法,y變符號n對于x0,y作為結(jié)果輸出n對于y0,x作為結(jié)果輸出2021-11-1480對

36、階n若兩數(shù)階碼不同,表示小數(shù)點位置沒有對齊,此時必須使兩數(shù)的階碼相同,這個過程叫對階.n求階碼的差n階碼不相等,小階向大階看齊 原因:減少誤差 方法:小階尾數(shù)右移,階碼增值2021-11-1481尾數(shù)相加減n尾數(shù)求和運算,方法與定點小數(shù)相同n尾數(shù)和為0,結(jié)果為0,運算結(jié)束2021-11-1482結(jié)果規(guī)格化并舍入n對于尾數(shù)溢出現(xiàn)象進行規(guī)格化操作n絕對值大,右規(guī)格化n絕對值小,左規(guī)格化n右規(guī)格化以后的舍入處理n0舍1入法n恒置1法2021-11-1483溢出處理n浮點數(shù)的溢出是以階碼溢出表現(xiàn)的n尾數(shù)溢出,則對階碼作相應(yīng)處理n溢出種類:n階碼上溢:超過階碼能表達的最大正指數(shù)值n階碼下溢:超過階碼能表

37、達的最小負指數(shù)值n尾數(shù)上溢:同號尾數(shù)相加最高位產(chǎn)生進位,將尾數(shù)右移,階碼增1來重新對齊。n尾數(shù)下溢:尾數(shù)右移時最低有效位的移出,要進行舍入處理。2021-11-1484浮點加減運算的操作流程2021-11-1485浮點數(shù)加減法舉例設(shè):x=20100.11011011 y=2100(-0.10101100)求:x+y=?規(guī)定:n階碼三位雙符號位,補碼表示n尾數(shù)八位雙符號位,補碼表示2021-11-1486 浮00 010,00.11011011浮00 100,11.01010100 求階差并對階eeee補e補00 01011 10011 110 (-2) 浮00 100,00.00110110(

38、11) 尾數(shù)求和 00. 0 0 1 1 0 1 1 0 (11)11. 0 1 0 1 0 1 0 0 11. 1 0 0 0 1 0 1 0 (11)規(guī)格化處理 尾數(shù)運算結(jié)果的符號位與最高數(shù)值位同值,應(yīng)執(zhí)行左規(guī)處理,結(jié)果為11.00010101(10),階碼為 00 011。舍入處理采用0舍1入法處理,則有11. 0 0 0 1 0 1 0 1 111. 0 0 0 1 0 1 1 0判溢出 階碼符號位為00,不溢出,故得最終結(jié)果為2011(0.11101010)2021-11-1487浮點數(shù)的乘除法運算n乘法運算:兩數(shù)尾數(shù)相乘,兩數(shù)階碼相加n除法運算:兩數(shù)尾數(shù)相除,兩數(shù)階碼相減2021-

39、11-1488浮點數(shù)的乘法兩個浮點數(shù):x=2exmxy= 2eymy兩數(shù)相乘運算規(guī)則xy = 2ex + ey (mx my)2021-11-1489浮點數(shù)的除法兩個浮點數(shù):x=2exmxy= 2eymy兩數(shù)相除運算規(guī)則xy = 2ex - ey (mx my)2021-11-1490浮點數(shù)乘除法操作步驟n0操作數(shù)檢查n階碼加減運算n尾數(shù)乘除運算n結(jié)果規(guī)格化n舍入處理2021-11-1491階碼加減運算移移2n2n2n移移移移2n2n 2n(2n() 2n移移 即直接用移碼實現(xiàn)求階碼之和時即直接用移碼實現(xiàn)求階碼之和時,結(jié)果的最高位多加了個結(jié)果的最高位多加了個1,要得要得到正確的移碼形式結(jié)果到正

40、確的移碼形式結(jié)果,必須對結(jié)果的符號再執(zhí)行一次求反。必須對結(jié)果的符號再執(zhí)行一次求反。 當(dāng)混合使用移碼和補碼時當(dāng)混合使用移碼和補碼時,考慮到移碼和補碼的關(guān)系:對同一個數(shù)考慮到移碼和補碼的關(guān)系:對同一個數(shù)值值,其數(shù)值位完全相同其數(shù)值位完全相同,而符號位正好完全相反。而而符號位正好完全相反。而補補的定義為的定義為 補補2n1 則求階碼和用如下方式完成:則求階碼和用如下方式完成: 移移補補2n2n1 2n1(2n()即即 移移移移補補(mod 2n1) 同理同理 移移移移補補 上二式表明執(zhí)行階碼加減時上二式表明執(zhí)行階碼加減時,對加數(shù)或減數(shù)對加數(shù)或減數(shù) 來說來說,應(yīng)送移碼符號位正應(yīng)送移碼符號位正常值的反碼

41、。常值的反碼。2021-11-1492階碼加減運算(續(xù))n使用雙符號位的階碼加法器,并規(guī)定移碼的第二個符號位,即最高符號位恒用 0 參加加減運算,則溢出條件是結(jié)果的最高符號位溢出條件是結(jié)果的最高符號位為為1。此時,當(dāng)?shù)臀环栁粸?0時,表明結(jié)果上溢,為1時,表明結(jié)果下溢。n當(dāng)最高符號位為0時,表明沒有溢出;低位符號位為 1,表明結(jié)果為正;為 0 時,表明結(jié)果為負。2021-11-1493階碼加減運算例例 011,110,求移 和 移,并判斷是否溢出。解解:移01 011, 補00 110, 補11 010 移移補10 001, 結(jié)果上溢。 移移補00 101, 結(jié)果正確,為3。2021-11-

42、1494舍入處理n無條件地丟掉正常尾數(shù)最低位之后的全部數(shù)值。這種辦法被稱為截斷處理,好處是處理簡單,缺點是影響結(jié)果的精度。n運算過程中保留右移中移出的若干高位的值,最后再按某種規(guī)則用這些位上的值修正尾數(shù)。這種處理方法被稱為舍入處理。2021-11-1495舍入處理(續(xù))n當(dāng)尾數(shù)用原碼表示時,舍入規(guī)則比較簡單。n只要尾數(shù)的最低位為1,或移出的幾位中有為1的數(shù)值位,就是最低位的值為1。n0舍1入法,即當(dāng)丟失的最高位的值為1時,把這個1加到最低數(shù)值位上進行修正,否則舍去丟失的的各位的值。這樣處理時,舍入效果對正數(shù)負數(shù)相同,入將使數(shù)的絕對值變大,舍則使數(shù)的絕對值變小。n當(dāng)尾數(shù)是用補碼表示時, 具體規(guī)則

43、是:n當(dāng)丟失的各位均為0時,不必舍入;n當(dāng)丟失的最高位為0 時,以下各位不全為0 時,或者丟失的最高位為1,以下各位均為0時,則舍去丟失位上的值;n當(dāng)丟失的最高位為1,以下各位不全為0 時,則執(zhí)行在尾數(shù)最低位入1的修正操作。2021-11-1496舍入處理(續(xù))例例 設(shè)1補11.01100000, 2補11.01100001, 3補11.01101000, 4補11.01111001, 求執(zhí)行只保留小數(shù)點后4位有效數(shù)字的舍入操作值。解解:執(zhí)行舍入操作后,其結(jié)果值分別為 1補11.0110(不舍不入)2補11.0110(舍) 3補11.0110(舍) 4補11.1000(入)2021-11-1497浮點乘、除法運算舉例浮點乘、除法運算舉例例例 設(shè)有浮點數(shù)250.0110011,23(0.1110010),階碼用4位移碼表示,尾數(shù)(含符號位)用8位補碼表示。求浮。要求用補碼完成尾數(shù)乘法運算,運算結(jié)果尾數(shù)保留高8位(含符號位),并用尾數(shù)低位字?jǐn)?shù)值進行舍入操作。解解:移碼采用雙符號位,尾數(shù)補碼采用單符號位,則有m補0.0110011, m補1.0001110,e移01 011, e補00 011, e移00 011,浮00 011, 0.0110011, 浮01 011, 1.0001110(1) 求階碼和ee移e移e補00 01100 01

溫馨提示

  • 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

提交評論