第4章數(shù)值的機(jī)器運(yùn)算(2015).ppt_第1頁(yè)
第4章數(shù)值的機(jī)器運(yùn)算(2015).ppt_第2頁(yè)
第4章數(shù)值的機(jī)器運(yùn)算(2015).ppt_第3頁(yè)
第4章數(shù)值的機(jī)器運(yùn)算(2015).ppt_第4頁(yè)
第4章數(shù)值的機(jī)器運(yùn)算(2015).ppt_第5頁(yè)
已閱讀5頁(yè),還剩182頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1,第4章,數(shù)值的 機(jī)器運(yùn)算,2,第4章,了解-Y補(bǔ)的含義和求-Y補(bǔ)的方法 掌握定點(diǎn)加法和減法運(yùn)算方法 了解溢出產(chǎn)生的原因 掌握3種溢出檢測(cè)方法的區(qū)別,特別是雙符號(hào)位補(bǔ)碼判斷溢出的特點(diǎn) 掌握補(bǔ)碼的左移、右移運(yùn)算方法 了解常見(jiàn)的舍入操作方法 理解原碼一位乘法運(yùn)算方法 掌握補(bǔ)碼一位乘法運(yùn)算方法,3,第4章,了解補(bǔ)碼兩位乘法運(yùn)算方法 理解原碼加減交替除法運(yùn)算方法 掌握補(bǔ)碼加減交替除法運(yùn)算方法 理解浮點(diǎn)加、減、乘、除運(yùn)算的過(guò)程 理解一位十進(jìn)制整數(shù)的加法運(yùn)算 理解邏輯運(yùn)算的特點(diǎn) 了解運(yùn)算器的基本結(jié)構(gòu) 掌握典型的ALU芯片(74181、74182) 了解浮點(diǎn)協(xié)處理器的作用,4,第4章,了解串行加法器與并行

2、加法器的區(qū)別 理解進(jìn)位產(chǎn)生和進(jìn)位傳遞的概念 掌握并行加法器不同進(jìn)位方式的特點(diǎn)與區(qū)別,5,第4章,運(yùn)算器是計(jì)算機(jī)進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算的主要部件 運(yùn)算器的邏輯結(jié)構(gòu)取決于機(jī)器的指令系統(tǒng)、數(shù)據(jù)表示方法和運(yùn)算方法等 本章討論數(shù)值數(shù)據(jù)在計(jì)算機(jī)中實(shí)現(xiàn)算術(shù)運(yùn)算和邏輯運(yùn)算的方法,以及運(yùn)算部件的基本結(jié)構(gòu)和工作原理,6,第4章,4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn) 4.2 定點(diǎn)加減運(yùn)算 4.3 帶符號(hào)數(shù)的移位和舍入操作 4.4 定點(diǎn)乘法運(yùn)算 4.5 定點(diǎn)除法運(yùn)算 4.6 規(guī)格化浮點(diǎn)運(yùn)算 4.7 十進(jìn)制整數(shù)的加減運(yùn)算 4.8 邏輯運(yùn)算與實(shí)現(xiàn) 4.9 運(yùn)算器的基本組成與實(shí)例,7,4.2 定點(diǎn)加減運(yùn)算,4.2.1 原碼加減運(yùn)算

3、原碼加減運(yùn)算,符號(hào)位不參與運(yùn)算,僅兩數(shù)的絕對(duì)值參與運(yùn)算 實(shí)際操作是加還是減,不僅取決于指令的操作碼,還取決于兩個(gè)操作數(shù)的符號(hào) 如:加法時(shí)可能要做減法(兩數(shù)異號(hào));減法時(shí)可能做加法(兩數(shù)異號(hào)),8,4.2 定點(diǎn)加減運(yùn)算,4.2.2 補(bǔ)碼加減運(yùn)算 1.補(bǔ)碼加法 補(bǔ)碼相加,符號(hào)位參加運(yùn)算,兩數(shù)和的補(bǔ)碼等于兩數(shù)補(bǔ)碼之和 X+Y補(bǔ)=X補(bǔ)+Y補(bǔ),9,4.2 定點(diǎn)加減運(yùn)算,X+Y補(bǔ)=X補(bǔ)+Y補(bǔ) 證明: 1. X0, Y0 (X+Y)0 X補(bǔ)=X, Y補(bǔ)=Y X補(bǔ)+Y補(bǔ)=X+Y=X+Y補(bǔ),10,4.2 定點(diǎn)加減運(yùn)算,2. X0, Y0 (X+Y)0 由補(bǔ)碼定義:X補(bǔ)=M+X, Y補(bǔ)=M+Y (mod M) X

4、補(bǔ)+Y補(bǔ)=M+X+M+Y =M+(M+X+Y) =M+X+Y補(bǔ) =X+Y補(bǔ)(mod M),11,2.1 數(shù)值數(shù)據(jù)的表示,2.補(bǔ)碼表示 若真值為純小數(shù),補(bǔ)碼形式為Xs.X1X2Xn,其中Xs表示符號(hào)位,(mod 2),12,2.1 數(shù)值數(shù)據(jù)的表示,若真值為純整數(shù),補(bǔ)碼形式為XsX1X2Xn,其中Xs表示符號(hào)位,(mod 2n+1),13,4.2 定點(diǎn)加減運(yùn)算,2. X0, Y0 由補(bǔ)碼定義:X補(bǔ)=X, Y補(bǔ)=M+Y (mod M) X補(bǔ)+Y補(bǔ)=X+M+Y =M+X+Y (X+Y) 0時(shí),X補(bǔ)+Y補(bǔ)=M+X+Y=X+Y補(bǔ)(mod M) (X+Y)0時(shí), ,X補(bǔ)+Y補(bǔ)=M+X+Y=X+Y補(bǔ)(mod

5、M),14,4.2 定點(diǎn)加減運(yùn)算,4.2.2 補(bǔ)碼加減運(yùn)算 2.補(bǔ)碼減法 X-Y補(bǔ)=X+(-Y)補(bǔ)=X補(bǔ)+-Y補(bǔ),15,解:,16,4.2 定點(diǎn)加減運(yùn)算,4.2.2 補(bǔ)碼加減運(yùn)算 已知Y補(bǔ)求-Y補(bǔ):將Y補(bǔ)連同符號(hào)位一起求反,末尾加“1” -Y補(bǔ)稱為Y補(bǔ)的機(jī)器負(fù)數(shù) 由Y補(bǔ)求-Y補(bǔ)的過(guò)程稱為對(duì)Y補(bǔ)變補(bǔ)(求補(bǔ)) -Y補(bǔ)=Y補(bǔ)變補(bǔ),17,4.2 定點(diǎn)加減運(yùn)算,“某數(shù)的補(bǔ)碼表示”與“變補(bǔ)”的區(qū)別 Y補(bǔ)表示的真值如果是正數(shù),則變補(bǔ)后-Y補(bǔ)所表示真值變?yōu)樨?fù)數(shù),反之亦然,18,4.2 定點(diǎn)加減運(yùn)算,例1:Y=-0.0110 Y補(bǔ)=1.1010 -Y補(bǔ)=0.0110,19,4.2 定點(diǎn)加減運(yùn)算,例2:Y=0.0

6、110 Y補(bǔ)=0.0110 -Y補(bǔ)=1.1010,20,4.2 定點(diǎn)加減運(yùn)算,3.補(bǔ)碼加減運(yùn)算規(guī)則 (1)參加運(yùn)算的兩個(gè)操作數(shù)均用補(bǔ)碼表示; (2)符號(hào)位作為數(shù)的一部分參加運(yùn)算; (3)若做加法,則兩數(shù)直接相加;若做減法,則將被減數(shù)與減數(shù)的機(jī)器負(fù)數(shù)相加; (4)運(yùn)算結(jié)果用補(bǔ)碼表示,21,4.2 定點(diǎn)加減運(yùn)算,例1:A=0.1011,B=-0.1110,求:A+B A補(bǔ)=0.1011,B補(bǔ)=1.0010 0.1011 + 1.0010,1.1101,A+B補(bǔ)=1.1101,A+B=-0.0011,22,4.2 定點(diǎn)加減運(yùn)算,0.1101 A-B補(bǔ)=0.1101, A-B=0.1101,例2:A=

