計算機組成與體系結(jié)構(gòu) 課件 07運算方法與運算器_第1頁
計算機組成與體系結(jié)構(gòu) 課件 07運算方法與運算器_第2頁
計算機組成與體系結(jié)構(gòu) 課件 07運算方法與運算器_第3頁
計算機組成與體系結(jié)構(gòu) 課件 07運算方法與運算器_第4頁
計算機組成與體系結(jié)構(gòu) 課件 07運算方法與運算器_第5頁
已閱讀5頁,還剩60頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

運算方法與運算器計算機組成與體系結(jié)構(gòu)定點運算及其運算器定點加減法補碼加法:[X

Y]補

[X]補

[Y]補

補碼減法:[X

Y]補

[X]補

[

Y]補

由[Y]補求[

Y]補補:求一個數(shù)相反數(shù)的補碼只需連符號在內(nèi)依次按位取反,末位加1即可補碼加減運算的規(guī)則參加運算的操作數(shù)用補碼表示。補碼的符號位與數(shù)值位同時進行加運算。若做加,則兩數(shù)補碼直接相加;若做減,將減數(shù)補碼連同符號位一起按位取反,末位加1,然后再與被減數(shù)相加。運算結(jié)果即為和/差的補碼。溢出所謂溢出是指運算結(jié)果超過了機器數(shù)能表示的范圍結(jié)果大于機器所能表示的最大正數(shù),稱為上溢結(jié)果小于機器所能表示的最小負數(shù),稱為下溢溢出檢測雙符號位法單符號位法一位二進制全加器Ci+1全加器(FA)CiBiSiAi輸入輸出CiAiBiSiCi+10000000110010100110110010101011100111111一位二進制全加器實現(xiàn)Ci+1全加器(FA)CiBiSiAi基本二進制加減法器

一位8421-BCD十進制加法器

多位十進制加法器定點乘除法的實現(xiàn)方式軟件實現(xiàn)指令系統(tǒng)中無乘除法指令程序?qū)崿F(xiàn)硬件實現(xiàn)在加/減法器的基礎(chǔ)上,增加左移、右移位及其他一些邏輯線路實現(xiàn)乘法,指令系統(tǒng)中設(shè)置乘除法指令設(shè)置專用的高速陣列乘除運算器,指令系統(tǒng)中設(shè)置乘除法指令無符號數(shù)乘法被乘數(shù)乘數(shù)部分積乘積原碼一位乘法將被乘數(shù)左移一位相加變?yōu)椴糠址e與被乘數(shù)相加后右移一位將k個部分積同時相加轉(zhuǎn)換為k次“累加與右移”,即每一步只求一位乘數(shù)所對應(yīng)的新部分積,并與原部分積做一次累加,然后右移一次,這樣操作重復(fù)k次,得到最后的乘積一位乘示例原碼一位乘硬件結(jié)構(gòu)圖原碼一位乘流程Booth算法流程Booth算法舉例【例】X=-5(1011),Y=-3(1101),用Booth算法求X·Y。解:[-X]補=0101部分積Q0Q-1說明0000

運算開始,初始Q-1=001010010110+[-X]補算術(shù)右移1101111101101+[X]補算術(shù)右移001111000111110+[-X]補算術(shù)右移0000111111直接算術(shù)右移[X·Y]補=00001111=+15

原碼兩位乘法乘數(shù)yn-1yn

新的部分積00等于原部分積右移兩位01等于原部分積加被乘數(shù)后右移兩位10等于原部分積加2倍被乘數(shù)后右移兩位11等于原部分積加3倍被乘數(shù)后右移兩位原碼兩位乘法運算規(guī)則乘數(shù)判斷位yn-1yn

標志位Cj

操作內(nèi)容

000z→2,y→2,Cj保持“0”010z+x→2,y→2,Cj保持“0100z+2x→2,y→2,Cj保持“0”110z-x→2,y→2,置“1”Cj001z+x→2,y→2,置“0”Cj011z+2x→2,y→2,置“0”Cj101z-x→2,y→2,Cj保持“1”111z→2,y→2,Cj保持“1”5×5無符號乘法陣列求補器

