運(yùn)算方法和運(yùn)算部件乘除及校驗(yàn)課件_第1頁
運(yùn)算方法和運(yùn)算部件乘除及校驗(yàn)課件_第2頁
運(yùn)算方法和運(yùn)算部件乘除及校驗(yàn)課件_第3頁
運(yùn)算方法和運(yùn)算部件乘除及校驗(yàn)課件_第4頁
運(yùn)算方法和運(yùn)算部件乘除及校驗(yàn)課件_第5頁
已閱讀5頁,還剩89頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

關(guān)于運(yùn)算方法和運(yùn)算部件乘除及校驗(yàn)第1頁,講稿共94頁,2023年5月2日,星期三23.3.1定點(diǎn)數(shù)一位乘法1.定點(diǎn)原碼一位乘法(1)乘法的運(yùn)算規(guī)則設(shè)x=xf.x1x2…xn,y=yf.y1y2…yn乘積為P,乘積的符號位為Pf,則

Pf=xf⊕yf,|P|=|x|?|y|第2頁,講稿共94頁,2023年5月2日,星期三例A=0.1101,B=0.1011,求A*B

0.1101×0.1011

011010110100000011010.10001111筆算法的特點(diǎn): n位數(shù)相乘,需要將n個位積相加,需要2n位加法器,不能有效利用全加器操作

由手算到機(jī)器實(shí)現(xiàn),要解決三個問題:符號問題、部分積相加進(jìn)位問題、移位問題。位積A×BiA*B=0.10001111第3頁,講稿共94頁,2023年5月2日,星期三求|P|的運(yùn)算規(guī)則:位積=第4頁,講稿共94頁,2023年5月2日,星期三5原碼一位乘法的算法流程圖:i表示循環(huán)次數(shù)(相加/移位的次數(shù))yn表示乘數(shù)將要被判斷的那一位Pi為部分積第5頁,講稿共94頁,2023年5月2日,星期三6符號擴(kuò)展把一個數(shù)的位數(shù)進(jìn)行擴(kuò)充但其真值不變。正數(shù)的符號擴(kuò)展:最高符號位之前補(bǔ)0(“0”表示正號)。負(fù)數(shù)的符號擴(kuò)展:最高符號位之前補(bǔ)1(“1”表示負(fù)號)。例:

[X]補(bǔ)

=10010011,將其擴(kuò)展成16位補(bǔ)碼,得

[X]補(bǔ)

=1111111110010011例:

[X]補(bǔ)

=00101100,將其擴(kuò)展成16位補(bǔ)碼,得 [X]補(bǔ)

=0000000000101100第6頁,講稿共94頁,2023年5月2日,星期三7

A(部分積累加和)

C(乘數(shù))00.00001011+00.1101___________00.110100.01101101

1+00.1101_______________________01.001100.10011110

1+00.0000_________________________00.100100.01001111

0+00.1101_________________________01.0001

00.10001111

1丟棄項(xiàng)部分積右移加“被乘數(shù)”加“0”寄存器:A:存放部分積累加和、乘積高位B:存放被乘數(shù)C:存放乘數(shù)、乘積低位

A=00.0000(初始值)B=|X|=00.1101C=|Y|=00.1011例3.31X=0.1101,Y=0.1011,求X?Y.計(jì)算過程如下:加“被乘數(shù)”第7頁,講稿共94頁,2023年5月2日,星期三8

(2)邏輯實(shí)現(xiàn)第8頁,講稿共94頁,2023年5月2日,星期三9注意:兩操作數(shù)的絕對值相乘,符號位單獨(dú)處理。寄存器A.B均設(shè)置雙符號位,第1符號位始終是部分積符號,決定在右移時(shí)第1符號位補(bǔ)0操作步數(shù)由乘數(shù)的尾數(shù)位數(shù)決定,用計(jì)數(shù)器Cd來計(jì)數(shù)。即作n次累加和移位。最后是加符號位,根據(jù)Xs⊕Ys決定。第9頁,講稿共94頁,2023年5月2日,星期三10

補(bǔ)碼乘法不能簡單的套用原碼乘法的算法,因?yàn)檠a(bǔ)碼的符號位是參加運(yùn)算的。

(1)校正法所謂校正法,將[X]補(bǔ)和[Y]補(bǔ)按原碼運(yùn)算,所得結(jié)果根據(jù)情況加以校正,從而得到[XY]補(bǔ)。算法分析:若被乘數(shù)X的符號任意--[X]補(bǔ)

=X0.X1X2……Xn

1)Y為正:[Y]補(bǔ)

=0.Y1Y2……Yn

[XY]補(bǔ)

=X補(bǔ)(0.Y1Y2……Yn)2)Y為負(fù):[Y]補(bǔ)

=1.Y1Y2……Yn

[Y]補(bǔ)=2+Y,真值Y=[Y]補(bǔ)-2=1.Y1Y2…Yn-2=0.Y1Y2……Yn-1

[XY]補(bǔ)

=[X]補(bǔ)(0.Y1Y2……Yn)+[-X]補(bǔ)

3)Y符號任意:[XY]補(bǔ)

=X補(bǔ)[0.Y1Y2……Yn]+[-X]補(bǔ)Y0符號位Y<0,除按1)計(jì)算外,另加[-X]補(bǔ)校正直接按原碼乘法運(yùn)算2、定點(diǎn)補(bǔ)碼一位乘法第10頁,講稿共94頁,2023年5月2日,星期三11若例3.33中Y=-0.1011,求[X·Y]補(bǔ)時(shí),需在最后右移1位后,+[-X]補(bǔ)。校正第11頁,講稿共94頁,2023年5月2日,星期三南華大學(xué)計(jì)算機(jī)學(xué)院12(2)比較法算法(布斯公式)

