計(jì)算機(jī)組成原理之?dāng)?shù)值機(jī)器運(yùn)算培訓(xùn)教程ppt課件_第1頁
計(jì)算機(jī)組成原理之?dāng)?shù)值機(jī)器運(yùn)算培訓(xùn)教程ppt課件_第2頁
計(jì)算機(jī)組成原理之?dāng)?shù)值機(jī)器運(yùn)算培訓(xùn)教程ppt課件_第3頁
計(jì)算機(jī)組成原理之?dāng)?shù)值機(jī)器運(yùn)算培訓(xùn)教程ppt課件_第4頁
計(jì)算機(jī)組成原理之?dāng)?shù)值機(jī)器運(yùn)算培訓(xùn)教程ppt課件_第5頁
已閱讀5頁,還剩116頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第4章章數(shù)值的數(shù)值的機(jī)器運(yùn)算機(jī)器運(yùn)算 第第4章章 運(yùn)算器是計(jì)算機(jī)進(jìn)展算術(shù)運(yùn)算和運(yùn)算器是計(jì)算機(jī)進(jìn)展算術(shù)運(yùn)算和邏輯運(yùn)算的主要部件,運(yùn)算器的邏輯邏輯運(yùn)算的主要部件,運(yùn)算器的邏輯構(gòu)造取決于機(jī)器的指令系統(tǒng)、數(shù)據(jù)表構(gòu)造取決于機(jī)器的指令系統(tǒng)、數(shù)據(jù)表示方法和運(yùn)算方法等。本章主要討論示方法和運(yùn)算方法等。本章主要討論數(shù)值數(shù)據(jù)在計(jì)算機(jī)中實(shí)現(xiàn)算術(shù)運(yùn)算和數(shù)值數(shù)據(jù)在計(jì)算機(jī)中實(shí)現(xiàn)算術(shù)運(yùn)算和邏輯運(yùn)算的方法,以及運(yùn)算部件的根邏輯運(yùn)算的方法,以及運(yùn)算部件的根本構(gòu)造和任務(wù)原理。本構(gòu)造和任務(wù)原理。 4.1 根本算術(shù)運(yùn)算的實(shí)現(xiàn)根本算術(shù)運(yùn)算的實(shí)現(xiàn) 4.1.1 加法器加法器 加法器是由全加器再配以其他必要的邏加法器是由全加器再配以其他必

2、要的邏輯電路組成的。輯電路組成的。1.全加器全加器 根本的加法單元稱根本的加法單元稱為全加器,它要求三個為全加器,它要求三個輸入量:操作數(shù)輸入量:操作數(shù)Ai和和Bi、低位傳來的進(jìn)位低位傳來的進(jìn)位Ci-1,并,并產(chǎn)生兩個輸出量:本位產(chǎn)生兩個輸出量:本位和和Si、向高位的進(jìn)位、向高位的進(jìn)位Ci。FAFAAiAiBiBiSiSiCi-1Ci-1CiCi4.1 根本算術(shù)運(yùn)算的實(shí)現(xiàn)根本算術(shù)運(yùn)算的實(shí)現(xiàn) 全加器的邏輯表達(dá)式為全加器的邏輯表達(dá)式為 Si=Ai Bi Ci-1 Ci=AiBi+(Ai Bi)Ci-12.串行加法器與并行加法器串行加法器與并行加法器 在串行加法器中,只需一個全加器,在串行加法器中,

3、只需一個全加器,數(shù)據(jù)逐位串行送入加法器進(jìn)展運(yùn)算。數(shù)據(jù)逐位串行送入加法器進(jìn)展運(yùn)算。 假設(shè)操作數(shù)長假設(shè)操作數(shù)長n位,加法就要分位,加法就要分n次進(jìn)次進(jìn)展,每次只能產(chǎn)生一位和。展,每次只能產(chǎn)生一位和。 4.1 根本算術(shù)運(yùn)算的實(shí)現(xiàn)根本算術(shù)運(yùn)算的實(shí)現(xiàn) 并行加法器由多個全加器組成,其位并行加法器由多個全加器組成,其位數(shù)的多少取決于機(jī)器的字長,數(shù)據(jù)的各位數(shù)的多少取決于機(jī)器的字長,數(shù)據(jù)的各位同時運(yùn)算。同時運(yùn)算。 并行加法器雖然操作數(shù)的各位是同時并行加法器雖然操作數(shù)的各位是同時提供的,但低位運(yùn)算所產(chǎn)生的進(jìn)位有能夠提供的,但低位運(yùn)算所產(chǎn)生的進(jìn)位有能夠會影響高位的運(yùn)算結(jié)果。例如:會影響高位的運(yùn)算結(jié)果。例如:1111

4、和和0001相加,最低位產(chǎn)生的進(jìn)位將逐位影相加,最低位產(chǎn)生的進(jìn)位將逐位影響至最高位。因此,并行加法器的最長運(yùn)響至最高位。因此,并行加法器的最長運(yùn)算時間主要是由進(jìn)位信號的傳送時間決議算時間主要是由進(jìn)位信號的傳送時間決議的。提高并行加法器速度的關(guān)鍵是盡量加的。提高并行加法器速度的關(guān)鍵是盡量加快進(jìn)位產(chǎn)生和傳送的速度??爝M(jìn)位產(chǎn)生和傳送的速度。 4.1 根本算術(shù)運(yùn)算的實(shí)現(xiàn)根本算術(shù)運(yùn)算的實(shí)現(xiàn)4.1.2 進(jìn)位的產(chǎn)生和傳送進(jìn)位的產(chǎn)生和傳送 進(jìn)位表達(dá)式進(jìn)位表達(dá)式 Ci=AiBi+(Ai Bi)Ci-1進(jìn)位產(chǎn)生函數(shù)進(jìn)位產(chǎn)生函數(shù)用用Gi表示表示進(jìn)位傳送函數(shù)進(jìn)位傳送函數(shù)用用Pi表示表示 Gi的含義是:假設(shè)本位的兩個輸

5、入均為的含義是:假設(shè)本位的兩個輸入均為1,必然要向高位產(chǎn)生進(jìn)位。,必然要向高位產(chǎn)生進(jìn)位。 Pi的含義是:當(dāng)兩個輸入中有一個為的含義是:當(dāng)兩個輸入中有一個為1,低位傳來的進(jìn)位低位傳來的進(jìn)位Ci-1將超越本位向更高的位將超越本位向更高的位傳送。傳送。 Ci=Gi+PiCi-1AiBiAi Bi4.1 根本算術(shù)運(yùn)算的實(shí)現(xiàn)根本算術(shù)運(yùn)算的實(shí)現(xiàn) 把把n個全加器串接起來,就可進(jìn)展兩個個全加器串接起來,就可進(jìn)展兩個n位數(shù)的相加。串行進(jìn)位又稱行波進(jìn)位,每位數(shù)的相加。串行進(jìn)位又稱行波進(jìn)位,每一級進(jìn)位直接依賴于前一級的進(jìn)位,即進(jìn)一級進(jìn)位直接依賴于前一級的進(jìn)位,即進(jìn)位信號是逐級構(gòu)成的。位信號是逐級構(gòu)成的。C1=G1+

6、P1C0C2=G2+P2C1Cn=Gn+PnCn-14.1 根本算術(shù)運(yùn)算的實(shí)現(xiàn)根本算術(shù)運(yùn)算的實(shí)現(xiàn) 串行進(jìn)位鏈的總延遲時間與字長成正比。串行進(jìn)位鏈的總延遲時間與字長成正比。假定,將一級門的延遲時間定為假定,將一級門的延遲時間定為ty,從上述,從上述公式中可看出,每構(gòu)成一級進(jìn)位的延遲時間公式中可看出,每構(gòu)成一級進(jìn)位的延遲時間為為2ty。在字長為。在字長為n位的情況下,假設(shè)不思索位的情況下,假設(shè)不思索Gi、Pi的構(gòu)成時間,從的構(gòu)成時間,從C0Cn的最長延遲的最長延遲時間為時間為2nty。FAFAFAC1C2Cn-1CnA1B1A2 B2An BnS1S2SnC04.1 根本算術(shù)運(yùn)算的實(shí)現(xiàn)根本算術(shù)運(yùn)算

7、的實(shí)現(xiàn)4.1.3 并行加法器的快速進(jìn)位并行加法器的快速進(jìn)位1.并行進(jìn)位方式并行進(jìn)位方式 并行進(jìn)位又叫先行進(jìn)位、同時進(jìn)位,并行進(jìn)位又叫先行進(jìn)位、同時進(jìn)位,其特點(diǎn)是各級進(jìn)位信號同時構(gòu)成。其特點(diǎn)是各級進(jìn)位信號同時構(gòu)成。C1=G1+P1C0C2=G2+P2C1 =G2+P2G1+P2P1C0C3=G3+P3G2+P3P2G1+P3P2P1C0 C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C04.1 根本算術(shù)運(yùn)算的實(shí)現(xiàn)根本算術(shù)運(yùn)算的實(shí)現(xiàn) 上述各式中一切各位的進(jìn)位均不依賴上述各式中一切各位的進(jìn)位均不依賴于低位的進(jìn)位,各位的進(jìn)位可以同時產(chǎn)生。于低位的進(jìn)位,各位的進(jìn)位可以同時產(chǎn)生。這