7、0.1011,B=-0.0010,求:A-B A補(bǔ)=0.1011,B補(bǔ)=1.1110, -B補(bǔ)=0.0010 0.1011 + 0.0010,23,4.2 定點(diǎn)加減運(yùn)算,4.符號(hào)擴(kuò)展 將給定位數(shù)表示的數(shù)轉(zhuǎn)換成具有更多位數(shù)的某種表示形式 如,將一個(gè)8位數(shù)與一個(gè)32位數(shù)相加,必須將8位數(shù)轉(zhuǎn)換成32位數(shù)形式,稱為“符號(hào)擴(kuò)展”,24,4.2 定點(diǎn)加減運(yùn)算,4.符號(hào)擴(kuò)展 計(jì)算13和-5的和,用補(bǔ)碼表示 13用16位二進(jìn)制表示為0000000000001101 -5用6位二進(jìn)制表示為111011,25,4.2 定點(diǎn)加減運(yùn)算,4.符號(hào)擴(kuò)展,0000000000001101,+ 000000000011101

8、1,0000000001001000,13,-5,72,26,4.2 定點(diǎn)加減運(yùn)算,4.符號(hào)擴(kuò)展 對(duì)于補(bǔ)碼,原有符號(hào)位保持不變,若為正數(shù),所有附加位都用0進(jìn)行填充,若為負(fù)數(shù)則所有附加位都用1進(jìn)行填充 即用符號(hào)位來(lái)填充附加的高位,27,4.2 定點(diǎn)加減運(yùn)算,4.符號(hào)擴(kuò)展,0000000000001101,+ 1111111111111011,10000000000001000,13,-5,8,28,4.2 定點(diǎn)加減運(yùn)算,例:將用8位二進(jìn)制補(bǔ)碼表示的十進(jìn)制數(shù)121,擴(kuò)展成16位二進(jìn)制補(bǔ)碼,結(jié)果用十六進(jìn)制表示 解:121:10000111, 1111111110000111= FF87H,29,4.

9、2 定點(diǎn)加減運(yùn)算,4.2.3 補(bǔ)碼的溢出判斷與檢測(cè)方法 1.溢出的產(chǎn)生 兩個(gè)正數(shù)相加,結(jié)果的符號(hào)位為1(結(jié)果為負(fù)) 兩個(gè)負(fù)數(shù)相加,結(jié)果的符號(hào)位為0(結(jié)果為正),30,4.2 定點(diǎn)加減運(yùn)算,例1:X=1011B=11D,Y=111B=7D X補(bǔ)=0,1011,Y補(bǔ)=0,0111,0,1 0 1 1,+ 0,0 1 1 1,1,0 0 1 0,X+Y補(bǔ)=1,0010 X+Y=-1110B=-14D 兩正數(shù)相加結(jié)果為-14D,是錯(cuò)誤的,31,4.2 定點(diǎn)加減運(yùn)算,例2:X=-1011B=-11D,Y=-111B=-7D X補(bǔ)=1,0101 Y補(bǔ)=1,1001,X+Y補(bǔ)=0,1110 X+Y=1110

10、B=14D 兩負(fù)數(shù)相加結(jié)果為14D,是錯(cuò)誤的,1,0 1 0 1,+ 1,1 0 0 1,0,1 1 1 0,32,4.2 定點(diǎn)加減運(yùn)算,為什么會(huì)發(fā)生這種錯(cuò)誤呢? 兩數(shù)相加之和的數(shù)值已超過(guò)了機(jī)器允許的表示范圍 字長(zhǎng)為n+1位的定點(diǎn)整數(shù)(其中一位為符號(hào)位),采用補(bǔ)碼表示,當(dāng)運(yùn)算結(jié)果大于2n-1或小于-2n時(shí),產(chǎn)生溢出,33,4.2 定點(diǎn)加減運(yùn)算,設(shè)參加運(yùn)算的兩數(shù)為X、Y,做加法運(yùn)算 若X、Y異號(hào),不會(huì)溢出 若X、Y同號(hào),運(yùn)算結(jié)果為正且大于所能表示的最大正數(shù)或運(yùn)算結(jié)果為負(fù)且小于所能表示的最小負(fù)數(shù)(絕對(duì)值最大的負(fù)數(shù))時(shí),產(chǎn)生溢出 將兩正數(shù)相加產(chǎn)生的溢出稱為正溢;反之,兩負(fù)數(shù)相加產(chǎn)生的溢出稱為負(fù)溢,3

11、4,4.2 定點(diǎn)加減運(yùn)算,2. 溢出檢測(cè)方法 設(shè):被操作數(shù)為:X補(bǔ)=Xs,X1X2Xn 操作數(shù)為:Y補(bǔ)=Ys,Y1Y2Yn 其和(差)為:S補(bǔ)=Ss,S1S2Sn,35,4.2 定點(diǎn)加減運(yùn)算,2. 溢出檢測(cè)方法 (1)采用一個(gè)符號(hào)位 兩正數(shù)相加,結(jié)果為負(fù)產(chǎn)生正溢;兩負(fù)數(shù)相加, 結(jié)果為正產(chǎn)生負(fù)溢 當(dāng)Xs=Ys=0,Ss=1時(shí),產(chǎn)生正溢 當(dāng)Xs=Ys=1,Ss=0時(shí),產(chǎn)生負(fù)溢,36,4.2 定點(diǎn)加減運(yùn)算,2. 溢出檢測(cè)方法 溢出=XsYsSs+XsYsSs = (Xs xor Ss)(Ys xor Ss),37,4.2 定點(diǎn)加減運(yùn)算,(2)采用進(jìn)位位 兩數(shù)運(yùn)算時(shí),產(chǎn)生的進(jìn)位為 Cs,C1C2Cn,

12、 其中:Cs為符號(hào)位產(chǎn)生的進(jìn)位,C1為最高數(shù)值位 產(chǎn)生的進(jìn)位,38,4.2 定點(diǎn)加減運(yùn)算,(2)采用進(jìn)位位 兩正數(shù)相加,當(dāng)最高有效位產(chǎn)生進(jìn)位(C1=1)而符號(hào)位不產(chǎn)生進(jìn)位(Cs=0)時(shí),發(fā)生正溢 兩負(fù)數(shù)相加,當(dāng)最高有效位沒(méi)有進(jìn)位(C1=0)而符號(hào)位產(chǎn)生進(jìn)位(Cs=1)時(shí),發(fā)生負(fù)溢,39,4.2 定點(diǎn)加減運(yùn)算,1,1,1,1,1,1,3,7,10,-3,-7,-10,40,4.2 定點(diǎn)加減運(yùn)算,1,1,1,1,1,1,11,7,-14,-11,-7,14,41,4.2 定點(diǎn)加減運(yùn)算,(3)采用變形補(bǔ)碼(雙符號(hào)位補(bǔ)碼) 左邊的符號(hào)位Ss1叫真符,代表該數(shù)真正的符號(hào),兩個(gè)符號(hào)位都作為數(shù)的一部分參加運(yùn)

13、算 Ss1Ss2=00 結(jié)果為正數(shù),無(wú)溢出 Ss1Ss2=01 結(jié)果正溢 Ss1Ss2=10 結(jié)果負(fù)溢 Ss1Ss2=11 結(jié)果為負(fù)數(shù),無(wú)溢出,42,4.2 定點(diǎn)加減運(yùn)算,兩位符號(hào)位的值不一致時(shí),表明產(chǎn)生溢出 溢出=Ss1SS2,注意,43,4.2 定點(diǎn)加減運(yùn)算,字長(zhǎng)為5位,表示范圍為-1615,采用變形補(bǔ)碼(雙符號(hào)位)運(yùn)算 11+7=18(正溢,大于15) 0 0,1 0 1 1 + 0 0,0 1 1 1,0 1,0 0 1 0,-11+(-7)=-18(負(fù)溢,小于-16) 1 1,0 1 0 1 + 1 1,1 0 0 1,1 0,1 1 1 0,44,4.2 定點(diǎn)加減運(yùn)算,補(bǔ)碼定點(diǎn)加減

