計(jì)算機(jī)組成原理 運(yùn)算方法與運(yùn)算器_第1頁(yè)
計(jì)算機(jī)組成原理 運(yùn)算方法與運(yùn)算器_第2頁(yè)
計(jì)算機(jī)組成原理 運(yùn)算方法與運(yùn)算器_第3頁(yè)
計(jì)算機(jī)組成原理 運(yùn)算方法與運(yùn)算器_第4頁(yè)
計(jì)算機(jī)組成原理 運(yùn)算方法與運(yùn)算器_第5頁(yè)
已閱讀5頁(yè),還剩120頁(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)介

計(jì)算機(jī)組成原理武漢科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院第二章運(yùn)算方法和運(yùn)算器本章內(nèi)容2.1數(shù)據(jù)與文字的表示方法2.2定點(diǎn)加法、減法運(yùn)算2.3定點(diǎn)乘法運(yùn)算2.4定點(diǎn)除法運(yùn)算2.5定點(diǎn)運(yùn)算器的組成2.6浮點(diǎn)運(yùn)算方法和浮點(diǎn)運(yùn)算器2.1數(shù)據(jù)與文字的表示方法計(jì)算機(jī)中的數(shù)據(jù)數(shù)值數(shù)據(jù)非數(shù)值數(shù)據(jù)定點(diǎn)數(shù)浮點(diǎn)數(shù)文字語(yǔ)音圖形圖像……定點(diǎn)整數(shù)定點(diǎn)小數(shù)西文字符中文漢字計(jì)算機(jī)中常用的數(shù)據(jù)表示格式:2.1.1數(shù)據(jù)格式計(jì)算機(jī)中選擇數(shù)的表示方式時(shí)考慮的因素:(1)數(shù)據(jù)類型(整數(shù)、小數(shù)、實(shí)數(shù)、復(fù)數(shù))(2)可能遇到的數(shù)值范圍(3)數(shù)值精確度

(4)數(shù)據(jù)存儲(chǔ)和處理的硬件代價(jià)(1)定點(diǎn)數(shù):容許的數(shù)值范圍有限,但硬件比較簡(jiǎn)單(2)浮點(diǎn)數(shù):容許的數(shù)值范圍很大,但硬件比較復(fù)雜n位1位符號(hào)量值(1)純小數(shù)表示形式:x=xnxn-1xn-2…x0

表數(shù)范圍:0.000…0≤|X|≤0.111…11

即:0≤|X|≤1-2-n1.定點(diǎn)數(shù)的表示方法定點(diǎn)數(shù):小數(shù)點(diǎn)位置固定由于約定在固定位置,小數(shù)點(diǎn)不再使用記號(hào)“.”表示n位1位符號(hào)量值(2)純整數(shù)表示形式:x=xnxn-1xn-2…x0

表數(shù)范圍:0≤|X|≤111…11

即:0≤|X|≤2n-12浮點(diǎn)數(shù)的表示方法

任意一個(gè)R進(jìn)制數(shù)可以寫(xiě)成

N=Re×MR——基數(shù),定義后不能改變,可隱含M——尾數(shù),純小數(shù)e——指數(shù),純整數(shù),指出小數(shù)點(diǎn)的位置由于指數(shù)可以取不同的數(shù)值,所以,小數(shù)點(diǎn)的位置可在一定范圍內(nèi)自由浮動(dòng),故被稱為浮點(diǎn)數(shù)計(jì)算機(jī)中浮點(diǎn)數(shù)的表示格式:X=2E×MM——尾數(shù),定點(diǎn)小數(shù)(含數(shù)符),表示數(shù)的全部有效數(shù)字——精度E——階碼,純整數(shù),指示小數(shù)點(diǎn)的位置浮點(diǎn)數(shù):小數(shù)點(diǎn)位置可在一定范圍內(nèi)移動(dòng);能擴(kuò)大表數(shù)范圍浮點(diǎn)數(shù)的表示方案:格式1:格式2:——IEEE754標(biāo)準(zhǔn)SE

M64位浮點(diǎn)數(shù)636252510S

E

M32位浮點(diǎn)數(shù)313023220其中:S—符號(hào)位,0表示正,1表示負(fù)E——階碼,移碼表示的指數(shù),E=e+127(32位)或1023(64位)即將浮點(diǎn)數(shù)的指數(shù)e變成階碼E時(shí),將其加上一個(gè)固定的數(shù)值R——默認(rèn)為2;M——尾數(shù);小數(shù)點(diǎn)在尾數(shù)域最左有效位的右邊尾數(shù)Mn-1Mn-2…M0數(shù)符Ms階碼EmEm-1……E0階符EsIEEE754標(biāo)準(zhǔn)浮點(diǎn)數(shù)的規(guī)格化及其與真值的關(guān)系規(guī)格化表示——尾數(shù)非0時(shí),約定其最高有效位為1即:尾數(shù)規(guī)格化形式:

1.M例:A=24×0.0000000010101=2-5×1.0101階碼:用移碼表示,方便指數(shù)比較大小和對(duì)階操作IEEE754標(biāo)準(zhǔn)中,規(guī)格化的浮點(diǎn)數(shù)x與真值的關(guān)系:32位浮點(diǎn)數(shù)

x=(-1)s×(1.M)×2E-127

64位浮點(diǎn)數(shù)

x=(-1)s×(1.M)×2E-1023階碼與尾數(shù)的位數(shù)精度:范圍:尾數(shù)指數(shù)(1)當(dāng)階碼E為全0且尾數(shù)M也為全0時(shí),表示的真值x為零,結(jié)合符號(hào)位S,有正零和負(fù)零之分(2)當(dāng)階碼E為全1且尾數(shù)M為全0時(shí),表示的真值x為無(wú)窮大,結(jié)合符號(hào)位S,有+∞和-∞之分(對(duì)溢出的處理方式取決于用戶)(3)一個(gè)規(guī)格化的非零和非無(wú)窮的浮點(diǎn)數(shù),階碼E范圍1~254(32位)和1~2046(64位),其真值為-126~+127(32位格式的8位階碼)和-1022~+1023(64位格式的11位階碼),此時(shí)有效數(shù)據(jù)分別為24位或53位,即默認(rèn)23位小數(shù)或52位小數(shù)的小數(shù)點(diǎn)左邊有一個(gè)隱含的1注意:IEEE754格式的某些位樣式用來(lái)表示特殊值[例1]

若浮點(diǎn)數(shù)x的32位754標(biāo)準(zhǔn)存儲(chǔ)格式為(41360000)16,求其十進(jìn)制數(shù)值[解:]

將十六進(jìn)制數(shù)展開(kāi)后,可得二進(jìn)制數(shù)格式為

41

360000

0100000100110110000000000000

0000

S階碼(8位)尾數(shù)(23位)指數(shù)e=E-127=(10000010)2-(01111111)2=00000011=(3)10

1.M=1.01101100000000000000000=1.011011所以,x=(-1)s×1.M×2e=+(1.011011)×23

=+1011.011=(11.375)10

[例2]

