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

下載本文檔

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

文檔簡(jiǎn)介

運(yùn)算方法與運(yùn)算器計(jì)算機(jī)組成與體系結(jié)構(gòu)定點(diǎn)運(yùn)算及其運(yùn)算器定點(diǎn)加減法補(bǔ)碼加法:[X

Y]補(bǔ)

[X]補(bǔ)

[Y]補(bǔ)

補(bǔ)碼減法:[X

Y]補(bǔ)

[X]補(bǔ)

[

Y]補(bǔ)

由[Y]補(bǔ)求[

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

一位8421-BCD十進(jìn)制加法器

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

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

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

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

標(biāo)志位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無符號(hào)乘法陣列求補(bǔ)器

使用求補(bǔ)器實(shí)現(xiàn)帶符號(hào)乘法無符號(hào)數(shù)除法除數(shù)部分余部分余商被除數(shù)余數(shù)除數(shù)定點(diǎn)除法的一般性原則定點(diǎn)小數(shù)除法除數(shù)≠0|被除數(shù)|<|除數(shù)|位數(shù)關(guān)系被除數(shù)2n位除數(shù)n位商n位余數(shù)n位定點(diǎn)除法運(yùn)算規(guī)則恢復(fù)余數(shù)法:進(jìn)行每一步運(yùn)算時(shí),不論是否夠減,都將被除數(shù)(或余數(shù))減去除數(shù),若所得符號(hào)位為0(即為正數(shù))表明夠減,上商1,左移一位再做下一步運(yùn)算;若余數(shù)符號(hào)為為1(即為負(fù)數(shù))表明不夠減,因此上商0,由于已做減法,因此要把除數(shù)加回去(恢復(fù)余數(shù)),然后余數(shù)左移一位再做下一步運(yùn)算。加減交替法:當(dāng)余數(shù)為正時(shí),商1,余數(shù)左移一位,減除數(shù);當(dāng)余數(shù)為負(fù)時(shí),商0,余數(shù)左移一位,加除數(shù)。原碼加減交替除法硬件結(jié)構(gòu)圖原碼加減交替除法流程補(bǔ)碼加減交替法運(yùn)算規(guī)則[R]補(bǔ)與[y]補(bǔ)商新余數(shù)[Ri+1]補(bǔ)同號(hào)1[Ri+1]補(bǔ)=2[Ri]補(bǔ)+[-y]補(bǔ)異號(hào)0[Ri+1]補(bǔ)=2[Ri]補(bǔ)+[y]補(bǔ)補(bǔ)碼加減交替除法流程可控加法/減法單元(CAS)除法陣列算術(shù)/邏輯單元(ALU)算術(shù)/邏輯單元(ALU)是計(jì)算機(jī)實(shí)際完成數(shù)據(jù)算術(shù)和邏輯運(yùn)算的部分,是運(yùn)算器的核心部件ALU寄存器寄存器控制器標(biāo)志ALU組成需要考慮的問題ALU多功能的實(shí)現(xiàn)二進(jìn)制加減法器只能進(jìn)行算術(shù)運(yùn)算,而不能進(jìn)行邏輯運(yùn)算ALU實(shí)現(xiàn)快速運(yùn)算的方法行波進(jìn)位速度慢計(jì)算的位數(shù)與計(jì)算時(shí)間成正比多功能運(yùn)算的實(shí)現(xiàn)不將輸入直接進(jìn)行全加,而是先組合成由控制參數(shù)控制的組合函數(shù),然后再進(jìn)行全加74181控制參數(shù)與輸入量S0S1YiS2S3Xi00001010110101101174181功能表74181邏輯表達(dá)式化簡(jiǎn),得代入一位全加器的邏輯表達(dá)式得到先行進(jìn)位的實(shí)現(xiàn)將低位進(jìn)位直接傳送到最高進(jìn)位上去行波進(jìn)位公式:先行進(jìn)位公式:四位先行進(jìn)位ALU74181(1)四位先行進(jìn)位ALU74181(2)74181邏輯結(jié)構(gòu)多級(jí)先行進(jìn)位以74181為例,上述進(jìn)位公式可改寫為其中成組先行進(jìn)位邏輯成組先行進(jìn)位實(shí)例內(nèi)部總線單總線結(jié)構(gòu)雙總線結(jié)構(gòu)三總線結(jié)構(gòu)單總線結(jié)構(gòu)雙總線結(jié)構(gòu)三總線結(jié)構(gòu)功能簡(jiǎn)單的運(yùn)算器結(jié)構(gòu)單總線移位乘除運(yùn)算器三總線陣列乘除法運(yùn)算器結(jié)構(gòu)浮點(diǎn)運(yùn)算及其運(yùn)算器浮點(diǎn)運(yùn)算的溢出階碼上溢(Exponentoverflow)+∞或-∞階碼下溢(Exponentunderflow)0尾數(shù)下溢(Significandunderflow)左移,規(guī)格化,舍入尾數(shù)上溢(Significandoverflow)右移,規(guī)格化浮點(diǎn)數(shù)加減運(yùn)算方法0操作數(shù)檢查對(duì)階大階向小階看齊小階向大階看齊尾數(shù)加減舍入與規(guī)格化處理判溢出示例假設(shè)浮點(diǎn)數(shù)階碼、尾數(shù)均用補(bǔ)碼表示,階碼采用雙符號(hào)位,尾數(shù)采用單符號(hào)位,x=2010×0.11011011,y=2100×(-0.10101100),求x+y浮點(diǎn)表示分別為:x=000100.11011011y=001001.01010100(1)對(duì)階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ù)運(yùn)算結(jié)果的符號(hào)位與最高數(shù)值位為同值,應(yīng)執(zhí)行左規(guī)處理,結(jié)果為1.00010101(1),階碼為00011。(4)舍入處理采用0舍1入法處理,則應(yīng)進(jìn)1,結(jié)果為1.00010110。(5)判斷溢出階碼符號(hào)位為00,不溢出,故得最終結(jié)果為:x+y=2011×(-0.11101010)浮點(diǎn)數(shù)乘除運(yùn)算方法0操作數(shù)檢查階碼加減尾數(shù)乘除舍入與規(guī)格化處理判溢出常用的舍入方法截?cái)喾ǎ簩⒂A舻哪┪粩?shù)據(jù)右面的數(shù)據(jù)統(tǒng)統(tǒng)截掉,無論是0還是1。末位恒置1法:將欲保留的末位數(shù)據(jù)恒置1,無論右面是0還是1,也無論現(xiàn)在末位的值是0還是1。以上兩種方法很簡(jiǎn)單,但容易產(chǎn)生積累誤差效應(yīng)。0舍1入法:一種比較合理的方法。但當(dāng)尾數(shù)為0.11…1時(shí),會(huì)造成尾數(shù)溢出,從而需要調(diào)整階碼,使運(yùn)算步驟不規(guī)整。查表法浮點(diǎn)運(yùn)算器floatingpointunit,FPU浮點(diǎn)運(yùn)算器通常由處理階碼的和處理尾數(shù)的兩個(gè)定點(diǎn)運(yùn)算器線路組成在早期的小或微型機(jī)中,浮點(diǎn)運(yùn)算器通常以任選件方式提供給用戶,主要用于計(jì)算浮點(diǎn)數(shù)在現(xiàn)代架構(gòu)中,CPU內(nèi)置FPU,浮點(diǎn)運(yùn)算功能會(huì)與SIMD(單指令流多數(shù)據(jù)流)計(jì)算集成在一起SSE指

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論