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

下載本文檔

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

文檔簡介

1、第2章 運算方法和運算器第2章主要內(nèi)容n數(shù)據(jù)的表示法n數(shù)的表示n字符的表示n數(shù)據(jù)的運算法n加減法運算n乘除法運算n運算的電路實現(xiàn)補充內(nèi)容進制之間的轉(zhuǎn)換)n十進制二進制 n 如 (20.5937510=(10100.100112 n ( 100.11011 )2=(4.8437510n二進制八進制n 如 (1101.101012=(15.528n二進制十六進制n 如 ( 1101.10101 )2=(0d.a8162.1 數(shù)據(jù)與文字的表示方法n數(shù)的表示n數(shù)值的表示n符號的表示n小數(shù)點的表示n字符的表示n校驗碼機器數(shù)與真值n數(shù)在計算機中的表示形式統(tǒng)稱為機器數(shù)n機器數(shù)有兩個基本特點:n 1 符號的數(shù)

2、值化。n符號數(shù), 用其最左邊一位MSB(Most Significant Bit)表示數(shù)的正負.nMSB=0,表示正數(shù), 如+1011,表示01011nMSB=1,表示負數(shù), 如-1011,表示 11011n 2 二進制位數(shù)受機器設(shè)備限制。n真值:是數(shù)值數(shù)據(jù)代表的實際值,即用表示符號,再加上數(shù)的絕對值.01011 真值真值+101111011 真值真值-1011即符號被編碼了即符號被編碼了無符號數(shù)與符號數(shù)無符號數(shù)與符號數(shù)(1)無符號數(shù)無符號數(shù):即沒有符號的數(shù)即沒有符號的數(shù),同字長的無符號數(shù)同字長的無符號數(shù)表示的最大值可比符號數(shù)大一倍表示的最大值可比符號數(shù)大一倍. 無符號數(shù)無符號數(shù) Nmax=1

3、111=15 符號數(shù)符號數(shù) Nmax =0111=7(2)用用1位符號位位符號位(0,1)表示正負表示正負,給運算帶來的問給運算帶來的問題題 正正,正相加正相加:符號位符號位0+0=0,仍為正仍為正,不影響結(jié)果不影響結(jié)果. 正正,負相加負相加:0+1=1,不一定對不一定對,要看哪個絕對值大要看哪個絕對值大,和的符號位由大數(shù)定和的符號位由大數(shù)定. 負負,負相加負相加:1+1=10,和的符號與實際值不符和的符號與實際值不符.(3)結(jié)論結(jié)論:用上述方法表示符號數(shù)用上述方法表示符號數(shù),負數(shù)的符號位不負數(shù)的符號位不能與數(shù)值部分一起參加運算能與數(shù)值部分一起參加運算,為解決機器內(nèi)負數(shù)為解決機器內(nèi)負數(shù)的符號位

4、參與運算的問題的符號位參與運算的問題,要引入補碼與反碼要引入補碼與反碼.當字長為當字長為4位時位時數(shù)的機器表示(1)原碼原碼:X原原=符號位符號位+|X|(2)反碼反碼:X反反=X原原 , X 0 X反反=X符符. Xn Xn-1. X1 X0 , X 0(3)補碼補碼:手搖計算機的齒輪數(shù)字輪如圖所示手搖計算機的齒輪數(shù)字輪如圖所示.符號位不變數(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,

5、但“1是進位,齒輪只有10格,進位自動丟失.分析:減4與加6等價,6是-4對10的補碼 數(shù)學(xué)表示式:8-4=8+6 mod 10 原碼表示法N1位原碼: x0 x1x2 xnX原=符號位+|X|定點整數(shù): x原x x 0 x原2nx= 2n+|x| -2nx 0 x原1x=1+|x| -1x0反碼表示法n不管是定點整數(shù)或定點小數(shù)不管是定點整數(shù)或定點小數(shù)nX反反=X原原 , X 0nX反反=X符符. Xn Xn-1. X1 X0 , X 0符號位不變數(shù)值位變反N1位補碼: x0 x1x2 xn定點整數(shù): x補x x 0 x補2n+1x x0定點小數(shù): x補x x 0 x補2x x0總而言之:不管

6、是定點整數(shù)或定點小數(shù): x補 x原 x反 x 0 x補x反+1 x0 (即在反碼的最低位+1)留意:對補碼再次求補,即得到原碼!補碼表示法n知x補=10001011,求x的真值.解:x原= x補補=10001011補 =11110101故:x的真值為-1110101.即-117.n思考題:知x補=01110101,求x的真值.移碼表示法 x移2nx最高位為1,X 0最高位為0,X0移碼與補碼除符號位相反外,其余位相同分析以8位定點整數(shù)為例:最大值: x原 = x補 = 01111111 x移=11111111最小值: x原 =11111111(即-127) x補 =10000000 (即-12

7、8) x移=00000000 (即-128)零的表示: 0原 =0000000或 100000000補 =00000000 0移=10000000數(shù)據(jù)格式n定點數(shù)表示n浮點數(shù)表示n十進制數(shù)表示定點數(shù)表示n定點數(shù):約定機器中的所有數(shù)據(jù)的小數(shù)點位置是固定不變的。nN1位定點數(shù):x0 x1x2 xnnx0 :符號 x1x2 xn :量值n定點整數(shù)純整數(shù))n定點小數(shù)純小數(shù))機器數(shù)的定點表示法機器數(shù)的定點表示法(1)定點表示法定點表示法: 定點數(shù)是小數(shù)點固定在某一位置的數(shù)定點數(shù)是小數(shù)點固定在某一位置的數(shù).可看成所有的可看成所有的數(shù)都采用同樣的階碼數(shù)都采用同樣的階碼aj( 如如 j=0, a0=1 ),

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

9、不能太小不能太小:可能使數(shù)超過機器允許的范圍可能使數(shù)超過機器允許的范圍.如如:0111+0101=1100,正數(shù)相加正數(shù)相加,變成了負數(shù)變成了負數(shù).若數(shù)若數(shù)N=0.11浮點數(shù)NRemm 稱為浮點數(shù)的尾數(shù)e 稱為浮點數(shù)指數(shù)R 為基數(shù)R2,8或16)浮點數(shù)組成:階符 階碼 數(shù)符 尾數(shù)機器數(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 *2-1 = 0.0011 *21式中式中,E為數(shù)為數(shù)N的階碼的階碼(expo

10、nent) M為尾數(shù)為尾數(shù),是數(shù)是數(shù)N的有效數(shù)字的有效數(shù)字(mantissa)當當E變化時變化時,數(shù)數(shù)N的尾數(shù)的尾數(shù)M中的小數(shù)點位置也隨之向左或向右中的小數(shù)點位置也隨之向左或向右浮動浮動,稱數(shù)的浮點表示法稱數(shù)的浮點表示法. 階符階符 階碼階碼 數(shù)符數(shù)符 尾尾 數(shù)數(shù)N=2E.MEfESM留意留意:E為整數(shù)為整數(shù) M為純小數(shù)為純小數(shù)機器數(shù)的浮點表示機器數(shù)的浮點表示nIEEE754標準標準n 31 30 8b 23 22 23b 0nS:尾數(shù)符號位尾數(shù)符號位nM:尾數(shù)尾數(shù),23位位,用純小數(shù)用純小數(shù)nE:階碼階碼,8位位,其中階符用隱含方式其中階符用隱含方式,即用移碼表示正、負指即用移碼表示正、負指

11、數(shù)數(shù)nX=(-1)Sx(1.M)x2E -127n浮點數(shù)運算規(guī)則浮點數(shù)運算規(guī)則:n(1)加減加減:先對階先對階(使兩者階碼相同使兩者階碼相同),再尾數(shù)再尾數(shù)+.-n(2)乘除乘除:階碼階碼+(乘乘) 尾數(shù)乘尾數(shù)乘n 階碼階碼- (除除) 尾數(shù)除尾數(shù)除SEM S=0,正 S=1,負IEEE 754標準若浮點數(shù)的二進制存儲格式為(41360000)16,求其32位浮點數(shù)的十進制值。解: 將十六進制數(shù)展開后,可得二進制數(shù)格式為 指數(shù)e階碼1271000001001111111 =00000011=(3)10包括隱藏位1的尾數(shù)1.M1.011 0110 0000 0000 0000 00001.011

12、011于是有(1)s1.M2e(1.011011)231011.011(11.375)10 將十進制數(shù)20.59375轉(zhuǎn)換成32位浮點數(shù)的二進制格式來存儲。 解: 首先分別將整數(shù)和分數(shù)部分轉(zhuǎn)換成二進制數(shù):20.5937510100.10011然后移動小數(shù)點,使其在第1,2位之間 10100.100111.01001001124 e4于是得到: S0,E4127131,M010010011最后得到32位浮點數(shù)的二進制存儲格式為:0100 0001 1010 0100 1100 0000 0000 0000(41A4C000)16 浮點數(shù)與定點數(shù)的比較浮點數(shù)與定點數(shù)的比較(1)當字長一定時當字長一

13、定時,浮點表示的數(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ù)運算分階碼和尾數(shù)兩部分浮點數(shù)運算分階碼和尾數(shù)兩部分,步驟復(fù)雜步驟復(fù)雜,速度較慢速度較慢.(3)浮點數(shù)判溢出比定點容易浮點數(shù)判溢出比定點容易,只要判斷規(guī)格化尾數(shù)的階

14、碼只要判斷規(guī)格化尾數(shù)的階碼,而定點數(shù)要判數(shù)值本身而定點數(shù)要判數(shù)值本身.(4)高檔微機同時用定、浮點高檔微機同時用定、浮點,而單片機中多采用定點而單片機中多采用定點.十進制數(shù)表示n 二二-十進制碼十進制碼(BCD-Binary Coded Decmal)n又稱二進制編碼的十進制又稱二進制編碼的十進制.用于二用于二-十進制轉(zhuǎn)換十進制轉(zhuǎn)換.n(1)定義定義:用用4位二進制碼表示一位十進制碼位二進制碼表示一位十進制碼.最簡單的是最簡單的是8-4-2-1碼碼.也叫也叫壓縮壓縮(或組合或組合)的的BCD碼碼.n8,4,2,1為每位的權(quán)為每位的權(quán)(weight)n例例 3579D=?BCD碼碼n 3 5 7

15、 9 0011010101111001BCDn0011 0101 0111 1001n (2)BCD碼的運算規(guī)則碼的運算規(guī)則:n 8-4-2-1的的BCD碼只用碼只用015中的前中的前10種狀態(tài)種狀態(tài)09,后后6種是非法碼種是非法碼.所以所以,當和超過當和超過9時時,要作要作+6修正操作修正操作.n例例:4+9=13 0100 上述的上述的9和和15,實際是兩者之差實際是兩者之差. n +1001n二進制的二進制的13 1101n +6修正修正 +0110nBCD碼的碼的13 10011十進制數(shù)表示n字符串形式:一個字節(jié)存放一個十進制數(shù)(非壓縮(非組合)BCD碼:用8位二進制碼表示1位十進制碼

16、.高4位無意義.):n例: 89D 00001000 00001001BCD,占2個字節(jié)n壓縮十進制數(shù)串形式:一個字節(jié)存放兩個十進制數(shù)(緊縮(組合)BCD碼:用8位二進制碼表示2位十進制碼)n例: 89D 1000 1001BCD,只占1個字節(jié)字符表示方法n西文字符表示nASCII碼n漢字表示n漢字輸入碼(將漢字轉(zhuǎn)換成計算機能接收的0,1組成的編碼) 區(qū)位碼、拼音碼、字形編碼n漢字內(nèi)碼(漢字在計算機內(nèi)部存儲,運算等操作的機內(nèi)代碼) 兩字節(jié)表示,每字節(jié)的最高位為1n漢字國標碼(標準化內(nèi)碼,如GB2312-80)n漢字字模碼(用點陣表示的漢字字形代碼,是漢字的輸出形式)校驗碼n奇偶校驗碼(可檢測奇

17、數(shù)個錯誤,無法識別錯誤信息的位置)n海明碼(能糾正一位錯誤)n循環(huán)冗余碼 (CRC, 檢錯碼)奇偶校驗碼例例7已知下表中左面一欄有已知下表中左面一欄有5個字節(jié)的數(shù)據(jù)。請個字節(jié)的數(shù)據(jù)。請分別用奇校驗和偶校驗進行編碼分別用奇校驗和偶校驗進行編碼,填在中間一欄填在中間一欄和右面一欄。和右面一欄。 解解: 假定最低一位為校驗位假定最低一位為校驗位,其余高其余高8位為數(shù)據(jù)位位為數(shù)據(jù)位,校驗位校驗位的值取的值取0還是取還是取1, 是由數(shù)據(jù)位中是由數(shù)據(jù)位中1的個數(shù)決定的。的個數(shù)決定的。n海明碼是一種可以糾正一位差錯的編碼。它是利用在信息位為k位,增加r位冗余位,構(gòu)成一個n=k+r位的碼字,然后用r個監(jiān)督關(guān)系

18、式產(chǎn)生的r個校正因子來區(qū)分無錯和在碼字中的n個不同位置的一位錯。 海明碼海明碼CRC循環(huán)冗余校驗的基本原理n發(fā)送器和接收器約定選擇同一個由發(fā)送器和接收器約定選擇同一個由n+1個位組成的二進制個位組成的二進制位列位列P作為校驗列作為校驗列n發(fā)送器在數(shù)據(jù)幀的發(fā)送器在數(shù)據(jù)幀的K個位信號后添加個位信號后添加n個位個位(nK)組成的組成的FCS幀檢驗列幀檢驗列(Frame Check Sequence),以保證,以保證新組成的全部信號列值可以被預(yù)定的校驗二進制位列新組成的全部信號列值可以被預(yù)定的校驗二進制位列P的的值對二取模整除;值對二取模整除;n接收器檢驗所接收到數(shù)據(jù)信號列值接收器檢驗所接收到數(shù)據(jù)信號

19、列值(含有數(shù)據(jù)信號幀和含有數(shù)據(jù)信號幀和FCS幀檢驗列幀檢驗列)是否能被校驗列是否能被校驗列P對二取模整除,如果不能,對二取模整除,如果不能,則存在傳輸錯誤位。則存在傳輸錯誤位。nP被稱為被稱為CRC循環(huán)冗余校驗列,正確選擇循環(huán)冗余校驗列,正確選擇P可以提高可以提高CRC冗余校驗的能力。冗余校驗的能力。 nFCS幀檢驗列可由下列方法求得:在幀檢驗列可由下列方法求得:在M后添加后添加n個零后對個零后對二取模整除以二取模整除以P所得的余數(shù)。所得的余數(shù)。 循環(huán)冗余碼(CRC)2.2 定點數(shù)加減法運算n加法n減法n溢出n電路實現(xiàn)加法實現(xiàn)n原碼加法實現(xiàn)n如果符號位相同,兩數(shù)絕對值相加,符號位不變n如果符號

20、位不同,兩數(shù)絕對值相減,符號位與絕對值大的數(shù)相同n補碼加法實現(xiàn)n符號位與數(shù)值位一起參加運算,若符號位相加有進位,則舍去nX補+Y補=X+Y補減法實現(xiàn)n原碼減法實現(xiàn)n首先將減數(shù)符號取反,然后按原碼加法進行運算n補碼減法實現(xiàn)n對減數(shù)求補,然后按補碼加法進行運算nX-Y補=X補-Y補 =X補+ -Y補n知Y補,求-Y補方法:對Y補包括符號位“求反且最末位加1”溢出n溢出的發(fā)生n下溢:運算結(jié)果小于機器所能表示的最小負數(shù)n上溢:運算結(jié)果大于機器所能表示的最大正數(shù)溢出判別條件n單符號位表示法(補碼)n最高有效位有進位而符號位無進位,產(chǎn)生上溢n最高有效位無進位而符號位有進位,產(chǎn)生下溢n其它情況,無溢出nV=

21、Cf C0n雙符號位表示法(變形補碼)n兩位符號位相同,無溢出n兩位符號位相異,有溢出nV=Sf1 Sf2溢出判別條件續(xù))例例 0.1011, 0.1001,求。求。解解:補補0.1011 補補0.1001補補 0.1011 補補0.1001 補補 1.0100 兩個正數(shù)相加的結(jié)果成為負數(shù)兩個正數(shù)相加的結(jié)果成為負數(shù),這顯然是錯誤的。這顯然是錯誤的。例例 0.1101, 0.1011,求。求。解解:補補1.0011 補補1.0101補補 1.0011 補補1.0101 補補 0.1000兩個負數(shù)相加的結(jié)果成為正數(shù)兩個負數(shù)相加的結(jié)果成為正數(shù),這同樣是錯誤的。這同樣是錯誤的。溢出判別條件續(xù))n采用變

22、形補碼后,如果兩個數(shù)相加后,其結(jié)果的符號位出現(xiàn)采用變形補碼后,如果兩個數(shù)相加后,其結(jié)果的符號位出現(xiàn)“01或或“10兩種組合時兩種組合時,表示發(fā)生溢出。表示發(fā)生溢出。n例例 0.1100, 0.1000,求。求。n解解: n補補00.1100,補補00.1000n 補補00.1100n補補00.1000n 01.0100n兩個符號位出現(xiàn)兩個符號位出現(xiàn)“01”,表示已溢出表示已溢出,即結(jié)果大于即結(jié)果大于1。n例例 0.1100, -0.1000,求。求。n解解:n補補11.0100,補補11.1000n 補補11.0100n補補11.1000n 10.1100n兩個符號位出現(xiàn)兩個符號位出現(xiàn)“10”

23、,表示已溢出表示已溢出,即結(jié)果小于即結(jié)果小于1。定點數(shù)加減法運算的實現(xiàn)n一位加法器n二進制加法器n二進制減法器n十進制加法器一位全加器SiAi Bi CiCi1AiBiBiCiCiAi AiBiCi(Bi Ai)表表2.2 一位全加器真值表一位全加器真值表輸入輸出AiBiCiSiCi10000000110010100110110010101011100111111二進制加/減法器行波進位的補碼加行波進位的補碼加/減法器減法器2.3 定點數(shù)乘法運算n乘法的實現(xiàn)算法n乘法的電路實現(xiàn)原碼乘法n運算規(guī)則:乘積的符號位由兩數(shù)的符號位異或運算得到,乘積的數(shù)值部分是兩個正數(shù)相乘之積n運算方法:從乘數(shù)的最低位

24、開始,若為“1”,則記錄被乘數(shù);若為“0”,則記錄全“0”。左移一位被乘數(shù),對高一位乘數(shù)作同樣操作。最后統(tǒng)加。n乘法實現(xiàn):與操作、加法、移位并行乘法實現(xiàn)-不帶符號位的陣列乘法器 并行乘法實現(xiàn)-不帶符號位的陣列乘法器并行乘法實現(xiàn)-帶符號位的陣列乘法器E=0時,輸入和輸出相等 E=1時,則從數(shù)最右端往左邊掃描,直到第一個1的時候,該位和右邊各位保持不變0 A=A,左邊各數(shù)值位按位取反1 A=乛A ??梢杂梅栕鳛镋 的輸入并行乘法實現(xiàn)-帶符號位的陣列乘法器2.4 定點除法運算原碼除法運算:原碼除法運算:運算規(guī)則:符號位異或運算;商的數(shù)值部分由兩個運算規(guī)則:符號位異或運算;商的數(shù)值部分由兩個正數(shù)求商

25、獲得。正數(shù)求商獲得?;謴?fù)余數(shù)法:先做減法,余數(shù)為正說明夠減,上商恢復(fù)余數(shù)法:先做減法,余數(shù)為正說明夠減,上商1;余數(shù)為負說明不夠減,上商;余數(shù)為負說明不夠減,上商0,恢復(fù)原來余,恢復(fù)原來余數(shù)。數(shù)。加減交替法:先做減法,余數(shù)為正說明夠減,商上加減交替法:先做減法,余數(shù)為正說明夠減,商上1余數(shù)左移一位,下一次為減法運算;余數(shù)為負余數(shù)左移一位,下一次為減法運算;余數(shù)為負說明不夠減,商上說明不夠減,商上0余數(shù)左移一位,下一次為加余數(shù)左移一位,下一次為加法運算。法運算。原碼恢復(fù)余數(shù)法除法例)例:知X=-0.10101,Y=0.11110,求X/Y。|X|=00.10101|Y|=00.11110-|Y|

26、變補=11.00010原碼加減交替法除法例)例:知X=-0.10101,Y=0.11110,求X/Y。|X|=00.10101|Y|=00.11110-|Y|變補=11.00010補碼除法運算n被除數(shù)和除數(shù)都用補碼表示,符號位參與運算,商和余數(shù)也用補碼表示。運算過程中應(yīng)考慮:n夠減的判斷n 參加運算的兩個數(shù)符號任意。為了判斷是否夠減,當兩數(shù)同號時,實際應(yīng)做減法;兩數(shù)異號時,實際應(yīng)做加法。n 當被除數(shù)或部分余數(shù)與除數(shù)同號,如果得到的新部分余數(shù)與除數(shù)同號,表示夠減;否則為不夠減。n 當被除數(shù)或部分余數(shù)與除數(shù)異號,如果得到的新部分余數(shù)與除數(shù)異號,表示夠減;否則為不夠減。補碼除法運算續(xù))2. 上商規(guī)則

