計算機組成原理 第4章 數(shù)值的機器運算_第1頁
計算機組成原理 第4章 數(shù)值的機器運算_第2頁
計算機組成原理 第4章 數(shù)值的機器運算_第3頁
計算機組成原理 第4章 數(shù)值的機器運算_第4頁
計算機組成原理 第4章 數(shù)值的機器運算_第5頁
已閱讀5頁,還剩140頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第4章章 數(shù)值的機器運算數(shù)值的機器運算1蔣本珊蔣本珊 編著編著中國計算機學(xué)會中國計算機學(xué)會“2121世紀大學(xué)本科計算機專業(yè)系列教材世紀大學(xué)本科計算機專業(yè)系列教材”第第4章章 數(shù)值的機器運算數(shù)值的機器運算2第第4章章 數(shù)值的機器運算數(shù)值的機器運算3 運算器是計算機進行算術(shù)運算和邏運算器是計算機進行算術(shù)運算和邏輯運算的主要部件,運算器的邏輯結(jié)構(gòu)輯運算的主要部件,運算器的邏輯結(jié)構(gòu)取決于機器的指令系統(tǒng)、數(shù)據(jù)表示方法取決于機器的指令系統(tǒng)、數(shù)據(jù)表示方法和運算方法等。本章主要討論數(shù)值數(shù)據(jù)和運算方法等。本章主要討論數(shù)值數(shù)據(jù)在計算機中實現(xiàn)算術(shù)運算和邏輯運算的在計算機中實現(xiàn)算術(shù)運算和邏輯運算的方法,以及運算部件

2、的基本結(jié)構(gòu)和工作方法,以及運算部件的基本結(jié)構(gòu)和工作原理。原理。 第第4章章 數(shù)值的機器運算數(shù)值的機器運算4本章學(xué)習(xí)內(nèi)容本章學(xué)習(xí)內(nèi)容 4.1 基本算術(shù)運算的實現(xiàn)基本算術(shù)運算的實現(xiàn) 4.2 定點加減運算定點加減運算 4.3 帶符號數(shù)的移位和舍入操作帶符號數(shù)的移位和舍入操作 4.4 定點乘法運算定點乘法運算 4.5 定點除法運算定點除法運算 4.6 規(guī)格化浮點運算規(guī)格化浮點運算 4.7 十進制整數(shù)的加法運算十進制整數(shù)的加法運算 4.8 邏輯運算與實現(xiàn)邏輯運算與實現(xiàn) 4.9 運算器的基本組成與實例運算器的基本組成與實例第第4章章 數(shù)值的機器運算數(shù)值的機器運算5本章學(xué)習(xí)要求本章學(xué)習(xí)要求 掌握:定點補碼加

3、法和減法運算方法掌握:定點補碼加法和減法運算方法 理解:理解:3種溢出檢測方法種溢出檢測方法 理解理解:補碼移位運算和常見的舍入操作方法:補碼移位運算和常見的舍入操作方法 了解了解:串行加法器與并行加法器串行加法器與并行加法器 理解理解:進位產(chǎn)生和進位傳遞進位產(chǎn)生和進位傳遞 掌握:定點原碼、補碼乘法運算方法掌握:定點原碼、補碼乘法運算方法 掌握:定點原碼、補碼加減交替除法運算方法掌握:定點原碼、補碼加減交替除法運算方法 理解:浮點加減乘除運算理解:浮點加減乘除運算 理解:邏輯運算理解:邏輯運算 了解:運算器的基本結(jié)構(gòu)及浮點協(xié)處理器了解:運算器的基本結(jié)構(gòu)及浮點協(xié)處理器第第4章章 數(shù)值的機器運算數(shù)