校正法在乘數(shù)為負(fù)數(shù)時(shí),需要進(jìn)行校正,控制起來要復(fù)雜一些,我們希望有一個對于正數(shù)和負(fù)數(shù)都一致的算法,這就是比較法。比較法是英國的Booth夫婦提出來的,因此又稱Booth法。根據(jù)校正法的統(tǒng)一表達(dá)式:[XY]補(bǔ)=[X]補(bǔ)(0.Y1Y2……Yn)+[-X]補(bǔ)Y0

=[X]補(bǔ)(0.Y1Y2……Yn)-[X]補(bǔ)Y0

=[X]補(bǔ)(-Y0+2-1Y1+2-2Y2+……+2-nYn)

=[X]補(bǔ)[-Y0+(Y1-2-1Y1)+(2-1Y2-2-2Y2)+……+(2-(n-1)Yn-2-nYn)]

=[X]補(bǔ)[(Y1-Y0)+2-1(Y2-Y1)+2-2(Y3-Y2)+……+2-n(Yn+1-Yn)]比較法:用相鄰兩位乘數(shù)比較的結(jié)果決定+[X]補(bǔ)、[-X]補(bǔ)或+0。第12頁,講稿共94頁,2023年5月2日,星期三(Booth算法)的運(yùn)算規(guī)則:位積=(-)第13頁,講稿共94頁,2023年5月2日,星期三14補(bǔ)碼一位乘法算法流程圖:Pi為部分積00或11i表示循環(huán)次數(shù)(相加/移位的次數(shù))第14頁,講稿共94頁,2023年5月2日,星期三15例3.34x=-0.1101,y=-0.1011(書上y為正數(shù)),求[x×y]補(bǔ)=?

解:

[x]補(bǔ)=11.0011,[-x]補(bǔ)=00.1101(雙符號) [y]補(bǔ)=1.0101(單符號)第15頁,講稿共94頁,2023年5月2日,星期三16步數(shù)條件操作

PY

00.00001.01010

1)01[-X]補(bǔ)YiYi+1+00.110100.110100.01101

1.01012)10[X]補(bǔ)+11.001111.100111.1100111.0103)01[-X]補(bǔ)+00.110100.100100.01001111.014)10[X]補(bǔ)+11.001111.011111.101111111.0Yi+1Yi5)01

[-X]補(bǔ)+00.1101

00.10001111[XY]補(bǔ)=0.10001111右移時(shí)左邊補(bǔ)0,因?yàn)槭钦龜?shù)(根據(jù)符號擴(kuò)展原理)右移時(shí)左邊補(bǔ)1,因?yàn)槭秦?fù)數(shù)(根據(jù)符號擴(kuò)展原理)第16頁,講稿共94頁,2023年5月2日,星期三17P、X取雙符號位,符號參加運(yùn)算;Y取單符號位,符號參加移位,以決定最后是否修正;Y末位設(shè)置附加位Yi+1,初值為0,Yi+1Yi組成判斷位,決定運(yùn)算操作;需作n+1次累加,n次移位(最后一次不移位)。

(4)運(yùn)算規(guī)則第17頁,講稿共94頁,2023年5月2日,星期三183.3.2.定點(diǎn)數(shù)二位乘法每次用兩位乘數(shù)去乘被乘數(shù),乘法速度提高一倍Yi-1(高位)Yi(低位)部分積累加、移位00011011

1/4P1/4(P+X)1/4(P+2X)1/4(P+3X)(0)(1)(2)(3)

0

X

2X

3XX左移1位即得2X,如何實(shí)現(xiàn)+3X操作?

原碼兩位乘法為例

(1)算法分析(P48)第18頁,講稿共94頁,2023年5月2日,星期三19

1/4(P+3X)=

1/4(P-X+4X)=1/4(P-X)+X

設(shè)置欠帳觸發(fā)器C=0不欠帳1欠帳,下次補(bǔ)作+X操作(2)算法(P49表3.3)00000101001100101110111操作

Yi-1YiC1/4(P+X)0C1/4(P+X)0C1/4(P+2X)0C1/4P0C1/4(P+2X)

0C1/4(P-X)

1C1/4(P-X)

1C1/4P

1C第19頁,講稿共94頁,2023年5月2日,星期三20[-X]補(bǔ)=11.0110012X=01.001110

部分積

乘數(shù) 欠位C

00.0000001001110

+[-X]補(bǔ)

11.011001 11.011001 右移2位11.110110011001

1 +2X01.001110

01.000100

右移2位00.010001 000110 0+2X01.00111001.011111

右移2位000101111100010 乘積高位 乘積低位

X*Y=0.010111110001例3.35假定X=0.100111,Y=0.100111求XY=?

第20頁,講稿共94頁,2023年5月2日,星期三21注意:

若最后一次操作欠下+4X即C=1,則最后一次右移2位后,還需補(bǔ)充+X操作,+X后不再移位。乘數(shù)符號不參加運(yùn)算,參加運(yùn)算的操作數(shù)取絕對值,x|X|,2x2|X|,符號位單獨(dú)處理。第21頁,講稿共94頁,2023年5月2日,星期三南華大學(xué)計(jì)算機(jī)學(xué)院223.3.3陣列乘法器

為了進(jìn)一步提高乘法運(yùn)算的速度,可采用高速乘法模塊組成的陣列乘法器,設(shè)有兩個帶符號的二進(jìn)制數(shù)。例:m=n=4時(shí),有:

x4x3x2x1*y4y3y2y1

----------------------------------------x4y1x3y1x2y1x1y1

x4y2x3y2x2y2x1y2

x4y3x3y3x2y3x1y3

x4y4x3y4x2y4x1y4

P8P7P6P5P4P3P2P1

其結(jié)構(gòu)圖見P50圖3.7可同時(shí)得到各項(xiàng)部分積,并一次將其相加就得到乘積運(yùn)算速度快。第22頁,講稿共94頁,2023年5月2日,星期三23圖3.7陣列乘法器第23頁,講稿共94頁,2023年5月2日,星期三243.4二進(jìn)制除法運(yùn)算

