計(jì)算機(jī)組成原理第講乘法_第1頁
計(jì)算機(jī)組成原理第講乘法_第2頁
計(jì)算機(jī)組成原理第講乘法_第3頁
計(jì)算機(jī)組成原理第講乘法_第4頁
計(jì)算機(jī)組成原理第講乘法_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第一頁,共二十四頁,編輯于2023年,星期一第3章運(yùn)算方法和運(yùn)算部件(3)Abinarymultiplierisanelectroniccircuitusedindigitalelectronics,suchasacomputer,tomultiplytwobinarynumbers.Itisbuiltusingbinaryadders.Untilthelate1970s,mostminicomputersdidnothaveamultiplyinstruction,andsoprogrammersuseda"multiplyroutine”whichrepeatedlyshiftsandaccumulatespartialresults,oftenwrittenusingloopunwinding.Earlymicroprocessorsalsohadnomultiplyinstruction.原碼一位乘法補(bǔ)碼一位乘法補(bǔ)碼兩位乘法原碼兩位乘法第二頁,共二十四頁,編輯于2023年,星期一UnsignedBinaryMultiplication

無符號數(shù)乘法兩個(gè)尾數(shù)為n位的數(shù)相乘,乘積的尾數(shù)為2n位。手算乘法的過程:1011被乘數(shù)×1101乘數(shù)101100001011101110001111位積乘積需要n個(gè)寄存器保存位積對應(yīng)于乘數(shù)的位,將被乘數(shù)逐次左移一位加在左下方。最后將n個(gè)位積相加,得到乘積。計(jì)算機(jī)不能照搬手算的算法。運(yùn)算器一次只能完成兩數(shù)的求和操作。需要2n位的加法器§3.3二進(jìn)制乘法運(yùn)算BinaryMultiplication

Binary(Fixed-Point)MultiplicationArithmetic被乘數(shù)左移,根據(jù)乘數(shù)每個(gè)位做不同運(yùn)算,都不便于計(jì)算機(jī)實(shí)現(xiàn)第三頁,共二十四頁,編輯于2023年,星期一計(jì)算機(jī)的算法:

只能把每一個(gè)新位積與部分積(部分積的初值為零)相加,總共做n次加法(累加)。

部分積與位積相加時(shí),只有n位與位積相加,其余部分并不參加運(yùn)算。因此用n位的加法器就可完成乘法了。被乘數(shù)左移一位的操作改為部分積右移一位后與被乘數(shù)相加。只需用1個(gè)n位的寄存器存放部分積的高位,部分積的低位與乘數(shù)共用一個(gè)n位的寄存器,在乘數(shù)右移一位(計(jì)算該位位積后自動丟失)的同時(shí)將部分積最低一位移入。乘法完成后,原來存放乘數(shù)的寄存器中是乘積的低n位,乘數(shù)全部丟失,而硬件則節(jié)省了一個(gè)寄存器。被乘數(shù)10111101乘數(shù)0000部分積+10111011+000001011+101101011110右移一位00101111右移一位設(shè)計(jì)乘法邏輯第四頁,共二十四頁,編輯于2023年,星期一&&計(jì)數(shù)器A部分積A→FB→FF/2→ACd…C乘數(shù)B被乘數(shù)F加法器

移位電路C/2→C無符號數(shù)乘法邏輯原理圖運(yùn)算前,先將被乘數(shù)送寄存器B,乘數(shù)送寄存器C,計(jì)數(shù)器的初值為N,部分積寄存器A清零。若乘數(shù)末位Yi=1,部分積與被乘數(shù)在加法器相加。若乘數(shù)末位Yi=0,則加法器輸出的是部分積與0的和。寄存器A和C中的部分積和乘數(shù)都右移一位形成新的部分積,部分積的最低位移入C空出的最高位。如此重復(fù)N次,乘法計(jì)算完畢。乘積的高N位在A中,低N位在C中,原來在C中的乘數(shù)在移位中丟失。CPA第五頁,共二十四頁,編輯于2023年,星期一[例1]X=+0.1011B,Y=-0.1101B,解:乘積的符號位用原碼一位乘法計(jì)算X·Y[X]原=|X|=[Y]原=|Y|=0.10111.11010.10110.1101原碼運(yùn)算,必須把符號位與數(shù)值部分分開進(jìn)行。符號位做異或運(yùn)算,數(shù)值部分做無符號數(shù)相乘。Mostcomputersusea"shiftandadd"algorithmformultiplyingsmallintegers.第六頁,共二十四頁,編輯于2023年,星期一|X|=0.1011,|Y|=0.1101高位部分積