將十進(jìn)制數(shù)數(shù)20.59375轉(zhuǎn)換成IEEE754標(biāo)準(zhǔn)32位浮點(diǎn)數(shù)的二進(jìn)制格式存儲(chǔ)[解:]

首先轉(zhuǎn)換成二進(jìn)制數(shù):

20.59375=(10100.10011)2=(1.010010011)2×24于是:S=0,E=4+127=131,M=010010011

IEEE754標(biāo)準(zhǔn)的32位浮點(diǎn)數(shù)的二進(jìn)制存儲(chǔ)格式為:(01000001101001001100000000000000)2=(41A4C000)16

補(bǔ)充:非IEEE754標(biāo)準(zhǔn)尾數(shù)的規(guī)格化一般地,浮點(diǎn)數(shù)規(guī)格化是指尾數(shù)M滿足1/2≤|M|<1若尾數(shù)采用原碼表示,尾數(shù)的最高數(shù)值位一定為1若尾數(shù)采用補(bǔ)碼表示對(duì)于正數(shù),M=00.1ф…ф;對(duì)于負(fù)數(shù),有M=11.0ф…ф

(兩符號(hào)位相同,且最高數(shù)值位與符號(hào)位不同)當(dāng)運(yùn)算結(jié)果出現(xiàn)下面情況時(shí),需要規(guī)格化①M(fèi)=00.0ф…ф或11.1ф…ф(最高數(shù)值位與符號(hào)位相同)說(shuō)明尾數(shù)的絕對(duì)值小于1/2,應(yīng)向左規(guī)格化(左移尾數(shù),每左移一位,階碼減1)M=01.ф…ф10.ф…ф(兩個(gè)符號(hào)位不同)表明尾數(shù)求和結(jié)果的絕對(duì)值大于1,應(yīng)向右規(guī)格化(結(jié)果右移,尾數(shù)右移1位,階碼加1)(1).字符串形式:一個(gè)字節(jié)存放一個(gè)十進(jìn)制的數(shù)位或符號(hào)位——用于非數(shù)值計(jì)算(2).

壓縮的十進(jìn)制數(shù)串形式:一個(gè)字節(jié)存放兩個(gè)十進(jìn)制的數(shù)位(值為BCD碼),節(jié)省存儲(chǔ)空間,且便于直接完成十進(jìn)制數(shù)的算術(shù)運(yùn)算符號(hào)位和每個(gè)數(shù)位都占半個(gè)字節(jié);符號(hào)位放在最低數(shù)字位之后,其值選用四位編碼中的冗余狀態(tài)規(guī)定:數(shù)位加符號(hào)位之和必須為偶數(shù),否則在最高數(shù)字位之前補(bǔ)一個(gè)0,例如+123和-12分別被表示成:123C(+123)012D(-12)3.十進(jìn)制數(shù)串的表示方法2.1.2數(shù)的機(jī)器碼表示無(wú)符號(hào)數(shù)的表示——所有位均表示數(shù)值;舉例機(jī)器碼:符號(hào)數(shù)值化后的數(shù)據(jù)編碼——便于計(jì)算機(jī)中存儲(chǔ)和運(yùn)算真值:一般書(shū)寫(xiě)表示的數(shù)機(jī)器碼的種類(以定點(diǎn)整數(shù)為例)(1)原碼(2)補(bǔ)碼(3)反碼(4)移碼原碼表示法的優(yōu)點(diǎn):簡(jiǎn)單易懂缺點(diǎn):(1)加/減法運(yùn)算復(fù)雜(同號(hào)相減或異號(hào)相加時(shí))

(2)零的原碼不惟一定點(diǎn)整數(shù)的原碼形式為xnxn-1xn-2…x0,則原碼表示的定義[x]原=x2n-x=2n+|x|

0≤x<2n-2n<x≤0例: x=+1001, y=-1001

則[x]原=01001, [y]原=110011.原碼表示法2.補(bǔ)碼表示法如:以校時(shí)為例,減3和加9是等價(jià)的,即,9是(-3)對(duì)12的補(bǔ)碼,可以用數(shù)學(xué)公式表示

-3=+9 (mod12)——數(shù)學(xué)上稱為同余式

mod12是指以12為模數(shù),這個(gè)“?!北硎颈粊G掉的數(shù)值補(bǔ)碼的引出——“?!焙汀巴唷钡母拍睢澳!笔侵敢粋€(gè)計(jì)量系統(tǒng)的計(jì)量范圍,即產(chǎn)生“溢出”的量負(fù)數(shù)用補(bǔ)碼表示時(shí),可以把減法轉(zhuǎn)化為加法定點(diǎn)整數(shù)的補(bǔ)碼形式為xnxn-1xn-2…x0

[x]補(bǔ)=x2n+1+x=2n+1-|x|0≤x<2n-2n≤x≤0定義:[x]反=x

(2n+1-1)+x0≤x<2n-2n<x≤0對(duì)于定點(diǎn)負(fù)整數(shù),由補(bǔ)碼和反碼的定義可知:[x]補(bǔ)=2n+1+x=[x]反+1

3.反碼表示法反碼的實(shí)現(xiàn)——若觸發(fā)器Q端輸出表示原碼,則Q端就是反碼對(duì)定點(diǎn)整數(shù),反碼表示的定義為

結(jié)論:若要求一個(gè)負(fù)數(shù)的補(bǔ)碼,其方法是先求其反碼,再在未位上加1即可由[x]原求[x]補(bǔ)(x<0)的簡(jiǎn)便原則:符號(hào)位保持不變;從最低位開(kāi)始遇到的第一個(gè)1以前的各位(包括該位)保持不變;其余各位按位取反例:[x]原=110110100[x]補(bǔ)=

101001100100100求補(bǔ)碼的方法由[x]補(bǔ)求[-x]補(bǔ):連符號(hào)位一起各位求反,末位加1例: [x]補(bǔ)=1.1010101 [-x]補(bǔ)=0.0101011由[-X]補(bǔ)求[X]補(bǔ)規(guī)則相同將[x]補(bǔ)的符號(hào)位和數(shù)值位一起向右移動(dòng)一次,且左補(bǔ)符號(hào)位例: [x]補(bǔ)=10101000 [x/2]補(bǔ)=11010100(0)稱為“算術(shù)右移”如何求[x/4]補(bǔ)和[x/8]補(bǔ)嗎?由[x]補(bǔ)求[x/2]補(bǔ)補(bǔ)碼的性質(zhì):0的補(bǔ)碼惟一便于加減運(yùn)算n+1位補(bǔ)碼所能表示的整數(shù)的范圍:定點(diǎn)整數(shù):MAX=2n-1,MIN=﹣2n補(bǔ)碼與真值的關(guān)系:設(shè)一個(gè)二進(jìn)制整數(shù)的補(bǔ)碼有n+1位(含1位符號(hào)位),即[x]補(bǔ)=xnxn-1xn-2

…x0

則其補(bǔ)碼表示的真值為:x=-2nxn+∑2ixi當(dāng)x為正數(shù)時(shí),xn=0,[x]補(bǔ)的形式:0xn-1xn-2

…x0

真值為:x=∑2ixi

當(dāng)x為負(fù)數(shù)時(shí),xn=1,[x]補(bǔ)的形式:1xn-1xn-2