27、 部分余數(shù)ri補和除數(shù)Y補同號,商上“1”,反之,商上“0”。3. 商符的確定 商符是在求商的過程中自動形成的。4. 求新部分余數(shù) 若商上“1”,下一步操作為部分余數(shù)左移一位,減去除數(shù); 若商上“0”,下一步操作為部分余數(shù)左移一位,加上除數(shù);5. 末位恒置1 假設(shè)商的數(shù)值位為n位,運算次數(shù)為n+1次,商的最末一位恒置為“1”,運算的最大誤差為2-n。補碼除法運算例)并行除法器的實現(xiàn)n除法運算的關(guān)鍵操作:加法、減法、判別n加法操作由全加器實現(xiàn)n減法操作轉(zhuǎn)化成加法實現(xiàn)n判斷操作的重點在于部分積的符號位可控加法/減法單元CAS)n構(gòu)造:全加器異或門n外部特征:n輸入:Ai、Bi、Ci、Pn輸出:Si

28、、Ci+1、Bi、Pn功能:在P的控制下執(zhí)行加、減法nP0:ABnP1:ABn邏輯函數(shù)nSi= Ai (Bi P) CinCi+1=(Ai+Ci)(Bi P)+AiCin電路實現(xiàn)CAS電路陣列除法器n電路實現(xiàn)有N位小數(shù)的除法器)n復(fù)雜性估算n器件:(N12個CAS器件n時間:O(N1)2 T不恢復(fù)余數(shù)陣列除法器邏輯結(jié)構(gòu)圖n運算器的功能n算術(shù)運算n邏輯運算n運算器的組成n算術(shù)/邏輯運算單元n數(shù)據(jù)緩沖寄存器n通用寄存器n多路轉(zhuǎn)換器n內(nèi)部總線2.5定點運算器的組成邏輯運算n邏輯數(shù):不帶符號位的二進制數(shù)n特點:無權(quán)逐位運算n常用運算:非、或加)、與乘)、異或n意義:邏輯判斷ALU電路nALU:多功能算

