




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
計算機(jī)組成原理朱華貴2015年9月29日計算機(jī)組成原理第4章-2數(shù)值的機(jī)器運算朱華貴2015年9月29日計算機(jī)組成原理運算器是計算機(jī)進(jìn)行算術(shù)運算和邏輯運算的主要部件,運算器的邏輯結(jié)構(gòu)取決于機(jī)器的指令系統(tǒng)、數(shù)據(jù)表示方法和運算方法等。本章主要討論數(shù)值數(shù)據(jù)在計算機(jī)中實現(xiàn)算術(shù)運算和邏輯運算的方法,以及運算部件的基本結(jié)構(gòu)和工作原理。
第4章數(shù)值的機(jī)器運算本部分學(xué)習(xí)內(nèi)容4.6規(guī)格化浮點運算4.7十進(jìn)制整數(shù)的加法運算4.8邏輯運算與實現(xiàn)4.9運算器的基本組成與實例4.6規(guī)格化浮點運算第2章中已經(jīng)討論了浮點數(shù)的表示方法,這里將進(jìn)一步討論規(guī)格化浮點數(shù)的四則運算問題,其中尾數(shù)的基值r=2。4.6.1浮點加減運算設(shè)兩個非0的規(guī)格化浮點數(shù)分別為:
A=MA×B=MB×規(guī)格化浮點數(shù)A、B加減運算通式為:A±B=(MA,EA)±(MB,EB)
={1.浮點數(shù)加減運算步驟⑴對階
兩個浮點數(shù)相加或相減,首先要把小數(shù)點的位置對齊,而浮點數(shù)的小數(shù)點的實際位置取決于階碼的大小,因此,對齊兩數(shù)的小數(shù)點,就是使兩數(shù)的階碼相等,這個過程稱為對階。
要對階,首先應(yīng)求出兩數(shù)階碼EA和EB之差ΔE=EA-EB
若ΔE=0,表示兩數(shù)階碼相等,即EA=EB;若ΔE>0,表示EA>EB;若ΔE<0,表示EA<EB。1.浮點數(shù)加減運算步驟(續(xù))當(dāng)EA≠EB時,要通過尾數(shù)的移位來改變EA或EB。對階的規(guī)則是:小階向大階看齊。要使小階的階碼增大,則相應(yīng)的尾數(shù)右移,直到兩數(shù)的階碼相等為止。每右移一位,階碼加1。EA>EB,則MB右移。每右移一位,EB+1→EB,直至EA=EB為止。
EA<EB,則MA右移。每右移一位,EA+1→EA,直至EA=EB為止。
尾數(shù)右移后,應(yīng)對尾數(shù)進(jìn)行舍入。1.浮點數(shù)加減運算步驟(續(xù))
⑵尾數(shù)加/減對階之后,就可以進(jìn)行尾數(shù)加/減,即:MA±MB→MC
其算法與定點加/減法相同。⑶尾數(shù)結(jié)果規(guī)格化尾數(shù)加/減運算之后得到的數(shù)可能不是規(guī)格化數(shù),為了增加有效數(shù)字的位數(shù),提高運算精度,必須進(jìn)行結(jié)果規(guī)格化操作。1.浮點數(shù)加減運算步驟(續(xù))
⑶尾數(shù)結(jié)果規(guī)格化≤|M|<1
設(shè)尾數(shù)用雙符號位補碼表示,經(jīng)過加/減運算之后,可能出現(xiàn)以下6種情況,即:
①
00.1xx…x
②
11.0xx…x
③
00.0xx…x
④
11.1xx…x
⑤
01.xxx…x
⑥
10.xxx…x1.浮點數(shù)加減運算步驟(續(xù))第①和②種情況,已是規(guī)格化數(shù)。
第③和④種情況需要使尾數(shù)左移以實現(xiàn)規(guī)格化,這個過程稱為左規(guī)。尾數(shù)每左移一位,階碼相應(yīng)減1(EC-1→EC),直至成為規(guī)格化數(shù)為止。左規(guī)=
+Cs1Cs2C1
左規(guī)可以進(jìn)行多次。式中Cs1、Cs2表示尾數(shù)MC的兩個符號位,C1為MC的最高數(shù)值位。1.浮點數(shù)加減運算步驟(續(xù))第⑤和⑥種情況在在定點加減運算中稱為溢出;但浮點加減運算中,只表明此時尾數(shù)的絕對值大于1,而并非真正的溢出。這種情況應(yīng)將尾數(shù)右移以實現(xiàn)規(guī)格化。這個過程稱為右規(guī)。尾數(shù)每右移一位,階碼相應(yīng)加1(EC+1→EC)。右規(guī)=Cs1⊕Cs2
右規(guī)最多只有一次。1.浮點數(shù)加減運算步驟(續(xù))⑷舍入最簡單的舍入方法是恒舍法,即無條件的丟掉正常尾數(shù)最低位之后的全部數(shù)值。⑸溢出判斷當(dāng)尾數(shù)右規(guī)后,根據(jù)階碼來判斷浮點運算結(jié)果是否溢出。[EC]補=01,xxx…x,表示上溢。此時,浮點數(shù)真正溢出,機(jī)器需停止運算,做溢出中斷處理。[EC]補=10,xxx…x,表示下溢。浮點數(shù)值趨于零,機(jī)器不做溢出處理,而是按機(jī)器零處理。2.浮點數(shù)加減運算舉例有兩浮點數(shù)為A=0.101110×2-01B=-(0.101011)×2-10
假設(shè)這兩數(shù)的格式:階碼4位,用移碼(偏置值為23)表示;尾數(shù)8位,用補碼表示,包含一位符號位,即階碼尾數(shù)[A]浮=0111;0.1011100[B]浮=0110;1.01010102.浮點數(shù)加減運算舉例(續(xù))⑴對階求階差:ΔE=EA-EB=-1-(-2)=1ΔE=1,表示EA>EB。按對階規(guī)則,將MB右移一位,EB+1→EB,得:[B]浮’=0111;1.1010101⑵尾數(shù)求和00.1011100+11.101010100.01100012.浮點數(shù)加減運算舉例(續(xù))
⑶尾數(shù)結(jié)果規(guī)格化由于結(jié)果的尾數(shù)是非規(guī)格化的數(shù),故應(yīng)左規(guī)。尾數(shù)每左移一位,階碼減1,直至尾數(shù)成為規(guī)格化數(shù)為止。最后結(jié)果為[A+B]浮=0110;0.110001即A+B=(0.110001)×2-10未發(fā)生溢出
4.6.2浮點乘除運算
設(shè)兩個非0的規(guī)格化浮點數(shù)分別為
A=MA×B=MB×規(guī)格化浮點數(shù)A、B乘除運算通式為:(MA,EA)×(MB,EB)=(MA×MB,EA+EB)(MA,EA)÷(MB,EB)=(MA÷MB,EA-EB)1.乘法步驟兩浮點數(shù)相乘,其乘積的階碼應(yīng)為相乘兩數(shù)的階碼之和,其乘積的尾數(shù)應(yīng)為相乘兩數(shù)的尾數(shù)之積。即:A×B=(MA×MB)×⑴階碼相加兩個浮點數(shù)的階碼相加,如果階碼用補碼表示,無須校正;當(dāng)階碼用偏置值為2n的移碼表示時,階碼相加后要減去一個偏移量2n。1.乘法步驟(續(xù))因為[EA]移=2n+EA,[EB]移=2n+EB,[EA+EB]移=2n+(EA+EB)而[EA]移+[EB]移=2n+EA+2n+EB所以[EA+EB]移=[EA]移+[EB]移-2n
顯然,此時階碼和中多余了一個偏置量2n,應(yīng)將它減去。另外,階碼相加后有可能產(chǎn)生溢出,此時應(yīng)另作處理。
1.乘法步驟(續(xù))⑵尾數(shù)相乘若MA、MB都不為0,則可進(jìn)行尾數(shù)乘法,算法與定點數(shù)乘法算法相同。⑶尾數(shù)結(jié)果規(guī)格化由于A、B均是規(guī)格化數(shù),所以尾數(shù)相乘后的結(jié)果一定落在下列范圍內(nèi):≤|MA×MB|<1當(dāng)≤|MA×MB|<1時,乘積已是規(guī)格化數(shù),無須再進(jìn)行規(guī)格化操作;當(dāng)≤|MA×MB|<時,則需要左規(guī)一次。左規(guī)時調(diào)整階碼后如果發(fā)生階碼下溢,則做機(jī)器零處理。
2.除法步驟兩浮點數(shù)相除,其商的階碼應(yīng)為相除兩數(shù)的階碼之差,其商的尾數(shù)應(yīng)為相除兩數(shù)的尾數(shù)之商。即:A÷B=(MA÷MB)×⑴尾數(shù)調(diào)整為了保證商的尾數(shù)是一個定點小數(shù),首先需要檢測|MA|<|MB|。如果不小于,則MA右移一位,EA+1→EA,稱為尾數(shù)調(diào)整。因為A、B都是規(guī)格化數(shù),所以最多調(diào)整一次。2.除法步驟(續(xù))⑵階碼相減兩浮點數(shù)的階碼相減,如果階碼用補碼表示,階碼相減之后無須校正;當(dāng)階碼用偏置值為2n的移碼表示時,階碼相減后要加上一個偏移量2n。階碼相減后,如有溢出,應(yīng)另作處理。2.除法步驟(續(xù))
⑶尾數(shù)相除
若MA、MB都不為0,則可進(jìn)行尾數(shù)除法。尾數(shù)除法的算法與前述定點數(shù)除法算法相同。因為開始時已進(jìn)行了尾數(shù)調(diào)整,所以運算結(jié)果一定落在規(guī)格化范圍內(nèi),即≤|MA÷MB|<14.6.3浮點運算器的實現(xiàn)浮點運算的階碼只有加減運算,尾數(shù)則有加、減、乘、除四種運算。可見浮點運算器主要由兩個定點運算部件組成,一個是階碼運算部件,用來完成階碼加、減,以及控制對階時小階的尾數(shù)右移次數(shù)和規(guī)格化時對階碼的調(diào)整;另一個是尾數(shù)運算部件,用來完成尾數(shù)的四則運算以及判斷尾數(shù)是否已規(guī)格化。此外,還需要有溢出判斷電路等?,F(xiàn)代計算機(jī)可把浮點運算部件做成任選件,或稱為協(xié)處理器。所謂協(xié)處理器是因為它只能協(xié)助主處理器工作,不能單獨工作。
4.7十進(jìn)制整數(shù)的加法運算一些通用計算機(jī)中設(shè)有十進(jìn)制數(shù)據(jù)表示,可以直接對十進(jìn)制整數(shù)進(jìn)行算術(shù)運算。下面討論十進(jìn)制整數(shù)的加法運算和十進(jìn)制加法器。4.7.1一位十進(jìn)制加法運算1.8421碼加法運算8421碼的加法規(guī)則:
⑴兩個十進(jìn)制數(shù)的8421碼相加時,按“逢二進(jìn)一”的原則進(jìn)行;
⑵當(dāng)和≤9,無需校正;
⑶當(dāng)和>9,則+6校正;
⑷在做+6校正的同時,將產(chǎn)生向上一位的進(jìn)位。8421碼的校正關(guān)系十進(jìn)制數(shù)8421碼C4S4S3S2S1校正前的二進(jìn)制數(shù)C4’S4’S3’S2’S1’校正與否0|900000|0100100000|01001不校正101112131415161718191000010001100101001110100101011011010111110001100101010010110110001101011100111110000100011001010011+6校正校正舉例0101 5+1000 81101+0110610011131001 9+1000 810001+0110610111172.余3碼加法運算余3碼的加法規(guī)則:⑴兩個十進(jìn)制數(shù)的余3碼相加,按“逢二進(jìn)一”的原則進(jìn)行;
⑵若其和沒有進(jìn)位,則減3(即+1101)校正;
⑶若其和有進(jìn)位,則加3(即+0011)校正。余3碼的校正關(guān)系十進(jìn)制數(shù)余3碼C4S4S3S2S1校正前的二進(jìn)制數(shù)C4’S4’S3’S2’S1’校正與否01|890001100100|01011011000011000111|0111001111-3校正1011|18191001110100|11011111001000010001|1100011001+3校正校正舉例0110 3+1000 51110+1101無進(jìn)位,-3,+1101101181001 6+1000 510001+0011有進(jìn)位,+31010011一位8421碼加法器圖4-21一位8421碼加法器&
&
≥1
1.一位8421碼加法器校正函數(shù)=C4’+S4’S3’+S4’S2’向上一位的進(jìn)位C4=校正函數(shù)4.7.2十進(jìn)制加法器圖4-22一位余3碼加法器
C4’=0,-3校正;C4’=1,+3校正。向上一位的進(jìn)位C4=C4’2.一位余3碼加法器
4.7.3多位十進(jìn)制加法對于多位十進(jìn)制數(shù)加法可采用多個BCD碼加法器,每個BCD碼加法器就是前述的一個一位十進(jìn)制加法器,可執(zhí)行兩個一位BCD數(shù)的加法。若n位BCD數(shù)相加,由從低位至高位采用行波式串行進(jìn)位的n位十進(jìn)制加法器完成。4.8邏輯運算與實現(xiàn)計算機(jī)在解題過程中,除了要做大量的算術(shù)運算外,還需做許多邏輯操作,如:與、或、非、異或等。邏輯運算比算術(shù)運算要簡單得多,這是因為邏輯運算是按位進(jìn)行的,位與位之間沒有進(jìn)位與借位的關(guān)系。1.邏輯非邏輯非又稱求反操作,它對某個寄存器或主存單元中各位代碼按位取反。
設(shè):X=X0X1…Xn,Z=Z0Z1…Zn
則:Zi=(i=0,1,…,n)2.邏輯乘
邏輯乘就是將兩個寄存器或主存單元中的每一相應(yīng)位的代碼進(jìn)行按位與操作。
設(shè):X=X0X1…Xn,Y=Y0Y1…Yn,Z=Z0Z1…Zn則:Zi=Xi∧Yi(i=0,1,…,n)
3.邏輯加邏輯加就是將兩個寄存器或主存單元中的每一相應(yīng)位的代碼進(jìn)行或操作。
設(shè):X=X0X1…Xn,Y=Y0Y1…Yn,Z=Z0Z1…Zn則:Zi=Xi∨Yi(i=0,1,…,n)4.邏輯異或
邏輯異或又稱按位加,它對兩個寄存器或主存單元中各位的代碼求模2和。
設(shè):X=X0X1…Xn,Y=Y0Y1…Yn,Z=Z0Z1…Zn則:Zi=Xi⊕Yi(i=0,1,…,n)4.9運算器的基本組成與實例運算器是在控制器的控制下實現(xiàn)其功能的。運算器不僅可以完成數(shù)據(jù)信息的算邏運算,還可以作為數(shù)據(jù)信息的傳送通路。4.9.1運算器結(jié)構(gòu)1.運算器的基本組成
基本的運算器包含以下幾個部分:實現(xiàn)基本算術(shù)、邏輯運算功能的ALU,提供操作數(shù)與暫存結(jié)果的寄存器組,有關(guān)的判別邏輯和控制電路等。
運算器內(nèi)的各功能模塊之間的連接也廣泛采用總線結(jié)構(gòu),這個總線稱為運算器的內(nèi)部總線,ALU和各寄存器都掛在上面。運算器的內(nèi)部總線是CPU的內(nèi)部數(shù)據(jù)通路,因此只有數(shù)據(jù)線。1.運算器的基本組成(續(xù))⑴帶多路選擇器的運算器各寄存器可以獨立、多路地將數(shù)據(jù)送至ALU的多路選擇器,使ALU有選擇地同時獲得兩路輸入數(shù)據(jù)。運算器的內(nèi)部總線是一組單向傳送的數(shù)據(jù)線,它將運算結(jié)果送往各寄存器,由寄存器的同步打入脈沖CPi將內(nèi)部總線上的數(shù)據(jù)送入Ri。如果同時發(fā)出幾個打入脈沖,則可將總線上的同一數(shù)據(jù)同時送入幾個相關(guān)的寄存器中。
帶多路選擇器的運算器圖4-24帶多路選擇器的運算器1.運算器的基本組成(續(xù))⑵帶輸入鎖存器的運算器運算器的內(nèi)部總線是一組雙向傳送的數(shù)據(jù)線。為了進(jìn)行雙操作數(shù)之間的運算操作,ALU輸入端前設(shè)置了一級鎖存器,可暫存操作數(shù)。例如,要實現(xiàn)(R0)+(R1)→R2,可通過內(nèi)部總線先將R0中的數(shù)據(jù)送入鎖存器1,再通過內(nèi)部總線將R1中的數(shù)據(jù)送入鎖存器2,然后相加,并將結(jié)果經(jīng)總線送入R2。
帶輸入鎖存器的運算器圖4-25帶輸入鎖存器的運算器2.運算器的內(nèi)部總線結(jié)構(gòu)⑴單總線結(jié)構(gòu)運算器圖4-25就是單總線結(jié)構(gòu)運算器。這種結(jié)構(gòu)的運算器實現(xiàn)一次雙操作數(shù)的運算需要分成三步,它的主要缺點是操作速度慢。2.運算器的內(nèi)部總線結(jié)構(gòu)(續(xù))⑵雙總線結(jié)構(gòu)運算器兩個操作數(shù)可以分別通過總線1和總線2同時送到ALU去進(jìn)行運算,并且立即可以得到運算的結(jié)果。但是ALU的輸出不能直接送到總線上去,這是因為此時兩條總線都被操作數(shù)所占據(jù)著,所以必須在ALU的輸出端設(shè)置一個緩沖器,先將運算結(jié)果送入緩沖器,第二步再把結(jié)果送至目的寄存器。顯然,它的執(zhí)行速度比單總線要快,每次操作比單總線少一步。
雙總線結(jié)構(gòu)運算器圖4-26(a)雙總線結(jié)構(gòu)運算器2.運算器的內(nèi)部總線結(jié)構(gòu)(續(xù))
⑶三總線結(jié)構(gòu)運算器ALU的兩個輸入端分別由兩條總線供給,輸出與第三條總線相連,這樣算邏操作就可以在一步控制之內(nèi)完成。如果某一個數(shù)不需要運算和修改,而需要直接由總線2傳到總線3,可通過總線旁路器把數(shù)據(jù)送出,而不必借助于ALU。三總線結(jié)構(gòu)的特點是操作速度快,但控制較前兩種復(fù)雜。三總線結(jié)構(gòu)運算器圖4-26(b)三總線結(jié)構(gòu)運算器4.9.2ALU舉例
1.ALU電路ALU即算術(shù)邏輯單元,它是既能完成算術(shù)運算又能完成邏輯運算的部件。前面已經(jīng)討論過,無論是加、減、乘、除運算,最終都能歸結(jié)為加法運算。因此,ALU的核心首先應(yīng)當(dāng)是一個并行加法器,同時也能執(zhí)行像“與”、“或”、“非”、“異或”這樣的邏輯運算。
2.4位ALU芯片
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商務(wù)車租賃合同范本
- 制作印刷材料合同范本
- 包裝接單合同范本
- 公司欠款還款合同范本
- 廠家代理商合同范本
- 合同范本大會
- 合同以外合同范本有效
- 廠房漏雨維修合同范例
- 精煤銷售批發(fā)合同范本
- 個人商業(yè)購房合同范本
- 2025海南省交通投資控股限公司招聘30人高頻重點提升(共500題)附帶答案詳解
- 《工業(yè)機(jī)器人現(xiàn)場編程》課件-任務(wù)3.涂膠機(jī)器人工作站
- 富饒的西沙群島課件
- 中英文對照版 ASTM B594 2019 鋁合金形變產(chǎn)品超聲波檢測標(biāo)準(zhǔn)慣例
- 李四光《看看我們的地球》原文閱讀
- 五年級下冊道德與法治教學(xué)計劃
- 2025屆高考數(shù)學(xué)專項復(fù)習(xí):阿基米德三角形【六大題型】含答案
- 讀書分享-于永正-我怎樣教語文
- 2024工貿(mào)企業(yè)重大事故隱患判定標(biāo)準(zhǔn)解讀
- 高中語文(統(tǒng)編版)選必中冊-第二單元教材分析解讀課件
- 哈爾濱鐵道職業(yè)技術(shù)學(xué)院單招《語文》考試復(fù)習(xí)題庫(含答案)
評論
0/150
提交評論