二進(jìn)制除法可模仿十進(jìn)制除法運(yùn)算。 除法,理論上是乘法的逆運(yùn)算,在算法上本質(zhì)是一種試探法:它試探被除數(shù)是大于等于還是小于除數(shù),大于等于時(shí)商為1,小于時(shí)商為0。第24頁,講稿共94頁,2023年5月2日,星期三25

筆算除法A=0.1001,B=0.1011,求商C,余數(shù)R.

0.1101

0.10110.10010R0=A -0.01011-2-1B 0.001110R1 -0.001011-2-2B 0.0000110R2

0.00001100R3 -0.00001011-2-4B 0.00000001R4第25頁,講稿共94頁,2023年5月2日,星期三26筆算過程在計(jì)算機(jī)上的實(shí)現(xiàn),必須作些變動:比較除數(shù)與被除數(shù)過程,用減法實(shí)現(xiàn);除數(shù)乘以1/2與余數(shù)比較,等效于除數(shù)不動,而使余數(shù)左移一位;上商可以通過在商寄存器末位置1(商1)或置0(商0)來實(shí)現(xiàn)。上商同時(shí)使商寄存器與余數(shù)寄存器一起左移一位。(商寄存器初始存放被除數(shù)的低位數(shù)值部分)第26頁,講稿共94頁,2023年5月2日,星期三273.4.1定點(diǎn)除法運(yùn)算定點(diǎn)原碼一位除法有恢復(fù)余數(shù)法和加減交替法兩種方法,在計(jì)算機(jī)中常用的是加減交替法,因?yàn)樗牟僮鞑襟E少,而且也不復(fù)雜。兩個原碼數(shù)相除,其商的符號為兩數(shù)符號的異或值,數(shù)值則為兩數(shù)絕對值相除后的結(jié)果。實(shí)現(xiàn)除法的關(guān)鍵:

比較余數(shù)、除數(shù)絕對值大小,以決定上商。第27頁,講稿共94頁,2023年5月2日,星期三28運(yùn)算規(guī)則:符號位單獨(dú)處理,C0=A0B0數(shù)值部分變成兩正數(shù)相除,即:|A|/|B|(|A|<|B|,防止商溢出)第1步除法通過R0-|B|(R0=|A|)實(shí)現(xiàn);其后每1步除法通過2Ri-|B|(i=1,2,…,n)實(shí)現(xiàn):若2Ri-|B|=Ri+10,即余數(shù)為正,則商上1;若2Ri-|B|=Ri+1<0,即余數(shù)為負(fù),則商上0。第28頁,講稿共94頁,2023年5月2日,星期三29

1.恢復(fù)余數(shù)法

不管被除數(shù)(或余數(shù))減除數(shù)是否夠減,都一律做減法。若余數(shù)為正或0,表示夠減,該位商上“1”,余數(shù)左移1位。若余數(shù)為負(fù),表示不夠減,該位商上“0”,并要恢復(fù)原來的被除數(shù)(或余數(shù)),再將其左移1位。按上述規(guī)則實(shí)現(xiàn)的除法器,有什么問題?

相同位數(shù)的除法,對于不同的值,由于可能有恢復(fù)余數(shù)過程,運(yùn)算步數(shù)不統(tǒng)一。控制器實(shí)現(xiàn)困難?。ɑ貞洠撼朔ㄟ\(yùn)算器里的步數(shù)計(jì)數(shù)器)第29頁,講稿共94頁,2023年5月2日,星期三30

設(shè)某步得到余數(shù)Ri≥0,得到下步除法的新余數(shù)Ri+1:

Ri+1=2Ri-|B|

若Ri是假余數(shù),即Ri<0,要得到下步除法的新余數(shù)Ri+1,要先恢復(fù)余數(shù),而后左移一位再減|B|才能得到新余數(shù)。即:

Ri+1=2(Ri+|B|)-|B|

將上式變換一下,得:

Ri+1=2Ri+|B|去掉恢復(fù)步!加減交替法第30頁,講稿共94頁,2023年5月2日,星期三31

若某步除法Ri<0,要得到下步除法的新余數(shù)Ri+1,不必恢復(fù)余數(shù),只要將Ri視為余數(shù),左移一位,再加上|B|就得到新余數(shù)Ri+1。即:本次余數(shù)為正,下步除法作減法;(夠減,商上1)本次余數(shù)為負(fù),下步除法作加法。(不夠減,商上0)2.加減交替法第31頁,講稿共94頁,2023年5月2日,星期三例3.36設(shè)被除數(shù)X=0.1011,除數(shù)Y=0.1101,用加減交替法求X/Y。

[-Y]補(bǔ)=11.0011,計(jì)算過程如下:00101100000開始情形110011+[-Y]補(bǔ)11111000000不夠減,商上011110000000左移001101+Y00100100001夠減,商上101001000010左移110011+[-Y]補(bǔ)00010100011夠減,商上100101000110左移110011+[-Y]補(bǔ)11110100110不夠減,商上011101001100左移001101+Y00011101101夠減,商上1+)+)+)+)+)被除數(shù)(余數(shù)R)(被除數(shù))(商)操作說明余數(shù)商X/Y=0.1101,余數(shù)=0.00000111第32頁,講稿共94頁,2023年5月2日,星期三

余數(shù)寄存器(A)中開始時(shí)存放被除數(shù)的絕對值,以后將存放各次余數(shù),取雙符號位。除數(shù)寄存器(B)存放除數(shù)的絕對值,取雙符號位。商寄存器(C)同來存放商及初始被除數(shù)低位數(shù)值(被除數(shù)位數(shù)可以是除數(shù)的兩倍),取單符號位。將被除數(shù)X視為初始余數(shù)R0,根據(jù)R0符號位正(絕對值),令商符為0,正式的商符以后再置入。第一步為-Y。商值則根據(jù)余數(shù)Ri的符號來決定,正則商上1,求下一位商的辦法是余數(shù)左移一位再減去除數(shù);當(dāng)余數(shù)為負(fù)則商上0,求下一位商的辦法是余數(shù)左移一位再加上除數(shù)。左移位時(shí)末位補(bǔ)0。最后一步操作:如果要求得n位商(不含符號位),則需作n步“左移-加減”循環(huán);若第n步余數(shù)為負(fù),則需增加一步恢復(fù)余數(shù),增加的這一步不移位。第33頁,講稿共94頁,2023年5月2日,星期三343.4.2提高除法運(yùn)算速度的方法舉例