14、運(yùn)算的實(shí)現(xiàn),45,已知X和Y,用變形補(bǔ)碼計(jì)算X+Y和X-Y,同 時(shí)指出運(yùn)算結(jié)果是否溢出 X=27/32, Y=31/32 X=13/16, Y=-11/16,4.2 定點(diǎn)加減運(yùn)算,46,第4章,4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn) 4.2 定點(diǎn)加減運(yùn)算 4.3 帶符號(hào)數(shù)的移位和舍入操作 4.4 定點(diǎn)乘法運(yùn)算 4.5 定點(diǎn)除法運(yùn)算 4.6 規(guī)格化浮點(diǎn)運(yùn)算 4.7 十進(jìn)制整數(shù)的加減運(yùn)算 4.8 邏輯運(yùn)算與實(shí)現(xiàn) 4.9 運(yùn)算器的基本組成與實(shí)例,47,4.3 帶符號(hào)數(shù)的移位和舍入操作,4.3.1 帶符號(hào)數(shù)的移位操作 算術(shù)移位保持?jǐn)?shù)的符號(hào)不變,數(shù)值的大小發(fā)生變化。左移一位數(shù)值增大一倍,相當(dāng)于該數(shù)乘以2,右移一位則

15、使數(shù)值縮小一倍,相當(dāng)于該數(shù)除以2 1.原碼的移位規(guī)則 負(fù)數(shù)的原碼移位后的空出位補(bǔ)0,48,4.3 帶符號(hào)數(shù)的移位和舍入操作,2.補(bǔ)碼的移位規(guī)則 負(fù)數(shù)的補(bǔ)碼左移后的空出位補(bǔ)0,右移后的空出位補(bǔ)1,49,4.3 帶符號(hào)數(shù)的移位和舍入操作,3. 移位功能的實(shí)現(xiàn) 移位操作由移位寄存器來(lái)實(shí)現(xiàn) 不設(shè)置專門的移位寄存器,在加法器的輸出端加一個(gè)實(shí)現(xiàn)直傳、左移一位和右移一位的控制邏輯電路(稱為移位器) 分別用2FL、FL和F/2L 這三個(gè)不同控制信號(hào)選擇左移、直傳和右移操作,50,4.3 帶符號(hào)數(shù)的移位和舍入操作,51,4.3 帶符號(hào)數(shù)的移位和舍入操作,4.3.2 帶符號(hào)數(shù)的舍入操作 算術(shù)右移中,受硬件限制,運(yùn)

16、算結(jié)果可能舍去一定的尾數(shù),為了縮小誤差,進(jìn)行舍入處理 1.恒舍(切斷) 無(wú)論多余部分q位為何代碼,一律舍去,保留部分p位不作任何改變,保留部分p位,多余部分q位,p+q位,52,4.3 帶符號(hào)數(shù)的移位和舍入操作,2. 馮諾依曼舍入法 又稱為恒置1法,不論多余部分q位為何代碼,把p位的最低位置1,保留部分p位,多余部分q位,p+q位,保留部分p位,多余部分q位,p+q位,1,保留部分最低位為1,保留部分最低位為0,53,4.3 帶符號(hào)數(shù)的移位和舍入操作,3. 下舍上入法 又稱0舍1入。舍去的q位的最高位作為判斷標(biāo)志,如為0,舍去q位部分,如為1,在p位部分的最低位加1,保留部分p位,多余部分q位

17、,p+q位,多余部分最高位為0,多余部分最高位為1,保留部分p位,多余部分q位,p+q位,1,+,1,1,1,54,4.3 帶符號(hào)數(shù)的移位和舍入操作,4.查表舍入法,55,4.3 帶符號(hào)數(shù)的移位和舍入操作,4.查表舍入法 ROM存放下溢處理表,每次查表讀處理結(jié)果 ROM表的容量為2K,每個(gè)單元字長(zhǎng)為K-1位 下溢處理表的內(nèi)容是:當(dāng)K位數(shù)據(jù)的高K-1位為全“1”時(shí),按截?cái)喾ㄌ钊隟-1位全“1”,其余單元都按最低位(即附加位)0舍1入的結(jié)果來(lái)填其內(nèi)容,地址 內(nèi)容 000 00 001 01 010 01 011 10 100 10 101 11 11 111 11,56,第4章,4.1 基本算術(shù)運(yùn)

18、算的實(shí)現(xiàn) 4.2 定點(diǎn)加減運(yùn)算 4.3 帶符號(hào)數(shù)的移位和舍入操作 4.4 定點(diǎn)乘法運(yùn)算 4.5 定點(diǎn)除法運(yùn)算 4.6 規(guī)格化浮點(diǎn)運(yùn)算 4.7 十進(jìn)制整數(shù)的加減運(yùn)算 4.8 邏輯運(yùn)算與實(shí)現(xiàn) 4.9 運(yùn)算器的基本組成與實(shí)例,57,4.4 定點(diǎn)乘法運(yùn)算,4.4.1 原碼一位乘法 兩個(gè)操作數(shù)的絕對(duì)值相乘,乘積的符號(hào)為兩操作數(shù)符號(hào)的異或值 乘積 P|X|Y| 符號(hào)Ps=XsYs,58,1. 分析筆算乘法,A = 0.1101 B = 0.1011,AB = 0.10001111,0 . 1 1 0 1,0 . 1 0 1 1,1 1 0 1,1 1 0 1,0 0 0 0,1 1 0 1,0 . 1 0

