版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 創(chuàng)意公關(guān)推廣合同(2篇)
- 2025承包合同書(shū)企業(yè)范文
- 2024年度天津市公共營(yíng)養(yǎng)師之三級(jí)營(yíng)養(yǎng)師測(cè)試卷(含答案)
- 2024年度四川省公共營(yíng)養(yǎng)師之四級(jí)營(yíng)養(yǎng)師模擬試題(含答案)
- 2024年度四川省公共營(yíng)養(yǎng)師之二級(jí)營(yíng)養(yǎng)師自我檢測(cè)試卷A卷附答案
- 2025種子代理購(gòu)銷合同書(shū)
- 2025年中國(guó)咖啡杯行業(yè)發(fā)展前景預(yù)測(cè)及投資策略研究報(bào)告
- 2025年中國(guó)注射用重組鏈激酶行業(yè)市場(chǎng)全景評(píng)估及發(fā)展前景預(yù)測(cè)報(bào)告
- 2025年中國(guó)廉價(jià)航空運(yùn)輸行業(yè)市場(chǎng)全景分析及投資策略研究報(bào)告
- 2025技術(shù)服務(wù)合同書(shū)范本
- 2025年初級(jí)會(huì)計(jì)職稱《經(jīng)濟(jì)法基礎(chǔ)》全真模擬及答案(解析3套)
- 《健康社區(qū)評(píng)價(jià)標(biāo)準(zhǔn)》
- 戶外市場(chǎng)研究報(bào)告-魔鏡洞察-202412
- 浙江省金華市金東區(qū)2023-2024學(xué)年九年級(jí)上學(xué)期語(yǔ)文期末試卷
- 【7地星球期末】安徽省合肥市包河區(qū)智育聯(lián)盟校2023-2024學(xué)年七年級(jí)上學(xué)期期末地理試題(含解析)
- ISO 56001-2024《創(chuàng)新管理體系-要求》專業(yè)解讀與應(yīng)用實(shí)踐指導(dǎo)材料之2:“1至3章:范圍、術(shù)語(yǔ)和定義”(雷澤佳編制-2025B0)
- (2021)最高法民申5114號(hào)凱某建設(shè)工程合同糾紛案 指導(dǎo)
- 【9物(人)期末】安慶市宿松縣2023-2024學(xué)年九年級(jí)上學(xué)期期末考試物理試題
- 導(dǎo)航通信一體化考核試卷
- 甘肅省會(huì)寧二中2025屆高考仿真模擬數(shù)學(xué)試卷含解析
- 2024年未成年子女房產(chǎn)贈(zèng)與協(xié)議
評(píng)論
0/150
提交評(píng)論