4、值的機器運算64.1 4.1 基本算術(shù)運算的實現(xiàn)基本算術(shù)運算的實現(xiàn) 計算機中最基本的算術(shù)運算是加法計算機中最基本的算術(shù)運算是加法運算,不論加、減、乘、除運算最終都運算,不論加、減、乘、除運算最終都可以歸結(jié)為加法運算。所以在此討論最可以歸結(jié)為加法運算。所以在此討論最基本的運算部件基本的運算部件加法器,以及并行加法器,以及并行加法器的進位問題。加法器的進位問題。第第4章章 數(shù)值的機器運算數(shù)值的機器運算74.1.1 4.1.1 加法器加法器 1.全加器全加器 全加器(全加器(FA)是最基本的加法單元,是最基本的加法單元,它有三個輸入量:操作數(shù)它有三個輸入量:操作數(shù)Ai和和Bi、低位傳低位傳來的進位來

5、的進位Ci-1,兩個輸出量:本位和兩個輸出量:本位和Si、向向高位的進位高位的進位Ci。 圖圖4-1 全加器的邏輯框圖全加器的邏輯框圖 FAAiBiSiCiCi-1第第4章章 數(shù)值的機器運算數(shù)值的機器運算8全加器真值表全加器真值表AiBiCi-1SiCi0000111100110011010101010110100100010111第第4章章 數(shù)值的機器運算數(shù)值的機器運算9 根據(jù)真值表,可得到全加器的邏輯表根據(jù)真值表,可得到全加器的邏輯表達式為:達式為: Si=Ai Bi Ci-1 Ci=AiBi+(Ai Bi)Ci-1全加器的邏輯表達式全加器的邏輯表達式第第4章章 數(shù)值的機器運算數(shù)值的機器運

6、算102.串行加法器與并行加法器串行加法器與并行加法器 加法器有串行和并行之分。在串行加法器有串行和并行之分。在串行加法器中,只有一個全加器,數(shù)據(jù)逐位加法器中,只有一個全加器,數(shù)據(jù)逐位串行送入加法器進行運算;并行加法器串行送入加法器進行運算;并行加法器則由多個全加器組成,其位數(shù)的多少取則由多個全加器組成,其位數(shù)的多少取決于機器的字長,數(shù)據(jù)的各位同時運算。決于機器的字長,數(shù)據(jù)的各位同時運算。第第4章章 數(shù)值的機器運算數(shù)值的機器運算11 串行加法器具有器件少、成本低的優(yōu)點,串行加法器具有器件少、成本低的優(yōu)點,但運算速度太慢,所以除去某些低速的專用運但運算速度太慢,所以除去某些低速的專用運算器外很少

7、采用。算器外很少采用。 并行加法器可同時對數(shù)據(jù)的各位相加,但并行加法器可同時對數(shù)據(jù)的各位相加,但存在著一個加法的最長運算時間問題。這是因存在著一個加法的最長運算時間問題。這是因為雖然操作數(shù)的各位是同時提供的,但低位運為雖然操作數(shù)的各位是同時提供的,但低位運算所產(chǎn)生的進位會影響高位的運算結(jié)果。例如:算所產(chǎn)生的進位會影響高位的運算結(jié)果。例如:1111和和0001相加,最低位產(chǎn)生的進位將逐相加,最低位產(chǎn)生的進位將逐位影響至最高位,因此,并行加法器的最長運位影響至最高位,因此,并行加法器的最長運算時間主要是由進位信號的傳遞時間決定的,算時間主要是由進位信號的傳遞時間決定的,而每個全加器本身的求和延遲只

8、是次要因素。而每個全加器本身的求和延遲只是次要因素。很明顯,很明顯,提高并行加法器速度的關(guān)鍵是盡量加提高并行加法器速度的關(guān)鍵是盡量加快進位產(chǎn)生和傳遞的速度。快進位產(chǎn)生和傳遞的速度。2.串行加法器與并行加法器(續(xù))串行加法器與并行加法器(續(xù))第第4章章 數(shù)值的機器運算數(shù)值的機器運算12 并行加法器中的每一個全加器都有并行加法器中的每一個全加器都有一個從低位送來的進位輸入和一個傳送給一個從低位送來的進位輸入和一個傳送給高位的進位輸出。我們將傳遞進位信號的高位的進位輸出。我們將傳遞進位信號的邏輯線路連接起來構(gòu)成的進位網(wǎng)絡(luò)稱為進邏輯線路連接起來構(gòu)成的進位網(wǎng)絡(luò)稱為進位鏈。每一位的進位表達式為:位鏈。每一

9、位的進位表達式為: Ci=AiBi+(Ai Bi)Ci-1 其中:其中:Gi=AiBi為進位產(chǎn)生函數(shù)為進位產(chǎn)生函數(shù) Pi=Ai Bi為進位傳遞函數(shù)為進位傳遞函數(shù) 進位表達式進位表達式Ci=Gi+PiCi-14.1.2 4.1.2 進位的產(chǎn)生和傳遞進位的產(chǎn)生和傳遞第第4章章 數(shù)值的機器運算數(shù)值的機器運算13圖圖4-3 串行進位的并行加法器串行進位的并行加法器其中:其中:C1=G1+P1C0 C2=G2+P2C1 Cn=Gn+PnCn-1 串行進位的并行加法器串行進位的并行加法器 FAFAFAC1C2Cn-1CnA1B1A2B2AnBnS1S2SnC0第第4章章 數(shù)值的機器運算數(shù)值的機器運算144

10、.1.2 4.1.2 進位的產(chǎn)生和傳遞(續(xù))進位的產(chǎn)生和傳遞(續(xù)) 串行進位的并行加法器的總延遲時串行進位的并行加法器的總延遲時間與字長成正比,字長越長,總延遲時間與字長成正比,字長越長,總延遲時間就越長。假定,將一級間就越長。假定,將一級“與門與門”、“或門或門”的延遲時間定為的延遲時間定為ty,從上述公式從上述公式中可看出,每一級全加器的進位延遲時中可看出,每一級全加器的進位延遲時間為間為2ty。在字長為在字長為n位的情況下,若不考位的情況下,若不考慮慮Gi、Pi的形成時間,從的形成時間,從C0Cn的最長延的最長延遲時間為遲時間為2nty(設(shè)設(shè)C0為加法器最低位的進為加法器最低位的進位輸入

11、,位輸入,Cn為加法器最高位的進位輸為加法器最高位的進位輸出)。出)。 第第4章章 數(shù)值的機器運算數(shù)值的機器運算151.并行進位方式并行進位方式 并行進位又叫先行進位、同時進位,并行進位又叫先行進位、同時進位,其特點是各級進位信號同時形成。其特點是各級進位信號同時形成。 C1=G1+PC0 C2=G2+P2C1=G2+P2G1+P2P1C0 C3=G3+P3C2=G3+P3G2+P3P2G1+P3P2P1C0 C4=G4+P4C3=G4+P4G3+P4P3G2+P4P3P2G1 +P4P3P2P1C0 4.1.3 4.1.3 并行加法器的快速進位并行加法器的快速進位 第第4章章 數(shù)值的機器運算

12、數(shù)值的機器運算16 這種進位方式是快速的,若不考慮這種進位方式是快速的,若不考慮Gi、Pi的形成時間,從的形成時間,從C0Cn的最長延遲的最長延遲時間僅為時間僅為2ty,而與字長無關(guān)。但是隨著而與字長無關(guān)。但是隨著加法器位數(shù)的增加,加法器位數(shù)的增加,Ci的邏輯表達式會變的邏輯表達式會變得越來越長,輸入變量會越來越多,這得越來越長,輸入變量會越來越多,這會使電路結(jié)構(gòu)變得很復(fù)雜,所以完全采會使電路結(jié)構(gòu)變得很復(fù)雜,所以完全采用并行進位是不現(xiàn)實的。用并行進位是不現(xiàn)實的。 1.并行進位方式(續(xù))并行進位方式(續(xù))第第4章章 數(shù)值的機器運算數(shù)值的機器運算17單級先行進位方式(組內(nèi)并行、組間串行)單級先行進

13、位方式(組內(nèi)并行、組間串行) 以以16位加法器為例,可分為位加法器為例,可分為4組,每組,每組組4位。第一小組組內(nèi)的進位邏輯函數(shù)位。第一小組組內(nèi)的進位邏輯函數(shù)C1、C2、C3、C4的表達式與前述相同,它們是的表達式與前述相同,它們是同時產(chǎn)生的,實現(xiàn)上述進位邏輯函數(shù)的電同時產(chǎn)生的,實現(xiàn)上述進位邏輯函數(shù)的電路稱之為路稱之為4位先行進位電路位先行進位電路CLA,其延遲其延遲時間是時間是2ty。 利用這種利用這種4位的位的CLA電路以及進位產(chǎn)電路以及進位產(chǎn)生生/傳遞電路和求和電路可以構(gòu)成傳遞電路和求和電路可以構(gòu)成4位的位的CLA加法器。用加法器。用4個這樣的個這樣的CLA加法器,加法器,很容易構(gòu)成很容

14、易構(gòu)成16位的單級先行進位加法器。位的單級先行進位加法器。 2.分組并行進位方式分組并行進位方式第第4章章 數(shù)值的機器運算數(shù)值的機器運算1816位單級先行進位加法器位單級先行進位加法器4位CLA加法器4位CLA加法器4位CLA加法器4位CLA加法器A4A1A8A5A12A9A16A13B4B1B8B5B12B9B16B13S4S1S8S5S12S9S16S13C4C8C12C16C0圖圖4-4 16位單級先行進位加法器位單級先行進位加法器第第4章章 數(shù)值的機器運算數(shù)值的機器運算1916位單級先行進位時間圖位單級先行進位時間圖2468tyCiC0C1C4C8C12C16圖圖4-5 16位單級先行

