計算機組成原理第三章運算器_第1頁
計算機組成原理第三章運算器_第2頁
計算機組成原理第三章運算器_第3頁
計算機組成原理第三章運算器_第4頁
計算機組成原理第三章運算器_第5頁
已閱讀5頁,還剩112頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

計算機組成原理第三章運算器第一頁,共一百一十七頁,編輯于2023年,星期五3.1算術、邏輯運算基礎計算機進行運算的特點:(1)所有數據都是用二進制數位形式來表示的。(2)在機器內部,數是以編碼形式即機器數來表示的。(3)機器運算規模有限,因而機器運算就要解決運算方法、數據表示格式及數據長度的選取、規定等問題。(4)用計算機進行運算時,都要把復雜的運算,簡化為一系列的、最基本的運算才能實現。計算機可以實現的基本運算有算術運算(加、減、乘、除等)和邏輯運算(與、或、異或等)。第二頁,共一百一十七頁,編輯于2023年,星期五3.1.1定點加減運算補碼加減法:補碼的一個重要特點是它可以直接進行加減法運算,并且計算簡單,因此計算機中基本采用補碼加減法。運算規則:(1)參與運算的操作數用補碼表示,符號位作為數的一部分直接參與運算,所得即為補碼表示的運算結果。(2)若操作碼為加,則兩數直接相加;(3)若操作碼為減,則將減數變補后再與被減數相加。第三頁,共一百一十七頁,編輯于2023年,星期五3.1.1定點加減運算計算公式

[X+Y]補=[X]補+[Y]補

[X-Y]補=[X]補+[-Y]補例1已知X=9,Y=3,求[X+Y]補,[X-Y]補,[Y-X]補。解:[X+Y]補=[X]補+[Y]補=01001+00011=01100[X-Y]補=[X]補+[-Y]補=01001+11101=100110[Y-X]補=[Y]補+[-X]補=00011+10111=11010第四頁,共一百一十七頁,編輯于2023年,星期五3.1.1定點加減運算例2

X=0.001010Y=-0.100011求[X-Y]補解[X]補=0.001010[-Y]補=0.100011

則[X-Y]補

=[X]補+[-Y]補

=0.001010+0.100011=0.101101第五頁,共一百一十七頁,編輯于2023年,星期五3.1.2溢出判斷與移位一.溢出

機器數字長5位,其中含1位數符,補碼運算,問:定點整數表示范圍?

-16~+15(10000~01111)所謂溢出就是指運算結果大于機器所能表示的最大正數或小于機器所能表示的最小負數。第六頁,共一百一十七頁,編輯于2023年,星期五3.1.2溢出判斷與移位正溢:兩個正數相加后結果超出允許的表示范圍。如:1版:P106例3-32版:P100例3-3負溢:兩個負數相加后結果超出允許的表示范圍。如:1版:P106例3-52版:P100例3-5

第七頁,共一百一十七頁,編輯于2023年,星期五3.1.2溢出判斷與移位溢出判別定義:兩操作數的數符分別為SA、SB,結果的數符為Sf。符號位直接參與運算,產生的符號位進位為Cf。最高有效數位產生的進位為C。1.判別方法一:溢出=只有同號數相加才能產生溢出,溢出的標志是結果數符與操作數數符相反第八頁,共一百一十七頁,編輯于2023年,星期五3.1.2溢出判斷與移位

2.判別方法二:

溢出=(Cf為符號位運算產生的進位,C為最高有效數位產生的進位。)

Cf和C不同時表明溢出3.判別方法三:操作數采用雙符號位(變形補碼),通過運算結果的符號位進行判斷:(P101)00—

結果為正,無溢出01—

結果正溢10—結果負溢11—結果為負,無溢出第九頁,共一百一十七頁,編輯于2023年,星期五3.1.2溢出判斷與移位二.移位邏輯移位(1)數字代碼為純邏輯代碼,沒有數值意義(2)分為:循環左移、循環右移、非循環左移、非循環右移第十頁,共一百一十七頁,編輯于2023年,星期五3.1.2溢出判斷與移位算術移位1、原碼(及正數補碼)移位規則:數符不變,空位補02、負數補碼移位規則:左移:數符不變,空位即末位補0

右移:數符不變,空位補1第十一頁,共一百一十七頁,編輯于2023年,星期五3.1.2溢出判斷與移位3.例:原碼和正數補碼

0.0101左移一位0.1010

1.0101左移一位1.101000.1010左移一位01.0100

(*雙符號位時可左移1位,第二符號位暫存數值,第一符號位仍表示符號)

1.1010右移一位1.0101

01.0100右移一位00.1010

(*雙符號位時右移1位,第二符號位暫存的數值移到最高有效位。)第十二頁,共一百一十七頁,編輯于2023年,星期五3.1.2溢出判斷與移位負數補碼左移:

1.1011左移一位1.0110

11.0110左移一位

10.1100右移:

1.0110右移一位1.1011

10.1100右移一位11.0110

第十三頁,共一百一十七頁,編輯于2023年,星期五3.1.2溢出判斷與移位三.舍入舍入的原則

使本次舍入產生的誤差及累計誤差都比較小兩種舍入規則