1.跳0跳1除法

提高規(guī)格化小數(shù)絕對值相除速度的算法。可根據(jù)余數(shù)前幾位代碼值再次求得幾位同為1或0的商。其規(guī)則是:(1)如果余數(shù)R≥0,且R的高K個數(shù)位均數(shù)0,則本次直接得商1,后跟K-1個0。R左移K位后,減去除數(shù)Y,得新余數(shù)。(2)如果余數(shù)R<0,且R的高K個數(shù)位均為1,則本次商為0,后跟K-1個1,R左移K位后,加上除數(shù)Y,得新余數(shù)。(3)不滿足(1)和(2)中條件時(shí),按一位除法上商。第34頁,講稿共94頁,2023年5月2日,星期三35例3.37

設(shè)X=0.1010000,Y=0.1100011,求X/Y。解:略

2.除法運(yùn)算通過乘法操作來實(shí)現(xiàn) 在計(jì)算機(jī)運(yùn)行時(shí),執(zhí)行乘法指令的幾率比除法高。某些CPU中設(shè)置有專門的乘法器,一般沒有專用除法器,在這種情況下,利用乘法來完成除法運(yùn)算可提高速度。第35頁,講稿共94頁,2023年5月2日,星期三36設(shè)X為被除數(shù),Y為除數(shù),按下式完成X/Y。式中Fi(0≤i≤r)為迭代系數(shù),如果迭代幾次后,可以使分母Y×F0×F1×…×Fr→1,則分子即為商:

X·F0·F1…Fr

因此,問題是如何找到一組迭代系數(shù),使分母很快趨近于1。若X和Y為規(guī)格化正小數(shù)二進(jìn)制代碼,可寫成: Y=1-δ(0<δ≤1/2)第36頁,講稿共94頁,2023年5月2日,星期三37如果取F0=1+δ,則第一次迭代結(jié)果:

Y0=Y·F0=(1-δ)(1+δ)=1-δ2取F1=1+δ2,則第二次迭代結(jié)果:

Y1=Y0·F1=(1-δ2)(1+δ2)=1-δ4 …取Fi=1+δ2i,則第i+1次迭代結(jié)果:

Yi=Yi-1·Fi=(1-δ2i)(1+δ2i)=1-δ2i+1當(dāng)i增加時(shí),Y將很快趨近于1,其誤差為δ2i+1。實(shí)際上求得Fi的過程很簡單,即

Fi=1+δ2i=2-1+δ2i=2-(1-δ2i)=2-Yi-1 Fi就是(-Yi-1)的補(bǔ)碼(0≤i≤r)。第37頁,講稿共94頁,2023年5月2日,星期三38例3.38

設(shè)X=0.1000,Y=0.1011則δ=1-Y=0.0101,F(xiàn)0=1+δ=1.0101

分子分母分別進(jìn)行乘法運(yùn)算。

F1=2-Y0=2-0.1110=1.0010

分母趨近于1所以 第38頁,講稿共94頁,2023年5月2日,星期三393.5浮點(diǎn)數(shù)的運(yùn)算方法

浮點(diǎn)數(shù)的表示形式(以2為底):

N=M·2E

其中,M為浮點(diǎn)數(shù)的尾數(shù),一般為絕對值小于1的規(guī)格化二進(jìn)制小數(shù)用原碼或補(bǔ)碼形式表示;E為浮點(diǎn)數(shù)的階碼,一般是用移碼或補(bǔ)碼表示的整數(shù)。

第39頁,講稿共94頁,2023年5月2日,星期三403.5.1浮點(diǎn)數(shù)的加減法運(yùn)算 兩數(shù)首先均為規(guī)格化數(shù),在進(jìn)行規(guī)格化浮點(diǎn)數(shù)的加減運(yùn)算需經(jīng)過五步完成:(1)對階操作:低階向高階補(bǔ)齊,使階碼相等;(2)尾數(shù)運(yùn)算:階碼對齊后直接對尾數(shù)運(yùn)算;(3)結(jié)果規(guī)格化:對運(yùn)算結(jié)果進(jìn)行規(guī)格化處理;

(使補(bǔ)碼尾數(shù)的最高位和尾數(shù)符號相反)(4)舍入操作:丟失位進(jìn)行0舍1入或恒置1處理;(5)判斷溢出:判斷階碼是否溢出,下溢則將運(yùn)算結(jié)果置0(機(jī)器零),上溢則溢出中斷。第40頁,講稿共94頁,2023年5月2日,星期三舉例說明如下:(1)對階運(yùn)算(小階向大階對齊)尾數(shù)為原碼時(shí),尾數(shù)右移,符號位不動,最高位補(bǔ)0尾數(shù)為補(bǔ)碼時(shí),尾數(shù)右移,符號也移位,最高位補(bǔ)符號位例如:求 =?小階對大階舍掉的是如大階對小階則舍掉的是第41頁,講稿共94頁,2023年5月2日,星期三(2)尾數(shù)的加減運(yùn)算(3)規(guī)格化:原碼尾數(shù)值高位為1,補(bǔ)碼尾數(shù)值高位與符號相反(4)舍入操作:0舍1入或恒置1例1:求 =?0舍1入后為恒置1例2:求=?0舍1入后為恒置1(5)判斷結(jié)果的正確性(即結(jié)果的階碼是否溢出)第42頁,講稿共94頁,2023年5月2日,星期三南華大學(xué)計(jì)算機(jī)學(xué)院43規(guī)格化浮點(diǎn)數(shù)加減運(yùn)算流程。(P91)第43頁,講稿共94頁,2023年5月2日,星期三44例3.39兩浮點(diǎn)數(shù)相加,求X+Y。

