




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第四章第四章 數(shù)據(jù)的機(jī)器運算數(shù)據(jù)的機(jī)器運算n計算機(jī)的主要功能是對數(shù)據(jù)進(jìn)展各種加工和處置,包括計算機(jī)的主要功能是對數(shù)據(jù)進(jìn)展各種加工和處置,包括加、減、乘、除這些根本的算術(shù)運算,與、或、非這些加、減、乘、除這些根本的算術(shù)運算,與、或、非這些根本的邏輯運算,以及由此構(gòu)成的其它復(fù)雜的運算。運根本的邏輯運算,以及由此構(gòu)成的其它復(fù)雜的運算。運算器那么是實現(xiàn)這些運算的主要部件。算器那么是實現(xiàn)這些運算的主要部件。n無論多么復(fù)雜的運算,最終都要分解為加法運算來實現(xiàn)。無論多么復(fù)雜的運算,最終都要分解為加法運算來實現(xiàn)。其中,減法運算經(jīng)過補(bǔ)碼轉(zhuǎn)化為加法來實現(xiàn)其中,減法運算經(jīng)過補(bǔ)碼轉(zhuǎn)化為加法來實現(xiàn) ;乘、除運;乘、除運
2、算可以轉(zhuǎn)換為加減運算、移位操作來實現(xiàn)。加法和移位算可以轉(zhuǎn)換為加減運算、移位操作來實現(xiàn)。加法和移位是計算機(jī)中最根本的兩種運算操作。是計算機(jī)中最根本的兩種運算操作。n可見,加法器又是運算器的中心部件。在加法器的根底可見,加法器又是運算器的中心部件。在加法器的根底上添加移位功能,并經(jīng)過選擇輸入控制條件,就可以實上添加移位功能,并經(jīng)過選擇輸入控制條件,就可以實現(xiàn)一切的運算?,F(xiàn)一切的運算。 本章主要內(nèi)容本章主要內(nèi)容主要內(nèi)容主要內(nèi)容算術(shù)、邏輯運算的實現(xiàn)算術(shù)、邏輯運算的實現(xiàn)定點加、減運算定點加、減運算數(shù)的移位和舍入操作數(shù)的移位和舍入操作定點乘、除運算定點乘、除運算規(guī)格化浮點運算規(guī)格化浮點運算一、算術(shù)邏輯運算
3、的實現(xiàn)一、算術(shù)邏輯運算的實現(xiàn) 計算機(jī)中最根本的算術(shù)運算是加法運算,不論加、計算機(jī)中最根本的算術(shù)運算是加法運算,不論加、減、乘、除運算最終都可以歸結(jié)為加法運算。所以減、乘、除運算最終都可以歸結(jié)為加法運算。所以首先討論最根本、最中心的運算部件首先討論最根本、最中心的運算部件加法器,加法器,以及并行加法器的進(jìn)位問題。以及并行加法器的進(jìn)位問題。加法器是由全加器和其它必要的邏輯電路組成的,加法器是由全加器和其它必要的邏輯電路組成的,所以我們從全加器開場討論。所以我們從全加器開場討論。1 1、全加器、全加器FAFAn全加器全加器FA是最根本是最根本的運算單元,由它構(gòu)成的運算單元,由它構(gòu)成加法器。加法器。n
4、全加器有三個輸入量:全加器有三個輸入量:操作數(shù)操作數(shù)Ai、Bi、以及低、以及低位傳來的進(jìn)位信號位傳來的進(jìn)位信號Ci-1 。n全加器有兩個輸出量:全加器有兩個輸出量:本位和本位和Si、以及向高位、以及向高位的進(jìn)位信號的進(jìn)位信號Ci。 Ai Bi Ci-1 Si Ci 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 全加器真值表全加器的邏輯方程和電路全加器的邏輯方程和電路根據(jù)真值表得:根據(jù)真值表得: Si=AiBiCi-1 Si=AiBiCi-1 Ci=AiBi+(AiCi=AiBi+(
5、AiBi)Ci-1Bi)Ci-1 Si : Si : 本位和本位和 Ci : Ci : 向高位的進(jìn)向高位的進(jìn)位位實現(xiàn)電路實現(xiàn)電路邏輯框圖邏輯框圖一個全加器只完成一位加法一個全加器只完成一位加法全加器構(gòu)成加法器全加器構(gòu)成加法器n全加器并不存儲信息,可用門電路來實現(xiàn)。用全加全加器并不存儲信息,可用門電路來實現(xiàn)。用全加器可以方便地構(gòu)成加法器。加法器分為串行加法器器可以方便地構(gòu)成加法器。加法器分為串行加法器和并行加法器。和并行加法器。 n串行加法器只需一個全加器,數(shù)據(jù)逐位串行送入加串行加法器只需一個全加器,數(shù)據(jù)逐位串行送入加法器進(jìn)展計算。由于運算速度慢,普通不用。法器進(jìn)展計算。由于運算速度慢,普通不用
6、。n并行加法器那么由假設(shè)干個這樣的全加器構(gòu)成,各并行加法器那么由假設(shè)干個這樣的全加器構(gòu)成,各位數(shù)據(jù)同時運算。并行加法器的位數(shù)與操作數(shù)的位位數(shù)據(jù)同時運算。并行加法器的位數(shù)與操作數(shù)的位數(shù)相等。并行加法器的最長運算時間主要取決于進(jìn)數(shù)相等。并行加法器的最長運算時間主要取決于進(jìn)位信號的傳送時間。例如:位信號的傳送時間。例如:1111和和0001相加,相加,最低位產(chǎn)生的進(jìn)位將逐位影響到最高位最低位產(chǎn)生的進(jìn)位將逐位影響到最高位.n由此可見,提高并行加法器速度的關(guān)鍵是盡量加快由此可見,提高并行加法器速度的關(guān)鍵是盡量加快進(jìn)位產(chǎn)生和傳送的速度。進(jìn)位產(chǎn)生和傳送的速度。2 2、進(jìn)位產(chǎn)生與傳送、進(jìn)位產(chǎn)生與傳送n進(jìn)位鏈的
7、概念:進(jìn)位鏈的概念:n并行加法器中的每一個全加器都有一個從低位送并行加法器中的每一個全加器都有一個從低位送來的進(jìn)位輸入和一個傳送給高位的進(jìn)位輸出。我們把來的進(jìn)位輸入和一個傳送給高位的進(jìn)位輸出。我們把構(gòu)成進(jìn)位信號產(chǎn)生和傳送的邏輯網(wǎng)絡(luò)稱為進(jìn)位鏈。構(gòu)成進(jìn)位信號產(chǎn)生和傳送的邏輯網(wǎng)絡(luò)稱為進(jìn)位鏈。n進(jìn)位鏈上每一位的進(jìn)位表達(dá)式為:進(jìn)位鏈上每一位的進(jìn)位表達(dá)式為:n Ci=AiBi+(Ai Bi)Ci-1 n設(shè)設(shè)Gi=AiBi ,稱為進(jìn)位產(chǎn)生函數(shù),稱為進(jìn)位產(chǎn)生函數(shù)nPi=Ai Bi ,稱為進(jìn)位傳送函數(shù),稱為進(jìn)位傳送函數(shù)n 進(jìn)位表達(dá)式進(jìn)位表達(dá)式 Ci=Gi+PiCi-1串行進(jìn)位串行進(jìn)位n把把n個全加器串聯(lián)起來,就
8、可以實現(xiàn)兩個個全加器串聯(lián)起來,就可以實現(xiàn)兩個n位數(shù)的相加。這種加法器位數(shù)的相加。這種加法器稱為串行進(jìn)位的并行加法器,串行進(jìn)位又叫行波進(jìn)位。稱為串行進(jìn)位的并行加法器,串行進(jìn)位又叫行波進(jìn)位。 FAFAFAC1C2Cn-1CnA1B1A2B2AnBnS1S2SnC0其中:其中:C1=G1+P1C0 C2=G2+P2C1 Cn=Gn+PnCn-1n串行進(jìn)位的并行加法器,總的延遲時間正比于字串行進(jìn)位的并行加法器,總的延遲時間正比于字長,字長越長,總延遲時間也越長。長,字長越長,總延遲時間也越長。n假設(shè)一位進(jìn)位需假設(shè)一位進(jìn)位需2ty時間,完成時間,完成n位進(jìn)位就需求位進(jìn)位就需求2nty.n要提高加法運算速
9、度,必需改良進(jìn)位方式。要提高加法運算速度,必需改良進(jìn)位方式。 3 3、并行加法器的快速進(jìn)位、并行加法器的快速進(jìn)位l改良串行進(jìn)位方式的根本思緒是讓各進(jìn)位同時構(gòu)成,防止各進(jìn)位之改良串行進(jìn)位方式的根本思緒是讓各進(jìn)位同時構(gòu)成,防止各進(jìn)位之間的依賴關(guān)系。如今來分析一下進(jìn)位關(guān)系。間的依賴關(guān)系。如今來分析一下進(jìn)位關(guān)系。 l展 開展 開 C 1 = G 1 + P 1 C 0 ; C 2 = G 2 + P 2 C 1 ; ,Cn=Gn+PnCn-1 得關(guān)系式:得關(guān)系式:l C1=G1+P1C0l C2=G2+P2C1=G2+P2G1+P2P1C0l C3=G3+P3C2=G3+P3G2+P3P2G1+P3P
10、2P1C0 l C4=G4+P4C3=G4+P4G3+P4P3G2+P4P3P2G1 +P4P3P2P1C0l l以上進(jìn)位輸出只與以上進(jìn)位輸出只與Gi、Pi以及最低進(jìn)位以及最低進(jìn)位C0有關(guān),而且不依賴有關(guān),而且不依賴于其低位進(jìn)位于其低位進(jìn)位Ci-1的輸入,因此各級進(jìn)位可以同時產(chǎn)生,構(gòu)成并行的輸入,因此各級進(jìn)位可以同時產(chǎn)生,構(gòu)成并行進(jìn)位。進(jìn)位。并行進(jìn)位的特點并行進(jìn)位的特點n并行進(jìn)位的特點是各級進(jìn)位信號同時構(gòu)成,與字長無并行進(jìn)位的特點是各級進(jìn)位信號同時構(gòu)成,與字長無關(guān),提高了整體運算速度關(guān),提高了整體運算速度 。并行進(jìn)位又叫先行進(jìn)位。并行進(jìn)位又叫先行進(jìn)位。n最長延遲時間僅為最長延遲時間僅為2ty。
11、n隨著加法器位數(shù)的添加,隨著加法器位數(shù)的添加,Ci的邏輯表達(dá)式會變得越來的邏輯表達(dá)式會變得越來越長,輸入變量會越來越多,電路構(gòu)造也會變得越來越長,輸入變量會越來越多,電路構(gòu)造也會變得越來越復(fù)雜,導(dǎo)致電路實現(xiàn)也越來越困難。越復(fù)雜,導(dǎo)致電路實現(xiàn)也越來越困難。n并行進(jìn)位方式需繼續(xù)改良,才干有適用價值。這就是并行進(jìn)位方式需繼續(xù)改良,才干有適用價值。這就是下面要引見的分組進(jìn)位方式。下面要引見的分組進(jìn)位方式。n以以16位加法器為例,將其分為位加法器為例,將其分為4組,每組組,每組4位。位。n在組內(nèi),按照并行進(jìn)位函數(shù)直接產(chǎn)生在組內(nèi),按照并行進(jìn)位函數(shù)直接產(chǎn)生C1C4,這,這些進(jìn)位可同時得到。實現(xiàn)這種進(jìn)位邏輯的
12、電路稱些進(jìn)位可同時得到。實現(xiàn)這種進(jìn)位邏輯的電路稱為為4位先行進(jìn)位電路位先行進(jìn)位電路CLA,如,如74181ALU。n利用這種利用這種4位一組的位一組的CLA電路和電路和4位全加器可以構(gòu)位全加器可以構(gòu)成成4位位CLA加法器。留意,加法器。留意,4位位CLA加法器包含了加法器包含了兩部分邏輯:兩部分邏輯:4位全加器和位全加器和4位一組的先行進(jìn)位鏈,位一組的先行進(jìn)位鏈,這個組內(nèi)的進(jìn)位為一級進(jìn)位。這個組內(nèi)的進(jìn)位為一級進(jìn)位。 n在組間,每個組的進(jìn)位輸入是前一個組的進(jìn)位輸在組間,每個組的進(jìn)位輸入是前一個組的進(jìn)位輸出,而每個組的進(jìn)位輸出是下一個組的進(jìn)位輸入出,而每個組的進(jìn)位輸出是下一個組的進(jìn)位輸入.構(gòu)成構(gòu)成
13、1616位加法位加法器很容器很容易實現(xiàn)易實現(xiàn) 單級先行進(jìn)位單級先行進(jìn)位單級先行進(jìn)位續(xù)一單級先行進(jìn)位續(xù)一n上述組內(nèi)并行、組間串行的進(jìn)位方式也稱為單級先上述組內(nèi)并行、組間串行的進(jìn)位方式也稱為單級先行進(jìn)位方式,原理如以下圖所示。行進(jìn)位方式,原理如以下圖所示。單級先行進(jìn)位續(xù)二單級先行進(jìn)位續(xù)二n組內(nèi)并行、組間串行進(jìn)位的時間圖組內(nèi)并行、組間串行進(jìn)位的時間圖(16位位)如下:如下:n完成進(jìn)位時間完成進(jìn)位時間8ty.n進(jìn)位時間與組數(shù)成正比,組數(shù)越多,進(jìn)位時間越長。進(jìn)位時間與組數(shù)成正比,組數(shù)越多,進(jìn)位時間越長。多級先行進(jìn)位多級先行進(jìn)位n為闡明問題,我們無妨仍以為闡明問題,我們無妨仍以16位加法器為例,依然位加法
14、器為例,依然4位一組,分成位一組,分成4個小組,先就第一小組的進(jìn)位輸出函個小組,先就第一小組的進(jìn)位輸出函數(shù)數(shù)C4做一下分析:做一下分析:nC4 = G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0n G1* P1*n = G1* +P1*C0n G1*稱為組進(jìn)位產(chǎn)生函數(shù),稱為組進(jìn)位產(chǎn)生函數(shù),P1*稱為組進(jìn)位傳送函數(shù);稱為組進(jìn)位傳送函數(shù);這兩個函數(shù)類似于進(jìn)位產(chǎn)生函數(shù)這兩個函數(shù)類似于進(jìn)位產(chǎn)生函數(shù)G和進(jìn)位傳送函數(shù)和進(jìn)位傳送函數(shù)P.多級先行進(jìn)位續(xù)一多級先行進(jìn)位續(xù)一n四個組內(nèi)的最高進(jìn)位四個組內(nèi)的最高進(jìn)位C16C16、C12C12、C8C8、C4C4可以分別表示為可以分別表示為: :n
15、 C4 = G1 C4 = G1* * + P1 + P1* * C0 C0n C8 = G2 C8 = G2* * + P2 + P2* * C4 C4n C12 = G3 C12 = G3* * + P3 + P3* * C8 C8n C16 = G4 C16 = G4* * + P4 + P4* * C12 C12n如今逐項代入、并展開得關(guān)系式:如今逐項代入、并展開得關(guān)系式:nC4 = G1C4 = G1* * + P1 + P1* * C0 C0nC8 = G2C8 = G2* *+P2+P2* *C4=G2C4=G2* *+P2+P2* *G1G1* * +P2 +P2* *P1P1
16、* *C0C0nC12 = G3C12 = G3* *+P3+P3* *G2G2* *+P3+P3* *P2P2* *G1G1* * +P3 +P3* *P2P2* *P1P1* *C0C0nC16 = C16 = G4G4* *+P4+P4* *G3G3* *+P4+P4* *P3P3* *G2G2* *+P4+P4* *P3P3* *P2P2* *G1G1* *+P4+P4* *P3P3* *P2P2* *P1P1* *C0C0n可以看出,這可以看出,這4 4組進(jìn)位構(gòu)造與前述組進(jìn)位構(gòu)造與前述4 4位先行進(jìn)位邏輯完全一位先行進(jìn)位邏輯完全一樣,組間進(jìn)位信號只與最低進(jìn)位樣,組間進(jìn)位信號只與最低進(jìn)
17、位C0C0有關(guān),所以能同時產(chǎn)生。有關(guān),所以能同時產(chǎn)生。多級先行進(jìn)位續(xù)二多級先行進(jìn)位續(xù)二n組內(nèi)進(jìn)位信號能同時產(chǎn)生、組間進(jìn)位信號也能同時產(chǎn)組內(nèi)進(jìn)位信號能同時產(chǎn)生、組間進(jìn)位信號也能同時產(chǎn)生,由此可以構(gòu)成多級并行進(jìn)位邏輯。生,由此可以構(gòu)成多級并行進(jìn)位邏輯。16位位2級先行級先行進(jìn)位加法器如以下圖所示。進(jìn)位加法器如以下圖所示。多級先行進(jìn)位續(xù)三多級先行進(jìn)位續(xù)三n問題是這問題是這4個組間進(jìn)位信號如何用硬件來產(chǎn)生呢?個組間進(jìn)位信號如何用硬件來產(chǎn)生呢?對于多級先行進(jìn)位的實現(xiàn)可以按如下思緒來了解:對于多級先行進(jìn)位的實現(xiàn)可以按如下思緒來了解:n先把單級先行進(jìn)位加法器的串行進(jìn)位鏈斷開;先把單級先行進(jìn)位加法器的串行進(jìn)位
18、鏈斷開;n添加一級先行進(jìn)位鏈,這個新添加的先行進(jìn)位鏈的添加一級先行進(jìn)位鏈,這個新添加的先行進(jìn)位鏈的進(jìn)位稱為二級進(jìn)位;進(jìn)位稱為二級進(jìn)位;n組間進(jìn)位信號組間進(jìn)位信號C4、C8、C12、C16由二級進(jìn)位鏈由二級進(jìn)位鏈來產(chǎn)生,其邏輯關(guān)系式曾經(jīng)得到;來產(chǎn)生,其邏輯關(guān)系式曾經(jīng)得到;n讓一級進(jìn)位鏈多產(chǎn)生兩個輔助函數(shù)讓一級進(jìn)位鏈多產(chǎn)生兩個輔助函數(shù)Gi*和和Pi*,并且,并且作為二級進(jìn)位鏈的輸入。作為二級進(jìn)位鏈的輸入。 多級先行進(jìn)位續(xù)四多級先行進(jìn)位續(xù)四16位位2級先行進(jìn)位時間圖級先行進(jìn)位時間圖 進(jìn)位產(chǎn)生次序如下:進(jìn)位產(chǎn)生次序如下:產(chǎn)生第一小組的產(chǎn)生第一小組的C1C1C3C3、一切、一切組進(jìn)位產(chǎn)生函數(shù)組進(jìn)位產(chǎn)生函
19、數(shù)GiGi* *和組進(jìn)位和組進(jìn)位傳送函數(shù)傳送函數(shù)PiPi* *,時間為,時間為2ty. 2ty. 由由CLACLA電路產(chǎn)生第二、三、四小電路產(chǎn)生第二、三、四小組的組間進(jìn)位信號組的組間進(jìn)位信號C4C4、C8C8、C12C12、C16C16,時間為,時間為2ty.2ty.產(chǎn)生第二、三、四小組的組內(nèi)產(chǎn)生第二、三、四小組的組內(nèi)進(jìn)位信號進(jìn)位信號C5C5、C6C6、C7C7、C9C9、C10C10、C11C11、C13C13、C14C14、C15C15,時間為時間為2ty. 2ty. 4 4、多功能算術(shù)邏輯部件、多功能算術(shù)邏輯部件ALUALUn前面引見了運算器的算術(shù)運算功能,為了完成多種算前面引見了運算器
20、的算術(shù)運算功能,為了完成多種算術(shù)邏輯運算,需求將加法器的功能進(jìn)展擴(kuò)展,擴(kuò)展的術(shù)邏輯運算,需求將加法器的功能進(jìn)展擴(kuò)展,擴(kuò)展的根本思想如下:根本思想如下:參與運算的兩個數(shù)參與運算的兩個數(shù)Ai、Bi和低位進(jìn)位和低位進(jìn)位Ci-1先不進(jìn)展全加,先把兩個輸入先不進(jìn)展全加,先把兩個輸入Ai、Bi和四個控制參數(shù)和四個控制參數(shù)S0、S1、S2、S3進(jìn)展組合,構(gòu)成函數(shù)進(jìn)展組合,構(gòu)成函數(shù)Xi和和Yi,然后再,然后再將將Xi、Yi和低位進(jìn)位和低位進(jìn)位Ci-1經(jīng)過全加器經(jīng)過全加器進(jìn)展全加。這樣一來,控制參數(shù)不同,進(jìn)展全加。這樣一來,控制參數(shù)不同,得到的組合函數(shù)也不同,從而實現(xiàn)多得到的組合函數(shù)也不同,從而實現(xiàn)多種算術(shù)和邏
21、輯運算。種算術(shù)和邏輯運算。 算術(shù)邏輯部件算術(shù)邏輯部件ALUn算術(shù)邏輯部件算術(shù)邏輯部件ALU大體上有三部分組成:大體上有三部分組成:n全加器全加器n進(jìn)位鏈進(jìn)位鏈n輸入選擇器輸入選擇器n下面以下面以ALU的一位邏輯為例,原理性地闡明的一位邏輯為例,原理性地闡明算術(shù)、邏輯功能是如何實現(xiàn)的。算術(shù)、邏輯功能是如何實現(xiàn)的。算術(shù)邏輯部件算術(shù)邏輯部件ALU續(xù)一續(xù)一l一位加法器由全加器和進(jìn)位門構(gòu)一位加法器由全加器和進(jìn)位門構(gòu)成,其中,兩個半加器構(gòu)成全加成,其中,兩個半加器構(gòu)成全加器、與或非門構(gòu)成一位進(jìn)位門。器、與或非門構(gòu)成一位進(jìn)位門。l一位輸入選擇器,由兩個與或非一位輸入選擇器,由兩個與或非門構(gòu)成,可輸入門構(gòu)成,
22、可輸入2個本位操作數(shù)個本位操作數(shù)或非、或非、4個控制信號個控制信號S3S0l一個控制門一個控制門M,選擇算邏運算。,選擇算邏運算。當(dāng)當(dāng)M=0時,開門接納低位來的進(jìn)時,開門接納低位來的進(jìn)位信號,執(zhí)行算術(shù)運算;當(dāng)位信號,執(zhí)行算術(shù)運算;當(dāng)M=1時,關(guān)門不接納低位進(jìn)位信號,時,關(guān)門不接納低位進(jìn)位信號,執(zhí)行邏輯運算,與進(jìn)位無關(guān)。執(zhí)行邏輯運算,與進(jìn)位無關(guān)。 算術(shù)邏輯部件算術(shù)邏輯部件ALU續(xù)二續(xù)二控制信號與選擇器輸出關(guān)系表:控制信號與選擇器輸出關(guān)系表:S3 S2 Xi S1 S0 Yi0 0 1 0 0 Ai0 1 Ai+Bi 0 1 AiBi1 0 Ai+Bi 1 0 AiBi1 1 Ai 1 1 0 進(jìn)
23、位傳送函數(shù)進(jìn)位傳送函數(shù)進(jìn)位產(chǎn)生函數(shù)進(jìn)位產(chǎn)生函數(shù)經(jīng)過不同的輸入選擇,實現(xiàn)不同的功能,這進(jìn)一步闡明:數(shù)據(jù)是在傳經(jīng)過不同的輸入選擇,實現(xiàn)不同的功能,這進(jìn)一步闡明:數(shù)據(jù)是在傳送過程實現(xiàn)運算、并得四處置的。多位送過程實現(xiàn)運算、并得四處置的。多位ALUALU的實現(xiàn)思緒完全一樣。的實現(xiàn)思緒完全一樣。5 5、運算器的組織、運算器的組織n運算器主要由算邏部件運算器主要由算邏部件ALU、存放器、多路轉(zhuǎn)換、存放器、多路轉(zhuǎn)換器、內(nèi)部數(shù)據(jù)總線組成。器、內(nèi)部數(shù)據(jù)總線組成。n在運算器內(nèi)部,各功能模塊之間的銜接大都采用在運算器內(nèi)部,各功能模塊之間的銜接大都采用總線構(gòu)造,稱為運算器的內(nèi)部總線,總線構(gòu)造,稱為運算器的內(nèi)部總線,A
24、LU和各存和各存放器都掛在上面。放器都掛在上面。n運算器大體上有如下三種構(gòu)造:單總線構(gòu)造、雙運算器大體上有如下三種構(gòu)造:單總線構(gòu)造、雙總線構(gòu)造和三總線總線構(gòu)造??偩€構(gòu)造和三總線總線構(gòu)造。l操作數(shù)需求分兩次送入操作數(shù)需求分兩次送入ALU,而,而且需求兩個緩沖存放器;完成一且需求兩個緩沖存放器;完成一次運算需求次運算需求3步。特點是控制電路步。特點是控制電路簡單,而速度較慢。簡單,而速度較慢。 l兩個操作數(shù)可以同時到達(dá)兩個操作數(shù)可以同時到達(dá)ALU進(jìn)展進(jìn)展運算,且馬上可以得到運算結(jié)果,運算,且馬上可以得到運算結(jié)果,輸出端需求設(shè)置一個緩沖存放器輸出端需求設(shè)置一個緩沖存放器 ;完成一次運算需求完成一次運
25、算需求2步步 。l兩條總線同時供應(yīng)操作數(shù),輸出與兩條總線同時供應(yīng)操作數(shù),輸出與第三條總線相連;完成一次運算需第三條總線相連;完成一次運算需求求1步。特點是操作速度快,控制步。特點是操作速度快,控制相對復(fù)雜一些。相對復(fù)雜一些。 運算器的運算器的3種組織構(gòu)造種組織構(gòu)造二、定點加減運算二、定點加減運算 n原碼加減運算原碼加減運算n當(dāng)原碼做加減運算時,符號位不參與運算,當(dāng)原碼做加減運算時,符號位不參與運算,只在兩數(shù)的絕對值之間進(jìn)展。只在兩數(shù)的絕對值之間進(jìn)展。n加法時能夠要做減法兩數(shù)異號、減法加法時能夠要做減法兩數(shù)異號、減法時又能夠做加法兩數(shù)異號。時又能夠做加法兩數(shù)異號。n操作結(jié)果需求根據(jù)絕對值的大小來
26、確定運操作結(jié)果需求根據(jù)絕對值的大小來確定運算結(jié)果的符號。計算機(jī)中通常沒有減法器,算結(jié)果的符號。計算機(jī)中通常沒有減法器,減法運算需求轉(zhuǎn)換為加法來實現(xiàn)。減法運算需求轉(zhuǎn)換為加法來實現(xiàn)。n結(jié)論:原碼加減運算過程比較復(fù)雜,普通結(jié)論:原碼加減運算過程比較復(fù)雜,普通不用不用. .1 1、補(bǔ)碼加減運算、補(bǔ)碼加減運算 補(bǔ)碼加減運算的根據(jù)如下:補(bǔ)碼加減運算的根據(jù)如下:n和的補(bǔ)碼等于補(bǔ)碼的和和的補(bǔ)碼等于補(bǔ)碼的和 nX + Y補(bǔ)補(bǔ) = X補(bǔ)補(bǔ) + Y補(bǔ)補(bǔ) n相反數(shù)的補(bǔ)碼等于補(bǔ)碼的相反數(shù)相反數(shù)的補(bǔ)碼等于補(bǔ)碼的相反數(shù) n-X補(bǔ)補(bǔ) = - X補(bǔ)補(bǔ) n差的補(bǔ)碼等于補(bǔ)碼的差差的補(bǔ)碼等于補(bǔ)碼的差nX-Y補(bǔ)補(bǔ) = X補(bǔ)補(bǔ)+ -Y補(bǔ)
27、補(bǔ) = X補(bǔ)補(bǔ)- Y補(bǔ)補(bǔ) 補(bǔ)碼的運算規(guī)那么:補(bǔ)碼的運算規(guī)那么: 參與運算的操作數(shù)用補(bǔ)參與運算的操作數(shù)用補(bǔ)碼表示。碼表示。補(bǔ)碼的符號位與數(shù)值位補(bǔ)碼的符號位與數(shù)值位同時參與運算。同時參與運算。假設(shè)做加法,那么兩數(shù)假設(shè)做加法,那么兩數(shù)補(bǔ)碼直接相加;補(bǔ)碼直接相加;假設(shè)做減法,用被減數(shù)假設(shè)做減法,用被減數(shù)與減數(shù)的機(jī)器負(fù)數(shù)相加。與減數(shù)的機(jī)器負(fù)數(shù)相加。運算結(jié)果為和、差的補(bǔ)運算結(jié)果為和、差的補(bǔ)碼。碼。 注注: :機(jī)器負(fù)數(shù)等于機(jī)器負(fù)數(shù)等于補(bǔ)碼連同符號位按位求補(bǔ)碼連同符號位按位求反,末位加反,末位加1 1。補(bǔ)碼加減例如補(bǔ)碼加減例如例例1、A=0.1011, B=-0.1110,求,求A+B.解:解: A補(bǔ)補(bǔ) =
28、0.1011, B補(bǔ)補(bǔ) = 1.00100.1011+1.00101.1101 A+B補(bǔ)補(bǔ) = 1.1101 A+B = -0.0011例例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.0010 0.1101 A-B補(bǔ)補(bǔ) = 0.1101 A-B = 0.11012 2、補(bǔ)碼加減溢出的判別、補(bǔ)碼加減溢出的判別例例3、X=1011,Y=111 求求X+Y。 例例4、X=-1011,Y=-111 求求X+Y。解:解:X補(bǔ)補(bǔ)=0,1011,Y補(bǔ)補(bǔ)=0,0111 解:解:X補(bǔ)補(bǔ)
29、=1,0101,Y補(bǔ)補(bǔ)=1,10010,1011 (+11) 1,0101 (-11)+0,0111 (+7) + 1,1001 (-7 )1,0010 0,1110 X+Y補(bǔ)補(bǔ) =1,0010 X+Y補(bǔ)補(bǔ)=0,1110 X+Y=-1110 (-14) X+Y=+1110 (+14) 出錯緣由在于用了出錯緣由在于用了4個二進(jìn)制位來表示絕對值為個二進(jìn)制位來表示絕對值為18的和數(shù)。的和數(shù)。補(bǔ)碼加減運算溢出補(bǔ)碼加減運算溢出n當(dāng)運算結(jié)果超出了機(jī)器所能表示的范圍時,當(dāng)運算結(jié)果超出了機(jī)器所能表示的范圍時,數(shù)值位侵占了符號位,這種景象稱為溢出。數(shù)值位侵占了符號位,這種景象稱為溢出。兩個同符號的數(shù)相加會產(chǎn)生溢
30、出。兩個同符號的數(shù)相加會產(chǎn)生溢出。 n兩個正數(shù)相加,結(jié)果大于機(jī)器所能表示的兩個正數(shù)相加,結(jié)果大于機(jī)器所能表示的最大正數(shù),稱為上溢正溢。最大正數(shù),稱為上溢正溢。n兩個負(fù)數(shù)相加,結(jié)果小于機(jī)器所能表示的兩個負(fù)數(shù)相加,結(jié)果小于機(jī)器所能表示的最小負(fù)數(shù),稱為下溢負(fù)溢。最小負(fù)數(shù),稱為下溢負(fù)溢。補(bǔ)碼加減溢出的判別方法補(bǔ)碼加減溢出的判別方法 判別溢出的三種根本方法:判別溢出的三種根本方法: 采用一個符號位判別采用一個符號位判別 當(dāng)參與運算的兩個數(shù)的符號為當(dāng)參與運算的兩個數(shù)的符號為0、而和的符號位為、而和的符號位為1時上溢;時上溢;當(dāng)參與運算的兩個數(shù)的符號為當(dāng)參與運算的兩個數(shù)的符號為1、而和的符號位為、而和的符號
31、位為0時下溢。時下溢。 判別條件為:溢出判別條件為:溢出= XsYsSs+XsYsSs其中,其中,Xs、Ys為參與運算兩數(shù)的符號,為參與運算兩數(shù)的符號, Ss為結(jié)果符號位。為結(jié)果符號位。補(bǔ)碼加減溢出的判別方法補(bǔ)碼加減溢出的判別方法( (續(xù)續(xù)) ) 采用進(jì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)最高有效位不產(chǎn)生進(jìn)位兩個負(fù)數(shù)相加,當(dāng)最高有效位不產(chǎn)生進(jìn)位C1=0而而符號位產(chǎn)生進(jìn)位,發(fā)生下溢。符號位產(chǎn)生進(jìn)位,發(fā)生下溢。 判別條件為:溢出判別條件為:溢出=
32、CsC1+CsC1 = Cs C1 采用變形補(bǔ)碼雙符號位補(bǔ)碼采用變形補(bǔ)碼雙符號位補(bǔ)碼采用變形補(bǔ)碼檢測,當(dāng)運算結(jié)果的兩符號位不一致時采用變形補(bǔ)碼檢測,當(dāng)運算結(jié)果的兩符號位不一致時表示溢出。假設(shè)符號位用表示溢出。假設(shè)符號位用Ss1Ss2表示,那么表示,那么Ss1Ss2=01 結(jié)果上溢,結(jié)果上溢,Ss1Ss2=10 結(jié)果下溢結(jié)果下溢. 判別溢出的條件為:判別溢出的條件為: 溢出溢出=Ss1 Ss2SS1一直正一直正確確3 3、補(bǔ)碼定點加減運算器的根本組成、補(bǔ)碼定點加減運算器的根本組成 l補(bǔ)碼加法:補(bǔ)碼加法: 在在XF、YF、FX三個控制三個控制信號的控制下,翻開門信號的控制下,翻開門A、門、門B和門
33、和門C,把存,把存放器放器X和存放器和存放器Y的內(nèi)的內(nèi)容送入加法器的兩個輸容送入加法器的兩個輸入端進(jìn)展加法運算,把入端進(jìn)展加法運算,把結(jié)果送回存放器結(jié)果送回存放器X中中.l補(bǔ)碼減法:與補(bǔ)碼加法補(bǔ)碼減法:與補(bǔ)碼加法不同之處在于要用不同之處在于要用YF來替代來替代YF、并、并在在1F控制信號作用控制信號作用下使結(jié)果加下使結(jié)果加1,即可完,即可完成補(bǔ)碼減法運算。成補(bǔ)碼減法運算。三、帶符號數(shù)的移位與舍入三、帶符號數(shù)的移位與舍入 n移位是算術(shù)、邏輯運算的又一根本操作,而且?guī)缀跻莆皇撬阈g(shù)、邏輯運算的又一根本操作,而且?guī)缀跻磺袡C(jī)器的指令系統(tǒng)都設(shè)有移位指令。比如,乘法一切機(jī)器的指令系統(tǒng)都設(shè)有移位指令。比如,乘
34、法運算大多數(shù)是經(jīng)過運算大多數(shù)是經(jīng)過“累加累加移位來實現(xiàn)的。移位來實現(xiàn)的。n算術(shù)移位操作時,符號位不變,數(shù)值大小那么會發(fā)算術(shù)移位操作時,符號位不變,數(shù)值大小那么會發(fā)生變化。左移一位相當(dāng)于乘以生變化。左移一位相當(dāng)于乘以2,右移一位相當(dāng)于,右移一位相當(dāng)于除以除以2,由于移位使位權(quán)發(fā)生了變化。,由于移位使位權(quán)發(fā)生了變化。n在移位過程中,有效數(shù)位會被移出數(shù)據(jù)字而喪失。在移位過程中,有效數(shù)位會被移出數(shù)據(jù)字而喪失。因此,還需求思索數(shù)據(jù)的舍入問題,以盡能夠提高因此,還需求思索數(shù)據(jù)的舍入問題,以盡能夠提高數(shù)據(jù)的表示精度。數(shù)據(jù)的表示精度。1 1、移位規(guī)那么、移位規(guī)那么 n原碼移位規(guī)那么原碼移位規(guī)那么 n符號位不變
35、符號位不變 n空出位補(bǔ)空出位補(bǔ)0 n例如:例如:1X1X2X3Xnn 左移后為:左移后為:1X2X3Xn0n 右移后為:右移后為:10X1X2Xn-1n補(bǔ)碼移位規(guī)那么補(bǔ)碼移位規(guī)那么n符號位不變符號位不變 n左移時,空出位補(bǔ)左移時,空出位補(bǔ)0 n右移時,符號位補(bǔ)充空出右移時,符號位補(bǔ)充空出位位n例如:例如:1X1X2X3Xnn 左移后為:左移后為:1X2X3Xn0n 右移后為:右移后為:11X1X2Xn-1算術(shù)左移在不產(chǎn)生溢出時,算術(shù)左移在不產(chǎn)生溢出時,符號位堅持不變。符號位堅持不變。 我們用的微機(jī)運用補(bǔ)碼我們用的微機(jī)運用補(bǔ)碼來表示數(shù)據(jù)來表示數(shù)據(jù). . 2 2、移位器邏輯電路、移位器邏輯電路 n
36、移位器是由與門和或門組成的邏輯電路實踐是一個移位器是由與門和或門組成的邏輯電路實踐是一個多路選擇器,可以實現(xiàn)直傳不移位、左斜一位多路選擇器,可以實現(xiàn)直傳不移位、左斜一位送左移一位和右斜一位送右移一位的功能。送左移一位和右斜一位送右移一位的功能。移位器邏輯電路如下圖。移位器邏輯電路如下圖。 左移由左移由2FL控制,控制,F(xiàn)i-1Li直傳由直傳由FL來控制,來控制,F(xiàn)iLi 右移由右移由F/2L來控制,來控制,F(xiàn)i+1Li移位器無數(shù)據(jù)存放才干。移位器無數(shù)據(jù)存放才干。3 3、舍入操作、舍入操作 n舍入操作有以下幾種:舍入操作有以下幾種:n截斷法:無條件地舍去多余的位。截斷法:無條件地舍去多余的位。n
37、恒置恒置1法:舍去多余位,保管部分最低位置法:舍去多余位,保管部分最低位置1。 n0舍舍1入法:舍去部分的最高位為入法:舍去部分的最高位為1時,那么保管部時,那么保管部分末位加分末位加1,與四舍五入法類似。,與四舍五入法類似。n截斷法和恒置截斷法和恒置1法誤差比較大;法誤差比較大;0舍舍1入法比較合理,入法比較合理,但當(dāng)保管部分為但當(dāng)保管部分為0.111時,會導(dǎo)致再次溢出。末時,會導(dǎo)致再次溢出。末位恒置位恒置1,在除法中非常有用。,在除法中非常有用。四、定點乘法運算四、定點乘法運算 乘法運算要比加法運算復(fù)雜。先舉一個大家熟習(xí)的手工定點乘法乘法運算要比加法運算復(fù)雜。先舉一個大家熟習(xí)的手工定點乘法
38、的例子;之后我們來看,假設(shè)將手工運算改為機(jī)器運算,會出現(xiàn)的例子;之后我們來看,假設(shè)將手工運算改為機(jī)器運算,會出現(xiàn)什么問題?該如何處理?什么問題?該如何處理?l 例:例:0.11010.1011 = ?l 0.1101l 0.1011l 1101l 1101l 0000l + 1101l 0.10001111 l手工計算的二進(jìn)制乘法規(guī)那么:手工計算的二進(jìn)制乘法規(guī)那么:l數(shù)值位:數(shù)值位: 00 = 0l 10 = 0 l 11 = 1,邏輯與。,邏輯與。l符號位:符號位: 同號相乘為正同號相乘為正l 異號相乘為負(fù),邏輯異異號相乘為負(fù),邏輯異或或l其結(jié)果:乘積其結(jié)果:乘積 = 符號位符號位 / 數(shù)值
39、位。數(shù)值位。 乘法:由手工計算到機(jī)器運算乘法:由手工計算到機(jī)器運算n由手工計算到機(jī)器運算,需求處理由手工計算到機(jī)器運算,需求處理3個問題:個問題:n符號如何處置?符號如何處置?n多個部分積如何相加?多個部分積如何相加?n為堅持兩次部分積之間的位權(quán)對應(yīng)關(guān)系,會導(dǎo)致加法器位數(shù)的添加,為堅持兩次部分積之間的位權(quán)對應(yīng)關(guān)系,會導(dǎo)致加法器位數(shù)的添加,能否在不添加位數(shù)的情況下堅持位權(quán)對應(yīng)?能否在不添加位數(shù)的情況下堅持位權(quán)對應(yīng)?n由于處理方式的不同,構(gòu)成了兩種主要的乘法器構(gòu)造由于處理方式的不同,構(gòu)成了兩種主要的乘法器構(gòu)造n采用常規(guī)的加法器來實現(xiàn)采用常規(guī)的加法器來實現(xiàn)n將將n位乘法轉(zhuǎn)換為位乘法轉(zhuǎn)換為n次累加和移
40、位,每次處置次累加和移位,每次處置1位。位。n為防止加法器位數(shù)的擴(kuò)展,可以把手工計算時的新部分積為防止加法器位數(shù)的擴(kuò)展,可以把手工計算時的新部分積“左移左移累加改為機(jī)器運算的原部分積累加改為機(jī)器運算的原部分積“累加累加右移。右移。n采用陣列乘法器實現(xiàn)采用陣列乘法器實現(xiàn)n利用中大規(guī)模集成電路把多項部分積同時相加,這種構(gòu)造的乘法器利用中大規(guī)模集成電路把多項部分積同時相加,這種構(gòu)造的乘法器稱為陣列乘法器。稱為陣列乘法器。 1 1、原碼一位乘法、原碼一位乘法 n原碼一位乘法是從手算演化而來的,即用兩個操作數(shù)的絕對值相原碼一位乘法是從手算演化而來的,即用兩個操作數(shù)的絕對值相乘,乘積的符號為兩操作數(shù)符號的
41、異或值乘,乘積的符號為兩操作數(shù)符號的異或值(同號為正,異號為負(fù)同號為正,異號為負(fù)).n乘積乘積 P = |X|Y|n符號符號 Ps = Xs Ysn原碼一位乘法的規(guī)那么原碼一位乘法的規(guī)那么 n被乘數(shù)和乘數(shù)取絕對值。被乘數(shù)和乘數(shù)取絕對值。 n乘數(shù)的最低位為乘數(shù)的最低位為1時,部分積加被乘數(shù),否那么加時,部分積加被乘數(shù),否那么加0。n部分積和乘數(shù)右移一位。部分積和乘數(shù)右移一位。n反復(fù),直到乘數(shù)全部移出。反復(fù),直到乘數(shù)全部移出。 n積的符號由兩乘數(shù)符號的異或得到。積的符號由兩乘數(shù)符號的異或得到。 n積的符號與積的數(shù)值拼接得到積的原碼。積的符號與積的數(shù)值拼接得到積的原碼。原碼一位乘例如原碼一位乘例如實
42、踐運算的預(yù)備任務(wù):實踐運算的預(yù)備任務(wù):|被乘數(shù)被乘數(shù)| B存放器存放器|乘數(shù)乘數(shù)| C存放器將要存放部分積的低位存放器將要存放部分積的低位0 A存放器將要存放部分積的高位存放器將要存放部分積的高位例例4:知:知:X=0.1101,Y=-0.1011,求:,求:XY。解:解: |X|=00.1101B 被乘數(shù)采用雙符號位被乘數(shù)采用雙符號位 |Y|=.1011C 乘數(shù)取數(shù)值乘數(shù)取數(shù)值 0A 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 部分積右移一位部分積
43、右移一位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 1 1 部分積右移一位部分積右移一位Ps =Xs Ys = 0 1 = 1 XY = -0.10001111 原碼一位乘法的硬件實現(xiàn)原碼一位乘法的硬件實現(xiàn) nA、B為為n+2位,位,C為為n位,加法器位,
44、加法器為為n+2位,異或門。位,異或門。nA、C存放器級連在一同,具有右存放器級連在一同,具有右移功能。每次移位時,移功能。每次移位時,A的最低位的最低位進(jìn)入進(jìn)入C 的最高位,而的最高位,而C的最低位被的最低位被丟掉。最后,丟掉。最后,A的內(nèi)容為乘積的高的內(nèi)容為乘積的高位部分,位部分,C的內(nèi)容為乘積的低位部的內(nèi)容為乘積的低位部分。分。nC的最低位作為控制信號,控制運的最低位作為控制信號,控制運算器加被乘數(shù)還是加零。算器加被乘數(shù)還是加零。 2 2、補(bǔ)碼一位乘法、補(bǔ)碼一位乘法 n原碼乘法雖然容易實現(xiàn),但普通計算機(jī)中數(shù)據(jù)多以補(bǔ)碼原碼乘法雖然容易實現(xiàn),但普通計算機(jī)中數(shù)據(jù)多以補(bǔ)碼表示。假設(shè)仍用原碼做乘法
45、,需求進(jìn)展碼制轉(zhuǎn)換,反倒表示。假設(shè)仍用原碼做乘法,需求進(jìn)展碼制轉(zhuǎn)換,反倒不方便而且又影響速度。不方便而且又影響速度。n由于補(bǔ)碼符號位直接參與運算,所以補(bǔ)碼乘法不能簡單由于補(bǔ)碼符號位直接參與運算,所以補(bǔ)碼乘法不能簡單地套用原碼乘法的算法。實現(xiàn)補(bǔ)碼乘法有地套用原碼乘法的算法。實現(xiàn)補(bǔ)碼乘法有2 2種方法。種方法。n一種方法為校正法,運用較少,只給出算式:一種方法為校正法,運用較少,只給出算式:nXXYY補(bǔ)補(bǔ)=X=X補(bǔ)補(bǔ)(0.X1X2Xn)-X(0.X1X2Xn)-X補(bǔ)補(bǔ)Y Yn另一種更好的方法為比較法,該算法是英國人另一種更好的方法為比較法,該算法是英國人BoothBooth夫婦夫婦提出,所以也稱為
46、提出,所以也稱為BoothBooth法。該算法無需校正,控制較為法。該算法無需校正,控制較為簡單。以下主要討論比較法。簡單。以下主要討論比較法。Booth的推導(dǎo)的推導(dǎo)設(shè):被乘數(shù)設(shè):被乘數(shù)X補(bǔ)補(bǔ)=X.X1X2Xn,乘數(shù),乘數(shù)Y補(bǔ)補(bǔ)=Y.Y1Y2Yn,那,那么:么:XY補(bǔ)補(bǔ) = X補(bǔ)補(bǔ)0.Y1Y2Yn - X補(bǔ)補(bǔ)Y = X補(bǔ)補(bǔ)2-1Y1+2-2Y2+2-nYn- X補(bǔ)補(bǔ)Y = X補(bǔ)補(bǔ)-Y+2-1Y1 +2-2Y2+2-nYn = X補(bǔ)補(bǔ)-Y+(Y1-2-1Y1)+ (2-1Y2-2-2Y2)+(2-(n-1)Yn-2-nYn) = X補(bǔ)補(bǔ)(Y1-Y)+(Y2-Y1)2-1+(0-Yn)2-n =
47、X補(bǔ)補(bǔ)(Y1-Y)+(Y2-Y1)2-1+(Yn+1-Yn)2-n ;Yn+1=0上式闡明:上式闡明:XY補(bǔ)可以根據(jù)乘數(shù)相鄰兩項的比較結(jié)果,補(bǔ)可以根據(jù)乘數(shù)相鄰兩項的比較結(jié)果, 即用即用“低位低位-高位的值來確定每步的運算操作。高位的值來確定每步的運算操作。Booth法的遞推公式法的遞推公式從前面的推導(dǎo)中得出遞推公式:從前面的推導(dǎo)中得出遞推公式: Z0補(bǔ)補(bǔ) = 0 Z1補(bǔ)補(bǔ) = 2-1Z0補(bǔ)補(bǔ)+(yn+1-yn)X補(bǔ)補(bǔ) Z2補(bǔ)補(bǔ) = 2-1Z1補(bǔ)補(bǔ)+(yn-yn-1)X補(bǔ)補(bǔ) Zn補(bǔ)補(bǔ) = 2-1Zn-1補(bǔ)補(bǔ)+(y2-y1)X補(bǔ)補(bǔ) XY補(bǔ)補(bǔ)= Zn補(bǔ)補(bǔ)+(y1-ys)X補(bǔ)補(bǔ)式中,式中,Z0補(bǔ)為初始
48、部分積,補(bǔ)為初始部分積, Z1補(bǔ)補(bǔ)Zn補(bǔ)為每次累加并右移之后補(bǔ)為每次累加并右移之后的部分積。的部分積。XY補(bǔ)補(bǔ)=X補(bǔ)補(bǔ) (y1-y0)+(y2-y1) 2-1+(yn+1-yn) 2-n n12Booth乘法運算規(guī)律與規(guī)那么乘法運算規(guī)律與規(guī)那么n判別位判別位 YnYn+1 操操 作作n 0 0 原部分積右移一位原部分積右移一位n 0 1 原部分積加原部分積加X補(bǔ)后右移一位補(bǔ)后右移一位n 1 0 原部分積加原部分積加-X補(bǔ)后右移一位補(bǔ)后右移一位n 1 1 原部分積右移一位原部分積右移一位n參與運算的數(shù)用補(bǔ)碼表示,結(jié)果也是補(bǔ)碼;符號位直接參與運算。參與運算的數(shù)用補(bǔ)碼表示,結(jié)果也是補(bǔ)碼;符號位直接參
49、與運算。 n乘數(shù)最低位后面添加一位附加位乘數(shù)最低位后面添加一位附加位Yn+1Yn+1,初值為,初值為0 0。n乘數(shù)的最低兩位乘數(shù)的最低兩位YnYn+1YnYn+1的值決議每次執(zhí)行的操作。的值決議每次執(zhí)行的操作。 n部分積和乘數(shù)一同右移一位。部分積和乘數(shù)一同右移一位。 n共做共做n+1n+1次累加、次累加、n n次移位,最后累加不移位。次移位,最后累加不移位。n由于符號位參與運算,部分積累加時最高有效位的進(jìn)位能夠侵由于符號位參與運算,部分積累加時最高有效位的進(jìn)位能夠侵占符號位,所以被乘數(shù)和部分積應(yīng)取雙符號位,乘數(shù)只需取一個符占符號位,所以被乘數(shù)和部分積應(yīng)取雙符號位,乘數(shù)只需取一個符號位號位規(guī)律規(guī)
50、律規(guī)那規(guī)那么么補(bǔ)碼一位乘例如補(bǔ)碼一位乘例如例例5:知:知: X=-0.1101,Y=0.1011; 求:求: XY。解:解: X補(bǔ)補(bǔ) = 11.0011B, Y補(bǔ)補(bǔ)= 0.1011C, -X補(bǔ)補(bǔ)= 00.1101 0A運算過程見下頁:運算過程見下頁:補(bǔ)碼一位乘補(bǔ)碼一位乘 A C 附加位附加位 闡明闡明0 0.0 0 0 0 0.1 0 1 1 0 +-X補(bǔ)補(bǔ) 0 0.1 1 0 1 C4C5=10,+-X補(bǔ)補(bǔ)0 0.1 1 0 1 0 0.0 1 1 0 1 0 1 0 1 1 部分積右移一部分積右移一位位+0 0 0.0 0 0 0 C4C5=11,+00 0.0 1 1 0 0 0.0 0
51、 1 1 0 1 0 1 0 1 部分積右移一位部分積右移一位+X補(bǔ)補(bǔ) 1 1.0 0 1 1 C4C5=01,+X補(bǔ)補(bǔ)1 1.0 1 1 0 1 1.1 0 1 1 0 0 1 0 1 0 部分積右移一位部分積右移一位+-X補(bǔ)補(bǔ) 0 0.1 1 0 1 C4C5=10,+-X補(bǔ)補(bǔ)0 0.1 0 0 0 0 0.0 1 0 0 0 0 0 1 0 1 部分積右移一位部分積右移一位+X補(bǔ)補(bǔ) 1 1.0 0 1 1 C4C5=01,+X補(bǔ)補(bǔ)1 1.0 1 1 1 XY補(bǔ)補(bǔ)=1.01110001 XY= -0.10001111補(bǔ)碼一位乘法的硬件實現(xiàn)補(bǔ)碼一位乘法的硬件實現(xiàn)nA、B、C為為n+2位,位,
52、加法器為加法器為n+2位。位。n與或門有與或門有n+2個。個。n各器件的作用與原碼各器件的作用與原碼一位乘法一樣??刂埔晃怀朔ㄒ粯印?刂品绞缴嫌兴煌?,即方式上有所不同,即由由C存放器的最低兩存放器的最低兩位來控制加、減被乘位來控制加、減被乘數(shù)或加數(shù)或加0操作。操作。 3 3、陣列乘法器、陣列乘法器 為了提高乘法運算速度,還可以采用高速陣列乘法器為了提高乘法運算速度,還可以采用高速陣列乘法器執(zhí)行乘法運算。設(shè)有兩個不帶符號的二進(jìn)制整數(shù):執(zhí)行乘法運算。設(shè)有兩個不帶符號的二進(jìn)制整數(shù): A、B兩數(shù)的乘積兩數(shù)的乘積P為:為: 假設(shè),當(dāng)假設(shè),當(dāng)m = n = 4時,來思索乘法的情況:時,來思索乘法的情況:
53、 101022njjjmiiibBaA10101022nmkkkjiminjjipbaBAP陣列乘法器原理陣列乘法器原理 a3 a2 a1 a0 b3 b2 b1 b0 a3b0 a2b0 a1b0 a0b0 a3b1 a2b1 a1b1 a0b1 a3b2 a2b2 a1b2 a0b2 + a3b3 a2b3 a1b3 a0b3 P7 p6 p5 p4 p3 p2 p1 p0陣列乘法器原理續(xù)一陣列乘法器原理續(xù)一n一個根本乘法單元由兩部分組成:一個根本乘法單元由兩部分組成:naibi是邏輯與運算,可用與門實現(xiàn)是邏輯與運算,可用與門實現(xiàn)n錯位相加可用全加器完成錯位相加可用全加器完成根本乘法單元原
54、理圖根本乘法單元原理圖陣列乘法器原理續(xù)二陣列乘法器原理續(xù)二由乘法單元構(gòu)成的乘法器如下圖,每個方框代表一個根本乘法單元由乘法單元構(gòu)成的乘法器如下圖,每個方框代表一個根本乘法單元.陣列乘法器原理三陣列乘法器原理三n構(gòu)成構(gòu)成n nn n整數(shù)陣列乘法器,共需求整數(shù)陣列乘法器,共需求n nn n個個乘法單元。乘法單元。n假設(shè)采用補(bǔ)碼相乘時,可在上述乘法陣假設(shè)采用補(bǔ)碼相乘時,可在上述乘法陣列外添加三個求補(bǔ)器,兩個為算前求補(bǔ)列外添加三個求補(bǔ)器,兩個為算前求補(bǔ)器,將兩個操作數(shù)先變成正整數(shù),一個器,將兩個操作數(shù)先變成正整數(shù),一個為算后求補(bǔ)器,在相乘兩數(shù)符號不一致為算后求補(bǔ)器,在相乘兩數(shù)符號不一致時,把運算結(jié)果變
55、成補(bǔ)碼。時,把運算結(jié)果變成補(bǔ)碼。五、定點除法運算五、定點除法運算 n大家很熟習(xí)除法運算。手工計算除法的關(guān)鍵是比較余大家很熟習(xí)除法運算。手工計算除法的關(guān)鍵是比較余數(shù)與除數(shù)的大小,根據(jù)比較結(jié)果斷定商值。數(shù)與除數(shù)的大小,根據(jù)比較結(jié)果斷定商值。n問題是,當(dāng)將手工計算轉(zhuǎn)換為機(jī)器運算時,如何判別問題是,當(dāng)將手工計算轉(zhuǎn)換為機(jī)器運算時,如何判別夠減?如何處置符號位?如何提高運算速度?夠減?如何處置符號位?如何提高運算速度?n除法運算是乘法運算的逆運算。乘法經(jīng)過加除法運算是乘法運算的逆運算。乘法經(jīng)過加- -右移實右移實現(xiàn),不難想到機(jī)器除法運算是經(jīng)過減現(xiàn),不難想到機(jī)器除法運算是經(jīng)過減- -左移實現(xiàn)的。左移實現(xiàn)的。
56、n機(jī)器實現(xiàn)除法運算有兩個先決條件純小數(shù):機(jī)器實現(xiàn)除法運算有兩個先決條件純小數(shù):n除數(shù)不等于除數(shù)不等于0 0,否那么商為無窮大。,否那么商為無窮大。 n被除數(shù)要小于除數(shù),否那么商會溢出。被除數(shù)要小于除數(shù),否那么商會溢出。1 1、原碼恢復(fù)余數(shù)法、原碼恢復(fù)余數(shù)法 n所謂恢復(fù)余數(shù)法,不論被除數(shù)或部分余數(shù)能否所謂恢復(fù)余數(shù)法,不論被除數(shù)或部分余數(shù)能否夠減除數(shù),都一概先做減法。假設(shè)部分余數(shù)為正,夠減除數(shù),都一概先做減法。假設(shè)部分余數(shù)為正,表示夠減,該位商上表示夠減,該位商上“1 1;假設(shè)部分余數(shù)為負(fù),表;假設(shè)部分余數(shù)為負(fù),表示不夠減,該位商上示不夠減,該位商上“0 0,并要恢復(fù)余數(shù)加除,并要恢復(fù)余數(shù)加除數(shù)。
57、數(shù)。n恢復(fù)余數(shù)法固有的缺陷恢復(fù)余數(shù)法固有的缺陷: :n由于部分余數(shù)的正、負(fù)是隨機(jī)出現(xiàn)的,使得除法運由于部分余數(shù)的正、負(fù)是隨機(jī)出現(xiàn)的,使得除法運算的實踐操作次數(shù)不固定,控制電路較復(fù)雜。算的實踐操作次數(shù)不固定,控制電路較復(fù)雜。n在恢復(fù)余數(shù)時,要多作一次加法,降低了除法的執(zhí)在恢復(fù)余數(shù)時,要多作一次加法,降低了除法的執(zhí)行的速度。行的速度。 2 2、原碼不恢復(fù)余數(shù)法、原碼不恢復(fù)余數(shù)法n分析恢復(fù)余數(shù)法發(fā)現(xiàn),當(dāng)減除數(shù)操作使得余數(shù)為負(fù)數(shù)時,分析恢復(fù)余數(shù)法發(fā)現(xiàn),當(dāng)減除數(shù)操作使得余數(shù)為負(fù)數(shù)時,商為商為“0,并恢復(fù)余數(shù),然后左移,再減除數(shù)。,并恢復(fù)余數(shù),然后左移,再減除數(shù)。 n假設(shè)用假設(shè)用R表示余數(shù),用表示余數(shù),用
58、B表示除數(shù),上述操作過程可表示除數(shù),上述操作過程可表示為:表示為:n R + B 2 B = 2R + B n結(jié)論:當(dāng)余數(shù)為負(fù)時,商上結(jié)論:當(dāng)余數(shù)為負(fù)時,商上“0,余數(shù)左移一次后加,余數(shù)左移一次后加除數(shù),結(jié)果不變。這就是不恢復(fù)余數(shù)法的實現(xiàn)思想。除數(shù),結(jié)果不變。這就是不恢復(fù)余數(shù)法的實現(xiàn)思想。n不恢復(fù)余數(shù)法加減交替法的運算規(guī)那么為:不恢復(fù)余數(shù)法加減交替法的運算規(guī)那么為: n假設(shè)余數(shù)假設(shè)余數(shù)0,上商,上商“1,余數(shù)左移一位,減除數(shù)。,余數(shù)左移一位,減除數(shù)。 n假設(shè)余數(shù)假設(shè)余數(shù)0,上商,上商“0,余數(shù)左移一位,加除數(shù)。,余數(shù)左移一位,加除數(shù)。 n由于加減運算交替地進(jìn)展,所以又稱為原碼加減交替法。由于加
59、減運算交替地進(jìn)展,所以又稱為原碼加減交替法。原碼不恢復(fù)余數(shù)法例如原碼不恢復(fù)余數(shù)法例如除法運算需求除法運算需求3個存放器:個存放器:A存放器存放被除數(shù):存放器存放被除數(shù): 被除數(shù)被除數(shù) A B存放器存放除數(shù):存放器存放除數(shù): 除數(shù)除數(shù) BC存放器存放商:存放器存放商: 商商 C例例6:知:知:X=-0.10101,Y=0.11110,求:,求:XY。解:解: |X|=00.10101A, 0C |Y|=00.11110B, -|Y|=11.00010原碼不恢原碼不恢復(fù)余數(shù)法復(fù)余數(shù)法A C 闡明闡明0 0.1 0 1 0 1 0.0 0 0 0 0 -|Y| 1 1.0 0 0 1 0 -|Y|1
60、 1.1 0 1 1 1 0.0 0 0 0 0 余數(shù)為負(fù),商余數(shù)為負(fù),商0 1 1.0 1 1 1 0 左移一位左移一位+|Y| 0 0.1 1 1 1 0 +|Y|0 0.0 1 1 0 0 0.0 0 0 0 1 余數(shù)為正,商余數(shù)為正,商1 0 0.1 1 0 0 0 左移一位左移一位 -|Y| 1 1.0 0 0 1 0 -|Y|1 1.1 1 0 1 0 0.0 0 0 1 0 余數(shù)為負(fù),商余數(shù)為負(fù),商0 1 1.1 0 1 0 0 左移一位左移一位 +|Y| 0 0.1 1 1 1 0 +|Y|0 0.1 0 0 1 0 0.0 0 1 0 1 余數(shù)為正,商余數(shù)為正,商1 0 1.
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 產(chǎn)品委托服務(wù)合同樣本
- 個人抓鋼機(jī)轉(zhuǎn)讓合同樣本
- 債務(wù)優(yōu)化合同樣本
- 2025工程合同無效的多種情形解析
- 中式車間設(shè)備采購合同樣本
- 出售庭院溫棚合同樣本
- 云南租賃合同樣本
- 低押合同范例
- 專利技術(shù)實施合同樣本
- 個人租車轉(zhuǎn)讓合同樣本
- 安徽-建標(biāo)〔2017〕191號附件-2018工程量清單計價辦法
- 注意缺陷多動障礙診療規(guī)范2023版
- 動力管道設(shè)計手冊-第2版
- 中等職業(yè)學(xué)校人才培養(yǎng)工作水平評估報告
- 研究生-5社會主體研究方法
- 貝克的認(rèn)知療法
- Python繪圖庫Turtle詳解(含豐富示例)
- 四大伊瑪目生平概況
- 生命體征測量操作流程及評分標(biāo)準(zhǔn)
- DB42T2012-2023土家族吊腳樓營造規(guī)程
- 醫(yī)療器械GMP醫(yī)療器械生產(chǎn)質(zhì)量管理規(guī)范
評論
0/150
提交評論