1、0舍1入

2、末位“恒置1”

例:課本P103例3-8~例3-11第十四頁,共一百一十七頁,編輯于2023年,星期五3.1.3定點乘法運算手算例子:11011101000011010.10001111由于結果為負,所以第十五頁,共一百一十七頁,編輯于2023年,星期五3.1.3定點乘法運算手算到機器實現要解決的問題1、符號問題

解決方法:原碼乘法符號單獨處理,補碼乘法符號參與運算2、乘積等于各位積之和(要考慮權)

“位積”是乘數的某位乘以被乘數所得到的積。

“部分積”是位積的和。

1)n位乘法運算就有n個位積,要n個寄存器來存放位積;

2)加法器難以完成n個位積的同時求和;

3)需要2n位字長的加法器,通常的加法器都是n位字長。解決方法:n次累加與移位循環或陣列乘法器第十六頁,共一百一十七頁,編輯于2023年,星期五3.1.3定點乘法運算手算的改進(將一次相加改為分步累加)110101101+1101100111

100111+0000

100111

0100111+11011000111110001111第十七頁,共一百一十七頁,編輯于2023年,星期五3.1.3.1原碼一位乘法一.基本思想:乘積的數值部分是乘數和被乘數的數值部分相乘之積。乘積的符號由兩數的符號異或得到(同號相乘為正,異號相乘為負)。每次用一位乘數去乘被乘數,并將一位乘數所對應的位積與原部分積的累加和相加,并移位。

設X=Sx.x1x2…xn,Y=Sy.y1y2…yn

乘積的尾數:

P=|X|.|Y|

乘積的符號:Sp=Sx

⊕Sy第十八頁,共一百一十七頁,編輯于2023年,星期五3.1.3.1原碼一位乘法二.舉例實現已知X=0.1101,Y=-0.1011,求XY=?設置寄存器:

A:存放部分積累加和、乘積高位

B:存放被乘數

C:存放乘數、乘積低位設置初值:

A=00.0000B=|X|=00.1101C=|Y|=.1011第十九頁,共一百一十七頁,編輯于2023年,星期五步數條件操作AC

00.0000.1011

1)Cn=1+BCn+00.110100.1101

0.1101×0.1011

1101110100001101

0.10001111BC00.01101.1012)Cn=1+B+00.110101.001100.100111.103)Cn=0+0+00.000000.100100.0100111.1+B4)Cn=1+00.110101.000100.10001111X原×Y原=1.10001111第二十頁,共一百一十七頁,編輯于2023年,星期五三.算法流程0A、XB、YC、0CRCn=1?CR=n?1/2(A+B)A,C1/2(A+0)A,C

CR+1CRYYNN

Sx+SySA第二十一頁,共一百一十七頁,編輯于2023年,星期五3.1.3.1原碼一位乘法四.運算規則(1)操作數、結果用原碼表示;(2)絕對值運算,符號單獨處理;(3)被乘數(B)、累加和(A)取雙符號位;(4)乘數末位(Cn)為判斷位,其狀態決定下步操作;(5)作n次循環(累加、右移)。第二十二頁,共一百一十七頁,編輯于2023年,星期五3.1.3.1原碼一位乘法五.邏輯實現加法器輸入端控制信號:+A、+B加法器輸出端控制信號:1/2∑A、C、CPA、CPC

C4C3C2C1

A4A3A2A1

門4門3門2門1

門4門3門2門1∑4∑3∑2∑1

1/2∑ACPACPCCC4C3C2+A+BA1B1第二十三頁,共一百一十七頁,編輯于2023年,星期五3.1.3.2補碼一位乘法一.原則操作數與結果均以補碼表示,連同符號位一起,按相應算法運算。二.實現方法:1.校正法[XY]補=[X]補[0.Y1Y2……Yn]-[X]補Y0

乘數Y的符號位第二十四頁,共一百一十七頁,編輯于2023年,星期五3.1.3.2補碼一位乘法(1)Y為正:

Y補=0.Y1Y2……Yn,Y0=0

[XY]補=[X]補[0.Y1Y2……Yn]-[X]補Y0=

[X]補[0.Y1Y2……Yn](2)Y為負:

Y補

=1.Y1Y2……Yn,Y0=1

[XY]補=[X]補[0.Y1Y2……Yn]-[X]補Y0

=

[X]補[0.Y1Y2……Yn]-[X]補

第二十五頁,共一百一十七頁,編輯于2023年,星期五3.1.3.2補碼一位乘法2.比較法:展開為部分積的累加和形式:[XY]補=[X]補[0.Y1Y2……Yn]-[X]補Y0

=[X]補(-Y0+2Y1+2Y2+……+2Yn)-1

-2

-n

-(n-1)-n

+……

+(2Yn-2Yn)]

=[X]補[(Y1-Y0)+2(Y2-Y1)+2(Y3-Y2)

-1-2

=

[X]補[-Y0+(Y1-2Y1)+(2Y2-2Y2)-1

-1-2

=[X]補[(Y1-Y0)+2(Y2-Y1)+2(Y3-Y2)

-1-2+……+2(0-Yn)]-n+……+2(Yn+1-Yn)]-n+……+2(Yn+1-Yn)]-n第二十六頁,共一百一十七頁,編輯于2023年,星期五3.1.3.2補碼一位乘法若定義[Z0]為初始部分積,[Z1]補……[Zn]補依次為各步求得的累加并右移后的部分積,可將上式改寫為:[Z0]補