已知:X=2010·0.11011011,y=2100·(-0.10101100)計(jì)算過程:解:X和Y在機(jī)器中的浮點(diǎn)補(bǔ)碼表示形式為(雙符號位):階符階碼數(shù)符尾數(shù)

X:000100011011011

Y:001001101010100(1)對階操作

階差ΔE=[Ex]補(bǔ)+[-EY]補(bǔ)=00010+11100=11110

X階碼小,Mx右移2位,保留階碼E=00100。

[Mx]補(bǔ)=000011011011下劃線上的數(shù)是右移出去而保留的附加位。(2)尾數(shù)相加

[Mx]補(bǔ)+[MY]補(bǔ)=000011011011+1101010100=111000101011。(3)規(guī)格化操作

左規(guī),移1位,結(jié)果:110001010110;階碼-1,E=00011。

第44頁,講稿共94頁,2023年5月2日,星期三45(4)舍入附加位最高位為1,在所得結(jié)果的最低位+1。得新結(jié)果:[M]補(bǔ)=1100010110,

M:-0.11101010。(5)判溢出階碼符號位為00,故不溢出。最終結(jié)果為:

X+Y=2011·(-0.11101010)第45頁,講稿共94頁,2023年5月2日,星期三

浮點(diǎn)數(shù)的乘除:階碼為兩數(shù)階碼之和、差,其尾數(shù)應(yīng)為兩數(shù)的尾數(shù)之積、商。

結(jié)果的處理:結(jié)果必須進(jìn)行規(guī)格化、舍入和判溢出等操作。

3.5.2浮點(diǎn)數(shù)的乘除法運(yùn)算第46頁,講稿共94頁,2023年5月2日,星期三1.浮點(diǎn)數(shù)的階碼運(yùn)算

階碼運(yùn)算:+1,-1,兩階碼求和以及兩階碼求差四種。

移碼的運(yùn)算規(guī)則:

移碼的定義為:[X]移=2n+X -2n≤X<2n

[X]移+[Y]移=2n+X+2n+Y=2n+(2n+(X+Y)) =2n+[X+Y]移

結(jié)果的最高位多加了個1,要得到移碼形式的結(jié)果,需對結(jié)果的符號取反。第47頁,講稿共94頁,2023年5月2日,星期三

根據(jù)補(bǔ)碼定義:[Y]補(bǔ)=2n+1+Ymod2n+1因此求階碼和(移碼表示)可用如下方式完成: [X]移+[Y]補(bǔ)=2n+X+2n+1+Y=2n+1+(2n+(X+Y)) =[X+Y]移

mod2n+1

同理有[X]移+[-Y]補(bǔ)=[X-Y]移。 執(zhí)行移碼加或減時(shí),取加數(shù)或減數(shù)符號位的反碼(補(bǔ)碼)進(jìn)行運(yùn)算。即被加(減)數(shù)為移碼,加(減)數(shù)為補(bǔ)碼。直接用移碼實(shí)現(xiàn)求階碼之和第48頁,講稿共94頁,2023年5月2日,星期三

使用雙符號位的階碼相加減,并規(guī)定移碼(被加數(shù)或被減數(shù))的第二個符號位,即最高符號位恒用0參加加減運(yùn)算。

當(dāng)結(jié)果的最高符號位為0時(shí),表明沒有溢出。低位符號位為1,表明結(jié)果為正;為0時(shí),表明結(jié)果為負(fù)。

溢出條件是結(jié)果的最高符號位為1。

溢出時(shí),當(dāng)?shù)臀环栁粸?時(shí)結(jié)果上溢,為1時(shí)結(jié)果下溢。判定溢出的方法第49頁,講稿共94頁,2023年5月2日,星期三例:階碼用4位表示,其范圍為-8到+7。(1)當(dāng)X=+011,Y=+110時(shí),則有 [X]移=01011,[Y]補(bǔ)=00110,[-Y]補(bǔ)=11010階碼加[X+Y]移=[X]移+[Y]補(bǔ)=01011+00110=10001,結(jié)果上溢階碼減[X-Y]移=[X]移+[-Y]補(bǔ)=01011+11010=00101,結(jié)果正確,為-3(2)當(dāng)X=-011,Y=-110時(shí),則有 [X]移=00101,[Y]補(bǔ)=11010,[-Y]補(bǔ)=00110階碼加[X+Y]移=[X]移+[Y]補(bǔ)=00101+11010=11111,結(jié)果下溢階碼減[X-Y]移=[X]移+[-Y]補(bǔ)=00101+00110=01011,結(jié)果正確,為+3第50頁,講稿共94頁,2023年5月2日,星期三2.浮點(diǎn)數(shù)的舍入處理

計(jì)算機(jī)中,浮點(diǎn)數(shù)的尾數(shù)有確定的位數(shù),若浮點(diǎn)數(shù)的運(yùn)算結(jié)果超過給定的位數(shù),要進(jìn)行去除多余位數(shù)的處理。處理的原則是使本次處理所造成的誤差以及按此原則產(chǎn)生的累計(jì)誤差都比較小。①無條件地丟掉正常尾數(shù)最低位之后的全部數(shù)值。這種辦法被稱為截?cái)嗵幚?,其好處是處理簡單,缺點(diǎn)是影響結(jié)果的精度。②保留右移中移出的若干高位的值,然后再按某種規(guī)則用這些位上的值修正尾數(shù)。這種處理方法被稱為舍入處理。第51頁,講稿共94頁,2023年5月2日,星期三舍入方法:只要尾數(shù)最低位為1,或移出去的幾位中有1,就把尾數(shù)的最低位置1,否則仍保持原有的0值?;蛘卟捎酶啽愕姆椒ǎ醋畹臀缓阒?的方法。