8、種進(jìn)位方式是快速的,假設(shè)不思索這種進(jìn)位方式是快速的,假設(shè)不思索Gi、Pi的構(gòu)成時間,從的構(gòu)成時間,從C0Cn的最長延遲時間僅的最長延遲時間僅為為2ty。隨著加法器位數(shù)的添加,。隨著加法器位數(shù)的添加,Ci的邏輯的邏輯表達(dá)式會變得越來越長,所以,完全采用并表達(dá)式會變得越來越長,所以,完全采用并行進(jìn)位是不現(xiàn)實(shí)的。行進(jìn)位是不現(xiàn)實(shí)的。4.1 根本算術(shù)運(yùn)算的實(shí)現(xiàn)根本算術(shù)運(yùn)算的實(shí)現(xiàn)2.分組并行進(jìn)位方式分組并行進(jìn)位方式 實(shí)踐上,通常采用分組并行進(jìn)位方式。實(shí)踐上,通常采用分組并行進(jìn)位方式。這種進(jìn)位方式是把這種進(jìn)位方式是把n位字長分為假設(shè)干小組,位字長分為假設(shè)干小組,在組內(nèi)各位之間實(shí)行并行快速進(jìn)位,在組間在組內(nèi)各

9、位之間實(shí)行并行快速進(jìn)位,在組間既可以采用串行進(jìn)位方式,也可以采用并行既可以采用串行進(jìn)位方式,也可以采用并行快速進(jìn)位方式,因此有兩種情況。快速進(jìn)位方式,因此有兩種情況。4.1 根本算術(shù)運(yùn)算的實(shí)現(xiàn)根本算術(shù)運(yùn)算的實(shí)現(xiàn)(1)單級先行進(jìn)位方式單級先行進(jìn)位方式 這種進(jìn)位方式又稱為組內(nèi)并行、組間串這種進(jìn)位方式又稱為組內(nèi)并行、組間串行方式。以行方式。以16位加法器為例,可分為四組,位加法器為例,可分為四組,每組四位。第每組四位。第1小組組內(nèi)的進(jìn)位邏輯函數(shù)小組組內(nèi)的進(jìn)位邏輯函數(shù)C1、C2、C3、C4的表達(dá)式與前述一樣,的表達(dá)式與前述一樣,C1C4信號是同時產(chǎn)生的,從信號是同時產(chǎn)生的,從C0出現(xiàn)到產(chǎn)生出現(xiàn)到產(chǎn)生C

10、1C4的延遲時間是的延遲時間是2ty。4位位CLA加法器加法器4位位CLA加法器加法器4位位CLA加法器加法器4位位CLA加法器加法器A4A1A8A5A12A9A16A13B4B1B8B5B12B9B16B13S4S1S8S5S12S9S16S13C4C8C12C16C04.1 根本算術(shù)運(yùn)算的實(shí)現(xiàn)根本算術(shù)運(yùn)算的實(shí)現(xiàn) C16C16C12C12C8C8C4C4C0C0C1C1CiCityty2 24 46 68 8 =G1*+P1*C04.1 根本算術(shù)運(yùn)算的實(shí)現(xiàn)根本算術(shù)運(yùn)算的實(shí)現(xiàn)(2)多級先行進(jìn)位方式多級先行進(jìn)位方式 多級先行進(jìn)位又稱組內(nèi)并行、組間并行多級先行進(jìn)位又稱組內(nèi)并行、組間并行進(jìn)位方式。進(jìn)

11、位方式。 字長為字長為16位的兩級先行進(jìn)位加法器,第位的兩級先行進(jìn)位加法器,第一小組的最高位進(jìn)位一小組的最高位進(jìn)位C4: C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0組進(jìn)位組進(jìn)位產(chǎn)生函數(shù)產(chǎn)生函數(shù)G1*組進(jìn)位組進(jìn)位傳送函數(shù)傳送函數(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*C04.1 根本算術(shù)運(yùn)算的實(shí)現(xiàn)根本算術(shù)運(yùn)算的實(shí)現(xiàn)CLA電路電路4位位BCLA加法器加法器4位

12、位BCLA加法器加法器4位位BCLA加法器加法器4位位BCLA加法器加法器A4A1A8A5A12A9A16A13B16B13B12B9B8B5B4B1S4S1S8S5S12S9S16S13C0C16P2P1P3P4G1G2G3G4C4C8C124.1 根本算術(shù)運(yùn)算的實(shí)現(xiàn)根本算術(shù)運(yùn)算的實(shí)現(xiàn) 假設(shè)不思索假設(shè)不思索Gi、Pi的構(gòu)成時間,的構(gòu)成時間,C0經(jīng)經(jīng)過過2ty產(chǎn)生第產(chǎn)生第1小組的小組的C1、C2、C3及一切組及一切組進(jìn)位產(chǎn)生函數(shù)進(jìn)位產(chǎn)生函數(shù)Gi*和組進(jìn)位傳送函數(shù)和組進(jìn)位傳送函數(shù)Pi*;再經(jīng)過再經(jīng)過2ty,產(chǎn)生,產(chǎn)生C4、C8、C12、C16;最;最后經(jīng)過后經(jīng)過2ty后,才干產(chǎn)生第后,才干產(chǎn)生第

13、2、3、4小組內(nèi)小組內(nèi)的的C5C7、C9C11、C13C15。4.1 根本算術(shù)運(yùn)算的實(shí)現(xiàn)根本算術(shù)運(yùn)算的實(shí)現(xiàn) C16C16C12C12C8C8C4C4C0C0C1C1CiCityty2 24 46 6 4.1 根本算術(shù)運(yùn)算的實(shí)現(xiàn)根本算術(shù)運(yùn)算的實(shí)現(xiàn)4位CLA加法器A4A1B4B1S4S1C4C0四位CLA加法器四位BCLA加法器BCLA加法器A4A1B4B1S4S1C0P1G14.2 定點(diǎn)加減運(yùn)算定點(diǎn)加減運(yùn)算 4.2.1 原碼加減運(yùn)算原碼加減運(yùn)算 對原碼表示的兩個數(shù)進(jìn)展加減運(yùn)算時,對原碼表示的兩個數(shù)進(jìn)展加減運(yùn)算時,符號位不參與運(yùn)算,僅僅是兩數(shù)的絕對值符號位不參與運(yùn)算,僅僅是兩數(shù)的絕對值參與運(yùn)算。參

14、與運(yùn)算。 計(jì)算機(jī)的實(shí)踐操作是加還是減,不僅計(jì)算機(jī)的實(shí)踐操作是加還是減,不僅取決于指令的操作碼,還取決于兩個操作取決于指令的操作碼,還取決于兩個操作數(shù)的符號,例如:加法時能夠要做減法數(shù)的符號,例如:加法時能夠要做減法兩數(shù)異號;減法時又能夠做加法兩兩數(shù)異號;減法時又能夠做加法兩數(shù)異號,所以原碼加減運(yùn)算的實(shí)現(xiàn)是比數(shù)異號,所以原碼加減運(yùn)算的實(shí)現(xiàn)是比較復(fù)雜的。較復(fù)雜的。4.2 定點(diǎn)加減運(yùn)算定點(diǎn)加減運(yùn)算 4.2.2 補(bǔ)碼加減運(yùn)算補(bǔ)碼加減運(yùn)算1.補(bǔ)碼加法補(bǔ)碼加法 兩個補(bǔ)碼表示的數(shù)相加,符號位參兩個補(bǔ)碼表示的數(shù)相加,符號位參與運(yùn)算,且兩數(shù)和的補(bǔ)碼等于兩數(shù)補(bǔ)碼與運(yùn)算,且兩數(shù)和的補(bǔ)碼等于兩數(shù)補(bǔ)碼之和,即之和,即

15、X+Y補(bǔ)補(bǔ)=X補(bǔ)補(bǔ)+Y補(bǔ)補(bǔ)2.補(bǔ)碼減法補(bǔ)碼減法 根據(jù)補(bǔ)碼加法公式可推出:根據(jù)補(bǔ)碼加法公式可推出: X-Y補(bǔ)補(bǔ)=X+(-Y)補(bǔ)補(bǔ)=X補(bǔ)補(bǔ)+-Y補(bǔ)補(bǔ) 知知Y補(bǔ)求補(bǔ)求-Y補(bǔ)的方法是:將補(bǔ)的方法是:將Y補(bǔ)補(bǔ)連同符號位一同求反,末尾加連同符號位一同求反,末尾加“1。4.2 定點(diǎn)加減運(yùn)算定點(diǎn)加減運(yùn)算 -Y補(bǔ)被稱為補(bǔ)被稱為Y補(bǔ)的機(jī)器負(fù)數(shù),由補(bǔ)的機(jī)器負(fù)數(shù),由Y補(bǔ)求補(bǔ)求-Y補(bǔ)的過程稱補(bǔ)的過程稱為對為對Y補(bǔ)變補(bǔ)求補(bǔ),表示為:補(bǔ)變補(bǔ)求補(bǔ),表示為: -Y補(bǔ)補(bǔ)=Y補(bǔ)補(bǔ)變補(bǔ)變補(bǔ)4.2 定點(diǎn)加減運(yùn)算定點(diǎn)加減運(yùn)算 我們要留意將我們要留意將“某數(shù)的補(bǔ)碼表示與某數(shù)的補(bǔ)碼表示與“變補(bǔ)這兩個概念區(qū)分開來。一個負(fù)數(shù)由變補(bǔ)這兩個概念區(qū)分

16、開來。一個負(fù)數(shù)由原碼表示轉(zhuǎn)換成補(bǔ)碼表示時,符號位是不原碼表示轉(zhuǎn)換成補(bǔ)碼表示時,符號位是不變的,僅對數(shù)值位的各位變反,末尾加變的,僅對數(shù)值位的各位變反,末尾加“1。而變補(bǔ)那么不論這個數(shù)的真值是正是。而變補(bǔ)那么不論這個數(shù)的真值是正是負(fù),一概連同符號位一同變反,末尾加負(fù),一概連同符號位一同變反,末尾加“1。 Y補(bǔ)表示的真值假設(shè)是正數(shù),那么補(bǔ)表示的真值假設(shè)是正數(shù),那么變補(bǔ)后變補(bǔ)后-Y補(bǔ)所表示真值變?yōu)樨?fù)數(shù),反之補(bǔ)所表示真值變?yōu)樨?fù)數(shù),反之亦然。亦然。4.2 定點(diǎn)加減運(yùn)算定點(diǎn)加減運(yùn)算 例例1:Y=-0.0110 Y補(bǔ)補(bǔ)=1.1010,-Y補(bǔ)補(bǔ)=0.0110例例2:Y=0.0110 Y補(bǔ)補(bǔ)=0.0110,-Y