=0[Z1]補

=2-1{[Z0]補

+(Yn+1-Yn)[X]補}[Z2]補

=2-1{[Z1]補

+(Yn-Yn-1)[X]補}……[Zn]補

=2-1{[Zn-1]補

+(Y2-Y1)[X]補}[XY]補

=[Zn]補

+(Y1-Y0)[X]補第二十七頁,共一百一十七頁,編輯于2023年,星期五3.1.3.2補碼一位乘法三.比較法算法由于它的操作是乘數相鄰兩位之差(低位減高位),即兩位的比較結果,所以稱為比較法。1.基本操作:被乘數X補乘以對應的乘數相鄰兩位之差值再與原部分積累加,然后右移一位,形成該步的部分累加和。第二十八頁,共一百一十七頁,編輯于2023年,星期五3.1.3.2補碼一位乘法Yn(高位)Yn+1(低位)

操作(A補為部分積累加和)

00011011

原部分積右移一位

1/2A補原部分積加X補后再右移一位1/2(A補+X補)原部分積加[-X]補后再右移一位1/2(A補-X補)原部分積右移一位

1/2A補(0)(1)(-1)(0)第二十九頁,共一百一十七頁,編輯于2023年,星期五3.1.3.2補碼一位乘法2.例X=-0.1101,Y=-0.1011,求(XY)補。設初值:

A=00.0000,B=X補=11.0011,-B=(-X)補=00.1101,C=Y補=1.0101第三十頁,共一百一十七頁,編輯于2023年,星期五步數條件操作AC

00.00001.0101

1)10-BCn+00.110100.110100.011011.01012)01+B+11.001111.100111.1100111.0103)10-B+00.110100.100100.01001111.014)01+B+11.001111.011111.101111111.00

Cn+1CnCn+15)10-B+00.1101第三十一頁,共一百一十七頁,編輯于2023年,星期五3.1.3.2補碼一位乘法(XY)補

=0.100011114)01+B+11.001111.011111.101111111.05)10-B+00.110100.10001111修正1.0:-B修正0.1:+B修正0.0:不修正1.1:不修正第三十二頁,共一百一十七頁,編輯于2023年,星期五3.1.3.2補碼一位乘法3.運算規則:(1)A、B取雙符號位,符號參加運算;(2)C取單符號位,符號參加移位,以決定最后是否修正;(3)C末位設置附加位Cn+1,初值為0,CnCn+1組成判斷位,決定運算操作;(4)作n步循環,若需作第n+1步,則不移位,僅修正。第三十三頁,共一百一十七頁,編輯于2023年,星期五3.1.3.2補碼一位乘法4.邏輯實現加法器輸入端控制信號:+A、+B、+B、+1加法器輸出端控制信號:1/2∑A、C、∑A、CPA、CPC第三十四頁,共一百一十七頁,編輯于2023年,星期五3.1.3.3原碼兩位乘法每次用兩位乘數去乘被乘數。一.算法分析Yi(高位)Yi+1(低位)部分積累加、移位

00011011

1/4A1/4(A+X)1/4(A+2X)1/4(A+3X)(0)(1)(2)(3)

0

X

2X

3X如何實現+3X操作?第三十五頁,共一百一十七頁,編輯于2023年,星期五3.1.3.3原碼兩位乘法解決辦法:

1/4(A+3X)=

1/4(A+2X+X)=1/4(A+2X)+1/4X

1/4(A-X+4X)=1/4(A-X)+X①①②②

1/4(A+2X+X)=1/4(A+2X)+1/4X

1/4(A-X+4X)=1/4(A-X)+X①①②②

1/4(A-X+4X)=1/4(A-X)+X①②設置欠帳觸發器CJ=0不欠帳1欠帳,下次補作+X操作第三十六頁,共一百一十七頁,編輯于2023年,星期五3.1.3.3原碼兩位乘法二.運算規則000001010011

100101110111

操作YiYi+1CJ1/4(A+X)0CJ1/4(A+X)0CJ1/4(A+2X)0CJ1/4A0CJ1/4(A-X)1CJ1/4(A-X)1CJ1/4A1CJ1/4(A+2X)0CJ第三十七頁,共一百一十七頁,編輯于2023年,星期五3.1.3.3原碼兩位乘法三.舉例例1.

[X]原=1.111111,[Y]原=0.111001,求[XY]原。解:設初值:A=000.000000,B=|X|=000.111111,2B=001.111110,-B=111.000001,C=|Y|=00.111001

第三十八頁,共一百一十七頁,編輯于2023年,星期五步數條件操作AC000.00000000.111001

1)010+BCJ

+000.111111000.111111000.0011111100.11102)100+2B+001.111110010.001101000.100011011100.113)110-B+111.000001111.100100111.111001000111

00.4)001+B+000.111111000.111000000111Cn-1CnCn-1CnCJ0