29、術(shù)邏輯運算單元nALU結(jié)構(gòu):N位全加器函數(shù)發(fā)生器nN位全加器nFi=Xi Yi Cn+inCn+i1=XiYi+YiCn+i+Cn+iXin函數(shù)發(fā)生器的邏輯表達式nXi=X(S3,S2,Ai,Bi)nYi=Y(S1,S0,Ai,Bi)總線概念n總線分類n內(nèi)部總線與外部總線根據(jù)總線所處的位置)n單向總線與雙向總線按總線的邏輯結(jié)構(gòu)分類)n總線驅(qū)動電路定點運算器的基本結(jié)構(gòu)n單總線運算器電路簡單)n雙總線運算器數(shù)據(jù)傳送靈活)n三總線運算器操作速度快)單總線運算器雙總線運算器三總線運算器n浮點數(shù)表示n加減法操作步驟n乘除法操作步驟n流水線技術(shù)2.6 浮點數(shù)運算n浮點數(shù)的格式組成n尾數(shù):用定點小數(shù)表示,通

30、常是原碼或補碼n階碼:用定點整數(shù)表示,通常是移碼或補碼n作用:n尾數(shù)給出有效位數(shù),決定浮點數(shù)的表示精度n階碼給出小數(shù)點位置,決定浮點數(shù)的表示范圍浮點數(shù)表示n浮點數(shù)的最大數(shù)n浮點數(shù)的最小數(shù)n浮點數(shù)最大或最小絕對值n浮點數(shù)的溢出n尾數(shù)溢出n階碼溢出浮點數(shù)的表示范圍浮點數(shù)中階碼與尾數(shù)的關(guān)系n尾數(shù)小數(shù)點左移一位,階碼加一n尾數(shù)小數(shù)點右移一位,階碼減一n機器零n當尾數(shù)為0,不論階碼為何值n當階碼的值比規(guī)定能表示的值還小,不論尾數(shù)為何值浮點數(shù)的規(guī)格化表示法n尾數(shù)的規(guī)格化表示:尾數(shù)的絕對值大于等于0.5n尾數(shù)原碼表示:尾數(shù)最高數(shù)值位為1n尾數(shù)補碼表示:尾數(shù)最高數(shù)值位與符號位相異n規(guī)格化處理:左移或右移尾數(shù)小