17、補(bǔ)補(bǔ)=1.10104.2 定點(diǎn)加減運(yùn)算定點(diǎn)加減運(yùn)算 3.補(bǔ)碼加減運(yùn)算規(guī)那么補(bǔ)碼加減運(yùn)算規(guī)那么 補(bǔ)碼加減運(yùn)算規(guī)那么如下:補(bǔ)碼加減運(yùn)算規(guī)那么如下: 參與運(yùn)算的兩個操作數(shù)均用補(bǔ)碼表參與運(yùn)算的兩個操作數(shù)均用補(bǔ)碼表示;示; 符號位作為數(shù)的一部分參與運(yùn)算;符號位作為數(shù)的一部分參與運(yùn)算; 假設(shè)做加法,那么兩數(shù)直接相加;假設(shè)做加法,那么兩數(shù)直接相加;假設(shè)做減法,那么將被減數(shù)與減數(shù)的機(jī)器假設(shè)做減法,那么將被減數(shù)與減數(shù)的機(jī)器負(fù)數(shù)相加;負(fù)數(shù)相加; 運(yùn)算結(jié)果用補(bǔ)碼表示。運(yùn)算結(jié)果用補(bǔ)碼表示。4.2 定點(diǎn)加減運(yùn)算定點(diǎn)加減運(yùn)算例例1:A=0.1011,B=-0.1110,求:,求:A+B A補(bǔ)補(bǔ)=0.1011,B補(bǔ)補(bǔ)=1.

18、0010 0.1011 + 1.00101.1101A+B補(bǔ)補(bǔ)=1.1101,A+B=-0.00114.2 定點(diǎn)加減運(yùn)算定點(diǎn)加減運(yùn)算 0.1101 A-B補(bǔ)補(bǔ)=0.1101, A-B=0.1101例例2:A=0.1011,B=-0.0010,求:,求:A-B A補(bǔ)補(bǔ)=0.1011,B補(bǔ)補(bǔ)=1.1110, -B補(bǔ)補(bǔ)=0.0010 0.1011 + 0.00104.2 定點(diǎn)加減運(yùn)算定點(diǎn)加減運(yùn)算4.2.3 補(bǔ)碼的溢出判別與檢測方法補(bǔ)碼的溢出判別與檢測方法 1.溢出的產(chǎn)生溢出的產(chǎn)生 在補(bǔ)碼加減運(yùn)算中,有時會遇到這在補(bǔ)碼加減運(yùn)算中,有時會遇到這樣的情況:兩個正數(shù)相加,而結(jié)果的符號樣的情況:兩個正數(shù)相加,

19、而結(jié)果的符號位卻為位卻為1結(jié)果為負(fù);兩個負(fù)數(shù)相加,結(jié)果為負(fù);兩個負(fù)數(shù)相加,而結(jié)果的符號位卻為而結(jié)果的符號位卻為0結(jié)果為正。結(jié)果為正。 例例1:X=1011B=11D,Y=111B=7D X補(bǔ)補(bǔ)=0,1011,Y補(bǔ)補(bǔ)=0,01110,1 0 1 1+ 0,0 1 1 11,0 0 1 04.2 定點(diǎn)加減運(yùn)算定點(diǎn)加減運(yùn)算 X+Y補(bǔ)補(bǔ)=1,0010,X+Y=-1110B=-14D 兩正數(shù)相加結(jié)果為兩正數(shù)相加結(jié)果為-14D,顯然是錯誤的。,顯然是錯誤的。例例2:X=-1011B=-11D,Y=-111B=-7D X補(bǔ)補(bǔ)=1,0101 Y補(bǔ)補(bǔ)=1,1001 X+Y補(bǔ)補(bǔ)=0,1110,X+Y=1110B=

20、14D 兩負(fù)數(shù)相加結(jié)果為兩負(fù)數(shù)相加結(jié)果為14D,顯然也是錯,顯然也是錯誤的。誤的。1,0 1 0 1+ 1,1 0 0 10,1 1 1 04.2 定點(diǎn)加減運(yùn)算定點(diǎn)加減運(yùn)算 為什么會發(fā)生這種錯誤呢?緣由在于為什么會發(fā)生這種錯誤呢?緣由在于兩數(shù)相加之和的數(shù)值已超越了機(jī)器允許的兩數(shù)相加之和的數(shù)值已超越了機(jī)器允許的表示范圍。表示范圍。 字長為字長為n+1位的定點(diǎn)整數(shù)其中一位位的定點(diǎn)整數(shù)其中一位為符號位,采用補(bǔ)碼表示,當(dāng)運(yùn)算結(jié)果為符號位,采用補(bǔ)碼表示,當(dāng)運(yùn)算結(jié)果大于大于2n-1或小于或小于-2n時,就產(chǎn)生溢出。時,就產(chǎn)生溢出。4.2 定點(diǎn)加減運(yùn)算定點(diǎn)加減運(yùn)算 設(shè)參與運(yùn)算的兩數(shù)為設(shè)參與運(yùn)算的兩數(shù)為X、Y

21、,做加法,做加法運(yùn)算。運(yùn)算。 假設(shè)假設(shè)X、Y異號,不會溢出。異號,不會溢出。 假設(shè)假設(shè)X、Y同號,運(yùn)算結(jié)果為正且大同號,運(yùn)算結(jié)果為正且大于所能表示的最大正數(shù)或運(yùn)算結(jié)果為負(fù)且于所能表示的最大正數(shù)或運(yùn)算結(jié)果為負(fù)且小于所能表示的最小負(fù)數(shù)絕對值最大的小于所能表示的最小負(fù)數(shù)絕對值最大的負(fù)數(shù)時,產(chǎn)生溢出。將兩正數(shù)相加產(chǎn)生負(fù)數(shù)時,產(chǎn)生溢出。將兩正數(shù)相加產(chǎn)生的溢出稱為正溢;反之,兩負(fù)數(shù)相加產(chǎn)生的溢出稱為正溢;反之,兩負(fù)數(shù)相加產(chǎn)生的溢出稱為負(fù)溢。的溢出稱為負(fù)溢。4.2 定點(diǎn)加減運(yùn)算定點(diǎn)加減運(yùn)算2. 溢出檢測方法溢出檢測方法 設(shè):被操作數(shù)為:設(shè):被操作數(shù)為:X補(bǔ)補(bǔ)=Xs,X1X2Xn 操作數(shù)為:操作數(shù)為:Y補(bǔ)補(bǔ)=