19、 0 0 1 1 1 1,符號(hào)位單獨(dú)處理,乘數(shù)的某一位決定是否加被乘數(shù),4個(gè)位積一起相加,乘積的位數(shù)擴(kuò)大一倍,乘積的符號(hào)心算求得,?,4.4 定點(diǎn)乘法運(yùn)算,59,A B = A 0.1011,= 0.1A + 0.00A + 0.001A +0.0001A,= 0.1A + 0.00A + 0.001( A +0.1A),= 0.1A + 0.010 A + 0. 1( A +0.1A),= 0.1A +0.1 0 A+0.1(A + 0.1A),= 2-1A +2-1 0 A+2-1(A + 2-1(A+0),第一步 被乘數(shù)A + 0,第二步 右移 一 位,得新的部分積,第八步 右移 一 位

20、,得結(jié)果,第三步 部分積 + 被乘數(shù),4.4 定點(diǎn)乘法運(yùn)算,60,4.4 定點(diǎn)乘法運(yùn)算,原碼一位乘法的規(guī)則為: 參加運(yùn)算的操作數(shù)取其絕對(duì)值; 令乘數(shù)的最低位為判斷位,若為“1”,加被乘數(shù),若為“0”,不加被乘數(shù)(加0); 累加后的部分積右移一位; 重復(fù)n次和; 符號(hào)位單獨(dú)處理,同號(hào)為正,異號(hào)為負(fù),61,4.4 定點(diǎn)乘法運(yùn)算,乘法運(yùn)算需要3個(gè)寄存器: A寄存器: 部分積與最后乘積的高位部分,初值為0 B寄存器:被乘數(shù)X C寄存器:乘數(shù)Y,運(yùn)算后C寄存器中不再需要保留乘數(shù),改為存放乘積的低位部分,62,4.4 定點(diǎn)乘法運(yùn)算,已知:X=0.1101,Y=-0.1011,求:XY。 |X|=0.110

21、1B,|Y|=0.1011C,0A 符號(hào)位不參加運(yùn)算 A、C寄存器級(jí)聯(lián),右移。,63,4.4 定點(diǎn)乘法運(yùn)算,A C 說(shuō)明,0 0.0 0 0 0 1 0 1 1,+|X| 0 0.1 1 0 1 C4=1,+|X|,0 0.1 1 0 1, 0 0.0 1 1 0 1 1 0 1 部分積右移一位,0 1.0 0 1 1,+|X| 0 0.1 1 0 1 C4=1,+|X|, 0 0.1 0 0 1 1 1 1 0 部分積右移一位,+0 0 0.0 0 0 0 C4=0,+0,0 0.1 0 0 1, 0 0.0 1 0 0 1 1 1 1 部分積右移一位,+|X| 0 0.1 1 0 1 C4

22、=1,+|X|,0 1.0 0 0 1, 0 0.1 0 0 0 1 1 1 1 部分積右移一位,PS=XSYS=01=1 XY=-0.10001111,64,乘法 運(yùn)算可用 加和移位實(shí)現(xiàn) n = 4,加 4 次,移 4 次,4.4 定點(diǎn)乘法運(yùn)算,65,4.4 定點(diǎn)乘法運(yùn)算,66,4.4 定點(diǎn)乘法運(yùn)算,67,4.4 定點(diǎn)乘法運(yùn)算,4.4.2 補(bǔ)碼一位乘法 校正法 X符號(hào)任意,Y為正 X補(bǔ)=Xs.X1X2Xn = 2+X(mod 2)=2n+1+X(mod 2) Y補(bǔ)=0.Y1Y2Yn=Y X補(bǔ)Y補(bǔ) = X補(bǔ)Y=(2n+1+X)Y= 2n+1Y+XY X補(bǔ) Y補(bǔ) = 2+XY = XY補(bǔ)(mod

23、 2),68,4.4 定點(diǎn)乘法運(yùn)算,4.4.2 補(bǔ)碼一位乘法 X符號(hào)任意,Y為負(fù) X補(bǔ)=Xs.X1X2Xn = 2+X(mod 2) Y補(bǔ)=1.Y1Y2Yn= 2+Y(mod 2) Y=Y補(bǔ) 2 = 1.Y1Y2Yn-2 = 0.Y1Y2Yn-1 X Y=X (0.Y1Y2Yn) - X X Y補(bǔ) = X (0.Y1Y2Yn)補(bǔ) + -X補(bǔ) X Y補(bǔ) = X補(bǔ) (0.Y1Y2Yn) + -X補(bǔ),69,4.4 定點(diǎn)乘法運(yùn)算,4.4.2 補(bǔ)碼一位乘法 校正法 X Y補(bǔ) = X補(bǔ) (0.Y1Y2Yn) + -X補(bǔ)Ys,70,4.4 定點(diǎn)乘法運(yùn)算,4.4.2 補(bǔ)碼一位乘法 比較法Booth乘法 被乘數(shù)

24、X補(bǔ)=Xs.X1X2Xn,乘數(shù)Y補(bǔ)=Ys.Y1Y2Yn 在乘數(shù)的最低位之后增加一位附加位Yn+1,它的初值為0,增加附加位不會(huì)影響運(yùn)算結(jié)果 每次運(yùn)算取決于乘數(shù)相鄰兩位Yi、Yi+1的值,稱為乘法的判斷位。根據(jù)校正法的統(tǒng)一表達(dá)式推出:由乘數(shù)相鄰兩位的比較結(jié)果(Yi+1-Yi)來(lái)確定運(yùn)算操作,71,Booth 算法,x y補(bǔ),2-1,2-2,附加位 yn+1,72, Booth 算法遞推公式,z0補(bǔ)= 0,z1補(bǔ)= 2-1(yn+1yn)x補(bǔ)+z0補(bǔ) yn+1 = 0,zn補(bǔ)= 2-1(y2y1)x補(bǔ)+zn-1補(bǔ),x y補(bǔ)= zn補(bǔ)+(y1y0)x補(bǔ),最后一步不移位,如何實(shí)現(xiàn) yi+1yi ?,0

25、 0,0 1,1 0,1 1,0,1,-1,0,73,4.4 定點(diǎn)乘法運(yùn)算,Booth乘法規(guī)則如下: 參加運(yùn)算的數(shù)用補(bǔ)碼表示; 符號(hào)位參加運(yùn)算; 乘數(shù)最低位后面增加一位附加位Yn+1,其初值為0; 由于每求一次部分積要右移一位,所以乘數(shù)的最低兩位Yn、Yn+1的值決定了每次應(yīng)執(zhí)行的操作;,74,4.4 定點(diǎn)乘法運(yùn)算,判斷位Yn Yn+1 操 作 0 0 原部分積右移一位 0 1 原部分積加X(jué)補(bǔ)后右移一位 1 0 原部分積加-X補(bǔ)后右移一位 1 1 原部分積右移一位,75,4.4 定點(diǎn)乘法運(yùn)算, 移位按補(bǔ)碼右移規(guī)則進(jìn)行; 共需做n+1次累加,n次移位,第n+1次不移位,76,4.4 定點(diǎn)乘法運(yùn)算

26、,注意: 部分積取2位符號(hào)位 乘數(shù)取1位符號(hào)位 補(bǔ)碼右移規(guī)則 最后一步不移位,77,4.4 定點(diǎn)乘法運(yùn)算,例:已知X=-0.1101,Y=0.1011;求XY。 X補(bǔ)=1.0011B,Y補(bǔ)=0.1011C,0A -X補(bǔ)=0.1101,78,4.4 定點(diǎn)乘法運(yùn)算,A C 附加位 說(shuō)明,0 0.0 0 0 0 0.1 0 1 1 0,+-X補(bǔ) 0 0.1 1 0 1 C4C5=10,+-X補(bǔ),0 0.1 1 0 1, 0 0.0 1 1 0 1 0 1 0 1 1 部分積右移一位,+0 0 0.0 0 0 0 C4C5=11,+0,0 0.0 1 1 0, 0 0.0 0 1 1 0 1 0 1

27、0 1 部分積右移一位,+X補(bǔ) 1 1.0 0 1 1 C4C5=01,+X補(bǔ),1 1.0 1 1 0, 1 1.1 0 1 1 0 0 1 0 1 0 部分積右移一位,+-X補(bǔ) 0 0.1 1 0 1 C4C5=10,+-X補(bǔ),0 0.1 0 0 0, 0 0.0 1 0 0 0 0 0 1 0 1 部分積右移一位,+X補(bǔ) 1 1.0 0 1 1 C4C5=01,+X補(bǔ),1 1.0 1 1 1,XY補(bǔ)=1.01110001 XY=-0.10001111,79,4.4 定點(diǎn)乘法運(yùn)算,80,4.4 定點(diǎn)乘法運(yùn)算,81,4.4 定點(diǎn)乘法運(yùn)算,例:X=18/32, Y=-21/32, 求X*Y,82

28、,4.4 定點(diǎn)乘法運(yùn)算,4.4.3 補(bǔ)碼兩位乘法 每次處理乘數(shù)中的兩位,使乘法的速度提一倍 兩位乘法分為原碼兩位乘法和補(bǔ)碼兩位乘法 由Booth乘法推導(dǎo)出補(bǔ)碼兩位乘法,把補(bǔ)碼兩位乘理解為將Booth乘法的兩次合并為一次來(lái)做,83,4.4 定點(diǎn)乘法運(yùn)算,4.4.3 補(bǔ)碼兩位乘法,84,4.4 定點(diǎn)乘法運(yùn)算,補(bǔ)碼兩位乘法可通過(guò)Yi-1YiYi+1三位的不同組合來(lái)判斷原部分積與X補(bǔ)的運(yùn)算情況,然后右移兩位得到新的部分積,85,4.4 定點(diǎn)乘法運(yùn)算,補(bǔ)碼兩位乘法規(guī)則: 參加運(yùn)算的數(shù)用補(bǔ)碼表示; 符號(hào)位參加運(yùn)算; 乘數(shù)最低位后增加一位附加位Yn+1,初值為0; 根據(jù)乘數(shù)的最低三位Yn-1YnYn+1的值

29、決定每次應(yīng)執(zhí)行的操作; 移位按補(bǔ)碼右移規(guī)則進(jìn)行 比較結(jié)果(Yi+1+Yi-2Yi-1),86,4.4 定點(diǎn)乘法運(yùn)算,Yn-1YnYn+1 0 0 0 +0,右移2位 0 0 1 +X補(bǔ),右移2位 0 1 0 +X補(bǔ),右移2位 0 1 1 +2X補(bǔ),右移2位 1 0 0 +2-X補(bǔ),右移2位 1 0 1 +-X補(bǔ),右移2位 1 1 0 +-X補(bǔ),右移2位 1 1 1 +0,右移2位,87,4.4 定點(diǎn)乘法運(yùn)算,被乘數(shù)和部分積取三符號(hào)位,當(dāng)乘數(shù)的數(shù)值位n 為偶數(shù)時(shí),乘數(shù)取兩符號(hào)位 共需作(n/2)+1次累加,n/2次移位(最后一次不移位) 當(dāng)n為奇數(shù)時(shí),乘數(shù)只需一個(gè)符號(hào)位,共需(n1)/2次累加和

30、移位,但最后一次僅移一位,88,4.4 定點(diǎn)乘法運(yùn)算,已知:X0.0110011,Y-0.0110010,求:XY X補(bǔ)=000.0110011B, Y補(bǔ)=1.1001110C, 0A 2X補(bǔ)=000.1100110,-X補(bǔ)=111.1001101, 2-X補(bǔ)=111.0011010,89,4.4 定點(diǎn)乘法運(yùn)算,A C 附加位,+2-X補(bǔ) 1 1 1.0 0 1 1 0 1 0,0 0 0.0 0 0 0 0 0 0 1.1 0 0 1 1 1 0 0,1 1 1.0 0 1 1 0 1 0,2 1 1 1.1 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1,+0 0 0 0.0

31、0 0 0 0 0 0,1 1 1.1 1 0 0 1 1 0,2 1 1 1.1 1 1 1 0 0 1 1 0 1 0 1 1 0 0 1,+ X補(bǔ) 0 0 0.0 1 1 0 0 1 1,0 0 0.0 1 0 1 1 0 0,2 0 0 0.0 0 0 1 0 1 1 0 0 1 0 1 0 1 1 0,+ -X補(bǔ) 1 1 1.1 0 0 1 1 0 1,1 1 1.1 0 1 1 0 0 0,1 1 1 1.1 1 0 1 1 0 0 0 0 0 1 0 1 0 1 1,XY補(bǔ)1.11011000001010 XY-0.00100111110110,90,4.4 定點(diǎn)乘法運(yùn)算,91,

32、4.4.4 陣列乘法器 兩個(gè)不帶符號(hào)的二進(jìn)制整數(shù): Aam1a1a0 Bbn1b1b0 它們的數(shù)值分別為a和b,即 m1 n1 a ai2ib bj2j i0 j0,4.4 定點(diǎn)乘法運(yùn)算,92,4.4.4 陣列乘法器 二進(jìn)制乘法中,被乘數(shù)A與乘數(shù)B相乘,產(chǎn)生mn位乘積 Ppmn1p1p0,乘積P 的數(shù)值為,93,4.4 定點(diǎn)乘法運(yùn)算,4.4.4 陣列乘法器,94,4.4 定點(diǎn)乘法運(yùn)算,4.4.4 陣列乘法器,95,第4章,4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn) 4.2 定點(diǎn)加減運(yùn)算 4.3 帶符號(hào)數(shù)的移位和舍入操作 4.4 定點(diǎn)乘法運(yùn)算 4.5 定點(diǎn)除法運(yùn)算 4.6 規(guī)格化浮點(diǎn)運(yùn)算 4.7 十進(jìn)制整數(shù)的加