00000低位部分積/乘數(shù)

1101

初始狀態(tài)|X·Y|=0.10001111右移010001111100011111右移00110111

1011011111+)01011右移000101111001011110+)00000右移001011110010111101+)01011+)01011X·Y=-0.10001111B[X·Y]原=1.10001111乘數(shù)最低位為1,加|X|乘數(shù)最低位為0,加0乘數(shù)最低位為1,加|X|乘數(shù)最低位為1,加|X|第七頁,共二十四頁,編輯于2023年,星期一原碼一位乘法流程圖YY開始結(jié)束A←0,Cd←nB←X,C←YCn=1?A←(A)+(B)(A),(C)右移一位Cd←(Cd)—1Cd=0?NNFlowchart如果乘數(shù)的數(shù)值部分是N位,則共需做N次加法,N次右移。乘積的數(shù)值部分是2N位。原碼乘法做的是絕對值相乘,相當(dāng)于無符號數(shù)相乘。右移按邏輯右移進(jìn)行。缺點(diǎn):需做N次加法,N次右移,時(shí)間太長。計(jì)數(shù)器乘數(shù)被乘數(shù)部分積第八頁,共二十四頁,編輯于2023年,星期一乘積的符號位原碼運(yùn)算,必須把符號位與數(shù)值部分分開進(jìn)行。符號位做異或運(yùn)算,數(shù)值部分做無符號數(shù)相乘。

兩個(gè)原碼表示的數(shù)(無論小數(shù)或整數(shù))相乘,乘積的值是兩數(shù)絕對值之積,符號是相乘兩數(shù)符號位的異或值。兩個(gè)尾數(shù)為n位的數(shù)相乘,乘積的尾數(shù)為2n位。Thesecondproblemisthatthebasicschoolmethodhandlesthesignwithaseparaterule("+with+yields+","+with-yields-",etc.).Thismethodismathematicallycorrect,butithastwoseriousengineeringproblems.Thefirstisthatitinvolves32intermediateadditionsina32-bitcomputer,or64intermediateadditionsina64-bitcomputer.Theseadditionstakealotoftime.第九頁,共二十四頁,編輯于2023年,星期一原碼兩位乘法按照乘數(shù)每兩位的情況,一次求出對應(yīng)于該2位的部分積。增加少量邏輯電路,可使乘法的速度提高一倍。乘數(shù)的相鄰兩位Yi-1Yi有4種狀態(tài)組合,分別對應(yīng)一種操作:Yi-1Yi

操作00011011相當(dāng)于0·X相當(dāng)于1·X相當(dāng)于2·X相當(dāng)于3·X部分積Pi+0后右移2位部分積Pi+X后右移2位部分積Pi+2X后右移2位部分積Pi+3X后右移2位第十頁,共二十四頁,編輯于2023年,星期一加2X很容易實(shí)現(xiàn)。把X左移一位,或者把X向左斜傳送一位。加3X一般不能一次完成。分兩次(3X=X+2X)又降低了速度。如果令3X=4X—X,形式上看好象需要2次。實(shí)際上可以這樣:

本次運(yùn)算只做減X,用一個(gè)欠帳觸發(fā)器C記下欠加4X,下一步操作時(shí)補(bǔ)上。

由于本次累加后,部分積要右移2位,相當(dāng)于乘數(shù)相對左移2位。此時(shí)做+X相當(dāng)于前一步+4X。所以,3X=4X—X只需要做一次。欠帳觸發(fā)器C的初值為0。Yi-1Yi

操作00011011相當(dāng)于0·X相當(dāng)于1·X相當(dāng)于2·X相當(dāng)于3·X部分積Pi+0后右移2位部分積Pi+X后右移2位部分積Pi+2X后右移2位部分積Pi+3X后右移2位第十一頁,共二十四頁,編輯于2023年,星期一原碼二位乘法的運(yùn)算規(guī)則:當(dāng)欠帳觸發(fā)器C=0時(shí),Yi-1YiC

000 010 100 110 操作

部分積Pi+0后右移2位 部分積Pi+X后右移2位 部分積Pi+2X后右移2位 部分積Pi—X后右移2位

