計算機組成原理08-計算機的運算方法.ppt

上傳人:max****ui 文檔編號:15346396 上傳時間:2020-08-08 格式:PPT 頁數(shù):38 大小:992.31KB
收藏 版權(quán)申訴 舉報 下載
計算機組成原理08-計算機的運算方法.ppt_第1頁
第1頁 / 共38頁
計算機組成原理08-計算機的運算方法.ppt_第2頁
第2頁 / 共38頁
計算機組成原理08-計算機的運算方法.ppt_第3頁
第3頁 / 共38頁

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《計算機組成原理08-計算機的運算方法.ppt》由會員分享,可在線閱讀,更多相關(guān)《計算機組成原理08-計算機的運算方法.ppt(38頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、,系 統(tǒng) 總 線,存儲器,運算器,控制器,接口與通信,輸入/輸出設(shè)備,,,,,,,, 計算機組成原理 ,第六章 計算機的運算方法,運算器的基本結(jié)構(gòu):(P 281-283) ALU、移位門、寄存器組、 輸入選擇門和數(shù)據(jù)總線組成。 問題1、ALU電路沒有記憶功能。 參與運算的數(shù)、運算的結(jié)果放那里? (A+B)+(C+D) 答:存放在寄存器組(多個寄存器)中。 問題2、ALU兩個參加運算數(shù)與一個運算結(jié)果。 一次只有兩個數(shù)參加運算, 究竟讓哪個寄存器參加工作呢? 答:要進行選擇(選擇門電路)。,移位門,ALU,,選擇門 A,選擇門 B,通用 寄存器組,,,,,,,,,,,

2、,,,,,數(shù)據(jù)總線,數(shù)據(jù)總線,運算器基本結(jié)構(gòu)框圖,參加運算的數(shù) X,Y 參加運算的數(shù),運算結(jié)果,Review: 第六章 計算機的運算方法,1、 數(shù)據(jù)的表示方式 1.1、符號的處理(正數(shù)、負數(shù)) 1.2、數(shù)值的處理(數(shù)制轉(zhuǎn)換) 1.3、小數(shù)點的處理(定點、浮點) 1.4、原碼的表示方法 1.5、反碼的表示方法 1.6、補碼的表示方法(重點研究) 1.7、移碼的表示方法 1.8、字符、漢字的表示方法( ASCII 碼、內(nèi)碼) 1.9、校驗碼(奇偶校驗、海明威校驗、CRC校驗),,機器數(shù)的 表示方法,,實際數(shù)的 表示方法,研究在機器中怎樣用二進制表示十進制數(shù),研究哪種機器數(shù)

3、的表示方法更利簡化運算,Review: 第六章 計算機的運算方法,2、定點加、減法運算與實現(xiàn) 2.1、補碼定點加、減運算(減法通過加法來實現(xiàn)) 2.2、溢出概念與檢測方法(數(shù)值超出了表示范圍) 2.3、補碼定點加法器,注釋: 前面我們討論了數(shù)的補碼表示方法,采用補碼表示,減法可用加法來實現(xiàn),對設(shè)計硬件來講,只要設(shè)計一個加法器就可以實現(xiàn)加、減運算了,不需要再配一個減法器了。,Review: 第六章 計算機的運算方法,CPA,2.3、補碼定點加法器,+A,+B,- B,,,,實現(xiàn)加法運算的邏輯示例,,,,,,,,,,,,,,A+B A AB A,,,Q,/Q,延遲時間 與非1T 或非1T 與

4、門2T 或門2T 異或3T 異或非3T,,關(guān)于設(shè)計電路的延遲時間,擴充:提高電路運算效率,一位全加器,對一位全加器來說,和Fn的時間延遲為 3T+3T=6T。 設(shè)計電路時,電路總的延遲時間應(yīng)該越小越好。,擴充:提高電路運算效率,Review:加法器,超前進位加法器(當前計算機中使用的) 從加快進位信號的傳送速度考慮,可以實現(xiàn)多位的并行進位。 即各位之間幾乎同時產(chǎn)生送到高位的進位輸出信號。 采用“超前進位產(chǎn)生電路”來同時形成各位進位,從而實現(xiàn)快速加法。,,,,,,,,,,,,,,,,,,只要同時輸入X1X4,Y1Y4和C0,幾乎同時輸出C14和F1F4。,用四片4位ALU電路可組成16位ALU。

5、(1110 1101 0101 0001) 片內(nèi)進位是并行快速的,但片間進位是串行慢速的,計算時間長。,Review:算術(shù)邏輯單元,把16位ALU中的每四位作為一組,用類似四位超前進位加法器 “位間快速進位” 的方法來實現(xiàn)16位ALU的 “組間快速進位” 。,,,,,,,,,,,,,,16位快速ALU,,第六章 計算機的運算方法,3、定點乘法運算 3.1、原碼一位乘法 3.2、補碼一位乘法 3.3、補碼兩位乘法 3.4、陣列乘法器,注釋: 前面講的內(nèi)容幫助同學們打開思路:怎么設(shè)計運算器; 機器數(shù)采用什么表示(原、反、補)對運算最有利。 硬件設(shè)計時,還要考慮提高硬件運算速度。 所以,講乘除法要逐

6、漸從提高計算機的運算速度來考慮。,乘法運算可以通過硬件實現(xiàn),也可以通過軟件來實現(xiàn); 硬件實現(xiàn)乘法是以加法器為基礎(chǔ)逐步累加而成。 1)、軟件方法:通過乘法子程序,把乘法編程為累次加法運算, 從而在加法器中實現(xiàn)。該方法經(jīng)濟,但運算速度慢。 2)、硬件方法: A、在加法器中增加一些移位和控制部件來實現(xiàn)。 這種方法在早期的計算機采用。 B、隨著大規(guī)模集成電路的發(fā)展,現(xiàn)在設(shè)計了陣列乘法器。 設(shè)置專門的多位乘法部件。,3、定點乘法運算,,根據(jù)數(shù)的表示方法,乘法器又有: 原碼乘法器,補碼乘法器。 原碼實現(xiàn)乘法運算方法簡單, 補碼實現(xiàn)加/減運算比較簡單。 在以加/減運

