計算機組成原理 第二章運算方法與運算器_第1頁
計算機組成原理 第二章運算方法與運算器_第2頁
計算機組成原理 第二章運算方法與運算器_第3頁
計算機組成原理 第二章運算方法與運算器_第4頁
計算機組成原理 第二章運算方法與運算器_第5頁
已閱讀5頁,還剩127頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第二章 運算方法和運算器計算機組成原理本章首先講述計算機中數(shù)據(jù)與文字的表示方法然后講述定點運算方法、定點運算器的組成,最后講述浮點運算方法、浮點運算器的組成。重點掌握和了解 二進數(shù)的表示和數(shù)的范圍IEEE754 標(biāo)準(zhǔn)定點數(shù)的加減乘除法運算規(guī)格化浮點數(shù)的四則運算陣列乘除法器本 章 主 要 內(nèi) 容2.1 數(shù)據(jù)與文字的表示方法2.1 數(shù)據(jù)與文字的表示方法2.1 數(shù)據(jù)與文字的表示方法數(shù)據(jù)信息控制信息非數(shù)值型數(shù)據(jù)指令信息等 一、數(shù)值型數(shù)據(jù)的表示方法 數(shù)值型數(shù)據(jù)的三個要素: 符號,數(shù)碼,小數(shù)點數(shù)值型數(shù)據(jù)2.1 數(shù)據(jù)與文字的表示方法(一) 符號的表示方法 -符號數(shù)碼化:0-正數(shù);1-負(fù)數(shù) -放在最前面 -機

2、器數(shù):符號數(shù)碼化的數(shù) -無符號化,或用ASCII碼(二) 數(shù)碼部分的表示 由10個阿拉伯的數(shù)字構(gòu)成 1。編碼:BCD碼,ASCII碼2.1 數(shù)據(jù)與文字的表示方法1。編碼:BCD碼,ASCII碼 0000-0;0001-1;0010-2 0011-3;0100-4;0101-5 0110-6;0111-7;1000-8 1001-9 0011000 0-0 。 00111001-9轉(zhuǎn)換簡單,編碼效率低,運算器復(fù)雜2.1 數(shù)據(jù)與文字的表示方法2。采用二進制數(shù)表示*日常生活中,我們采用10進制數(shù) 十進制數(shù):10個符號,逢十進一,權(quán)10i*計算機中只有兩個符號可用-二進制數(shù)1)進位計數(shù)制 r進制數(shù):用

3、r個符號的組合表示數(shù)碼部分,并且每個位置上的權(quán)為ri,計數(shù)時逢r進位的計數(shù)制。2.1 數(shù)據(jù)與文字的表示方法r進制數(shù)的表示方法:(Pn-1Pn-2PiP2P1P0.P-1P-2.P-m)r = Pn-1rn-1+Pn-2rn-2+PiriP2r2+P1r1+P0 +P-1r-1+P-2r-2.P-mr-m2) 計算機中常用的進位基數(shù)制 可用數(shù)碼進位基數(shù)0K-10 9 A B CD E F0 1 2 34 5 6 7 0 109逢K進1逢16進1逢8進1逢2進1逢10進1K168210K進制十六進制八進制二進制十進制2.1 數(shù)據(jù)與文字的表示方法(1)二八,十六進制之間的轉(zhuǎn)換*23=8;24=16

4、-分組合并,擴展表示方法例:(100010001)B=421O=111H( 2)二、八、十六十。按權(quán)相加法:。逐次乘基/除基相加法3)不同進制數(shù)之間的相互轉(zhuǎn)換Pn-1rn-1+Pn-2rn-2+PiriP2r2+P1r1+P0 +P-1r-1+P-2r-2.P-mr-m=(Pn-1r1+Pn-2)r1+。) r1+P0 + (P-mr-1+P-m-1) r-1.P-2)r-1 +P-1)r-12.1 數(shù)據(jù)與文字的表示方法(3)十二、八、十六減權(quán)定位法 例 (326)10=(101000110)B。除基取余法(整數(shù)部分)/乘基取整法(小數(shù)部分) 例:(326.625) 10 =(?)B*采用二進

5、制數(shù)表示,可以直接使用人們習(xí)慣的計數(shù)和計算規(guī)則。2.1 數(shù)據(jù)與文字的表示方法(三) 小數(shù)點處理1。定點處理 1)無符號整數(shù): 省略符號位,適應(yīng)只有正整數(shù)的運算 2)帶符號定點整數(shù): 小數(shù)點默認(rèn)為在末尾,適應(yīng)只有整數(shù)的運算 3)帶符號定點小數(shù): 小數(shù)點默認(rèn)為在最前面,適應(yīng)只有小數(shù)的運算三、小數(shù)點處理2。浮點處理 -用一組0/1組合表示小數(shù)點的位置階碼。浮點數(shù)的定義 N=+/-REM;E:階碼;M:尾數(shù);R:基數(shù)(2)例:+111.1101=0.111110123 -111.1101=-0.111110123(四)數(shù)的機器碼表示無符號數(shù):正整數(shù)。帶符號數(shù):正數(shù)或負(fù)數(shù)。真值: 帶“+”、“”的數(shù)值本

6、身。例:+0.01、-1000機器數(shù)(機器碼):最高位為符號位,“0”表示“+”,“1”表示“”。原碼反碼補碼2.1 數(shù)據(jù)與文字的表示方法2.1 數(shù)據(jù)與文字的表示方法原碼定點整數(shù)X1= + 9 = + 1001B X1原=0000 1001.X2= 9 = 1001B X2原=1000 1001.定點小數(shù)X1= + 0.75 = + 0.11B X1原=0.1100000X2= 0.75 = 0.11B X2原=1.11000000的表示形式不唯一+ 0原= 00000000 0原= 10000000原碼加減法運算復(fù)雜。反碼定點整數(shù)X1= + 9 = + 1001B X1反=0000 1001