0舍1入法(相當(dāng)于十進(jìn)制中的四舍五入法),即當(dāng)丟失的最高位的值為1時(shí),把這個1加到最低數(shù)值位上進(jìn)行修正,否則舍去丟失的各位的值,其缺點(diǎn)是要多進(jìn)行一次加法運(yùn)算。第52頁,講稿共94頁,2023年5月2日,星期三例3.40設(shè)有5位數(shù)(其中有一附加位),用原碼或補(bǔ)碼表示,舍入后保留4位結(jié)果。(0舍1入法)設(shè):[X]原=0.11011舍入后[X]原=0.1110 [X]原=0.11100舍入后[X]原=0.1110 [X]補(bǔ)=1.00101舍入后[X]補(bǔ)=1.0011 [X]補(bǔ)=1.00100舍入后[X]補(bǔ)=1.0010舍入后產(chǎn)生了誤差,但誤差值小于末位的權(quán)值。第53頁,講稿共94頁,2023年5月2日,星期三3.浮點(diǎn)乘法運(yùn)算步驟

舉例說明浮點(diǎn)乘法的運(yùn)算步驟:例3.41階碼4位(移碼),尾數(shù)8位(補(bǔ)碼,含1符號位),階碼以2為底。運(yùn)算結(jié)果仍取8位尾數(shù)。設(shè):X=2-5·0.1110011,Y=23·(-0.1110010)

運(yùn)算過程中階碼取雙符號位。(1)求乘積的階碼。乘積的階碼為兩數(shù)階碼之和。[EX+EY]移=[EX]移+[EY]補(bǔ)=00011+00011=00110(2)尾數(shù)相乘。用定點(diǎn)數(shù)相乘的辦法,[X·Y]補(bǔ)=1.0011001

1001010(尾數(shù)部分)高位部分低位部分第54頁,講稿共94頁,2023年5月2日,星期三(3)規(guī)格化處理。本例尾數(shù)已規(guī)格化,不需要再處理。如未規(guī)格化,需左規(guī)。(4)舍入。尾數(shù)(乘積)低位部分的最高為1,需要舍入,在乘積高位部分的最低位加1,因此

[X·Y]補(bǔ)=1.0011010(尾數(shù)部分)(5)判溢出。階碼未溢出,故結(jié)果為正確。 X·Y=2-2·(-0.1100110)

在求乘積的階碼(即兩階碼相加)時(shí),有可能產(chǎn)生上溢或下溢的情況;在進(jìn)行規(guī)格化處理時(shí),有可能產(chǎn)生下溢。第55頁,講稿共94頁,2023年5月2日,星期三4.浮點(diǎn)數(shù)乘法運(yùn)算(階碼的底為8或16)

N=8E·M或N=16E·M

階碼E和尾數(shù)M還都是用二進(jìn)制表示的,其運(yùn)算規(guī)則與階碼以2為底基本相同,但關(guān)于對階和規(guī)格化操作有新的相應(yīng)規(guī)定。當(dāng)階碼以8為底時(shí),只要尾數(shù)滿足1/8≤M<1或

-1≤M<-1/8就是規(guī)格化數(shù)。執(zhí)行對階和規(guī)格化操作時(shí),每當(dāng)階碼的值增或減1,尾數(shù)要相應(yīng)右移或左移三位。當(dāng)階碼以16為底時(shí),只要尾數(shù)滿足1/16≤M<1或

-1≤M<-1/16就是規(guī)格化數(shù)。執(zhí)行對階和規(guī)格化操作時(shí),階碼的值增或減1,尾數(shù)必須移四位。第56頁,講稿共94頁,2023年5月2日,星期三5.浮點(diǎn)數(shù)除法運(yùn)算步驟(1)求商的階碼 尾數(shù)調(diào)整:保證MX<MY

階碼相加減(2)尾數(shù)相除(3)規(guī)格化(4)舍入(5)判溢出第57頁,講稿共94頁,2023年5月2日,星期三583.6運(yùn)算部件

1.定點(diǎn)運(yùn)算部件

定點(diǎn)運(yùn)算部件由算術(shù)邏輯運(yùn)算部件ALU、若干個寄存器、移位電路、計(jì)數(shù)器、門電路等組成。

ALU部件主要完成加減法算術(shù)運(yùn)算及邏輯運(yùn)算。第58頁,講稿共94頁,2023年5月2日,星期三59第59頁,講稿共94頁,2023年5月2日,星期三602.浮點(diǎn)運(yùn)算部件

通常由階碼運(yùn)算部件和尾數(shù)運(yùn)算部件組成,其各自的結(jié)構(gòu)與定點(diǎn)運(yùn)算部件相似。但階碼部分僅執(zhí)行加減法運(yùn)算。其尾數(shù)部分則執(zhí)行加減乘除運(yùn)算,左規(guī)時(shí)有時(shí)需要左移多位。為加速移位過程,有的機(jī)器設(shè)置了可移動多位的電路。第60頁,講稿共94頁,2023年5月2日,星期三3.7數(shù)據(jù)校驗(yàn)碼

計(jì)算機(jī)系統(tǒng)中的數(shù)據(jù),在讀寫、存取和傳送的過程中可能產(chǎn)生錯誤。為減少和避免這類錯誤,一方面是精心設(shè)計(jì)各種電路,提高計(jì)算機(jī)硬件的可靠性;另一方面是在數(shù)據(jù)編碼上找出路,即采用某種編碼法,通過少量的附加電路,使之能發(fā)現(xiàn)某些錯誤,甚至能確定出錯位置,進(jìn)而實(shí)現(xiàn)自動改錯的能力。

數(shù)據(jù)校驗(yàn)碼:是一種常用的帶有發(fā)現(xiàn)某些錯誤或自動改錯能力的數(shù)據(jù)編碼方法。(查錯與糾錯)

實(shí)現(xiàn)原理:是加進(jìn)一些冗余碼,使合法數(shù)據(jù)編碼出錯變成非法數(shù)據(jù)來發(fā)現(xiàn)或改正數(shù)據(jù)。常用的數(shù)據(jù)校驗(yàn)碼:奇偶校驗(yàn)碼、海明校驗(yàn)碼和循環(huán)冗余校驗(yàn)碼。第61頁,講稿共94頁,2023年5月2日,星期三

