計算機組成原理課件:Ch2 運算方法和運算器_第1頁
計算機組成原理課件:Ch2 運算方法和運算器_第2頁
計算機組成原理課件:Ch2 運算方法和運算器_第3頁
計算機組成原理課件:Ch2 運算方法和運算器_第4頁
計算機組成原理課件:Ch2 運算方法和運算器_第5頁
已閱讀5頁,還剩138頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2021-11-231第2章 運算方法和運算器 數(shù)據(jù)與文字的表示方法數(shù)據(jù)與文字的表示方法 定點加法、減法運算定點加法、減法運算 定點乘法運算定點乘法運算 定點除法運算定點除法運算 定點運算器的組成定點運算器的組成 浮點運算與浮點運算器浮點運算與浮點運算器2021-11-232計算機內(nèi)部信息計算機內(nèi)部信息信息信息控制信息控制信息數(shù)據(jù)信息數(shù)據(jù)信息數(shù)值型數(shù)據(jù)數(shù)值型數(shù)據(jù)非數(shù)值型數(shù)據(jù)非數(shù)值型數(shù)據(jù)定點數(shù)定點數(shù)浮點數(shù)浮點數(shù)數(shù)字串數(shù)字串字符與字符串字符與字符串漢字與漢字串漢字與漢字串2021-11-2332.1 數(shù)據(jù)與文字的表示方法n計算機中使用的數(shù)據(jù)可分成兩大類:u符號數(shù)據(jù): 非數(shù)字符號的表示(ASCII、

2、漢字、圖形等)u數(shù)值數(shù)據(jù):數(shù)字數(shù)據(jù)的表示方式(定點、浮點)n計算機數(shù)字和字符的表示方法應有利于數(shù)據(jù)的存儲、加工(處理)、傳送;n編碼:用少量、簡單的基本符號,選擇合適的規(guī)則表示盡量多的信息,同時利于信息處理(速度、方便)2021-11-2342.1 數(shù)據(jù)與文字的表示方法2.1.1 數(shù)據(jù)格式2.1.2 數(shù)的機器碼表示2.1.3 字符的表示2.1.4 漢字的表示2.1.5 校驗碼2021-11-235一、數(shù)位進制mkiiirDN*基數(shù):基數(shù):數(shù)制中所用到的代碼的個數(shù)數(shù)制中所用到的代碼的個數(shù) 權(quán):權(quán):不同數(shù)位的固定常數(shù)不同數(shù)位的固定常數(shù)十進制數(shù):十進制數(shù):1999 二進制:二進制:101191(10

3、0 ) 9100(102 )11(20 )1 232021-11-236數(shù)制間的轉(zhuǎn)換1.1. 十進制十進制 toto 二進制二進制 - - 小數(shù):乘小數(shù):乘2 2取整,順序排取整,順序排 - - 整數(shù):除整數(shù):除2 2取余,逆序排取余,逆序排 2. 2. 二進制二進制 toto 十進制十進制 按權(quán)相加法按權(quán)相加法 3.3. 二、十、八、十六進制互換二、十、八、十六進制互換2021-11-237技巧n數(shù)制轉(zhuǎn)換中,關(guān)鍵是二進制與十進制之間的互換n利用小數(shù)點分開整數(shù)部分及小數(shù)部分,小數(shù)點后的位值是2-1, 2-2, 2-3, n 152. 25 D =010011000.01 B =230.2 O

4、=98.4 H2021-11-238大數(shù)n記住幾個常用的2的冪2532 2664 27128 28256 29512 2101024(1Kilo) 21665536 2201Mega 2301Giga 2401Tera更大的單位是多少?2501 Peta 2601 Exa 2701 Zetta 2801 YottaMEMORIZE!2021-11-239二、數(shù)值數(shù)據(jù)n計算機中數(shù)據(jù)、文字的表示方式應考慮以下幾個因素:表示的數(shù)據(jù)類型(符號、小數(shù)點、數(shù)值)數(shù)值的范圍數(shù)值精度存儲、處理、傳送的硬件代價2021-11-2310數(shù)據(jù)表示格式n定點表示 (小數(shù)點位置固定)- 僅能表示純小數(shù)及純整數(shù)n定點小數(shù)

5、n定點整數(shù)n浮點表示(小數(shù)點位置不固定)2021-11-2311三、定點表示法n所有數(shù)據(jù)的小數(shù)點位置固定不變n理論上位置可以任意,但實際上將數(shù)據(jù)表示有兩種方法n純小數(shù)n純整數(shù)n定點數(shù)表示:n帶符號數(shù)n不帶符號數(shù)2021-11-2312 xn xn-1 xn-2 xn-3 x1 x0表示范圍: 0| 12n符號量值小數(shù)點固定于符號位之后,不需專門存放位置定點純小數(shù)2021-11-2313 xn xn-1 xn-2 xn-3 x1 x0表示范圍: 0| 2n1符號定點純整數(shù)量值小數(shù)點固定于最后一位之后,不需專門存放位置2021-11-2314定點表示法的特點n定點數(shù)表示數(shù)的范圍受字長限制,表示數(shù)的