0

2220

1

還帳[XY]原=1.111000000111第三十九頁,共一百一十七頁,編輯于2023年,星期五3.1.3.3原碼兩位乘法例2.[X]原=0.00111,[Y]原=1.01001,求[XY]原。解:設初值:A=000.00000,B=|X|=000.00111,2B=000.01110,-B=111.11001,C=|Y|=00.010010

第四十頁,共一百一十七頁,編輯于2023年,星期五3.1.3.3原碼兩位乘法步數條件操作AC000.0000000.01001

0Cn-1CnCJ0Cn-1CnCJ1)100+2B+000.01110000.01110222000.000111000.0100+000.00000111000.01

000.00011000.00000+000.0011102)00001003)+B+0000.00111

000.00001111110

00.0[XY]原=1.0000111111第四十一頁,共一百一十七頁,編輯于2023年,星期五3.1.3.3原碼兩位乘法四.運算規則(1)絕對值相乘,符號單獨處理。(2)A、B取三符號位。(3)C取雙符號位,參加移位;C尾數湊足偶數位。(4)CJ初值為0,根據每步操作決定其狀態,不參加移位。(5)作1/2n步循環;若需增加一步,則該步只還帳,不移位。第四十二頁,共一百一十七頁,編輯于2023年,星期五3.1.3.3原碼兩位乘法五.邏輯實現加法器輸入端控制信號:+A、+B、+2B、+B、+1加法器輸出端控制信號:1/4∑A、∑A、C、

CPA、CPC、0CJ、1CJ

2第四十三頁,共一百一十七頁,編輯于2023年,星期五3.1.3.4補碼兩位乘法補碼兩位乘法是在補碼一位乘法算法拓展來的。以補碼一位乘法中,[Z1]補、

[Z2]補兩個部分積為例討論:

[Z1]補=2-1{[Z0]補+(Yn+1-Yn)[X]補}[Z2]補=2-1{[Z1]補+(Yn-Yn-1)[X]補}

將[Z1]補

代入[Z2]補得:

[Z2]補=2-1{2-1[[Z0]補+(Yn+1

–Yn)[X]補]+(Yn

–Yn-1)[X]補}=2-2[[Z0]補+(Yn+1

–Yn)[X]補]+2-1[(Yn

–Yn-1)[X]補]=2-2[[Z0]補+(Yn+1

–Yn)[X]補]+2-2[(2Yn

–2Yn-1)[X]補]=2-2[[Z0]補+(Yn+1

–Yn)[X]補

+(2Yn

–2Yn-1)[X]補]=2-2[[Z0]補+(Yn+1

–Yn+2Yn

–2Yn-1)[X]補]=2-2[[Z0]補+(Yn+1+Yn

–2Yn-1)[X]補]可見,求[Z2]補需要將前次部分積加(Yn+1+Yn

–2Yn-1)[X]補,最后再右移2位。所以需對Yn+1YnYn-1

三位做判斷。第四十四頁,共一百一十七頁,編輯于2023年,星期五3.1.3.4補碼兩位乘法Yn-1YnYn+1X補的系數操作

000

0部分積右移兩位

0011+X補同上

0101+X補同上

0112+2X補同上

100-2+2[-X]補同上

101-1+[-X]補同上

110-1+[-X]補同上

1110同上第四十五頁,共一百一十七頁,編輯于2023年,星期五3.1.4定點除法運算手算除法例:X=0.10110,Y=0.11111,求X/Y=?0.10110

11010.01

11111

0.111110001

11111

1010101

11111

101100.00000.0.商:0.10110余數:0.10110×2-5實現除法的關鍵:比較余數、除數絕對值大小,以決定上商。第四十六頁,共一百一十七頁,編輯于2023年,星期五3.1.4定點除法運算1、由手算除法過程可知:取絕對值相除,即判斷X>Y?,若X>Y,則商1,否則商0。每一步都是余數末位后面補0與除數比較。2、改進成計算機算法的問題:1)如何判斷夠減?

將心算比較改為減法比較,減Y用加[-Y]補實現。2)將余數末位后面補0改為左移余數。使商在一個位置固定進行。導致正確的余數應為rn.2-n。3)符號?

原碼除法符號單獨處理,補碼除法符號參與運算。第四十七頁,共一百一十七頁,編輯于2023年,星期五3.1.4.1原碼不恢復余數除法恢復余數算法思想:比較兩數大小可用減法試探。2×余數-除數=新余數為正:夠減,商1。為負:不夠減,商0,恢復原余數。第四十八頁,共一百一十七頁,編輯于2023年,星期五3.1.4.1原碼不恢復余數除法一.算法分析第一步:2r1-B=r2’<0第二步:r2’+B=r2(恢復余數)第三步:2r2-B=r32r2-B=2(r2’+B)-B=2r2’+B=r3第一步:2r1-B=r2<0第二步:2r2+B=r3(不恢復余數)第四十九頁,共一百一十七頁,編輯于2023年,星期五3.1.4.1原碼不恢復余數除法二.算法ri為正,則Qi為1,第i+1步作2ri-Y;ri為負,則Qi為0,第i+1步作2ri+Y。每步操作后,1)如果余數為正,商1,余數左移1位,減去除數,2)如果余數為負,商0,余數左移1位,加上除數。第五十頁,共一百一十七頁,編輯于2023年,星期五3.1.4.1原碼不恢復余數除法三.舉例X=0.10110,Y=-0.11111,求X/Y,給出商Q和余數R。解:設置:A:被除數、余數,B:除數,C:商設初值:

A=|X|=00.10110B=|Y|=00.11111-B=11.00001C=|Q|=0.00000第五十一頁,共一百一十七頁,編輯于2023年,星期五步數條件操作AC00.101100.00000

1)為正-B

01.01100+11.0000100.011010.000012)為負

-B00.11010+11.0000111.110110.000103)+B+00.1111111.101100.00101為正00.10101Cn

rQ1

Q2

Q3

r02r0r12r1r22r2r34)為正-B

01.01010+11.0000100.010110.01011Q4

2r3r4第五十二頁,共一百一十七頁,編輯于2023年,星期五步數條件操作AC00.010110.01011

6)為負

恢復余數+B+00.1111100.10110Q=-0.10110CnQ4

r45)為正-B

00.10110+11.0000111.101110.10110Q5

2r4r5’r5R=0.10110×2-5X/Y=-0.10110+

0.10110×2-5

-0.11111余數符號與被除數相同第五十三頁,共一百一十七頁,編輯于2023年,星期五3.1.4.1原碼不恢復余數除法四.運算規則(1)A、B取雙符號位,X、Y取絕對值運算,X<Y。(2)根據余數的正負決定商值及下一步操作。(3)求n位商,作n步操作;若第n步余數為負,則第

n+1步恢復余數,不移位。五.邏輯實現加法器輸入端控制信號:

+2A、+A、+B、+B、+1加法器輸出端控制信號:

∑A、C、QiCn、CPA、CPC

第五十四頁,共一百一十七頁,編輯于2023年,星期五3.1.4.2補碼不恢復余數除法如何判斷是否夠減?如何上商?

如何確定商符?

1.判夠減(1)同號相除4774-4-7-7-41010-43-7-3-(-4)-3-(-7)3夠減不夠減夠減不夠減夠減:r與Y同號;不夠減:r與Y異號。第五十五頁,共一百一十七頁,編輯于2023年,星期五3.1.4.2補碼不恢復余數除法-47-744-77-4(2)異號相除

10

1

0+(-4)

3+(-7)-3

+4-3

+7

3夠減夠減不夠減不夠減夠減:r與Y異號;不夠減:r與Y同號。第五十六頁,共一百一十七頁,編輯于2023年,星期五3.1.4.2補碼不恢復余數除法(3)判斷規則同號:作X補-Y補X補Y補夠減:r補與Y補同號不夠減:r補與Y補異號異號:作X補+Y補夠減:r補與Y補異號不夠減:r補與Y補同號第五十七頁,共一百一十七頁,編輯于2023年,星期五3.1.4.2補碼不恢復余數除法2.求商值X補Y補同號:商為正異號:商為負夠減商1不夠減商0夠減商0不夠減商1(r、Y同號)(r、Y異號)(r、Y異號)(r、Y同號)夠減商1不夠減商0夠減商0不夠減商1(r、Y同號)(r、Y異號)(r、Y異號)(r、Y同號)(r、Y同號)(r、Y異號)(r、Y異號)(r、Y同號)夠減商1不夠減商0夠減商0不夠減商1上商規則:Qi=Sri⊕SY余數與除數同號商1,異號商0。第五十八頁,共一百一十七頁,編輯于2023年,星期五3.1.4.2補碼不恢復余數除法3.算法ri補與Y補同號,則Qi補為1,第i+1步作2ri補-Y補;ri補與Y補異號,則Qi補為0,第i+1步作2ri補+Y補。4.求商符令X補

=r0補r0補與Y補同號:Q0補=1異號:Q0補=0與實際商符相反商符第五十九頁,共一百一十七頁,編輯于2023年,星期五3.1.4.2補碼不恢復余數除法5.商的校正X補Y補=(1+2+∑2Qi補)+2rn補Y補-n-in-1i=0-n商余數=Q0.Q1Q2……Qn-1求n-1位商(假商)(1)∑2Qi補n-1i=0-i(2)2-n第n位商(末位商)恒置1(3)1商符變反真商=假商+1.000…01n位(4)余數求至rn第六十頁,共一百一十七頁,編輯于2023年,星期五3.1.4.2補碼不恢復余數除法6.例:X=0.10110,Y=-0.11111,求X/Y,給出商Q和余數R。解:設初值:A=X補=00.10110B=Y補=11.00001-B=00.11111C=Q補=0.00000第六十一頁,共一百一十七頁,編輯于2023年,星期五3.1.4.2補碼不恢復余數除法步數條件操作AC00.101100.0000

1)異號+B

01.01100+11.0000100.01101

0.00002)同號

+B00.11010+11.0000111.11011

0.0001Cn-1r、YQ1

Q2

r02r0r12r1r2求商符Q0

異號0