31、數(shù)點位置,同時調(diào)整階碼,以滿足浮點數(shù)的規(guī)格化表示尾數(shù)處理n截斷處理n無條件地丟掉正常尾數(shù)最低位之后的全部數(shù)值n優(yōu)點:處理簡單;缺陷:影響結(jié)果精度n舍入處理n運算過程中保留右移中移出的若干高位值,再按某種規(guī)則根據(jù)這些位修正尾數(shù)n1位舍入處理和多位舍入處理1位舍入處理n0舍1入法:如果右移時被丟掉數(shù)位的最高位為0則舍去,反之則將尾數(shù)的末位加一n恒置1法:只要有尾數(shù)位被移掉,則在尾數(shù)的末位置一多位舍入處理n對原碼處理n方法一:只要尾數(shù)最低位為1,或移出的若干位中有1,就使尾數(shù)最低位為1n方法二:移出位最高位為1,在尾數(shù)最低位上加1修正n對補碼處理n當丟失位均為0時,不必舍入n當丟失的最高位為0其它各

32、位不全為0,或最高位為1以下均為0,則舍去丟失位上的值n當丟失的最高位為1,以下各位不全為0時,則執(zhí)行在尾數(shù)最低位入1修正關(guān)于尾數(shù)移位的操作的討論1尾數(shù)右移低位移出按舍入的規(guī)則操作高位移入原碼:最高位符號位不變,0移入次高位非符號位最高位)補碼:按最高位符號位的值移入該位尾數(shù)左移低位移入0移入高位移出原碼:最高位符號位不動,次高位非符號位最高位移出補碼:最高位移出關(guān)于尾數(shù)移位的操作的討論2浮點數(shù)加減法兩個浮點數(shù):x=2ExMxy= 2EyMy兩數(shù)相加減運算規(guī)則(Ex Ey)xy = (Mx 2Ex - Ey My) 2Ey浮點數(shù)加減法操作步驟n0操作數(shù)檢查n對階n尾數(shù)相加減n結(jié)果規(guī)格化并舍入n

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

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