6、范圍有限n超出表示范圍溢出 上溢:大于最大值溢出 下溢:小于最小值機器0(其值趨于零)n定點表示的精度有限n機器中,常用定點純整數(shù)表示2021-11-2315通常數(shù)據(jù)既包括整數(shù)也包括小數(shù)部分。如何表示?如何運算? ?2021-11-2316四、浮點表示法n小數(shù)點位置隨階碼不同而浮動n浮點數(shù)的引入n電子的質(zhì)量 910-28g=0.910-27gn太陽的質(zhì)量 21033g0.21034g科學記數(shù)法 N=10E.M將比例因子以適當形式表示在數(shù)據(jù)中即可表示浮點數(shù)2021-11-23171、格式n任意進制數(shù) N=Re.MnM為尾數(shù),用定點小數(shù)形式表示 ne是比例因子的階數(shù),稱為浮點數(shù)的指數(shù),是一個整數(shù)n

7、R為基數(shù)Mn-1Mn-2M0尾數(shù) 階碼階符數(shù)符2021-11-2318S(1bit)E(2330共8bit)M(022共23bit)規(guī)定了浮點數(shù)的表示格式,運算規(guī)則等n規(guī)定了單精度(32)和雙精度(64)的基本格式n尾數(shù)用原碼,指數(shù)用移碼(便于對階和比較)S(1bit)E(5262共11bit)M(051共52bit)2、浮點數(shù)標準 IEEE754v 基數(shù):基數(shù):R=2R=2,基數(shù)固定,采用隱含方式來表示,基數(shù)固定,采用隱含方式來表示v S S:最高位符號位,:最高位符號位,“0”0”表示正數(shù),表示正數(shù),“1”1”表示負表示負數(shù)。數(shù)。v M M:尾數(shù),低位部分,用定點小數(shù)形式表示:尾數(shù),低位部

8、分,用定點小數(shù)形式表示v E E:階碼,為整數(shù),用移碼表示:階碼,為整數(shù),用移碼表示2021-11-2319n 為保證數(shù)據(jù)表示的唯一性及表示最多的有效數(shù)據(jù)位,IEEE754標準規(guī)定:n尾數(shù)域最左位(最高有效位)總是1(經(jīng)常不予存儲,而認為隱藏在小數(shù)點的左邊)n將浮點數(shù)的指數(shù)真值e加上一個固定的偏移值變成階碼En規(guī)格化的64位浮點數(shù)x的真值表示為: x=(-1)S(1.M)2E-1023,e=E-1023n規(guī)格化的32位浮點數(shù)x的真值表示為 x=(-1)S(1.M)2E-127, e=E-127浮點數(shù)標準 IEEE7542021-11-2320浮點數(shù)與定點數(shù)的比較浮點數(shù)與定點數(shù)的比較(1) 浮點

9、表示的數(shù)值范圍比定點大. 機器字長一定時,階碼越長,表示范圍越大,精度越低.舉例:8位機(含符號位) 階碼 尾數(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ù)兩部分,步驟復雜,速度較慢.(3)浮點數(shù)判溢出比定點容易,只要判斷規(guī)格化尾數(shù)的階碼,而定點數(shù)要判數(shù)值本身.(4)高檔微機同時用定、浮點,而單片機中多采用定點.2021-11-2321例 若浮點數(shù)x的754標準存儲格式為(41360000)16,求其浮點數(shù)

10、的十進制數(shù)值。解:將16進制數(shù)展開后,可得二制數(shù)格式為 0 100 00010011 0110 0000 0000 0000 0000 S 階碼(8位) 尾數(shù)(23位)指數(shù)e=階碼-127=10000010-01111111=00000011=(3)10包括隱藏位1的尾數(shù)1.M=1.011 0110 0000 0000 0000 0000=1.011011x=(-1)S1.M2e=+(1.011011)23=+1011.011=(11.375)102021-11-2322例 將數(shù)(20.59375)10轉(zhuǎn)換成754標準的32位浮點數(shù)的二進制存儲格式。解:首先分別將整數(shù)和小數(shù)部分轉(zhuǎn)換成二進制數(shù):

