版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第3章運(yùn)算方法與運(yùn)算器本章主要內(nèi)容基本的二進(jìn)制加法器和ALU部件定點(diǎn)加、減、乘、除運(yùn)算浮點(diǎn)加、減、乘、除運(yùn)算十進(jìn)制數(shù)的運(yùn)算與十進(jìn)制加法器邏輯運(yùn)算南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳3.1運(yùn)算器的設(shè)計(jì)方法根據(jù)機(jī)器字長,將N個(gè)一位全加器通過加法進(jìn)位鏈連接構(gòu)成N位并行加法器。利用多路選擇邏輯在加法器的輸入端實(shí)現(xiàn)多種輸入組合,將加法器擴(kuò)展為多功能的算術(shù)邏輯運(yùn)算部件。根據(jù)乘除運(yùn)算的算法,將加法器與移位器組合,構(gòu)成定點(diǎn)乘法器與除法器。將計(jì)算定點(diǎn)整數(shù)的階碼運(yùn)算器和計(jì)算定點(diǎn)小數(shù)的尾數(shù)運(yùn)算器組合構(gòu)成浮點(diǎn)運(yùn)算器。在算術(shù)邏輯運(yùn)算部件的基礎(chǔ)上,配合各類相關(guān)的寄存器構(gòu)成計(jì)算機(jī)中的運(yùn)算器。南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳1.基本的二進(jìn)制加法器半加器——不考慮來自低位的進(jìn)位
S0=A0+B0
進(jìn)位C0輸入——A0、B0輸出——S0、C0∑COABSCO邏輯圖真值表=1&ABSCO電路實(shí)現(xiàn)南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳全加器——考慮來自低位的進(jìn)位Si=Ai+Bi+Ci-1 進(jìn)位Ci輸入——Ai、Bi、Ci-1輸出——Si、Ci∑CICOaibisici-1ci邏輯圖aibici-1cisi0000000101010010111010000101101101011111真值表全加器的邏輯表達(dá)式si=ai⊕bi⊕ci-1ci=aibi+(ai⊕bi)ci-1或ci=aibi+aici-1+bici-1FA南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳
(1)si=ai⊕bi⊕ci-1
ci=aibi+(ai⊕bi)ci-1
(2)si=ai⊕bi⊕ci-1
ci=aibi+aici-1+bici-1電路實(shí)現(xiàn)SiCi=1&AiBiCi-1=1&≧1&南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳1)并行加法器SnSn-1Sn-2…S1S0=AnAn-1An-2…A1A0+BnBn-1Bn-2…B1B02.并行加法器及快速進(jìn)位鏈CnSnCn-1Sn-1Cn-2Sn-2FAnFAn-1FA1FA0FAn-2
…C1S1C0S0C-1A0B0A1B1An-2Bn-2An-1Bn-1AnBn
每位全加器的進(jìn)位輸出是高一位全加器的進(jìn)位輸入,當(dāng)全加器有進(jìn)位時(shí),一級(jí)一級(jí)傳遞的進(jìn)位過程會(huì)大大影響運(yùn)算速度。南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳Ci=AiBi
+(Ai⊕Bi
)Ci-1本地進(jìn)位——AiBi,與低位無關(guān),記為di傳遞進(jìn)位——(Ai⊕Bi
)Ci-1,與低位相關(guān)
Ci=di
+tiCi-1傳遞條件ti南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳2)串行進(jìn)位鏈——進(jìn)位采用串行傳遞C0=d0+t0C-1C1=d1+t1C0C2=d2+t2C1C3=d3+t3C2
以4位并行加法器為例,每一位的進(jìn)位表達(dá)式=d0?t0C-1=d1?t1C0=d2?t2C1=d3?t3C2&t3&C3d3&C2d2&t2&t1&t0C-1&C1d1&C0d0設(shè)與非門的延遲時(shí)間為t1位全加器產(chǎn)生進(jìn)位的全部時(shí)間為?4位全加器產(chǎn)生進(jìn)位的全部時(shí)間為8tn位全加器產(chǎn)生進(jìn)位的全部時(shí)間為2nt2t南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳采用串行進(jìn)位鏈的并行加法器,速度受限于進(jìn)位Ci的傳遞。提高速度的途徑采用更高速的器件,減短Ci的傳遞時(shí)延。改進(jìn)進(jìn)位鏈的結(jié)構(gòu),減少延遲級(jí)數(shù)。南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳以4位并行加法器為例3)并行進(jìn)位鏈——進(jìn)位同時(shí)產(chǎn)生C0=d0+t0C-1C1=d1+t1C0C2=d2+t2C1C3=d3+t3C2 =d1+t1d0
+t1t0C-1=d2+t2d1+t2t1d0
+t2t1t0C-1=d3+t3d2+t3t2d1+t3t2t1d0
+t3t2t1t0C-1南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳4位的并行進(jìn)位鏈≥1
&
&≥1
&≥1
&≥1
&C-1d3t3d2t2d1t1d0t0
1≥1
1
1C0C1C2C3d0+t0C-1d1+t1d0
+t1t0C-1d2+t2d1+t2t1d0
+t2t1t0C-1d3+t3d2+t3t2d1+t3t2t1d0
+t3t2t1t0C-11.5tyty設(shè)與或非門的延遲時(shí)間為1.5t,非門/或門的延遲時(shí)間為t當(dāng)di
、ti
形成后,只需2.5t
即可產(chǎn)生全部4位進(jìn)位南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳4)分組并行進(jìn)位鏈理想的并行進(jìn)位鏈?zhǔn)莕位全加器的n個(gè)進(jìn)位同時(shí)產(chǎn)生,但實(shí)際實(shí)現(xiàn)有困難。對(duì)n位并行進(jìn)位鏈的處理方案組內(nèi)并行、組間串行組內(nèi)并行、組間并行南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳①組內(nèi)并行、組間串行(單重分組跳躍進(jìn)位)將n位并行加法器分成若干組,組內(nèi)的進(jìn)位同時(shí)產(chǎn)生,組與組之間采用串行進(jìn)位。以16位并行加法器為例,分為四組,每組四位組內(nèi)并行:組內(nèi)的進(jìn)位同時(shí)產(chǎn)生,即C0~C3/C4~C7/C8~C11/C12~C15同時(shí)產(chǎn)生。組間串行:組間的進(jìn)位不同時(shí)產(chǎn)生。即按產(chǎn)生時(shí)間
C12~C15>C8~C11>C4~C7>C0~C3。南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳16位組內(nèi)并行、組間串行進(jìn)位第4組第3組第2組第1組C15C14C13C12C11C10C9C8C7C6C5C4C3C2C1C0d15t15d14d13d12t14t13t12d11d10d9d8t11t10t9t8d7d6d5d4t7t6t5t4d3d2d1d0t3t2t1t0C-1當(dāng)di
、ti
形成后
2.5t
5t
7.5t
10t
產(chǎn)生
C3~C0
產(chǎn)生
C7~C4產(chǎn)生
C11~C8
產(chǎn)生
C15~C12南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳小組內(nèi)分析(1)以第一組內(nèi)最高位進(jìn)位C3為例
C3=d3+t3C2
=
d3+t3d2+t3t2d1+t3t2t1d0
+t3t2t1t0C-1C3=D0
+T0C-1本地進(jìn)位,與低位進(jìn)位無關(guān)Di傳遞條件,與低位進(jìn)位相關(guān)
Ti南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳小組內(nèi)分析(2)16位組內(nèi)并行、組間串行進(jìn)位
C3 =D0
+T0C-1 (第一組)
C7 =D1
+T1C3 (第二組)
C11 =D2
+T2C7 (第三組)
C15 =D3
+T3C11 (第四組)南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳②組內(nèi)并行、組間并行(雙重分組跳躍進(jìn)位)n位并行加法器分若干大組,大組中又包含若干小組每個(gè)小組的最高位同時(shí)并行產(chǎn)生每個(gè)小組內(nèi)的其他進(jìn)位也同時(shí)并行產(chǎn)生大組與大組之間、小組與小組之間采用串行進(jìn)位南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳16位組內(nèi)并行、組間并行第4小組第3小組第2小組第1小組第一大組C15C11C7C3C14~12C10~8C6~4C2~0南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳大組實(shí)現(xiàn)第4小組第3小組第2小組第1小組T3T2≥1≥1&
&≥1&≥1&≥1&
1
1
1C-1D3D2D1T1D0T0C15C11C7C3當(dāng)Di
Ti
形成后,2.5t
可產(chǎn)生4位進(jìn)位C3=D0
+T0C-1C7=D1
+T1C3C11=D2
+T2C7C15=D3
+T3C11南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳小組實(shí)現(xiàn)——以第一小組為例C2C1C0D0T0
1≥1&
&≥1&≥1&≥1&
1
1
1C-1
1d3t3d2t2d1t1d0t0當(dāng)di
ti
形成后,2.5t
即可產(chǎn)生3位進(jìn)位、本地進(jìn)位、傳遞條件南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳16位組內(nèi)并行、組間并行第4小組第3小組第2小組第1小組第一大組D3T3D2T2D1T1D0T0C15C11C7C3C14~12C10~8C6~4C2~0d15~12t15~12d11~8t11~8d9~4t9~4d3~0t3~0C-1當(dāng)di
ti
和C-1形成后, 經(jīng)2.5t
產(chǎn)生C2、C1、C0、D0~D3、T0~T3
經(jīng)5t 產(chǎn)生C15、
C11、
C7、
C3
經(jīng)7.5t產(chǎn)生C14~C12、C10~C8、C6~C4南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳32位組內(nèi)并行、組間并行進(jìn)位86754321第二大組第一大組C31C27C23C19C15C11C7C3南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳32位組內(nèi)并行、組間并行進(jìn)位過程86754321第二大組第一大組C31C27C23C19C15C11C7C3di
…tidi
…tidi
…tidi
…tiC2~C0C6~C4C10~C8C14~C12D0T0D1T1D2T2D3T3di
…tidi
…tidi
…tidi
…tiC18~C16C22~C20C26~C24C30~C28D4T4D5T5D6T6D7T7C-1小組進(jìn)位——第一重進(jìn)位鏈大組進(jìn)位——第二重進(jìn)位鏈當(dāng)di
ti
和C-1形成后, 經(jīng)2.5t
產(chǎn)生C2、C1、C0、D0~D7、T0~T7
經(jīng)5t 產(chǎn)生C15、
C11、
C7、
C3
經(jīng)7.5t產(chǎn)生C31、C27、C23、C19及C6~C4等 經(jīng)10t產(chǎn)生全部進(jìn)位南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳5)不同進(jìn)位鏈產(chǎn)生全部進(jìn)位的對(duì)比假設(shè)與或非門延時(shí)1.5ty,與非/非/或門延時(shí)ty數(shù)據(jù)位n串行進(jìn)位并行進(jìn)位單重分組雙重分組12t---48t2.5t--1632t2.5t10t7.5t(1大組)3264t2.5t20t10t(2大組)
機(jī)器究竟采用哪種方案,分幾個(gè)大組,幾個(gè)小組,每個(gè)小組應(yīng)包含幾位,應(yīng)根據(jù)運(yùn)算速度指標(biāo)和所選元器件等多方面因素考慮。南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳補(bǔ)碼加減運(yùn)算基本關(guān)系加法:[x]補(bǔ)+[y]補(bǔ)=[x+y]補(bǔ)(modM)
兩數(shù)補(bǔ)碼之和等于兩數(shù)和的補(bǔ)碼減法:[x]補(bǔ)-[y]補(bǔ)=[x]補(bǔ)+[-y]補(bǔ)=[x-y]補(bǔ)(modM)
兩數(shù)補(bǔ)碼之差等于兩數(shù)差的補(bǔ)碼3.2定點(diǎn)補(bǔ)碼加減運(yùn)算注:如果是定點(diǎn)小數(shù)M=2,如果是定點(diǎn)整數(shù)M=2n+1南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳參加運(yùn)算的各個(gè)操作數(shù)均以補(bǔ)碼表示,運(yùn)算結(jié)果仍以補(bǔ)碼表示;按“逢二進(jìn)一”的運(yùn)算規(guī)則進(jìn)行運(yùn)算;符號(hào)位與數(shù)值位一樣參加運(yùn)算,結(jié)果的符號(hào)位由運(yùn)算得出;
進(jìn)行加法時(shí),將兩補(bǔ)碼數(shù)直接相加,得到兩數(shù)之和的補(bǔ)碼;進(jìn)行減法時(shí),則將減數(shù)變補(bǔ)(由[y]補(bǔ)求[-y]補(bǔ)),然后與被減數(shù)相加,得到兩數(shù)之差的補(bǔ)碼;補(bǔ)碼總是對(duì)確定的模而言,若運(yùn)算結(jié)果超過模(符號(hào)位上產(chǎn)生了進(jìn)位),則將模自動(dòng)丟掉。
2.補(bǔ)碼運(yùn)算的基本規(guī)則南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳補(bǔ)碼加減丟模舉例例3.1x=+0.1001,y=+0.0101x-y=?[x]補(bǔ)=0.1001 [y]補(bǔ)=0.0101 [-y]補(bǔ)=1.1011x-y=+0.0100例3.2x=-0.0110,y=-0.0011x+y=?[x]補(bǔ)=1.1010 [y]補(bǔ)=1.1101x+y=-0.1001[x]補(bǔ)-[y]補(bǔ)=[x]補(bǔ)+[-y]補(bǔ)0.1001+1.1011
10.0100自動(dòng)丟模[x]補(bǔ)+[y]補(bǔ)1.1010+1.1101
11.0111自動(dòng)丟模[x-y]補(bǔ)=[x+y]補(bǔ)=南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳補(bǔ)碼加減溢出舉例例3.4x=+0.1010,y=+0.1001x+y=?[x]補(bǔ)=0.1010 [y]補(bǔ)=0.1001例3.5x=-0.1101,y=-0.1011x+y=?[x]補(bǔ)=1.0011 [y]補(bǔ)=1.01010.1010+0.1001
1.0011[x+y]補(bǔ)=
[x]補(bǔ)+[y]補(bǔ)1.0011+1.0101
1
0.1000自動(dòng)丟模符號(hào)不正確[x+y]補(bǔ)=
[x]補(bǔ)+[y]補(bǔ)符號(hào)不正確正溢出負(fù)溢出南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳設(shè)溢出判別信號(hào)OVR若OVR=1則運(yùn)算產(chǎn)生溢出若OVR=0則運(yùn)算沒有產(chǎn)生溢出判斷OVR的方法設(shè)[x]補(bǔ)=xf
.x1x2…xn[y]補(bǔ)=yf
.y1y2…yn
和[s]補(bǔ)=sf
.s1s2…sn
根據(jù)兩個(gè)操作數(shù)的符號(hào)與結(jié)果的符號(hào)判別根據(jù)兩數(shù)相加時(shí)產(chǎn)生的進(jìn)位判別采用變形補(bǔ)碼運(yùn)算3.溢出判別與變形補(bǔ)碼南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳1)根據(jù)兩個(gè)操作數(shù)的符號(hào)與結(jié)果的符號(hào)判別同號(hào)兩數(shù)相加才可能溢出溢出的條件為:
OVR=xf
yf
sf
+xf
yf
sf
=(xf⊕sf)(yf⊕sf)——xf、yf
均與sf不同,即產(chǎn)生溢出&=1=1xfsfyfOVRa)溢出判別電路xfyfsf000001010011100101110111南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳設(shè)Cf為符號(hào)位產(chǎn)生的進(jìn)位,C1為最高數(shù)值位產(chǎn)生的進(jìn)位溢出的條件為:
OVR=Cf
C1+Cf
C1=Cf⊕C1
——符號(hào)位和數(shù)值最高位產(chǎn)生的進(jìn)位不一樣即溢出2)根據(jù)兩數(shù)相加時(shí)產(chǎn)生的進(jìn)位判別=1OVRCfC1b)溢出判別電路南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳3)采用變形補(bǔ)碼運(yùn)算變形補(bǔ)碼——采用兩個(gè)符號(hào)位表示的補(bǔ)碼定點(diǎn)小數(shù)的變形補(bǔ)碼定義定點(diǎn)整數(shù)的變形補(bǔ)碼4)
(mod
x[]x
變形補(bǔ)?íì0x1-<£x4+1x0<£=2n+2
)
(mod
x[]x
變形補(bǔ)?íì0x2n-<£x2n+2+2nx0<£=00.xxxxx11.xxxxx00
xxxxx11xxxxx南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳設(shè)和[s]變形補(bǔ)=sf1sf2.s1s2…sn溢出的條件為:
OVR=sf1⊕sf2
——結(jié)果兩符號(hào)位不一致即產(chǎn)生溢出符號(hào)位含義:
sf1sf2=00/11
結(jié)果正確
sf1sf2=01
正溢出
sf1sf2=10
負(fù)溢出②變形補(bǔ)碼的溢出判斷條件c)變形補(bǔ)碼的溢出判斷電路=1OVRsf1sf2南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳4.算術(shù)邏輯運(yùn)算部件ALU1)補(bǔ)碼加減運(yùn)算的硬件實(shí)現(xiàn)
[A+B]補(bǔ)=[A]補(bǔ)+[B]補(bǔ)
[A-B]補(bǔ)=[A]補(bǔ)+[-B]補(bǔ)取反:B⊕10=加1=減FAFAFA…C1C2Cn-1CnA1B1A2B2AnBnS1S2SnC0=1=1=1M采用串行進(jìn)位鏈的補(bǔ)碼加減運(yùn)算邏輯電路C0=1=[A]補(bǔ)+[B]補(bǔ)+1南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳2)算術(shù)邏輯運(yùn)算部件ALU以加法器為基礎(chǔ)的多功能組合邏輯電路。在加法器的輸入端加入一個(gè)函數(shù)發(fā)生器,為加法器提供不同的輸入函數(shù),從而構(gòu)成一個(gè)具有較完善的算術(shù)邏輯運(yùn)算功能的運(yùn)算部件。南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳74181①
引腳及功能n+44位數(shù)據(jù)輸入低位進(jìn)位4位數(shù)據(jù)輸出工作方式選擇功能選擇高位進(jìn)位A=B時(shí)輸出1本地進(jìn)位、傳遞條件南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳②
用SN74181實(shí)現(xiàn)16位的加法器i.采用組內(nèi)并行、組間串行——74181級(jí)聯(lián)C4C874181a4~
a1C0b4~
b1………s4~
s174181a8~
a5b8~
b5………s8~
s5C1274181a12~
a9b12~
b9………s12~
s974181a16~
a13b16~
b13………s16~
s13C16南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳②采用組內(nèi)并行、組間并行——74181、74182大組跳躍進(jìn)位鏈小組跳躍進(jìn)位鏈南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳原碼乘法——從手算演化而來n位數(shù)據(jù)相乘得到n個(gè)部分積,乘積為部分積相加除第一個(gè)部分積,其他部分積都在前一個(gè)部分積的基礎(chǔ)上左移1位2個(gè)n位數(shù)相乘,積不超過2n位,用2n位加法器相加3.3定點(diǎn)乘法運(yùn)算12×9448108
1128有效數(shù)值n位乘積為n~2n位部分積南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳原碼乘法中,兩操作數(shù)和乘積均為原碼表示。因原碼中符號(hào)不參與運(yùn)算,故原碼乘法必須包含:乘積的符號(hào)處理兩數(shù)絕對(duì)值相乘設(shè)被乘數(shù)[x]原=x0.x1x2…xn
乘數(shù)[y]原=y0.y1y2……yn
乘積[z]原=[x]原×[y]原=z0.z1z2…z2n。乘積的符號(hào)——z0=x0⊕y0
(模2加)乘積的數(shù)值——z1z2…z2n
=
x1x2…xn
×
y1y2……yn
南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳④原碼一位乘遞推公式|x|×|y|=|x|×0.y1y2……yn
=|x|×(2-1y1
+2-2y2
+…+2-nyn
)=2-1|x|y1
+2-2|x|y2
+…+2-n|x|yn=2-1(|x|y1
+2-1|x|y2
+…+2-(n-1)|x|yn
)=2-1{|x|y1+2-1[|x|y2+2-1(|x|y3…+2-1(|x|yn+0)…]}z0z1zn=|x|×|y|南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳遞推公式及原碼一位乘運(yùn)算規(guī)則z0=0z1=2-1(|x|yn+z0)z2=2-1(|x|yn-1+z1)……zi
=2-1(|x|yn-i+1+zi-1)……zn
=2-1(|x|y1+zn-1)乘積符號(hào)和數(shù)值部分單獨(dú)運(yùn)算。設(shè)初始部分積z0=0,增設(shè)進(jìn)位觸發(fā)器Cj,初始化為0。|乘數(shù)y|的最低位yn作為乘法判別位,若yn為1,則在前次部分積上加上|被乘數(shù)|,然后將本次部分積連同|乘數(shù)|及Cj一起右移一位;若yn為0,則在前次部分積上加0(或不加),然后將本次部分積連同|乘數(shù)|及Cj一起右移一位。重復(fù)③,直到運(yùn)算n次為止。乘積符號(hào)和數(shù)值結(jié)合,得到結(jié)果。(|x|+zi)(0+zi)南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳例3.9[x]原=0.1101,[y]原=1.1011,求x×y
解:①乘積符號(hào)=0⊕1=1Cj
部分積
乘數(shù)yn0 0000 101
1
加上|x|+ 11010 1101 1011
Cj+部分積+|乘數(shù)|右移0 0110 110
1
加上|x|+ 11011 0011 1101
Cj+部分積+|乘數(shù)|右移0 1001 111
0
加上0+ 00000 1001 1110
Cj+部分積+|乘數(shù)|右移
0 0100 1111
加上|x|+ 11011 0001 1111
Cj+部分積+|乘數(shù)|右移0 1000 1111②數(shù)值部分|x×y|=0.10001111③加上符號(hào)位得:[x×y]原=1.10001111
x×y
=-0.10001111
南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳原碼一位乘法的硬件實(shí)現(xiàn)部分積和乘積高部分乘數(shù)和乘積低部分10n0N位加法器進(jìn)位乘法判別位被乘數(shù)乘法控制觸發(fā)器符號(hào)生成南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳原碼一位乘法的運(yùn)算流程南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳⑤原碼兩位乘——判別位兩位yn-1yn操作說明00zi=1/4(zi+0)部分積zi+0,右移兩位01zi=1/4(zi-1+x)部分積zi+x,右移兩位10zi=1/4(zi-1+2x)部分積zi+2x,右移兩位11zi=1/4(zi-1+3x)部分積zi+3x,右移兩位zi=1/4(zi-1-x)+x
采用補(bǔ)碼南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳原碼兩位乘法的運(yùn)算控制若n為奇數(shù),將乘數(shù)加一符號(hào)位0形成偶數(shù)位,共做(n+1)/2次運(yùn)算,最后一次僅移一位。若n為偶數(shù),共做n/2次。若最后一次Cj為1,則再做一次加x操作。采用三個(gè)符號(hào)位:000表示‘+’,111表示‘-’。南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳補(bǔ)碼一位乘設(shè)被乘數(shù)[x]補(bǔ)=x0.x1x2…xn
乘數(shù)[y]補(bǔ)=y0.
y1y2……yn[x×y]補(bǔ)=[x]補(bǔ)×(0.
y1y2……yn-y0)=[x]補(bǔ)×(-y0+2-1y1+2-2y2+2-nyn)=[x]補(bǔ)×(-y0+y1-2-1y1+2-1y2-2-2y2+…+2-(n-1)yn-2-nyn)=[x]補(bǔ)×[(y1-y0)+2-1(y2-y1)+…+2-(n-1)(yn-yn-1)+2-n(yn+1-yn)]=(y1-y0)×[x]補(bǔ)+2-1(y2-y1)×[x]補(bǔ)+…+2-n(yn+1-yn)×[x]補(bǔ)2.補(bǔ)碼乘法——布斯乘法+2-nyn+1)南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳遞推公式[z0]補(bǔ)
=0[z1]補(bǔ)=2-1{[x]補(bǔ)
(yn+1-yn)+[z0]補(bǔ)}[z2]補(bǔ)=2-1{[x]補(bǔ)
(yn-yn-1)+[z1]補(bǔ)}……[zi]補(bǔ)=2-1{[x]補(bǔ)
(yn-i+2-yn-i+1)+[zi-1]補(bǔ)}……[zn]補(bǔ)=2-1{[x]補(bǔ)
(y2-y1)+[zn-1]補(bǔ)}[zn+1]補(bǔ)={[x]補(bǔ)
(yn+1-yn)+[zn]補(bǔ)}南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳補(bǔ)碼一位乘的運(yùn)算規(guī)則參加運(yùn)算的數(shù)均以補(bǔ)碼表示,符號(hào)位參加運(yùn)算且部分積與被乘數(shù)采用雙符號(hào)位(即變形補(bǔ)碼)。乘數(shù)末位增設(shè)附加位yn+1,初始值為0。以ynyn+1作為乘法判別位,具體操作見下表:重復(fù)上面第(3)步,共做n+1次,最后一次不移位。ynyn+1操作說明00/11[zi+1]補(bǔ)=2-1
[zi]補(bǔ)本次部分積連同乘數(shù)一起右移一位(補(bǔ)碼右移)01[zi+1]補(bǔ)=2-1{[zi]補(bǔ)+[x]補(bǔ)}本次部分積加上[x]補(bǔ)后連同乘數(shù)一起右移一位(補(bǔ)碼右移)10[zi+1]補(bǔ)=2-1{[zi]補(bǔ)-
[x]補(bǔ)}本次部分積減去[x]補(bǔ)后連同乘數(shù)一起右移一位(補(bǔ)碼右移)南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳例3.12x=-0.1101,y=-0.1011,用補(bǔ)碼一位乘求x×y
解:①
[x]補(bǔ)=11.0011,[y]補(bǔ)=1.0101,[-x]補(bǔ)=00.1101部分積
乘數(shù)yn
yn+100.0000 1.01010
加上[-x]補(bǔ)+
00.110100.1101 1.01010
部分積+乘數(shù)右移
00.0110 110
101
加上[x]補(bǔ)+
11.0011
11.1001 1101
01
部分積+乘數(shù)右移
11.1100 111010
加上[-x]補(bǔ)+
00.1101
100.1001 111010
部分積+乘數(shù)右移
00.0100 111101
加上[x]補(bǔ)+
11.0011
11.0111 1111
01
部分積+乘數(shù)右移
11.1011 111110
加上[-x]補(bǔ)+
00.1101
100.1000 1111
最后一次,只運(yùn)算②③[x×y]補(bǔ)=0.10001111
x×y
=+0.10001111
自動(dòng)丟模南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳2)補(bǔ)碼一位乘法的硬件實(shí)現(xiàn)雙符號(hào)乘法判別位[x]補(bǔ)[-x]補(bǔ)0110n+1南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳補(bǔ)碼一位乘法的算法流程開始B
[x]補(bǔ),B
[x]補(bǔ)A、CR、Cn+10CnCn+1=?AA+(B)AA+0AA+(B)+1CR
CR+1CR=n+1?AA/2CC/2011000/11YN結(jié)束南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳3)補(bǔ)碼兩位乘法南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳若n為奇數(shù),則乘數(shù)采用一個(gè)符號(hào)位,共做(n+1)/2次,最后一次只移一位若n為偶數(shù),則乘數(shù)采用兩個(gè)符號(hào)位,共做n/2+1次,最后一次不移位為保證補(bǔ)碼的正確移位,部分積與被乘數(shù)采用三個(gè)符號(hào)位補(bǔ)碼兩位乘控制方法南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳3.原碼一位乘與補(bǔ)碼一位乘的比較表示符號(hào)位增設(shè)乘法判別位移位規(guī)則運(yùn)算次數(shù)運(yùn)算位數(shù)原碼不運(yùn)算1Cjyn原碼右移一位n補(bǔ)碼運(yùn)算2yn+1ynyn+1補(bǔ)碼右移一位n+1南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳3.4定點(diǎn)除法運(yùn)算除法要求定點(diǎn)小數(shù)除法——商為定點(diǎn)小數(shù)|x|<1|被除數(shù)|<|除數(shù)|,且除數(shù)≠0定點(diǎn)整數(shù)除法——商為定點(diǎn)整數(shù)|x|≥1|被除數(shù)|≥|除數(shù)|,且除數(shù)≠0被除數(shù)÷除數(shù)=
商…余數(shù)可能會(huì)溢出[0,被除數(shù)]南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳2.原碼除法1)原碼除法中,兩操作數(shù)和乘積均為原碼表示。因原碼中符號(hào)不參與運(yùn)算,故原碼除法必須包含:商的符號(hào)處理兩數(shù)絕對(duì)值相除南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳10111101例3.15x=0-.1011,y=-0.1101,求x/y
=?011010110110010011010101001110110100.0000....0.00.00.0000.0比較所得余數(shù)和除數(shù)決定商余數(shù)>除數(shù),商1余數(shù)<除數(shù),商0每次余數(shù)不動(dòng),低位補(bǔ)0,與右移一位后的除數(shù)比較得到想要的n位商,結(jié)束真正余數(shù)=n位余數(shù)*2-n南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳用余數(shù)(初值為被除數(shù))減去除數(shù)來進(jìn)行余數(shù)和除數(shù)的比較,若結(jié)果為正,表示夠減,上商為1;若結(jié)果為負(fù),表示不夠減,上商為0。余數(shù)減去除數(shù)后不夠減時(shí),可采用恢復(fù)余數(shù)法或不恢復(fù)余數(shù)法來處理問題。用左移余數(shù)方法代替右移除數(shù)操作。真正的余數(shù)=得到的余數(shù)*2-n。因?yàn)橐鰷p法,故采用雙符號(hào)的變形補(bǔ)碼表示。計(jì)算機(jī)實(shí)現(xiàn)除法的方法南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳2)原碼恢復(fù)余數(shù)法(定點(diǎn)小數(shù))判斷溢出,要求|被除數(shù)|<|除數(shù)|,否則為溢出;符號(hào)位單獨(dú)算,用兩數(shù)符號(hào)異或求得;數(shù)值部分運(yùn)算,被除數(shù)減去除數(shù);若所得余數(shù)為正,表示夠減,上商為1,余數(shù)連同除數(shù)左移一位后減去除數(shù);若所得余數(shù)為負(fù),表示不夠減,上商為0,余數(shù)加上除數(shù)(恢復(fù)余數(shù)),再連同除數(shù)左移一位減去除數(shù);重復(fù)第④步,直到求得所要求的商的各位為止。若需要余數(shù),則最后一次余數(shù)為負(fù),上商后需恢復(fù)余數(shù)南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳例3.16x=-0.1011,y=+0.1101,用原碼恢復(fù)余數(shù)求x/y
②商的符號(hào)
=1⊕0=1③商的求解
|商|=0.1101,|余數(shù)|=0.0111④[商]原=1.1101
x/y=-0.1101
余數(shù)的符號(hào)與被除數(shù)一致,即為1[余數(shù)]原=1.0111*2-4=1.00000111 0.00000111解:①
[|x|]補(bǔ)=00.1011,[|y|]補(bǔ)=00.1101,[-|y|]補(bǔ)=11.0011余數(shù) 上商 說明
00.1011 0.0000
-y,+[-|y|]補(bǔ)=11.0011+11.001111.1110 余數(shù)<0,商0,+[|y|]補(bǔ)=00.1101+00.1101
恢復(fù)余數(shù)
00.1011 左移一位
01.0110 -y,+[-|y|]補(bǔ)=11.0011+11.0011100.1001 余數(shù)>0,商1,左移一位
01.0010
-y,+[-|y|]補(bǔ)=11.0011+11.0011
100.0101 余數(shù)>0,商1,左移一位
00.1010
-y,+[-|y|]補(bǔ)=11.0011+11.0011
11.1101 余數(shù)<0,商0,+[|y|]補(bǔ)=00.1101+00.1101
恢復(fù)余數(shù)
00.1010 左移一位
01.0100 -y,+[-|y|]補(bǔ)=11.0011
+11.0011
100.0111 余數(shù)>0,商1,結(jié)束運(yùn)算0.00000.00000.000
10.00
1
00.00
1
10.0
1
1
00.0
1
1
00.0
1
1
00.1
1
0
00.1
1
0
1自動(dòng)丟模0.0000南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳余數(shù)為正時(shí),做余數(shù)左移、相減;余數(shù)為負(fù)時(shí),做相加、左移、相減;由于操作步驟的不一致,控制復(fù)雜;且恢復(fù)余數(shù)的過程也降低了除法速度。因此在實(shí)際應(yīng)用中,很少采用恢復(fù)余數(shù)法?;謴?fù)余數(shù)法分析(1)南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳在恢復(fù)余數(shù)法中:余數(shù)ri>0,左移1位
-除數(shù)
=2ri-y余數(shù)ri<0,+除數(shù)
左移1位
-除數(shù) =2ri+y恢復(fù)余數(shù)法分析(2)——左移1位±除數(shù)南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳3)原碼不恢復(fù)余數(shù)法(定點(diǎn)小數(shù))判斷溢出,要求|被除數(shù)|<|除數(shù)|,否則為溢出;符號(hào)位單獨(dú)算,用兩數(shù)符號(hào)異或求得;數(shù)值部分運(yùn)算,被除數(shù)減去除數(shù);若所得余數(shù)為正,表示夠減,上商為1,余數(shù)連同除數(shù)左移一位后減去除數(shù);若所得余數(shù)為負(fù),表示不夠減,上商為0,余數(shù)連同除數(shù)左移一位后加上除數(shù);重復(fù)第④步,直到求得所要求的商的各位為止。若需要余數(shù),則最后一次余數(shù)為負(fù),上商后需恢復(fù)余數(shù)南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳例3.17x=-0.1011,y=+0.1101,用原碼不恢復(fù)余數(shù)求x/y
②商的符號(hào)
=1⊕0=1③商的求解
|商|=0.1101,|余數(shù)|=0.0111④[商]原=1.1101
x/y=-0.1101
余數(shù)的符號(hào)與被除數(shù)一致,即為1[余數(shù)]原=1.0111*2-4=1.00000111 0.00000111解:①
[|x|]補(bǔ)=00.1011,[|y|]補(bǔ)=00.1101,[-|y|]補(bǔ)=11.0011余數(shù) 上商 說明
00.1011 0.0000
-y,+[-|y|]補(bǔ)=11.0011+11.001111.1110 余數(shù)<0,商0,左移一位
11.1100 +y,+[|y|]補(bǔ)=00.1101+00.1101100.1001 余數(shù)>0,商1,左移一位
01.0010
-y,+[-|y|]補(bǔ)=11.0011+11.0011
100.0101 余數(shù)>0,商1,左移一位
00.1010
-y,+[-|y|]補(bǔ)=11.0011+11.0011
11.1101 余數(shù)<0,商0,左移一位
11.1010 +y,+[|y|]補(bǔ)=00.1101
+00.1101
100.0111 余數(shù)>0,商1,結(jié)束運(yùn)算0.00000.000
10.00
1
00.00
1
10.0
1
1
00.0
1
1
00.1
1
0
00.1
1
0
1自動(dòng)丟模0.0000南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳定點(diǎn)整數(shù)的原碼除法運(yùn)算規(guī)則判斷溢出,要求|被除數(shù)|≥|除數(shù)|,否則為溢出;符號(hào)位單獨(dú)算,用兩數(shù)符號(hào)異或求得;數(shù)值部分運(yùn)算時(shí),把被除數(shù)擴(kuò)展為2n位;其他運(yùn)算規(guī)則同定點(diǎn)小數(shù)除法。南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳②商的符號(hào)
=1⊕0=1③商的求解
|商|=001101,|余數(shù)|=1④[商]原=1001101
x/y=-1101
余數(shù)的符號(hào)與被除數(shù)一致,即為1[余數(shù)]原=100001 -1例3.19[x]原=111011,[y]原=000010,用原碼不恢復(fù)余數(shù)求x/y
解:①
[|x|]補(bǔ)=000000011011 [|y|]補(bǔ)=0000010 [-|y|]補(bǔ)=1111110
被除數(shù)高位低位上商 說明
0000000
110110
-y,+[-|y|]補(bǔ)=1111110+11111101111110 余數(shù)<0,商0,左移一位
1111101
+y,+[|y|]補(bǔ)=0000010+0000010
1111111 余數(shù)<0,商0,左移一位
1111111
-y,+[-|y|]補(bǔ)=1111110+0000010
10000001 余數(shù)>0,商1,左移一位
0000010
-y,+[-|y|]補(bǔ)=1111110+111111010000000 余數(shù)=0,商1,左移一位
0000001
-y,+[-|y|]補(bǔ)=1111110
+1111110
1111111 余數(shù)<0,商0,左移一位
1111111
+y,+[|y|]補(bǔ)=0000010+0000010
10000001 余數(shù)>0,商1,結(jié)束運(yùn)算11011
010110
001100001100
111001011001
110011
0001101自動(dòng)丟模10110010011
000110
0南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳被除數(shù)和余數(shù)除數(shù)商原碼不恢復(fù)除法的硬件實(shí)現(xiàn)控制上商F=0,商1F=1,商0控制±yF=0,-yF=1,+y南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳定點(diǎn)小數(shù)和定點(diǎn)整數(shù)原碼除法寄存器初始分配例xy類型AC操作說明單字長x1/y1雙字長x2/y1單字長x3/y2雙字長x4/y2[x1]原=0.1101 [x2]原=0.00110101 [y1]原=0.1111[x3]原=01101 [x4]原=011010111 [y2]原=0101000.110100.001111010011100.000001010000000001101南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳3.補(bǔ)碼除法——不恢復(fù)余數(shù)的除法(定點(diǎn)小數(shù))1)補(bǔ)碼除法中,兩操作數(shù)和乘積均為補(bǔ)碼表示。而補(bǔ)碼中符號(hào)位參與運(yùn)算,故補(bǔ)碼除法過程為兩操作數(shù)所有位運(yùn)算的過程。
除法完成后,商的符號(hào)由在求商的過程中自動(dòng)形成。南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳除法過程分析(1)部分余數(shù)/被除數(shù)和除數(shù)比較規(guī)則上商規(guī)則部分余數(shù)的形成規(guī)則絕對(duì)值相減余數(shù)>0,|部分余|>|除|余數(shù)<0,|部分余|<|除|余數(shù)>01余數(shù)<00余數(shù)>0左移1位,減除數(shù)余數(shù)<0左移1位,加除數(shù)原碼不恢復(fù)余數(shù)除法補(bǔ)碼不恢復(fù)余數(shù)除法xy同號(hào)[x]補(bǔ)-[y]補(bǔ)余數(shù)與y同號(hào)|部分余|>|除|夠減余數(shù)與y異號(hào)|部分余|<|除|不夠xy異號(hào)x+y余數(shù)與y同號(hào)|部分余|<|除|商1余數(shù)與y異號(hào)|部分余|>|除|商0余數(shù)與y同號(hào)左移1位,減除數(shù)余數(shù)與y異號(hào)左移1位,加除數(shù)
夠減 Sx
Sy
Sr1)x>0,y>0 |x|>|y| |x|<|y|x<0,y<0 |x|>|y| |x|<|y|是 0 0 0否 0 0 1是 1 1 1否 1 1 0南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳除法過程分析(2)部分余數(shù)/被除數(shù)和除數(shù)比較規(guī)則上商規(guī)則部分余數(shù)的形成規(guī)則補(bǔ)碼不恢復(fù)余數(shù)除法xy同號(hào)[x]補(bǔ)-[y]補(bǔ)余數(shù)與y同號(hào)|部分余|>|除|夠減余數(shù)與y異號(hào)|部分余|<|除|不夠xy異號(hào)[x]補(bǔ)+[y]補(bǔ)余數(shù)與y同號(hào)|部分余|<|除|不夠余數(shù)與y異號(hào)|部分余|>|除|夠減余數(shù)與y同號(hào)左移1位,減除數(shù)余數(shù)與y異號(hào)左移1位,加除數(shù)
夠減 Sx
Sy
Sr2)x>0,y<0 |x|>|y|
|x|<|y|x<0,y>0 |x|>|y|
|x|<|y|是 0 1 0否 0 1 1是 1 0 1否 1 0 0南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳除法過程分析(3)部分余數(shù)/被除數(shù)和除數(shù)比較規(guī)則上商規(guī)則部分余數(shù)的形成規(guī)則補(bǔ)碼不恢復(fù)余數(shù)除法xy同號(hào)[x]補(bǔ)-[y]補(bǔ)余數(shù)與y同號(hào)|部分余|>|除|商1余數(shù)與y異號(hào)|部分余|<|除|商0xy異號(hào)[x]補(bǔ)+[y]補(bǔ)余數(shù)與y同號(hào)|部分余|<|除|商1余數(shù)與y異號(hào)|部分余|>|除|商0余數(shù)與y同號(hào)左移1位,減除數(shù)余數(shù)與y異號(hào)左移1位,加除數(shù)參照原碼上商規(guī)則: 商>0
夠減 上商=1
不夠 上商=0商<0(按反碼商)上商=0(真值=1)上商=1(真值=0)夠減不夠不夠夠減南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳除法過程分析(4)部分余數(shù)/被除數(shù)和除數(shù)比較規(guī)則上商規(guī)則部分余數(shù)的形成規(guī)則補(bǔ)碼不恢復(fù)余數(shù)除法xy同號(hào)[x]補(bǔ)-[y]補(bǔ)余數(shù)與y同號(hào)|部分余|>|除|商1余數(shù)與y異號(hào)|部分余|<|除|商0xy異號(hào)[x]補(bǔ)+[y]補(bǔ)余數(shù)與y同號(hào)|部分余|<|除|商1余數(shù)與y異號(hào)|部分余|>|除|商0余數(shù)與y同號(hào)左移1位,減除數(shù)余數(shù)與y異號(hào)左移1位,加除數(shù)類似原碼不恢復(fù)余數(shù)除法求部分余數(shù)規(guī)則:xy同號(hào)x-y
夠減 左移1位-除數(shù)y
不夠 左移1位+除數(shù)yxy異號(hào)x+y
夠減 左移1位+除數(shù)y
不夠 左移1位-除數(shù)y夠減不夠不夠夠減南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳除法過程分析(5)商的符號(hào)處理因?yàn)榉?hào)參與運(yùn)算,所以符號(hào)是算出來的符號(hào)是求得的第一個(gè)商定點(diǎn)小數(shù)第一次一定不夠減xy同號(hào):商>0,余數(shù)與除數(shù)異號(hào),商0xy異號(hào):商<0,余數(shù)與除數(shù)同號(hào),商1——結(jié)論:商的符號(hào)與數(shù)值位上商規(guī)則相同|被除數(shù)|<|除數(shù)|南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳除法過程分析(6)商的校正 根據(jù)上商規(guī)則可知:商為正時(shí),所得的商是正確的;商為負(fù)時(shí),由于是按反碼上商的,與正確的補(bǔ)碼相差末位的“1”,所以存在一定的誤差。南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳商的校正方法①末位恒置1法最末位商不是通過比較上商,而是固定置為1。最大誤差為2-n(定點(diǎn)小數(shù)),在精度要求不高的情況下通常都采用此方法。南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳②校正法若在所要求的位數(shù)內(nèi)能夠除盡除數(shù)為正時(shí),商不必校正;除數(shù)為負(fù)時(shí),商加2-n校正(定點(diǎn)小數(shù));若在所要求的位數(shù)內(nèi)不能除盡商為正時(shí),不必校正;商為負(fù)時(shí),加2-n校正(定點(diǎn)小數(shù));南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳余數(shù)的恢復(fù)——采用校正法時(shí)當(dāng)最后一次比較結(jié)果不夠減時(shí),需要恢復(fù)余數(shù)xy同號(hào)時(shí)不夠減,表示最后一次余數(shù)與y異號(hào),則恢復(fù)余數(shù)=+[y]補(bǔ)xy異號(hào)時(shí)不夠減,表示最后一次余數(shù)與y同號(hào),則恢復(fù)余數(shù)=-[y]補(bǔ)除法過程分析(7)南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳判斷溢出,要求|被除數(shù)|<|除數(shù)|,否則為溢出;若被除數(shù)與除數(shù)同號(hào),被除數(shù)減去除數(shù)(x-y); 若被除數(shù)與除數(shù)異號(hào),被除數(shù)加上除數(shù)(x+y);若所得余數(shù)與除數(shù)同號(hào),則上商為1,余數(shù)左移一位減去除數(shù); 若所得余數(shù)與除數(shù)異號(hào),則上商為0,余數(shù)左移一位加上除數(shù);重復(fù)第③步,若采用末位恒置1法,則共做n次;若采用校正法,共做n+1次。若需要保留余數(shù),則最后一次上商后仍需恢復(fù)余數(shù)。3)補(bǔ)碼不恢復(fù)余數(shù)法的算法南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳例3.22x=-0.1011,y=-0.1101,用補(bǔ)碼不恢復(fù)余數(shù)求x/y
②
商的求解
[x/y]補(bǔ)=0.1101
x/y=+0.1101
若采用校正法求余數(shù)
[r]補(bǔ)=1.1001*2-4=1.11111001 -0.00000111解:①
[x]補(bǔ)=11.0101,[y]補(bǔ)=11.0011,[-y]補(bǔ)=00.1101余數(shù) 上商 說明(Sx=1,Sy=1)11.0101 0.0000
xy同號(hào),-y,+[-y]補(bǔ)=00.1101+
00.1101
100.0010 r和y異號(hào),商0,左移一位
00.0100 +y,+[y]補(bǔ)=11.0011+
11.0011
11.0111 r和y同號(hào),商1,左移一位
10.1110
-y,+[-y]補(bǔ)=00.1101+
00.1101
11.1011 r和y同號(hào),商1,左移一位
11.0110
-y,+[-y]補(bǔ)=00.1101+
00.11011
00.0011 r和y異號(hào),商0,左移一位
00.0110 若采用末位置1法,結(jié)束運(yùn)算+
11.0011
11.1001 r和y同號(hào),商1,結(jié)束運(yùn)算0.00000.000
10.00
1
00.00
1
10.0
1
1
00.0
1
1
00.1
1
0
00.1
1
0
1自動(dòng)丟模0.0000+y,+[y]補(bǔ)=11.0011南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳4)布斯除法在補(bǔ)碼不恢復(fù)余數(shù)法的算法中,被除數(shù)與除數(shù)的計(jì)算和余數(shù)與除數(shù)的計(jì)算規(guī)則不同,不便于控制。被除數(shù)與除數(shù)——加減法余數(shù)與除數(shù)——求商,左移,加減法布斯除法的思想:將被除數(shù)看作余數(shù),采用余數(shù)與除數(shù)的計(jì)算方法和上商規(guī)則。南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳余數(shù)(初始為被除數(shù))與除數(shù)同號(hào),上商為1,將余數(shù)連同商左移一位,減去除數(shù);余數(shù)(初始為被除數(shù))與除數(shù)異號(hào),上商為0,將余數(shù)連同商左移一位,加上除數(shù);重復(fù)上述步驟,直到求得所需位數(shù)為止;若需要保留余數(shù),則最后一次上商后仍需恢復(fù)余數(shù)。
將商符變反,若采用校正法,則對(duì)商校正。②布斯除法的運(yùn)算規(guī)則南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳例3.24x=-0.1011,y=+0.1101,用布斯除法求x/y
②
商的求解
[x/y]補(bǔ)=0.1101
x/y=+0.1101
若采用校正法求余數(shù)
[r]補(bǔ)=1.1001*2-4=1.11111001 -0.00000111解:①
[x]補(bǔ)=11.1011,[y]補(bǔ)=00.1101,[-y]補(bǔ)=11.0011被除數(shù)/余數(shù) 上商 說明(Sx=1,Sy=0)11.0101
xy異號(hào),商0,左移一位
10.1010 +y,+[y]補(bǔ)=00.1101+
00.1101
11.0111 r和y異號(hào),商0,左移一位
10.1110
+y,+[y]補(bǔ)=00.1101+00.1101
11.1011 r和y異號(hào),商0,左移一位
11.0110
+y,+[y]補(bǔ)=00.1101+00.11011
00.0011 r和y同號(hào),商1,左移一位
00.0110 若采用末位置1法,結(jié)束運(yùn)算+11.0011
11.1001 r和y異號(hào),商0,結(jié)束運(yùn)算0.00000.000
00.00
0
00.00
0
00.0
0
0
00.0
0
0
10.0
0
1
00.0
0
1
1自動(dòng)丟模0.0000-y,+[-y]補(bǔ)=11.0011南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳被除數(shù)和余數(shù)除數(shù)商布斯除法的硬件實(shí)現(xiàn)控制上商同號(hào),商1異號(hào),商0Af=1AfBf控制±y同號(hào),-y異號(hào),+y=1AfBf1CfCf南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳定點(diǎn)乘除法硬件實(shí)現(xiàn)說明寄存器C為具有移位功能的寄存器寄存器A不具有移位功能,數(shù)據(jù)的移位通過具有斜送功能的電路實(shí)現(xiàn)(圖3-8),可傳送A/2、2A及A三種數(shù)據(jù)南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳定點(diǎn)整數(shù)的補(bǔ)碼除法運(yùn)算規(guī)則判斷溢出,要求|被除數(shù)|≥|除數(shù)|,否則為溢出;符號(hào)位在運(yùn)算中求得;運(yùn)算時(shí)被除數(shù)數(shù)值位擴(kuò)展成2n位;若被除數(shù)>0,擴(kuò)展時(shí)高位為0;若被除數(shù)<0,擴(kuò)展時(shí)高位為1;其他運(yùn)算規(guī)則同定點(diǎn)小數(shù)補(bǔ)碼除法。南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳定點(diǎn)小數(shù)和定點(diǎn)整數(shù)補(bǔ)碼除法寄存器初始分配例xy類型AC操作說明單字長x1/y1雙字長x2/y1單字長x3/y2雙字長x4/y2[x1]補(bǔ)=0.1101 [x2]補(bǔ)=1.00110101 [y1]補(bǔ)=0.1111[x3]補(bǔ)=11101 [x4]補(bǔ)=011010111 [y2]補(bǔ)=0101000.110111.001111010011100.000001010111111001101南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳3.5浮點(diǎn)四則運(yùn)算1、浮點(diǎn)加減運(yùn)算
(N)R=±S×Re 3.5*104+1.2*103=結(jié)論:1)階碼相同的兩數(shù)才能相加減;
2)若階碼不同,則先將階碼調(diào)整相同,一般將小階碼調(diào)整為大階碼,同時(shí)縮小相應(yīng)尾數(shù);
3)階碼相同時(shí),尾數(shù)加減。3.5*104+0.12*104=3.62*104=35*103+1.2*103=36.2*103=3.62*104南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳計(jì)算機(jī)中浮點(diǎn)加減運(yùn)算參加運(yùn)算的操作數(shù)為規(guī)格化的浮點(diǎn)數(shù),結(jié)果也是規(guī)格化的浮點(diǎn)數(shù)。浮點(diǎn)運(yùn)算步驟:對(duì)階尾數(shù)加減結(jié)果規(guī)格化尾數(shù)舍入溢出處理南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳1)對(duì)階將兩個(gè)浮點(diǎn)數(shù)階碼調(diào)整相同的過程
——小階向大階看齊
x=Sx*Rex
y=Sy*Rey
e=ex-ey若
e>0,則ex>ey,將ey+
e,同時(shí)Sy向右移動(dòng)|
e|位;若
e<0,則ex<ey,將ex+
e,同時(shí)Sx向右移動(dòng)|
e|
位;根據(jù)尾數(shù)的機(jī)器數(shù)表示進(jìn)行相應(yīng)的右移操作(原碼右移或補(bǔ)碼右移)南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳2)尾數(shù)加減在對(duì)階后的基礎(chǔ)上進(jìn)行尾數(shù)的加減尾數(shù)加減實(shí)質(zhì)是定點(diǎn)小數(shù)的加減若ex=ey,則x±y
=(Sx
±Sy)*2ey若ex>ey,則x±y
=(Sx
±Sy*2-(ex-ey)
)*2ey若ex<ey,則x±y
=(Sx*2-(ey-ey)
±Sy)*2ey南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳3)結(jié)果規(guī)格化若運(yùn)算結(jié)果不是規(guī)格化數(shù),則必須進(jìn)行規(guī)格化處理規(guī)格化數(shù)原碼表示——滿足1/2≤|S|<1;補(bǔ)碼表示——滿足-1≤S<-1/2和1/2≤S<1在相應(yīng)表示法下,若不滿足上述條件,則成為破壞規(guī)格化南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳破壞規(guī)格化的情況及處理方法若尾數(shù)和/差發(fā)生溢出,則稱向左破壞規(guī)格化。若尾數(shù)和/差未發(fā)生溢出,但不是規(guī)格化數(shù),則稱向右破壞規(guī)格化。進(jìn)行向右規(guī)格化(右規(guī))尾數(shù)向右移位,恢復(fù)正確的符號(hào)每右移1位階碼+1進(jìn)行向左規(guī)格化(左規(guī))尾數(shù)向左移位,直到滿足規(guī)格化要求每左移1位階碼-1同號(hào)相加結(jié)果上溢,絕對(duì)值超出表示的最大范圍同號(hào)相減/異號(hào)相加結(jié)果變小,不符合規(guī)格化要求尾數(shù)溢出判斷方法參見定點(diǎn)小數(shù)加減溢出判斷原碼—— X.0XXXXX補(bǔ)碼—— 1.1XXXXX
或 0.0XXXXX南京理工大學(xué)紫金學(xué)院計(jì)算機(jī)系陳琳琳4)舍入目的減少因尾數(shù)右移而造成的誤差(丟失末位)發(fā)生在對(duì)階和向右規(guī)格化時(shí)原則單次誤差不超過所允許的范圍,一般要求不
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年長租公寓物業(yè)租賃居間服務(wù)條款3篇
- 通風(fēng)除塵凈化課程設(shè)計(jì)
- 2025年雨傘租賃與廣告投放綜合服務(wù)合同3篇
- 2025年面粉產(chǎn)品包裝設(shè)計(jì)與印刷合同4篇
- 年度防霧涂料競(jìng)爭(zhēng)策略分析報(bào)告
- 年度地震專用儀器戰(zhàn)略市場(chǎng)規(guī)劃報(bào)告
- 年度重組水蛭素單克隆抗體戰(zhàn)略市場(chǎng)規(guī)劃報(bào)告
- 硬件課程設(shè)計(jì)哪個(gè)簡單
- 植筋的施工方案
- 2025年度預(yù)制混凝土承臺(tái)基礎(chǔ)工程采購合同4篇
- 2024電子商務(wù)平臺(tái)用戶隱私保護(hù)協(xié)議3篇
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 英語 含答案
- 電力工程施工安全風(fēng)險(xiǎn)評(píng)估與防控
- 醫(yī)學(xué)教程 常見體表腫瘤與腫塊課件
- 內(nèi)分泌系統(tǒng)異常與虛勞病關(guān)系
- 智聯(lián)招聘在線測(cè)評(píng)題
- DB3418T 008-2019 宣紙潤墨性感官評(píng)判方法
- 【魔鏡洞察】2024藥食同源保健品滋補(bǔ)品行業(yè)分析報(bào)告
- 生豬屠宰獸醫(yī)衛(wèi)生檢驗(yàn)人員理論考試題及答案
- 鋼筋桁架樓承板施工方案
- 2024年駐村第一書記工作總結(jié)干貨3篇
評(píng)論
0/150
提交評(píng)論