15、進位時間圖位單級先行進位時間圖第第4章章 數(shù)值的機器運算數(shù)值的機器運算20 多級先行進位方式(組內(nèi)并行、組間并行)多級先行進位方式(組內(nèi)并行、組間并行) 仍以字長為仍以字長為16位的加法器作為例子,分析位的加法器作為例子,分析兩級先行進位加法器的設(shè)計方法。第一小組的兩級先行進位加法器的設(shè)計方法。第一小組的進位輸出進位輸出C4可以變成兩個與項相或:可以變成兩個與項相或: C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0 =G1*+P1*C0 其中:其中:G1*=G4+P4G3+P4P3G2+P4P3P2G1 P1*=P4P3P2P1 Gi*稱為組進位產(chǎn)生函數(shù)稱為組進位產(chǎn)

16、生函數(shù) Pi*稱為組進位傳遞函數(shù)稱為組進位傳遞函數(shù)2.分組并行進位方式(續(xù))分組并行進位方式(續(xù))第第4章章 數(shù)值的機器運算數(shù)值的機器運算21依次類推,可以得到:依次類推,可以得到: C8=G2*+P2*C4=G2*+P2*G1*+P2*P1*C0 C12=G3*+P3*G2+P3*P2*G1*+P3*P2*P1*C0 C16=G4*+P4*G3*+P4*P3*G2*+P4*P3*P2*G1* +P4*P3*P2*P1*C02.分組并行進位方式(續(xù))分組并行進位方式(續(xù))第第4章章 數(shù)值的機器運算數(shù)值的機器運算22 成組先行進位電路成組先行進位電路BCLA,其延遲時其延遲時間是間是2ty。利用

17、這種利用這種4位的位的BCLA電路以及電路以及進位產(chǎn)生進位產(chǎn)生/傳遞電路和求和電路可以構(gòu)成傳遞電路和求和電路可以構(gòu)成4位的位的BCLA加法器。加法器。16位的兩級先行進位位的兩級先行進位加法器可由加法器可由4個個BCLA加法器和加法器和1個個CLA電電路組成。路組成。 2.分組并行進位方式(續(xù))分組并行進位方式(續(xù))第第4章章 數(shù)值的機器運算數(shù)值的機器運算2316位兩級先行進位加法器位兩級先行進位加法器CLA電路BCLA加法器BCLA加法器BCLA加法器BCLA加法器A4A1A8A5A12A9A16A13B16B13B12B9B8B5B4B1S4S1S8S5S12S9S16S13C0C16.P

18、2P1P3P4G1G2G3G4C4C8C12*圖圖4-6 16位兩級先行進位加法器位兩級先行進位加法器第第4章章 數(shù)值的機器運算數(shù)值的機器運算24 若不考慮若不考慮Gi、Pi的形成時間,的形成時間,C0經(jīng)過經(jīng)過2ty產(chǎn)生第一小組的產(chǎn)生第一小組的C1、C2、C3及所有組及所有組進位產(chǎn)生函數(shù)進位產(chǎn)生函數(shù)Gi*和組進位傳遞函數(shù)和組進位傳遞函數(shù)Pi*;再經(jīng)過再經(jīng)過2ty,由由CLA電路產(chǎn)生電路產(chǎn)生C4、C8、C12、C16;再經(jīng)過再經(jīng)過2ty后,才能產(chǎn)生第二、三、后,才能產(chǎn)生第二、三、四小組內(nèi)的四小組內(nèi)的C5C7、C9C11、C13C15。此時加法器的最長進位延遲時間是此時加法器的最長進位延遲時間是6

19、ty。 2.分組并行進位方式(續(xù))分組并行進位方式(續(xù))第第4章章 數(shù)值的機器運算數(shù)值的機器運算2516位兩級先行進位時間圖位兩級先行進位時間圖246tyCiC0C1C4C8C12C16*圖圖4-7 16位兩級先行進位時間圖位兩級先行進位時間圖第第4章章 數(shù)值的機器運算數(shù)值的機器運算26 定點數(shù)的加減運算包括原碼、補碼定點數(shù)的加減運算包括原碼、補碼和反碼和反碼3種帶符號數(shù)的加減運算,其中補種帶符號數(shù)的加減運算,其中補碼加減運算實現(xiàn)起來最方便。碼加減運算實現(xiàn)起來最方便。4.2 4.2 定點加減運算定點加減運算第第4章章 數(shù)值的機器運算數(shù)值的機器運算27原碼加減運算規(guī)則:原碼加減運算規(guī)則: 參加運

20、算的操作數(shù)取其絕對值;參加運算的操作數(shù)取其絕對值; 若做加法,則兩數(shù)直接相加,若做減法,若做加法,則兩數(shù)直接相加,若做減法,則將減數(shù)先變一次補,再進行加法運算;則將減數(shù)先變一次補,再進行加法運算; 運算之后,可能有兩種情況:運算之后,可能有兩種情況: 有進位,結(jié)果為正,即得到正確的結(jié)果。有進位,結(jié)果為正,即得到正確的結(jié)果。 無進位,結(jié)果為負,則應(yīng)再變一次補,無進位,結(jié)果為負,則應(yīng)再變一次補,才能得到正確的結(jié)果。才能得到正確的結(jié)果。 結(jié)果加上符號位。結(jié)果加上符號位。 通常,把運算之前的變補稱為前變補,運通常,把運算之前的變補稱為前變補,運算之后的變補稱為后變補。算之后的變補稱為后變補。 4.2.

21、1 4.2.1 原碼加減運算原碼加減運算 第第4章章 數(shù)值的機器運算數(shù)值的機器運算284.2.2 4.2.2 補碼加減運算補碼加減運算1.補碼加法補碼加法 兩個補碼表示的數(shù)相加,符號位參兩個補碼表示的數(shù)相加,符號位參加運算,且兩數(shù)和的補碼等于兩數(shù)補碼加運算,且兩數(shù)和的補碼等于兩數(shù)補碼之和,即:之和,即: X+Y補補=X補補+Y補補第第4章章 數(shù)值的機器運算數(shù)值的機器運算29 根據(jù)補碼加法公式可推出:根據(jù)補碼加法公式可推出: X-Y補補=X+(-Y)補補=X補補+-Y補補 從補碼減法公式可以看出,只要求從補碼減法公式可以看出,只要求得得-Y補補,就可以變減法為加法。不管,就可以變減法為加法。不管

22、Y的的真值為正或為負,真值為正或為負,已知已知Y補補求求-Y補補的方的方法是:將法是:將Y補補連同符號位一起求反,末尾連同符號位一起求反,末尾加加“1” 。-Y補補被稱為被稱為Y補補的機器負數(shù),的機器負數(shù),由由Y補補求求-Y補補的過程稱為對的過程稱為對Y補補變補變補(求補),表示為(求補),表示為 -Y補補=Y補補變補變補2.補碼減法補碼減法第第4章章 數(shù)值的機器運算數(shù)值的機器運算302.補碼減法(續(xù))補碼減法(續(xù)) “某數(shù)的補碼表示某數(shù)的補碼表示”與與“變補變補”是兩個不是兩個不同的概念。一個負數(shù)由原碼轉(zhuǎn)換成補碼時,符同的概念。一個負數(shù)由原碼轉(zhuǎn)換成補碼時,符號位是不變的,僅對數(shù)值位各位變反,