7、.X2= 9 = 1001B X2反=1111 0110.定點小數(shù)X1= + 0.75 = + 0.11B X1反=0.1100000X2= 0.75 = 0.11B X2反=1.00111110的表示形式不唯一+ 0反= 00000000 0反= 111111112.1 數(shù)據(jù)與文字的表示方法補碼的引入模和同余模:計量器的溢出容量,用M表示。當(dāng)運算結(jié)果超出計量范圍,溢出部分舍棄。字長為n+1位時定點整數(shù)的模為2n+1 。定點小數(shù)的模為2 。同余:兩整數(shù)A、B除以模M,所得的余數(shù)相同??捎涀鰽=B (mod M )當(dāng)模為12時 4和16同余,可寫作 4 = 16 (mod 12) -2和10同余

8、,可寫作 2 = 10 (mod 12)利用補碼可將減法運算轉(zhuǎn)換成為加法運算2.1 數(shù)據(jù)與文字的表示方法n+110000n+110.0004-2=4+10補碼定點整數(shù)X1= + 9 = + 1001B X1補=0000 1001.X2= 9 = 1001B X2補=1111 0111.定點小數(shù)X1= + 0.75 = + 0.11B X1補=0.1100000X2= 0.75 = 0.11B X2補=1.01000000的表示形式唯一+ 0補= 0補= 000000002.1 數(shù)據(jù)與文字的表示方法X真值+/- 變成 0/1數(shù)值位不變X原XS=0時,數(shù)值位不變XS=1時,數(shù)值位變反加1X補XS=

9、0時,數(shù)值位不變XS=1時,數(shù)值位變反X反2.1 數(shù)據(jù)與文字的表示方法三種不同機器數(shù)以及真值之間的轉(zhuǎn)換原碼與補碼的直接轉(zhuǎn)換法當(dāng)X為正數(shù)時,X補=X原=X;當(dāng)X為負(fù)數(shù)時,由原碼求補碼的簡便算法:符號位不變,最后面的1及其后各位保持不變,中間各位按位取反。例: X原= 1 . 111001 1000 X補= 1 . 000110 1000 2.1 數(shù)據(jù)與文字的表示方法不變不變?nèi)》慈N機器數(shù)的比較正數(shù)的原、反、補碼相等,負(fù)數(shù)的各自不同原碼的符號位是人為定義的,不能參與運算補碼的符號位是通過模運算得到的,是數(shù)值的一部分,可參與運算。原、反碼零的表示形式不唯一,補碼零的表示形式唯一。假設(shè)字長為8位,則:

10、+0原=00000000 -0原=10000000+0反=00000000 -0反=11111111+0補=-0補=000000002.1 數(shù)據(jù)與文字的表示方法機器碼的表數(shù)范圍不同原、反碼的表數(shù)范圍相對于零點對稱補碼的表數(shù)范圍,負(fù)方向比正方向?qū)捯宰珠L4位(含符號位)的純整數(shù)為例原碼、反碼表數(shù)范圍 補碼表數(shù)范圍(多表示一個負(fù)數(shù))0+1+2+3+4+5+6+7-1-2-3-4-5-6-7+0-07個正數(shù)7個負(fù)數(shù)0+1+2+3+4+5+6+7-1-2-3-4-5-6-7-87個正數(shù)8個負(fù)數(shù)-82.1 數(shù)據(jù)與文字的表示方法1000-81000-02.1 數(shù)據(jù)與文字的表示方法真值與三種機器數(shù)間的對照定點

11、數(shù)與浮點數(shù)定點數(shù)約定機器中所有數(shù)據(jù)的小數(shù)點位置是固定不變的。小數(shù)點隱含表示??杀硎境杉冃?shù)或純整數(shù)。定點數(shù)XX0 X1X2Xn表示形式2.1 數(shù)據(jù)與文字的表示方法定點數(shù)的表示范圍原碼定點數(shù) (字長n+1位)純小數(shù):(12-n )(1-2-n ) 例:字長為8位,則最小定點小數(shù): -127/128 最大定點小數(shù): 127/128純整數(shù):( 2n 1)(2n -1) 例:字長為8位,則最小定點整數(shù): -127 最大定點整數(shù): 1271.11111110.111111111111111.01111111.2.1 數(shù)據(jù)與文字的表示方法定點數(shù)的表示范圍補碼定點數(shù) (字長n+1位)純小數(shù):112-n 例:

12、字長為8位,則最小定點小數(shù): 1 最大定點小數(shù): 127/128純整數(shù):2n 2n1例:字長為8位,則最小定點整數(shù): 128最大定點整數(shù): 1271.00000000.111111110000000.01111111.2.1 數(shù)據(jù)與文字的表示方法階碼,常為純整數(shù)尾數(shù),常為純小數(shù)浮點數(shù)小數(shù)點的位置不固定,根據(jù)需要而浮動。任何一個數(shù)N的浮點表示形式為 N=M2E2.1 數(shù)據(jù)與文字的表示方法0+0+1-1+第n位K個0K個1n個0n個1K個1浮點數(shù)的表示范圍若階碼數(shù)值部分為K位,尾數(shù)數(shù)值部分為n位,均用補碼表示,則2.1 數(shù)據(jù)與文字的表示方法規(guī)格化的浮點數(shù)為了充分利用尾數(shù)的有效數(shù)位,規(guī)定尾數(shù)值應(yīng)在0

13、.51之間。補碼表示時,尾數(shù)的最高位應(yīng)與符號位不同當(dāng) 1/2 = M 1 時,應(yīng)有0.1 的形式當(dāng) 1 = M - 1/2 時,應(yīng)有1.0 的形式為什么是,而不是=?為什么是=?2.1 數(shù)據(jù)與文字的表示方法補碼的表示范圍比原碼寬,可以表示-1, -1補=1.0000000,是規(guī)格化的浮點數(shù)-1/2原=1.1000000-1/2補=1.1000000不是規(guī)格化的浮點數(shù)浮點數(shù)的典型值:階碼和尾數(shù)均用補碼表示浮點數(shù)代碼真值階碼尾數(shù)最大正數(shù)最小正數(shù)規(guī)格化的最小正數(shù)絕對值最大負(fù)數(shù)絕對值最小負(fù)數(shù)規(guī)格化的絕對值最小負(fù)數(shù)011100100 0111001000.11110.0001 0.10001.00001