11、20.59375=10100.10011 然后移動小數(shù)點,使其在第1,2位之間 10100.10011=1.01001001124 e=4于是得到: S=0, E=4+127=131, M=010010011 最后得到32位浮點數(shù)的二進制存儲格式為: 0 10000011 01001001100000000000000=(41A4C000)162021-11-23233、十進制數(shù)表示n 二-十進制碼(BCD-Binary Coded Decmal)又稱二進制編碼的十進制.用于二-十進制轉(zhuǎn)換.(1)定義:用4位二進制碼表示一位十進制碼.最簡單的是8-4-2-1碼.也叫壓縮(或組合)的BCD碼.n

12、8,4,2,1為每位的權(quán)(weight)例 3579D= ? BCD碼 3 5 7 9 0011010101111001BCD0011 0101 0111 1001 (2)BCD碼的運算規(guī)則: 8-4-2-1的BCD碼只用015中的前10種狀態(tài)09,后6種是非法碼.所以,當和超過9時,要作+6修正操作.例:4+9=13 0100 +1001二進制的13 1101 +6修正 +0110BCD碼的13 100112021-11-2324十進制數(shù)串的表示n字符串形式:n一個字節(jié)存放一個十進制數(shù)(非壓縮(非組合)BCD碼:用8位二進制碼表示1位十進制碼.高4位無意義.): 例: 89D 0000100

13、0 00001001BCD,占2個字節(jié)n壓縮的十進制數(shù)串形式:n一個字節(jié)存放兩個十進制數(shù)(壓縮(組合)BCD碼:用8位二進制碼表示2位十進制碼) 例: 89D 1000 1001BCD,只占1個字節(jié)n編碼方式n有權(quán)碼:每一位有確定位權(quán)(8421、2421、5211碼)n無權(quán)碼:每一位無確定位權(quán)(余三碼、格雷碼)2021-11-23252.1 數(shù)據(jù)與文字的表示方法2.1.1 數(shù)據(jù)格式2.1.2 數(shù)的機器碼表示2.1.3 字符的表示2.1.4 漢字的表示2.1.5 校驗碼2021-11-23262.1.2 數(shù)的機器碼表示n數(shù)在計算機中的表示形式統(tǒng)稱為機器數(shù)或機器碼n機器數(shù)有兩個基本特點:n 符號的

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

15、號位(0,1)表示正負,給運算帶來的問題n 正,正相加:符號位0+0=0,仍為正,不影響結(jié)果.n 正,負相加:0+1=1,不一定對,要看哪個絕對值大,和的符號位由大數(shù)定.n 負,負相加:1+1=10,和的符號與實際值不符.(3)結(jié)論:用上述方法表示符號數(shù),負數(shù)的符號位不能與數(shù)值部分一起參加運算,為解決機器內(nèi)負數(shù)的符號位參與運算的問題,要引入補碼與反碼.當字長為當字長為4位時位時2021-11-23281、原碼表示法n定點小數(shù) x 1x0 0,正x原= 符號 1-x 0 x -1 1,負n有正0和負0之分n范圍2-n-11- 2-n2021-11-23291、原碼表示法n定點整數(shù) x 2nx0

16、0,正數(shù)x原= 符號 2n-x 0 x -2n 1,負數(shù)說明:n其中x為真值,n為整數(shù)位數(shù)n有正0和負0之分n范圍: 1 - 2n 2n 12021-11-2330原碼表示示例n+0原=0.0000n- 0原=1.0000n-0.1111原 = 1.1111n 0.1111原 = 0.1111n 1110原 = 01110n-1110原 = 111102021-11-2331原碼特點n表示簡單,易于同真值之間進行轉(zhuǎn)換,實現(xiàn)乘除運算規(guī)則簡單。n進行加減運算十分麻煩。 原碼運算原碼運算 符號相異時必須作減法。符號相異時必須作減法。2021-11-23322、補碼表示法n定義:正數(shù)的補碼就是正數(shù)的本

17、身,負數(shù)的補碼是原負數(shù)加上模。n計算機運算受字長限制,屬于有模運算.2021-11-23332、補碼表示法n定點小數(shù) x 1x0 0,正數(shù)x補= 符號 2+x 0 x -1 1,負數(shù)n定點整數(shù) x 2nx0 0,正數(shù) x補= 符號 2n+1+x 0 x -2n 1,負數(shù)其中x為真值,n為整數(shù)位數(shù)2021-11-2334補碼特點n唯一的零n符號位可以直接參與運算n減法可以變成加法X補-Y補= X補+-Y補n負數(shù)比正數(shù)多一個n范圍-2n2n-1(定點整數(shù))2021-11-2335n已知x補=10001011,求x的真值.解:x原= x補補=10001011補 =11110101故:x的真值為-11