第六十二頁,共一百一十七頁,編輯于2023年,星期五5)+B+11.0000100.1011011.10111步數條件操作AC11.110110.0001

3)異號-B

11.10110+00.1111100.10101

0.00104)異號

+B01.01010+11.0000100.01011

0.0100Cn-1r、YQ3

Q2

r22r2r32r3r42r4r5假商=0.0100Q4

真商=0.0100+1.00001=1.01001Q=-0.10111R=-0.01001×2X/Y=-0.10111+-0.01001×2-5

-0.11111-5第六十三頁,共一百一十七頁,編輯于2023年,星期五3.1.4.2補碼不恢復余數除法

7.運算規則(1)A、B取雙符號位,符號參加運算,X<Y。(2)根據余數與除數的符號決定商值及下一步操作。(3)求n-1位商,作n步操作(求出rn)。(4)對商校正(商符變反,第n位商恒置1)。第六十四頁,共一百一十七頁,編輯于2023年,星期五3.1.4.2補碼不恢復余數除法8.邏輯實現加法器輸入端控制信號:

+2A、+B、+B、+1加法器輸出端控制信號:

∑A、C、QiCn-1、CPA、CPC

第六十五頁,共一百一十七頁,編輯于2023年,星期五3.1.5浮點四則運算浮點數的表示:N=2E·M

其中E是一個二進制整數,稱為數N的階碼,2為階碼的基數,M是二進制小數,稱為數N的尾數。E和M可正可負。尾數M表示數N的全部有效數據,階碼E指明該數的小數點位置,表示數據的大小范圍。階符階碼小數點位置(隱含)EfE1m位階碼數碼位Em-1EmMfM1Mn-1Mnn位尾數數碼位數符尾數小數點位置(隱含)第六十六頁,共一百一十七頁,編輯于2023年,星期五3.1.5.1浮點加減運算運算步驟:1.檢測操作數是否為零判斷方法:1)尾數為0(M=0)。2)階碼下溢(小于所能表示的最小數據)。第六十七頁,共一百一十七頁,編輯于2023年,星期五3.1.5.1浮點加減運算2.對階(1)對階:使兩數階碼相等(小數點實際位置對齊,尾數對應權值相同)。(2)對階規則:小階向大階對齊。2×0.10012×0.1101232×0.0100132×0.11013(3)對階操作:小階階碼增大,尾數右移。例.AE>BE,則BE+1BE,BM,直到BE=AE第六十八頁,共一百一十七頁,編輯于2023年,星期五3.1.5.1浮點加減運算3.尾數相加(減)AM+BMAM4.結果規格化(1)異號相加,同號數相加,尾數有進位到符號位,使M<1/2使M>1,應左移規格化應右移規格化第六十九頁,共一百一十七頁,編輯于2023年,星期五3.1.5.1浮點加減運算AE-1AE(1)11.0001+00.100111.1010(-1/2除外)Af1Af2A1AM11.1010若Af1Af2A1+Af1Af2A1=1,則左規:第七十頁,共一百一十七頁,編輯于2023年,星期五3.1.5.1浮點加減運算若Af1⊕Af2=1,則右規:(2)00.0101+00.110101.001001.0010Af1Af2AMAE+1AE第七十一頁,共一百一十七頁,編輯于2023年,星期五3.1.5.2浮點乘法運算步驟:1.檢測操作數是否為0。浮點乘定點加、定點乘設A=2×AM,B=2×BMAEBEAE+BEA×B=2×(AM×BM)

第七十二頁,共一百一十七頁,編輯于2023年,星期五3.1.5.2浮點乘法運算2.階碼相加。若階碼用補碼表示,按補碼加法進行階碼相加。若階碼用移碼表示,相加后3.尾數相乘。相乘前不需對階。4.結果規格化。一般左規。令AE=2+X,BE=2+Y,AE+BE=2+2+(X+Y)nnnn-2=2+(X+Y)nn減2

修正。n第七十三頁,共一百一十七頁,編輯于2023年,星期五3.1.5.3浮點除法運算步驟:1.檢測操作數是否為0。2.|AM|<|BM|

?

如果不是,被除數尾數右移一位,并相應調整階碼浮點除定點減、定點除設A=2×AM,B=2×BMAEBEAE-BEA÷B=2×(AM÷BM)

第七十四頁,共一百一十七頁,編輯于2023年,星期五3.1.5.3浮點除法運算4.尾數相除。相除前不需對階。5.結果不再規格化。令AE=2+X,BE=2+Y,AE-BE=2-2+(X-Y)=X-Ynnnn+2

n加2

修正。n3.階碼相減。若階碼用補碼表示,相減后不需修正。若階碼用移碼表示,相減后第七十五頁,共一百一十七頁,編輯于2023年,星期五3.1.5.3浮點除法運算例:下面有兩個數X和Y:

X=25×(9/16)Y=23×(-13/16)1)分別將X和Y用浮點表示法表示,其中階碼部分為4位,尾數部分為5位,均用補碼表示。2)用補碼加減交替法計算:(X/Y)補

第七十六頁,共一百一十七頁,編輯于2023年,星期五3.1.5.3浮點除法運算解:1)X=25×0.5625=2101×(0.1001)(X)原=0101;0.1001