23、末位加號位是不變的,僅對數(shù)值位各位變反,末位加“1”。而變補則不論這個數(shù)的真值是正是負,。而變補則不論這個數(shù)的真值是正是負,一律連同符號位一起變反,末位加一律連同符號位一起變反,末位加“1”。Y補補表示的真值如果是正數(shù),則變補后表示的真值如果是正數(shù),則變補后-Y補補所表所表示的真值變?yōu)樨摂?shù),反之亦然。示的真值變?yōu)樨摂?shù),反之亦然。 例例1:Y=-0.0110, Y原原=1.0110, Y補補=1.1010, -Y補補=0.0110 例例2:Y=0.0110, Y原原=0.0110, Y補補=0.0110, -Y補補=1.1010第第4章章 數(shù)值的機器運算數(shù)值的機器運算31 參加運算的兩個操作數(shù)均

24、用補碼表參加運算的兩個操作數(shù)均用補碼表示;示; 符號位作為數(shù)的一部分參加運算;符號位作為數(shù)的一部分參加運算; 若做加法,則兩數(shù)直接相加,若做若做加法,則兩數(shù)直接相加,若做減法,則將被減數(shù)與減數(shù)的機器負數(shù)相加;減法,則將被減數(shù)與減數(shù)的機器負數(shù)相加; 運算結(jié)果仍用補碼表示。運算結(jié)果仍用補碼表示。3.補碼加減運算規(guī)則補碼加減運算規(guī)則第第4章章 數(shù)值的機器運算數(shù)值的機器運算32例例3:A=0.1011,B=-0.1110,求求A+B A補補=0.1011 B補補=1.0010 0.1011 A補補 + 1.0010 B補補 1.1101 A+B補補 A+B補補=1.1101 A+B=-0.0011補碼

25、加法示例補碼加法示例第第4章章 數(shù)值的機器運算數(shù)值的機器運算33例例4:A=0.1011,B=-0.0010,求求A-B A補補=0.1011 B補補=1.1110 -B補補=0.0010 0.1011 A補補 + 0.0010 -B補補 0.1101 A-B補補 A-B補補=0.1101 A-B=0.1101補碼減法示例補碼減法示例第第4章章 數(shù)值的機器運算數(shù)值的機器運算34 在計算機算術(shù)運算中,有時必須將采在計算機算術(shù)運算中,有時必須將采用給定位數(shù)表示的數(shù)轉(zhuǎn)換成具有更多位數(shù)用給定位數(shù)表示的數(shù)轉(zhuǎn)換成具有更多位數(shù)的某種表示形式,這被稱為的某種表示形式,這被稱為“符號擴展符號擴展”。 實際上補碼

26、的符號擴展非常簡單,所實際上補碼的符號擴展非常簡單,所有附加位均用符號位填充,即正數(shù)用有附加位均用符號位填充,即正數(shù)用0進行進行填充,負數(shù)用填充,負數(shù)用1填充。填充。4.符號擴展符號擴展第第4章章 數(shù)值的機器運算數(shù)值的機器運算354.2.3 4.2.3 補碼的溢出判斷與檢測方法補碼的溢出判斷與檢測方法 1.溢出的產(chǎn)生溢出的產(chǎn)生 在補碼運算中,若兩個正數(shù)相加,而結(jié)果為在補碼運算中,若兩個正數(shù)相加,而結(jié)果為負;兩個負數(shù)相加,而結(jié)果為正,則結(jié)果出錯。負;兩個負數(shù)相加,而結(jié)果為正,則結(jié)果出錯。 例例5:設(shè):設(shè):X=1011B=11D,Y=111B=7D 則則 X補補=0,1011,Y補補=0,0111

27、 0,1 0 1 1X補補 + 0,0 1 1 1Y補補 1,0 0 1 0X+Y補補 X+Y補補=1,0010 X+Y=-1110B=-14D 兩正數(shù)相加結(jié)果為兩正數(shù)相加結(jié)果為-14D,顯然是錯誤的。顯然是錯誤的。第第4章章 數(shù)值的機器運算數(shù)值的機器運算361.溢出的產(chǎn)生(續(xù))溢出的產(chǎn)生(續(xù))例例6:設(shè):設(shè):X=-1011B=-11D,Y=-111B=-7D 則則 X補補=1,0101 Y補補=1,1001 1,0 1 0 1X補補 + 1,1 0 0 1Y補補 0,1 1 1 0X+Y補補 X+Y補補=0,1110 X+Y=1110B=14D 兩負數(shù)相加結(jié)果為兩負數(shù)相加結(jié)果為14D,顯然也

28、是錯顯然也是錯誤的。誤的。第第4章章 數(shù)值的機器運算數(shù)值的機器運算371.溢出的產(chǎn)生(續(xù))溢出的產(chǎn)生(續(xù)) 字長為字長為n+1位的定點整數(shù)(其中一位為符位的定點整數(shù)(其中一位為符號位),采用補碼表示,當(dāng)運算結(jié)果大于號位),采用補碼表示,當(dāng)運算結(jié)果大于2n-1或小于或小于-2n時,就產(chǎn)生溢出。時,就產(chǎn)生溢出。 設(shè)參加運算的兩數(shù)為設(shè)參加運算的兩數(shù)為X、Y,做加法運算。做加法運算。 若若X、Y異號,實際上是做兩數(shù)相減,所以異號,實際上是做兩數(shù)相減,所以不會溢出。不會溢出。 若若X、Y同號,運算結(jié)果為正且大于所能表同號,運算結(jié)果為正且大于所能表示的最大正數(shù)或運算結(jié)果為負且小于所能表示示的最大正數(shù)或運算

29、結(jié)果為負且小于所能表示的最小負數(shù)(絕對值最大的負數(shù))時,產(chǎn)生溢的最小負數(shù)(絕對值最大的負數(shù))時,產(chǎn)生溢出。將出。將兩正數(shù)相加產(chǎn)生的溢出稱為正溢兩正數(shù)相加產(chǎn)生的溢出稱為正溢;反之,;反之,兩負數(shù)相加產(chǎn)生的溢出稱為負溢兩負數(shù)相加產(chǎn)生的溢出稱為負溢。 第第4章章 數(shù)值的機器運算數(shù)值的機器運算382.溢出檢測方法溢出檢測方法設(shè):被操作數(shù)為:設(shè):被操作數(shù)為:X補補=Xs,X1X2Xn 操作數(shù)為:操作數(shù)為:Y補補=Ys,Y1Y2Yn 其和(差)為:其和(差)為:S補補=Ss,S1S2Sn 采用一個符號位采用一個符號位 采用一個符號位檢測溢出時,當(dāng)采用一個符號位檢測溢出時,當(dāng)Xs=Ys=0,Ss=1時,產(chǎn)生