7、算為主的機器中多采用補碼乘法器。 下面分別介紹原碼、補碼乘法。,3、定點乘法運算,,,第六章 計算機的運算方法,3、定點乘法運算 3.1、原碼一位乘法 3.2、補碼一位乘法 3.3、補碼兩位乘法 3.4、陣列乘法器,注釋: 書上講的原碼兩位乘法在計算機中不是那么實現(xiàn)的, 所以該算法不做推廣,不講了。,原碼一位乘法基本上是從手算演變過來,符號位單獨處理。 兩個原碼表示的數(shù)相乘,它的運算規(guī)則是: 乘積的符號位 = 兩數(shù)的符號相異或 乘積 = 兩數(shù)的絕對值相乘 設(shè) n 位被乘數(shù)X 和 乘數(shù)Y 用定點小數(shù)表示(定點整數(shù)同樣) 被乘數(shù): X原 = Xf . Xn-1 X1 X0 乘數(shù)

8、: Y原 = Yf . Yn-1 Y1 Y0 乘積符號: Xf Yf 乘積:|X| |Y| Z原= ( Xf Yf ) + (0.Xn-1 X1 X0) (0.Yn-1 Y1 Y0) 于是原碼與原碼相乘就變成如何進行兩個正數(shù)相乘的問題了。,3.1、原碼一位乘法,,,設(shè) X = 0.1101, Y = - 0.1011。 讓我們先用習慣的筆算方法求其乘積,其過程如下:,0 . 1101 乘數(shù) X(4位) 0 . 1011 被乘數(shù) Y(4位) 0 . 1101 0 . 1101 0 . 0000 + 0 . 1101 0 . 100011

9、11 乘積 Z(8位),,,3.1、原碼一位乘法,注意:原碼的符號位單獨處理。, XY 原 = 1 . 10001111,手算方法存在的問題: 1、小數(shù)點是移動的。 2、常規(guī)加法器中, 一次只能進行兩個數(shù)相加, 無法解決n個數(shù)一次性相加。 3、n位數(shù)相乘用2n-1位加法器。 所以需要解決的問題: 1、小數(shù)點固定。 2、一次只進行兩個數(shù)相加。 3、由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

10、 + 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 對應(yīng)操作:右移一位。 XY = 2-1 X + 2-1 0 + 2-1 X + 2-1(X+0),,0 . 00000 + 0 . 1101 +X 0 . 1101X+0 0 . 0110 12-1 (X+0) + 0 . 1101+X 1 . 0011 1X+

11、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),,,,,設(shè): X = 0.1101, Y = - 0.1011。 XY = 2-1 X

12、 + 2-1 0 + 2-1 X + 2-1(X+0) 步驟如下:,3.1、原碼一位乘法,,1,1,0,1,,,,,Y, XY 原 = 1 . 10001111,改造算法以后分析: 1、小數(shù)點固定了。 2、一次只進行兩個數(shù)相加。 3、由于相加在高n位進行,所以只設(shè)n位加法器就可以了。 上述三個問題得到了解決。 但是只能說這個算法可行,如果引入計算機執(zhí)行, 還要與計算機的具體實現(xiàn)電路相結(jié)合。 考慮電路執(zhí)行效率:用的電路器件越少越好。,3.1、原碼一位乘法,實施方案: 1、運算法則: 若 Yi =1 則 +X; 若 Yi =0 則 +0。 說明 Yi 起到判斷運算的作用,運算后,Y 的