35、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é)果為2021(0.11101010)浮點數(shù)的乘除法運算n乘法運算:兩數(shù)尾數(shù)相乘,兩數(shù)階碼相加n除法運算:兩數(shù)尾數(shù)相除,兩數(shù)階碼相減浮點數(shù)的乘法兩個浮點數(shù):x=2ExMxy= 2EyMy兩數(shù)相乘運算規(guī)則xy

36、= 2Ex + Ey (Mx My)浮點數(shù)的除法兩個浮點數(shù):x=2ExMxy= 2EyMy兩數(shù)相除運算規(guī)則xy = 2Ex - Ey (Mx My)浮點數(shù)乘除法操作步驟n0操作數(shù)檢查n階碼加減運算n尾數(shù)乘除運算n結(jié)果規(guī)格化n舍入處理階碼加減運算移移2n2n2n移移移移2n2n 2n(2n() 2n移移 即直接用移碼實現(xiàn)求階碼之和時即直接用移碼實現(xiàn)求階碼之和時,結(jié)果的最高位多加了個結(jié)果的最高位多加了個1,要得要得到正確的移碼形式結(jié)果到正確的移碼形式結(jié)果,必須對結(jié)果的符號再執(zhí)行一次求反。必須對結(jié)果的符號再執(zhí)行一次求反。 當混合使用移碼和補碼時當混合使用移碼和補碼時,考慮到移碼和補碼的關(guān)系:對同一個

37、數(shù)考慮到移碼和補碼的關(guān)系:對同一個數(shù)值值,其數(shù)值位完全相同其數(shù)值位完全相同,而符號位正好完全相反。而而符號位正好完全相反。而補的定義為補的定義為 補補2n1 則求階碼和用如下方式完成:則求階碼和用如下方式完成: 移移補補2n2n1 2n1(2n()即即 移移移移補補(mod 2n1) 同理同理 移移移移補補 上二式表明執(zhí)行階碼加減時上二式表明執(zhí)行階碼加減時,對加數(shù)或減數(shù)對加數(shù)或減數(shù) 來說來說,應(yīng)送移碼符號位正應(yīng)送移碼符號位正常值的反碼。常值的反碼。階碼加減運算續(xù))n使用雙符號位的階碼加法器,并規(guī)定移碼的第二個符號位,即最高符號位恒用 0 參加加減運算,則溢出條件是結(jié)果的最高符號位為1。此時,當

38、低位符號位為 0時,表明結(jié)果上溢,為1時,表明結(jié)果下溢。n當最高符號位為0時,表明沒有溢出;低位符號位為 1,表明結(jié)果為正;為 0 時,表明結(jié)果為負。階碼加減運算例例 011,110,求求移移 和和 移移,并判斷是否溢出。并判斷是否溢出。解解:移移01 011, 補補00 110, 補補11 010 移移移移補補10 001, 結(jié)結(jié)果上溢。果上溢。 移移移移補補00 101, 結(jié)果正確結(jié)果正確,為為3。舍入處理n無條件地丟掉正常尾數(shù)最低位之后的全部數(shù)值。這種辦法被稱為截斷處理,好處是處理簡單,缺點是影響結(jié)果的精度。n運算過程中保留右移中移出的若干高位的值,最后再按某種規(guī)則用這些位上的值修正尾數(shù)

39、。這種處理方法被稱為舍入處理。舍入處理續(xù))n當尾數(shù)用原碼表示時,舍入規(guī)則比較簡單。n只要尾數(shù)的最低位為1,或移出的幾位中有為1的數(shù)值位,就是最低位的值為1。n0舍1入法,即當丟失的最高位的值為1時,把這個1加到最低數(shù)值位上進行修正,否則舍去丟失的的各位的值。這樣處理時,舍入效果對正數(shù)負數(shù)相同,入將使數(shù)的絕對值變大,舍則使數(shù)的絕對值變小。n當尾數(shù)是用補碼表示時, 具體規(guī)則是:n當丟失的各位均為0時,不必舍入;n當丟失的最高位為0 時,以下各位不全為0 時,或者丟失的最高位為1,以下各位均為0時,則舍去丟失位上的值;n當丟失的最高位為1,以下各位不全為0 時,則執(zhí)行在尾數(shù)最低位入1的修正操作。舍入