18、10101.即-117.n思考題:已知x補=01110101,求x的真值.2021-11-2336變形補碼n又稱雙符號補碼或模4補碼n例:例:00.1010110 11.01010012021-11-23373、反碼表示法n所謂反碼,就是二進制的各位數(shù)碼取反n符號位表示方法與原碼相同2021-11-23383、反碼表示法v定點小數(shù)定點小數(shù)v定點整數(shù)定點整數(shù)反碼表示有正反碼表示有正0和負和負0之分之分2021-11-2339反碼的表示n+0反=0.0000n-0反=1.1111n0.1111反=0.1111n-0.1111反=1.0000n1110反=01110n-1110反=100012021

19、-11-2340原、反、補碼表示舉例n求下列各數(shù)的原、反、補碼(設(shè)機器字長5位)x=+1101 x原=0,1101 x反=0,1101 x補=0,1101X=+0.1001 x原=0.1001 x反=0.1001 x補=0.1001X=-0.0101 x原=1.0101 x反=1.1010 x補=1.1011X=-1010 x原=1,1010 x反=1,0101 x補=1,0110大大小小 正數(shù)的原、反、補碼相同,只有負數(shù)才有變化正數(shù)的原、反、補碼相同,只有負數(shù)才有變化 數(shù)的原、反、補碼的大小的順序與其真值大小順序不同。數(shù)的原、反、補碼的大小的順序與其真值大小順序不同。數(shù)的比較太麻煩數(shù)的比較太

20、麻煩 移碼移碼 2021-11-23414. 移碼表示法n定義定義:x移移 = 2n+x -2n x 0, 符號為1 x0n X反反=X符符. Xn Xn-1. X1 , x 0n x補補x反反+1 x0 (即在反碼的最低位(即在反碼的最低位+1)注意:對補碼再次求補,即得到原碼!注意:對補碼再次求補,即得到原碼!n移碼與補碼的差別僅在于符號位不同符號位不變數(shù)值位變反2021-11-2344幾種機器編碼簡便方法對比符號位為1,逐位取反符號位為0,等于真值本身反碼符號位為0,數(shù)值位逐位取反,末位加1符號為1,數(shù)值位為真值本身移碼符號位為1,逐位取反,末位加1符號位為0,等于真值本身補碼符號位為1

21、,數(shù)值位為真值本身簡便編碼方法:加符號位符號位為0,等于真值本身原碼真值為負數(shù)真值為正數(shù)機器碼2021-11-2345定點小數(shù)機器碼表示范圍nn+1位定點數(shù),數(shù)據(jù)位n位n原碼,反碼表示區(qū)間一致n2-n-1, 1-2-n n (-1,1)n補碼n-1, 1-2-nn-1,1) 2+x2021-11-2346定點整數(shù)數(shù)機器碼表示范圍nn位定點整數(shù)n原碼,反碼表示區(qū)間一致n1-2n, 2n-1 n (-2n, 2n)n補碼,移碼n-2n, 2n-1n-2n, 2n) 2n +x2021-11-2347n=3原碼: 1-2n, 2n-1 0 0 -8 7 15 7 -7 15 7 7 0 0 反碼:

22、1-2n, 2n-1補碼: -2n, 2n-1 15 7 -8 0 0 移碼: -2n, 2n-12021-11-2348分析以8位定點整數(shù)為例:n最大值: x原 = x補 = 01111111 x移=11111111n最小值: x原 =11111111(即-127) x補 =10000000 (即-128) x移=00000000 (即-128)n零的表示: 0原 =0000000或 10000000n0補 =00000000 0移=100000002021-11-2349例以定點整數(shù)為例,用數(shù)軸形式說明原碼、反碼、補碼表示范圍和可能的數(shù)碼組合情況。 2021-11-2350例將十進制真值(

23、127,1,0,1,127)列表表示成二進制數(shù)及原碼、反碼、補碼、移碼值。2021-11-2351例設(shè)機器字長16位,定點表示,尾數(shù)15位,數(shù)符1位,問:(1)定點原碼整數(shù)表示時,最大正數(shù)是多少?最小負數(shù)是多少?(2)定點原碼小數(shù)表示時,最大正數(shù)是多少?最小負數(shù)是多少?(1)定點原碼整數(shù)表示最大正數(shù)值(2151)10(32767)10最小負數(shù)值(2151)10(32767)10(2)定點原碼小數(shù)表示 最大正數(shù)值(1215)10(0.111.11)2最小負數(shù)值(1215)10(0.111.11)2注:1符號,數(shù)字2021-11-23522.1 數(shù)據(jù)與文字的表示方法2.1.1 數(shù)據(jù)格式2.1.2