0→C 0→C 0→C 1→C

當(dāng)欠帳觸發(fā)器C=1時(shí),Yi-1YiC

001 011 101 111 操作

部分積Pi+X后右移2位 部分積Pi+2X后右移2位 部分積Pi+[-X]補(bǔ)后右移2位 部分積Pi+0后右移2位

0→C 0→C 1→C 1→C

第十二頁,共二十四頁,編輯于2023年,星期一減X用加[-X]補(bǔ)實(shí)現(xiàn)。右移按補(bǔ)碼右移規(guī)則進(jìn)行。

當(dāng)乘數(shù)的數(shù)值部分是N位(N必須是偶數(shù)),則共需做N/2次加法和N/2次右移。最后如果還有欠帳,再做一次+X。欠帳觸發(fā)器C的初值為0。

由于在運(yùn)算中有+2|X|,產(chǎn)生的進(jìn)位可能侵占符號位,所以被乘數(shù)和部分積應(yīng)該取3符號位。例2:X=-0.111111,Y=+0.111001,用原碼二位乘法計(jì)算X*Y符號位單獨(dú)處理,乘數(shù)的數(shù)值部分必須是偶數(shù)位。相乘的是兩數(shù)的絕對值。原碼二位乘法的運(yùn)算規(guī)則:第十三頁,共二十四頁,編輯于2023年,星期一解:[X]

原=1.111111乘積的符號位|X|=0.111111|2X|=001.111110例2:X=-0.111111,Y=+0.111001,用原碼二位乘法計(jì)算X*Y[Y]

原=0.111001|Y|=0.111001[-|X|]補(bǔ)=1.000001第十四頁,共二十四頁,編輯于2023年,星期一|X|=0.111111,|Y|=0.111001,

|2X|=001.111110,[-|X|]補(bǔ)=1.000001高位部分積

000.000000乘數(shù)欠帳觸發(fā)器C

1110010

初始狀態(tài)

000.111000000111111.111001

0001111

右移2位

111.100100+111.000001000.1000110111110

右移2位010.001101+001.111110000.0011111111100

右移2位000.111111+000.111111+000.111111Yi-1YiC=010,加|X|,0→CYi-1YiC=100,加|2X|,0→CYi-1YiC=110,加[-|X|]補(bǔ),1→CC=1,加|X|[X*Y]原=1.111000000111X*Y=-0.111000000111|X*Y|

=0.111000000111第十五頁,共二十四頁,編輯于2023年,星期一

在計(jì)算機(jī)系統(tǒng)內(nèi),由于電路故障或電磁干擾等原因,數(shù)據(jù)在存取或傳送過程中可能產(chǎn)生錯誤。為了能發(fā)現(xiàn)或糾正這類錯誤,常采用具有能發(fā)現(xiàn)某些錯誤,或具有能確定錯誤的性質(zhì)和準(zhǔn)確的出錯位置乃至能自動糾正錯誤的能力的編碼方法,即數(shù)據(jù)校驗(yàn)碼。Mostcodesare"systematic":thetransmittersendsafixednumberoforiginaldatabits,followedbyfixednumberofcheckbits(usuallyreferredtoasredundancyintheliterature)whicharederivedfromthedatabitsbysomedeterministicalgorithm.其實(shí)現(xiàn)原理是在合法的數(shù)據(jù)編碼之間加進(jìn)一些不允許出現(xiàn)的非法編碼,使合法編碼的碼距增大。當(dāng)合法的數(shù)據(jù)編碼出現(xiàn)錯誤時(shí),就變成非法編碼。這就可以用檢測編碼的合法性來發(fā)現(xiàn)錯誤。Thereceiverappliesthesamealgorithmtothereceiveddatabitsandcomparesitsoutputtothereceivedcheckbits;ifthevaluesdonotmatch,anerrorhasoccurredatsomepointduringthetransmission.§3.7數(shù)據(jù)校驗(yàn)碼第十六頁,共二十四頁,編輯于2023年,星期一

由若干位代碼組成的一個(gè)字叫“碼字”,一種碼制是若干種碼字的組合。將兩個(gè)碼字逐位比較,有幾個(gè)二進(jìn)制位不同稱為這兩個(gè)碼字間的距離。