14、.11111.01112.1 數(shù)據(jù)與文字的表示方法X1移=27+1101101 =10000000 + 1101101 =11101101X1補=01101101X2移=27+(-1101101) = 10000000 - 1101101 = 00010011 X2補= 10010011移碼:在真值X的基礎(chǔ)上加一個常數(shù),相當(dāng)于X在數(shù)軸上向正方向偏移了若干單位。X移碼=偏置值+X標(biāo)準(zhǔn)偏置值:字長n+1位時,偏置值為2n。例:字長8位,若偏置值為27,X1=+1101101,X2= -1101101,求移碼。2.1 數(shù)據(jù)與文字的表示方法P26真值X(十進制)真值X(二進制)X補X移-128-127

15、 -101127-10000000-1111111 -00000010000000000000111111111000000010000001 111111110000000000000001011111110000000000000001 011111111000000010000001111111112.1 數(shù)據(jù)與文字的表示方法移碼、補碼和真值之間的關(guān)系設(shè)字長8位,偏置值為標(biāo)準(zhǔn)偏置值27移碼的特點(字長8位,偏置值為27)移碼最高位為0表示負(fù)數(shù),最高位為1表示正數(shù)。移碼直觀反映真值的大小。全0時,所對應(yīng)的真值最小;全1時,所對應(yīng)的真值最大;有利于兩個浮點數(shù)進行階碼的大小比較0的移碼表示形式

16、唯一+0移=-0移=10000000移碼將真值映射到正數(shù)域,可視為無符號數(shù)同一真值的補碼和移碼只相差符號位。2.1 數(shù)據(jù)與文字的表示方法IEEE754標(biāo)準(zhǔn)的浮點數(shù):應(yīng)用于80X86微機182332位短浮點數(shù)數(shù)符階碼尾數(shù)64位長浮點數(shù)11152數(shù)符階碼尾數(shù)80位臨時浮點數(shù)數(shù)符階碼尾數(shù)1156432位短浮點數(shù)1.尾數(shù)隱含了最高位1(位權(quán)20),實際為24位,尾數(shù)采用原碼表示。2.階碼采用偏置值為127的移碼表示。2.1 數(shù)據(jù)與文字的表示方法P202.1 數(shù)據(jù)與文字的表示方法IEEE754標(biāo)準(zhǔn)基數(shù)R=2,基數(shù)固定,采用隱含方式來表示它。32位的浮點數(shù):S數(shù)的符號位,1位,在最高位,“0”表示正數(shù),“

17、1”表示負(fù)數(shù)。M是尾數(shù), 23位,在低位部分,采用純小數(shù)表示E是階碼,8位,采用移碼表示。移碼比較大小方便。規(guī)格化: 若不對浮點數(shù)的表示作出明確規(guī)定,同一個浮點數(shù)的表示就不是惟一的。尾數(shù)域最左位(最高有效位)總是1, 故這一位經(jīng)常不予存儲,而認(rèn)為隱藏在小數(shù)點的左邊。采用這種方式時,將浮點數(shù)的指數(shù)真值e變成階碼E時,應(yīng)將指數(shù)e加上一個固定的偏移值127(01111111),即E=e+127。2.1 數(shù)據(jù)與文字的表示方法64位的浮點數(shù)中符號位1位,階碼域11位,尾數(shù)域52位,指數(shù)偏移值是1023。因此規(guī)格化的64位浮點數(shù)x的真值為: x=(-1)S(1.M)2E-1023 e=E-1023一個規(guī)格

18、化的32位浮點數(shù)x的真值表示為 x=(-1)S(1.M)2E-127 e=E-1272.1 數(shù)據(jù)與文字的表示方法真值x為零表示:當(dāng)階碼E為全0且尾數(shù)M也為全0時的值,結(jié)合符號位S為0或1,有正零和負(fù)零之分。真值x為無窮大表示:當(dāng)階碼E為全1且尾數(shù)M為全0時,結(jié)合符號位S為0或1,也有+和-之分。這樣在32位浮點數(shù)表示中,要除去E用全0和全1(25510)表示零和無窮大的特殊情況,指數(shù)的偏移值不選128(10000000),而選127(01111111)。對于規(guī)格化浮點數(shù),E的范圍變?yōu)?到254,真正的指數(shù)值e則為-126到+127。因此32位浮點數(shù)表示的絕對值的范圍是10-381038(以10

19、的冪表示)。浮點數(shù)所表示的范圍遠比定點數(shù)大。一臺計算機中究竟采用定點表示還是浮點表示,要根據(jù)計算機的使用條件來確定。一般在高檔微機以上的計算機中同時采用定點、浮點表示,由使用者進行選擇。而單片機中多采用定點表示。2.1 數(shù)據(jù)與文字的表示方法浮點數(shù)表示范圍如下圖所示(2)計算出階碼真值e =移碼-偏置值127 e =1000 0010-111 1111=011=(3)10(3)寫出尾數(shù)(包括隱含的最高位1) 1.M=1.011011(4)寫出此數(shù)的浮點記數(shù)形式X =(-1)s 1.M 2e =+1.011011*23=1011.011(5)轉(zhuǎn)換成十進制數(shù),并加上符號位 11.375例1: 若短浮