24、數(shù)的機器碼表示2.1.3 字符的表示2.1.4 漢字的表示2.1.5 校驗碼2021-11-23532.1.3 字符表示方法n符號數(shù)據(jù):字符信息用數(shù)據(jù)表示n字符表示方法ASCII:n用一個字節(jié)來表示,低7位用來編碼(128),最高位為校驗位,參見教材P24表2.1n字符串的存放方法2021-11-23542.1 數(shù)據(jù)與文字的表示方法2.1.1 數(shù)據(jù)格式2.1.2 數(shù)的機器碼表示2.1.3 字符的表示2.1.4 漢字的表示2.1.5 校驗碼2021-11-23552.1.4 漢字的表示方法n輸入碼: 將漢字轉(zhuǎn)換成計算機能接收的0,1組成的編碼n數(shù)字編碼:國標區(qū)位碼n拼音碼n字形編碼:如五筆n漢字

25、內(nèi)碼: 漢字在計算機內(nèi)部存儲、運算等操作的機內(nèi)代碼n兩個字節(jié)組成,每個字節(jié)高位都為1(區(qū)別于英文字符)n漢字字模碼: 用點陣表示的漢字字形代碼,是漢字的輸出形式2021-11-23562.1 數(shù)據(jù)與文字的表示方法2.1.1 數(shù)據(jù)格式2.1.2 數(shù)的機器碼表示2.1.3 字符的表示2.1.4 漢字的表示2.1.5 校驗碼2021-11-23572.1.5 校驗碼n引入:信息傳輸和處理過程中受到干擾和故障,容易出錯。n解決方法:是在有效信息中加入一些冗余信息(校驗位)n奇偶校驗碼(可檢測奇數(shù)個錯誤,無法識別錯誤信息的位置)n海明碼(能糾正一位錯誤)n循環(huán)冗余碼 (CRC, 檢錯碼)2021-11-

26、2358奇偶校驗n奇偶校驗碼用于并行數(shù)據(jù)傳送中n原理:在 k 位數(shù)據(jù)碼之外增加 1 位校驗位,使 k+1 位碼字中取值為 1 的位數(shù)總保持為偶數(shù)(偶校驗)或奇數(shù)(奇校驗)n定義:設(shè)(01n1)是一個n位字,則奇校驗位定義為:C01n1,式中代表按位加,表明只有當中包含有奇數(shù)個1時,才使C1,即C0。同理可以定義偶校驗。 n只能檢查出奇數(shù)位錯;無法識別錯誤信息的位置;不能糾正錯誤。2021-11-2359例例10已知下表中左面一欄有5個字節(jié)的數(shù)據(jù)。請分別用奇校驗和偶校驗進行編碼,填在中間一欄和右面一欄。 2021-11-2360解解: 假定最低一位為校驗位,其余高8位為數(shù)據(jù)位,校驗位的值取0還是

27、取1, 是由數(shù)據(jù)位中1的個數(shù)決定的。2021-11-2361海明碼2021-11-2362循環(huán)冗余碼(CRC)2021-11-23632.2 定點數(shù)加減法運算n加法n減法n溢出n電路實現(xiàn)2021-11-2364加法實現(xiàn)n原碼加法實現(xiàn)n如果符號位相同,兩數(shù)絕對值相加,符號位不變n如果符號位不同,兩數(shù)絕對值相減,符號位與絕對值大的數(shù)相同n補碼加法實現(xiàn)n符號位與數(shù)值位一起參加運算,若符號位相加有進位,則舍去nX補+Y補=X+Y補2021-11-2365減法實現(xiàn)n原碼減法實現(xiàn)n首先將減數(shù)符號取反,然后按原碼加法進行運算n補碼減法實現(xiàn)n對減數(shù)求補,然后按補碼加法進行運算nX-Y補=X補-Y補 =X補+

28、-Y補n已知Y補,求-Y補方法:對Y補包括符號位“求反且最末位加1”2021-11-2366溢出n溢出的發(fā)生n下溢:運算結(jié)果小于機器所能表示的最小負數(shù)n上溢:運算結(jié)果大于機器所能表示的最大正數(shù)2021-11-2367溢出判別條件n單符號位表示法(補碼)n最高有效位有進位而符號位無進位,產(chǎn)生上溢n最高有效位無進位而符號位有進位,產(chǎn)生下溢n其它情況,無溢出nV=CfC0n雙符號位表示法(變形補碼)n兩位符號位相同,無溢出n兩位符號位相異,有溢出nV=Sf1Sf22021-11-2368溢出判別條件(續(xù))例例 0.1011, 0.1001,求。解解:補0.1011 補0.1001補 0.1011 補

29、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-2369溢出判別條件(續(xù))n采用變形補碼后,如果兩個數(shù)相加后,其結(jié)果的符號位出現(xiàn)采用變形補碼后,如果兩個數(shù)相加后,其結(jié)果的符號位出現(xiàn)“01”或或“10”兩種組合時兩種組合時,表示發(fā)生溢出。表示發(fā)生溢出。例例 0.1100, 0.1000,求求。解解: 補補00.1100,補補00.1000 補補00.1100補補00.1000 01.0