…x0

真值為:x=-2n+∑2ixi

當(dāng)x為0時(shí),[x]補(bǔ)=

[+0]補(bǔ)=[-0]補(bǔ)=0結(jié)論:如果把符號(hào)位的權(quán)值當(dāng)成負(fù)權(quán),則真值是其相應(yīng)補(bǔ)碼的各位值乘以該位的權(quán)的累加和舉例:[x]補(bǔ)=010011011,[y]補(bǔ)=110011011,求x,y

n-1i=0n-1i=0n-1i=0通常用于表示浮點(diǎn)數(shù)的階碼設(shè)定點(diǎn)整數(shù)e的移碼形式為ekek-1ek-2…e0,其定義是

[e]移=2k+e-2k≤e<2k若階碼數(shù)值部分為5位(連同符號(hào)位6位),以e表示真值,則[e]移=25+e

-25≤e<25

例如,當(dāng)正數(shù)e=+10101時(shí),[e]移=1,10101負(fù)數(shù)e=-10101時(shí),[x]移=25+e=25-10101=0,01011移碼中的逗號(hào)表示左邊一位是符號(hào)位移碼中符號(hào)位ek的表示規(guī)律與原碼、補(bǔ)碼、反碼相反4.移碼表示法在已知補(bǔ)碼的情況下,將符號(hào)位求反即得移碼IEEE754標(biāo)準(zhǔn)浮點(diǎn)格式中e的移碼上述數(shù)據(jù)的四種機(jī)器表示法小結(jié):移碼表示法主要用于表示浮點(diǎn)數(shù)的階碼由于補(bǔ)碼表示對(duì)加減法運(yùn)算十分方便,因此目前機(jī)器中廣泛采用補(bǔ)碼表示法;在這類機(jī)器中,數(shù)用補(bǔ)碼表示,補(bǔ)碼存儲(chǔ),補(bǔ)碼運(yùn)算有些機(jī)器,用原碼進(jìn)行存儲(chǔ)和傳送,運(yùn)算時(shí)改用補(bǔ)碼還有些機(jī)器在做加減法時(shí)用補(bǔ)碼運(yùn)算,在做乘除法時(shí)用原碼運(yùn)算[例6]以n+1位定點(diǎn)整數(shù)為例,用數(shù)軸形式說(shuō)明原碼、反碼、補(bǔ)碼表示范圍和可能的數(shù)碼組合情況[解:]設(shè)機(jī)器碼形式為xnxn-1xn-2…x0補(bǔ)碼表示中“0”只有一種形式;且負(fù)數(shù)的范圍可到-2n

[例7]將十進(jìn)制真值(-127,-1,0,+1,+127)列表表示成二進(jìn)制數(shù)及8位的原碼、反碼、補(bǔ)碼、移碼[解:]真值x(十進(jìn)制)真值x(二進(jìn)制)[x]原[x]反[x]補(bǔ)[x]移-1281000000000000000-127-111111111111111100000001000000100000001-1-00000001100000011111111011111111011111110000000000000000010000000000000001111111100000000100000001+000000100000001000000010000000110000001127+111111101111111011111110111111111111111

由表中數(shù)據(jù)可知,補(bǔ)碼值與移碼值差別僅在于符號(hào)位不同

[例8]設(shè)機(jī)器字長(zhǎng)16位,定點(diǎn)表示,尾數(shù)15位,數(shù)符1位,問(wèn):定點(diǎn)原碼整數(shù)表示時(shí),最大正數(shù)是多少?最小負(fù)數(shù)是多少?[解:]

最大正數(shù)值=(215-1)10=(+32767)10

0111111111111111

最小負(fù)數(shù)值=-(215-1)10=(-32767)10

1111111111111111[例9]假設(shè)由S,E,M三個(gè)域組成的一個(gè)32位二進(jìn)制字所表示的非零規(guī)格化浮點(diǎn)數(shù)x,真值表示為:x=(-1)s×(1.M)×2E-128問(wèn):它所表示的規(guī)格化的最大正數(shù)、最小正數(shù)、最大負(fù)數(shù)、最小負(fù)數(shù)是多少?

[解:](1)最大正數(shù)01111111111111111111111111111111 x=[1+(1-2-23)]×2127(2)最小正數(shù)00000000000000000000000000000000

x=1.0×2-128(3)最小負(fù)數(shù)11111111111111111111111111111111

x=-[1+(1-2-23)]×2127(4)最大負(fù)數(shù)10000000000000000000000000000000x=-1.0×2-1282.1.3字符與字符串的表示方法1.字符的表示方法七位的ASCII碼(美國(guó)國(guó)家信息交換標(biāo)準(zhǔn)字符碼)——十進(jìn)制數(shù)碼、英文字母、一定數(shù)量的專用符號(hào),共128個(gè)元素其中:可顯示或打印的字符95個(gè),其編碼值為32~126

控制字符33個(gè),其編碼值為0~31和127采用7位二進(jìn)制編碼,加一位偶校驗(yàn)位,共8位表2.1七單位的ASCII碼字符編碼表字符串是連續(xù)的一串字符,占連續(xù)多個(gè)字節(jié),每個(gè)字節(jié)存一個(gè)字符[例]存儲(chǔ)字符串:

IF└┘A>B└┘THEN└┘READ(C)

IFA>BTHEN

READ(C)[解:]設(shè)主存字單元由4個(gè)字節(jié)組成按從高位字節(jié)到低位字節(jié)依次存放各字節(jié)單元依次存放十進(jìn)制的73、70、32、65、62、66、32、84、72、69、78、32、82、69、65、68、40、67、41、322.字符串的表示方法1.漢字的輸入編碼(1)數(shù)字編碼:常用的是區(qū)位碼區(qū)位碼——4位十進(jìn)制數(shù),前2位區(qū)碼,后2位位碼如“中”位于54區(qū)48位——區(qū)位碼5448優(yōu)點(diǎn):

無(wú)重碼,且輸入碼與內(nèi)部編碼的轉(zhuǎn)換比較方便缺點(diǎn):

代碼難以記憶(2)拼音碼:使用簡(jiǎn)單方便,但重碼率很高(3)字形編碼:按漢字的形狀編碼,如五筆字形碼2.1.4漢字的表示方法2.漢字的內(nèi)碼用于漢字的存儲(chǔ)、交換、檢索等操作的機(jī)內(nèi)代碼用兩個(gè)字節(jié)表示(兩個(gè)字節(jié)的最高位均為1)如“武”字機(jī)內(nèi)碼為2E44H+A0A0H=CEE4H3.漢字字模碼是用點(diǎn)陣表示的漢字字形代碼,有16×16點(diǎn)陣,24×24點(diǎn)陣,32×32點(diǎn)陣,用于漢字的顯示或打印輸出字模點(diǎn)陣只能用來(lái)構(gòu)成漢字庫(kù),而不能用于機(jī)內(nèi)存儲(chǔ)2.1.5校驗(yàn)碼——奇偶校驗(yàn)設(shè)x=(x0x1…xn-1)是一個(gè)n位字奇校驗(yàn)位C定義為:C=x0⊕x1⊕…⊕xn-1偶校驗(yàn)位C定義為:C=x0⊕x1⊕…⊕xn-1注意:奇偶校驗(yàn)可提供奇數(shù)個(gè)錯(cuò)誤檢測(cè),但無(wú)法檢測(cè)偶數(shù)個(gè)錯(cuò)誤,更無(wú)法識(shí)別錯(cuò)誤信息的位置

