版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、,系 統(tǒng) 總 線,存儲器,運算器,控制器,接口與通信,輸入/輸出設備, 計算機組成原理 ,第六章 計算機的運算方法,運算器的基本結構:(P 281-283) ALU、移位門、寄存器組、 輸入選擇門和數據總線組成。 問題1、ALU電路沒有記憶功能。 參與運算的數、運算的結果放那里? (A+B)+(C+D) 答:存放在寄存器組(多個寄存器)中。 問題2、ALU兩個參加運算數與一個運算結果。 一次只有兩個數參加運算, 究竟讓哪個寄存器參加工作呢? 答:要進行選擇(選擇門電路)。,移位門,ALU,選擇門 A,選擇門 B,通用 寄存器組,數據總線,數據總線,運算器基本結構框圖,參加運算的數 X,Y 參加
2、運算的數,運算結果,Review: 第六章 計算機的運算方法,1、 數據的表示方式 1.1、符號的處理(正數、負數) 1.2、數值的處理(數制轉換) 1.3、小數點的處理(定點、浮點) 1.4、原碼的表示方法 1.5、反碼的表示方法 1.6、補碼的表示方法(重點研究) 1.7、移碼的表示方法 1.8、字符、漢字的表示方法( ASCII 碼、內碼) 1.9、校驗碼(奇偶校驗、海明威校驗、CRC校驗),機器數的 表示方法,實際數的 表示方法,研究在機器中怎樣用二進制表示十進制數,研究哪種機器數的表示方法更利簡化運算,Review: 第六章 計算機的運算方法,2、定點加、減法運算與實現(xiàn) 2.1、補碼
3、定點加、減運算(減法通過加法來實現(xiàn)) 2.2、溢出概念與檢測方法(數值超出了表示范圍) 2.3、補碼定點加法器,注釋: 前面我們討論了數的補碼表示方法,采用補碼表示,減法可用加法來實現(xiàn),對設計硬件來講,只要設計一個加法器就可以實現(xiàn)加、減運算了,不需要再配一個減法器了。,Review: 第六章 計算機的運算方法,CPA,2.3、補碼定點加法器,+A,+B,- B,實現(xiàn)加法運算的邏輯示例,A+B A AB A,Q,/Q,延遲時間 與非1T 或非1T 與門2T 或門2T 異或3T 異或非3T,關于設計電路的延遲時間,擴充:提高電路運算效率,一位全加器,對一位全加器來說,和Fn的時間延遲為 3T+3T
4、=6T。 設計電路時,電路總的延遲時間應該越小越好。,擴充:提高電路運算效率,Review:加法器,超前進位加法器(當前計算機中使用的) 從加快進位信號的傳送速度考慮,可以實現(xiàn)多位的并行進位。 即各位之間幾乎同時產生送到高位的進位輸出信號。 采用“超前進位產生電路”來同時形成各位進位,從而實現(xiàn)快速加法。,只要同時輸入X1X4,Y1Y4和C0,幾乎同時輸出C14和F1F4。,用四片4位ALU電路可組成16位ALU。(1110 1101 0101 0001) 片內進位是并行快速的,但片間進位是串行慢速的,計算時間長。,Review:算術邏輯單元,把16位ALU中的每四位作為一組,用類似四位超前進位
5、加法器 “位間快速進位” 的方法來實現(xiàn)16位ALU的 “組間快速進位” 。,16位快速ALU,第六章 計算機的運算方法,3、定點乘法運算 3.1、原碼一位乘法 3.2、補碼一位乘法 3.3、補碼兩位乘法 3.4、陣列乘法器,注釋: 前面講的內容幫助同學們打開思路:怎么設計運算器; 機器數采用什么表示(原、反、補)對運算最有利。 硬件設計時,還要考慮提高硬件運算速度。 所以,講乘除法要逐漸從提高計算機的運算速度來考慮。,乘法運算可以通過硬件實現(xiàn),也可以通過軟件來實現(xiàn); 硬件實現(xiàn)乘法是以加法器為基礎逐步累加而成。 1)、軟件方法:通過乘法子程序,把乘法編程為累次加法運算, 從而在加法器中實現(xiàn)。該方
6、法經濟,但運算速度慢。 2)、硬件方法: A、在加法器中增加一些移位和控制部件來實現(xiàn)。 這種方法在早期的計算機采用。 B、隨著大規(guī)模集成電路的發(fā)展,現(xiàn)在設計了陣列乘法器。 設置專門的多位乘法部件。,3、定點乘法運算,根據數的表示方法,乘法器又有: 原碼乘法器,補碼乘法器。 原碼實現(xiàn)乘法運算方法簡單, 補碼實現(xiàn)加/減運算比較簡單。 在以加/減運算為主的機器中多采用補碼乘法器。 下面分別介紹原碼、補碼乘法。,3、定點乘法運算,第六章 計算機的運算方法,3、定點乘法運算 3.1、原碼一位乘法 3.2、補碼一位乘法 3.3、補碼兩位乘法 3.4、陣列乘法器,注釋: 書上講的原碼兩位乘法在計算機中不是那
7、么實現(xiàn)的, 所以該算法不做推廣,不講了。,原碼一位乘法基本上是從手算演變過來,符號位單獨處理。 兩個原碼表示的數相乘,它的運算規(guī)則是: 乘積的符號位 = 兩數的符號相異或 乘積 = 兩數的絕對值相乘 設 n 位被乘數X 和 乘數Y 用定點小數表示(定點整數同樣) 被乘數: X原 = Xf . Xn-1 X1 X0 乘數: Y原 = Yf . Yn-1 Y1 Y0 乘積符號: Xf Yf 乘積:|X| |Y| Z原= ( Xf Yf ) + (0.Xn-1 X1 X0) (0.Yn-1 Y1 Y0) 于是原碼與原碼相乘就變成如何進行兩個正數相乘的問題了。,3.1、原碼一位乘法,設 X = 0.1
8、101, Y = - 0.1011。 讓我們先用習慣的筆算方法求其乘積,其過程如下:,0 . 1101 乘數 X(4位) 0 . 1011 被乘數 Y(4位) 0 . 1101 0 . 1101 0 . 0000 + 0 . 1101 0 . 10001111 乘積 Z(8位),3.1、原碼一位乘法,注意:原碼的符號位單獨處理。, XY 原 = 1 . 10001111,手算方法存在的問題: 1、小數點是移動的。 2、常規(guī)加法器中, 一次只能進行兩個數相加, 無法解決n個數一次性相加。 3、n位數相乘用2n-1位加法器。 所以需要解決的問題: 1、小數點固定。 2、一次只進行兩個數相加。 3、
9、由n位加法器完成。,3.1、原碼一位乘法,3.1、原碼一位乘法,算法改造: X Y = X * 0.1011 = X *(0.1+0.00+0.001+0.0001) = 0.1*X + 0.00*X + 0.001*X + 0.0001*X = 0.1 X+ 0.0*X + 0.01*X + 0.001*X = 0.1 X + 0.1 0 + 0.1*X + 0.01*X = 0.1 X + 0.1 0 + 0.1 X + 0.1*(X+0) 0.1 = 2-1 對應操作:右移一位。 XY = 2-1 X + 2-1 0 + 2-1 X + 2-1(X+0),0 . 00000 + 0 .
10、1101 +X 0 . 1101X+0 0 . 0110 12-1 (X+0) + 0 . 1101+X 1 . 0011 1X+2-1 (X+0) 0 . 1001 11 2-1 (X+2-1 (X+0) + 0 . 0000+0 0 . 1001 110+2-1 (X+2-1 (X+0) 0 . 0100 1112-10+2-1 (X+2-1 (X+0) + 0 . 1101+X 1 . 0001 111X+ 2-10+2-1 (X+2-1 (X+0) 0 . 1000 11112-1X+ 2-10+2-1 (X+2-1 (X+0),設: X = 0.1101, Y = - 0.1011。
11、 XY = 2-1 X + 2-1 0 + 2-1 X + 2-1(X+0) 步驟如下:,3.1、原碼一位乘法,1,1,0,1,Y, XY 原 = 1 . 10001111,改造算法以后分析: 1、小數點固定了。 2、一次只進行兩個數相加。 3、由于相加在高n位進行,所以只設n位加法器就可以了。 上述三個問題得到了解決。 但是只能說這個算法可行,如果引入計算機執(zhí)行, 還要與計算機的具體實現(xiàn)電路相結合。 考慮電路執(zhí)行效率:用的電路器件越少越好。,3.1、原碼一位乘法,實施方案: 1、運算法則: 若 Yi =1 則 +X; 若 Yi =0 則 +0。 說明 Yi 起到判斷運算的作用,運算后,Y 的
12、值無需保留。 這樣,可以將 Yi 判斷操作固定在最低位, 即要求乘數Y每完成一步操作,右移一位。 2、由于相加在高 n 位進行,乘積右移出的低位部分, 可存入乘數Y的寄存器高位空出部分。 3、為了在機器中實現(xiàn)乘法運算,運算器必須設置三個寄存器 A、B、C。 寄存器 A 存放部分積XY(初始為 0,最后存放乘積的高位部分) 寄存器 B 存放被乘數 X(運算過程中不變) 寄存器 C 存放乘數 Y(判斷后不再保留,最后存放乘積的低位部分),3.1、原碼一位乘法,1,1,0,1,Y,0 . 00000 + 0 . 1101 +X 0 . 1101X+0 0 . 0110 12-1 (X+0) + 0
13、. 1101+X 1 . 0011 1X+2-1 (X+0) 0 . 1001 11 2-1 (X+2-1 (X+0) + 0 . 0000+0 0 . 1001 110+2-1 (X+2-1 (X+0) 0 . 0100 1112-10+2-1 (X+2-1 (X+0) + 0 . 1101+X 1 . 0001 111X+ 2-10+2-1 (X+2-1 (X+0) 0 . 1000 11112-1X+ 2-10+2-1 (X+2-1 (X+0),設: X = 0.1101, Y = - 0.1011。,3.1、原碼一位乘法,1,1,0,1,1,0,1,1,0,1,1,1,1,1,1,1,
14、1,1,1,1,Y,Y最初是乘數,最后是積的低位部分。, XY 原 = 1 . 10001111,1,1,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,3.1、原碼一位乘法,0,0,0,0,0,1,1,0,1,0,0,1,0,0,1,0,0,0,0,1,部分乘A積初始=0,設: X = 0.1101, Y = 1.1011。 (絕對值相乘),符號位 = 0 1 = 1,ALU,0,0,0,寄存器A,1,1,0,1,寄存器C(Y),1,0,1,1,寄存器B(X),Cn=1,+X,Cn=1,+X,Cn=0,+0,Cn=1,+X,0,當堂做題,實現(xiàn)原碼一位乘法的邏輯電路框圖
15、,X = 1101,Y = 1011 X*Y低位: 1111,X = 0.1101 被乘數 Y = 0.1011 乘數 X*Y =0.10001111,X*Y 初始: 0000 X*Y 高位: 1000,Yn判斷位,Yn判斷位,X = 0.1101 被乘數,Y = - 0.1011 乘數,X*Y = 1.10001111 1、A寄存器被清零,作為初始部分積XY。 被乘數X放在 B寄存器中,乘數Y放在 C寄存器中。 2、給出控制命令 AALU 和 BALU, 在ALU完成部分積XY+被乘數X。 3、ALU的輸出經過移位電路向右移一位送入 A寄存器中。 4、C寄存器是用移位寄存器實現(xiàn)的,最低位為B
16、ALU的控制命令。 相乘之積最低一位的值右移時將移入C寄存器的最高數值位, 使相乘之積的低位部分保存進C寄存器中,原乘數Y逐位丟失。,3.1、原碼一位乘法,第六章 計算機的運算方法,3、定點乘法運算 3.1、原碼一位乘法 3.2、補碼一位乘法(重點:布斯乘法) 3.3、補碼兩位乘法 3.4、陣列乘法器,方法:充當計算機! 嚴格按照運算法則去做, 不加思考,態(tài)度認真, 保證結果正確。,1)校正法 采用補碼后,正數的補碼與原碼相同,算法可以相同。 負數的補碼與原碼不同,所以不能套用原碼一位乘法法則。 是否可以將補碼按照原碼一位法則運算,然后對乘的結果進行校 正,得到正確的XY補?,X補=X0. X
17、1 X2 Xn Y補=Y0. Y1 Y2 Yn ( X0 Y0 為符號位 ) X*Y補 = X補 * (0. Y1 Y2 Yn )+ -X補* Y0 X符號任意,Y0 X * Y 補 = X補 * Y補 (算法與原碼相同) X符號任意,Y0 X * Y 補 = X補 * (0. Y1 Y2 Yn )+ -X補,3.2、補碼一位乘法,00 . 0000 設部分乘積A=0 + 00 . 1101 Yn=1,+X補 00 . 1101 00 . 0110 1 A、C 同時右移一位 + 00 . 0000 Yn=0,+0 00 . 0110 00 . 0011 01 A、C 同時右移一位 + 00 .
18、 1101 Yn=1,+X補 01 . 0000 00 . 1000 001 A、C 同時右移一位 + 00 . 0000 Yn=0, 00 . 1000 00 . 0100 0001 A、C 同時右移一位 + -X補 11 . 0011 XY補= 11 . 0111 0001,設: X原 = 0.1101,Y原 = 1.1011。 XY原 = 1 . 1000 1111 X補 = 0.1101,Y補 = 1.0101。 XY補 = 1 . 0111 0001 = |X|Y|+ -X補,3.2、補碼一位乘法,補碼運算的符號位不用單獨處理。,因為現(xiàn)在的計算機都是補碼運算,所以不用校正法,用比較法
19、, 但是講校正法要在比較法的基礎上才好理解,所以先講校正法。 2) 比較法(難點 、重點) 比較法是由 布斯 (Booth)夫婦提出的,故有稱為Booth乘法。 校正法由公式: X補 * Y補 = X補 * (0. Y1 Y2 Yn )+ -X補* Y0 進一步推倒變換,按機器執(zhí)行順序求出每一步的部分積如下:,3.2、補碼一位乘法,Z0補=0 Z1補= 2-1 Z0補 + (Yn+1-Yn)X補 設:Yn+1=0 Z2補= 2-1 Z1補 + (Yn-Yn-1)X補 Zn補= 2-1 Zn-1補 + (Y2-Y1)X補 所以:XY補 = Zn+1補=Zn補 + (Y1-Y0)X補,根據以上公式
20、,在機器中具體實現(xiàn)時要做適當修正。 比較乘數Y相鄰兩位Yn+1 和 Yn,于是補碼一位乘法法則為: 判斷位 Yi Yi+1 操作內容 00部分積 + 0,右移1位 11部分積 + 0,右移1位 10部分積 +-X補,右移1位 01部分積 +X補,右移1位,1) 被乘數 X 與 部分積 P 取雙符號位,符號位一并參加運算。 2) 乘數 Y 末增設 Yn+1=0 ;根據Yn,Yn+1判斷位,進行n+1步加 法,最后一步不移位。 3) 設部分積初值=0。,3.2、補碼一位乘法,補碼右移 前面補符號位,X補 = 00.11011 -X補 = 11.00101 Y補 = 1.101110 部分積初始=0
21、 乘數Y 設Yn+1=0判斷 YnYn+1 00.00000 11011100 + 00.0000000 : +0 00.00000 00.00000 0 1101110 + 11.00101 10:+ -X補 11.00101 11.10010 10 110111 + 00.0000011 : + 0 11.10010 11.11001 010 11011 + 00.00000 11:+0 11.11001 11.11100 1010 1101 + 00.11011 01 : + X補 00.10111 00.01011 11010110 + 11.00101 10:+ -X補 11.100
22、00 11.11000 01101011 11:+0,A,C,Yn Yn+1,LDR0,LDR1,+,B,原碼,反碼,&,Yn,Yn+1,&,Yn,Yn+1,+1,多路開關,被乘數X,乘數Y 積的低位部分,部分積X*Y 積的高位部分,01,10,步數計數器,3.2、補碼一位乘法,ALU,第六章 計算機的運算方法,3、定點乘法運算 3.1、原碼一位乘法 3.2、補碼一位乘法 3.3、補碼兩位乘法 3.4、陣列乘法器,方法:充當計算機! 嚴格按照運算法則去做, 不加思考,態(tài)度認真, 保證結果正確。,將補碼一位乘法(比較法)合成兩步進而得補碼兩位乘法法則為:,3.3、補碼兩位乘法,1)初始設置:設部分積為0,Yn+1=0 2)符號參加運算:設置部分積與被乘數三個符號位。 乘數Y數值位數n為偶數設兩個符號位;為奇數設一個符號位; 3)運算步驟:根據 Yn-1, Yn, Y n+1 判斷操作; 4)最后一步:乘數Y數值位數n為
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)員工培訓與職業(yè)發(fā)展目標路徑素質制度
- 企業(yè)成本控制制度
- 2026湖北省定向哈爾濱工業(yè)大學選調生招錄備考題庫附答案
- 2026福建省面向蘭州大學選調生選拔工作參考題庫附答案
- 會議風險評估與應對措施制度
- 2026貴州黔東南州特種設備檢驗所招聘備考題庫附答案
- 2026重慶奉節(jié)縣石崗鄉(xiāng)委員會公開選聘村(社區(qū))后備干部25人參考題庫附答案
- 2026陜西省面向中央民族大學招錄選調生備考題庫附答案
- 2026青海西寧市消防救援支隊招聘54人參考題庫附答案
- 中共雅安市委辦公室互聯(lián)網信息中心2025年公開選調事業(yè)人員的(2人)參考題庫附答案
- 剪刀車專項施工方案
- 授信合同與借款合同(標準版)
- 2024-2025學年四川省綿陽市七年級(上)期末數學試卷
- SF-36評估量表簡介
- 道路清掃保潔、垃圾收運及綠化服務方案投標文件(技術標)
- 合成藥物催化技術
- 河南省三門峽市2024-2025學年高二上學期期末調研考試英語試卷(含答案無聽力音頻及聽力原文)
- 【語文】福建省福州市烏山小學小學三年級上冊期末試題(含答案)
- 建立鄉(xiāng)鎮(zhèn)衛(wèi)生院孕情第一時間發(fā)現(xiàn)制度或流程
- 睡眠科普課課件
- 2025年中級衛(wèi)生職稱-主治醫(yī)師-放射醫(yī)學(中級)代碼:344歷年參考題庫含答案解析(5卷)
評論
0/150
提交評論