使用求補器實現(xiàn)帶符號乘法無符號數(shù)除法除數(shù)部分余部分余商被除數(shù)余數(shù)除數(shù)定點除法的一般性原則定點小數(shù)除法除數(shù)≠0|被除數(shù)|<|除數(shù)|位數(shù)關(guān)系被除數(shù)2n位除數(shù)n位商n位余數(shù)n位定點除法運算規(guī)則恢復(fù)余數(shù)法:進行每一步運算時,不論是否夠減,都將被除數(shù)(或余數(shù))減去除數(shù),若所得符號位為0(即為正數(shù))表明夠減,上商1,左移一位再做下一步運算;若余數(shù)符號為為1(即為負數(shù))表明不夠減,因此上商0,由于已做減法,因此要把除數(shù)加回去(恢復(fù)余數(shù)),然后余數(shù)左移一位再做下一步運算。加減交替法:當余數(shù)為正時,商1,余數(shù)左移一位,減除數(shù);當余數(shù)為負時,商0,余數(shù)左移一位,加除數(shù)。原碼加減交替除法硬件結(jié)構(gòu)圖原碼加減交替除法流程補碼加減交替法運算規(guī)則[R]補與[y]補商新余數(shù)[Ri+1]補同號1[Ri+1]補=2[Ri]補+[-y]補異號0[Ri+1]補=2[Ri]補+[y]補補碼加減交替除法流程可控加法/減法單元(CAS)除法陣列算術(shù)/邏輯單元(ALU)算術(shù)/邏輯單元(ALU)是計算機實際完成數(shù)據(jù)算術(shù)和邏輯運算的部分,是運算器的核心部件ALU寄存器寄存器控制器標志ALU組成需要考慮的問題ALU多功能的實現(xiàn)二進制加減法器只能進行算術(shù)運算,而不能進行邏輯運算ALU實現(xiàn)快速運算的方法行波進位速度慢計算的位數(shù)與計算時間成正比多功能運算的實現(xiàn)不將輸入直接進行全加,而是先組合成由控制參數(shù)控制的組合函數(shù),然后再進行全加74181控制參數(shù)與輸入量S0S1YiS2S3Xi00001010110101101174181功能表74181邏輯表達式化簡,得代入一位全加器的邏輯表達式得到先行進位的實現(xiàn)將低位進位直接傳送到最高進位上去行波進位公式:先行進位公式:四位先行進位ALU74181(1)四位先行進位ALU74181(2)74181邏輯結(jié)構(gòu)多級先行進位以74181為例,上述進位公式可改寫為其中成組先行進位邏輯成組先行進位實例內(nèi)部總線單總線結(jié)構(gòu)雙總線結(jié)構(gòu)三總線結(jié)構(gòu)單總線結(jié)構(gòu)雙總線結(jié)構(gòu)三總線結(jié)構(gòu)功能簡單的運算器結(jié)構(gòu)單總線移位乘除運算器三總線陣列乘除法運算器結(jié)構(gòu)浮點運算及其運算器浮點運算的溢出階碼上溢(Exponentoverflow)+∞或-∞階碼下溢(Exponentunderflow)0尾數(shù)下溢(Significandunderflow)左移,規(guī)格化,舍入尾數(shù)上溢(Significandoverflow)右移,規(guī)格化浮點數(shù)加減運算方法0操作數(shù)檢查對階大階向小階看齊小階向大階看齊尾數(shù)加減舍入與規(guī)格化處理判溢出示例假設(shè)浮點數(shù)階碼、尾數(shù)均用補碼表示,階碼采用雙符號位,尾數(shù)采用單符號位,x=2010×0.11011011,y=2100×(-0.10101100),求x+y浮點表示分別為:x=000100.11011011y=001001.01010100(1)對階x的階碼小,應(yīng)使x的尾數(shù)右移2位,x的階碼加2x=001000.00110110(11)其中(11)表示x的尾數(shù)右移2位后移出的最低兩位數(shù)。(2)尾數(shù)求和0.00110110(11)

1.01010100

1.10001010(11)(3)規(guī)格化處理尾數(shù)運算結(jié)果的符號位與最高數(shù)值位為同值,應(yīng)執(zhí)行左規(guī)處理,結(jié)果為1.00010101(1),階碼為00011。(4)舍入處理采用0舍1入法處理,則應(yīng)進1,結(jié)果為1.00010110。(5)判斷溢出階碼符號位為00,不溢出,故得最終結(jié)果為:x+y=2011×(-0.11101010)浮點數(shù)乘除運算方法0操作數(shù)檢查階碼加減尾數(shù)乘除舍入與規(guī)格化處理判溢出常用的舍入方法截斷法:將欲保留的末位數(shù)據(jù)右面的數(shù)據(jù)統(tǒng)統(tǒng)截掉,無論是0還是1。末位恒置1法:將欲保留的末位數(shù)據(jù)恒置1,無論右面是0還是1,也無論現(xiàn)在末位的值是0還是1。以上兩種方法很簡單,但容易產(chǎn)生積累誤差效應(yīng)。0舍1入法:一種比較合理的方法。但當尾數(shù)為0.11…1時,會造成尾數(shù)溢出,從而需要調(diào)整階碼,使運算步驟不規(guī)整。查表法浮點運算器floatingpointunit,FPU浮點運算器通常由處理階碼的和處理尾數(shù)的兩個定點運算器線路組成在早期的小或微型機中,浮點運算器通常以任選件方式提供給用戶,主要用于計算浮點數(shù)在現(xiàn)代架構(gòu)中,CPU內(nèi)置FPU,浮點運算功能會與SIMD(單指令流多數(shù)據(jù)流)計算集成在一起SSE指

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論