33、減運(yùn)算 4.8 邏輯運(yùn)算與實(shí)現(xiàn) 4.9 運(yùn)算器的基本組成與實(shí)例,96,1. 分析筆算除法,x = 0.1011 y = 0.1101 求 xy,0 . 1 0 1 1,0 . 1 1 0 1,0 . 0 1 1 0 1,0 . 0 1 0 0 1,0 . 0 0 1 1 0 1,0 . 0 0 0 1 0 1,0 . 0 0 0 0 1 1 0 1,0 . 0 0 0 0 0 1 1 1,1,商符單獨(dú)處理,心算上商,余數(shù)不動(dòng)低位補(bǔ)“0” 減右移一位的除數(shù),上商位置不固定,商符心算求得,0,0 .,1,0,1,0,0,0,?,?,?,4.5 定點(diǎn)除法運(yùn)算,4.5.1 原碼除法運(yùn)算,97,商符單獨(dú)

34、處理,心算上商,符號(hào)位異或形成,| x | | y | 0 上商 1,| x | | y | 0 上商 0,上商位置 不固定,在寄存器 最末位上商,4.5 定點(diǎn)除法運(yùn)算,98,4.5 定點(diǎn)除法運(yùn)算,1.原碼比較法和恢復(fù)余數(shù)法 (1) 比較法 將除數(shù)右移改為余數(shù)左移 對(duì)兩個(gè)操作數(shù)進(jìn)行比較(AB?),需要設(shè)置比較線路,從而增加了硬件的代價(jià),99,4.5 定點(diǎn)除法運(yùn)算,(2)恢復(fù)余數(shù)法 不管被除數(shù)(或余數(shù))減除數(shù)是否夠減,都先做減法 若余數(shù)為正,表示夠減,該位商上“1”;若余數(shù)為負(fù),表示不夠減,該位商上“0”,并要恢復(fù)原來(lái)的被除數(shù)(或余數(shù)),100,4.5 定點(diǎn)除法運(yùn)算,由于余數(shù)的正、負(fù)是根據(jù)不同的

35、操作數(shù)組合隨機(jī)出現(xiàn),除法運(yùn)算的實(shí)際操作次數(shù)不固定,控制電路比較復(fù)雜 恢復(fù)余數(shù)時(shí),要多作一次加法,降低了執(zhí)行速度原碼恢復(fù)余數(shù)法在計(jì)算機(jī)中很少采用,101,余數(shù) Ri0 上商 “1”,2Ri y*,余數(shù) Ri0 上商 “0”, Ri + y* 恢復(fù)余數(shù),2( Ri+y*) y* = 2Ri + y*,加減交替,恢復(fù)余數(shù)法運(yùn)算規(guī)則,不恢復(fù)余數(shù)法運(yùn)算規(guī)則,上商“1” 2Ri y*,上商“0” 2Ri + y*,2.原碼不恢復(fù)余數(shù)法(原碼加減交替法),4.5 定點(diǎn)除法運(yùn)算,102,4.5 定點(diǎn)除法運(yùn)算,當(dāng)出現(xiàn)不夠減(負(fù)余數(shù))的情況,不需恢復(fù)余數(shù),可直接做下一次操作,但操作是2Ri + y* ,結(jié)果與恢復(fù)

36、余數(shù)后左移一位再減Y是等效的,103,4.5 定點(diǎn)除法運(yùn)算,除法運(yùn)算需3個(gè)寄存器: A寄存器:存被除數(shù)X,最后A寄存器中是擴(kuò)大了若干倍的余數(shù) B寄存器:存除數(shù)Y C寄存器:存商Q,初值為0,104,4.5 定點(diǎn)除法運(yùn)算,例:已知X=0.10101,Y=-0.11110,求:XY。 | X|=0.10101A,|Y|=0.11110B,0C |Y|變補(bǔ)=1.00010,105,4.5 定點(diǎn)除法運(yùn)算,A C 說(shuō)明,0 0.1 0 1 0 1 0.0 0 0 0 0,+|Y|變補(bǔ) 1 1.0 0 0 1 0 -|Y|,1 1.1 0 1 1 1 0.0 0 0 0 0 余數(shù)為負(fù),商0, 1 1.0