22、Ys,Y1Y2Yn 其和差為:其和差為:S補(bǔ)補(bǔ)=Ss,S1S2Sn(1)采用一個符號位采用一個符號位 兩正數(shù)相加,結(jié)果為負(fù)闡明產(chǎn)生正溢;兩正數(shù)相加,結(jié)果為負(fù)闡明產(chǎn)生正溢;兩負(fù)數(shù)相加,結(jié)果為正闡明產(chǎn)生負(fù)溢。因此兩負(fù)數(shù)相加,結(jié)果為正闡明產(chǎn)生負(fù)溢。因此可得出采用一個符號位檢測溢出的方法:可得出采用一個符號位檢測溢出的方法: 當(dāng)當(dāng)Xs=Ys=0,Ss=1時,產(chǎn)生正溢。時,產(chǎn)生正溢。 當(dāng)當(dāng)Xs=Ys=1,Ss=0時,產(chǎn)生負(fù)溢。時,產(chǎn)生負(fù)溢。溢出溢出=XsYsSs+XsYsSs4.2 定點(diǎn)加減運(yùn)算定點(diǎn)加減運(yùn)算(2)采用進(jìn)位位采用進(jìn)位位 兩數(shù)運(yùn)算時,產(chǎn)生的進(jìn)位為兩數(shù)運(yùn)算時,產(chǎn)生的進(jìn)位為 Cs,C1C2Cn,

23、 其中:其中:Cs為符號位產(chǎn)生的進(jìn)位,為符號位產(chǎn)生的進(jìn)位,C1為為最高數(shù)值位產(chǎn)生的進(jìn)位。最高數(shù)值位產(chǎn)生的進(jìn)位。 兩正數(shù)相加,當(dāng)最高有效位產(chǎn)生進(jìn)位兩正數(shù)相加,當(dāng)最高有效位產(chǎn)生進(jìn)位C1=1而符號位不產(chǎn)生進(jìn)位而符號位不產(chǎn)生進(jìn)位Cs=0時,時,發(fā)生正溢。發(fā)生正溢。 兩負(fù)數(shù)相加,當(dāng)最高有效位沒有進(jìn)位兩負(fù)數(shù)相加,當(dāng)最高有效位沒有進(jìn)位C1=0而符號位產(chǎn)生進(jìn)位而符號位產(chǎn)生進(jìn)位Cs=1時,時,發(fā)生負(fù)溢。發(fā)生負(fù)溢。4.2 定點(diǎn)加減運(yùn)算定點(diǎn)加減運(yùn)算(3)采用變形補(bǔ)碼雙符號位補(bǔ)碼采用變形補(bǔ)碼雙符號位補(bǔ)碼 在雙符號位的情況下,把左邊的符號在雙符號位的情況下,把左邊的符號位位Ss1叫做真符,由于它代表了該數(shù)真正的叫做真符

24、,由于它代表了該數(shù)真正的符號,兩個符號位都作為數(shù)的一部分參與符號,兩個符號位都作為數(shù)的一部分參與運(yùn)算。這種編碼又稱為變形補(bǔ)碼。運(yùn)算。這種編碼又稱為變形補(bǔ)碼。 雙符號位的含義如下:雙符號位的含義如下: Ss1Ss2=00 結(jié)果為正數(shù),無溢出結(jié)果為正數(shù),無溢出 Ss1Ss2=01 結(jié)果正溢結(jié)果正溢 Ss1Ss2=10 結(jié)果負(fù)溢結(jié)果負(fù)溢 Ss1Ss2=11 結(jié)果為負(fù)數(shù),無溢出結(jié)果為負(fù)數(shù),無溢出4.2 定點(diǎn)加減運(yùn)算定點(diǎn)加減運(yùn)算 當(dāng)兩位符號位的值不一致時,闡明產(chǎn)當(dāng)兩位符號位的值不一致時,闡明產(chǎn)生溢出。生溢出。 溢出溢出=Ss1 SS2 4.2 定點(diǎn)加減運(yùn)算定點(diǎn)加減運(yùn)算 前例中字長為前例中字長為5位,數(shù)的

25、表示范圍為位,數(shù)的表示范圍為-1615,采用變形補(bǔ)碼雙符號位運(yùn)算,那么有:,采用變形補(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ù)溢負(fù)溢 1 1,0 1 0 1 + 1 1,1 0 0 11 0,1 1 1 0ACBF0 10 1XXsYsFs寄存器寄存器加法器 YFF XX F1 F F_YY存放器存放器X存放器存放器加法器加法器CPX4.2 定點(diǎn)加減運(yùn)算定點(diǎn)加減運(yùn)算4.2.4 補(bǔ)碼定點(diǎn)加減運(yùn)算的實(shí)現(xiàn)補(bǔ)碼定點(diǎn)加減運(yùn)算的實(shí)現(xiàn) 補(bǔ)碼加法:補(bǔ)碼加法:XF、YF、FX、CPXXFYFFXCPX

26、1 A CACBF0 10 1XXsYsFs寄存器寄存器加法器 YFF XX F1 F F_YY存放器存放器X存放器存放器加法器加法器CPX4.2 定點(diǎn)加減運(yùn)算定點(diǎn)加減運(yùn)算 補(bǔ)碼減法:補(bǔ)碼減法:XF、YF、1F、FX、CPXFXCPXXFYF1F 1 AC4.3 帶符號數(shù)的移位和舍入操作帶符號數(shù)的移位和舍入操作4.3.1 帶符號數(shù)的移位操作帶符號數(shù)的移位操作 算術(shù)移位應(yīng)堅(jiān)持?jǐn)?shù)的符號不變,而數(shù)算術(shù)移位應(yīng)堅(jiān)持?jǐn)?shù)的符號不變,而數(shù)值的大小那么要發(fā)生變化。左移一位使數(shù)值的大小那么要發(fā)生變化。左移一位使數(shù)值增大一倍,相當(dāng)于該數(shù)乘以值增大一倍,相當(dāng)于該數(shù)乘以2,而右移一,而右移一位那么使數(shù)值減少一倍,相當(dāng)于

27、該數(shù)除以位那么使數(shù)值減少一倍,相當(dāng)于該數(shù)除以2。1.原碼的移位規(guī)那么原碼的移位規(guī)那么 負(fù)數(shù)的原碼移位后的空出位補(bǔ)負(fù)數(shù)的原碼移位后的空出位補(bǔ)0左移左移X X1 1X X2 2Xn-Xn-1 1X Xn n1 1右移右移X X1 1X X2 2Xn-Xn-1 1X Xn n1 1左移左移X X2 2X X3 3XnXn0 01 1右移右移0 0X X1 1Xn-Xn-2 2Xn-Xn-1 11 14.3 帶符號數(shù)的移位和舍入操作帶符號數(shù)的移位和舍入操作2.2.補(bǔ)碼的移位規(guī)那么補(bǔ)碼的移位規(guī)那么 負(fù)數(shù)的補(bǔ)碼左移后的空出位補(bǔ)負(fù)數(shù)的補(bǔ)碼左移后的空出位補(bǔ)0 0,右移后的空出位補(bǔ)右移后的空出位補(bǔ)1 1。左移左

28、移X X1 1X X2 2Xn-Xn-1 1X Xn n1 1右移右移X X1 1X X2 2Xn-Xn-1 1X Xn n1 1左移左移X X2 2X X3 3XnXn0 01 1右移右移1 1X X1 1Xn-Xn-2 2Xn-Xn-1 11 14.3 帶符號數(shù)的移位和舍入操作帶符號數(shù)的移位和舍入操作3. 移位功能的實(shí)現(xiàn)移位功能的實(shí)現(xiàn) 通常移位操作由移位存放器來實(shí)現(xiàn)。通常移位操作由移位存放器來實(shí)現(xiàn)。但也有一些計(jì)算機(jī)不設(shè)置專門的移位存放但也有一些計(jì)算機(jī)不設(shè)置專門的移位存放器,而在加法器的輸出端加一個實(shí)現(xiàn)直傳、器,而在加法器的輸出端加一個實(shí)現(xiàn)直傳、左移一位和右移一位的控制邏輯電路稱左移一位和右

29、移一位的控制邏輯電路稱為移位器。為移位器。 分別用分別用2FL、FL和和F/2L 這三個這三個不同控制信號選擇左移、直傳和右移操作。不同控制信號選擇左移、直傳和右移操作。4.3 帶符號數(shù)的移位和舍入操作帶符號數(shù)的移位和舍入操作4.3.2 帶符號數(shù)的舍入操作帶符號數(shù)的舍入操作 在算術(shù)右移中,由于受硬件的限制,在算術(shù)右移中,由于受硬件的限制,運(yùn)算結(jié)果有能夠需求舍去一定的尾數(shù),會運(yùn)算結(jié)果有能夠需求舍去一定的尾數(shù),會呵斥一些誤差。為了減少誤差,就要進(jìn)展呵斥一些誤差。為了減少誤差,就要進(jìn)展舍入處置。舍入處置。1.恒舍切斷恒舍切斷 這是一種最容易實(shí)現(xiàn)的舍入方法,無這是一種最容易實(shí)現(xiàn)的舍入方法,無論多余部分