20、點數(shù)x的754標(biāo)準(zhǔn)存儲格式為(41360000)16,求其浮點數(shù)的十進制數(shù)值。 (1)將十六進制數(shù)轉(zhuǎn)換成二進制數(shù),寫成短浮點數(shù)格式2.1 數(shù)據(jù)與文字的表示方法011 0110 0000 0000 0000 0000100 0001 00s階碼(8位)尾數(shù)(23位)0100 0001 1010 0100 1100 0000 0000 0000正數(shù)階碼的移碼(8位)隱含了最高數(shù)位1的尾數(shù)的原碼(23位)例2:將(20.59375)10轉(zhuǎn)換成短浮點數(shù)格式 (1)把十進制數(shù)轉(zhuǎn)換為二進制數(shù) (20.59375)10=(10100.10011)2 (2)寫成浮點記數(shù)形式,尾數(shù)保留最高位1,不計入。 101

21、00.10011=1.0100 10011*24 (3)計算出階碼的移碼 1111111+100=1000 0011 (4)以短浮點數(shù)格式存儲該數(shù) 41A4C000H2.1 數(shù)據(jù)與文字的表示方法二、非數(shù)值數(shù)據(jù)表示通常是指字符、字符串、圖形符號和漢字等各種數(shù)據(jù),它們通常不用來表示數(shù)值的大小,一般情況下不對它們進行算術(shù)運算。字符和字符串表示ASC (美國標(biāo)準(zhǔn)信息交換碼)7位基本ASC碼(國際通用)可表示128種字符8位擴充ASC碼(可重新定義)可表示256種字符ASC碼可分為: 顯示字符控制字符“0 ”為48 “A”為65return 、backspace鍵的編碼分別為13、82.1 數(shù)據(jù)與文字的

22、表示方法P272.1 數(shù)據(jù)與文字的表示方法256列256行1024個1024個1024行1024列統(tǒng)一代碼(Unicode) 能夠表示6800種語言中任意一種語言里使用的所有符號。UCS-2用16位數(shù)來表示可表示65536個符號UCS-4用32位數(shù)來表示每個16位數(shù)都來自于對UCS-2的進一步擴展可表示220個字符2.1 數(shù)據(jù)與文字的表示方法漢字編碼漢字是一種象形文字,無法直接用標(biāo)準(zhǔn)西文鍵盤輸入,必須經(jīng)過轉(zhuǎn)換間接輸入;漢字的字?jǐn)?shù)也較多,不能用單字節(jié)的ASC(256個字符)來表示目前采用兩個字節(jié)(可以表示64K字符)的漢字編碼方案。漢字的應(yīng)用范圍較廣(東南亞國家),但編碼字符集不相同,中國大陸常

23、用GB / GBK碼,臺灣BIG5。 2.1 數(shù)據(jù)與文字的表示方法外部(輸入)碼機內(nèi)碼字形(輸出)碼漢字信息其它系統(tǒng)或設(shè)備漢字信息鍵盤管理程序漢字處理程序交換碼(國標(biāo)碼)漢字處理過程2.1 數(shù)據(jù)與文字的表示方法外部碼也叫漢字輸入編碼,主要是從鍵盤(語音、手寫、光電)輸入計算機中的代表漢字的編碼。漢字輸入方案有數(shù)百種,基本上是直接利用西文標(biāo)準(zhǔn)鍵盤進行漢字輸入,每一種漢字輸入法都各自提供相應(yīng)的鍵盤碼與漢字機內(nèi)碼(碼表)。編碼方案可分四類:數(shù)碼(如電報碼,區(qū)位碼,國標(biāo)碼等)音碼(如全拼碼,簡拼碼,雙拼碼等)形碼(如五筆字型,大眾碼,倉吉碼等)音形碼(如自然碼,首尾碼等)2.1 數(shù)據(jù)與文字的表示方法交

24、換碼 用于計算機與其他系統(tǒng)或設(shè)備之間進行漢字代碼信息交換的標(biāo)準(zhǔn)漢字代碼目前最常使用的是國標(biāo)碼2000年的GB18030-2000每個漢字(圖形符號)用兩個字節(jié)表示,每個字節(jié)只用低7位,即最高位為0的二進制碼漢字分為兩級:一級為使用頻度高的常用漢字(3755)二級為次常用的漢字(3008)2.1 數(shù)據(jù)與文字的表示方法內(nèi)部碼 也稱漢字內(nèi)碼或機內(nèi)碼,是計算機對漢字進行存儲、運算、傳碼的實際代碼。 一般用兩個字節(jié)表示一個漢字內(nèi)碼,每個字節(jié)最高位為 1。 還有少數(shù)三字節(jié)、四字節(jié)等內(nèi)部碼。最多能表示128128 =16384個漢字和圖形符號 機內(nèi)碼目前雖未完全統(tǒng)一,但已趨于標(biāo)準(zhǔn)化。內(nèi)部碼與國標(biāo)碼的對應(yīng)關(guān)系

25、:內(nèi)碼=國標(biāo)碼+8080 國標(biāo)碼每個字節(jié)最高位為1 內(nèi)部碼。 例如:國標(biāo)碼 3B7A 00111011 01111010 機內(nèi)碼 BBFA 10111011 111110102.1 數(shù)據(jù)與文字的表示方法字形碼也稱為字模碼,用點陣表示的漢字字形代碼,是漢字的輸出形式。簡易型 1616提高型 2424、 3232等1616點陣,每個漢字占32字節(jié)。每行16點,每點0/1,16位,2個字節(jié)共16行162=32字節(jié)2.1 數(shù)據(jù)與文字的表示方法各種輸入碼交換碼(國標(biāo)碼)內(nèi)碼字形碼顯示漢字打印漢字2.1 數(shù)據(jù)與文字的表示方法漢字代碼交換流程奇偶校驗碼常用于存儲器讀、寫檢查或ASCII字符傳送過程中的檢查。