37、1 1 1 0 左移一位,+|Y| 0 0.1 1 1 1 0 +|Y|,0 0.0 1 1 0 0 0.0 0 0 0 1 余數(shù)為正,商1, 0 0.1 1 0 0 0 左移一位,+|Y|變補(bǔ) 1 1.0 0 0 1 0 -|Y|,1 1.1 1 0 1 0 0.0 0 0 1 0 余數(shù)為負(fù),商0, 1 1.1 0 1 0 0 左移一位,+|Y| 0 0.1 1 1 1 0 +|Y|,0 0.1 0 0 1 0 0.0 0 1 0 1 余數(shù)為正,商1, 0 1.0 0 1 0 0 左移一位,+|Y|變補(bǔ) 1 1.0 0 0 1 0 -|Y|,0 0.0 0 1 1 0 0.0 1 0 1 1

38、 余數(shù)為正,商1, 0 0.0 1 1 0 0 左移一位,+|Y|變補(bǔ) 1 1.0 0 0 1 0 -|Y|,1 1.0 1 1 1 0 0.1 0 1 1 0 余數(shù)為負(fù),商0,+|Y| 0 0.1 1 1 1 0 恢復(fù)余數(shù),+|Y|,0 0.0 1 1 0 0,106,4.5 定點(diǎn)除法運(yùn)算,經(jīng)過(guò)原碼加減交替除法,有: 商=0.10110 余數(shù)=0.011002-5 XY=-(0.10110+ ),0.011002-5,0.11110,107,4.5 定點(diǎn)除法運(yùn)算,108,4.5 定點(diǎn)除法運(yùn)算,109,4.5 定點(diǎn)除法運(yùn)算,定點(diǎn)小數(shù)除法運(yùn)算時(shí),為了防止溢出,要求被除數(shù)的絕對(duì)值小于除數(shù)的絕對(duì)值,

39、即|X|Y|,且除數(shù)不能為0 原碼加減交替法,當(dāng)最終余數(shù)為負(fù)數(shù)時(shí),必須恢復(fù)一次余數(shù),使之變?yōu)檎嬗鄶?shù),注意此時(shí)不需要再左移了,110,4.4 定點(diǎn)乘法運(yùn)算,例:X=-0. 10101, Y=0. 11011, 求X/Y,111,4.5 定點(diǎn)除法運(yùn)算,4.5.2 補(bǔ)碼除法運(yùn)算 被除數(shù)和除數(shù)都用補(bǔ)碼表示,符號(hào)位參加運(yùn)算 需要解決3個(gè)問(wèn)題: 如何確定商值 如何形成商符 如何獲得新的余數(shù),112,補(bǔ)碼表示很難直接判斷其真值大小,如,十進(jìn)制,錯(cuò),錯(cuò),0,10101,1,01011,0,11111,1,00001,+10101, 10101,+11111, 11111,二進(jìn)制,補(bǔ)碼,2.2 機(jī)器數(shù)的定點(diǎn)表示

40、與浮點(diǎn)表示,113,2.2 機(jī)器數(shù)的定點(diǎn)表示與浮點(diǎn)表示,2.規(guī)格化的浮點(diǎn)數(shù) 規(guī)定尾數(shù)的最高數(shù)位必須是一個(gè)有效值 1/r |M| 1 如果r=2,則有1/2|M|1,0.1*,114,(2) 規(guī)格化數(shù)的判斷,M0,真值,原碼,補(bǔ)碼,反碼,規(guī)格化形式,M 0 M-1/2,規(guī)格化形式,真值,原碼,補(bǔ)碼,反碼,原碼 不論正數(shù)、負(fù)數(shù),第一數(shù)位為1,補(bǔ)碼 符號(hào)位和第 一數(shù)位不同,2.2 機(jī)器數(shù)的定點(diǎn)表示與浮點(diǎn)表示,115,Ri補(bǔ)= 0.1000,(1) 商值的確定,x補(bǔ) = 0.1011,y補(bǔ) = 1.1101,Ri補(bǔ)= 0.1000,x補(bǔ) = 1.1101,y補(bǔ) = 0.1011,x*y*,Ri補(bǔ)與y補(bǔ)

41、同號(hào),“夠減”,x*y*,Ri補(bǔ)與y補(bǔ)異號(hào),“不夠減”,+,+, 比較被除數(shù)和除數(shù)真值的絕對(duì)值的大小,x 與 y 同號(hào),4.5 定點(diǎn)除法運(yùn)算,116,小結(jié),x補(bǔ) = 0.1011,y補(bǔ) = 1.1101,Ri補(bǔ)= 0.1000,x補(bǔ) = 1.1101,y補(bǔ) = 0.1011,Ri補(bǔ)= 0.1000,x*y*,Ri補(bǔ)與y補(bǔ)異號(hào),“夠減”,x*y*,Ri補(bǔ)與y補(bǔ)同號(hào),“不夠減”,+,+,x 與 y 異號(hào),4.5 定點(diǎn)除法運(yùn)算,117, 商值的確定,x補(bǔ)與 y補(bǔ)同號(hào),正商,按原碼上商,x補(bǔ)與 y補(bǔ)異號(hào),負(fù)商,按反碼上商,末位恒置“1”法,小 結(jié),簡(jiǎn) 化 為,(同號(hào)),(異號(hào)),(異號(hào)),(同號(hào)),.

42、 1,118,(2) 商符的形成,除法過(guò)程中自然形成 被除數(shù)的絕對(duì)值必須小于除數(shù)的絕對(duì)值,x補(bǔ)和y補(bǔ)同號(hào),x補(bǔ)y補(bǔ),比較Ri補(bǔ)和y補(bǔ),同號(hào)(夠)“1”,異號(hào)(不夠)“0”,原碼上商,小數(shù)除法 第一次“不夠”上“0”,正商,x補(bǔ)和y補(bǔ)異號(hào),x補(bǔ)+y補(bǔ),比較Ri補(bǔ)和y補(bǔ),異號(hào)(夠)“0”,同號(hào)(不夠)“1”,反碼上商,小數(shù)除法 第一次“不夠”上“1”,負(fù)商,119,(3) 新余數(shù)的獲得,加減交替,如果對(duì)商的精度沒(méi)有特殊要求,可采用“末位恒置1”法,最大誤差為2-n,4.5 定點(diǎn)除法運(yùn)算,120,4.5 定點(diǎn)除法運(yùn)算,已知:X=0.1000,Y=-0.1010;求XY X補(bǔ)=0.1000A,Y補(bǔ)=1

43、.0110B,0C,-Y補(bǔ)=0.1010,0 0.1 0 0 0 0.0 0 0 0,+Y補(bǔ) 1 1.0 1 1 0 X補(bǔ)、Y補(bǔ)異號(hào),+Y補(bǔ), 1 1.1 1 0 0 左移一位,+-Y補(bǔ) 0 0.1 0 1 0 +-Y補(bǔ),0 0.0 1 1 0 0.0 0 1 0 ri補(bǔ)、Y補(bǔ)異號(hào),商0, 0 0.1 1 0 0 左移一位,+Y補(bǔ) 1 1.0 1 1 0 +Y補(bǔ),0 0.0 0 1 0 0.0 1 0 0 ri補(bǔ)、Y補(bǔ)異號(hào),商0,+Y補(bǔ) 1 1.0 1 1 0 +Y補(bǔ),1 1.1 0 1 0 0.1 0 0 1 ri補(bǔ)、Y補(bǔ)同號(hào),商1, 1 1.0 1 0 0 左移一位,+-Y補(bǔ) 0 0.1