30、正溢;當(dāng)時,產(chǎn)生正溢;當(dāng)Xs=Ys=1,Ss=0時,產(chǎn)生負溢。時,產(chǎn)生負溢。 溢出判斷條件為溢出判斷條件為 溢出溢出= Ss+Xs Ys sX YssS第第4章章 數(shù)值的機器運算數(shù)值的機器運算392.溢出檢測方法(續(xù))溢出檢測方法(續(xù)) 采用進位位判斷采用進位位判斷 兩數(shù)運算時,產(chǎn)生的進位為兩數(shù)運算時,產(chǎn)生的進位為 Cs,C1C2Cn, 其中:其中:Cs為符號位產(chǎn)生的進位,為符號位產(chǎn)生的進位,C1為最高為最高數(shù)值位產(chǎn)生的進位。數(shù)值位產(chǎn)生的進位。 兩正數(shù)相加,當(dāng)最高有效位產(chǎn)生進位兩正數(shù)相加,當(dāng)最高有效位產(chǎn)生進位(C1=1)而符號位不產(chǎn)生進位(而符號位不產(chǎn)生進位(Cs=0)時,發(fā)時,發(fā)生正溢;兩負

31、數(shù)相加,當(dāng)最高有效位不產(chǎn)生進生正溢;兩負數(shù)相加,當(dāng)最高有效位不產(chǎn)生進位(位(C1=0)而符號位產(chǎn)生進位(而符號位產(chǎn)生進位(Cs=1)時,發(fā)時,發(fā)生負溢。故溢出條件為生負溢。故溢出條件為 溢出溢出= C1+Cs =CsC1 sC1C第第4章章 數(shù)值的機器運算數(shù)值的機器運算402.溢出檢測方法(續(xù))溢出檢測方法(續(xù)) 采用變形補碼(雙符號位補碼)采用變形補碼(雙符號位補碼) 在雙符號位的情況下,把左邊的符號位在雙符號位的情況下,把左邊的符號位Ss1叫做真符,兩個符號位都作為數(shù)的一部分參加叫做真符,兩個符號位都作為數(shù)的一部分參加運算。這種編碼又稱為變形補碼。運算。這種編碼又稱為變形補碼。 雙符號位的

32、含義如下:雙符號位的含義如下: Ss1Ss2=00 結(jié)果為正數(shù),無溢出結(jié)果為正數(shù),無溢出 Ss1Ss2=01 結(jié)果正溢結(jié)果正溢 Ss1Ss2=10 結(jié)果負溢結(jié)果負溢 Ss1Ss2=11 結(jié)果為負數(shù),無溢出結(jié)果為負數(shù),無溢出 當(dāng)兩位符號位的值不一致時,表明產(chǎn)生溢當(dāng)兩位符號位的值不一致時,表明產(chǎn)生溢出,溢出條件為出,溢出條件為 溢出溢出=Ss1 Ss2第第4章章 數(shù)值的機器運算數(shù)值的機器運算414.2.4 4.2.4 補碼定點加減運算的實現(xiàn)補碼定點加減運算的實現(xiàn) 要實現(xiàn)補碼加法,則需給出要實現(xiàn)補碼加法,則需給出XF、YF和和FX三個控制信號,同時打開門三個控制信號,同時打開門A、門門B和門和門C,

33、把寄存器把寄存器X和寄存器和寄存器Y的的內(nèi)容送入加法器的兩個輸入端進行加法內(nèi)容送入加法器的兩個輸入端進行加法運算,并把結(jié)果送回,最后由打入脈沖運算,并把結(jié)果送回,最后由打入脈沖CPX打入寄存器打入寄存器X。 減法與加法的不同之處在于,加法減法與加法的不同之處在于,加法使用使用YF控制信號,減法使用控制信號,減法使用 F和和1F控制信號,其余控制信號相同??刂菩盘枺溆嗫刂菩盘栂嗤?。 Y第第4章章 數(shù)值的機器運算數(shù)值的機器運算42補碼加減運算的邏輯電路補碼加減運算的邏輯電路BF0 10 1XXsYsFs寄存器寄存器加法器 YFF XX F1 F FYYCPXAC圖圖4-8 補碼加減運算器框圖補碼

34、加減運算器框圖 1 第第4章章 數(shù)值的機器運算數(shù)值的機器運算43 在計算機中,實現(xiàn)乘除運算的方案通常有在計算機中,實現(xiàn)乘除運算的方案通常有3種:種: 軟件實現(xiàn)。在低檔微機中無乘除運算指軟件實現(xiàn)。在低檔微機中無乘除運算指令,只能用乘法和除法子程序來實現(xiàn)乘除運算。令,只能用乘法和除法子程序來實現(xiàn)乘除運算。 在原有實現(xiàn)加減運算的運算器基礎(chǔ)上增在原有實現(xiàn)加減運算的運算器基礎(chǔ)上增加一些邏輯線路,使乘除運算變換成加減和移加一些邏輯線路,使乘除運算變換成加減和移位操作。在機器中設(shè)有乘除指令。位操作。在機器中設(shè)有乘除指令。 設(shè)置專用的乘、除法器,機器中設(shè)有相設(shè)置專用的乘、除法器,機器中設(shè)有相應(yīng)的乘除指令。應(yīng)的

35、乘除指令。 不管采用什么方案實現(xiàn)乘除法,基本原理不管采用什么方案實現(xiàn)乘除法,基本原理是相同的。如果采用第種方案,則必然會涉是相同的。如果采用第種方案,則必然會涉及到移位操作。及到移位操作。4.3 4.3 帶符號數(shù)的移位和舍入操作帶符號數(shù)的移位和舍入操作第第4章章 數(shù)值的機器運算數(shù)值的機器運算441.原碼的移位規(guī)則原碼的移位規(guī)則 不論正數(shù)還是負數(shù),在左移或右移時,不論正數(shù)還是負數(shù),在左移或右移時,符號位均不變,空出位一律以符號位均不變,空出位一律以“0”補入。補入。 負數(shù)的原碼移位前后結(jié)果為:負數(shù)的原碼移位前后結(jié)果為: 左移:移位前有:左移:移位前有:1 X1 X2 Xn-1 Xn 移位后有:移

36、位后有:1 X2 X3 Xn 0 右移:移位前有:右移:移位前有:1 X1 X2 Xn-1 Xn 移位后有:移位后有:1 0 X1 Xn-2 Xn-1 4.3.1 4.3.1 帶符號數(shù)的移位操作帶符號數(shù)的移位操作 第第4章章 數(shù)值的機器運算數(shù)值的機器運算452.補碼的移位規(guī)則補碼的移位規(guī)則 正數(shù)正數(shù) 符號位不變,不論左移或右移,空出符號位不變,不論左移或右移,空出位一律以位一律以“0”補入。補入。負數(shù)負數(shù) 符號位不變,左移后的空出位補符號位不變,左移后的空出位補“0”,右移后的空出位補右移后的空出位補“1”。 左移:移位前有:左移:移位前有:1 X1 X2 Xn-1 Xn 移位后有:移位后有:

37、1 X2 X3 Xn 0 右移:移位前有:右移:移位前有:1 X1 X2 Xn-1 Xn 移位后有:移位后有:1 1 X1 Xn-2 Xn-1 第第4章章 數(shù)值的機器運算數(shù)值的機器運算463.移位功能的實現(xiàn)移位功能的實現(xiàn) 在計算機中,通常移位操作由移位在計算機中,通常移位操作由移位寄存器來實現(xiàn),但也有一些計算機不設(shè)置寄存器來實現(xiàn),但也有一些計算機不設(shè)置專門的移位寄存器,而在加法器的輸出端專門的移位寄存器,而在加法器的輸出端加一個移位器。移位器是由與門和或門組加一個移位器。移位器是由與門和或門組成的邏輯電路(實際是一個多路選擇器),成的邏輯電路(實際是一個多路選擇器),可以實現(xiàn)直傳(不移位)、左

38、斜一位送可以實現(xiàn)直傳(不移位)、左斜一位送(左移一位)和右斜一位送(右移一位)(左移一位)和右斜一位送(右移一位)的功能。的功能。第第4章章 數(shù)值的機器運算數(shù)值的機器運算47移位器邏輯電路移位器邏輯電路 LiFiFi+1Fi-12F LF LF/2 L1 圖圖4-9 移位器邏輯電路移位器邏輯電路 第第4章章 數(shù)值的機器運算數(shù)值的機器運算484.3.2 4.3.2 帶符號數(shù)的舍入操作帶符號數(shù)的舍入操作 在算術(shù)右移時,由于受到硬件的限制,在算術(shù)右移時,由于受到硬件的限制,運算結(jié)果有可能需要舍去一定的尾數(shù),這運算結(jié)果有可能需要舍去一定的尾數(shù),這會造成一些誤差。為了縮小誤差,就要進會造成一些誤差。為了

39、縮小誤差,就要進行舍入處理。假定經(jīng)過運算后的數(shù)共有行舍入處理。假定經(jīng)過運算后的數(shù)共有p+q位,現(xiàn)僅允許保留前位,現(xiàn)僅允許保留前p位。常見的舍入方法位。常見的舍入方法有:有:恒舍(切斷)恒舍(切斷) 無論多余部分無論多余部分q位為何代碼,一律舍位為何代碼,一律舍去,保留部分的去,保留部分的p位不作任何改變。位不作任何改變。第第4章章 數(shù)值的機器運算數(shù)值的機器運算494.3.2 4.3.2 帶符號數(shù)的舍入操作(續(xù))帶符號數(shù)的舍入操作(續(xù))馮馮諾依曼舍入法諾依曼舍入法 這種舍入法又稱為恒置這種舍入法又稱為恒置1法,即不論多法,即不論多余部分余部分q位為何代碼,都把保留部分位為何代碼,都把保留部分p位

40、的位的最低位置最低位置1。下舍上入法下舍上入法 下舍上入就是下舍上入就是0舍舍1入。用將要舍去的入。用將要舍去的q位的最高位作為判斷標(biāo)志,以決定保留部位的最高位作為判斷標(biāo)志,以決定保留部分是否加分是否加1。如該位為。如該位為0,則舍去整個,則舍去整個q位位(相當(dāng)于恒舍);如該位為(相當(dāng)于恒舍);如該位為1,則在保留的,則在保留的p位的最低位上加位的最低位上加1。第第4章章 數(shù)值的機器運算數(shù)值的機器運算504.3.2 4.3.2 帶符號數(shù)的舍入操作(續(xù))帶符號數(shù)的舍入操作(續(xù)) 查表舍入法查表舍入法 查表舍入法又稱查表舍入法又稱ROM舍入法,因為它舍入法,因為它用用ROM來存放舍入處理表,每次經(jīng)

41、查表來來存放舍入處理表,每次經(jīng)查表來讀得相應(yīng)的處理結(jié)果。通常,讀得相應(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”時,讓那時,讓那些單元按恒舍法填入些單元按恒舍法填入K-1位全位全“1”,其余,其余單元都按下舍上入法來填其內(nèi)容。單元都按下舍上入法來填其內(nèi)容。第第4章章 數(shù)值的機器運算數(shù)值的機器運算514.4 4.4 定點乘法運算定點乘法運算 在計算機中,乘法運算大多數(shù)由累在計算機中,乘法運算大多數(shù)由累加與移位

42、來實現(xiàn),也有些機器中具有由加與移位來實現(xiàn),也有些機器中具有由大規(guī)模集成電路制造的陣列乘法模塊。大規(guī)模集成電路制造的陣列乘法模塊。第第4章章 數(shù)值的機器運算數(shù)值的機器運算524.4.1 4.4.1 原碼一位乘法原碼一位乘法1.原碼一位乘法算法原碼一位乘法算法 原碼一位乘法是從手算演變而來的,原碼一位乘法是從手算演變而來的,即用兩個操作數(shù)的絕對值相乘,乘積的即用兩個操作數(shù)的絕對值相乘,乘積的符號為兩操作數(shù)符號的異或值(同號為符號為兩操作數(shù)符號的異或值(同號為正,異號為負)。正,異號為負)。 乘積乘積P=|X|Y| 符號符號Ps=Xs Ys 式中:式中:Ps為乘積的符號,為乘積的符號,Xs和和Ys為

43、為被乘數(shù)和乘數(shù)的符號。被乘數(shù)和乘數(shù)的符號。第第4章章 數(shù)值的機器運算數(shù)值的機器運算531.原碼一位乘法算法(續(xù))原碼一位乘法算法(續(xù))原碼一位乘法的規(guī)則:原碼一位乘法的規(guī)則: 參加運算的操作數(shù)取其絕對值;參加運算的操作數(shù)取其絕對值; 令乘數(shù)的最低位為判斷位,若為令乘數(shù)的最低位為判斷位,若為“1”,加被乘數(shù),若為,加被乘數(shù),若為“0”,不加被乘,不加被乘數(shù)(加數(shù)(加0);); 累加后的部分積以及乘數(shù)右移一位;累加后的部分積以及乘數(shù)右移一位; 重復(fù)重復(fù)n次次和和 ; 符號位單獨處理,同號為正,異號符號位單獨處理,同號為正,異號為負。為負。 第第4章章 數(shù)值的機器運算數(shù)值的機器運算541.原碼一位乘

44、法算法(續(xù))原碼一位乘法算法(續(xù)) 通常,乘法運算需要通常,乘法運算需要3個寄存器。被個寄存器。被乘數(shù)存放在乘數(shù)存放在B寄存器中;乘數(shù)存放在寄存器中;乘數(shù)存放在C寄寄存器中;存器中;A寄存器用來存放部分積與最后寄存器用來存放部分積與最后乘積的高位部分,它的初值為乘積的高位部分,它的初值為0。運算結(jié)。運算結(jié)束后寄存器束后寄存器C中不再保留乘數(shù),改為存放中不再保留乘數(shù),改為存放乘積的低位部分。乘積的低位部分。 例例8:已知:已知:X=0.1101,Y=-0.1011,求:求:XY。 |X|=00.1101B,|Y|=.1011C,0A第第4章章 數(shù)值的機器運算數(shù)值的機器運算55原碼一位乘法示例原碼

45、一位乘法示例 A C 說明說明0 0.0 0 0 0 1 0 1 1+|X| 0 0.1 1 0 1 C4=1,+|X|0 0.1 1 0 1 0 0.0 1 1 0 1 1 0 1 部分積右移一位部分積右移一位0 1.0 0 1 1+|X| 0 0.1 1 0 1 C4=1,+|X| 0 0.1 0 0 1 1 1 1 0 部分積右移一位部分積右移一位+0 0 0.0 0 0 0 C4=0,+00 0.1 0 0 1 0 0.0 1 0 0 1 1 1 1 部分積右移一位部分積右移一位+|X| 0 0.1 1 0 1 C4=1,+|X|0 1.0 0 0 1 0 0.1 0 0 0 1 1

46、1 1 部分積右移一位部分積右移一位PS=XS YS=0 1=1X Y=-0.10001111 第第4章章 數(shù)值的機器運算數(shù)值的機器運算56原碼一位乘法流程圖原碼一位乘法流程圖 EndYN|X| B,|Y| C0 A,0 CRCn=1?CR+1CRCR=n? (A+0) A C C (A+B) A C CXS YS PSYN 圖圖4-11 原碼一位乘法流程圖原碼一位乘法流程圖第第4章章 數(shù)值的機器運算數(shù)值的機器運算572.原碼一位乘法運算的實現(xiàn)原碼一位乘法運算的實現(xiàn) 圖圖4-12中中A、B是是n+2位的寄存器,位的寄存器,C是是n位位的寄存器,的寄存器,A寄存器和寄存器和C寄存器是級聯(lián)在一起的

47、,寄存器是級聯(lián)在一起的,它們都具有右移一位的功能,在右移控制信號它們都具有右移一位的功能,在右移控制信號的作用下,的作用下,A寄存器最低一位的值將移入寄存器最低一位的值將移入C寄存寄存器的最高位。器的最高位。C寄存器的最低位的值作為字級寄存器的最低位的值作為字級與門的控制信號,以控制加被乘數(shù)還是不加被與門的控制信號,以控制加被乘數(shù)還是不加被乘數(shù)(即加乘數(shù)(即加0)。)。C寄存器中的乘數(shù)在逐次右移寄存器中的乘數(shù)在逐次右移過程中將逐步丟失,取而代之的是乘積的低位過程中將逐步丟失,取而代之的是乘積的低位部分。原碼一位乘法運算器電路中除去三個寄部分。原碼一位乘法運算器電路中除去三個寄存器外,還需要一個

48、存器外,還需要一個n+2位的加法器、一個計位的加法器、一個計數(shù)器、數(shù)器、n+2個與門(控制是否加被乘數(shù))和一個與門(控制是否加被乘數(shù))和一個異或門(處理符號位)。個異或門(處理符號位)。第第4章章 數(shù)值的機器運算數(shù)值的機器運算584.4.2 4.4.2 補碼一位乘法補碼一位乘法 雖然原碼乘法比補碼乘法容易實現(xiàn),雖然原碼乘法比補碼乘法容易實現(xiàn),但因為補碼加減法簡單,在以加減運算為但因為補碼加減法簡單,在以加減運算為主的通用機中操作數(shù)都用補碼表示,所以主的通用機中操作數(shù)都用補碼表示,所以這類計算機在做乘法時常使用補碼乘法。這類計算機在做乘法時常使用補碼乘法。1.校正法校正法 校正法是將校正法是將X

49、補補和和Y補補按原碼規(guī)則運按原碼規(guī)則運算,所得結(jié)果根據(jù)情況再加以校正,從而算,所得結(jié)果根據(jù)情況再加以校正,從而得到正確的得到正確的XY補補。補碼乘法的統(tǒng)一表達。補碼乘法的統(tǒng)一表達式:式: XY補補=X補補(0.Y1Y2Yn)+-X補補Ys第第4章章 數(shù)值的機器運算數(shù)值的機器運算592.比較法比較法Booth乘法乘法 遞推公式:遞推公式: Z0補補=0 Z1補補=2-1Z0補補+(Yn+1-Yn)X補補 Z2補補=2-1Z1補補+(Yn-Yn-1)X補補 Zn補補=2-1Zn-1補補+(Y2-Y1)X補補 XY補補=Zn補補+(Y1-Ys)X補補 式中,式中,Z0補補為初始部分積,為初始部分積,

50、Z1補補Zn補補依次為各次求得的累加并右移之后依次為各次求得的累加并右移之后的部分積。的部分積。 第第4章章 數(shù)值的機器運算數(shù)值的機器運算602.比較法比較法Booth乘法乘法 (續(xù))(續(xù)) Booth乘法規(guī)則:乘法規(guī)則: 參加運算的數(shù)用補碼表示;參加運算的數(shù)用補碼表示; 符號位參加運算;符號位參加運算; 乘數(shù)最低位后面增加一位附加位乘數(shù)最低位后面增加一位附加位Yn+1,其初值為其初值為0; 由于每求一次部分積要右移一位,由于每求一次部分積要右移一位,所以乘數(shù)的最低兩位所以乘數(shù)的最低兩位Yn、Yn+1的值決定了的值決定了每次應(yīng)執(zhí)行的操作;每次應(yīng)執(zhí)行的操作; 移位按補碼右移規(guī)則進行;移位按補碼右

51、移規(guī)則進行; 共需做共需做n+1次累加,次累加,n次移位,第次移位,第n+1次不移位。次不移位。第第4章章 數(shù)值的機器運算數(shù)值的機器運算61Booth乘法運算操作乘法運算操作 判斷位判斷位Yn Yn+1 操操 作作 0 0 原部分積右移一位原部分積右移一位 0 1 原部分積加原部分積加X補補后右移一位后右移一位 1 0 原部分積加原部分積加-X補補后右移一位后右移一位 1 1 原部分積右移一位原部分積右移一位 第第4章章 數(shù)值的機器運算數(shù)值的機器運算622.比較法比較法Booth乘法乘法 (續(xù))(續(xù)) 由于符號位要參加運算,部分積累由于符號位要參加運算,部分積累加時最高有效位產(chǎn)生的進位可能會侵

52、占加時最高有效位產(chǎn)生的進位可能會侵占符號位,故被乘數(shù)和部分積應(yīng)取雙符號符號位,故被乘數(shù)和部分積應(yīng)取雙符號位,而乘數(shù)只需要一位符號位。運算時位,而乘數(shù)只需要一位符號位。運算時仍需要有仍需要有3個寄存器,各自的作用與原碼個寄存器,各自的作用與原碼時相同,只不過存放的內(nèi)容均為補碼表時相同,只不過存放的內(nèi)容均為補碼表示而已。示而已。 例例9:已知:已知X=-0.1101,Y=0.1011;求求XY。 X補補=11.0011B,Y補補=0.1011C,0A -X補補=00.1101第第4章章 數(shù)值的機器運算數(shù)值的機器運算63Booth乘法示例乘法示例 A C A C 附加位附加位 說明說明0 0.0 0

53、 0 0 0.1 0 1 1 0 0.0 0 0 0 0.1 0 1 1 0 0+-+-XX補補 0 0.1 1 0 1 0 0.1 1 0 1 C C4 4C C5 5=10=10,+-X+-X補補0 0.1 1 0 10 0.1 1 0 1 0 0.0 1 1 0 1 0 1 0 1 1 0 0.0 1 1 0 1 0 1 0 1 1 部分積右移一位部分積右移一位+0 0 0.0 0 0 0 +0 0 0.0 0 0 0 C C4 4C C5 5=11=11,+0+00 0.0 1 1 00 0.0 1 1 0 0 0.0 0 1 1 0 1 0 1 0 1 0 0.0 0 1 1 0 1

54、 0 1 0 1 部分積右移一位部分積右移一位+XX補補 1 1.0 0 1 1 1 1.0 0 1 1 C C4 4C C5 5=01=01,+X+X補補1 1.0 1 1 01 1.0 1 1 0 1 1.1 0 1 1 0 0 1 0 1 0 1 1.1 0 1 1 0 0 1 0 1 0 部分積右移一位部分積右移一位+-+-XX補補 0 0.1 1 0 1 0 0.1 1 0 1 C C4 4C C5 5=10=10,+-X+-X補補0 0.1 0 0 00 0.1 0 0 0 0 0.0 1 0 0 0 0 0 1 0 1 0 0.0 1 0 0 0 0 0 1 0 1 部分積右移一

55、位部分積右移一位+XX補補 1 1.0 0 1 1 1 1.0 0 1 1 C C4 4C C5 5=01=01,+X+X補補1 1.0 1 1 11 1.0 1 1 1X Y補補=1.01110001X Y=-0.10001111第第4章章 數(shù)值的機器運算數(shù)值的機器運算64Booth乘法流程圖乘法流程圖X補B,Y補C0A,0CR,0Cn+1CnCn+1=?A-BACR+1CRCR=n+1?EndYN.A+BAAACC011000/11圖圖4-13 Booth乘法流程圖乘法流程圖第第4章章 數(shù)值的機器運算數(shù)值的機器運算653.Booth乘法運算的實現(xiàn)乘法運算的實現(xiàn) 各器件的作用與原碼一位乘法相

56、同,各器件的作用與原碼一位乘法相同,A、B寄存器長寄存器長n+2位,位,C寄存器長寄存器長n+1位,位,還需一個還需一個n+2位的加法器、位的加法器、n+2個與或門個與或門和一個計數(shù)器。由和一個計數(shù)器。由C寄存器的最低兩位寄存器的最低兩位CnCn+1來控制是加來控制是加/減被乘數(shù)還是加減被乘數(shù)還是加0,當(dāng),當(dāng)CnCn+1=01時,加被乘數(shù),即加時,加被乘數(shù),即加B寄存器寄存器的內(nèi)容;的內(nèi)容;CnCn+1=10時,減被乘數(shù),即加時,減被乘數(shù),即加上上B寄存器中內(nèi)容的反,并在加法器的最寄存器中內(nèi)容的反,并在加法器的最低位加低位加1;CnCn+1=00或或11時,不加也不減時,不加也不減(加(加0)

57、。由于符號位參與運算,所以不)。由于符號位參與運算,所以不需要專門處理符號位的異或門。需要專門處理符號位的異或門。第第4章章 數(shù)值的機器運算數(shù)值的機器運算664.4.3 4.4.3 補碼兩位乘法補碼兩位乘法 為了提高乘法的執(zhí)行速度,可以選為了提高乘法的執(zhí)行速度,可以選用兩位乘法的方案。所謂兩位乘法,就用兩位乘法的方案。所謂兩位乘法,就是每次處理乘數(shù)中的兩位,從而使乘法是每次處理乘數(shù)中的兩位,從而使乘法的速度提高了一倍。的速度提高了一倍。 根據(jù)根據(jù)Booth乘法方便地推導(dǎo)出補碼兩乘法方便地推導(dǎo)出補碼兩位乘法,即把補碼兩位乘理解為將位乘法,即把補碼兩位乘理解為將Booth乘法的兩次合并為一次來做。

58、乘法的兩次合并為一次來做。 第第4章章 數(shù)值的機器運算數(shù)值的機器運算67補碼兩位乘法操作補碼兩位乘法操作Yn-1YnYn+10 0 0 +0,右移右移2位位0 0 1 +X補補,右移,右移2位位0 1 0 +X補補,右移,右移2位位0 1 1 +2X補補,右移,右移2位位1 0 0 +2-X補補,右移,右移2位位1 0 1 +-X補補,右移,右移2位位1 1 0 +-X補補,右移,右移2位位1 1 1 +0,右移,右移2位位第第4章章 數(shù)值的機器運算數(shù)值的機器運算684.4.3 4.4.3 補碼兩位乘法(續(xù))補碼兩位乘法(續(xù)) 被乘數(shù)和部分積取被乘數(shù)和部分積取3符號位,當(dāng)乘數(shù)的數(shù)符號位,當(dāng)乘數(shù)

59、的數(shù)值位值位n為偶數(shù)時,乘數(shù)取兩符號位,共需作為偶數(shù)時,乘數(shù)取兩符號位,共需作 +1次累加,次累加, 次移位(最后一次不移位);當(dāng)次移位(最后一次不移位);當(dāng)n為為奇數(shù)時,乘數(shù)只需一個符號位,共需奇數(shù)時,乘數(shù)只需一個符號位,共需 次累次累加和移位,但最后一次僅移一位。加和移位,但最后一次僅移一位。 例例10:已知:已知:X=0.0110011,Y=-0.0110010,求:求:XY。 X補補=000.0110011B, Y補補=1.1001110C,0A 2X補補=000.1100110, -X補補=111.1001101,2-X補補=111.00110102n21n 2n第第4章章 數(shù)值的機

60、器運算數(shù)值的機器運算69補碼兩位乘法示例補碼兩位乘法示例 A C 附加位附加位+2-X補補 1 1 1.0 0 1 1 0 1 00 0 0.0 0 0 0 0 0 0 1.1 0 0 1 1 1 0 0 1 1 1.0 0 1 1 0 1 02 1 1 1.1 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 +0 0 0 0.0 0 0 0 0 0 01 1 1.1 1 0 0 1 1 02 1 1 1.1 1 1 1 0 0 1 1 0 1 0 1 1 0 0 1 + X補補 0 0 0.0 1 1 0 0 1 10 0 0.0 1 0 1 1 0 02 0 0 0.0 0 0

溫馨提示

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

最新文檔

評論

0/150

提交評論