[例10]已知5個(gè)字節(jié)數(shù)據(jù),分別用奇校驗(yàn)和偶校驗(yàn)進(jìn)行編碼數(shù)據(jù)偶校驗(yàn)編碼C奇校驗(yàn)編碼C101010100101010000000000011111111111111110101010-01010100-00000000-01111111-11111111-10101010-01010100-00000000-01111111-11111111-01010101012.2定點(diǎn)加法、減法運(yùn)算2.2.1補(bǔ)碼加法任意兩個(gè)數(shù)的補(bǔ)碼之和,等于它們和的補(bǔ)碼以定點(diǎn)整數(shù)為例

[x+y]補(bǔ)=[x]補(bǔ)+[y]補(bǔ)

(mod2n+1)兩個(gè)數(shù)均用補(bǔ)碼表示,符號(hào)位當(dāng)做數(shù)值參加運(yùn)算,符號(hào)位相加所產(chǎn)生的進(jìn)位丟掉,結(jié)果為補(bǔ)碼證明——分4種情況采用定點(diǎn)整數(shù)表示,因此證明的先決條件是︱x︱≤(2n-1),︱y︱≤(2n-1),︱x+y︱≤(2n-1)(1)x﹥0,y﹥0,則x+y﹥0根據(jù)補(bǔ)碼定義,[x]補(bǔ)=x,[y]補(bǔ)=y(tǒng),故

[x]補(bǔ)+[y]補(bǔ)=x+y=[x+y]補(bǔ)

(mod2n+1)證明——分4種情況(2)x﹥0,y﹤0,則x+y>0或x+y<0∵[x]補(bǔ)=x,

[y]補(bǔ)=2n+1+y∴[x]補(bǔ)+[y]補(bǔ)=x+2n+1+y=2n+1+(x+y) =[x+y]補(bǔ)(mod2n+1)

(3)x<0,y>0,則x+y>0或x+y<0同(2)(4)x<0,y<0,則x+y<0

∵[x]補(bǔ)=2n+1+x,

[y]補(bǔ)=2n+1+y

∴[x]補(bǔ)+[y]補(bǔ)=2n+1+x+2n+1+y=2n+1+(2n+1+x+y)因(x+y)是絕對(duì)值小于2n的負(fù)數(shù),故(2n+1+x+y)一定大于2n而小于2n+1,故進(jìn)位2n+1必丟失,又因(x+y)<0,所以

[x]補(bǔ)+[y]補(bǔ)=2n+1+(x+y)=[x+y]補(bǔ)

(mod2n+1)[例11]

x=+1001,y=+0101,求x+y[解:]

[x]補(bǔ)=01001,[y]補(bǔ)=00101 [x+y]補(bǔ)=01001+00101=01110

x+y=+1110[例12]

x=+1011,y=-0101,求x+y[解:]

[x]補(bǔ)=01011,[y]補(bǔ)=11011 [x+y]補(bǔ)=01011+11011=00110

x+y=+0110解:[x]補(bǔ)=100111,[y]補(bǔ)=111101[x]補(bǔ)=100111[y]補(bǔ)=111101+丟掉1100100[x]補(bǔ)+[y]補(bǔ)=100100x+y=-11100例:x=-11001,y=-00011,求x+y=?結(jié)論——補(bǔ)碼加法的特點(diǎn):(1)符號(hào)位作為數(shù)的一部分一起運(yùn)算(2)在模2n+1的意義下相加,即超過(guò)2n+1的進(jìn)位要丟掉[x-y]補(bǔ)=[x]補(bǔ)+[-y]補(bǔ)=[x]補(bǔ)-[y]補(bǔ)[-y]補(bǔ)稱為[y]補(bǔ)的機(jī)器負(fù)數(shù),由[y]補(bǔ)求[-y]補(bǔ)的過(guò)程稱為將[y]補(bǔ)“變補(bǔ)”或?qū)y]補(bǔ)求補(bǔ)從[y]補(bǔ)求[-y]補(bǔ)的法則是:對(duì)[y]補(bǔ)包括符號(hào)位“求反且最末位加1”寫(xiě)成運(yùn)算表達(dá)式為:

[-y]補(bǔ)=﹁[y]補(bǔ)+1其中符號(hào)﹁表示對(duì)[y]補(bǔ)作包括符號(hào)位在內(nèi)的求反操作2.2.2補(bǔ)碼減法證明:[x-y]補(bǔ)=[x]補(bǔ)+[-y]補(bǔ)=[x]補(bǔ)-[y]補(bǔ)只要證明[-y]補(bǔ)=-[y]補(bǔ)即可∵[x+y]補(bǔ)=[x]補(bǔ)+[y]補(bǔ)

(mod2n+1)∴[y]補(bǔ)=[x+y]補(bǔ)-[x]補(bǔ)

(2.15)∵[x-y]補(bǔ)=[x+(-y)]補(bǔ)=[x]補(bǔ)+[-y]補(bǔ)∴[-y]補(bǔ)=[x-y]補(bǔ)-[x]補(bǔ)

(2.16)將式(2.15)與(2.16)相加,得

[-y]補(bǔ)+[y]補(bǔ)=[x+y]補(bǔ)+[x-y]補(bǔ)-[x]補(bǔ)-[x]補(bǔ)=[x+y+x-y]補(bǔ)-[x]補(bǔ)-[x]補(bǔ)=0故[-y]補(bǔ)=-[y]補(bǔ)

(mod2n+1)[例13]

已知x1=-1110,x2=+1101

求:[x1]補(bǔ),[-x1]補(bǔ),[x2]補(bǔ),[-x2]補(bǔ)[解:]

[x1]補(bǔ)=10010

[-x1]補(bǔ)=﹁[x1]補(bǔ)+1=01101+1=01110

[x2]補(bǔ)=01101

[-x2]補(bǔ)=﹁[x2]補(bǔ)+1=10010+1=10011[例14]

x=+1101,y=+0110,求x-y[解:]

[x]補(bǔ)=01101

[y]補(bǔ)=00110,

[-y]補(bǔ)=11010[x]補(bǔ)

01101

+[-y]補(bǔ)

11010

[x-y]補(bǔ)

所以x-y=+0111丟掉1001112.2.3溢出概念與檢測(cè)方法n+1位定點(diǎn)整數(shù)補(bǔ)碼數(shù)的表示范圍:-2n≤x<2n溢出的概念負(fù)整數(shù)正整數(shù)

+(2n-1)負(fù)溢出正溢出-2n0[例15]

x=+1011,y=+1001,求x+y[解]

[x]補(bǔ)=01011 [y]補(bǔ)=01001

[x+y]補(bǔ)=01011+01001=10100