40、處理續(xù))例例 設(shè)設(shè)1補補11.01100000, 2補補11.01100001, 3補補11.01101000, 4補補11.01111001, 求執(zhí)行只保留小數(shù)求執(zhí)行只保留小數(shù)點后點后4位有效數(shù)字的舍入操作值。位有效數(shù)字的舍入操作值。解解:執(zhí)行舍入操作后執(zhí)行舍入操作后,其結(jié)果值分別為其結(jié)果值分別為 1補補11.0110(不舍不入不舍不入)2補補11.0110(舍舍) 3補補11.0110(舍舍) 4補補11.1000(入入)浮點乘、除法運算舉例浮點乘、除法運算舉例例例 設(shè)有浮點數(shù)設(shè)有浮點數(shù)250.0110011,23(0.1110010),階碼用階碼用4位位移碼表示移碼表示,尾數(shù)尾數(shù)(含符號

41、位含符號位)用用8位補碼表示。求位補碼表示。求浮。要求用補碼完成尾數(shù)乘浮。要求用補碼完成尾數(shù)乘法運算法運算,運算結(jié)果尾數(shù)保留高運算結(jié)果尾數(shù)保留高8位位(含符號位含符號位),并用尾數(shù)低位字數(shù)值進行舍入操作。并用尾數(shù)低位字數(shù)值進行舍入操作。解解:移碼采用雙符號位移碼采用雙符號位,尾數(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 01100 110,值為移碼形式值為移碼形式2。(2) 尾數(shù)乘法運算可采用補碼陣列乘法器實現(xiàn)尾數(shù)乘法運算可采用補碼陣列乘法器實現(xiàn),即有即有M補補M補補0.0110011補補1.0001110補補 1.1010010,1001010補補(3) 規(guī)格化處理規(guī)格化處理乘積的尾數(shù)符號位與最高數(shù)值位符號相同乘積的尾數(shù)符號位與最高數(shù)值位符號相同,不是規(guī)格化的數(shù)不是規(guī)格化的數(shù),需要左規(guī)需要左規(guī),階碼變?yōu)殡A碼變?yōu)?0 101(-3), 尾數(shù)變?yōu)槲矓?shù)變?yōu)?1.0100101,0010100。(4) 舍入處理舍入處理尾數(shù)為負數(shù)尾

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論