(X)補=0101;0.1001Y=23×(-0.8125)=211×(-0.1101)(Y)原=0011;1.1101

(Y)補=0011;1.0011

第七十七頁,共一百一十七頁,編輯于2023年,星期五3.1.5.3浮點除法運算2)因為:AE-BEA÷B=2×(AM÷BM)

所以:(X/Y)補=(0101-0011);0.1001/1.00110101-0011

=(0101)補+(-0011)補=0101+1101=00100.1001/1.0011為:A=00.1001B=11.0011-B=00.1101C=0.0000第七十八頁,共一百一十七頁,編輯于2023年,星期五步數條件操作ACCn-1

1)異號+B

01.0010+11.001100.0101

0.0002)同號

+B00.1010+11.001111.1101

0.001r、Y求商符異號3)異號-B

11.1010+00.110100.0111

0.0104)+B00.1110+11.001100.000100.10010.000

第七十九頁,共一百一十七頁,編輯于2023年,星期五3.1.5.3浮點除法運算真商=0.010+1.0001=1.0101(X/Y)補

=0010;1.0101

余數為:0.0001×2

-4第八十頁,共一百一十七頁,編輯于2023年,星期五練習:1.已知:2[X]補=1.0101001

(1/2)[Y]原=1.0101100

用變形補碼計算[X]補+[Y]補,并判斷結果有無溢出。

2.已知:[X]

原=0.110110,[Y]

原=1.110011

分別用原碼一位和兩位乘法規則計算[XY]原,并寫出運算過程。3.

已知:[X]

原=0.10101,[Y]

原=1.11011,用原碼不恢復余數除法求出[X/Y]原。第八十一頁,共一百一十七頁,編輯于2023年,星期五3.2算術邏輯運算部件算術運算和邏輯運算都可以用一個算術、邏輯運算部件ALU(ArithmeticLogicUnit)實現。ALU與輸入邏輯、輸出邏輯共同組成運算器。實現涉及:(1)如何構成一位二進制加法單元,即全加器;(2)n位全加器連同進位信號傳送邏輯,構成一個n位并行加法器;(3)以加法器為核心,通過輸送選擇邏輯擴展為具有多種算術、邏輯功能的ALU。第八十二頁,共一百一十七頁,編輯于2023年,星期五3.2.1全加器(加法單元)1.加法單元的輸入和輸出加法單元i

AiBiCi-1Ci∑i(本位進位)(本位和)(本位操作數)(低位進位)一個輸入為1時,

∑i為1,Ci為0;兩個輸入為1時,

∑i為0,Ci為1;三個輸入為1時,

∑i為1,Ci為1。第八十三頁,共一百一十七頁,編輯于2023年,星期五3.2.1全加器(加法單元)2.全加器(考慮全部3個輸入量的加法單元)(1)邏輯一(采用原變量輸入)Ci∑iAiBiCi-1第八十四頁,共一百一十七頁,編輯于2023年,星期五3.2.1全加器(加法單元)(2)邏輯二(采用反變量輸入)Ci∑iAiBiCi-1AiBi第八十五頁,共一百一十七頁,編輯于2023年,星期五3.2.2并行加法器與進位鏈結構加法器分為:(1)串行加法器:用一個全加器執行n位長加法的運算。

(2)并行加法器:用多位全加器一步實現多位數同時相加。

第八十六頁,共一百一十七頁,編輯于2023年,星期五3.2.2并行加法器與進位鏈結構1.并行加法器(1)特點:各位同時相加。例.8位數相加。∑8

∑7∑2∑1A8B8A7B7A2B2A1B1

C0101010101111110000(2)影響速度的主要因素:存在著進位信號的傳遞。第八十七頁,共一百一十七頁,編輯于2023年,星期五3.2.2并行加法器與進位鏈結構2.并行加法器的進位鏈(1)進位鏈的基本邏輯關系假設第i-1位為低位,則第i位產生的進位信號邏輯為:

或或令所以進位產生函數進位傳遞函數(進位條件)本地進位、絕對進位條件進位、傳遞進位第八十八頁,共一百一十七頁,編輯于2023年,星期五3.2.2并行加法器與進位鏈結構(2)串行進位特點:進位信號逐位形成,每一級進位直接依賴于前一級進位。

設n位加法器,第1位為最低位,第n位為最高位。

1)邏輯式C1=G1+P1C0C2=G2+P2C1Cn=Gn+PnCn-1第八十九頁,共一百一十七頁,編輯于2023年,星期五3.2.2并行加法器與進位鏈結構

2)結構舉例C2G2P2C1G1P1C0Gi

AiBiAiBiPi第九十頁,共一百一十七頁,編輯于2023年,星期五3.2.2并行加法器與進位鏈結構(3)并行進位特點:各位進位信號同時形成。設n位加法器

1)邏輯式C1=G1+P1C0C2=G2+P2C1=G2+P2G1+P2P1C0

Cn=Gn+PnCn-1=Gn+PnGn-1+…+PnPn-1…P2P1C0

n+1項第九十一頁,共一百一十七頁,編輯于2023年,星期五3.2.2并行加法器與進位鏈結構