[例16]x=-1101,y=-1011,求x+y[解] [x]補(bǔ)=10011 [y]補(bǔ)=10101

[x+y]補(bǔ)=10011+10101=01000發(fā)生錯(cuò)誤的原因正溢出——兩正數(shù)相加,結(jié)果大于所能表示的最大正數(shù)負(fù)溢出——兩負(fù)數(shù)相加,結(jié)果小于所能表示的最小負(fù)數(shù)雙符號(hào)位補(bǔ)碼:也稱“變形補(bǔ)碼”或“模2n+2補(bǔ)碼”(對(duì)定點(diǎn)整數(shù))變形補(bǔ)碼可使模2n+1補(bǔ)碼表數(shù)的范圍擴(kuò)大一倍判斷“溢出”的方法——變形補(bǔ)碼法;單符號(hào)位法單符號(hào)位法——最高有效位產(chǎn)生進(jìn)位而符號(hào)位無(wú)進(jìn)位時(shí),產(chǎn)生正溢;最高有效位無(wú)進(jìn)位而符號(hào)位有進(jìn)位時(shí),產(chǎn)生負(fù)溢故溢出邏輯表達(dá)式為V=CfCn

結(jié)論:1.溢出——運(yùn)算結(jié)果的二符號(hào)位相異,邏輯表達(dá)式為V=Sf1⊕Sf2Sf1Sf2=01——正溢;Sf1Sf2=10——負(fù)溢2.不論溢出與否,最高符號(hào)位Sf1始終指示正確的符號(hào)定點(diǎn)整數(shù)的變形補(bǔ)碼的模為2n+2,

用同余式表示為:

[x]補(bǔ)=2n+2+x(mod2n+2)對(duì)于正數(shù),兩個(gè)符號(hào)位都是0;負(fù)數(shù),兩個(gè)符號(hào)位都是1對(duì)于變形補(bǔ)碼,同樣有

[x]補(bǔ)+[y]補(bǔ)=[x+y]補(bǔ)(mod2n+2)運(yùn)算過(guò)程中注意:兩個(gè)符號(hào)位都看作數(shù)碼參加運(yùn)算;丟掉最高符號(hào)位上產(chǎn)生的進(jìn)位變形補(bǔ)碼溢出判斷[例17]

x=+1100,y=+1000,求x+y[解:]

[x]補(bǔ)=001100,

[y]補(bǔ)=001000[x]補(bǔ)

001100+[y]補(bǔ)

001000

010100兩個(gè)符號(hào)位出現(xiàn)“01”,表示已溢出,即結(jié)果大于+15[例18]

x=-1100,y=-1000,求x+y[解:]

[x]補(bǔ)=110100,

[y]補(bǔ)=111000[x]補(bǔ)

110100+[y]補(bǔ)

111000

101100兩個(gè)符號(hào)位出現(xiàn)“10”,表示已溢出,即結(jié)果小于-16變形補(bǔ)碼法舉例[例17]Bx=+1100,y=+1000,求x+y[解:]

[x]補(bǔ)=01100,

[y]補(bǔ)=01000[x]補(bǔ)

01100+[y]補(bǔ)

01000

10100[例18]B

x=-1100,y=-1000,求x+y[解:]

[x]補(bǔ)=10100,

[y]補(bǔ)=11000[x]補(bǔ)

10100+[y]補(bǔ)

11000

01100Cf=0Cn=1Cf⊕Cn=1,溢出Cf⊕Cn=1,溢出Cf=1Cn=0單符號(hào)位法舉例2.2.4基本的二進(jìn)制加法/減法器輸入:Ai、Bi、Ci輸出:Si、Ci+1一位全加器真值表

Si=Ai⊕Bi⊕CiCi+1=AiBi+BiCi+CiAi=AiBi+(Ai⊕

Bi)

Ci輸入輸出AiBiCiSiCi+100000001100101001101100101010111001111111、一位全加器FAAiBiCiCi+1Si2、n位二進(jìn)制加/減法器設(shè)5位二進(jìn)制數(shù)[A]補(bǔ)=A4A3A2A1A0[B]補(bǔ)=B4B3B2B1B0兩數(shù)相加,則為[S]補(bǔ)=[A]補(bǔ)+[B]補(bǔ)=C5S4S3S2S1S0而[-B]補(bǔ)=﹁[B]補(bǔ)+1兩數(shù)相減,則為[S]補(bǔ)=[A]補(bǔ)-[B]補(bǔ)=[A]補(bǔ)+[-B]補(bǔ)=[A]補(bǔ)+[-B]補(bǔ)[A]補(bǔ)=A4A3A2A1A0C5S4S3S2S1S0[-B]補(bǔ)=B4B3B2B1B01+[A]補(bǔ)=A4A3A2A1A0[B]補(bǔ)=B4B3B2B1B0C5S4S3S2S1S0+2.2.4基本的二進(jìn)制加法/減法器n位補(bǔ)碼運(yùn)算的二進(jìn)制加法/減法器的邏輯結(jié)構(gòu)圖——工作原理延遲時(shí)間分析設(shè):一個(gè)“與”門(mén)/“或”門(mén)的延遲時(shí)間為T(mén),一個(gè)異或門(mén)的延遲時(shí)間為3T,則:一位FA的Si時(shí)間延遲為6TCi+1的傳輸時(shí)間延遲為2Tn位行波進(jìn)位加法器的時(shí)間延遲為

ta=n·2T+9T=(2n+9)Tn位行波進(jìn)位加法器的延遲時(shí)間行波進(jìn)位的補(bǔ)碼加/減法器結(jié)構(gòu)2.3定點(diǎn)乘法運(yùn)算2.3.1原碼并行乘法1.人工算法與機(jī)器算法的同異性運(yùn)算規(guī)則:乘積的符號(hào)位、數(shù)值部分設(shè)n位被乘數(shù)和乘數(shù)用是用原碼表示的定點(diǎn)數(shù)被乘數(shù)[x]原=xf

xn-1…x1x0乘數(shù)[y]原=yf

yn-1…y1y0則乘積[z]原=(xf⊕yf)+(xn-1…x1x0)(yn-1…y1y0)設(shè)x=1101,y=1011,數(shù)值部分運(yùn)算過(guò)程分析早期——采用串行的1位乘法,即多次執(zhí)行“加法—移位”操作簡(jiǎn)單,但太慢;目前使用流水式陣列乘法器(并行)對(duì)于計(jì)算機(jī)而言,不同之處在于:1.機(jī)器字長(zhǎng)為n位,兩個(gè)n位數(shù)相乘,乘積可能為2n位2.只有兩個(gè)操作數(shù)加法器不能將n個(gè)位積一次相加設(shè)A、B是兩個(gè)不帶符號(hào)的二進(jìn)制整數(shù):

A=am-1…a1a0

m位

B=bn-1…b1b0

n位數(shù)值分別為a和b,即

m-1

n-1

a

=∑ai2i

b

=∑bj2j

i=0

j=0被乘數(shù)A與乘數(shù)B相乘,產(chǎn)生m+n位乘積P:

P=pm+n-1…p1p0m+

n位乘積P

