版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第4章數(shù)值的機(jī)器運(yùn)算 2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院第4章 運(yùn)算器是計(jì)算機(jī)進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算的主要部件,運(yùn)算器的邏輯結(jié)構(gòu)取決于機(jī)器的指令系統(tǒng)、數(shù)據(jù)表示方法和運(yùn)算方法等。本章主要討論數(shù)值數(shù)據(jù)在計(jì)算機(jī)中實(shí)現(xiàn)算術(shù)運(yùn)算和邏輯運(yùn)算的方法,以及運(yùn)算部件的基本結(jié)構(gòu)和工作原理。 2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn) 4.1.1 加法器 加法器是由全加器再配以其他必要的邏輯電路組成的。1.全加器 基本的加法單元稱為全加器,它要求三個(gè)輸入量:操作數(shù)Ai和Bi、低位傳來的進(jìn)位Ci-1,并產(chǎn)生兩個(gè)輸出量:本位和Si、向高位的進(jìn)位Ci。FAAiBiSiCi-1Ci2009
2、.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn) 全加器的邏輯表達(dá)式為 Si=AiBiCi-1 Ci=AiBi+(AiBi)Ci-12.串行加法器與并行加法器 在串行加法器中,只有一個(gè)全加器,數(shù)據(jù)逐位串行送入加法器進(jìn)行運(yùn)算。 如果操作數(shù)長n位,加法就要分n次進(jìn)行,每次只能產(chǎn)生一位和。 2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn) 并行加法器由多個(gè)全加器組成,其位數(shù)的多少取決于機(jī)器的字長,數(shù)據(jù)的各位同時(shí)運(yùn)算。 并行加法器雖然操作數(shù)的各位是同時(shí)提供的,但低位運(yùn)算所產(chǎn)生的進(jìn)位有可能會影響高位的運(yùn)算結(jié)果。例如:1111和0001相加,最低位產(chǎn)生的進(jìn)位將逐位影響至最高
3、位。因此,并行加法器的最長運(yùn)算時(shí)間主要是由進(jìn)位信號的傳遞時(shí)間決定的。提高并行加法器速度的關(guān)鍵是盡量加快進(jìn)位產(chǎn)生和傳遞的速度。 2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn)4.1.2 進(jìn)位的產(chǎn)生和傳遞 進(jìn)位表達(dá)式 Ci=AiBi+(AiBi)Ci-1進(jìn)位產(chǎn)生函數(shù)用Gi表示進(jìn)位傳遞函數(shù)用Pi表示 Gi的含義是:若本位的兩個(gè)輸入均為1,必然要向高位產(chǎn)生進(jìn)位。 Pi的含義是:當(dāng)兩個(gè)輸入中有一個(gè)為1,低位傳來的進(jìn)位Ci-1將超越本位向更高的位傳送。 Ci=Gi+PiCi-1AiBiAiBi2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn) 把n個(gè)全加器串接起來,
4、就可進(jìn)行兩個(gè)n位數(shù)的相加。串行進(jìn)位又稱行波進(jìn)位,每一級進(jìn)位直接依賴于前一級的進(jìn)位,即進(jìn)位信號是逐級形成的。C1=G1+P1C0C2=G2+P2C1Cn=Gn+PnCn-12009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn) 串行進(jìn)位鏈的總延遲時(shí)間與字長成正比。假定,將一級門的延遲時(shí)間定為ty,從上述公式中可看出,每形成一級進(jìn)位的延遲時(shí)間為2ty。在字長為n位的情況下,若不考慮Gi、Pi的形成時(shí)間,從C0Cn的最長延遲時(shí)間為2nty。FAFAFAC1C2Cn-1CnA1B1A2B2AnBnS1S2SnC02009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn)4.1.
5、3 并行加法器的快速進(jìn)位1.并行進(jìn)位方式 并行進(jìn)位又叫先行進(jìn)位、同時(shí)進(jìn)位,其特點(diǎn)是各級進(jìn)位信號同時(shí)形成。C1=G1+P1C0C2=G2+P2C1=G2+P2G1+P2P1C0C3=G3+P3G2+P3P2G1+P3P2P1C0 C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C02009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn) 上述各式中所有各位的進(jìn)位均不依賴于低位的進(jìn)位,各位的進(jìn)位可以同時(shí)產(chǎn)生。這種進(jìn)位方式是快速的,若不考慮Gi、Pi的形成時(shí)間,從C0Cn的最長延遲時(shí)間僅為2ty。隨著加法器位數(shù)的增加,Ci的邏輯表達(dá)式會變得越來越長,所以,完全采用并
6、行進(jìn)位是不現(xiàn)實(shí)的。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn)2.分組并行進(jìn)位方式 實(shí)際上,通常采用分組并行進(jìn)位方式。這種進(jìn)位方式是把n位字長分為若干小組,在組內(nèi)各位之間實(shí)行并行快速進(jìn)位,在組間既可以采用串行進(jìn)位方式,也可以采用并行快速進(jìn)位方式,因此有兩種情況。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn)(1)單級先行進(jìn)位方式 這種進(jìn)位方式又稱為組內(nèi)并行、組間串行方式。以16位加法器為例,可分為四組,每組四位。第1小組組內(nèi)的進(jìn)位邏輯函數(shù)C1、C2、C3、C4的表達(dá)式與前述相同,C1C4信號是同時(shí)產(chǎn)生的,從C0出現(xiàn)到產(chǎn)生C1C4的延遲時(shí)間是2ty。
7、4位CLA加法器4位CLA加法器4位CLA加法器4位CLA加法器A4A1A8A5A12A9A16A13B4B1B8B5B12B9B16B13S4S1S8S5S12S9S16S13C4C8C12C16C02009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn)C16C12C8C4C0C1City24682009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院=G1*+P1*C04.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn)(2)多級先行進(jìn)位方式 多級先行進(jìn)位又稱組內(nèi)并行、組間并行進(jìn)位方式。 字長為16位的兩級先行進(jìn)位加法器,第一小組的最高位進(jìn)位C4: C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2
8、P1C0組進(jìn)位產(chǎn)生函數(shù)G1*組進(jìn)位傳遞函數(shù)P1*依次類推: C8=G2*+P2*G1*+P2*P1*C0 C12=G3*+P3*G2 * +P3*P2*G1*+P3*P2*P1*C0C16=G4*+P4*G3*+P4*P3*G2*+P4*P3*P2*G1*+P4*P3*P2*P1*C02009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn)CLA電路4位BCLA加法器4位BCLA加法器4位BCLA加法器4位BCLA加法器A4A1A8A5A12A9A16A13B16B13B12B9B8B5B4B1S4S1S8S5S12S9S16S13C0C16P2P1P3P4G1G2G3G4C4C8
9、C122009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn) 若不考慮Gi、Pi的形成時(shí)間,C0經(jīng)過2ty產(chǎn)生第1小組的C1、C2、C3及所有組進(jìn)位產(chǎn)生函數(shù)Gi*和組進(jìn)位傳遞函數(shù)Pi*;再經(jīng)過2ty,產(chǎn)生C4、C8、C12、C16;最后經(jīng)過2ty后,才能產(chǎn)生第2、3、4小組內(nèi)的C5C7、C9C11、C13C15。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn) C16C12C8C4C0C1City246 2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn)四位CLA加法器四位BCLA加法器2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.2 定點(diǎn)加
10、減運(yùn)算 4.2.1 原碼加減運(yùn)算 對原碼表示的兩個(gè)數(shù)進(jìn)行加減運(yùn)算時(shí),符號位不參與運(yùn)算,僅僅是兩數(shù)的絕對值參與運(yùn)算。 計(jì)算機(jī)的實(shí)際操作是加還是減,不僅取決于指令的操作碼,還取決于兩個(gè)操作數(shù)的符號,例如:加法時(shí)可能要做減法(兩數(shù)異號);減法時(shí)又可能做加法(兩數(shù)異號),所以原碼加減運(yùn)算的實(shí)現(xiàn)是比較復(fù)雜的。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.2 定點(diǎn)加減運(yùn)算 4.2.2 補(bǔ)碼加減運(yùn)算1.補(bǔ)碼加法 兩個(gè)補(bǔ)碼表示的數(shù)相加,符號位參加運(yùn)算,且兩數(shù)和的補(bǔ)碼等于兩數(shù)補(bǔ)碼之和,即 X+Y補(bǔ)=X補(bǔ)+Y補(bǔ)2.補(bǔ)碼減法 根據(jù)補(bǔ)碼加法公式可推出: X-Y補(bǔ)=X+(-Y)補(bǔ)=X補(bǔ)+-Y補(bǔ) 已知Y補(bǔ)求-Y補(bǔ)的方法是
11、:將Y補(bǔ)連同符號位一起求反,末尾加“1”。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.2 定點(diǎn)加減運(yùn)算 -Y補(bǔ)被稱為Y補(bǔ)的機(jī)器負(fù)數(shù),由Y補(bǔ)求-Y補(bǔ)的過程稱為對Y補(bǔ)變補(bǔ)(求補(bǔ)),表示為: -Y補(bǔ)=Y補(bǔ)變補(bǔ)2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.2 定點(diǎn)加減運(yùn)算 我們要注意將“某數(shù)的補(bǔ)碼表示”與“變補(bǔ)”這兩個(gè)概念區(qū)分開來。一個(gè)負(fù)數(shù)由原碼表示轉(zhuǎn)換成補(bǔ)碼表示時(shí),符號位是不變的,僅對數(shù)值位的各位變反,末尾加“1”。而變補(bǔ)則不論這個(gè)數(shù)的真值是正是負(fù),一律連同符號位一起變反,末尾加“1”。 Y補(bǔ)表示的真值如果是正數(shù),則變補(bǔ)后-Y補(bǔ)所表示真值變?yōu)樨?fù)數(shù),反之亦然。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)
12、院4.2 定點(diǎn)加減運(yùn)算 例1:Y=-0.0110 Y補(bǔ)=1.1010,-Y補(bǔ)=0.0110例2:Y=0.0110 Y補(bǔ)=0.0110,-Y補(bǔ)=1.10102009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.2 定點(diǎn)加減運(yùn)算 3.補(bǔ)碼加減運(yùn)算規(guī)則 補(bǔ)碼加減運(yùn)算規(guī)則如下: 參加運(yùn)算的兩個(gè)操作數(shù)均用補(bǔ)碼表示; 符號位作為數(shù)的一部分參加運(yùn)算; 若做加法,則兩數(shù)直接相加;若做減法,則將被減數(shù)與減數(shù)的機(jī)器負(fù)數(shù)相加; 運(yùn)算結(jié)果用補(bǔ)碼表示。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.2 定點(diǎn)加減運(yùn)算例1:A=0.1011,B=-0.1110,求:A+B A補(bǔ)=0.1011,B補(bǔ)=1.0010 0.1011 + 1
13、.00101.1101A+B補(bǔ)=1.1101,A+B=-0.00112009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.2 定點(diǎn)加減運(yùn)算 0.1101 A-B補(bǔ)=0.1101, A-B=0.1101例2:A=0.1011,B=-0.0010,求:A-B A補(bǔ)=0.1011,B補(bǔ)=1.1110, -B補(bǔ)=0.0010 0.1011 + 0.00102009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.2 定點(diǎn)加減運(yùn)算4.2.3 補(bǔ)碼的溢出判斷與檢測方法 1.溢出的產(chǎn)生 在補(bǔ)碼加減運(yùn)算中,有時(shí)會遇到這樣的情況:兩個(gè)正數(shù)相加,而結(jié)果的符號位卻為1(結(jié)果為負(fù));兩個(gè)負(fù)數(shù)相加,而結(jié)果的符號位卻為0(結(jié)果為正)。 例1
14、:X=1011B=11D,Y=111B=7D X補(bǔ)=0,1011,Y補(bǔ)=0,01110,1 0 1 1+ 0,0 1 1 11,0 0 1 02009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.2 定點(diǎn)加減運(yùn)算 X+Y補(bǔ)=1,0010,X+Y=-1110B=-14D 兩正數(shù)相加結(jié)果為-14D,顯然是錯(cuò)誤的。例2:X=-1011B=-11D,Y=-111B=-7D X補(bǔ)=1,0101 Y補(bǔ)=1,1001 X+Y補(bǔ)=0,1110,X+Y=1110B=14D 兩負(fù)數(shù)相加結(jié)果為14D,顯然也是錯(cuò)誤的。1,0 1 0 1+ 1,1 0 0 10,1 1 1 02009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.2
15、定點(diǎn)加減運(yùn)算 為什么會發(fā)生這種錯(cuò)誤呢?原因在于兩數(shù)相加之和的數(shù)值已超過了機(jī)器允許的表示范圍。 字長為n+1位的定點(diǎn)整數(shù)(其中一位為符號位),采用補(bǔ)碼表示,當(dāng)運(yùn)算結(jié)果大于2n-1或小于-2n時(shí),就產(chǎn)生溢出。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.2 定點(diǎn)加減運(yùn)算 設(shè)參加運(yùn)算的兩數(shù)為X、Y,做加法運(yùn)算。 若X、Y異號,不會溢出。 若X、Y同號,運(yùn)算結(jié)果為正且大于所能表示的最大正數(shù)或運(yùn)算結(jié)果為負(fù)且小于所能表示的最小負(fù)數(shù)(絕對值最大的負(fù)數(shù))時(shí),產(chǎn)生溢出。將兩正數(shù)相加產(chǎn)生的溢出稱為正溢;反之,兩負(fù)數(shù)相加產(chǎn)生的溢出稱為負(fù)溢。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.2 定點(diǎn)加減運(yùn)算2. 溢出檢測
16、方法 設(shè):被操作數(shù)為:X補(bǔ)=Xs,X1X2Xn 操作數(shù)為:Y補(bǔ)=Ys,Y1Y2Yn 其和(差)為:S補(bǔ)=Ss,S1S2Sn(1)采用一個(gè)符號位 兩正數(shù)相加,結(jié)果為負(fù)表明產(chǎn)生正溢;兩負(fù)數(shù)相加,結(jié)果為正表明產(chǎn)生負(fù)溢。因此可得出采用一個(gè)符號位檢測溢出的方法: 當(dāng)Xs=Ys=0,Ss=1時(shí),產(chǎn)生正溢。 當(dāng)Xs=Ys=1,Ss=0時(shí),產(chǎn)生負(fù)溢。溢出=XsYsSs+XsYsSs2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.2 定點(diǎn)加減運(yùn)算(2)采用進(jìn)位位 兩數(shù)運(yùn)算時(shí),產(chǎn)生的進(jìn)位為 Cs,C1C2Cn, 其中:Cs為符號位產(chǎn)生的進(jìn)位,C1為最高數(shù)值位產(chǎn)生的進(jìn)位。 兩正數(shù)相加,當(dāng)最高有效位產(chǎn)生進(jìn)位(C1=1)
17、而符號位不產(chǎn)生進(jìn)位(Cs=0)時(shí),發(fā)生正溢。 兩負(fù)數(shù)相加,當(dāng)最高有效位沒有進(jìn)位(C1=0)而符號位產(chǎn)生進(jìn)位(Cs=1)時(shí),發(fā)生負(fù)溢。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.2 定點(diǎn)加減運(yùn)算(3)采用變形補(bǔ)碼(雙符號位補(bǔ)碼) 在雙符號位的情況下,把左邊的符號位Ss1叫做真符,因?yàn)樗砹嗽摂?shù)真正的符號,兩個(gè)符號位都作為數(shù)的一部分參加運(yùn)算。這種編碼又稱為變形補(bǔ)碼。 雙符號位的含義如下: Ss1Ss2=00 結(jié)果為正數(shù),無溢出 Ss1Ss2=01 結(jié)果正溢 Ss1Ss2=10 結(jié)果負(fù)溢 Ss1Ss2=11 結(jié)果為負(fù)數(shù),無溢出2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.2 定點(diǎn)加減運(yùn)算 當(dāng)兩位
18、符號位的值不一致時(shí),表明產(chǎn)生溢出。 溢出=Ss1SS2 2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.2 定點(diǎn)加減運(yùn)算 前例中字長為5位,數(shù)的表示范圍為-1615,采用變形補(bǔ)碼(雙符號位)運(yùn)算,則有: 11+7=18(正溢) 0 0,1 0 1 1 + 0 0,0 1 1 10 1,0 0 1 0 -11+(-7)=-18(負(fù)溢) 1 1,0 1 0 1 + 1 1,1 0 0 11 0,1 1 1 02009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院Y寄存器X寄存器加法器CPX4.2 定點(diǎn)加減運(yùn)算4.2.4 補(bǔ)碼定點(diǎn)加減運(yùn)算的實(shí)現(xiàn) 補(bǔ)碼加法:XF、YF、FX、CPXXFYFFXCPX 1 A C20
19、09.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院Y寄存器X寄存器加法器CPX4.2 定點(diǎn)加減運(yùn)算 補(bǔ)碼減法:XF、YF、1F、FX、CPXFXCPXXFYF1F 1 AC2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.3 帶符號數(shù)的移位和舍入操作4.3.1 帶符號數(shù)的移位操作 算術(shù)移位應(yīng)保持?jǐn)?shù)的符號不變,而數(shù)值的大小則要發(fā)生變化。左移一位使數(shù)值增大一倍,相當(dāng)于該數(shù)乘以2,而右移一位則使數(shù)值縮小一倍,相當(dāng)于該數(shù)除以2。1.原碼的移位規(guī)則 負(fù)數(shù)的原碼移位后的空出位補(bǔ)0左移X1X2Xn-1Xn1右移X1X2Xn-1Xn1左移X2X3Xn01右移0X1Xn-2Xn-112009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4
20、.3 帶符號數(shù)的移位和舍入操作2.補(bǔ)碼的移位規(guī)則 負(fù)數(shù)的補(bǔ)碼左移后的空出位補(bǔ)0,右移后的空出位補(bǔ)1。左移X1X2Xn-1Xn1右移X1X2Xn-1Xn1左移X2X3Xn01右移1X1Xn-2Xn-112009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.3 帶符號數(shù)的移位和舍入操作3. 移位功能的實(shí)現(xiàn) 通常移位操作由移位寄存器來實(shí)現(xiàn)。但也有一些計(jì)算機(jī)不設(shè)置專門的移位寄存器,而在加法器的輸出端加一個(gè)實(shí)現(xiàn)直傳、左移一位和右移一位的控制邏輯電路(稱為移位器)。 分別用2FL、FL和F/2L 這三個(gè)不同控制信號選擇左移、直傳和右移操作。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.3 帶符號數(shù)的移位和舍入操作
21、4.3.2 帶符號數(shù)的舍入操作 在算術(shù)右移中,由于受硬件的限制,運(yùn)算結(jié)果有可能需要舍去一定的尾數(shù),會造成一些誤差。為了縮小誤差,就要進(jìn)行舍入處理。1.恒舍(切斷) 這是一種最容易實(shí)現(xiàn)的舍入方法,無論多余部分q位為何代碼,一律舍去,保留部分p位不作任何改變。保留部分p位多余部分q位p+q位2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.3 帶符號數(shù)的移位和舍入操作2. 馮諾依曼舍入法 這種舍入法又稱為恒置1法,即不論多余部分q位為何代碼,都把p位的最低位置1。 保留部分p位多余部分q位p+q位1保留部分p位多余部分q位p+q位01保留部分最低位為1保留部分最低位為02009.9北京理工大學(xué)計(jì)算機(jī)科
22、學(xué)技術(shù)學(xué)院4.3 帶符號數(shù)的移位和舍入操作3. 下舍上入法 下舍上入就是0舍1入。用將要舍去的q位部分的最高位作為判斷標(biāo)志,如該位為0,則舍去整個(gè)q位部分,如該位為1,則在前面的p位部分的最低位上加1。 保留部分p位多余部分q位p+q位多余部分最高位為0多余部分最高位為1 0保留部分p位多余部分q位p+q位11+1112009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.3 帶符號數(shù)的移位和舍入操作4.查表舍入法 用ROM存放下溢處理表,每次經(jīng)查表來讀得相應(yīng)的處理結(jié)果。ROM表的容量為2K個(gè)單元,每個(gè)單元字長為K-1位。下溢處理表的內(nèi)容設(shè)置一般采用的方法是:當(dāng)K位數(shù)據(jù)的高K-1位為全“1”時(shí),讓那些單
23、元按截?cái)喾ㄌ钊隟-1位全“1”,其余單元都按最低位(即附加位)0舍1入的結(jié)果來填其內(nèi)容。地址 內(nèi)容000 00001 01010 01011 10100 10101 11 11111 112009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.4 定點(diǎn)乘法運(yùn)算 4.4.1 原碼一位乘法 用原碼實(shí)現(xiàn)乘法運(yùn)算是十分方便的。原碼一位乘法是從手算演變而來的,即用兩個(gè)操作數(shù)的絕對值相乘,乘積的符號為兩操作數(shù)符號的異或值(同號為正,異號為負(fù))。 乘積 P|X|Y| 符號Ps=XsYs 例如:X=0.1101,Y=-0.1011,列出手算乘法算式為2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.4 定點(diǎn)乘法運(yùn)算 0.1
24、 1 0 1 0.1 0 1 1 1 1 0 1 1 1 0 1 0 0 0 0 + 1 1 0 1 0.1 0 0 0 1 1 1 1 因?yàn)镻s=XsYs=01=1 所以XY=-0.100011112009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.4 定點(diǎn)乘法運(yùn)算 原碼一位乘法的規(guī)則為: 參加運(yùn)算的操作數(shù)取其絕對值; 令乘數(shù)的最低位為判斷位,若為“1”,加被乘數(shù),若為“0”,不加被乘數(shù)(加0); 累加后的部分積右移一位; 重復(fù)n次和; 符號位單獨(dú)處理,同號為正,異號為負(fù)。 2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.4 定點(diǎn)乘法運(yùn)算乘法運(yùn)算需要3個(gè)寄存器: A寄存器:部分積與最后乘積的高位部分
25、,初值為0。 B寄存器:被乘數(shù)X。 C寄存器:乘數(shù)Y,運(yùn)算后C寄存器中不再需要保留乘數(shù),改為存放乘積的低位部分。 2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.4 定點(diǎn)乘法運(yùn)算 |X|B,|Y|C0A,0CRCn=1(A+B)AC CCR+1CRCR=n?EndYN.AACCXSYS PSNY2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.4 定點(diǎn)乘法運(yùn)算4.4.2 補(bǔ)碼一位乘法比較法Booth乘法 設(shè):被乘數(shù)X補(bǔ)=Xs.X1X2Xn,乘數(shù)Y補(bǔ)=Ys.Y1Y2Yn。 在乘數(shù)的最低位之后增加一位附加位Yn+1,它的初值為0,增加附加位不會影響運(yùn)算結(jié)果。 每次運(yùn)算取決于乘數(shù)相鄰兩位Yi、Yi+1的值
26、,把它們稱為乘法的判斷位。根據(jù)校正法的統(tǒng)一表達(dá)式推出:由乘數(shù)相鄰兩位的比較結(jié)果(Yi+1-Yi)來確定運(yùn)算操作。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.4 定點(diǎn)乘法運(yùn)算Booth乘法規(guī)則如下: 參加運(yùn)算的數(shù)用補(bǔ)碼表示; 符號位參加運(yùn)算; 乘數(shù)最低位后面增加一位附加位Yn+1,其初值為0; 由于每求一次部分積要右移一位,所以乘數(shù)的最低兩位Yn、Yn+1的值決定了每次應(yīng)執(zhí)行的操作;2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.4 定點(diǎn)乘法運(yùn)算判斷位Yn Yn+1 操 作 0 0 原部分積右移一位 0 1 原部分積加X補(bǔ)后右移一位 1 0 原部分積加-X補(bǔ)后右移一位 1 1 原部分積右移一位
27、2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.4 定點(diǎn)乘法運(yùn)算 移位按補(bǔ)碼右移規(guī)則進(jìn)行; 共需做n+1次累加,n次移位,第n+1次不移位。例:已知X=-0.1101,Y=0.1011;求XY。 X補(bǔ)=1.0011B,Y補(bǔ)=0.1011C,0A -X補(bǔ)=0.11012009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.4 定點(diǎn)乘法運(yùn)算XY補(bǔ)=1.01110001XY=-0.100011112009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.4 定點(diǎn)乘法運(yùn)算X補(bǔ)B,Y補(bǔ)C0A,0CR,0Cn+1CnCn+1=?A-BACR+1CRCR=n+1?EndYN.A+BAAACC011000/112009.9北京理工大
28、學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.4 定點(diǎn)乘法運(yùn)算4.4.3 補(bǔ)碼兩位乘法 為了提高乘法的執(zhí)行速度,可以選用兩位乘法的方案。所謂兩位乘法,就是每次處理乘數(shù)中的兩位,從而使乘法的速度提高了一倍。兩位乘法又可分為原碼兩位乘法和補(bǔ)碼兩位乘法,在此只討論補(bǔ)碼兩位乘法。 根據(jù)前面介紹的Booth乘法方便地推導(dǎo)出補(bǔ)碼兩位乘法,即把補(bǔ)碼兩位乘理解為將Booth乘法的兩次合并為一次來做。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.4 定點(diǎn)乘法運(yùn)算 補(bǔ)碼兩位乘法可以通過Yi-1YiYi+1三位的不同組合來判斷原部分積與X補(bǔ)的運(yùn)算情況,然后右移兩位得到新的部分積。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.4 定點(diǎn)乘法
29、運(yùn)算補(bǔ)碼兩位乘法規(guī)則如下: 參加運(yùn)算的數(shù)用補(bǔ)碼表示; 符號位參加運(yùn)算; 乘數(shù)最低位后增加一位附加位Yn+1,初值為0; 根據(jù)乘數(shù)的最低三位Yn-1YnYn+1的值決定每次應(yīng)執(zhí)行的操作; 移位按補(bǔ)碼右移規(guī)則進(jìn)行。 比較結(jié)果(Yi+1+Yi-2Yi-1)2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.4 定點(diǎn)乘法運(yùn)算Yn-1YnYn+10 0 0 +0,右移2位0 0 1 +X補(bǔ),右移2位0 1 0 +X補(bǔ),右移2位0 1 1 +2X補(bǔ),右移2位1 0 0 +2-X補(bǔ),右移2位1 0 1 +-X補(bǔ),右移2位1 1 0 +-X補(bǔ),右移2位1 1 1 +0,右移2位2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)
30、學(xué)院4.4 定點(diǎn)乘法運(yùn)算 被乘數(shù)和部分積取三符號位,當(dāng)乘數(shù)的數(shù)值位n 為偶數(shù)時(shí),乘數(shù)取兩符號位,共需作(n/2)+1次累加,n/2次移位(最后一次不移位);當(dāng)n為奇數(shù)時(shí),乘數(shù)只需一個(gè)符號位,共需(n1)/2次累加和移位,但最后一次僅移一位。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.5 定點(diǎn)除法運(yùn)算4.5.1 原碼除法運(yùn)算 X=0.1011,Y=0.1101 0.1 1 0 1 商0.1 1 0 1 0.1 0 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 1 1 1 1 余數(shù) XY=商+ =0.1101+0.01112-4/0.11010.
31、00.0 0.0 00.0 0 00.0 0 0 00.0 0 0 0 0余數(shù)除數(shù)2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.5 定點(diǎn)除法運(yùn)算1.原碼比較法和恢復(fù)余數(shù)法(1) 比較法 比較法類似于手工運(yùn)算,只是為了便于機(jī)器操作,將除數(shù)右移改為余數(shù)左移。 比較法要對兩個(gè)操作數(shù)進(jìn)行比較(AB?),這就需要設(shè)置比較線路,從而增加了硬件的代價(jià)。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.5 定點(diǎn)除法運(yùn)算(2)恢復(fù)余數(shù)法 恢復(fù)余數(shù)法是直接作減法試探方法,不管被除數(shù)(或余數(shù))減除數(shù)是否夠減,都一律先做減法。若余數(shù)為正,表示夠減,該位商上“1”;若余數(shù)為負(fù),表示不夠減,該位商上“0”,并要恢復(fù)原來的被除
32、數(shù)(或余數(shù))。0CnA+BA1CnA 0?A-BAYN2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.5 定點(diǎn)除法運(yùn)算 由于余數(shù)的正、負(fù)是根據(jù)不同的操作數(shù)組合隨機(jī)出現(xiàn)的,這就使得除法運(yùn)算的實(shí)際操作次數(shù)不固定,從而導(dǎo)致控制電路比較復(fù)雜。而且在恢復(fù)余數(shù)時(shí),要多作一次加法,降低了執(zhí)行速度。因此,原碼恢復(fù)余數(shù)法在計(jì)算機(jī)中一般很少采用。 2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.5 定點(diǎn)除法運(yùn)算2.原碼不恢復(fù)余數(shù)法(原碼加減交替法) 原碼不恢復(fù)余數(shù)法是對恢復(fù)余數(shù)法的一種改進(jìn)。在恢復(fù)余數(shù)法中,若第i-1次求商的余數(shù)為ri-1,則第i次求商操作為:ri=2ri-1-Y 若夠減,ri=2ri-1-Y0,商1
33、。若不夠減,ri=2ri-1-Y0,商0,恢復(fù)余數(shù)后,ri=ri+Y=2ri-1,然后再左移一位,進(jìn)行第i+1次操作: ri+1=2ri-Y=2(ri+Y)-Y=2ri+2Y-Y=2ri+Y2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.5 定點(diǎn)除法運(yùn)算 上式表明,當(dāng)出現(xiàn)不夠減(負(fù)余數(shù))的情況下并不需要恢復(fù)余數(shù),可以直接做下一次操作,但操作是2ri+Y,其結(jié)果與恢復(fù)余數(shù)后左移一位再減Y是等效的。 ri+1=2ri+(1-2Qi)Y2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.5 定點(diǎn)除法運(yùn)算除法運(yùn)算需要3個(gè)寄存器: A寄存器:存放被除數(shù)X,最后A寄存器中剩下的是擴(kuò)大了若干倍的余數(shù)。運(yùn)算過程中A寄
34、存器的內(nèi)容將不斷地發(fā)生變化。 B寄存器:存放除數(shù)Y。 C寄存器:存放商Q,它的初值為0。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.5 定點(diǎn)除法運(yùn)算|X|A,|Y|B0C,0CR0Cn2A+BA2C C1Cn2A-BA2C CCR+1CRCR=n?N1CnNA 0?0CnA+BAA-BAYYYNA 0?XSYS QS2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.5 定點(diǎn)除法運(yùn)算 需要指出的是,在定點(diǎn)小數(shù)除法運(yùn)算時(shí),為了防止溢出,要求被除數(shù)的絕對值小于除數(shù)的絕對值,即|X|Y|,且除數(shù)不能為0。另外,在原碼加減交替法中,當(dāng)最終余數(shù)為負(fù)數(shù)時(shí),必須恢復(fù)一次余數(shù),使之變?yōu)檎嬗鄶?shù),注意此時(shí)不需要再左移
35、了。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.5 定點(diǎn)除法運(yùn)算4.5.2 補(bǔ)碼除法運(yùn)算 被除數(shù)和除數(shù)都用補(bǔ)碼表示,符號位參加運(yùn)算。1.夠減的判斷 參加運(yùn)算的兩個(gè)數(shù)符號任意,夠減的情況如下:同號X0,Y0,X-Y0 X0,Y0,-X-(-Y) 0X-Y0異號X0,Y0,X-(-Y)=(X+Y)0X0,Y0,(-X)-Y0X+Y0部分余數(shù)與除數(shù)同號部分余數(shù)與除數(shù)同號部分余數(shù)與除數(shù)異號部分余數(shù)與除數(shù)異號2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.5 定點(diǎn)除法運(yùn)算2.上商規(guī)則 如果X補(bǔ)和Y補(bǔ)同號,則商為正數(shù),上商規(guī)則與原碼除法相同,即夠減時(shí)上商“1”,不夠減時(shí)上商“0”;如果X補(bǔ)和Y補(bǔ)異號,則商
36、為負(fù)數(shù),上商規(guī)則與同號時(shí)相反,即夠減時(shí)上商“0”,不夠減時(shí)上商“1”。 將上商規(guī)則與夠減的判斷結(jié)合起來,可得到本次余數(shù)ri補(bǔ)和除數(shù)Y補(bǔ)同號,商上“1”,反之,商上“0”。 2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.5 定點(diǎn)除法運(yùn)算3.商符的確定 商符是在求商的過程中自動(dòng)形成的,按補(bǔ)碼上商規(guī)則,第一次得出的商,就是實(shí)際應(yīng)得的商符。 4.求新部分余數(shù) 求新余數(shù)ri+1補(bǔ)的通式如下: ri+1補(bǔ)=2ri補(bǔ)+(1-2Qi)Y補(bǔ) Qi表示第i步的商。若商上“1”,下一次操作為余數(shù)左移一位,減去除數(shù);若商上“0”,下一次操作為余數(shù)左移一位,加上除數(shù)。5. 末位恒置12009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技
37、術(shù)學(xué)院4.5 定點(diǎn)除法運(yùn)算補(bǔ)碼加減交替除法規(guī)則:X補(bǔ)與Y補(bǔ)第一次操作ri補(bǔ)與Y補(bǔ)上商求新余數(shù)ri+1補(bǔ)的操作同號X補(bǔ)-Y補(bǔ)同號(夠減)1ri+1補(bǔ)=2ri補(bǔ)-Y補(bǔ)異號(不夠減)0ri+1補(bǔ)=2ri補(bǔ)+Y補(bǔ)異號X補(bǔ)+Y補(bǔ)同號(不夠減)1ri+1補(bǔ)=2ri補(bǔ)-Y補(bǔ)異號(夠減)0ri+1補(bǔ)=2ri補(bǔ)+Y補(bǔ)2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.5 定點(diǎn)除法運(yùn)算已知:X=0.1000,Y=-0.1010;求XYX補(bǔ)=0.1000A,Y補(bǔ)=1.0110B,0C,-Y補(bǔ)=0.10102009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.5 定點(diǎn)除法運(yùn)算 商補(bǔ)=1.0011 余數(shù)補(bǔ)=1.11102-4商=-0
38、.1101 余數(shù)=-0.00102-41.11102-41.0110XY補(bǔ)=1.0011+-0.00102-4-0.1010XY= -0.1101+2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.5 定點(diǎn)除法運(yùn)算X補(bǔ)A,Y補(bǔ)B0C,0CR0Cn2A+BA2C C1Cn2A-BA2C CCR+1CRCR=n?EndN.1CnYAs Bs=0?A+BAA-BANYAs Bs=0?NY.2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.6 規(guī)格化浮點(diǎn)運(yùn)算 4.6.1 浮點(diǎn)加減運(yùn)算 設(shè)兩個(gè)非0的規(guī)格化浮點(diǎn)數(shù)分別為 A=MA2EA B=MB2EB AB=(MA,EA)(MB,EB)= 2009.9北京理工大學(xué)
39、計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.6 規(guī)格化浮點(diǎn)運(yùn)算 1.浮點(diǎn)數(shù)加減運(yùn)算步驟 (1)對階 兩個(gè)浮點(diǎn)數(shù)相加或相減,首先要把小數(shù)點(diǎn)的位置對齊,而浮點(diǎn)數(shù)的小數(shù)點(diǎn)的實(shí)際位置取決于階碼的大小。因此,對齊兩數(shù)的小數(shù)點(diǎn),就是使兩數(shù)的階碼相等,這個(gè)過程稱為對階。 要對階,首先應(yīng)求出兩數(shù)階碼EA和EB之差,即:E=EA-EB2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.6 規(guī)格化浮點(diǎn)運(yùn)算 若E=0,表示兩數(shù)階碼相等,即EA=EB;若E0,表示EAEB;若E0,表示EAEB。 當(dāng)EAEB時(shí),要通過尾數(shù)的移位來改變EA或EB,使EA=EB相等。 對階的規(guī)則是:小階向大階看齊。采用這一規(guī)則的原因是當(dāng)階碼小的數(shù)的尾數(shù)右移并相應(yīng)增加
40、階碼時(shí),舍去的僅是尾數(shù)低位部分,誤差比較小。要使小階的階碼增大,則相應(yīng)的尾數(shù)右移,直到兩數(shù)的階碼相等為止。對于r=2,每右移一位,階碼加1。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.6 規(guī)格化浮點(diǎn)運(yùn)算 EA=EB,不須對階。 EAEB,則MB右移。每右移一位,EB+1EB,直至EA=EB為止。 EAEB,則MA右移。每右移一位,EA+1EA,直至EA=EB為止。 尾數(shù)右移后,應(yīng)對尾數(shù)進(jìn)行舍入。(2)尾數(shù)加/減 對階之后,就可以進(jìn)行尾數(shù)加/減,即 MAMBMC2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.6 規(guī)格化浮點(diǎn)運(yùn)算 (3)尾數(shù)結(jié)果規(guī)格化 尾數(shù)加/減運(yùn)算之后得到的數(shù)可能不是規(guī)格化數(shù),為
41、了增加有效數(shù)字的位數(shù),提高運(yùn)算精度,必須進(jìn)行結(jié)果規(guī)格化操作。 規(guī)格化的尾數(shù)M應(yīng)滿足: 1/2|M|1 設(shè)尾數(shù)用雙符號位補(bǔ)碼表示,經(jīng)過加/減運(yùn)算之后,可能出現(xiàn)以下六種情況:2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.6 規(guī)格化浮點(diǎn)運(yùn)算 00.1 x x x 11.0 x x x 00.0 x x x 11.1 x x x 01.x x x x 10.x x x x 第、種情況,已是規(guī)格化數(shù)。 第、種情況需要使尾數(shù)左移以實(shí)現(xiàn)規(guī)格化,這個(gè)過程稱為左規(guī)。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.6 規(guī)格化浮點(diǎn)運(yùn)算 尾數(shù)每左移一位,階碼相應(yīng)減1(EC-1EC),直至成為規(guī)格化數(shù)為止。(左規(guī)可能需進(jìn)
42、行多次)只要滿足下列條件: 左規(guī)=Cs1Cs2C1+Cs1Cs2C1 第、種情況在定點(diǎn)加減運(yùn)算中稱為溢出;但在浮點(diǎn)加減運(yùn)算中,只表明此時(shí)尾數(shù)的絕對值大于1,而并非真正的溢出。這種情況應(yīng)將尾數(shù)右移以實(shí)現(xiàn)規(guī)格化。這個(gè)過程稱為右規(guī)。尾數(shù)每右移一位,階碼相應(yīng)加1(EC+1EC)。 (右規(guī)最多進(jìn)行一次)右規(guī)的條件如下: 右規(guī)=Cs1Cs22009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.6 規(guī)格化浮點(diǎn)運(yùn)算(4)舍入 由于受到硬件的限制,在對階和右規(guī)處理之后有可能將尾數(shù)的低位丟失,這會引起一些誤差。舍入方法已在前面做過介紹,這里不再贅述。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.6 規(guī)格化浮點(diǎn)運(yùn)算(5)溢
43、出判斷 當(dāng)尾數(shù)之和(差)出現(xiàn)10.x x x x或01.x x x x時(shí),并不表示溢出,只有將此數(shù)右規(guī)后,再根據(jù)階碼來判斷浮點(diǎn)運(yùn)算結(jié)果是否溢出。 浮點(diǎn)數(shù)的溢出情況由階碼的符號決定,若階碼也用雙符號位補(bǔ)碼表示,當(dāng):2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.6 規(guī)格化浮點(diǎn)運(yùn)算 EC補(bǔ)=01, x x x x,表示上溢。此時(shí),浮點(diǎn)數(shù)真正溢出,機(jī)器需停止運(yùn)算,做溢出中斷處理。 EC補(bǔ)=10, x x x x,表示下溢。浮點(diǎn)數(shù)值趨于零,機(jī)器不做溢出處理,而是按機(jī)器零處理。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.6 規(guī)格化浮點(diǎn)運(yùn)算2.浮點(diǎn)數(shù)加減運(yùn)算舉例 有兩浮點(diǎn)數(shù)為 A=0.1011102-01
44、 B=-(0.101011)2-10 假設(shè)這兩數(shù)的格式:階碼4位,用移碼表示(偏置值為23);尾數(shù)8位,用補(bǔ)碼表示,包含一位符號位,即 A浮=0111;0.1011100 B浮=0110;1.0101010Emsm2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.6 規(guī)格化浮點(diǎn)運(yùn)算(1)對階 求階差:E=EA-EB=-1-(-2)=1 E=1,表示EAEB。按對階規(guī)則,將MB右移一位,其階碼加1,得: B浮=0111;1.1010101(2)尾數(shù)求和 00.1011100 + 11.101010100.01100012009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.6 規(guī)格化浮點(diǎn)運(yùn)算(3)尾數(shù)結(jié)果規(guī)格
45、化 由于結(jié)果的尾數(shù)是非規(guī)格化的數(shù),故應(yīng)左規(guī)。尾數(shù)每左移一位,階碼減1,直至尾數(shù)成為規(guī)格化數(shù)為止。 A+B尾補(bǔ)=00.0110001 A+B尾補(bǔ) =00.11000102-01 最后結(jié)果為 A+B浮 =0110;0.1100010 A+B=(0.110001)2-102009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.6 規(guī)格化浮點(diǎn)運(yùn)算4.6.2 浮點(diǎn)乘除運(yùn)算 設(shè)兩個(gè)非0的規(guī)格化浮點(diǎn)數(shù)分別為 A=MA2EA B=MB2EB 則浮點(diǎn)乘法和除法為 AB=(MAMB)2(EA+EB) AB=(MAMB)2(EA-EB)2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.6 規(guī)格化浮點(diǎn)運(yùn)算1.乘法步驟(1)階碼相加
46、 兩個(gè)浮點(diǎn)數(shù)的階碼相加,當(dāng)階碼用移碼表示的時(shí)候,應(yīng)注意要減去一個(gè)偏置值2n。 因?yàn)镋A移=2n+EA,EB移=2n+EB EA+EB移=2n+(EA+EB) 而EA移+EB移=2n+EA+2n+EB 顯然,此時(shí)階碼和中多余了一個(gè)偏置值2n,應(yīng)將它減去。另外,階碼相加后有可能產(chǎn)生溢出,此時(shí)應(yīng)另作處理。 2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.6 規(guī)格化浮點(diǎn)運(yùn)算(2)尾數(shù)相乘 與定點(diǎn)小數(shù)乘法算法相同。(3)尾數(shù)結(jié)果規(guī)格化 因?yàn)?/2|MA|1,1/2|MB|1,所以1/4|MAMB|1。 當(dāng)1/2|MAMB|1時(shí),乘積已是規(guī)格化數(shù),不須再進(jìn)行規(guī)格化操作;當(dāng)1/4 |MAMB|1/2時(shí),則需要
47、左規(guī)一次。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.6 規(guī)格化浮點(diǎn)運(yùn)算2.除法步驟(1)尾數(shù)調(diào)整 首先須要檢測|MA|MB|。如果不小于,則MA右移一位,EA+1EA,稱為尾數(shù)調(diào)整。因?yàn)锳、B都是規(guī)格化數(shù),所以最多調(diào)整一次。(2)階碼相減 兩浮點(diǎn)數(shù)的階碼相減,當(dāng)階碼用移碼表示時(shí),應(yīng)注意要加上一個(gè)偏置值2n。(3)尾數(shù)相除 與定點(diǎn)小數(shù)除法算法相同。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.7 十進(jìn)制整數(shù)的加減運(yùn)算4.7.1 一位十進(jìn)制加法運(yùn)算1.8421碼加法運(yùn)算 因?yàn)橐晃?421碼用四位二進(jìn)制數(shù)表示,所以8421碼十位數(shù)的“1”是個(gè)位數(shù)的進(jìn)位。按四位二進(jìn)制數(shù)而言,這個(gè)進(jìn)位的值是16,而
48、不是8421碼的10。因此,必須6校正,才能使該進(jìn)位正確。8421碼的加法規(guī)則: 兩個(gè)8421碼相加時(shí), “逢二進(jìn)一”; 當(dāng)和9,無需校正; 當(dāng)和9,則+6校正; 在做+6校正的同時(shí),將產(chǎn)生向上一位的進(jìn)位。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.7 十進(jìn)制整數(shù)的加減運(yùn)算十進(jìn)制數(shù)8421碼C4S4S3S2S1校正前的二進(jìn)制數(shù)C4S4S3S2S1校正與否090 0 0 0 0 0 1 0 0 10 0 0 0 0 0 1 0 0 1不校正101112131415161718191 0 0 0 01 0 0 0 11 0 0 1 01 0 0 1 11 0 1 0 01 0 1 0 11 0
49、1 1 01 0 1 1 11 1 0 0 01 1 0 0 10 1 0 1 00 1 0 1 10 1 1 0 00 1 1 0 10 1 1 1 00 1 1 1 11 0 0 0 01 0 0 0 11 0 0 1 01 0 0 1 1+6校正+6校正函數(shù)=C4+S4S3+S4S22009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.7 十進(jìn)制整數(shù)的加減運(yùn)算2.余3碼加法運(yùn)算 十進(jìn)制余3碼加法規(guī)則: 兩個(gè)余3碼相加,“逢二進(jìn)一” ; 若其和沒有進(jìn)位,則減3(即+1101)校正; 若其和有進(jìn)位,則加3(即+0011)校正。 2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.7 十進(jìn)制整數(shù)的加減運(yùn)算十
50、進(jìn)制數(shù)余3碼C4S4S3S2S1校正前的二進(jìn)制數(shù)C4S4S3S2S1校正與否01890 0 0 1 10 0 1 0 0 0 1 0 1 10 1 1 0 00 0 1 1 00 0 1 1 1 0 1 1 1 00 1 1 1 1-3校正1011 18191 0 0 1 11 0 1 0 0 1 1 0 1 11 1 1 0 01 0 0 0 01 0 0 0 1 1 1 0 0 01 1 0 0 1+3校正-3校正函數(shù)=C4+3校正函數(shù)=C42009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.7 十進(jìn)制整數(shù)的加減運(yùn)算4.7.2十進(jìn)制加法器 1.一位8421碼加法器1 2009.9北京理工大學(xué)計(jì)算
51、機(jī)科學(xué)技術(shù)學(xué)院4.7 十進(jìn)制整數(shù)的加減運(yùn)算2. 一位余3碼加法器 2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.8 邏輯運(yùn)算與實(shí)現(xiàn) 邏輯運(yùn)算比算術(shù)運(yùn)算要簡單得多,這是因?yàn)檫壿嬤\(yùn)算是按位進(jìn)行的,位與位之間沒有進(jìn)位/借位的關(guān)系。1.邏輯非 邏輯非又稱求反操作,它對某個(gè)寄存器或主存單元中各位代碼按位取反。 2.邏輯乘 邏輯乘就是將兩個(gè)寄存器或主存單元中的每一相應(yīng)位的代碼進(jìn)行“與”操作。 2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.8 邏輯運(yùn)算與實(shí)現(xiàn)3.邏輯加 邏輯加就是將兩個(gè)寄存器或主存單元中的每一相應(yīng)位的代碼進(jìn)行“或”操作。4.按位異或 按位異或是計(jì)算機(jī)中一個(gè)特定的邏輯操作,它對寄存器或主存單元
52、中各位的代碼求模2和,又稱模2加或半加,也叫異或。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.9 運(yùn)算器的基本組成與實(shí)例 運(yùn)算器是在控制器的控制下實(shí)現(xiàn)其功能的,運(yùn)算器不僅可以完成數(shù)據(jù)信息的算邏運(yùn)算,還可以作為數(shù)據(jù)信息的傳送通路。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院4.9 運(yùn)算器的基本組成與實(shí)例 5.9.1 運(yùn)算器結(jié)構(gòu)1.運(yùn)算器的基本組成 基本的運(yùn)算器包含以下幾個(gè)部分: 實(shí)現(xiàn)基本算術(shù)、邏輯運(yùn)算功能的ALU, 提供操作數(shù)與暫存結(jié)果的寄存器組, 有關(guān)的判別邏輯和控制電路等。2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院 4.9 運(yùn)算器的基本組成與實(shí)例(1)帶多路選擇器的運(yùn)算器2009.9北京理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院 4.9 運(yùn)算器的基本組成與實(shí)例(2)帶輸入鎖存器的
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 超市經(jīng)營合同三篇
- 醫(yī)用電子儀器設(shè)備相關(guān)行業(yè)投資方案范本
- 市場定位與品牌戰(zhàn)略計(jì)劃
- 新型地?zé)嵊脽峤粨Q器相關(guān)項(xiàng)目投資計(jì)劃書
- UV激光切割機(jī)相關(guān)行業(yè)投資規(guī)劃報(bào)告范本
- 大孔燒結(jié)空心磚相關(guān)行業(yè)投資規(guī)劃報(bào)告
- 結(jié)合地方文化的藝術(shù)課程設(shè)計(jì)計(jì)劃
- 汽車廠生產(chǎn)線升級改造工程合同三篇
- 葡萄運(yùn)輸合同三篇
- 設(shè)計(jì)優(yōu)化培訓(xùn)
- 走近非遺 課件 2024-2025學(xué)年湘美版(2024)初中美術(shù)七年級上冊
- 新生兒壞死性小腸結(jié)腸炎臨床診療指南解讀 課件
- 網(wǎng)絡(luò)數(shù)據(jù)安全管理?xiàng)l例
- 2024版2024年【人教版】二年級上冊《道德與法治》全冊教案
- 山東省泰安市2024屆高三上學(xué)期期末數(shù)學(xué)試題(含答案解析)
- 少兒編程獲獎(jiǎng)?wù)n件
- 2024年《風(fēng)力發(fā)電原理》基礎(chǔ)技能及理論知識考試題庫與答案
- 軟件開發(fā)項(xiàng)目監(jiān)理細(xì)則
- 高空拋物安全宣傳教育課件
- 電氣自動(dòng)化試題及答案
- 2022年大學(xué)生職業(yè)生涯規(guī)劃書1
評論
0/150
提交評論