44、0 1 0 +-Y補(bǔ),1 1.1 1 1 0 1.0 0 1 1 末位恒置1,1 1.1 1 1 0 0.0 0 0 1 ri補(bǔ)、Y補(bǔ)同號(hào),商1, 0 0.0 1 0 0 左移一位,121,4.5 定點(diǎn)除法運(yùn)算,商補(bǔ)=1.0011 余數(shù)補(bǔ)=1.11102-4,商=-0.1101 余數(shù)=-0.00102-4,122,4.5 定點(diǎn)除法運(yùn)算,123,4.4 定點(diǎn)乘法運(yùn)算,例:X=-0. 10101, Y=0. 11011, 求X/Y,124,第4章,4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn) 4.2 定點(diǎn)加減運(yùn)算 4.3 帶符號(hào)數(shù)的移位和舍入操作 4.4 定點(diǎn)乘法運(yùn)算 4.5 定點(diǎn)除法運(yùn)算 4.6 規(guī)格化浮點(diǎn)運(yùn)算

45、4.7 十進(jìn)制整數(shù)的加減運(yùn)算 4.8 邏輯運(yùn)算與實(shí)現(xiàn) 4.9 運(yùn)算器的基本組成與實(shí)例,125,4.6 規(guī)格化浮點(diǎn)運(yùn)算,4.6.1 浮點(diǎn)加減運(yùn)算 設(shè)兩個(gè)非0的規(guī)格化浮點(diǎn)數(shù)分別為 A=MA2EA B=MB2EB AB=(MA,EA)(MB,EB)=,126,4.6 規(guī)格化浮點(diǎn)運(yùn)算,1.浮點(diǎn)數(shù)加減運(yùn)算步驟 (1) 對(duì)階 (2) 尾數(shù)加/減 (3) 尾數(shù)結(jié)果規(guī)格化 (4) 舍入 (5) 溢出判斷,127,4.6 規(guī)格化浮點(diǎn)運(yùn)算,1.浮點(diǎn)數(shù)加減運(yùn)算步驟 (1)對(duì)階 小數(shù)點(diǎn)的位置對(duì)齊,浮點(diǎn)數(shù)的小數(shù)點(diǎn)的實(shí)際位置 取決于階碼的大小,對(duì)齊兩數(shù)的小數(shù)點(diǎn),就是使 兩數(shù)的階碼相等 求出兩數(shù)階碼EA和EB之差,即:E=

46、EA-EB,128,A=MA2EA,B=MB2EB,對(duì)階原則,E = EA EB =,EA = EB 已對(duì)齊,EA EB,EA 向 EB 看齊,小階向大階看齊,EA1,4.6 規(guī)格化浮點(diǎn)運(yùn)算,(1)對(duì)階,EB 向 EA 看齊,EB+1,EA EB,EA 向 EB 看齊,EB 向 EA 看齊,EA+1,EB-1,129,+104,0,1101000,+ 52,0,0110100,+26,0,0011010,移位前,左移一位,左移兩位,+ 6,0,0000110,+13,0,0001101,右移一位,右移兩位,+32,0,0100000,+80,0,1010000,左移三位,左移四位,4.6 規(guī)格

47、化浮點(diǎn)運(yùn)算,130,4.6 規(guī)格化浮點(diǎn)運(yùn)算,采用小階向大階對(duì)齊規(guī)則: 當(dāng)階碼小的數(shù)的尾數(shù)右移并相應(yīng)增加階碼時(shí),舍去的僅是尾數(shù)低位部分,誤差比較小 要使小階的階碼增大,則相應(yīng)的尾數(shù)右移,直到兩數(shù)的階碼相等為止,131,4.6 規(guī)格化浮點(diǎn)運(yùn)算,(2)尾數(shù)加/減 對(duì)階之后,就可以進(jìn)行尾數(shù)加/減,即 MAMBMC,132,4.6 規(guī)格化浮點(diǎn)運(yùn)算,(3)尾數(shù)結(jié)果規(guī)格化 為了提高運(yùn)算精度,進(jìn)行結(jié)果規(guī)格化操作 規(guī)格化的尾數(shù)M應(yīng)滿足: 1/2|M|1 設(shè)尾數(shù)用雙符號(hào)位補(bǔ)碼表示,經(jīng)過(guò)加/減運(yùn)算可能出現(xiàn)以下情況:,133,4.6 規(guī)格化浮點(diǎn)運(yùn)算, 00.1 x x x 11.0 x x x 00.0 x x x

48、11.1 x x x 01.x x x x 10.x x x x,第、種情況,已是規(guī)格化數(shù) 第、種情況需要使尾數(shù)左移以實(shí)現(xiàn)規(guī)格化,稱為左規(guī),134,(2) 規(guī)格化數(shù)的判斷,M0,真值,原碼,補(bǔ)碼,反碼,規(guī)格化形式,M 0 M-1/2,規(guī)格化形式,真值,原碼,補(bǔ)碼,反碼,原碼 不論正數(shù)、負(fù)數(shù),第一數(shù)位為1,補(bǔ)碼 符號(hào)位和第 一數(shù)位不同,2.2 機(jī)器數(shù)的定點(diǎn)表示與浮點(diǎn)表示,135,特例,S = 1, 1補(bǔ) 是規(guī)格化的數(shù),2.2 機(jī)器數(shù)的定點(diǎn)表示與浮點(diǎn)表示,136,4.6 規(guī)格化浮點(diǎn)運(yùn)算, 00.0 x x x 11.1 x x x,尾數(shù)每左移一位,階碼相應(yīng)減1(EC-1EC),直至成為規(guī)格化數(shù)為止

49、 左規(guī)=Cs1Cs2C1+Cs1Cs2C1,137,4.6 規(guī)格化浮點(diǎn)運(yùn)算, 01.x x x x 10.x x x x 此時(shí)尾數(shù)的絕對(duì)值大于1,應(yīng)將尾數(shù)右移實(shí)現(xiàn)規(guī)格化,稱為右規(guī) 尾數(shù)每右移一位,階碼相應(yīng)加1(EC+1EC)。 (右規(guī)最多進(jìn)行一次)右規(guī)的條件如下: 右規(guī)=Cs1Cs2,138,4.6 規(guī)格化浮點(diǎn)運(yùn)算,(4)舍入 受硬件限制,對(duì)階和右規(guī)后可能將尾數(shù)的低位丟失,會(huì)引起誤差,139,4.6 規(guī)格化浮點(diǎn)運(yùn)算,(5)溢出判斷 當(dāng)尾數(shù)之和(差)出現(xiàn) 10.x x x x或01.x x x x時(shí),不表示溢出,將此數(shù)右規(guī)后,根據(jù)階碼來(lái)判斷浮點(diǎn)運(yùn)算結(jié)果是否溢出 溢出情況由階碼的符號(hào)決定,若階碼也

50、用雙符號(hào)位補(bǔ)碼表示,當(dāng):,140,4.6 規(guī)格化浮點(diǎn)運(yùn)算,EC補(bǔ)=01, x x x x,表示上溢。浮點(diǎn)數(shù)真正溢出,機(jī)器需停止運(yùn)算,做溢出中斷處理 EC補(bǔ)=10, x x x x,表示下溢。浮點(diǎn)數(shù)值趨于零,機(jī)器不做溢出處理,按機(jī)器零處理,141,4.6 規(guī)格化浮點(diǎn)運(yùn)算,2.浮點(diǎn)數(shù)加減運(yùn)算舉例 A=0.1011102-01 B=-(0.101011)2-10 格式:階碼4位,用移碼表示(偏置值為23);尾 數(shù)8位,用補(bǔ)碼表示,包含一位符號(hào)位,即,A浮=0111;0.1011100 B浮=0110;1.0101010,142,4.6 規(guī)格化浮點(diǎn)運(yùn)算,(1)對(duì)階 求階差:E=EA-EB=-1-(-2

51、)=1 E=1,表示EAEB。將MB右移一位,其階碼加1,得: B浮=0111;1.1010101 (2)尾數(shù)求和 00.1011100 + 11.1010101,00.0110001,143,4.6 規(guī)格化浮點(diǎn)運(yùn)算,(3)尾數(shù)結(jié)果規(guī)格化 結(jié)果的尾數(shù)是非規(guī)格化的數(shù),應(yīng)左規(guī) A+B尾補(bǔ)=00.0110001 A+B尾補(bǔ) =00.11000102-01 最后結(jié)果為 A+B浮 =0110;0.1100010 A+B=(0.110001)2-10,144,4.6 規(guī)格化浮點(diǎn)運(yùn)算,例:X=0.1101002-011,Y=-0.1011102-100,用補(bǔ)碼運(yùn)算規(guī)則求X+Y和X-Y,階碼和尾數(shù)均用補(bǔ)碼表示