采用冗余校驗(yàn)方法:即在基本的有效數(shù)據(jù)外,再擴(kuò)充部分位,增加部分(冗余部分)被稱為校驗(yàn)位。將校驗(yàn)位與數(shù)據(jù)位一起按某種規(guī)則編碼,寫入存儲器或向外發(fā)送。當(dāng)從存儲器讀出或接收到外部傳入的代碼時(shí),再按相應(yīng)的規(guī)則進(jìn)行判讀。若不符合約定的規(guī)則,則表示出現(xiàn)錯誤。根據(jù)錯誤的特征進(jìn)行修正恢復(fù)。第62頁,講稿共94頁,2023年5月2日,星期三幾個名詞概念碼字:由若干代碼組成的一個字。如8421碼中0110(6),0111(7)距離:兩個碼字之間不同的代碼個數(shù)。8421碼中,最小的距離為1,如0000和0001、0010和0011等;最大距離為4,如0111和1000。碼距(最小碼距):一種碼制中任意兩個碼字間的最小

距離。(合法碼到合法碼變動的最小位數(shù))

8421碼的碼距為1。碼距為1,即不能查錯也不能糾錯。碼距越大,查錯、糾錯能力越強(qiáng)。第63頁,講稿共94頁,2023年5月2日,星期三碼距與檢糾錯的關(guān)系①為了檢測e個誤碼,要求最小碼距d0應(yīng)滿足: d0≥e+1②為了糾正t個誤碼,要求最小碼d0距應(yīng)滿足: d0≥2t+1③為了糾正t個誤碼,同時(shí)能檢測e個誤碼(e>t),要求最小碼距d0應(yīng)滿足: d0≥e+t+17/6/202364第64頁,講稿共94頁,2023年5月2日,星期三3.7.1奇偶校驗(yàn)碼

奇偶校驗(yàn)碼是計(jì)算機(jī)中廣泛采用的檢查傳輸數(shù)據(jù)準(zhǔn)確性的方法。奇偶校驗(yàn)的原理是: 在每組數(shù)據(jù)信息上附加一個校驗(yàn)位,使碼距由1增加到2(合法碼到合法碼變動的最小位數(shù)為2)。若編碼中有奇數(shù)個二進(jìn)制位出錯了,這個碼將變成非法編碼。如果采用奇校驗(yàn),則這組數(shù)據(jù)加上校驗(yàn)碼位后數(shù)據(jù)中‘1’的個數(shù)應(yīng)為奇數(shù)個。奇校驗(yàn)位形成公式:

C=X0⊕X1⊕…⊕Xn-1

如果采用偶校驗(yàn),則這組數(shù)據(jù)加上校驗(yàn)碼位后數(shù)據(jù)中‘1’的個數(shù)應(yīng)為偶數(shù)個。偶校驗(yàn)位形成公式:

C=X0⊕X1⊕…⊕Xn-1第65頁,講稿共94頁,2023年5月2日,星期三

下面給出對幾個字節(jié)值的奇偶校驗(yàn)的編碼結(jié)果:

數(shù)據(jù)奇校驗(yàn)的編碼偶校碼的編碼00000000l00000000000000000010l0l000010l0100l01010l0001ll1lll0011l111110l111l1l

其中,最高一位為校驗(yàn)位,其余低八位為數(shù)據(jù)位。從中可以看到,校驗(yàn)位的值取O還是1,是由數(shù)據(jù)位中1的個數(shù)決定的。第66頁,講稿共94頁,2023年5月2日,星期三缺點(diǎn):這種方案只能發(fā)現(xiàn)一位錯或奇數(shù)個位錯,但不能確定是哪一位錯,也不能發(fā)現(xiàn)偶數(shù)個位錯。優(yōu)點(diǎn):該方案還是有很好的實(shí)用價(jià)值。偶校驗(yàn)位形成第67頁,講稿共94頁,2023年5月2日,星期三奇偶校驗(yàn)的特點(diǎn):1、奇偶校驗(yàn)碼使數(shù)據(jù)的碼距為2,因而可檢出數(shù)據(jù)傳送過程中奇數(shù)個數(shù)位出錯的情況(一位變動會使校驗(yàn)位改變,d0≥e+1=2);2、實(shí)際中兩位同時(shí)出錯的概率極低,奇偶校驗(yàn)法簡便可靠易行,但它只能發(fā)現(xiàn)錯誤,卻不知錯在何處,因而不能自動糾正。3、奇偶校驗(yàn)碼是一種開銷最小,能發(fā)現(xiàn)數(shù)據(jù)代碼中一位出錯情況的編碼。 常用于存儲器讀寫檢查,或ASCII字符傳送過程中的檢查。第68頁,講稿共94頁,2023年5月2日,星期三3.7.2海明校驗(yàn)碼

海明校驗(yàn)碼是RichardHamming于1950年提出的,目前仍廣泛使用的一種編碼方法。1、原理(1)特點(diǎn):能檢測出兩位同時(shí)出錯、亦能檢測出一位出錯并能自動糾錯。(碼距d0≥e+t+1=2+1+1=4)(2)實(shí)現(xiàn)原理:在k個數(shù)據(jù)位之外加上r個校驗(yàn)位,從而形成一個k+r位的新碼字,當(dāng)某一位出錯后,就會引起相關(guān)的幾個(d0

個)校驗(yàn)位的值發(fā)生變化,從而達(dá)到檢錯、糾錯的目的。第69頁,講稿共94頁,2023年5月2日,星期三

能檢測與自動糾正一位錯,并發(fā)現(xiàn)兩位錯,校驗(yàn)位r與數(shù)據(jù)位k應(yīng)滿足下述關(guān)系: 2r-1≥k+r(一位出錯并糾錯且發(fā)現(xiàn)兩位錯

d0≥e+t+1=2+1+1=4)