2)結構舉例AiBiGiPiC2

C1G2P2G1P1C0AiBi第九十二頁,共一百一十七頁,編輯于2023年,星期五3.2.2并行加法器與進位鏈結構(4)組內并行、組間并行設16位加法器,4位一組,分為4組:4位4位4位4位

第4組第3組第2組第1組C16~C13C12~C9C8~C5C4~C1C0C16C12C8C4分級同時進位第九十三頁,共一百一十七頁,編輯于2023年,星期五3.2.2并行加法器與進位鏈結構1)第1組進位邏輯式

組內:

C1=G1+P1C0C2=G2+P2G1+P2P1C0C3=G3+P3G2+P3P2G1+P3P2P1C0

組間:

C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0GIPI所以CI=GI+PIC0第九十四頁,共一百一十七頁,編輯于2023年,星期五3.2.2并行加法器與進位鏈結構2)第2組進位邏輯式組內:

C5=G5+P5CIC6=G6+P6G5+P6P5CIC7=G7+P7G6+P7P6G5+P7P6P5CI

組間:

C8=G8+P8G7+P8P7G6+P8P7P6G5+P8P7P6P5CIGⅡ

PⅡ所以CⅡ=GⅡ+PⅡCI第九十五頁,共一百一十七頁,編輯于2023年,星期五3.2.2并行加法器與進位鏈結構3)第3組進位邏輯式組內:

C9=G9+P9CⅡC10=G10+P10G9+P10P9CⅡC11=G11+P11G10+P11P10G9+P11P10P9CⅡ

組間:

C12=G12+P12G11+P12P11G10+P12P11P10G9+P12P11P10P9CⅡGⅢPⅢ所以CⅢ=GⅢ+PⅢ

CⅡ第九十六頁,共一百一十七頁,編輯于2023年,星期五3.2.2并行加法器與進位鏈結構4)第4組進位邏輯式組內:

C13=G13+P13CⅢC14=G14+P14G13+P14P13CⅢC15=G15+P15G14+P15P14G13+P15P14P13CⅢ

組間:

C16=G16+P16G15+P16P15G14+P16P15P14G13+P16P15P14P13CⅢGⅣPⅣ所以

CⅣ=GⅣ+PⅣCⅢ

第九十七頁,共一百一十七頁,編輯于2023年,星期五3.2.2并行加法器與進位鏈結構5)各組間進位邏輯CI=GI+PIC0CⅡ=GⅡ+PⅡCICⅢ=GⅢ+PⅢCⅡCⅣ=GⅣ+PⅣCⅢ

=GⅡ+PⅡGI

+PⅡPIC0

=GⅢ+PⅢGⅡ+PⅢPⅡGI

+PⅢPⅡPIC0

=GⅣ+PⅣGⅢ+PⅣPⅢGⅡ+PⅣPⅢPⅡGI

+PⅣPⅢPⅡPIC0

第九十八頁,共一百一十七頁,編輯于2023年,星期五6)結構示意A8....A5

B8....B5A4....A1

B4....B1A12....A9

B12....B9A16....A13

B16....B13CoCⅣA8....A5

B8....B5A4....A1

B4....B1A12....A9

B12....B9A16....A13

B16....B13CoCⅣ∑41~∑85~∑129~∑1613~組間進位鏈GⅣPⅣGⅢPⅢGⅡPⅡGI

PI

C3~1C15~13C11~9C7~5

CⅢ

CⅡCI

GⅣPⅣGⅢPⅢGⅡPⅡGI

PI

C3~1

CⅢ

CⅡCI

C15~13C11~9C7~5

第九十九頁,共一百一十七頁,編輯于2023年,星期五3.2.2并行加法器與進位鏈結構例.已知操作數Ai、Bi,初始進位C0。試寫出C6的邏輯式。串行進位:C6=并行進位:C6=分級同時進位:C6=G6+P6C5G6+P6G5+P6P5G4+….+P6P5…P1C0CI=GI+PIC0G6+P6C5G6+P6G5+P6P5C4GI=G4+P4G3+P4P3G2+P4P3P2G1PI=P4P3P2P1Gi=AiBiPi=Ai⊕BiG6+P6(G5+P5C4)G6+P6G5+P6P5CI第一百頁,共一百一十七頁,編輯于2023年,星期五3.2.3ALU部件加法器選擇器選擇器控制信號控制信號操作數操作數輸入組合輸入組合選擇器選擇器操作數操作數ALU第一百零一頁,共一百一十七頁,編輯于2023年,星期五3.2.3ALU部件以SN74181芯片(4位片ALU)為例1.組成多功能算邏單元SN74181是每片四位ALU,即四位片。(1)一位ALU邏輯1位加法器(求和、進位)1位選擇器(1對)1個公共控制門(4位共用)第一百零二頁,共一百一十七頁,編輯于2023年,星期五3.2.3ALU部件MCi-1Ci

S3S2BiS1S0Ai

FixiYi一位加法器控制門:M=0,算術運算M=1,邏輯運算第一百零三頁,共一百一十七頁,編輯于2023年,星期五3.2.3ALU部

溫馨提示

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

最新文檔

評論

0/150

提交評論