52、,階碼4位,尾數(shù)7位 X+Y = 0.111010 2-100 X-Y = 0.1001012-010,145,4.6 規(guī)格化浮點(diǎn)運(yùn)算,4.6.2 浮點(diǎn)乘除運(yùn)算 設(shè)兩個(gè)非0的規(guī)格化浮點(diǎn)數(shù)分別為 A=MA2EA B=MB2EB 則浮點(diǎn)乘法和除法為 AB=(MAMB)2(EA+EB) AB=(MAMB)2(EA-EB),146,4.6 規(guī)格化浮點(diǎn)運(yùn)算,1.乘法步驟 (1)階碼相加 階碼用移碼表示的時(shí)候,要減去一個(gè)偏置值2n 因?yàn)镋A移=2n+EA,EB移=2n+EB EA+EB移=2n+(EA+EB) 而EA移+EB移=2n+EA+2n+EB,147,4.6 規(guī)格化浮點(diǎn)運(yùn)算,(2)尾數(shù)相乘 與定點(diǎn)

53、小數(shù)乘法算法相同,148,4.6 規(guī)格化浮點(diǎn)運(yùn)算,(3)尾數(shù)結(jié)果規(guī)格化 1/4|MAMB|1 1/2|MAMB|1時(shí),乘積已是規(guī)格化數(shù),不須再進(jìn)行規(guī)格化操作 1/4 |MAMB|1/2時(shí),需左規(guī)一次,149,4.6 規(guī)格化浮點(diǎn)運(yùn)算,2.除法步驟 (1)尾數(shù)調(diào)整 檢測(cè)|MA|MB| 若不小于,則MA右移一位,EA+1EA,尾數(shù)調(diào)整;因?yàn)锳、B都是規(guī)格化數(shù),所以最多調(diào)整一次,150,4.6 規(guī)格化浮點(diǎn)運(yùn)算,2.除法步驟 (2)階碼相減 兩浮點(diǎn)數(shù)的階碼相減,當(dāng)階碼用移碼表示時(shí),應(yīng)注意要加上一個(gè)偏置值2n (3)尾數(shù)相除 與定點(diǎn)小數(shù)除法算法相同,151,第4章,4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn) 4.2 定點(diǎn)

54、加減運(yùn)算 4.3 帶符號(hào)數(shù)的移位和舍入操作 4.4 定點(diǎn)乘法運(yùn)算 4.5 定點(diǎn)除法運(yùn)算 4.6 規(guī)格化浮點(diǎn)運(yùn)算 4.7 十進(jìn)制整數(shù)的加減運(yùn)算 4.8 邏輯運(yùn)算與實(shí)現(xiàn) 4.9 運(yùn)算器的基本組成與實(shí)例,152,4.7 十進(jìn)制整數(shù)的加減運(yùn)算,4.7.1 一位十進(jìn)制加法運(yùn)算 1.8421碼加法運(yùn)算 一位8421碼用四位二進(jìn)制數(shù)表示,所以8421碼十位數(shù)的“1”是個(gè)位數(shù)的進(jìn)位 按四位二進(jìn)制數(shù),進(jìn)位的值是16,不是8421碼的10。必須6校正,使該進(jìn)位正確,153,4.7 十進(jìn)制整數(shù)的加減運(yùn)算,+6校正函數(shù)=C4+S4S3+S4S2,154,4.7 十進(jìn)制整數(shù)的加減運(yùn)算,校正舉例,0101 5,+ 100

55、08,1101,+ 0110 6,1 0011 13,1001 9,+ 10008,1 0001,+ 0110 6,1 0111 17,155,4.7 十進(jìn)制整數(shù)的加減運(yùn)算,4.7.1 一位十進(jìn)制加法運(yùn)算 8421碼的加法規(guī)則: 兩個(gè)8421碼相加時(shí), “逢二進(jìn)一”; 當(dāng)和9,無(wú)需校正; 當(dāng)和9,則+6校正; 在做+6校正的同時(shí),將產(chǎn)生向上一位的進(jìn)位,156,4.7 十進(jìn)制整數(shù)的加減運(yùn)算,2.余3碼加法運(yùn)算 十進(jìn)制余3碼加法規(guī)則: 兩個(gè)余3碼相加,“逢二進(jìn)一” ; 若其和沒(méi)有進(jìn)位,則減3(即+1101)校正; 若其和有進(jìn)位,則加3(即+0011)校正,157,4.7 十進(jìn)制整數(shù)的加減運(yùn)算,-3

56、校正函數(shù)=C4 +3校正函數(shù)=C4,158,4.7 十進(jìn)制整數(shù)的加減運(yùn)算,校正舉例,0110 3,+ 10005,1110,+ 1101 無(wú)進(jìn)位,-3,+1101,1011 8,1001 6,+ 10005,1 0001,+ 0011 有進(jìn)位,+3,1 0100 11,159,第4章,4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn) 4.2 定點(diǎn)加減運(yùn)算 4.3 帶符號(hào)數(shù)的移位和舍入操作 4.4 定點(diǎn)乘法運(yùn)算 4.5 定點(diǎn)除法運(yùn)算 4.6 規(guī)格化浮點(diǎn)運(yùn)算 4.7 十進(jìn)制整數(shù)的加減運(yùn)算 4.8 邏輯運(yùn)算與實(shí)現(xiàn) 4.9 運(yùn)算器的基本組成與實(shí)例,160,4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn),4.1.1 加法器 由全加器再配以其他必

57、要的邏輯電路組成,1.全加器 三個(gè)輸入量:操作數(shù)Ai和Bi、低位傳來(lái)的進(jìn)位Ci-1 兩個(gè)輸出量:本位和Si、向高位的進(jìn)位Ci,161,4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn),162,4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn),邏輯表達(dá)式為 Si=AiBiCi-1 Ci=AiBi+(AiBi)Ci-1,163,4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn),164,4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn),2.串行加法器與并行加法器 串行加法器,只有一個(gè)全加器,數(shù)據(jù)逐位串行送入加法器進(jìn)行運(yùn)算 如果操作數(shù)長(zhǎng)n位,加法就要分n次進(jìn)行,每次只能產(chǎn)生一位和,165,4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn),并行加法器由多個(gè)全加器組成,其位數(shù)的多少取決于機(jī)器的字長(zhǎng),數(shù)據(jù)的各位同時(shí)運(yùn)算 并行加法器操作數(shù)的各位是同時(shí)提供的,低位運(yùn)算產(chǎn)生的進(jìn)位影響高位的運(yùn)算結(jié)果,166,4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn),例如:1111和0001相加,最低位產(chǎn)生的進(jìn)位將逐位影響至最高位 并行加法器的最長(zhǎng)運(yùn)算時(shí)間主要是由進(jìn)位信號(hào)的傳遞時(shí)間決定的 提高并行加法器速度是加快進(jìn)位產(chǎn)生和傳遞的速度,167,4.1 基本算術(shù)運(yùn)算的實(shí)現(xiàn),4.1.2 進(jìn)位的產(chǎn)生和傳遞 進(jìn)位表達(dá)式 Ci=AiBi+(AiBi)Ci-1,進(jìn)位產(chǎn)生函數(shù)用Gi表示,進(jìn)位傳遞函數(shù)用Pi表示,Gi含義:若本位的兩個(gè)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論