數(shù)據(jù)位k與校驗(yàn)位r的對應(yīng)關(guān)系:

第70頁,講稿共94頁,2023年5月2日,星期三2、編碼規(guī)則

若海明碼的最高位號為m,最低位號為1,即:HmHm-1…H2H1,則此海明碼的編碼規(guī)律是:(1)校驗(yàn)位與數(shù)據(jù)位之和為m,每個校驗(yàn)位Pi(Parity,奇偶校驗(yàn)位)在海明碼中被分在位號2i-1的位置,其余各位為數(shù)據(jù)位,并按從低向高逐位依次排列的關(guān)系分配各數(shù)據(jù)位。(2)海明碼的每一位碼Hi(包括數(shù)據(jù)位和校驗(yàn)位本身)由多個校驗(yàn)位校驗(yàn),其關(guān)系是被校驗(yàn)的每一位位號要等于校驗(yàn)它的各校驗(yàn)位的位號之和。這樣安排的目的,是希望校驗(yàn)的結(jié)果能正確反映出出錯位的位號。第71頁,講稿共94頁,2023年5月2日,星期三例討論一個字節(jié)的海明碼(1)K=8,按表3.5得出r=5

故海明碼的總位數(shù)為13,可表示:

H13H12H11...H3H2H1P5只能放在H13一位上,它已經(jīng)是海明碼的最高位了,其他4位滿足Pi的位號等于2i-1的關(guān)系。其余為數(shù)據(jù)位Di,則有如下排列關(guān)系:位號13121110987654321信息P5D8D7D6D5P4D4D3D2P3D1P2P1第72頁,講稿共94頁,2023年5月2日,星期三

每一位號等于校驗(yàn)它的各校驗(yàn)位的位號之和第73頁,講稿共94頁,2023年5月2日,星期三(2)計(jì)算各個校驗(yàn)位的值D1(H3)D2(H5)D3(H6)D4(H7)D5(H9)D6(H10)D7(H11)D8(H12)P1(H1)P2(H2)P3(H4)P4(H8)P5(H13)√√√√√√√√√√√√√√√√√√P1=D1⊕D2⊕D4⊕D5⊕D7P2=D1⊕D3⊕D4⊕D6⊕D7

P3=D2⊕D3⊕D4⊕D8P4=D5⊕D6⊕D7⊕D8P5=D1⊕D2⊕D3⊕D4⊕D5⊕D6⊕D7⊕D8⊕P4⊕P3⊕P2⊕P1在這種安排中,每一位數(shù)據(jù)位,都至少地出現(xiàn)在3個Pi值的形成關(guān)系中。當(dāng)任一位數(shù)據(jù)碼發(fā)生變化時(shí),必將引起3個或4個Pi值跟著變化,該海明碼的碼距為4。校驗(yàn)位的編碼規(guī)則(偶校驗(yàn))第74頁,講稿共94頁,2023年5月2日,星期三S1=P1⊕D1⊕D2⊕D4⊕D5⊕D7

S2=P2⊕D1⊕D3⊕D4⊕D6⊕D7

S3=P3⊕D2⊕D3⊕D4⊕D8

S4=P4⊕D5⊕D6⊕D7⊕D8

S5=P5⊕P4⊕P3⊕P2⊕P1⊕D1⊕D2⊕D3⊕D4⊕D5⊕D6⊕D7⊕D8

(3)譯碼規(guī)則(接受端)--偶校驗(yàn)

則校驗(yàn)得到的結(jié)果值S5~S1能反映13位海明碼的出錯情況。任何偶數(shù)個數(shù)出錯,S5一定為0,因此可區(qū)分兩位出錯或一位出錯。Si=Pi⊕形成Pi的編碼規(guī)則第75頁,講稿共94頁,2023年5月2日,星期三用海明位號改寫S4~S1:S1=H1⊕H3⊕H5⊕H7⊕H9⊕H11

S2=H2⊕H3⊕H6⊕H7⊕H10⊕H11

S3=H4⊕H5⊕H6⊕H7⊕H12S4=H8⊕H9⊕H10⊕H11⊕H12假設(shè):H12(D8)出錯、S4S3S2S1=1100H11(D7)出錯、S4S3S2S1=1011H10(D6)出錯、S4S3S2S1=1010H9(D5)出錯、S4S3S2S1=1001H7(D4)出錯、S4S3S2S1=0111H6(D3)出錯、S4S3S2S1=0110H5(D2)出錯、S4S3S2S1=0101H3(D1)出錯、S4S3S2S1=0011結(jié)論:當(dāng)某個數(shù)據(jù)位出錯時(shí)、S4S3S2S1的值等于該出錯位數(shù)據(jù)在海明碼中的位號。問題:1.當(dāng)某個校驗(yàn)位出錯時(shí)、S4S3S2S1的值等于什么?

2n位號

2.S5與S4S3S2S1的各種組合分別反映了海明碼的什么狀態(tài)?S5為0有偶數(shù)個錯(S4S3S2S1=0無錯;不為0有兩位錯)第76頁,講稿共94頁,2023年5月2日,星期三3、海明碼校驗(yàn)邏輯電路第77頁,講稿共94頁,2023年5月2日,星期三第78頁,講稿共94頁,2023年5月2日,星期三例1:請計(jì)算8位二進(jìn)制信息10011010的海明碼字是多少?解:1)計(jì)算r=?2)計(jì)算P1~P5=?r=5D1(H3)0D2(H5)1D3(H6)0D4(H7)1D5(H9)1D6(H10)0D7(H11)0D8(H12)1P1(H1)P2(H2)P3(H4)P4(H8)P5(H13)001100111110000011P1=1P2=1P3=1P4=0P5=1位號13121110987654321信息1001101011101第79頁,講稿共94頁,2023年5月2日,星期三例2:請分析海明碼字1100101111011是否正確?若有錯,請糾錯。解:計(jì)算S5S4S3S2S1

溫馨提示

  • 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

提交評論