26、實現(xiàn)方法:由有效信息位和1位奇偶校驗位組成。奇校驗保證整個校驗碼中有奇數(shù)個1偶校驗保證整個校驗碼中有偶數(shù)個12.1 數(shù)據(jù)與文字的表示方法有效信息偶校驗碼奇校驗碼10101010101010100101010101010101000101010010101010000000000000000000000000000101111111011111111011111110111111111111111101111111112.1 數(shù)據(jù)與文字的表示方法簡單奇偶校驗僅實現(xiàn)橫向的奇、偶校驗??蓹z測出一位(或奇數(shù)位)錯誤,但不能確定出錯位置。例7:假定信息位8位,奇、偶校驗位在末尾。交叉奇偶校驗橫向:每一個

27、字節(jié)有一個奇、偶校驗位縱向:全部字節(jié)同一位也設(shè)置奇、偶校驗位可以發(fā)現(xiàn)兩位同時出錯的情況。例:縱、橫均約定為偶校驗2.1 數(shù)據(jù)與文字的表示方法有效信息橫向校驗第一字節(jié) 10101010 0第二字節(jié) 010101001第三字節(jié) 000000000第四字節(jié) 011111111第五字節(jié) 11111111 0縱向校驗 01111110 11補碼加減法運算公式 (討論純小數(shù),純整數(shù)類似)X+Y補=X補+Y補 (mod 2)X-Y補=X補+-Y補 (mod 2)可證,-Y補= -Y補 (mod 2)所以,X-Y補=X補-Y補 (mod 2)-Y補=Y補+2-n ( Y補連同符號位變反,末位加1)簡便方法:Y

28、補最右邊的1及其后各位保持不變,連同符號位在內(nèi)一起變反。例10:已知X1=-0.1110,X2=+0.1101, 求:X1補,-X1補,X2補,-X2補解: X1原=1.1110 X2原=0.1101 X1補=1.0010 X2補=0.1101 -X1補=0.1110 -X2補=1.0011 2.2 定點加減運算例9:x=+0.1011,y=-0.0101,利用補碼加法計算x+y=?解: x補=0.1011,y補=1.1011 x補=0.1011 + y補=1.1011 x+y補=10.0110 x+y=+0.01102.2 定點加減運算P32自動舍棄+0.6875-0.3125+0.375例

29、11:x=+0.1101,y=+0.0110,利用補碼減法計算x-y=?解:x補=0.1101,y補=0.0110, -y補=1.1010 x補 =0.1101 + -y補 =1.1010 x-y補=10.0111 x-y= 0.0111符號位參與運算,超出模的進位自動舍棄。自動舍棄后,結(jié)果正確嗎?如何判斷?2.2 定點加減運算P33自動舍棄+0.8125+0.375+0.4375補碼的溢出在選定了運算字長和數(shù)的表示方法之后,計算裝置所能表示的數(shù)的范圍是一定的,超過此范圍就稱為溢出。例: 運算字長 數(shù)的表示方法 定點整數(shù)的范圍 n= 8 原碼 -127+127 n= 8 反碼 -127+127

30、 n= 8 補碼 -128+1272.2 定點加減運算例12:X=0.1011,Y=0.1001,X+Y補=? X補 0.1011 +Y補 0.1001 X+Y補 1.0100 兩正數(shù)相加,結(jié)果為負(fù),上溢。溢出檢測方法方法一:常識判別法補碼加法運算時,僅在兩數(shù)同號時才可能產(chǎn)生溢出。 OVER= XsYsZs+XsYsZs=1兩正數(shù)相加,結(jié)果為負(fù),產(chǎn)生上溢;兩負(fù)數(shù)相加,結(jié)果為正,產(chǎn)生下溢。2.2 定點加減運算方法二:雙高位判別法(單符號位補碼)考察兩補碼相加時符號位產(chǎn)生的進位Cf和最高數(shù)值位產(chǎn)生的進位C0。 OVER=CfC0=1 例14:X=+0.1100,Y=+0.1000,X+Y補=? X

31、補 0 . 1 1 0 0 +Y補 0 . 1 0 0 0 X+Y補 1 . 0 1 0 0 Cf=0C0=1CfC0=1 有上溢出產(chǎn)生2.2 定點加減運算方法三:變形補碼法(雙符號位補碼)采用雙符號位補碼(模4補碼)00-正數(shù) 11-負(fù)數(shù) 01-上溢 10-下溢 例15:X=-0.1100,Y=-0.1000,利用變形補碼計算X+Y補 x變補 11 0100 + y變補 11 1000 x+y變補 10 1100 下溢 練習(xí):P69-6(1) X=0.11011,Y=-0.11111,用變形補碼計算X-Y,并指出結(jié)果是否溢出?2.2 定點加減運算基本的二進制加減法器 加法單元全加器:有三個輸

32、入端,是考慮低位向本位進位的加法器。FAAi BiCi-1CiSiSi=AiBi Ci-1Ci=AiBi + (Ai Bi)Ci-1本位進位傳送進位3T3TTTT6T5T全加器真值表AiBiCi-1SiCi0000111100110011010101010110100100010111本位進位傳送進位基本的二進制加減法器 加法器串行加法器:只有一位全加器的加法器,它每次只能進行一位二進制數(shù)運算,整個數(shù)據(jù)需要一位一位地串行送入全加器,分時進行運算。AiBi本位和CiQCCP D移位寄存器A移位寄存器B進位觸發(fā)器全加器CP基本的二進制加減法器 本位進位,記為Gi傳送進位,記為PiCi-1基本的二進

33、制加減法器 并行加法器:由多位全加器組成的加法器,各位全加器之間傳遞進位信號的線路組成進位鏈。根據(jù)進位鏈設(shè)置方法的不同,分為串行進位并行進位影響并行加法器速度的關(guān)鍵因素進位信號產(chǎn)生和傳遞的時間。進位信號的基本邏輯 Ci=AiBi+(AiBi) Ci-1FAAn BnCn-1CnSnFAA2 B2C2S2C0C1FAA1 B1S1Cn=Gn+PnCn-1 , ,C2=G2+P2C1, C1=G1+P1C0基本的二進制加減法器 串行進位:也稱為行波進位各全加器由進位信號線串接在一起每一位的進位直接依賴于前一級的進位。進位是串行的,結(jié)構(gòu)簡單速度慢。假設(shè)一級進位產(chǎn)生時間2T,n級串行進位加法器的總延遲