13、值無需保留。 這樣,可以將 Yi 判斷操作固定在最低位, 即要求乘數(shù)Y每完成一步操作,右移一位。 2、由于相加在高 n 位進行,乘積右移出的低位部分, 可存入乘數(shù)Y的寄存器高位空出部分。 3、為了在機器中實現(xiàn)乘法運算,運算器必須設(shè)置三個寄存器 A、B、C。 寄存器 A 存放部分積XY(初始為 0,最后存放乘積的高位部分) 寄存器 B 存放被乘數(shù) X(運算過程中不變) 寄存器 C 存放乘數(shù) Y(判斷后不再保留,最后存放乘積的低位部分),3.1、原碼一位乘法,1,1,0,1,Y,,0 . 00000 + 0 . 1101 +X 0 . 1101X+0 0 .

14、 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),,,,,設(shè): X = 0.1101

15、, Y = - 0.1011。,3.1、原碼一位乘法,,1,1,0,1,,,,,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,Y,Y最初是乘數(shù),最后是積的低位部分。, 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,,設(shè): X = 0.1101, Y = 1.1011。 (絕對值相乘),符號位 = 0 1 = 1,ALU,,0,0,0,寄存器A,1,1,0,1,寄存器C(

16、Y),1,0,1,1,寄存器B(X),,Cn=1,+X,Cn=1,+X,Cn=0,+0,Cn=1,+X,0,,,,,,當堂做題,實現(xiàn)原碼一位乘法的邏輯電路框圖,X = 1101,Y = 1011 X*Y低位: 1111,X = 0.1101 被乘數(shù) Y = 0.1011 乘數(shù) X*Y =0.10001111,X*Y 初始: 0000 X*Y 高位: 1000,,,,,,,,,,,,,,,,,,,,,,Yn判斷位,Yn判斷位,X = 0.1101 被乘數(shù),Y = - 0.1011 乘數(shù),X*Y = 1.10001111 1、A寄存器被清零,作為初始部分積XY。 被乘數(shù)X放在 B寄存器中,乘數(shù)Y

17、放在 C寄存器中。 2、給出控制命令 AALU 和 BALU, 在ALU完成部分積XY+被乘數(shù)X。 3、ALU的輸出經(jīng)過移位電路向右移一位送入 A寄存器中。 4、C寄存器是用移位寄存器實現(xiàn)的,最低位為BALU的控制命令。 相乘之積最低一位的值右移時將移入C寄存器的最高數(shù)值位, 使相乘之積的低位部分保存進C寄存器中,原乘數(shù)Y逐位丟失。,3.1、原碼一位乘法,,第六章 計算機的運算方法,3、定點乘法運算 3.1、原碼一位乘法 3.2、補碼一位乘法(重點:布斯乘法) 3.3、補碼兩位乘法 3.4、陣列乘法器,方法:充當計算機!??! 嚴格按照運算法則去做, 不加思考,態(tài)度認真, 保證結(jié)果正確。,1

18、)校正法 采用補碼后,正數(shù)的補碼與原碼相同,算法可以相同。 負數(shù)的補碼與原碼不同,所以不能套用原碼一位乘法法則。 是否可以將補碼按照原碼一位法則運算,然后對乘的結(jié)果進行校 正,得到正確的XY補?,X補=X0. X1 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符號任意,Y<0 X * Y 補 = X補 * (0. Y1 Y2 Yn )+ -X補,3.2、補碼一位乘法,,00 . 0000 設(shè)部分乘積A

19、=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 . 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補

20、= 11 . 0111 0001,,,,,,設(shè): 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)在的計算機都是補碼運算,所以不用校正法,用比較法, 但是講校正法要在比較法的基礎(chǔ)上才好理解,所以先講校正法。 2) 比較法(難點 、重點) 比較法是由 布斯 (Booth)夫婦提出的,故有稱為Booth乘法。 校正法由公式: X補 *

21、Y補 = X補 * (0. Y1 Y2 Yn )+ -X補* Y0 進一步推倒變換,按機器執(zhí)行順序求出每一步的部分積如下:,3.2、補碼一位乘法,Z0補=0 Z1補= 2-1 Z0補 + (Yn+1-Yn)X補 設(shè):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補,,,根據(jù)以上公式,在機器中具體實現(xiàn)時要做適當修正。 比較乘數(shù)Y相鄰兩位Yn+1 和 Yn,于是補碼一位乘法法則為: 判斷位 Yi Yi+1 操作內(nèi)容 00部分積 + 0,右移1位 11部分

