版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、2022-2-21 第7版 2011.091第第 3 3 章章 運算方法與運算器運算方法與運算器2022-2-212本章學習內容 基本算術邏輯運算電路基本算術邏輯運算電路 定點加、減、乘、除運算定點加、減、乘、除運算 浮點加、減、乘、除運算浮點加、減、乘、除運算 十進制數(shù)的運算十進制數(shù)的運算2022-2-2133.1 3.1 運算器的設計方法運算器的設計方法 運算器所具有的只是簡單的算術、邏輯運算器所具有的只是簡單的算術、邏輯運算以及移位、計數(shù)等功能。運算以及移位、計數(shù)等功能。 計算機中對數(shù)據(jù)信息的加工的基本思想:計算機中對數(shù)據(jù)信息的加工的基本思想: 將各種復雜的運算處理分解為最基本的將各種復
2、雜的運算處理分解為最基本的算術運算和邏輯運算。算術運算和邏輯運算。 例如在算術運算中,可以通過補碼運算例如在算術運算中,可以通過補碼運算將減法化為加法;利用加減運算與移位將減法化為加法;利用加減運算與移位功能的配合實現(xiàn)乘除運算;通過階碼與功能的配合實現(xiàn)乘除運算;通過階碼與尾數(shù)的運算組合實現(xiàn)浮點運算。尾數(shù)的運算組合實現(xiàn)浮點運算。 2022-2-214運算器邏輯組織結構設計的層次運算器邏輯組織結構設計的層次 根據(jù)機器的字長,將根據(jù)機器的字長,將N個一位全加器通過加個一位全加器通過加法進位鏈連接構成法進位鏈連接構成N位并行加法器。位并行加法器。 利用多路選擇邏輯在加法器的輸入端實現(xiàn)多利用多路選擇邏輯
3、在加法器的輸入端實現(xiàn)多種輸入組合,將加法器擴展為多功能的算術種輸入組合,將加法器擴展為多功能的算術/ /邏邏輯運算部件。輯運算部件。 根據(jù)乘除運算的算法,將加法器與移位器組根據(jù)乘除運算的算法,將加法器與移位器組合,構成定點乘法器與除法器。將計算定點整合,構成定點乘法器與除法器。將計算定點整數(shù)的階碼運算器和計算定點小數(shù)的尾數(shù)運算器數(shù)的階碼運算器和計算定點小數(shù)的尾數(shù)運算器組合構成浮點運算器。組合構成浮點運算器。 在算術在算術/邏輯運算部件的基礎上,配合各類相邏輯運算部件的基礎上,配合各類相關的寄存器,構成計算機中的運算器。關的寄存器,構成計算機中的運算器。 2022-2-2153.2 3.2 定點
4、補碼加減運算定點補碼加減運算 原碼加減運算規(guī)則:原碼加減運算規(guī)則: 首先判斷參加運算的兩個操作數(shù)的符號,再根首先判斷參加運算的兩個操作數(shù)的符號,再根據(jù)操作的要求決定進行相加還是相減操作。運據(jù)操作的要求決定進行相加還是相減操作。運算時,符號位不參加運算,只有兩數(shù)的絕對值算時,符號位不參加運算,只有兩數(shù)的絕對值參加運算。最后根據(jù)兩個操作數(shù)絕對值的大小參加運算。最后根據(jù)兩個操作數(shù)絕對值的大小決定結果的符號。決定結果的符號。 大多數(shù)計算機中只設置加法器大多數(shù)計算機中只設置加法器 做原碼減法運算時做原碼減法運算時用用|x|x|y|y|變補變補代替代替|x|x|y|y|2022-2-216原碼加減運算步驟
5、原碼加減運算步驟 判斷參加運算的兩個操作數(shù)的符號,決定進判斷參加運算的兩個操作數(shù)的符號,決定進行相加還是相減操作。行相加還是相減操作。 取參加運算的操作數(shù)的絕對值。取參加運算的操作數(shù)的絕對值。 若做加法,則兩數(shù)直接相加;若做減法,則若做加法,則兩數(shù)直接相加;若做減法,則將減數(shù)先變一次補,再進行加法運算。將減數(shù)先變一次補,再進行加法運算。2022-2-217 運算結果的處理:運算結果的處理: 加法運算:加法運算: 無進位,即得到正確結果。無進位,即得到正確結果。 有進位,結果溢出。有進位,結果溢出。 減法運算:減法運算: 有進位,結果為正,即得到正確結果。有進位,結果為正,即得到正確結果。 無進
6、位,結果為負,需將結果再變一次補,無進位,結果為負,需將結果再變一次補, 得到正確結果。得到正確結果。 取絕對值大的操作數(shù)的符號作為結果的符號,取絕對值大的操作數(shù)的符號作為結果的符號,給結果加上符號位。給結果加上符號位。2022-2-2183.2.1 3.2.1 補碼運算的基礎補碼運算的基礎 由于原碼加減算法復雜,而補碼表示可以把由于原碼加減算法復雜,而補碼表示可以把加法、減法均轉換為加法,大大簡化了加減加法、減法均轉換為加法,大大簡化了加減運算算法,所以在計算機中均采用補碼加減運算算法,所以在計算機中均采用補碼加減運算。運算。 補碼運算補碼運算:參加運算的操作數(shù)均用補碼表示:參加運算的操作數(shù)
7、均用補碼表示并且運算結果也以補碼表示。并且運算結果也以補碼表示。2022-2-2191. 1. 補碼加法補碼加法 補碼加法的基本關系:補碼加法的基本關系: xx補補yy補補xxyy補補 (mod M) (3-1)(mod M) (3-1) 即兩數(shù)補碼之和等于兩數(shù)之和的補碼。即兩數(shù)補碼之和等于兩數(shù)之和的補碼。 式式(3-1)(3-1)中:中: 若若x x,y y是定點小數(shù),則是定點小數(shù),則ModMod2 2; 若若x x,y y是定點整數(shù),則是定點整數(shù),則ModMod2 2n n1 1,n n為為定點整數(shù)數(shù)值部分的位數(shù)。定點整數(shù)數(shù)值部分的位數(shù)。2022-2-2110 以定點小數(shù)為例證明式以定點小
8、數(shù)為例證明式(3-1)(3-1)的正確性。的正確性。 證明證明: : 設設x x,y y的取值范圍分別為的取值范圍分別為1x1x1 1,1y1y1 1;兩數(shù)之和;兩數(shù)之和x xy y的值在正常范圍的值在正常范圍之內,即:之內,即:1x1xy y1 1。 (1) (1) 設設x0 x0,y0y0,則,則x xy0y0 由補碼定義:由補碼定義: xx補補x x,yy補補y y, 得:得:xx補補yy補補x xy yxxyy補補2022-2-2111 (2) (2) 設設x0 x0,y y0 0 且且 |x|y|x|y| 由補碼定義由補碼定義 xx補補x x,yy補補2 2y (mod2)y (mo
9、d2) 得:得:xx補補yy補補2 2x xy y |x|y|x|y|, xxy0y0,xxyy補補x xy y 22x xy2 y2 xx補補yy補補x xy (mod2)y (mod2) 即證得即證得 xx補補yy補補xxyy補補2022-2-2112 (3) (3) 設設x0 x0,y y0 0 且且|x|x|y|y| 由補碼定義由補碼定義 xx補補x x,yy補補2 2y (mod2) y (mod2) 得:得:xx補補yy補補2 2x xy y |x|x|y| |y| x xy y 0 0 xxyy補補2 2x xy yxx補補yy補補 (mod2)(mod2)2022-2-2113
10、 (4)(4)設設x x0 0,y y0 0 由補碼定義:由補碼定義: xx補補2 2x x,yy補補2 2y (mod2)y (mod2) 得:得:xx補補yy補補2 2x x2 2y y2 22 2x xy y 舍去模舍去模2 2,得,得 xx補補yy補補2 2x xy y xx0 0,y y0 0 , x xy y 0 0 xxyy補補2 2x xy yxx補補yy補補 當當x x0 0,y0y0時,證明方法與時,證明方法與(2)(2)、(3)(3)相同。相同。 到此得證:到此得證:xx補補yy補補xxyy補補2022-2-2114 補碼減法的基本關系:補碼減法的基本關系: xx補補yy
11、補補xx補補 yy補補xxyy補補 (3-2)(3-2) 即兩數(shù)補碼之差等于兩數(shù)之差的補碼。即兩數(shù)補碼之差等于兩數(shù)之差的補碼。 式式(3-2)(3-2)中,中, 如果如果x x,y y是定點小數(shù),則是定點小數(shù),則ModMod2 2; 如果如果x x,y y是定點整數(shù),則是定點整數(shù),則ModMod2 2n n1 1,n n為定為定點整數(shù)數(shù)值部分的位數(shù)。點整數(shù)數(shù)值部分的位數(shù)。 2. 2. 補碼減法補碼減法 2022-2-2115 以定點小數(shù)為例證明式以定點小數(shù)為例證明式(3-2)(3-2)的正確性。的正確性。 根據(jù)式根據(jù)式(3-1)(3-1),可知:,可知: xx補補 yy補補xx( (y)y)補
12、補xxyy補補 xxyy補補xx補補yy補補 xx補補 yy補補xxyy補補, xx補補yy補補xx補補 yy補補xxyy補補 只要證明只要證明 yy補補yy補補成立,成立, 由由xx補補yy補補xx補補 yy補補xxyy補補 就可得式就可得式(3-2)(3-2)成立。成立。2022-2-2116 證明:證明: xxyy補補xx補補yy補補 yy補補xxyy補補xx補補 xxyy補補xx補補 yy補補 yy補補xxyy補補xx補補 yy補補 yy補補 xxyy補補xxyy補補xx補補xx補補 xxy yx xyy補補xx補補xx補補 xxxx補補xx補補xx補補 xx補補xx補補xx補補xx補
13、補0 0 yy補補 yy補補2022-2-2117 參加運算的各個操作數(shù)均以補碼表示,運算參加運算的各個操作數(shù)均以補碼表示,運算結果仍以補碼表示。結果仍以補碼表示。 符號位與數(shù)值位一樣參加運算。符號位與數(shù)值位一樣參加運算。 若求和,則將兩補碼數(shù)直接相加,得到兩數(shù)若求和,則將兩補碼數(shù)直接相加,得到兩數(shù)之和的補碼;之和的補碼; 若求差,則將減數(shù)變補若求差,則將減數(shù)變補( (由由yy補補求求 yy補補) ),然后與被減數(shù)相加,得到兩數(shù)之差的補碼。然后與被減數(shù)相加,得到兩數(shù)之差的補碼。 補碼總是對確定的模而言,若運算結果超過補碼總是對確定的模而言,若運算結果超過模模( (有從符號位上產生的進位有從符號
14、位上產生的進位) ),則將模自動丟掉。,則將模自動丟掉。補碼運算的基本規(guī)則補碼運算的基本規(guī)則2022-2-2118 例例3.1 x3.1 x0.10010.1001,y y0.01010.0101,求,求x xy y? 解:解:xx補補0.10010.1001, yy補補0.01010.0101, yy補補1.10111.1011 xxyy補補xx補補yy補補0.10010.10010.01010.01010.11100.1110 x xy y0.11100.11100.10010.10010.01010.01010.11100.11100.10010.10011.10111.10110.01
15、000.01001 1丟模丟模 xxyy補補xx補補 yy補補0.10010.10011.10111.10110.01000.0100 x xy y0.01000.01002022-2-2119 例例3.2 x3.2 x0.01100.0110,y y0.00110.0011,求,求x xy y? 解:解:xx補補1.10101.1010, yy補補1.11011.1101, yy補補0.00110.0011 xxyy補補xx補補yy補補1.10101.10101.11011.11011.01111.0111 x xy y0.10010.10011.10101.10101.11011.1101
16、1.01111.01111.10101.10100.00110.00111.11011.11011 1丟模丟模 xxyy補補xx補補 yy補補1.10101.10100.00110.00111.11011.1101 x xy y0.00110.00112022-2-2120 例例3.3 x3.3 x0.10100.1010,y y0.10010.1001,求求x xy y? 解:解:xx補補0.10100.1010, yy補補0.10010.1001, xxyy補補xx補補yy補補0.10100.10100.10010.10010.10100.10100.10010.10011.00111.0
17、0111 1 結果溢出結果溢出2022-2-2121 例例3.4 x3.4 x0.11010.1101,y y0.10110.1011,求求x xy y? 解:解:xx補補1.00111.0011, yy補補1.01011.0101, xxyy補補xx補補yy補補1.00111.00111.01011.01011.00111.00111.01011.01010.10000.10001 1 結果溢出結果溢出2022-2-2122 如果兩個正數(shù)相加,得到結果的符號為負;兩個如果兩個正數(shù)相加,得到結果的符號為負;兩個負數(shù)相加,得到的結果為正,則運算結果是錯誤負數(shù)相加,得到的結果為正,則運算結果是錯誤
18、的。的。 造成錯誤的原因,是因為運算結果超出了機器所造成錯誤的原因,是因為運算結果超出了機器所能表示的數(shù)據(jù)范圍,數(shù)值位侵占了符號位,正確能表示的數(shù)據(jù)范圍,數(shù)值位侵占了符號位,正確符號被擠走了。符號被擠走了。 正溢出正溢出:兩個正數(shù)相加的結果超出機器所能表示:兩個正數(shù)相加的結果超出機器所能表示的最大正數(shù)。的最大正數(shù)。 負溢出負溢出:兩個負數(shù)相加的結果小于機器所能表示:兩個負數(shù)相加的結果小于機器所能表示的最小負數(shù)。的最小負數(shù)。 出現(xiàn)溢出后,機器將無法正確表示,因此必須正出現(xiàn)溢出后,機器將無法正確表示,因此必須正確判別溢出并及時加以處理。確判別溢出并及時加以處理。2022-2-2123 3.2.2
19、3.2.2 溢出判別與變形補碼溢出判別與變形補碼 設參加運算的操作數(shù)為設參加運算的操作數(shù)為 xx補補x xf f.x.x1 1x x2 2xxn n y y補補y yf f.y.y1 1y y2 2yyn n xx補補yy補補的和為:的和為: ss補補s sf f.s.s1 1s s2 2ssn n 發(fā)生溢出時發(fā)生溢出時 OVROVR1 1 常用判斷溢出的方法常用判斷溢出的方法 1. 1. 根據(jù)兩個操作數(shù)的符號與結果的符號判別溢出根據(jù)兩個操作數(shù)的符號與結果的符號判別溢出 由于參加運算的數(shù)都是定點數(shù),所以只有兩數(shù)同號由于參加運算的數(shù)都是定點數(shù),所以只有兩數(shù)同號時相加才可能溢出。所以溢出的條件為:
20、時相加才可能溢出。所以溢出的條件為: OVROVRx xf fy yf fs sf fx xf fy yf fs sf f(x(xf fssf f)(y)(yf fssf f) (3-3) ) (3-3) 即即x xf f和和y yf f均與均與s sf f不同時,產生溢出。不同時,產生溢出。2022-2-21241.00111.00111.01011.01010.10000.10001 1 如如 x xf fy yf fs sf fx xf fy yf fs sf f 1 1 C Cf fCC1 11 1 2. 2. 根據(jù)兩數(shù)相加時產生的進位判別溢出根據(jù)兩數(shù)相加時產生的進位判別溢出 設設C
21、Cf f為符號位上產生的進位,為符號位上產生的進位,C C1 1為最高數(shù)值位為最高數(shù)值位上產生的進位,則溢出的條件為:上產生的進位,則溢出的條件為: OVROVRC Cf fC C1 1C Cf fC C1 1C Cf fCC1 1 (3-4) (3-4) 即若進入符號位的進位和從符號位上產生的進即若進入符號位的進位和從符號位上產生的進位不相等,則產生溢出。位不相等,則產生溢出。 有的資料中將有的資料中將C Cf f寫為寫為C C0 0,所以溢出條件為,所以溢出條件為 OVROVRC C0 0C C1 1C C0 0C C1 1C C0 0CC1 12022-2-2125溢出判斷電路溢出判斷電
22、路&=1=1XfSfYfOVR=1OVRCfC12022-2-21263. 3. 采用變形補碼進行運算采用變形補碼進行運算 使用一個符號位進行運算,當出現(xiàn)溢出時,正確使用一個符號位進行運算,當出現(xiàn)溢出時,正確的符號將被數(shù)值位侵占,符號位含義就會發(fā)生混的符號將被數(shù)值位侵占,符號位含義就會發(fā)生混亂。如果采用兩個符號位進行運算,即使因出現(xiàn)亂。如果采用兩個符號位進行運算,即使因出現(xiàn)溢出侵占了一個符號位,仍能保持最左邊符號是溢出侵占了一個符號位,仍能保持最左邊符號是正確的。正確的。 變形補碼變形補碼:用兩個符號位表示的補碼。也稱:用兩個符號位表示的補碼。也稱雙符雙符號位補碼號位補碼。 2022-
23、2-2127變形補碼的定義變形補碼的定義 純小數(shù)的變形補碼純小數(shù)的變形補碼 純整數(shù)的變形補碼純整數(shù)的變形補碼 4) (mod 0 x1- x41x0 xx變形補 )2 (mod 0 x2- x22x0 xx2nn2nn變形補2022-2-2128 變形補碼的形式:變形補碼的形式: xx變形補變形補x xf1f1x xf2f2.x.x1 1x x2 2xxn n 設和的變形補碼為設和的變形補碼為 ss變形補變形補s sf1f1s sf2f2.s.s1 1s s2 2ssn n 變形補碼的溢出判斷條件:變形補碼的溢出判斷條件: OVROVRs sf1f1ssf2f2 即當結果的兩個符號位不一致時,
24、出現(xiàn)溢出。即當結果的兩個符號位不一致時,出現(xiàn)溢出。其中:其中: s sf1f1s sf2f200 00 或或 11 11 表示正常補碼表示正常補碼 s sf1f1s sf2f201 01 表示正溢出表示正溢出 s sf1f1s sf2f210 10 表示負溢出表示負溢出2022-2-2129 例例3.5 x3.5 x0.10010.1001,y y0.01010.0101,求,求x xy y? 解:解: xx變形補變形補00.100100.1001, yy變形補變形補00.0101 00.0101 00.100100.100100.010100.010100.111000.1110 xxyy變
25、形補變形補00.100100.100100.010100.010100.111000.1110 x xy y0.11100.11102022-2-2130 例例3.6 x3.6 x0.01100.0110,y y0.00110.0011,求,求x xy y? 解:解: xx變形補變形補11.101011.1010, yy變形補變形補11.110111.1101, 11.101011.101011.110111.110111.011111.01111 1丟模丟模 xxyy變形補變形補11.101011.101011.110111.110111.011111.0111 x xy y0.10010.
26、10012022-2-2131 例例3.7 3.7 x x0.10100.1010,y y0.10010.1001 x x0.11010.1101,y y0.10110.1011 求求x xy y? 解:解: x x變形補變形補00.101000.1010, yy變形補變形補00.100100.1001, xxyy變形補變形補00.101000.101000.100100.1001 s sf1f1ssf2f21 1 運算結果溢出運算結果溢出00.101000.101000.100100.100101.001101.0011正溢出正溢出2022-2-2132 x x變形補變形補11.001111
27、.0011, yy變形補變形補11.010111.0101, xxyy變形補變形補11.001111.001111.010111.0101 s sf1f1ssf2f21 1 運算結果溢出運算結果溢出11.001111.001111.010111.010110.100010.10001 1負溢出負溢出2022-2-2133 分析分析s sf1f1、s sf2f2的含義可知,無論運算結果的含義可知,無論運算結果是否產生溢出,第一符號位是否產生溢出,第一符號位s sf1f1始終指示始終指示結果的正確的正負符號。結果的正確的正負符號。 變形補碼在正常情況下,變形補碼在正常情況下,s sf1f1s sf
28、2f2 ,所以,所以存儲數(shù)據(jù)時采用正常補碼,只在運算時存儲數(shù)據(jù)時采用正常補碼,只在運算時采用變形補碼,以便判別溢出。采用變形補碼,以便判別溢出。 變形補碼的溢出判斷電路:變形補碼的溢出判斷電路:=1OVRSf1Sf22022-2-21343.2.3 3.2.3 算術邏輯運算部件算術邏輯運算部件 運算器的基本功能是進行算術邏輯運算,運算器的基本功能是進行算術邏輯運算,其最基本也是最核心的部件是加法器。其最基本也是最核心的部件是加法器。 在加法器的輸入端加入多種輸入控制功能,在加法器的輸入端加入多種輸入控制功能,就能將加法器擴展為多功能的算術就能將加法器擴展為多功能的算術/邏輯運邏輯運算部件。算部
29、件。 2022-2-21351. 1. 補碼加減運算的邏輯實現(xiàn)補碼加減運算的邏輯實現(xiàn) 根據(jù)根據(jù) AA補補BB補補AABB補補 AA補補BB補補AA補補 BB補補 AA補補BB補補1 1AABB補補 補碼加減運算的硬件實現(xiàn)電路的基本原理仍是補碼加減運算的硬件實現(xiàn)電路的基本原理仍是加法器,只要在加法器的加法器,只要在加法器的A A、 B B輸入端增加控制輸入端增加控制信號,即可控制實現(xiàn)加法和減法。信號,即可控制實現(xiàn)加法和減法。 B1 B1B B 在需要作減法時,將輸入到加法器在需要作減法時,將輸入到加法器B B端的內端的內容的取反(容的取反(B1B1)后送入加法器,并使最低進)后送入加法器,并使最
30、低進位位C C0 01 1,即可實現(xiàn)減法運算。,即可實現(xiàn)減法運算。2022-2-2136采用串行進位的補碼加減運算邏輯電路采用串行進位的補碼加減運算邏輯電路 Cn FA Fn An Bn Cn1 Fn1 An1 Bn1 Cn2 FA F2 A2 B2 C1 F1 C0 C2 M A1 B1 FA FA 1 1 1 1 2022-2-2137 M M0 B0 Bi i通過異或門與通過異或門與0 0異或,異或,B Bi i00B Bi i, C C0 00 0 作作 A AB B M M1 B1 Bi i通過異或門與通過異或門與1 1異或,異或,B Bi i11B Bi i, C C0 01 1
31、作作 A AB B 電路中采用進出符號位的進位進行溢出判斷。電路中采用進出符號位的進位進行溢出判斷。 OVROVRC Cn nCCn n1 12022-2-21382. 2. 實現(xiàn)補碼加減運算的邏輯電路實現(xiàn)補碼加減運算的邏輯電路 在實際應用中,兩個操作數(shù)需要存放在在實際應用中,兩個操作數(shù)需要存放在寄存器中,運算時送到運算器中進行運寄存器中,運算時送到運算器中進行運算,運算結果再送到寄存器中保存。算,運算結果再送到寄存器中保存。 在實際的運算器中,參加運算的操作數(shù)在實際的運算器中,參加運算的操作數(shù)和運算結果通常都存放在寄存器中,控和運算結果通常都存放在寄存器中,控制器通過對指令譯碼得到控制信號,
32、控制器通過對指令譯碼得到控制信號,控制將操作數(shù)輸入加法器及將運算結果寫制將操作數(shù)輸入加法器及將運算結果寫回寄存器?;丶拇嫫?。 2022-2-2139 并行加法器 F C01 & A Q Q FA B Q Q FB FB & 1 & AF 補碼加減運算的邏輯電路補碼加減運算的邏輯電路 A(A)A(A)(B) (B) 2022-2-2140 A A寄存器:運算前存放操作數(shù),運算后存放運寄存器:運算前存放操作數(shù),運算后存放運算結果。也稱為累加器。算結果。也稱為累加器。 B B寄存器:有兩個輸出端寄存器:有兩個輸出端 B B 和和 B B 。 由加、減法指令控制產生由加、減法指
33、令控制產生ADDADD和和SUBSUB信號。信號。 執(zhí)行加法指令:執(zhí)行加法指令:ADDADD1 1 執(zhí)行減法指令:執(zhí)行減法指令:SUBSUB1 1 ADDADD0 & SUB0 & SUB0 0 執(zhí)行的不是加、減法指令執(zhí)行的不是加、減法指令 參加運算的兩個補碼數(shù)分別存放在寄存器參加運算的兩個補碼數(shù)分別存放在寄存器A A、B B中,運算結果保存在寄存器中,運算結果保存在寄存器A A中。中。2022-2-2141 運算控制信號的邏輯條件為:運算控制信號的邏輯條件為: FAFAADDADDSUBSUB FB FBADDADD FB FBSUBSUB C C0 011SUB SUB A
34、F AFADDADDSUBSUB2022-2-21422. 2. 算術邏輯運算部件舉例算術邏輯運算部件舉例 除了加減運算,運算器還需要完成其它算除了加減運算,運算器還需要完成其它算術邏輯運算,在加法器的輸入端加以多種術邏輯運算,在加法器的輸入端加以多種輸入控制,就可以將加法器的功能進行擴輸入控制,就可以將加法器的功能進行擴展。展。 算術邏輯運算單元(簡稱算術邏輯運算單元(簡稱ALUALU)是一種以)是一種以加法器為基礎的多功能組合邏輯電路。加法器為基礎的多功能組合邏輯電路。 ALUALU的的基本設計思想基本設計思想:在加法器的輸入端:在加法器的輸入端加入一個函數(shù)發(fā)生器,這個函數(shù)發(fā)生器可加入一個
35、函數(shù)發(fā)生器,這個函數(shù)發(fā)生器可以在多個控制信號的控制下,為加法器提以在多個控制信號的控制下,為加法器提供不同的輸入函數(shù),從而構成一個具有較供不同的輸入函數(shù),從而構成一個具有較完善的算術邏輯運算功能的運算部件。完善的算術邏輯運算功能的運算部件。 2022-2-2143ALUALU組件組件 SN74181 SN74181 F3 F2 F1 F0 SN74181 4 位 ALU S3 S2 S1 S0 M Cn4 AB G P B3B2B1B0 A3A2A1A0Cn 圖 3-4 SN74181 的外部特性圖 2022-2-2144 SN74181SN74181: 4 4位位ALUALU組件,可以實現(xiàn)組
36、件,可以實現(xiàn)1616種算術運算功種算術運算功能和能和1616種邏輯運算功能,其具體功能由種邏輯運算功能,其具體功能由S S3 3S S2 2S S1 1S S0 0和和M M信號控制實現(xiàn)信號控制實現(xiàn), ,見見P77 P77 表表3-13-1。 SN74181SN74181有正邏輯和負邏輯兩種芯片。有正邏輯和負邏輯兩種芯片。 圖圖3-43-4為采用負邏輯方式工作的為采用負邏輯方式工作的SN74181SN74181芯片的外部特性。芯片的外部特性。 2022-2-2145 A A3 30 0、B B3 30 0:參加運算的兩組:參加運算的兩組4 4位操作數(shù);位操作數(shù); C Cn n:低位來的進位;:
37、低位來的進位; F F3 30 0:輸出的運算結果;:輸出的運算結果; C Cn n4 4:向高位的進位;:向高位的進位; G G:小組本地進位;:小組本地進位; P P:小組傳遞函數(shù);:小組傳遞函數(shù); A AB B:兩個操作數(shù)的相等。:兩個操作數(shù)的相等。 如果將多個如果將多個7418174181的的“A AB”B”端按端按“與與”邏邏輯連接,就可以檢測兩個字長超過輯連接,就可以檢測兩個字長超過4 4位的操位的操作數(shù)的相等情況。作數(shù)的相等情況。2022-2-2146 S S3 3S S2 2S S1 1S S0 0:控制產生:控制產生1616種不同的邏輯函數(shù);種不同的邏輯函數(shù); M M:控制芯
38、片執(zhí)行算術運算還是邏輯運算。:控制芯片執(zhí)行算術運算還是邏輯運算。 M M0 0:允許加法器位間進位,執(zhí)行算術運:允許加法器位間進位,執(zhí)行算術運算;算; M M1 1:封鎖加法器位間進位,執(zhí)行邏輯運:封鎖加法器位間進位,執(zhí)行邏輯運算。算。2022-2-2147 多片多片SN74181SN74181組合,可以構成更多位數(shù)的組合,可以構成更多位數(shù)的ALUALU。 將將SN74181SN74181與并行進位鏈芯片與并行進位鏈芯片SN74182SN74182配合,配合,可以組成快速的并行加法器??梢越M成快速的并行加法器。 SN74182 P3 G3 C12 P2G2 C8 P1G1 C4 P0G0 C0
39、 74181 74181 74181 74181 74181 C0 P G 2022-2-21483.3 3.3 定點乘法運算定點乘法運算 計算機中實現(xiàn)乘除運算通常采用以下三計算機中實現(xiàn)乘除運算通常采用以下三種方式:種方式: 利用乘除運算子程序利用乘除運算子程序 在加法器的基礎上增加左、右移位及在加法器的基礎上增加左、右移位及計數(shù)器等邏輯線路構成乘除運算部件。計數(shù)器等邏輯線路構成乘除運算部件。 設置專用的陣列乘除運算器設置專用的陣列乘除運算器 2022-2-2149 3 3.3.1 .3.1 原碼乘法運算原碼乘法運算 原碼乘法:原碼乘法:參加運算的被乘數(shù)和乘數(shù)均用參加運算的被乘數(shù)和乘數(shù)均用原碼
40、表示;運算時符號位單獨處理,原碼表示;運算時符號位單獨處理,被乘被乘數(shù)與乘數(shù)的絕對值相乘;所得的積也采用數(shù)與乘數(shù)的絕對值相乘;所得的積也采用原碼表示。原碼表示。 在定點機中,兩個數(shù)的原碼乘法運算包括:在定點機中,兩個數(shù)的原碼乘法運算包括: 乘積的符號處理乘積的符號處理 兩數(shù)絕對值相乘兩數(shù)絕對值相乘2022-2-2150 設設 被乘數(shù):被乘數(shù):x原原xf . x1x2xn 乘數(shù):乘數(shù): y原原yf . y1y2yn 乘積:乘積: z原原x原原y原原 xy原原zf . z1z2zn 根據(jù)根據(jù)“同號相乘,乘積為正;異號相乘,乘積同號相乘,乘積為正;異號相乘,乘積為負為負”,得乘積的符號:,得乘積的符
41、號: zfxf yf2022-2-2151 例例3.83.8:x x0.11010.1101,y y0.1011 0.1011 求求x xy y? ? 解:根據(jù)二進制乘法規(guī)律,可得解:根據(jù)二進制乘法規(guī)律,可得x xy y的手算過的手算過程如下:程如下: 得:得:x xy y0.10001111 0.10001111 0.1101 0.1011 1101 y41 得部分積為x 1101 y31 得部分積為x 0000 y20 得部分積為0 1101 y11 得部分積為x 0.10001111 將所有部分積相加,得到最后的乘積 2022-2-2152 從例從例3.83.8可以看出,兩個可以看出,兩
42、個4 4位數(shù)相乘得位數(shù)相乘得8 8位乘積,位乘積,共共4 4個部分積需個部分積需8 8位加法器相加。位加法器相加。 由此可見,兩個由此可見,兩個n n位數(shù)相乘,得位數(shù)相乘,得2n2n位乘積,共有位乘積,共有n n個部分積。個部分積。 2n 2n位乘積需用位乘積需用2n2n位加法器進行相加運算。位加法器進行相加運算。 兩個兩個n n位數(shù)相乘位數(shù)相乘, ,需需n n個寄存器保存?zhèn)€寄存器保存n n個部分積。個部分積。 顯然所需硬件太多,不適合用硬件去實現(xiàn),為顯然所需硬件太多,不適合用硬件去實現(xiàn),為此需對算法加以改進。此需對算法加以改進。2022-2-21531. 1. 一位原碼乘法運算一位原碼乘法運
43、算 設參加運算的設參加運算的被乘數(shù)為被乘數(shù)為 x x0.x0.x1 1x x2 2xx4 4,乘數(shù)為乘數(shù)為 y y0.y0.y1 1y y2 2yy4 4,有:,有: x xy yx x0.y0.y1 1y y2 2y y3 3y y4 4 x x(2(2-1-1y y1 12 2-2-2y y2 22 2-3-3y y3 32 2-4-4y y4 4) ) 2 2-1-1x xy y1 12 2-2-2x xy y2 22 2-3-3x xy y3 32 2-4-4x xy y4 4 2 2-1-122-3-3x xy y4 42 2-2-2x xy y3 32 2-1-1x xy y2 2
44、x xy y1 1 2 2-1-122-1-122-2-2x xy y4 42 2-1-1x xy y3 3x xy y2 2 x xy y1 1 2 2-1-122-1-122-1-1(2(2-1-1x xy y4 4x xy y3 3) )x xy y2 2 x xy y1 1 2 2-1-122-1-122-1-1(2(2-1-10 x xy y3 3) )x xy y2 2 x xy y1 1 2022-2-2154 根據(jù)上式,可將乘法轉換為一系列加法與移位根據(jù)上式,可將乘法轉換為一系列加法與移位操作。將遞推公式推廣到操作。將遞推公式推廣到n n位,得:位,得: Z Z0 00 0 (
45、初始部分積為(初始部分積為0 0) Z Z1 12 2-1-1(Z(Z0 0 xyxyn n) ) Z Z2 22 2-1-1(Z(Z1 1xyxyn-1n-1) ) Z Zn n2 2-1-1(Z(Zn-1n-1xyxy1 1) )x xy y 其中,其中,Z Z0 0、Z Z1 1、Z Zn n稱為部分積。稱為部分積。 根據(jù)上述推導過程可知,可以把乘法轉換為一根據(jù)上述推導過程可知,可以把乘法轉換為一系列加法與移位操作。系列加法與移位操作。 2022-2-2155原碼一位乘法的算法原碼一位乘法的算法 積的符號單獨按兩操作數(shù)的符號模積的符號單獨按兩操作數(shù)的符號模2 2加(異或)加(異或)得到。
46、用被乘數(shù)和乘數(shù)的數(shù)值部分進行運算。得到。用被乘數(shù)和乘數(shù)的數(shù)值部分進行運算。 以乘數(shù)的最低位作為乘法判別位,若判別位以乘數(shù)的最低位作為乘法判別位,若判別位為為1 1,則在前次部分積(初始部分積為,則在前次部分積(初始部分積為0 0)上加)上加上被乘數(shù),然后連同乘數(shù)一起右移一位;若判上被乘數(shù),然后連同乘數(shù)一起右移一位;若判別位為別位為0 0,則在前次部分積上加,則在前次部分積上加0 0(或不加),(或不加),然后連同乘數(shù)一起右移一位。然后連同乘數(shù)一起右移一位。 重復第重復第步直到運算步直到運算n n次為止。次為止。(n n為乘數(shù)數(shù)為乘數(shù)數(shù)值部分的長度)值部分的長度) 將乘積的符號與數(shù)值部分結合,即
47、可得到最將乘積的符號與數(shù)值部分結合,即可得到最終結果。終結果。 2022-2-2156 例例3.9 3.9 設設 x x0.11010.1101,y y0.10110.1011,根,根據(jù)原碼一位乘法的算法計算據(jù)原碼一位乘法的算法計算x xy y? ? 。 解:解:xx原原0.11010.1101,yy原原1.10111.1011, 乘積乘積 zz原原xxyy原原 符號位單獨處理得符號位單獨處理得 z zf f0 01 11 1 將被乘數(shù)和乘數(shù)的絕對值的數(shù)值部分將被乘數(shù)和乘數(shù)的絕對值的數(shù)值部分相乘。相乘。 |x|x|原原0.1101 |y|0.1101 |y|原原0.1011 0.1011 數(shù)值
48、部分為數(shù)值部分為4 4位,共需運算位,共需運算4 4次。次。 2022-2-2157 部分積部分積 乘數(shù)乘數(shù) y yn n 說明說明 0.0000 1 0 1 0.0000 1 0 1 1 1 初始部分積初始部分積 Z Z0 00 0 0.1101 0.1101 乘數(shù)乘數(shù)y yn n1 1, 加加x x; 0.1101 0.1101 0.0110 0.0110 1 1 1 0 1 0 1 1 部分積與乘數(shù)同時右移一位;部分積與乘數(shù)同時右移一位; 0.1101 0.1101 乘數(shù)乘數(shù)y yn n1 1, 加加x x; 1.0011 1.0011 0.1001 0.1001 1 11 1 1 1
49、0 0 部分積與乘數(shù)同時右移一位;部分積與乘數(shù)同時右移一位; 0.0000 0.0000 乘數(shù)乘數(shù)y yn n0 0, 加加0 0; 0.1001 0.1001 0.0100 0.0100 1 1 11 1 1 1 1 部分積與乘數(shù)同時右移一位部分積與乘數(shù)同時右移一位 0.1101 0.1101 乘數(shù)乘數(shù)y yn n1 1, 加加x x; 1.0001 1.0001 0.1000 0.1000 1 1 1 11 1 1 1 部分積與乘數(shù)同時右移一位,部分積與乘數(shù)同時右移一位, 運算了運算了4 4次,計算結束。次,計算結束。2022-2-2158 得:得:|x|xy|y|0.100011110.
50、10001111 加上符號部分得:加上符號部分得:xxyy原原1.10001111 1.10001111 即:即:x xy y0.100011110.100011112022-2-2159原碼一位乘法算法的硬件邏輯電路原碼一位乘法算法的硬件邏輯電路 寄存器A C Cn ALU 1 寄存器B CR & 移 位 脈 沖 時鐘脈沖 CT 啟動 結束 Q Cn S R & Cj Cn Bf Cf Af Q 2022-2-2160 A A寄存器:存放部分積高位部分,初始為寄存器:存放部分積高位部分,初始為0 0 B B寄存器:存放被乘數(shù)寄存器:存放被乘數(shù) C C寄存器:存放乘數(shù)和部分積低
51、位部分,初始為寄存器:存放乘數(shù)和部分積低位部分,初始為乘數(shù)乘數(shù) CRCR:計數(shù)器。用于記錄乘法次數(shù):計數(shù)器。用于記錄乘法次數(shù) 運算初始時,運算初始時,CRCR0 0,每進行一次運算,每進行一次運算CRCR1 1,當,當計數(shù)到計數(shù)到CRCRn n時,將時,將C CT T清清0 0,結束運算。,結束運算。 C Cj j:進位位:進位位 C CT T:乘法控制觸發(fā)器,:乘法控制觸發(fā)器, C CT T1 1,允許發(fā)出移位脈沖,進行乘法運算,允許發(fā)出移位脈沖,進行乘法運算 C CT T0 0,不允許發(fā)出移位脈沖,停止乘法運算,不允許發(fā)出移位脈沖,停止乘法運算2022-2-2161 寄存器寄存器C C通常
52、是具有左移、右移功能的移通常是具有左移、右移功能的移位寄存器。位寄存器。 寄存器寄存器A A一般不具有移位功能,部分積的一般不具有移位功能,部分積的移位采用斜送的方法實現(xiàn)移位。移位采用斜送的方法實現(xiàn)移位。2022-2-2162具有左、右斜送和直接傳送的移位器具有左、右斜送和直接傳送的移位器 FiFi:加法器的:加法器的i i位輸出位輸出 A2FA2F: 左移控制信號左移控制信號 A1/2FA1/2F:右移控制信號:右移控制信號 AFAF: 直接傳送控制信號直接傳送控制信號 1 A 21F Fi1 Fi Fi1 A 2F A F Ai 圖 3-8 實 現(xiàn) 移 位 功 能 的 邏 輯 電 路 Ff
53、.F1F2F3F42022-2-2163原碼一位乘法的運算流程原碼一位乘法的運算流程 B |被 乘 數(shù) |, C |乘 數(shù) | A、 CR、 Cj 0 Cn 1? A21(A 0), C21C A21(A B), C21C CR CR 1 CR n? Af Bf Cf Y N 開 始 結 束 2022-2-2164作業(yè)作業(yè) 用原碼一位乘法完成用原碼一位乘法完成 P132 3.4 (2) (3)2022-2-21653.2.2 3.2.2 補碼乘法運算補碼乘法運算 因為補碼加減運算簡單,在實際機器中因為補碼加減運算簡單,在實際機器中都采用補碼加減運算,因此不少機器也都采用補碼加減運算,因此不少機
54、器也采用補碼乘法,以減少原碼與補碼之間采用補碼乘法,以減少原碼與補碼之間的不斷轉換。的不斷轉換。 計算機中常用的補碼乘法算法,稱為比計算機中常用的補碼乘法算法,稱為比較法或加減交替乘法。因為是由布斯夫較法或加減交替乘法。因為是由布斯夫婦提出的,所以也稱布斯乘法。婦提出的,所以也稱布斯乘法。2022-2-21661.1.補碼一位乘法補碼一位乘法 以定點小數(shù)為例以定點小數(shù)為例. . 設被乘數(shù)設被乘數(shù)x x的補碼為的補碼為 xx補補x x0 0.x.x1 1x x2 2x xn n, 乘數(shù)乘數(shù)y y的補碼為的補碼為 yy補補y y0 0.y.y1 1y y2 2y yn n, 乘積為乘積為ZZ補補x
55、xyy補補。 被乘數(shù)被乘數(shù)x x的符號任意,乘數(shù)的符號任意,乘數(shù)y y為正數(shù),即:為正數(shù),即: xx補補x x0 0.x.x1 1x x2 2x xn n yy補補0.y0.y1 1y y2 2y yn n 有:有:xx補補2 2x x2 2n n1 1x x (Mod 2Mod 2) yy補補y y 2022-2-2167 xx補補yy補補2 2n n1 1y yx xy y 2 2(y(y1 1y y2 2yyn n) )x xy y (Mod 2Mod 2) y y1 1y y2 2yyn n為大于為大于0 0的正整數(shù),根據(jù)模的正整數(shù),根據(jù)模2 2性質:性質: 2 2(y(y1 1y y
56、2 2yyn n) )2 2 (Mod 2Mod 2) xx補補yy補補2 2x xy yxxyy補補 y y0 0,yy補補y y,y y0 00 0 x xyy補補xx補補yy補補xx補補y y xx補補(0.y(0.y1 1y y2 2yyn n) )xx補補 n1iii2y2022-2-2168 設被乘數(shù)設被乘數(shù)x x的符號任意,乘數(shù)的符號任意,乘數(shù)y y為負數(shù):為負數(shù): xx補補x x0 0.x.x1 1x x2 2xxn n yy補補1.y1.y1 1y y2 2yyn n2 2y y (Mod 2Mod 2) y yyy補補2 20.y0.y1 1y y2 2yyn n1 1 x
57、 xy yx x(0.y(0.y1 1y y2 2yyn n) )x x, 得:得:xxyy補補xx(0.y(0.y1 1y y2 2yyn n)補補xx補補 0.y 0.y1 1y y2 2yyn n0 0, x x(0.y(0.y1 1y y2 2yyn n)補補xx補補(0.y(0.y1 1y y2 2yyn n) ) 得:得:xxyy補補xx補補(0.y(0.y1 1y y2 2yyn n) )xx補補 2022-2-2169 設被乘數(shù)設被乘數(shù)x x和乘數(shù)和乘數(shù)y y均為的任意符號數(shù),將情況均為的任意符號數(shù),將情況、綜合,可得:綜合,可得: xxyy補補xx補補(0.y(0.y1 1y
58、 y2 2yyn n) )xx補補y y0 0 xx補補(0.y(0.y1 1y y2 2yyn ny y0 0) ) xx補補( (y y0 0 ) ) y y0 0 xx補補2 21 1y y1 1xx補補2 22 2y y2 2xx補補 2 2n ny yn nxx補補 (y(y1 1y y0 0 )x )x補補2 21 1(y(y2 2y y1 1)x)x補補 2 22 2(y(y3 3y y2 2)x)x補補 2 2(n(n1)1)(y(yn ny yn n1 1)x)x補補2 2n n(y(yn n1 1y yn n)x)x補補 (初始(初始y yn n1 10 0) n1iii2
59、y2022-2-2170 令部分積的初始值令部分積的初始值 ZZ0 0 補補0 0,得部分積的遞,得部分積的遞推形式:推形式: ZZ0 0 補補0 0 (初始部分積為(初始部分積為0 0) ZZ1 1 補補2 21 1ZZ0 0 補補(y(yn n1 1y yn n)x)x補補 ZZ2 2 補補2 21 1ZZ1 1 補補(y(yn ny yn n1 1)x)x補補 ZZi i 補補2 21 1ZZi i1 1 補補(y(yn ni i2 2y yn ni i1 1)x)x補補 ZZn n 補補2 21 1ZZn n1 1 補補(y(y2 2y y1 1)x)x補補 ZZn n1 1 補補ZZ
60、n n 補補(y(y1 1y y0 0)x)x補補 xxyy補補 2022-2-2171 (1) (1) 參加運算的數(shù)均以補碼表示,符號位參加運參加運算的數(shù)均以補碼表示,符號位參加運算且部分積與被乘數(shù)采用雙符號位。算且部分積與被乘數(shù)采用雙符號位。 (2) (2) 乘數(shù)末位增設附加位乘數(shù)末位增設附加位y yn+1n+1,且初始,且初始y yn+1n+10 0。 (3) (3) 以以y yn ny yn+1n+1作為乘法判別位:作為乘法判別位: 若若y yn ny yn+1n+10000或或1111,則前次部分積,則前次部分積( (初始部分積為初始部分積為0)0)加加0(0(或不加或不加) ),然后連同乘數(shù)右移一位。,然后連同乘數(shù)右移一位。 若若y yn ny yn+1n+10101
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 截洪溝施工方案
- 2025年口腔診療器械消毒技術操作規(guī)范試題與答案
- 醫(yī)務科工作總結及工作計劃
- 慢性病防治試題及答案
- 四川硬筆法四級考試試題及答案
- 2025建筑工程技術考試試題(含答案)
- 物流師三級考試試題含答案
- 2025年海選詩詞大賽題庫及答案
- 震動打樁機安全操作規(guī)程
- 建設工程施工合同糾紛要素式起訴狀模板專業(yè)權威靠譜
- 意識障礙的判斷及護理
- 儲能電站安全管理與操作規(guī)程
- 2025年宿遷市泗陽縣保安員招聘考試題庫附答案解析
- 交通安全企業(yè)培訓課件
- 2025年廣東省中考物理試卷及答案
- 皮革項目商業(yè)計劃書
- 主管護師護理學考試歷年真題試卷及答案
- 華文慕課《刑法學》總論課后作業(yè)答案
- 公路護欄波型梁施工方案
- 2025版煤礦安全規(guī)程新增變化條款考試題庫
- 基于SOLO分類理論剖析初中生數(shù)學開放題解決水平:現(xiàn)狀差異與提升策略
評論
0/150
提交評論