34、時間約為2nT。基本的二進制加減法器 串行進位加減法器邏輯結(jié)構(gòu)圖P35C1 = G1+P1C0C2 = G2+P2 (G1+P1C0 )= G2+P2G1+P2P1C0 C3 = G3+P3 (G2+P2 (G1+P1C0 ) = G3+P3G2+P3P2G1+P3P2P1C0 Cn = Gn+PnGn-1+(PnP1) C0 基本的二進制加減法器 并行進位:先行進位、超前進位根據(jù)最高位進位,預(yù)先推算出各高位的進位關(guān)系使串行進位變成并行進位,從而實現(xiàn)快速加法運算并行進位的邏輯表示十進制加法器對8421BCD碼直接進行加法運算在二進制加法器的基礎(chǔ)上,加上適當(dāng)?shù)摹靶U边壿媮韺崿F(xiàn)。n位行波進位BC

35、D碼加法器由n級BCD碼加法單元級聯(lián)而成。每一級完成4位BCD數(shù)的加法運算。基本的二進制加減法器 結(jié)果10,加6調(diào)整。 (10)10=(1010)2(1 0000)BCD+6P36一位BCD碼加法單元第一次近似求值時,完成4位二進數(shù)加法得到的暫時和大于10或向高位產(chǎn)生進位時,進行加6調(diào)整?;镜亩M制加減法器 計算機實現(xiàn)乘除法的方法純軟件不需要專門的硬件電路,無乘除運算指令,只能用子程序來實現(xiàn)乘除運算。低檔微機。硬件擴充串行乘法器在原有運算器的基礎(chǔ)上增加一些硬件設(shè)備,使乘除運算變換成累加和移位操作,設(shè)有專門的乘除指令。適合中、小、微型機。專用硬件并行乘法器設(shè)置專用的乘除法器,機器中設(shè)有相應(yīng)的乘

36、除指令,運算速度快,電路復(fù)雜。適合中、大型機。2.3 定點乘法運算補碼的移位運算補碼左移一位相當(dāng)于乘以2,低位補0。補碼右移一位相當(dāng)于除以2,高位補符號位 例:0.01左移 0.10,右移0.001 1.11左移 1.10,右移1.111+0.5+0.25+0.125-0.5-0.25-0.1252.3 定點乘法運算人工算法與機器算法的同異性人工算法:乘積P=|X|Y| 符號PS=XSYS 引例:X=0.1101,Y= 0.1011, 求X*Y。 0.1101 0.1011 1101 1101 0000 + 1101 0.10001111 因為PS=XSYS=00=0 所以XY= 0.1000

37、1111 為適合計算機運算需要改進:1.一次進行n個數(shù)相加一次進行2個數(shù)相加;2.小數(shù)點移動小數(shù)點固定;3.需要2n個加法器只設(shè)n個加法器;2.3 定點乘法運算串行乘法原碼一位乘設(shè)0.1101,0.1011求x*y部分積乘數(shù)部分積初始化為0. 0 0 0 00 1 0 1 1 部分積右移,前面補+X0. 1 1 0 1 乘數(shù)最低位為,加上被乘數(shù)-0 1 1 0 10 1 0 1 1 部分積右移,前面補0. 0 1 1 01 0 1 0 1 乘數(shù)最低位為,加上被乘數(shù)+X0 1 1 0 1-1 0 0 1 11 0 1 0 1 部分積右移,前面補0 1 0 0 11 1 0 1 0 乘數(shù)最低位為,

38、加上+00 0 0 0 0-0 1 0 0 11 1 0 1 0部分積右移,前面補0 0 1 0 01 1 1 0 1乘數(shù)最低位為,加上被乘數(shù)+X0 1 1 0 1- 1 0 0 0 11 1 1 0 1部分積右移,前面補0. 1 0 0 01 1 1 1 0運算四次結(jié)束,數(shù)值部分運算又稱為比較法、Booth法參加運算的數(shù)用補碼表示,符號位參加運算被乘數(shù)X與部分積取雙符號位 乘數(shù)Y取單符號位,末位增設(shè)附加位Yn+1,初值0 Yn與Yn+1構(gòu)成了各步運算的判斷位串行乘法補碼一位乘 Yn Yn+1 操作 原部分積1 原部分積X補,1 原部分積X補,1 原部分積1推導(dǎo)進行n+1步操作,但第n+1步不

39、移位按補碼右移規(guī)則移位補充BOOTH法的推導(dǎo)設(shè)Y補=Y0 .Y1Y2Yn,其中Y0是符號位,可以證明 XY補=X補0.Y1Y2Yn-X補Y0 Y0=0,正數(shù), XY補=X補0.Y1Y2Yn 不需校正 Y0=1,負(fù)數(shù), XY補=X補0.Y1Y2Yn-X補 校正XY補=X補0.Y1Y2Yn-X補Y0 =X補2-1Y1+2-2Y2+2-(n-1)Yn-1+2-nYn-X補Y0 =X補-Y0+2-1Y1+2-2Y2+2-(n-1)Yn-1+2-nYn又因為,2-1Y1 =Y1-2-1Y1 ,2-2Y2 =2-1Y2-2-2Y2 ,可得X補-Y0+Y1-2-1Y1+2-1Y2-2-2Y2+2-(n-2)