30、論多余部分q位為何代碼,一概舍去,保管位為何代碼,一概舍去,保管部分部分p位不作任何改動。位不作任何改動。保管部分保管部分p位位 多余部分多余部分q位位p+qp+q位位4.3 帶符號數(shù)的移位和舍入操作帶符號數(shù)的移位和舍入操作2. 馮馮諾依曼舍入法諾依曼舍入法 這種舍入法又稱為恒置這種舍入法又稱為恒置1法,即不論多法,即不論多余部分余部分q位為何代碼,都把位為何代碼,都把p位的最低位置位的最低位置1。 保管部分保管部分p位位 多余部分多余部分q位位p+qp+q位位1保管部分保管部分p位位 多余部分多余部分q位位p+qp+q位位0 1保管部分最低位為保管部分最低位為1保管部分最低位為保管部分最低位

31、為04.3 帶符號數(shù)的移位和舍入操作帶符號數(shù)的移位和舍入操作3. 下舍上入法下舍上入法 下舍上入就是下舍上入就是0舍舍1入。用將要舍去的入。用將要舍去的q位部分的最高位作為判別標(biāo)志,如該位為位部分的最高位作為判別標(biāo)志,如該位為0,那么舍去整個那么舍去整個q位部分,如該位為位部分,如該位為1,那么,那么在前面的在前面的p位部分的最低位上加位部分的最低位上加1。 保管部分保管部分p位位 多余部分多余部分q位位p+qp+q位位多余部分最高位為多余部分最高位為0 0多余部分最高位為多余部分最高位為1 1 0保管部分保管部分p位位 多余部分多余部分q位位p+qp+q位位11 1+1114.3 帶符號數(shù)的

32、移位和舍入操作帶符號數(shù)的移位和舍入操作4.查表舍入法查表舍入法 用用ROM存放下溢處置表,存放下溢處置表,每次經(jīng)查表來讀得相應(yīng)的處置結(jié)每次經(jīng)查表來讀得相應(yīng)的處置結(jié)果。果。ROM表的容量為表的容量為2K個單元,個單元,每個單元字長為每個單元字長為K-1位。下溢處位。下溢處置表的內(nèi)容設(shè)置普通采用的方法置表的內(nèi)容設(shè)置普通采用的方法是:當(dāng)是:當(dāng)K位數(shù)據(jù)的高位數(shù)據(jù)的高K-1位為全位為全“1時,讓那些單元按截?cái)喾ㄌ钊霑r,讓那些單元按截?cái)喾ㄌ钊隟-1位全位全“1,其他單元都按最,其他單元都按最低位即附加位低位即附加位0舍舍1入的結(jié)果入的結(jié)果來填其內(nèi)容。來填其內(nèi)容。地址地址 內(nèi)容內(nèi)容000 00001 010

33、10 01011 10100 10101 11 11111 114.4 定點(diǎn)乘法運(yùn)算定點(diǎn)乘法運(yùn)算 4.4.1 原碼一位乘法原碼一位乘法 用原碼實(shí)現(xiàn)乘法運(yùn)算是非常方便的。用原碼實(shí)現(xiàn)乘法運(yùn)算是非常方便的。原碼一位乘法是從手算演化而來的,即用兩原碼一位乘法是從手算演化而來的,即用兩個操作數(shù)的絕對值相乘,乘積的符號為兩操個操作數(shù)的絕對值相乘,乘積的符號為兩操作數(shù)符號的異或值同號為正,異號為負(fù)。作數(shù)符號的異或值同號為正,異號為負(fù)。 乘積乘積 P|X|Y| 符號符號Ps=Xs Ys 例如:例如:X=0.1101,Y=-0.1011,列出手,列出手算乘法算式為算乘法算式為4.4 定點(diǎn)乘法運(yùn)算定點(diǎn)乘法運(yùn)算 0

34、.1 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 由于由于Ps=Xs Ys=0 1=1 所以所以XY=-0.100011114.4 定點(diǎn)乘法運(yùn)算定點(diǎn)乘法運(yùn)算 原碼一位乘法的規(guī)那么為:原碼一位乘法的規(guī)那么為: 參與運(yùn)算的操作數(shù)取其絕對值;參與運(yùn)算的操作數(shù)取其絕對值; 令乘數(shù)的最低位為判別位,假設(shè)為令乘數(shù)的最低位為判別位,假設(shè)為“1,加被乘數(shù),假設(shè)為,加被乘數(shù),假設(shè)為“0,不加被乘數(shù),不加被乘數(shù)加加0; 累加后的部分積右移一位;累加后的部分積右移一位; 反復(fù)反復(fù)n次和;次和; 符號位單獨(dú)處置,同號為正,異號

35、為負(fù)。符號位單獨(dú)處置,同號為正,異號為負(fù)。 4.4 定點(diǎn)乘法運(yùn)算定點(diǎn)乘法運(yùn)算乘法運(yùn)算需求乘法運(yùn)算需求3個存放器:個存放器: A存放器:部分積與最后乘積的高位部存放器:部分積與最后乘積的高位部分,初值為分,初值為0。 B存放器:被乘數(shù)存放器:被乘數(shù)X。 C存放器:乘數(shù)存放器:乘數(shù)Y,運(yùn)算后,運(yùn)算后C存放器中存放器中不再需求保管乘數(shù),改為存放乘積的低位部不再需求保管乘數(shù),改為存放乘積的低位部分。分。 4.4 定點(diǎn)乘法運(yùn)算定點(diǎn)乘法運(yùn)算 |X|B,|Y|C0A,0CRCn=1(A+B)AC CCR+1CRCR=n?EndYN.AACCXS YS PSNY4.4 定點(diǎn)乘法運(yùn)算定點(diǎn)乘法運(yùn)算4.4.2 補(bǔ)碼

36、一位乘法補(bǔ)碼一位乘法比較法比較法Booth乘法乘法 設(shè):被乘數(shù)設(shè):被乘數(shù)X補(bǔ)補(bǔ)=Xs.X1X2Xn,乘,乘數(shù)數(shù)Y補(bǔ)補(bǔ)=Ys.Y1Y2Yn。 在乘數(shù)的最低位之后添加一位附加位在乘數(shù)的最低位之后添加一位附加位Yn+1,它的初值為,它的初值為0,添加附加位不會影,添加附加位不會影響運(yùn)算結(jié)果。響運(yùn)算結(jié)果。 每次運(yùn)算取決于乘數(shù)相鄰兩位每次運(yùn)算取決于乘數(shù)相鄰兩位Yi、Yi+1的值,把它們稱為乘法的判別位。根的值,把它們稱為乘法的判別位。根據(jù)校正法的一致表達(dá)式推出:由乘數(shù)相鄰據(jù)校正法的一致表達(dá)式推出:由乘數(shù)相鄰兩位的比較結(jié)果兩位的比較結(jié)果Yi+1-Yi來確定運(yùn)算操來確定運(yùn)算操作。作。4.4 定點(diǎn)乘法運(yùn)算定點(diǎn)

37、乘法運(yùn)算Booth乘法規(guī)那么如下:乘法規(guī)那么如下: 參與運(yùn)算的數(shù)用補(bǔ)碼表示;參與運(yùn)算的數(shù)用補(bǔ)碼表示; 符號位參與運(yùn)算;符號位參與運(yùn)算; 乘數(shù)最低位后面添加一位附加位乘數(shù)最低位后面添加一位附加位Yn+1,其初值為,其初值為0; 由于每求一次部分積要右移一位,由于每求一次部分積要右移一位,所以乘數(shù)的最低兩位所以乘數(shù)的最低兩位Yn、Yn+1的值決議了的值決議了每次應(yīng)執(zhí)行的操作;每次應(yīng)執(zhí)行的操作;4.4 定點(diǎn)乘法運(yùn)算定點(diǎn)乘法運(yùn)算判別位判別位Yn Yn+1 操操 作作 0 0 原部分積右移一位原部分積右移一位 0 1 原部分積加原部分積加X補(bǔ)后右移一位補(bǔ)后右移一位 1 0 原部分積加原部分積加-X補(bǔ)后右