的數(shù)值為2.不帶符號(hào)的陣列乘法器m位n位二進(jìn)制數(shù)的計(jì)算過(guò)程a4a3a2a1a0b4b3b2b1b0a4b1a3b1a2b1a1b1a0b1a4b0a3b0a2b0a1b0a0b0a4b2a3b2a2b2a1b2a0b2a4b3a3b3a2b3a1b3a0b3a4b4a3b4a2b4a1b4a0b4p9p8p7p6p5p4p3p2p1p0×=A=B=P以m=n=5為例延遲時(shí)間電路中,

{aibj|0≤i≤m-1和0≤j≤n-1}可用

“與”門(mén)并行產(chǎn)生n位×n位的乘法器——需要n(n-1)個(gè)全加器和n2個(gè)“與”門(mén)設(shè)Ta為“與門(mén)”的傳輸延遲時(shí)間,Tf為FA的進(jìn)位傳輸延遲假定用2級(jí)“與或”邏輯實(shí)現(xiàn)FA的進(jìn)位鏈,則Ta

=T,Tf

=2T

n位×n位不帶符號(hào)的陣列乘法器總的乘法時(shí)間為:tm=Ta+(n-1)×6T+(n-1)×Tf+3T

=T+(n-1)×6T+(n-1)×2T+3T=(8n-4)T

5位×5位不帶符號(hào)陣列乘法器[例16]已知兩個(gè)不帶符號(hào)的二進(jìn)制整數(shù)A

=11011,B

=10101,求每一部分乘積項(xiàng)aibj的值與p9p8……p0的值[解:]P=p9p8p7p6p5p4p3p2p1p0=512+32+16+7=1000110111(56710)a4b0=1

a3b0=1

a2b0=0

a1b0=1a0b0=1a4b1=0a3b1=0

a2b1=0a1b1=0a0b1=0a4b2=1

a3b2=1

a2b2=0

a1b2=1a0b2=1a4b4=1

a3b4=1a2b4=0

a1b4=1a0b4=1a4b3=0

a3b3=0

a2b3=0

a1b3=0

a0b3=0有符號(hào)數(shù)乘法的實(shí)現(xiàn)方法一是將補(bǔ)碼轉(zhuǎn)成原碼再用無(wú)符號(hào)數(shù)乘法器方案二是設(shè)計(jì)一種直接用補(bǔ)碼進(jìn)行乘法運(yùn)算的新型乘法器對(duì)2求補(bǔ)電路——可將補(bǔ)碼表示的帶符號(hào)數(shù)轉(zhuǎn)換成絕對(duì)值

0≤i≤n-13.帶符號(hào)的陣列乘法器按位掃描技術(shù)求(n+1)位補(bǔ)碼表示的帶符號(hào)數(shù)A=anan-1…a1a0的絕對(duì)值利用符號(hào)位來(lái)作為控制信號(hào)E例,在5位有符號(hào)數(shù)11010,對(duì)2求補(bǔ)器中,E=1,a3a0輸入為1010,輸出a3*

a0*是0110轉(zhuǎn)換一個(gè)(n+1)位帶符號(hào)數(shù),所需的總時(shí)間延遲為

tTC=(n-1)·Ta+Ta+Td=n·Ta+Td其中Ta是一個(gè)與門(mén)/一個(gè)或門(mén)的延遲時(shí)間,Td是異或門(mén)延遲時(shí)間(n+1)×(n+1)位帶求補(bǔ)器的陣列乘法器邏輯方框圖(2)帶符號(hào)的陣列乘法器帶求補(bǔ)級(jí)的陣列乘法器三個(gè)求補(bǔ)器的作用設(shè)A=anan-1…a1a0和B=bnbn-1…b1b0均為用定點(diǎn)表示的(n+1)位帶符號(hào)整數(shù)。在必要的求補(bǔ)操作后,用n×n位不帶符號(hào)的陣列乘法器產(chǎn)生2n位真值乘積: A·B=P=p2n-1…p1p0 p2n=an⊕bn其中P2n為符號(hào)位帶求補(bǔ)級(jí)的陣列乘法器既適用于原碼乘法,也適用于間接的補(bǔ)碼乘法;但間接的補(bǔ)碼乘法時(shí)間大約比原碼乘法增加1倍[例20]設(shè)x=+15,y=-13,用帶求補(bǔ)器的原碼陣列乘法器求x·y[解:]

設(shè)最高位為符號(hào)位,則輸入數(shù)據(jù)為

[x]補(bǔ)=01111

[y]補(bǔ)=10011

符號(hào)位單獨(dú)考慮,算前求補(bǔ)級(jí)后|x|=1111;|y|=1101

驗(yàn)證:符號(hào)位:0⊕1=1算后求補(bǔ)結(jié)果:100111101換算成真值是x·y =(-11000011)2=-(128+64+3)=(-195)10

[例21]設(shè)x=-15,y=-13,用帶求補(bǔ)器的原碼陣列乘法器x·y[解:]

設(shè)最高位為符號(hào)位,則輸入數(shù)據(jù)為

[x]補(bǔ)=10001

[y]補(bǔ)=10011符號(hào)位單獨(dú)考慮,算前求補(bǔ)級(jí)后|x|=1111;|y|=1101

驗(yàn)證:乘積的真值是x·y =(11000011)2=(195)10符號(hào)位:1⊕1=0算后求補(bǔ)結(jié)果:0

110000112.3.2直接補(bǔ)碼并行乘法1.補(bǔ)碼與真值的轉(zhuǎn)換公式

計(jì)算補(bǔ)碼真值的方法——使其符號(hào)位帶負(fù)權(quán)設(shè)定點(diǎn)整數(shù)的補(bǔ)碼:[N]補(bǔ)=anan-1…a1a0,其中an是符號(hào)位補(bǔ)碼數(shù)[N]補(bǔ)和真值N的關(guān)系可以表示成:直接補(bǔ)碼乘法——符號(hào)位參與運(yùn)算,不需要求補(bǔ)級(jí);快速把負(fù)權(quán)-2n強(qiáng)加到符號(hào)位an上,則真值N為:[例22]已知[N1]補(bǔ)=(01101)2,[N2]補(bǔ)=(10011)2,求[N1]補(bǔ),[N2]補(bǔ)的數(shù)值[解:]

[N1]補(bǔ)=(01101)2

具有的數(shù)值為:N1=-0×24+1×23+1×22+0×21+1×20=(+13)10[N2]補(bǔ)=(10011)2具有的數(shù)值為:N2=-1×24+0×23+0×22+1×21+1×20=(-13)10對(duì)于0類、3類全加器:S=XYZ+XYZ+XYZ+XYZC=XY+YZ+ZX對(duì)于1類、2類全加器:S=XYZ+XYZ+XYZ+XYZC=XY+XZ+YZ*2.一般化的全加器形式全加器根據(jù)輸入端負(fù)權(quán)的數(shù)量可分為四類——0類、1類、2類、3類常規(guī)的一位全加器可假定3個(gè)輸入和2個(gè)輸出都是正權(quán)利用混合型全加器構(gòu)成直接補(bǔ)碼數(shù)陣列乘法器設(shè)被乘數(shù)A和乘數(shù)B是兩個(gè)5位的二進(jìn)制補(bǔ)碼數(shù):A=(a4)a3a2a1a0B=(b4)b3b2b1b0帶負(fù)權(quán)的符號(hào)位a4和b4用括號(hào)標(biāo)注下面用括號(hào)來(lái)標(biāo)注負(fù)的被加項(xiàng),則有:

(a4)a3

a2

a1

a0=A

×)(b4)b3

b2

b1

b0=B

(a4b0)a3b0

a2b0

a1b0

a0b0

(a4b1)a3b1

a2b1

a1b1

a0b1

(a4b2)

a3b2

a2b2

a1b2

a0b2

(a4b3)

a3b3

a2b3a1b3

a0b3

+a4b4

(a3b4)(a2b4)(a1b4)(a0b4)________________________________

(p9)p8

p7

p6

p5

p4

p3

p2

p1

p0=P

*3.直接補(bǔ)碼陣列乘法器5位乘5位的直接補(bǔ)碼陣列乘法器邏輯原理1000a0b0a2b0a1b0a4b0a3b0a0b1a1b1a2b1a3b1100a0b2a1b2a2b2a3b2110a1b3a2b3a3b311a1b4a2b4a3b422222222a4b4a4b3a4b2a4b1a0b3a0b400000p0p1p2p3p4p5(p9)p8p7p65位乘5位的情況下需要6個(gè)0類全加器(右上角)6個(gè)1類全加器(左上角)8個(gè)2類全加器(最下兩行)總數(shù)仍為5*4=20個(gè)2類和1類FA具有同樣的結(jié)構(gòu)但使用不同的邏輯符號(hào)[解:]

(0)1

1

0

1=+13

×)

(1)1

0

1

1=-5

(0)1

1

0

1

(0)11

0

1

(0)0

0

0

0

(0)1

1

0

1

0(1)(1)(0)(1)___________________

0(1)0

1

11111=-65=-1×27+1×25+1×24+1×23+1×22+1×21+1×20若用10位二進(jìn)制數(shù)表示結(jié)果,則為(1)110111111=-1×29+28+27+25+24+23+22+21+20=-65

(13)×(-5)=-65[例]

設(shè)[A]補(bǔ)=(01101)2,[B]補(bǔ)=(11011)2,求[A×B]補(bǔ)=?2.4定點(diǎn)除法運(yùn)算設(shè)有n位定點(diǎn)小數(shù)(定點(diǎn)整數(shù)也同樣適用):被除數(shù)x,原碼為[x]原=xf.xn-1…x1x0除數(shù)y,原碼為[y]原=yf.yn-1…y1y0

則有商q=x/y,原碼為[q]原=(xf⊕yf)+(0.xn-1…x1x0/0.yn-1…y1y0) ——商的符號(hào)qf=xf⊕yf;數(shù)值部分是兩個(gè)正數(shù)求商2.4.1原碼除法算法原理設(shè)被除數(shù)x=0.1001,除數(shù)y=0.1011,手算求x÷y

0.1101

商q

0.10110.10010

x(r0),被除數(shù)小于除數(shù),上0

-0.01011

2-1y除數(shù)右移1位,減除數(shù),上1

0.001110

r1得余數(shù)r1

-0.0

01011

2-2y除數(shù)右移1位,減除數(shù),上1

0.0000110

r2得余數(shù)r2

-0.0

000000

2-3y除數(shù)右移1位,不減除數(shù),上0

0.00001100

r3

得余數(shù)r3

-0.0

0001011

2-4y除數(shù)右移1位,減除數(shù),上1

0.00000001

r4得余數(shù)r4得x÷y的商q=0.1101,余數(shù)為r=0.00000001

0.1101

商q

0.10110.1001

x(r0)<y,上0

1.00102x(r0)被除數(shù)左移1位

+1.0101

減y,加上[-y]補(bǔ),上1

0.0111

r1得余數(shù)r1

0.1110

2r1

r1左移1位

+1.0101

減y,加上[-y]補(bǔ),上1

0.0011

r2得余數(shù)r2 0.0110

2r2

r2左移1位

+0.0000

因2r2小于y,上00.0110r3得余數(shù)r3

0.1100

2

r3r3左移1位,

+1.0101

減y,加上[-y]補(bǔ),上1

0.0001

r4得余數(shù)r4商q=0.1101,余數(shù)為r=r4×2-4=0.0001×2-4=0.00000001例:設(shè)x=0.1001,y=0.1011,則[-y]補(bǔ)=1.0101,求x÷y計(jì)算機(jī)實(shí)現(xiàn)時(shí)處理方法的改進(jìn):將“被除數(shù)和余數(shù)不動(dòng),除數(shù)右移(相當(dāng)于除2)”改為:除數(shù)不動(dòng)(小數(shù)點(diǎn)固定),被除數(shù)和余數(shù)左移(相當(dāng)于乘2),并將上商和余數(shù)左移結(jié)合起來(lái)具體算法:

恢復(fù)余數(shù)法加減交替法

0.1001x+[-y]補(bǔ)

1.0101

減y,加上[-y]補(bǔ)

1.11100

余數(shù)r1<0,所以商上0+y

0.1011

r1

+y,恢復(fù)為被除數(shù)

0.10011.0010余數(shù)和商左移一位+[-y]補(bǔ)

1.0101

2r1

y,0.01111

余數(shù)r2>0,商上1

0.1110

余數(shù)和商左移一位+[-y]補(bǔ)

1.0101

2r2

y,

0.00111

余數(shù)r3>0,商上1

0.0110余數(shù)和商左移一位+[-y]補(bǔ)

1.0101

2r3-

y,1.10110

余數(shù)r4<0,商上0+y

0.1011

r4

+y,恢復(fù)余數(shù)

0.0110

0.1100余數(shù)和商左移一位+[-y]補(bǔ)

1.0101

2r4

y,

0.00011

余數(shù)r5>0,商上1缺點(diǎn):運(yùn)算步數(shù)不確定恢復(fù)余數(shù)法01101規(guī)則:(1)首先進(jìn)行減法操作(2)根據(jù)余數(shù)的符號(hào)確定具體操作及商的值:若余數(shù)為正,說(shuō)明夠減,商上1若余數(shù)為負(fù),說(shuō)明不夠減,商上0,再加上除數(shù)(恢復(fù)余數(shù))(3)余數(shù)和商左移,重復(fù)進(jìn)行分析恢復(fù)余數(shù)法——第i+1步的余數(shù)ri+1由前一步的余數(shù)ri(初值r0=x)得到:若ri>0,商上1,左移一位(即乘2)減y得ri+1,即:ri+1=2ri-y若ri<0,商上0,并恢復(fù)余數(shù)(即加y),然后左移一位再做減y的運(yùn)算,即:ri+1=2(ri+y)-y=2ri

+y加減交替法ri若為負(fù),不必恢復(fù)余數(shù),將ri左移一位(乘2)再加上除數(shù)y即可直接得ri+1,再由ri+1的正負(fù)決定商的值由此可得加減交替法的運(yùn)算規(guī)則:

當(dāng)余數(shù)為正時(shí),商上“1”,下一步:余數(shù)左移一位,減除數(shù)當(dāng)余數(shù)為負(fù)時(shí),商上“0”,下一步:余數(shù)左移一位,加除數(shù)

0.1001x+[-y]補(bǔ)

1.0101

減y,即加上[-y]補(bǔ)

1.11100

余數(shù)r1<0,所以上0

1.11000余數(shù)左移一位后加除數(shù)y+y

0.1011

2r1

+y

0.0111

1余數(shù)r2>0,上1

0.111001余數(shù)和商左移一位后減y+[-y]補(bǔ)

1.0101

2r2

y

0.0011

1余數(shù)r3>0,上1

0.0110011余數(shù)和商左移一位減y+[-y]補(bǔ)

1.0101

2r3

y1.10110

余數(shù)r4<0,上01.01100110余數(shù)和商左移一位加y+y

0.1011

2r4

+y

0.0001

1余數(shù)r5>0,上1

01101——商;2-4×0.0001——余數(shù)加減交替法實(shí)例:x=0.1001,y=0.1011,[-y]補(bǔ)=1.01012.4.2并行除法器(以不恢復(fù)余數(shù)陣列除法器為例)加減交替法——用可控的加/減法單元(CAS)構(gòu)成1.可控加法/減法單元——用于并行除法流水邏輯陣列有四個(gè)輸入端Ai、Bi、P、Ci和四個(gè)輸出端Si、

Ci+1、Bi、P

加減控制線P=0,CAS作加法運(yùn)算;P=1作減法運(yùn)算

CAS單元的輸入與輸出的關(guān)系:

Si=Ai⊕(Bi⊕P)⊕CiCi+1=(Ai+Ci)·(Bi⊕P)+AiCi

P=0時(shí), Si=Ai⊕Bi⊕Ci(做加法) Ci+1=AiBi+BiCi+AiCi

P=1時(shí), Si

=Ai⊕Bi⊕Ci

其中Bi=Bi⊕1

(做減法) Ci+1=AiBi+BiCi+AiCiSi=Ai⊕(Bi⊕P)⊕CiCi+1=(Ai+Ci)·(Bi⊕P)+AiCi可控加法/減法單元(CAS)邏輯圖

CAS單元的輸出方程:

Si=Ai⊕(Bi⊕P)⊕Ci

=AiBiCiP+AiBiCiP+AiBiCiP+AiBiCiP+AiBiCiP+AiBiCiP+AiBiCiP+AiBiCiP

Ci+1=(Ai+Ci)(Bi⊕P)+AiCi

=AiBiP+AiBiP+BiCiP+BiCiP+AiCi

Si和Ci+1都能用三級(jí)組合邏輯電路實(shí)現(xiàn)——每個(gè)基本CAS單元的延遲時(shí)間為3TCAS單元的延遲時(shí)間分析思路:每行執(zhí)行加法還是減法操作,取決于前一行輸出的符號(hào)與被除數(shù)的符號(hào)是否一致不夠減時(shí),部分余數(shù)相對(duì)于被除數(shù)要改變符號(hào),商上“0”,除數(shù)沿對(duì)角線右移,加(P=0)到下一行的部分余數(shù)上

部分余數(shù)不改變符號(hào)時(shí),商上“1”,下一行執(zhí)行減法(P=1)舉例——6位除以3位的不恢復(fù)余數(shù)陣列除法器邏輯原理圖假定所有被處理的數(shù)都是正的小數(shù)被除數(shù)x=0.x1x2x3x4x5x6(雙倍長(zhǎng))

除數(shù)y=0.y1y2y3

商數(shù)q=0.q1q2q3

余數(shù)r=0.00r3r4r5r62.不恢復(fù)余數(shù)(加減交替)的陣列除法器1

P=1時(shí)減y即加[-y]補(bǔ)也就是加上﹁y+1,yi右移作為下一次操作數(shù)(b)6位除以3位陣列除法器邏輯結(jié)構(gòu)圖說(shuō)明:被除數(shù)x是6位的小數(shù)(雙倍長(zhǎng)度值):

x=0.x1x2x3x4x5x6

由頂部一行和最右邊的對(duì)角線上的垂直輸入線提供除數(shù)y是3位的小數(shù):y=0.y1y2y3沿對(duì)角線進(jìn)入(用“余數(shù)保持固定,除數(shù)沿對(duì)角線右移”)商q是3位的小數(shù):q=0.q1q2q3

,在陣列的左邊產(chǎn)生余數(shù)r是6位的小數(shù):r=0.00r3r4r5r6

,在陣列的最下一行單元之間互連用n=3的陣列表示說(shuō)明:初始操作經(jīng)常是減法,故最上面一行的控制線P固定為“1”減法——用2的補(bǔ)碼實(shí)現(xiàn),右端各CAS單元上的反饋線用作初始的進(jìn)位輸入;每一行最左邊的單元的進(jìn)位輸出決定商的數(shù)值;當(dāng)前的商反饋到下一行確定下一行的操作(加法還是減法)運(yùn)算時(shí),沿著每一行都有進(jìn)位(或借位)傳播,且所有行在進(jìn)位鏈上都是串行連接,每個(gè)CAS單元的延遲時(shí)間為3T,因此,對(duì)一個(gè)2n位除以n位的不恢復(fù)余數(shù)陣列除法器來(lái)說(shuō),單元的數(shù)量為(n+1)2,考慮最大情況下的信號(hào)延遲,除法執(zhí)行時(shí)間為 td=3(n+1)2T其中n為尾數(shù)位數(shù)[例23]x=0.101001,y=0.111,求x÷y[解:]

[y]補(bǔ)=0.111

[-y]補(bǔ)=1.001被除數(shù)x

0.101001

+[-y]補(bǔ)

1.001

余數(shù)為負(fù)1.110001<0

q0=0

+2-1[y]補(bǔ)

0.0111

余數(shù)為正0.001101>0

q1=1

+2-2[-y]補(bǔ)

1.11001

余數(shù)為負(fù)1.111111<0

q2=0

+2-3[y]補(bǔ)

0.000111

余數(shù)為正0.000110>0

q3=1故得商q=q0.q1q2q3=0.101余數(shù)r=(0.00r3r4r5r6)=0.000110用CAS構(gòu)成的陣列除法器實(shí)現(xiàn)0.101001÷0.111

[y]補(bǔ)=0.111

[-y]補(bǔ)=1.001

0101001

0101

+[-y]補(bǔ)

1001

最高位無(wú)進(jìn)位1110q0=0,下次做加法

+[y]補(bǔ)

0111

最高位有進(jìn)位0011

q1=1,下次減法

+[-y]補(bǔ)

1001

最高位無(wú)進(jìn)位1111

q2=0,下次加法

+[y]補(bǔ)

0111

最高位有進(jìn)位0110

q3=1故得商q=q0.q1q2q3=0.101

余數(shù)r=0.1102-3=0.0001100012.5定點(diǎn)運(yùn)算器的組成2.5.1邏輯運(yùn)算

邏輯運(yùn)算——邏輯非、邏輯加、邏輯乘、邏輯異1

溫馨提示

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