30、100兩個符號位出現(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-2370定點數(shù)加減法運算的實現(xiàn)n一位加法器n二進制加法器n二進制減法器n十進制加法器2021-11-2371一位全加器SiAi Bi CiCi1AiBiBiCiCiAi AiBiCi(Bi Ai)表表2.2 一位全加器真值表一位全加器真值表輸入輸出AiBiCiSiCi

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

32、021-11-2376原碼串行乘法實現(xiàn)n參與運算數(shù):被乘數(shù)、乘數(shù)、部分積、計數(shù)器n初始化操作:部分積為零、計數(shù)器為乘數(shù)位數(shù)n判別乘數(shù)作加法n判別乘數(shù)最低位 為,部分積加被乘數(shù)送部分積 為,不操作n計數(shù)及移位n計數(shù)器減,部分積及乘數(shù)右移一位n判計數(shù)器是否為: 為,操作結(jié)束 不為,繼續(xù)判別乘數(shù)作加法n符號位單獨處理,同號為正,異號為負。2021-11-2377原碼串行乘法實現(xiàn)(實例)已知X=0.1101, Y=-0.1011,求X*Y.解:|x|=00.1101 B |y|=.1011 C 0 A2021-11-2378直接補碼乘法(Booth)實現(xiàn)n參加運算的數(shù)用補碼表示;n符號位參加運算;n乘

33、數(shù)最低位后面增加一位附加位Yn+1,其初值為0;n由于每求一次部分積要右移一位,所以乘數(shù)的最低兩位Yn, Yn+1的值決定了每次應執(zhí)行的操作;判斷位Yn, Yn+1 操作n 00 原部分積+0,右移一位n 01 原部分積+x補,右移一位n 10 原部分積+-x補,右移一位n 11 原部分積+0,右移一位n移位按補碼右移規(guī)則進行。n共需做n+1次累加,n次移位,第n+1次不移位2021-11-2379直接補碼乘法實現(xiàn)(實例)例:已知X=-0.1101 , Y=0.1011,求X*Y X補=11.0011 B Y補=0.1011 C 0 A -X補=00.11012021-11-2380并行乘法實

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

35、。n加減交替法:先做減法,余數(shù)為正說明夠減,商上1余數(shù)左移一位,下一次為減法運算;余數(shù)為負說明不夠減,商上0余數(shù)左移一位,下一次為加法運算。2021-11-2385恢復余數(shù)法n會使得除法運算的實際操作次數(shù)不固定,從而導致控制電路比較復雜;n在恢復余數(shù)時,要多做一次加法,降低了除法的執(zhí)行速度。2021-11-2386原碼恢復余數(shù)法除法(例)例:已知X=-0.10101,Y=0.11110,求X/Y。|X|=00.10101|Y|=00.11110-|Y|變補=11.000102021-11-2387原碼加減交替法除法(例)例:已知X=-0.10101,Y=0.11110,求X/Y。|X|=00.

36、10101|Y|=00.11110-|Y|變補=11.000102021-11-2388補碼除法運算n被除數(shù)和除數(shù)都用補碼表示,符號位參與運算,商和余數(shù)也用補碼表示。運算過程中應考慮:1.夠減的判斷 參加運算的兩個數(shù)符號任意。為了判斷是否夠減,當兩數(shù)同號時,實際應做減法;兩數(shù)異號時,實際應做加法。 當被除數(shù)(或部分余數(shù))與除數(shù)同號,如果得到的新部分余數(shù)與除數(shù)同號,表示夠減;否則為不夠減。 當被除數(shù)(或部分余數(shù))與除數(shù)異號,如果得到的新部分余數(shù)與除數(shù)異號,表示夠減;否則為不夠減。2021-11-2389補碼除法運算(續(xù))2. 上商規(guī)則 部分余數(shù)ri補和除數(shù)Y補同號,商上“1”,反之,商上“0”。

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

38、、Pn輸出:Si、Ci+1、Bi、Pn功能:在P的控制下執(zhí)行加、減法nP0:ABnP1:AB2021-11-2393n邏輯函數(shù)Si= Ai(BiP)CiCi+1=(Ai+Ci)(BiP)+AiCin電路實現(xiàn)CAS電路2021-11-2394陣列除法器n電路實現(xiàn)(有N位小數(shù)的除法器)n復雜性估算n器件:(N1)2個CAS器件n時間:O(N1)2 T不恢復余數(shù)陣列除法器邏輯結(jié)構(gòu)圖2021-11-2395n運算器的功能n算術(shù)運算n邏輯運算n運算器的組成n算術(shù)/邏輯運算單元n數(shù)據(jù)緩沖寄存器n通用寄存器n多路轉(zhuǎn)換器n內(nèi)部總線2.5定點運算器的組成2021-11-2396邏輯運算n邏輯數(shù):不帶符號位的二進

39、制數(shù)n特點:無權(quán)逐位運算n常用運算:非、或(加)、與(乘)、異或n意義:邏輯判斷2021-11-2397ALU電路nALU:多功能算術(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-2398總線概念n總線分類n內(nèi)部總線與外部總線(根據(jù)總線所處的位置)n單向總線與雙向總線(按總線的邏輯結(jié)構(gòu)分類)n總線驅(qū)動電路2021-11-2399定點運算器的基本結(jié)構(gòu)n單總線運算器(電路簡單)n雙總線運算器(數(shù)據(jù)傳送靈活)n三

40、總線運算器(操作速度快)2021-11-23100單總線運算器2021-11-23101雙總線運算器2021-11-23102三總線運算器2021-11-23103n浮點數(shù)表示n加減法操作步驟n乘除法操作步驟n流水線技術(shù)2.6 浮點數(shù)運算2021-11-23104n浮點數(shù)的格式組成n尾數(shù):用定點小數(shù)表示,通常是原碼或補碼n階碼:用定點整數(shù)表示,通常是移碼或補碼n作用:n尾數(shù)給出有效位數(shù),決定浮點數(shù)的表示精度n階碼給出小數(shù)點位置,決定浮點數(shù)的表示范圍浮點數(shù)表示2021-11-23105n浮點數(shù)的最大數(shù)n浮點數(shù)的最小數(shù)n浮點數(shù)最大或最小絕對值n浮點數(shù)的溢出n尾數(shù)溢出n階碼溢出浮點數(shù)的表示范圍202

41、1-11-23106浮點數(shù)中階碼與尾數(shù)的關(guān)系n尾數(shù)小數(shù)點左移一位,階碼加一n尾數(shù)小數(shù)點右移一位,階碼減一n機器零n當尾數(shù)為0,不論階碼為何值n當階碼的值比規(guī)定能表示的值還小,不論尾數(shù)為何值2021-11-23107浮點數(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-23108尾數(shù)處理n截斷處理n無條件地丟掉正常尾數(shù)最低位之后的全部數(shù)值n優(yōu)點:處理簡單;缺點:影響結(jié)果精度n舍入處理n運算過程中保留右移中移出的若干高

42、位值,再按某種規(guī)則根據(jù)這些位修正尾數(shù)n1位舍入處理和多位舍入處理2021-11-231091位舍入處理n0舍1入法:如果右移時被丟掉數(shù)位的最高位為0則舍去,反之則將尾數(shù)的末位加一n恒置1法:只要有尾數(shù)位被移掉,則在尾數(shù)的末位置一2021-11-23110多位舍入處理n對原碼處理n方法一:只要尾數(shù)最低位為1,或移出的若干位中有1,就使尾數(shù)最低位為1n方法二:移出位最高位為1,在尾數(shù)最低位上加1修正n對補碼處理n當丟失位均為0時,不必舍入n當丟失的最高位為0其它各位不全為0,或最高位為1以下均為0,則舍去丟失位上的值n當丟失的最高位為1,以下各位不全為0時,則執(zhí)行在尾數(shù)最低位入1修正2021-11

43、-23111關(guān)于尾數(shù)移位的操作的討論1尾數(shù)右移n低位移出n按舍入的規(guī)則操作n高位移入n原碼:最高位(符號位)不變,0移入次高位(非符號位最高位)n補碼:按最高位(符號位)的值移入該位2021-11-23112尾數(shù)左移n低位移入n0移入n高位移出n原碼:最高位(符號位)不動,次高位(非符號位最高位)移出n補碼:最高位移出關(guān)于尾數(shù)移位的操作的討論22021-11-23113浮點數(shù)加減法兩個浮點數(shù):x=2ExMxy= 2EyMy兩數(shù)相加減運算規(guī)則(Ex Ey)xy = (Mx 2Ex - Ey My) 2Ey2021-11-23114浮點數(shù)加減法操作步驟n0操作數(shù)檢查n對階n尾數(shù)相加減n結(jié)果規(guī)格化n

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

45、法2021-11-23119溢出處理n浮點數(shù)的溢出是以階碼溢出表現(xiàn)的n尾數(shù)溢出,則對階碼作相應處理n溢出種類:n階碼上溢:超過階碼能表達的最大正指數(shù)值n階碼下溢:超過階碼能表達的最小負指數(shù)值n尾數(shù)上溢:同號尾數(shù)相加最高位產(chǎn)生進位,將尾數(shù)右移,階碼增1來重新對齊。n尾數(shù)下溢:尾數(shù)右移時最低有效位的移出,要進行舍入處理。2021-11-23120浮點加減運算的操作流程2021-11-23121浮點數(shù)加減法舉例設(shè):x=20100.11011011 y=2100(-0.10101100)求:x+y=?規(guī)定:n階碼三位雙符號位,補碼表示n尾數(shù)八位雙符號位,補碼表示2021-11-23122 浮00 01

46、0,00.11011011浮00 100,11.01010100 求階差并對階EEEE補E補00 01011 10011 110 (-2) 浮00 100,00.00110110(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ù)值位同值,應執(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,不

47、溢出,故得最終結(jié)果為2011(0.11101010)2021-11-23123浮點數(shù)的乘除法運算n乘法運算:兩數(shù)尾數(shù)相乘,兩數(shù)階碼相加n除法運算:兩數(shù)尾數(shù)相除,兩數(shù)階碼相減2021-11-23124浮點數(shù)的乘法兩個浮點數(shù):x=2ExMxy= 2EyMy兩數(shù)相乘運算規(guī)則xy = 2Ex + Ey (Mx My)2021-11-23125浮點數(shù)的除法兩個浮點數(shù):x=2ExMxy= 2EyMy兩數(shù)相除運算規(guī)則xy = 2Ex - Ey (Mx My)2021-11-23126浮點數(shù)乘除法操作步驟n0操作數(shù)檢查n階碼加減運算n尾數(shù)乘除運算n結(jié)果規(guī)格化n舍入處理2021-11-23127階碼加減運算移移

48、2n2n2n移移移移2n2n 2n(2n() 2n移移 即直接用移碼實現(xiàn)求階碼之和時即直接用移碼實現(xiàn)求階碼之和時,結(jié)果的最高位多加了個結(jié)果的最高位多加了個1,要得要得到正確的移碼形式結(jié)果到正確的移碼形式結(jié)果,必須對結(jié)果的符號再執(zhí)行一次求反。必須對結(jié)果的符號再執(zhí)行一次求反。 當混合使用移碼和補碼時當混合使用移碼和補碼時,考慮到移碼和補碼的關(guān)系:對同一個數(shù)考慮到移碼和補碼的關(guān)系:對同一個數(shù)值值,其數(shù)值位完全相同其數(shù)值位完全相同,而符號位正好完全相反。而而符號位正好完全相反。而補補的定義為的定義為 補補2n1 則求階碼和用如下方式完成:則求階碼和用如下方式完成: 移移補補2n2n1 2n1(2n()

49、即即 移移移移補補(mod 2n1) 同理同理 移移移移補補 上二式表明執(zhí)行階碼加減時上二式表明執(zhí)行階碼加減時,對加數(shù)或減數(shù)對加數(shù)或減數(shù) 來說來說,應送移碼符號位正應送移碼符號位正常值的反碼。常值的反碼。2021-11-23128階碼加減運算(續(xù))n使用雙符號位的階碼加法器,并規(guī)定移碼的第一個符號位,即最高符號位恒用 0 參加加減運算,則溢出條件是結(jié)果的最高符號位溢出條件是結(jié)果的最高符號位為為1。此時,當?shù)臀环栁粸?0時,表明結(jié)果上溢,為1時,表明結(jié)果下溢。n當最高符號位為0時,表明沒有溢出;低位符號位為 1,表明結(jié)果為正;為 0 時,表明結(jié)果為負。2021-11-23129階碼加減運算例例

50、 011,110,求移 和 移,并判斷是否溢出。解解:移01 011, 補00 110, 補11 010 移移補10 001, 結(jié)果上溢。 移移補00 101, 結(jié)果正確,為3。2021-11-23130舍入處理n無條件地丟掉正常尾數(shù)最低位之后的全部數(shù)值。這種辦法被稱為截斷處理,好處是處理簡單,缺點是影響結(jié)果的精度。n運算過程中保留右移中移出的若干高位的值,最后再按某種規(guī)則用這些位上的值修正尾數(shù)。這種處理方法被稱為舍入處理。2021-11-23131舍入處理(續(xù))n當尾數(shù)用原碼表示時,舍入規(guī)則比較簡單。n只要尾數(shù)的最低位為1,或移出的幾位中有為1的數(shù)值位,就是最低位的值為1。n0舍1入法,即當

51、丟失的最高位的值為1時,把這個1加到最低數(shù)值位上進行修正,否則舍去丟失的的各位的值。這樣處理時,舍入效果對正數(shù)負數(shù)相同,入將使數(shù)的絕對值變大,舍則使數(shù)的絕對值變小。n當尾數(shù)是用補碼表示時, 具體規(guī)則是:n當丟失的各位均為0時,不必舍入;n當丟失的最高位為0 時,以下各位不全為0 時,或者丟失的最高位為1,以下各位均為0時,則舍去丟失位上的值;n當丟失的最高位為1,以下各位不全為0 時,則執(zhí)行在尾數(shù)最低位入1的修正操作。2021-11-23132舍入處理(續(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補1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論