38、移一位補(bǔ)后右移一位 1 1 原部分積右移一位原部分積右移一位 4.4 定點(diǎn)乘法運(yùn)算定點(diǎn)乘法運(yùn)算 移位按補(bǔ)碼右移規(guī)那么進(jìn)展;移位按補(bǔ)碼右移規(guī)那么進(jìn)展; 共需做共需做n+1次累加,次累加,n次移位,第次移位,第n+1次不移位。次不移位。例:知例:知X=-0.1101,Y=0.1011;求;求XY。 X補(bǔ)補(bǔ)=1.0011B,Y補(bǔ)補(bǔ)=0.1011C,0A -X補(bǔ)補(bǔ)=0.11014.4 定點(diǎn)乘法運(yùn)算定點(diǎn)乘法運(yùn)算XXYY補(bǔ)補(bǔ)=1.01110001=1.01110001XXY=-0.10001111Y=-0.100011114.4 定點(diǎn)乘法運(yùn)算定點(diǎn)乘法運(yùn)算X補(bǔ)補(bǔ)B,Y補(bǔ)補(bǔ)C0A,0CR,0Cn+1CnCn+

39、1=?A-BACR+1CRCR=n+1?EndYN.A+BAAACC011000/114.4 定點(diǎn)乘法運(yùn)算定點(diǎn)乘法運(yùn)算4.4.3 補(bǔ)碼兩位乘法補(bǔ)碼兩位乘法 為了提高乘法的執(zhí)行速度,可以選用兩位為了提高乘法的執(zhí)行速度,可以選用兩位乘法的方案。所謂兩位乘法,就是每次處乘法的方案。所謂兩位乘法,就是每次處置乘數(shù)中的兩位,從而使乘法的速度提高置乘數(shù)中的兩位,從而使乘法的速度提高了一倍。兩位乘法又可分為原碼兩位乘法了一倍。兩位乘法又可分為原碼兩位乘法和補(bǔ)碼兩位乘法,在此只討論補(bǔ)碼兩位乘和補(bǔ)碼兩位乘法,在此只討論補(bǔ)碼兩位乘法。法。 根據(jù)前面引見的根據(jù)前面引見的Booth乘法方便地推導(dǎo)乘法方便地推導(dǎo)出補(bǔ)碼兩

40、位乘法,即把補(bǔ)碼兩位乘了解為出補(bǔ)碼兩位乘法,即把補(bǔ)碼兩位乘了解為將將Booth乘法的兩次合并為一次來做。乘法的兩次合并為一次來做。4.4 定點(diǎn)乘法運(yùn)算定點(diǎn)乘法運(yùn)算 補(bǔ)碼兩位乘法可以經(jīng)過補(bǔ)碼兩位乘法可以經(jīng)過Yi-1YiYi+1三三位的不同組合來判別原部分積與位的不同組合來判別原部分積與X補(bǔ)的運(yùn)補(bǔ)的運(yùn)算情況,然后右移兩位得到新的部分積。算情況,然后右移兩位得到新的部分積。4.4 定點(diǎn)乘法運(yùn)算定點(diǎn)乘法運(yùn)算補(bǔ)碼兩位乘法規(guī)那么如下:補(bǔ)碼兩位乘法規(guī)那么如下: 參與運(yùn)算的數(shù)用補(bǔ)碼表示;參與運(yùn)算的數(shù)用補(bǔ)碼表示; 符號位參與運(yùn)算;符號位參與運(yùn)算; 乘數(shù)最低位后添加一位附加位乘數(shù)最低位后添加一位附加位Yn+1,初

41、值為初值為0; 根據(jù)乘數(shù)的最低三位根據(jù)乘數(shù)的最低三位Yn-1YnYn+1的的值決議每次應(yīng)執(zhí)行的操作;值決議每次應(yīng)執(zhí)行的操作; 移位按補(bǔ)碼右移規(guī)那么進(jìn)展。移位按補(bǔ)碼右移規(guī)那么進(jìn)展。 比較結(jié)果比較結(jié)果Yi+1+Yi-2Yi-14.4 定點(diǎn)乘法運(yùn)算定點(diǎn)乘法運(yùn)算Yn-1YnYn+10 0 0 +0,右移,右移2位位0 0 1 +X補(bǔ),右移補(bǔ),右移2位位0 1 0 +X補(bǔ),右移補(bǔ),右移2位位0 1 1 +2X補(bǔ),右移補(bǔ),右移2位位1 0 0 +2-X補(bǔ),右移補(bǔ),右移2位位1 0 1 +-X補(bǔ),右移補(bǔ),右移2位位1 1 0 +-X補(bǔ),右移補(bǔ),右移2位位1 1 1 +0,右移,右移2位位4.4 定點(diǎn)乘法運(yùn)算

42、定點(diǎn)乘法運(yùn)算 被乘數(shù)和部分積取三符號位,當(dāng)乘數(shù)被乘數(shù)和部分積取三符號位,當(dāng)乘數(shù)的數(shù)值位的數(shù)值位n 為偶數(shù)時,乘數(shù)取兩符號位,為偶數(shù)時,乘數(shù)取兩符號位,共需作共需作(n/2)+1次累加,次累加,n/2次移位最后一次移位最后一次不移位;當(dāng)次不移位;當(dāng)n為奇數(shù)時,乘數(shù)只需一個為奇數(shù)時,乘數(shù)只需一個符號位,共需符號位,共需(n1)/2次累加和移位,但最次累加和移位,但最后一次僅移一位。后一次僅移一位。4.5 定點(diǎn)除法運(yùn)算定點(diǎn)除法運(yùn)算4.5.1 原碼除法運(yùn)算原碼除法運(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

43、 0 1 1 0 1 1 0 1 0 0 1 1 0 1 1 1 1 余數(shù)余數(shù) XY=商商+ =0.1101+0.01112-4/0.11010.00.0 0.0 00.0 0 00.0 0 0 00.0 0 0 0 0余數(shù)余數(shù)除數(shù)除數(shù)4.5 定點(diǎn)除法運(yùn)算定點(diǎn)除法運(yùn)算1.原碼比較法和恢復(fù)余數(shù)法原碼比較法和恢復(fù)余數(shù)法(1) 比較法比較法 比較法類似于手工運(yùn)算,只是為了便比較法類似于手工運(yùn)算,只是為了便于機(jī)器操作,將除數(shù)右移改為余數(shù)左移。于機(jī)器操作,將除數(shù)右移改為余數(shù)左移。 比較法要對兩個操作數(shù)進(jìn)展比較比較法要對兩個操作數(shù)進(jìn)展比較(AB?),這就需求設(shè)置比較線路,從而添加了,這就需求設(shè)置比較線路,

44、從而添加了硬件的代價。硬件的代價。4.5 定點(diǎn)除法運(yùn)算定點(diǎn)除法運(yùn)算(2)恢復(fù)余數(shù)法恢復(fù)余數(shù)法 恢復(fù)余數(shù)法是直接作減法試探方法,恢復(fù)余數(shù)法是直接作減法試探方法,不論被除數(shù)或余數(shù)減除數(shù)能否夠減,不論被除數(shù)或余數(shù)減除數(shù)能否夠減,都一概先做減法。假設(shè)余數(shù)為正,表示夠都一概先做減法。假設(shè)余數(shù)為正,表示夠減,該位商上減,該位商上“1;假設(shè)余數(shù)為負(fù),表示;假設(shè)余數(shù)為負(fù),表示不夠減,該位商上不夠減,該位商上“0,并要恢復(fù)原來的,并要恢復(fù)原來的被除數(shù)或余數(shù)。被除數(shù)或余數(shù)。0CnA+BA1CnA 0?A-BAYN4.5 定點(diǎn)除法運(yùn)算定點(diǎn)除法運(yùn)算 由于余數(shù)的正、負(fù)是根據(jù)不同的操作由于余數(shù)的正、負(fù)是根據(jù)不同的操作數(shù)組

45、合隨機(jī)出現(xiàn)的,這就使得除法運(yùn)算的數(shù)組合隨機(jī)出現(xiàn)的,這就使得除法運(yùn)算的實(shí)踐操作次數(shù)不固定,從而導(dǎo)致控制電路實(shí)踐操作次數(shù)不固定,從而導(dǎo)致控制電路比較復(fù)雜。而且在恢復(fù)余數(shù)時,要多作一比較復(fù)雜。而且在恢復(fù)余數(shù)時,要多作一次加法,降低了執(zhí)行速度。因此,原碼恢次加法,降低了執(zhí)行速度。因此,原碼恢復(fù)余數(shù)法在計(jì)算機(jī)中普通很少采用。復(fù)余數(shù)法在計(jì)算機(jī)中普通很少采用。 4.5 定點(diǎn)除法運(yùn)算定點(diǎn)除法運(yùn)算2.原碼不恢復(fù)余數(shù)法原碼加減交替法原碼不恢復(fù)余數(shù)法原碼加減交替法 原碼不恢復(fù)余數(shù)法是對恢復(fù)余數(shù)法的原碼不恢復(fù)余數(shù)法是對恢復(fù)余數(shù)法的一種改良。在恢復(fù)余數(shù)法中,假設(shè)第一種改良。在恢復(fù)余數(shù)法中,假設(shè)第i-1次次求商的余數(shù)為求

46、商的余數(shù)為ri-1,那么第,那么第i次求商操作為:次求商操作為:ri=2ri-1-Y 假設(shè)夠減,假設(shè)夠減,ri=2ri-1-Y0,商,商1。假設(shè)。假設(shè)不夠減,不夠減,ri=2ri-1-Y0,商,商0,恢復(fù)余數(shù)后,恢復(fù)余數(shù)后,ri=ri+Y=2ri-1,然后再左移一位,進(jìn)展第,然后再左移一位,進(jìn)展第i+1次操作:次操作: ri+1=2ri-Y=2(ri+Y)-Y=2ri+2Y-Y=2ri+Y4.5 定點(diǎn)除法運(yùn)算定點(diǎn)除法運(yùn)算 上式闡明,當(dāng)出現(xiàn)不夠減負(fù)余數(shù)上式闡明,當(dāng)出現(xiàn)不夠減負(fù)余數(shù)的情況下并不需求恢復(fù)余數(shù),可以直接做的情況下并不需求恢復(fù)余數(shù),可以直接做下一次操作,但操作是下一次操作,但操作是2ri

47、+Y,其結(jié)果與,其結(jié)果與恢復(fù)余數(shù)后左移一位再減恢復(fù)余數(shù)后左移一位再減Y是等效的。是等效的。 ri+1=2ri+(1-2Qi)Y4.5 定點(diǎn)除法運(yùn)算定點(diǎn)除法運(yùn)算除法運(yùn)算需求除法運(yùn)算需求3個存放器:個存放器: A存放器:存放被除數(shù)存放器:存放被除數(shù)X,最后,最后A存放存放器中剩下的是擴(kuò)展了假設(shè)干倍的余數(shù)。運(yùn)器中剩下的是擴(kuò)展了假設(shè)干倍的余數(shù)。運(yùn)算過程中算過程中A存放器的內(nèi)容將不斷地發(fā)生變存放器的內(nèi)容將不斷地發(fā)生變化?;?。 B存放器:存放除數(shù)存放器:存放除數(shù)Y。 C存放器:存放商存放器:存放商Q,它的初值為,它的初值為0。4.5 定點(diǎn)除法運(yùn)算定點(diǎn)除法運(yùn)算|X|A,|Y|B0C,0CR0Cn2A+BA2

48、C C1Cn2A-BA2C CCR+1CRCR=n?N1CnNA 0?0CnA+BAA-BAYYYNA 0?XS YS QS4.5 定點(diǎn)除法運(yùn)算定點(diǎn)除法運(yùn)算 需求指出的是,在定點(diǎn)小數(shù)除法運(yùn)需求指出的是,在定點(diǎn)小數(shù)除法運(yùn)算時,為了防止溢出,要求被除數(shù)的絕對算時,為了防止溢出,要求被除數(shù)的絕對值小于除數(shù)的絕對值,即值小于除數(shù)的絕對值,即|X|Y|,且除,且除數(shù)不能為數(shù)不能為0。另外,在原碼加減交替法中,。另外,在原碼加減交替法中,當(dāng)最終余數(shù)為負(fù)數(shù)時,必需恢復(fù)一次余數(shù),當(dāng)最終余數(shù)為負(fù)數(shù)時,必需恢復(fù)一次余數(shù),使之變?yōu)檎嬗鄶?shù),留意此時不需求再左移使之變?yōu)檎嬗鄶?shù),留意此時不需求再左移了。了。4.5 定點(diǎn)除