22、積 + 0,右移1位 10部分積 +-X補,右移1位 01部分積 +X補,右移1位,,,,,1) 被乘數(shù) X 與 部分積 P 取雙符號位,符號位一并參加運算。 2) 乘數(shù) Y 末增設(shè) Yn+1=0 ;根據(jù)Yn,Yn+1判斷位,進行n+1步加 法,最后一步不移位。 3) 設(shè)部分積初值=0。,3.2、補碼一位乘法,補碼右移 前面補符號位,X補 = 00.11011 -X補 = 11.00101 Y補 = 1.101110 部分積初始=0 乘數(shù)Y 設(shè)Yn+1=0判斷 YnYn+1 00.00000 11011100 + 00.0000000 : +0 00.00000 00.

23、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.10000 11.11000 01101011 1

24、1:+0,,,,,,,A,,C,,Yn Yn+1,,,,LDR0,LDR1,,,,,,,,,+,,B,,,原碼,反碼,&,,,,,Yn,Yn+1,&,,,Yn,Yn+1,,,,,,+1,多路開關(guān),被乘數(shù)X,乘數(shù)Y 積的低位部分,部分積X*Y 積的高位部分,,01,10,步數(shù)計數(shù)器,3.2、補碼一位乘法,ALU,,,,第六章 計算機的運算方法,3、定點乘法運算 3.1、原碼一位乘法 3.2、補碼一位乘法 3.3、補碼兩位乘法 3.4、陣列乘法器,方法:充當計算機!??! 嚴格按照運算法則去做, 不加思考,態(tài)度認真, 保證結(jié)果正確。,將補碼一位乘法(比較法)合成兩步進而得補碼兩位乘法法則為:,3.3

25、、補碼兩位乘法,1)初始設(shè)置:設(shè)部分積為0,Yn+1=0 2)符號參加運算:設(shè)置部分積與被乘數(shù)三個符號位。 乘數(shù)Y數(shù)值位數(shù)n為偶數(shù)設(shè)兩個符號位;為奇數(shù)設(shè)一個符號位; 3)運算步驟:根據(jù) Yn-1, Yn, Y n+1 判斷操作; 4)最后一步:乘數(shù)Y數(shù)值位數(shù)n為偶數(shù)最后一步不移位;為奇數(shù)最后移一位。,X= - 0.1101 Y= 0.1011 X補 = 111.0011 -X補 = 000.1101 Y補 = 00.1011 部分積初始=0 乘數(shù)Y 設(shè)Yn+1=0判斷 Yn-1YnYn+1 000. 0000 0010110 + 000. 1101 110 : + -X補

26、000. 1101 000. 0011 01 00101 右移兩位 + 000. 1101 101:+ -X補 001. 0000 000. 0100 0001 001 右移兩位 + 111. 0011 001 : + X補 111. 0111 0001 001,,,,,,,,3.3、補碼兩位乘法,XY補= 1 . 01110001,,,第六章 計算機的運算方法,3、定點乘法運算 3.1、原碼一位乘法 3.2、補碼一位乘法 3.3、補碼兩位乘法 3.4、陣列乘法器,早期的計算機中為了簡化硬件電路,串行的一位、二位乘法方案,通過多次“加法-移位”操作來實現(xiàn)。 但是運

27、算速度太慢,遠遠不能滿足科學技術(shù)的計算,所以又提出了 高速乘法器的要求。 由于乘法運算大約占全部運算的1/3,因此采用高速乘法部件,無論從速度還是效率上都十分必要。為了進一步提高乘法運算速度,可采用類似于人工計算的方法。 自大規(guī)模集成電路問世以來,高速陣列乘法器也隨之問世,出現(xiàn)了各種形式的流水式陣列乘法器,它們屬于并行乘法器。串行乘法器已被淘汰。,3.4、陣列乘法器,44無符號陣列乘法電路,X4 X3X2X1X0 Y4 Y3Y2Y1Y0 Z8 Z7Z6Z5Z4Z3Z2Z1Z0,3.4、陣列乘法器 P296,,,,,,,,,,,,,,,,,,,,,,,,,,,,,復(fù)習與作業(yè),復(fù)習章節(jié): 第6章 計算機的運算方法 6.3.3 乘法運算 作業(yè):P291 6.20 6.23,

展開閱讀全文
溫馨提示:
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)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!