40、Yn-1-2-(n-1)Yn-1+2-(n-1) Yn-2-nYn=X補(Y1-Y0)+2-1 (Y2-Y1)+2-2 (Y3-Y2)+2-(n-1)(Yn-Yn-1)+2-n(0-Yn)=X補(Y1-Y0)+2-1 (Y2-Y1)+2-2 (Y3-Y2)+2-(n-1)(Yn-Yn-1)+2-n(0-Yn)設(shè)Yn+1=0=X補(Y1-Y0)+2-1 (Y2-Y1)+2-2 (Y3-Y2)+2-(n-1)(Yn-Yn-1)+2-n (Yn+1-Yn)=X補(Y1-Y0)+2-1(Y2-Y1)+ 2-1(Y3-Y2)+2-1 (Yn+1-Yn)=X補(Y1-Y0)+2-1(X補(Y2-Y1)+

41、2-1(X補(Y3-Y2)+2-1 (X補(Yn+1-Yn)=X補(Y1-Y0)+2-1(X補(Y2-Y1)+ 2-1(X補(Y3-Y2)+2-1 (X補(Yn+1-Yn +0)設(shè)P0補=0 P1補=2-1 (X補(Yn+1-Yn ) +P0補) P2補=2-1 (X補(Yn-Yn-1 ) +P1補) Pn補=2-1 (X補(Y2-Y1 ) +Pn-1補) Pn+1補=XY補= X補( Y1-Y0 )+Pn補Yn Yn+1 操作 部分積1 部分積X補, 1 部分積X補,1 部分積1返回補碼一位乘法運算示例例:X= - 0.1101 Y= 0.1011用補碼一位乘法計算X*Y=? 解:X補=11

42、.0011 -X補=00.1101 Y補=0.1011 A C 附加位 說明 00.0000 0.1011 0 YnYn+1=10, +-X補+ 00.1101 00.1101 1 00.0110 10.101 1 YnYn+1=11, 1 00.0011 010.10 1 YnYn+1=01,+X補+ 11.0011 11.0110 1 11.1011 0010.1 0 YnYn+1=10,+-X補+ 00.1101 00.1000 1 00.0100 00010. 1 YnYn+1=01,+X補+ 11.0011 最后一步不移位 11.0111 0001 所以, XY= - 0.10001

43、111補碼一位乘法運算器框圖反變量原變量右移A寄存器加法器與或門B寄存器Yn+1C寄存器Yn部分積被乘數(shù)乘數(shù) 附加位計數(shù)器+1加法01減法1000或11+1陣列乘法器專用硬件并行乘法器由于乘法運算量大,采用高速乘法部件可以提高速度和效率。隨著大規(guī)模集成電路的問世,可由全加器陣列,構(gòu)成流水式陣列乘法器,實現(xiàn)多個部分積并行相加,稱為并行乘法器。運算速度快,電路復(fù)雜。P38不帶符號的陣列乘法器設(shè)有兩個不帶符號的二進制整數(shù)Aam1a1a0 Bbn1b1b0它們的數(shù)值分別為a和b,即設(shè)P A*B =pmn1p1p0 ,即不帶符號的陣列乘法器這個過程與手工計算乘法過程非常類似mn個aibj ,可以用mn個

44、與門并行地產(chǎn)生mn個aibj 相加,可用(m-1)n個全加器實現(xiàn)不帶符號陣列乘法器邏輯框圖FACiAiBiSiCi+1來自低位的進位加數(shù)加數(shù)向高位產(chǎn)生的進位和全加器邏輯符號例如:當(dāng)m=n=5時a0b0FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAp8p7p6p5p4p3p2p1p0p9a1b0a2b0a3b0a4b0a0b1a1b1a2b1a3b1a4b1a0b2a1b2a2b2a3b2a4b2a0b3a1b3a2b3a3b3a4b3a0b4a1b4a2b4a3b4a4b400000不帶符號的陣列乘法器邏輯電路圖Ta:與門時間延遲 Tf:全加器進位時間延遲總時

45、間延遲=Ta+(n-1)6T+(n-1)Tf=(8n-6)T不帶符號的陣列乘法器例16已知兩個不帶符號的二進制整數(shù)A11011,B 10101,求每一部分乘積項aibj的值與p9p8p0的值解 a4b01 a3b01 a2b00 a1b01 a0b01a4b10 a3b10 a2b10 a1b10 a0b10a4b21 a3b21 a2b20 a1b21 a0b20a4b30 a3b30 a2b30 a1b30 a0b30a4b41 a3b41 a2b40 a1b41 a0b4110000111010100FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA1101

46、1000001101100000110110110101Pp9p8p7p6p5p4p3p2p1p01000110111 (56710)0000001100010011011010011 串行進位鏈的并行加法器不帶符號陣列乘法器工作過程演示A *B 11011* 10101帶符號的陣列乘法器對2求補器:在帶符號數(shù)與無符號數(shù)間進行轉(zhuǎn)換求補方法:設(shè)Aana1a0是n1位帶符號數(shù),負(fù)數(shù):E=1,最右邊的“1”及其后各位保持不變,其余各位按位取反。10100110正數(shù):E=0,輸出和輸入相等??衫梅栁蛔鰹榭刂菩盘枴Х栮嚵谐朔ㄆ鬟壿嬁驁D將A和B變成正整數(shù)當(dāng)A和B異號時,把運算結(jié)果變成帶符號的數(shù)帶符

47、號的陣列乘法器例17 設(shè)X15,Y13,用帶求補器的原碼陣列乘法器求出乘積XY?解 設(shè)最高位為符號位,則輸入數(shù)據(jù)為X原 01111 Y原 11101 符號位單獨考慮,算前求補級后 |X|1111,|Y|1101算后經(jīng)求補級輸出并加上乘積符號位1,則原碼乘積值為111000011。真值是 ( 11000011)2=(-195)10手工除法示例 假定:X=0.1011,Y=0.1101,則 0.1101 0.10110 X小于Y,商00.2.4 定點除法運算0.1 0.11 0.110 0.11010.01101 Y右移,夠減,商1,相減0.010010 得R0 0.001101 Y再右移,夠減,

48、商1,相減0.0001010 得R1 0.0001101 Y再右移, 不夠減,商00.00000111 得R3 商符qf=XfYf=00=0XY=0.1101+0.0111*2-4/0.11010.00001101 Y再右移, 夠減,商1,相減0.00010100 得R2 計算機實現(xiàn)除法的改進定點機,商應(yīng)為純小數(shù),否則溢出。所以,只有在被除數(shù)小于除數(shù)時(X-Y0,商1,余數(shù)左移,進行下一步R0,商0恢復(fù)余數(shù)法+Y(恢復(fù)余數(shù)),余數(shù)左移,進行下一步不恢復(fù)余數(shù)法(加減交替法)Ri+1=2(Ri+Y)-Y=2Ri+Y余數(shù)左移,下一步加+Y串行除法串行除法補碼不恢復(fù)余數(shù)法涉及到的問題及解決 第一步,判

49、斷是否開始,不是簡單地相減: 補碼表示時:X與Y同號,相減 X與Y異號,相加中間過程中,不同情況不同處理: R與Y同號,商1,1,+-Y補 R與Y異號,商0,1,+Y補商的校正 末尾恒置1法補充補碼不恢復(fù)余數(shù)法示例例:X= 0.1000 Y= - 0.1010 用補碼不恢復(fù)余數(shù)法計算 X/Y 解:A:X補=00.1000 B:Y補=11.0110,-Y補=00.1010 C:商,初值為0 A C 操作 00.1000 X與Y異號 + 11.0110 +Y補 11.1110 1 R與Y同號,商1 11.1100 1. 1 + 00.1010 +-Y補 00.0110 1.0 R與Y異號,商0 0

50、0.1100 1.0 1 + 11.0110 +Y補 00.0010 1.00 R與Y異號,商0 00.0100 1.00 1補碼不恢復(fù)余數(shù)法示例例:X= 0.1000 Y= - 0.1010 用補碼不恢復(fù)余數(shù)法計算 X/Y解:A:X補=00.1000 B:Y補=11.0110,-Y補=00.1010 C:商,初值為0 A C 操作 00.0100 1.00 1 + 11.0110 +Y補 11.1010 1.001 R與Y同號,商1 11.0100 1.001 1 + 00.1010 11.1110 1.0011 末位恒置1 X/Y補=1.0011+1.1110*2-4/1.0110 X/Y

51、= - 0.1101+0.0010*2-4/0.1010陣列除法器采用大規(guī)模集成電路制造的并行運算部件。與串行除法器相比,運算速度高。形式多樣不恢復(fù)余數(shù)陣列除法器補碼陣列除法器 基本的單元電路可控加/減法單元(CAS)既可完成減法操作,又可完成加法操作適用于除法操作過程中的加減交替。可控加/減法(CAS)單元CASAiBiPPCiCi+1SiBi四個輸入端Ai、Bi、Ci P:控制端輸入四個輸出端Si、Ci+1Bi:除數(shù)右移P :控制端輸出P0:CAS作加法Si=AiBi CiCi+1=AiBi + (Ai Bi)CiP1:CAS作減法Si=AiBi Ci ( Bi=Bi1)Ci+1=AiCi

52、 + (Ai Ci)Bi不恢復(fù)余數(shù)的陣列除法器不恢復(fù)余數(shù)的除法加減交替法當(dāng)前行應(yīng)執(zhí)行加法還是減法,取決于上一行余數(shù)的符號與被除數(shù)的符號是否一致:余數(shù)與被除數(shù)異號(余數(shù)為負(fù)),商“0”,除數(shù)右移,與原余數(shù)相加,得新余數(shù);余數(shù)與被除數(shù)同號(余數(shù)為正),商“1”,除數(shù)右移,與原余數(shù)相減,得新余數(shù)。只介紹被除數(shù)、除數(shù)均為正數(shù)的情況。陣列除法器邏輯結(jié)構(gòu)圖被除數(shù)0.123456 (雙倍長)除數(shù)0.123 (XY)商數(shù)0.q1q2q3余數(shù)0.00r3r4r5r6 字長 n14第一行做減法(P=1),由于XY,余數(shù) 0,表示EE; E 0,表示EEy時,則My ,Ey+1Ex1,溢出。右規(guī):Mz,Ez+1。當(dāng)

53、尾數(shù)為11.1.或00.0.時,|Mz|0.5左規(guī):Mz,Ez-1浮點加減運算舍入處理對階或右規(guī)時,尾數(shù)右移,尾數(shù)的低位部分被丟掉,造成一定誤差,要進行舍入處理。簡單的舍入方法有三種:恒舍法:移出的位直接舍去,對保留部分不做任何修改。0舍1入法:右移出的位為0則舍去,為1則將尾數(shù)的末位加“1”。末位恒置一法:只要數(shù)位被移出,就在尾數(shù)的末尾恒置“1”。IEEE754標(biāo)準(zhǔn)就近舍入、朝0、+、- 舍入溢出判斷浮點數(shù)溢出主要體現(xiàn)在階碼的溢出,機器必須做中斷處理。階碼上溢階碼大于可表示的最大正數(shù), 看作+、- 階碼下溢階碼小于可表示的最小負(fù)數(shù),看作機器零浮點加減運算例25 設(shè)X20100.11011011,Y2100(0.10101100),求X+Y。解兩數(shù)均以補碼表示,階碼雙符號位,尾數(shù)單符號位。它們的浮點表示為 浮00 010, 0.11011011 浮00 100, 1.01010100 求階差,對大階 EEEE補+-E補00 010+11 10011 110 X的階碼小,應(yīng)使Mx 右移2位,Ex 加2 X浮00 100,0.00110110(11) 尾數(shù)求和 00.00110110(11) 11.01010100 11.10001010(11)-2規(guī)格化處理 尾數(shù)運算結(jié)果為11.10001

溫馨提示

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

評論

0/150

提交評論