49、法運(yùn)算定點(diǎn)除法運(yùn)算4.5.2 補(bǔ)碼除法運(yùn)算補(bǔ)碼除法運(yùn)算 被除數(shù)和除數(shù)都用補(bǔ)碼表示,符號位被除數(shù)和除數(shù)都用補(bǔ)碼表示,符號位參與運(yùn)算。參與運(yùn)算。1.夠減的判別夠減的判別 參與運(yùn)算的兩個數(shù)符號恣意,夠減的參與運(yùn)算的兩個數(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ù)同號號部分余數(shù)部分余數(shù)與除數(shù)異與除數(shù)異號號部分余數(shù)部分余數(shù)與除數(shù)異與除數(shù)異號號4.5 定點(diǎn)除法運(yùn)算定點(diǎn)除法運(yùn)算2.上商規(guī)那么上商規(guī)那么

50、假設(shè)假設(shè)X補(bǔ)和補(bǔ)和Y補(bǔ)同號,那么商為正數(shù),補(bǔ)同號,那么商為正數(shù),上商規(guī)那么與原碼除法一樣,即夠減時上商上商規(guī)那么與原碼除法一樣,即夠減時上商“1,不夠減時上商,不夠減時上商“0;假設(shè);假設(shè)X補(bǔ)和補(bǔ)和Y補(bǔ)異號,那么商為負(fù)數(shù),上商規(guī)那么與同號補(bǔ)異號,那么商為負(fù)數(shù),上商規(guī)那么與同號時相反,即夠減時上商時相反,即夠減時上商“0,不夠減時上商,不夠減時上商“1。 將上商規(guī)那么與夠減的判別結(jié)合起來,將上商規(guī)那么與夠減的判別結(jié)合起來,可得到本次余數(shù)可得到本次余數(shù)ri補(bǔ)和除數(shù)補(bǔ)和除數(shù)Y補(bǔ)同號,商補(bǔ)同號,商上上“1,反之,商上,反之,商上“0。 4.5 定點(diǎn)除法運(yùn)算定點(diǎn)除法運(yùn)算3.商符確實(shí)定商符確實(shí)定 商符是在

51、求商的過程中自動構(gòu)成的,按商符是在求商的過程中自動構(gòu)成的,按補(bǔ)碼上商規(guī)那么,第一次得出的商,就是實(shí)補(bǔ)碼上商規(guī)那么,第一次得出的商,就是實(shí)踐應(yīng)得的商符。踐應(yīng)得的商符。 4.求新部分余數(shù)求新部分余數(shù) 求新余數(shù)求新余數(shù)ri+1補(bǔ)的通式如下:補(bǔ)的通式如下: ri+1補(bǔ)補(bǔ)=2ri補(bǔ)補(bǔ)+(1-2Qi)Y補(bǔ)補(bǔ) Qi表示第表示第i步的商。假設(shè)商上步的商。假設(shè)商上“1,下一,下一次操作為余數(shù)左移一位,減去除數(shù);假設(shè)商次操作為余數(shù)左移一位,減去除數(shù);假設(shè)商上上“0,下一次操作為余數(shù)左移一位,加上,下一次操作為余數(shù)左移一位,加上除數(shù)。除數(shù)。5. 末位恒置末位恒置14.5 定點(diǎn)除法運(yùn)算定點(diǎn)除法運(yùn)算補(bǔ)碼加減交替除法規(guī)那

52、么:補(bǔ)碼加減交替除法規(guī)那么:XX補(bǔ)補(bǔ)與與YY補(bǔ)補(bǔ)第一次操作第一次操作rri i 補(bǔ)補(bǔ)與與YY補(bǔ)補(bǔ)上商上商求新余數(shù)求新余數(shù)rri+1i+1 補(bǔ)補(bǔ)的操作的操作同號同號XX補(bǔ)補(bǔ)-Y-Y補(bǔ)補(bǔ)同號同號(夠減)(夠減)1 1rri+1i+1 補(bǔ)補(bǔ)=2r=2ri i 補(bǔ)補(bǔ)-Y-Y補(bǔ)補(bǔ)異號異號(不夠減)(不夠減)0 0rri+1i+1 補(bǔ)補(bǔ)=2r=2ri i 補(bǔ)補(bǔ)+Y+Y補(bǔ)補(bǔ)異號異號XX補(bǔ)補(bǔ)+Y+Y補(bǔ)補(bǔ)同號同號(不夠減)(不夠減)1 1rri+1i+1 補(bǔ)補(bǔ)=2r=2ri i 補(bǔ)補(bǔ)-Y-Y補(bǔ)補(bǔ)異號異號(夠減)(夠減)0 0rri+1i+1 補(bǔ)補(bǔ)=2r=2ri i 補(bǔ)補(bǔ)+Y+Y補(bǔ)補(bǔ)4.5 定點(diǎn)除法運(yùn)算定點(diǎn)除法運(yùn)

53、算知:知:X=0.1000X=0.1000,Y=-0.1010Y=-0.1010;求;求X XY YXX補(bǔ)補(bǔ)=0.1000A=0.1000A,YY補(bǔ)補(bǔ)=1.0110B=1.0110B,0C0C,-Y-Y補(bǔ)補(bǔ)=0.1010=0.10104.5 定點(diǎn)除法運(yùn)算定點(diǎn)除法運(yùn)算 商商補(bǔ)補(bǔ)=1.0011 余數(shù)余數(shù)補(bǔ)補(bǔ)=1.11102-4商商=-0.1101 余數(shù)余數(shù)=-0.00102-41.11102-41.0110XY補(bǔ)補(bǔ)=1.0011+-0.00102-4-0.1010XY= -0.1101+4.5 定點(diǎn)除法運(yùn)算定點(diǎn)除法運(yùn)算X補(bǔ)補(bǔ)A,Y補(bǔ)補(bǔ)B0C,0CR0Cn2A+BA2C C1Cn2A-BA2C CC