只有一位不同的,稱其碼距為1。例如,3位二進(jìn)制代碼有8種狀態(tài),若一種碼制用到全部8種碼字,其碼距為1。就是說,任何一個(gè)合法碼字的一位或幾位出錯時(shí),就變成另一個(gè)合法碼字。一種碼制中各碼字間的最小距離稱為該碼制的“碼距”。000111101001110010011100第十七頁,共二十四頁,編輯于2023年,星期一一種碼制中各碼字間的最小距離稱為該碼制的“碼距”。

若增大編碼的冗余度,設(shè)計(jì)該碼制時(shí)用4個(gè)二進(jìn)制位來表示8個(gè)合法碼字。由于只利用了全部16種狀態(tài)中的8種來表示合法碼,就可以把其余8種狀態(tài)作為非法碼,則碼距可能增大到2。當(dāng)一個(gè)合法碼的一位出錯時(shí),將變成一個(gè)非法碼而被發(fā)現(xiàn)。所增加的一位稱為校驗(yàn)位。數(shù)據(jù)000001010011100101110111編碼00000011010101101001101011001111非法碼00100001011101001011100011101101出錯第十八頁,共二十四頁,編輯于2023年,星期一

合理的安排非法編碼的數(shù)量和編碼規(guī)則,增大合法碼的碼距就可以提高發(fā)現(xiàn)錯誤的能力,甚至能自動糾正錯誤;但表示一定數(shù)量的合法碼所使用的二進(jìn)制位數(shù)也增多,使數(shù)據(jù)存儲和傳送的數(shù)量增大,硬件開銷也相應(yīng)增大。常用的數(shù)據(jù)校驗(yàn)碼有:奇偶校驗(yàn)碼、海明校驗(yàn)碼和循環(huán)冗余校驗(yàn)碼等。

根據(jù)糾錯理論,編碼的最小距離與編碼的檢測、糾錯能力的關(guān)系為:L—1=C+D其中:L是編碼的最小距離,D是可以檢測錯誤代碼的位數(shù),C是可以糾正錯誤代碼的位數(shù),D≥C。當(dāng)L=3時(shí),可檢測出2個(gè)錯誤,或者可檢測并糾正1位錯誤。當(dāng)L=4時(shí),可檢測出3個(gè)錯誤,或者可檢測出2位并糾正1位錯誤。第十九頁,共二十四頁,編輯于2023年,星期一奇偶校驗(yàn)碼

ParityCheckCode

奇偶校驗(yàn)碼的編碼方法是給n位的合法編碼增加一個(gè)奇偶校驗(yàn)位,使其碼距增加到2。任何一位出錯(包括校驗(yàn)位)都會使代碼的奇偶性改變,從而被發(fā)現(xiàn)。校驗(yàn)位可以放在最高數(shù)據(jù)位的左邊,或最低數(shù)據(jù)位的右邊。

若n+1位的奇偶校驗(yàn)碼中“1”的個(gè)數(shù)為奇數(shù)稱為奇校驗(yàn),“1”的個(gè)數(shù)為偶數(shù)稱為偶校驗(yàn)。

當(dāng)n位信息代碼中有偶數(shù)個(gè)1,則偶校驗(yàn)附加的校驗(yàn)位為0,而奇校驗(yàn)的校驗(yàn)位為1

。例如:數(shù)據(jù)代碼

奇校驗(yàn)碼

偶校驗(yàn)碼1010101010100101010101101101101110110110Aparitybitisanerrordetectionmechanismthatcanonlydetectanoddnumberoferrors.設(shè)校驗(yàn)位在最右邊第二十頁,共二十四頁,編輯于2023年,星期一交叉奇偶校驗(yàn)

奇偶校驗(yàn)碼廣泛應(yīng)用于存儲器讀寫檢查,數(shù)據(jù)傳輸過程中的檢查等。對數(shù)據(jù)塊的橫向和縱向都有奇偶校驗(yàn)位。例如:A7A6A5A4A3A2A1A0

橫向校驗(yàn)位第1字節(jié)11001011→1第2字節(jié)01111100→1第3字節(jié)10011010→0第4字節(jié)10010101→0

↓↓↓↓↓↓↓↓縱向校驗(yàn)位10111000交叉奇偶校驗(yàn)?zāi)軌虬l(fā)現(xiàn)兩個(gè)位同時(shí)出錯。

奇偶校驗(yàn)?zāi)馨l(fā)現(xiàn)1位或者奇數(shù)個(gè)

溫馨提示

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

評論

0/150

提交評論