54、R+1CRCR=n?EndN.1CnYAs Bs=0?A+BAA-BANYAs Bs=0?NY.4.6 規(guī)格化浮點(diǎn)運(yùn)算規(guī)格化浮點(diǎn)運(yùn)算 4.6.1 浮點(diǎn)加減運(yùn)算浮點(diǎn)加減運(yùn)算 設(shè)兩個非設(shè)兩個非0的規(guī)格化浮點(diǎn)數(shù)分別為的規(guī)格化浮點(diǎn)數(shù)分別為 A=MA2EA B=MB2EB AB=(MA,EA)(MB,EB)= ),2(),2)()(BBEEAAEEBAEMMEMMABBABABAEEEE4.6 規(guī)格化浮點(diǎn)運(yùn)算規(guī)格化浮點(diǎn)運(yùn)算 1.1.浮點(diǎn)數(shù)加減運(yùn)算步驟浮點(diǎn)數(shù)加減運(yùn)算步驟 (1)(1)對階對階 兩個浮點(diǎn)數(shù)相加或相減,首先要兩個浮點(diǎn)數(shù)相加或相減,首先要把小數(shù)點(diǎn)的位置對齊,而浮點(diǎn)數(shù)的小數(shù)點(diǎn)的把小數(shù)點(diǎn)的位置對齊,

55、而浮點(diǎn)數(shù)的小數(shù)點(diǎn)的實(shí)踐位置取決于階碼的大小。因此,對齊兩實(shí)踐位置取決于階碼的大小。因此,對齊兩數(shù)的小數(shù)點(diǎn),就是使兩數(shù)的階碼相等,這個數(shù)的小數(shù)點(diǎn),就是使兩數(shù)的階碼相等,這個過程稱為對階。過程稱為對階。 要對階,首先應(yīng)求出兩數(shù)階碼要對階,首先應(yīng)求出兩數(shù)階碼EAEA和和EBEB之差,即:之差,即:E=EA-EBE=EA-EB4.6 規(guī)格化浮點(diǎn)運(yùn)算規(guī)格化浮點(diǎn)運(yùn)算 假設(shè)假設(shè)E=0,表示兩數(shù)階碼相等,即,表示兩數(shù)階碼相等,即EA=EB;假設(shè);假設(shè)E0,表示,表示EAEB;假設(shè);假設(shè)E0,表示,表示EAEB。 當(dāng)當(dāng)EAEB時,要經(jīng)過尾數(shù)的移位來改時,要經(jīng)過尾數(shù)的移位來改動動EA或或EB,使,使EA=EB相等

56、。相等。 對階的規(guī)那么是:小階向大階看齊。對階的規(guī)那么是:小階向大階看齊。采用這一規(guī)那么的緣由是當(dāng)階碼小的數(shù)的采用這一規(guī)那么的緣由是當(dāng)階碼小的數(shù)的尾數(shù)右移并相應(yīng)添加階碼時,舍去的僅是尾數(shù)右移并相應(yīng)添加階碼時,舍去的僅是尾數(shù)低位部分,誤差比較小。要使小階的尾數(shù)低位部分,誤差比較小。要使小階的階碼增大,那么相應(yīng)的尾數(shù)右移,直到兩階碼增大,那么相應(yīng)的尾數(shù)右移,直到兩數(shù)的階碼相等為止。對于數(shù)的階碼相等為止。對于r=2,每右移一位,每右移一位,階碼加階碼加1。4.6 規(guī)格化浮點(diǎn)運(yùn)算規(guī)格化浮點(diǎn)運(yùn)算 EA=EB,不須對階。,不須對階。 EAEB,那么,那么MB右移。每右移一位,右移。每右移一位,EB+1EB

57、,直至,直至EA=EB為止。為止。 EAEB,那么,那么MA右移。每右移一位,右移。每右移一位,EA+1EA,直至,直至EA=EB為止。為止。 尾數(shù)右移后,應(yīng)對尾數(shù)進(jìn)展舍入。尾數(shù)右移后,應(yīng)對尾數(shù)進(jìn)展舍入。(2)尾數(shù)加尾數(shù)加/減減 對階之后,就可以進(jìn)展尾數(shù)加對階之后,就可以進(jìn)展尾數(shù)加/減,即減,即 MA MBMC4.6 規(guī)格化浮點(diǎn)運(yùn)算規(guī)格化浮點(diǎn)運(yùn)算 (3)尾數(shù)結(jié)果規(guī)格化尾數(shù)結(jié)果規(guī)格化 尾數(shù)加尾數(shù)加/減運(yùn)算之后得到的數(shù)能夠不是減運(yùn)算之后得到的數(shù)能夠不是規(guī)格化數(shù),為了添加有效數(shù)字的位數(shù),提高規(guī)格化數(shù),為了添加有效數(shù)字的位數(shù),提高運(yùn)算精度,必需進(jìn)展結(jié)果規(guī)格化操作。運(yùn)算精度,必需進(jìn)展結(jié)果規(guī)格化操作。 規(guī)

58、格化的尾數(shù)規(guī)格化的尾數(shù)M應(yīng)滿足:應(yīng)滿足: 1/2|M|1 設(shè)尾數(shù)用雙符號位補(bǔ)碼表示,經(jīng)過加設(shè)尾數(shù)用雙符號位補(bǔ)碼表示,經(jīng)過加/減運(yùn)算之后,能夠出現(xiàn)以下六種情況:減運(yùn)算之后,能夠出現(xiàn)以下六種情況:4.6 規(guī)格化浮點(diǎn)運(yùn)算規(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ù)。第、種情況,已是規(guī)格化數(shù)。 第、種情況需求使尾數(shù)左移以實(shí)現(xiàn)規(guī)第、種情況需求使尾數(shù)左移以實(shí)現(xiàn)規(guī)格化,這個過程稱為左規(guī)。格化,這個過程稱為左規(guī)。4.6 規(guī)格化浮點(diǎn)運(yùn)算規(guī)格化浮點(diǎn)運(yùn)算 尾數(shù)每左移一位,階碼相應(yīng)減尾數(shù)每左

59、移一位,階碼相應(yīng)減1EC-1EC,直至成為規(guī)格化數(shù)為止。左規(guī),直至成為規(guī)格化數(shù)為止。左規(guī)能夠需進(jìn)展多次只需滿足以下條件:能夠需進(jìn)展多次只需滿足以下條件: 左規(guī)左規(guī)=Cs1Cs2C1+Cs1Cs2C1 第、種情況在定點(diǎn)加減運(yùn)算中稱為第、種情況在定點(diǎn)加減運(yùn)算中稱為溢出;但在浮點(diǎn)加減運(yùn)算中,只闡明此時尾溢出;但在浮點(diǎn)加減運(yùn)算中,只闡明此時尾數(shù)的絕對值大于數(shù)的絕對值大于1,而并非真正的溢出。這,而并非真正的溢出。這種情況應(yīng)將尾數(shù)右移以實(shí)現(xiàn)規(guī)格化。這個過種情況應(yīng)將尾數(shù)右移以實(shí)現(xiàn)規(guī)格化。這個過程稱為右規(guī)。尾數(shù)每右移一位,階碼相應(yīng)加程稱為右規(guī)。尾數(shù)每右移一位,階碼相應(yīng)加1EC+1EC。 右規(guī)最多進(jìn)展一次右規(guī)

60、最多進(jìn)展一次右規(guī)的條件如下:右規(guī)的條件如下: 右規(guī)右規(guī)=Cs1 Cs24.6 規(guī)格化浮點(diǎn)運(yùn)算規(guī)格化浮點(diǎn)運(yùn)算(4)舍入舍入 由于遭到硬件的限制,在對階和右規(guī)由于遭到硬件的限制,在對階和右規(guī)處置之后有能夠?qū)⑽矓?shù)的低位喪失,這會處置之后有能夠?qū)⑽矓?shù)的低位喪失,這會引起一些誤差。舍入方法已在前面做過引引起一些誤差。舍入方法已在前面做過引見,這里不再贅述。見,這里不再贅述。4.6 規(guī)格化浮點(diǎn)運(yùn)算規(guī)格化浮點(diǎn)運(yùn)算(5)溢出判別溢出判別 當(dāng)尾數(shù)之和差出現(xiàn)當(dāng)尾數(shù)之和差出現(xiàn)10.x x x x或或01.x x x x時,并不表示溢出,只需將此數(shù)時,并不表示溢出,只需將此數(shù)右規(guī)后,再根據(jù)階碼來判別浮點(diǎn)運(yùn)算結(jié)果能右規(guī)

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論