第2-2章 運算方法與運算器_第1頁
第2-2章 運算方法與運算器_第2頁
第2-2章 運算方法與運算器_第3頁
第2-2章 運算方法與運算器_第4頁
第2-2章 運算方法與運算器_第5頁
已閱讀5頁,還剩98頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2-2章運算方法和運算器23一月20242目錄2.2定點加法、減法運算(掌握)2.3定點乘法運算(理解)2.4定點除法運算(理解)2.5定點運算器的組成(了解)23一月20243學(xué)習(xí)要求掌握定點數(shù)的補碼加減法、常用的乘除法運算方法;掌握浮點數(shù)的加減運算方法;理解溢出判斷方法;清楚運算器部件的組成結(jié)構(gòu)及設(shè)計方法。23一月202442.2定點加法、減法運算2.2.1補碼加法2.2.2補碼減法2.2.3溢出概念與檢驗方法2.2.4基本的二進制加法、減法器23一月202452.2.1補碼加法補碼加法運算基本公式定點整數(shù):[x+y]補=[x]補

+[y]補

(mod2n+1)

定點小數(shù):[x+y]補=[x]補

+[y]補

(mod2)

23一月20246定點數(shù)補碼加法舉例[例11]x=+1001,y=+0101,求x+y。解:

[x]補=01001,[y]補=00101[x]補

01001

+[y]補

00101[x+y]補

01110

所以x+y=+1110[例12]x=+1011,y=-0101,

求x+y。解:[x]補=01011,[y]補=11011[x]補

01011+[y]補

11011[x+y]補

100110

所以x+y=+011023一月202472.2.2補碼減法

補碼減法運算基本公式定點整數(shù):[x-y]補=[x]補

-[y]補=[x]補

+[-y]補

(mod2n+1)定點小數(shù):[x-y]補=[x]補

-[y]補=[x]補

+[-y]補

(mod2)[-y]補等于[y]補的各位取反,末位加1。23一月20248定點數(shù)補碼減法舉例

[例13]已知x1=-1110,x2=+1101,

求:[x1]補,[-x1]補,[x2]補,[-x2]補。解:[-x1]補=01110[x1]補=﹁[-x1]補+1

=10001+00001=10010[x2]補=01101[-x2]補=﹁[x2]補+1

=10010+00001=1001123一月20249定點數(shù)補碼減法舉例

[例14]x=+1101,y=+0110,求x-y。解:[x]補=01101,[y]補=00110,[-y]補=11010[x-y]補=[x]補+[-y]補=01101+11010

=100111

=00111

∴x-y=+011101101+)1101010011123一月20241023一月202410定點數(shù)補碼加減法運算基本公式定點整數(shù):

[x±

y]補=[x]補

+[±y]補

(mod2n+1)定點小數(shù):

[x±

y]補=[x]補

+[±y]補

(mod2)定點數(shù)補碼加減法運算符號位和數(shù)值位可同等處理;只要結(jié)果不溢出,將結(jié)果按2n+1或2取模,即為本次運算結(jié)果。23一月202411例

設(shè)機器字長為8位,[x]補=10100011,

[y]補=00101101,求x-y。解: [-y]補=11010011 [x-y]補=[x]補+[-y]補 =10100011+11010011

=101110110

=01110110

∴x-y=+11810100011+)11010011101110110×x=-93,y=+45計算過程中,產(chǎn)生了溢出?。?3-45=-138<-12823一月2024122.2.3溢出概念與檢測方法溢出在定點數(shù)機器中,數(shù)的大小超出了定點數(shù)能表示的范圍。上溢數(shù)據(jù)大于機器所能表示的最大正數(shù);下溢數(shù)據(jù)小于機器所能表示的最小負數(shù);例如,8位補碼表示的定點整數(shù),范圍為[-128,+127]若x=120,y=30,則x+y產(chǎn)生上溢若x=-50,y=-84,則x+y產(chǎn)生下溢若x=120,y=-10,則x-y產(chǎn)生上溢23一月20241223一月202413例題[例15]x=+1011,y=+1001,求x+y。[解:]

[x]補=0.1011[y]補=0.1001[x]補

0.1011

+[y]補

0.1001[x+y]補

1.0100[例16]x=-1101,y=-1111,求x+y。[解:]

[x]補=1.0011[y]補=1.0001[x]補

1.0011+[y]補

1.0001[x+y]補

0.0101正數(shù)+正數(shù)=負數(shù)負數(shù)+負數(shù)=正數(shù)溢出!23一月202414溢出判別方法——直接判別法方法:同號補碼相加,結(jié)果符號位與加數(shù)相反;異號補碼相減,結(jié)果符號位與減數(shù)相同;特點:硬件實現(xiàn)較復(fù)雜;舉例:若[x]補=0101,[y]補=0100,則[x+y]補=1001若[x]補=1011,[y]補=1100,則[x+y]補=0111若[x]補=0101,[y]補=1100,則[x-y]補=1001上溢下溢上溢23一月202415溢出判別方法——變形補碼判別法變形補碼,也叫模4補碼:采用雙符號位表示補碼判別方法:特點:硬件實現(xiàn)簡單,只需對結(jié)果符號位進行異或舉例:若[x]補=00101,[y]補=00100,則[x+y]補=01001若[x]補=11011,[y]補=11100,則[x+y]補=10111若[x]補=00101,[y]補=11100,則[x-y]補=01001雙符號位

結(jié)果00正01上溢10下溢11負上溢下溢上溢23一月20241623一月202416溢出判別方法——進位判別法0101+)

01001001100001+)

0100010100V=0⊕1=1V=0⊕0=0判別方法:最高數(shù)值位的進位與符號位的進位是否相同;判別公式溢出標(biāo)志V=Cf⊕Cn-1其中Cf為符號位產(chǎn)生的進位,Cn-1為最高數(shù)值位產(chǎn)生的進位。舉例:溢出=Sf1Sf21.硬件判斷邏輯一(SA、SB與Sf的關(guān)系)溢出=SASBSfSASfSB2.硬件判斷邏輯二(Cf與C的關(guān)系)溢出=CfC3.硬件判斷邏輯三(雙符號位)溢出判斷方法總結(jié):兩操作數(shù)的符號相同而結(jié)果的符號與它們相反,則產(chǎn)生溢出。正數(shù)相加為負數(shù)或負數(shù)相加為正數(shù)則產(chǎn)生溢出)結(jié)果的兩個符號位的代碼不一致時,表示溢出23一月202418回顧邏輯門圖形符號

基本邏輯運算與運算“與”運算又叫“邏輯乘”(Logicmultiplication)其結(jié)果叫“邏輯積”(Logicproduct)F=A?B

1?1=11?0=00?1=00?0=0數(shù)字電路表示:??????AB

220VF布爾代數(shù)F<=AandBVHDL

利用F與A、B邏輯關(guān)系說明邏輯運算

基本邏輯運算“?”---“與”運算符,常將“?”省去,寫成F=AB111001010000FBA真值表tttABF波形圖特點:有0出0,全1出1國標(biāo)符號國際流行符號原部標(biāo)符號&與

門的邏輯符號ABABABFFF或運算“或”運算又叫“邏輯加”(Logicaddition)其結(jié)果叫“邏輯和”(Logicsum)數(shù)字電路表示:??B

220VF????AF=A+B

1+1=11+0=10+1=10+0=0F<=AorB“+”為或運算符,布爾代數(shù)式寫成F=A+B111101110000FBA真值表FtttAB特點:有1出1,全0出0。波形圖國標(biāo)符號國際流行符號原部標(biāo)符號

1+ABABABFFF或門的邏輯符號非運算

“非”運算(NOT)又叫“反相”運算(Inversion),也叫“邏輯否定”(Logicnegation)布爾代數(shù)式寫成F=A開關(guān)電路表示:??

220VF??AF=A

0=11=0F<=notAFttAAF01101AAAFFF國標(biāo)符號 國際流行符號原部標(biāo)符號

異或運算布爾代數(shù)式:F=AB=AB+AB011101110000FBA真值表A0=A1=AA=AA=異或運算拓展:輸入取值為1的變量的個數(shù)為奇數(shù)時,輸出為1;否則,輸出為0A0=A1=AA=A0=A1=AA=AA=A0=A1=A1=A0=A1=AA=A0=A1=異或門的邏輯符號23一月2024292.2.4基本的二進制加法/減法器一位二進制數(shù)據(jù)的半加器:加數(shù):Ai、Bi

結(jié)果:Si(和)Ci+1(本位向高位的進位)一位半加器示意圖:一位二進制數(shù)據(jù)的全加器:加數(shù):Ai、Bi

Ci(低位向本位的進位)結(jié)果:Si(和)

Ci+1(本位向高位的進位)一位全加器示意圖:FAAiBiCiCi+1SiHAAiBiCi+1Si23一月202430一位二進制數(shù)據(jù)的全加器的邏輯結(jié)構(gòu)全加運算的真值表如右所示:兩個輸出端的邏輯表達式Si=Ai⊕Bi⊕CiCi+1=AiBi+(Ai⊕

Bi)Ci全加器邏輯結(jié)構(gòu):輸入輸出AiBiCiSiCi+1000000011001010011011001010101110011111123一月202431多位二進制數(shù)據(jù)加法器兩個n位的數(shù)據(jù)A=An-1An-2…A1A0,B=Bn-1Bn-2…B1B0和S=Sn-1Sn-2…S1S0采用進位判別法判斷運算的溢出:V=Cn⊕Cn-123一月202432多位二進制數(shù)據(jù)加法/減法器將減法轉(zhuǎn)換成加法[A]補

-[B]補=[A]補

+[-B]補由[B]補求[-B]補

[B]補求各位取反,末位加1;將加減法電路合二為一使用異或運算;當(dāng)M=0時,Bi’=Bi當(dāng)M=1時,Bi’=﹁Bi;BiMBi’23一月202433行波進位的補碼加法/減法器23一月2024342.3定點乘法運算

原碼并行乘法23一月202435原碼并行乘法1.分析筆算與機器算法的異同A=–0.1101B=0.1011A×B=–0.100011110.11010.101111011101000011010.10001111符號位單獨處理乘數(shù)的某一位決定是否加被乘數(shù)4個位積一起相加乘積的位數(shù)擴大一倍×乘積的符號心算求得

?23一月2024362.不帶符號的陣列乘法器設(shè)有兩個不帶符號的二進制整數(shù):

A=am-1…a1a0

;

B=bn-1…b1b0它們的數(shù)值分別為a和b,即A、B相乘,產(chǎn)生m+n位乘積P:

P=pm+n-1…p1p0乘積P的數(shù)值為

兩個無符號數(shù)據(jù)的并行乘法電路23一月202437二進制數(shù)乘法的運算過程ai*bi=aANDb23一月202438m×n位不帶符號的陣列乘法器邏輯框圖被加數(shù)產(chǎn)生部件被加數(shù)求和部件被乘數(shù)乘數(shù)乘法過程中的加數(shù)乘積23一月2024395

×

5

位不帶符號陣列乘法器電路動畫演示:2-5.swf23一月202440課本P34[例19]

已知兩個不帶符號的二進制整數(shù)A=11011,B=10101,求每一部分乘積項aibj的值與p9p8……p0的值。23一月202441帶符號數(shù)的陣列乘法器電路:在無符號數(shù)的陣列乘法器的基礎(chǔ)上完成;使用3個求補器,分別用對應(yīng)的符號位控制;2個算前求補器:將乘數(shù)真值的絕對值送入運算器;1個算后求補器:將負的乘積的真值求出補碼表示;稱為間接補碼乘法電路。3.帶符號的陣列乘法器(間接補碼乘法器)23一月202442對2求補電路的原理設(shè)有兩個n+1位帶符號補碼:

A=an…a1a0

;

B=bn…b1b0采用不帶符號的乘法電路計算A*B符號位不參與運算,只用于確定結(jié)果的符號;數(shù)據(jù)位要取絕對值參與運算:

正數(shù)——不變;負數(shù)——各位取反,末位加1對2求補電路:數(shù)據(jù)舉例:[-2]補=1110 [-3]補=1101[-6]補=1010

[+2]補=0010

[+3]補=0011[+6]補=0110兩相反數(shù)的補碼特征:

自右向左,第一個“1”的右側(cè)所有數(shù)據(jù)位,均相同;

左側(cè)所有數(shù)據(jù)位,均相反。23一月202443對2求補器電路邏輯采用按位掃描技術(shù)來執(zhí)行求補操作;E為控制信號線,可由數(shù)據(jù)a的符號位來控制;0110000001101100100001110111a4始終為023一月202444間接補碼乘法電路補碼數(shù)值補碼數(shù)值符號位:作為求補控制符號位:作為求補控制結(jié)果符號位:同時控制結(jié)果的求補23一月202445設(shè)最高位為符號位,輸入數(shù)據(jù)用5位補碼表示:

[x]補=01111 [y]補=10011符號位單獨運算:xf⊕yf

=0⊕1=1算前求補器輸出:|x|=1111,|y|=1101乘法陣列輸出:

|x|×|y|=11000011乘積符號位為1,則算后求補器輸出為00111101所以,[x×y]補=100111101,x×y=(-195)10十進制數(shù)驗證:15×(-13)=(-195)10課本P36[例20]

設(shè)x=+15,y=-13,用帶求補器的補碼陣列乘法器求出乘積x·y=?23一月202446設(shè)最高位為符號位,輸入數(shù)據(jù)用5位補碼表示:

[x]補=10001 [y]補=10011符號位單獨運算:xf⊕yf

=1⊕1=0算前求補器輸出:|x|=1111,|y|=1101乘法陣列輸出:

|x|×|y|=11000011乘積符號位為0,則算后求補器輸出為11000011所以,[x×y]補=011000011,x×y=(+195)10十進制數(shù)驗證:(-15)×(-13)=(+195)10課本P36[例21]

設(shè)x=-15,y=-13,用帶求補器的補碼陣列乘法器求出乘積x×y=?23一月2024472.4定點除法運算2.4.1原碼除法算法原理

(串行除法)2.4.2并行除法器2.4.1原碼定點除法運算例.0.10110÷0.111110.10110

11010.01

111110.111110001

11111

1010101

11111

101100.00000.0.商:0.10110余數(shù):0.10110×2

5實現(xiàn)除法的關(guān)鍵:比較余數(shù)、除數(shù)絕對值大小,以決定上商。23一月202449除法的數(shù)據(jù)約定設(shè)n位被除數(shù)和除數(shù)用定點小數(shù)表示被除數(shù)[x]原=xf.xn-1…x1x0除數(shù)[y]原=yf.yn-1…y1y0

則商[Q]原=(xf⊕yf)+(0.xn-1…x1x0)/(0.yn-1…y1y0)

式中,xf為被除數(shù)符號,yf為除數(shù)符號。

約定小數(shù)定點除法|x|<|y|,整數(shù)定點除法|x|>|y|避免商溢出被除數(shù)不等于0,除數(shù)不能為0兩種除法:恢復(fù)除數(shù)法;不恢復(fù)除數(shù)法(加減交替法)0.10110

11010.01

11111

0.1111100

11111

+11111

110100

11111

101011原碼恢復(fù)余數(shù)法23一月202451余數(shù)Ri>0上商“1”,2Ri

–|y|余數(shù)Ri<0上商“0”,

Ri

+|y|恢復(fù)余數(shù)2(Ri+|y|)–|y|=2Ri

+|y|加減交替恢復(fù)余數(shù)法運算規(guī)則不恢復(fù)余數(shù)法運算規(guī)則2Ri

+|y|余數(shù)Ri>0上商“1”,2Ri

–|y|余數(shù)Ri<0上商“0”,

23一月2024522.4.2并行除法器并行除法器也稱陣列除法器;并行除法器的類型恢復(fù)余數(shù)陣列除法器不恢復(fù)余數(shù)陣列除法器(采用加減交替法原理)基本元件:可控加法/減法(CAS)單元補碼陣列除法器23一月202453可控加法/減法(CAS)單元用于加減交替法的除法器中;由控制端P選擇運算類型:P=0,作加法運算P=1,作減法運算核心:全加器四個輸入被加/減數(shù)Ai、加/減數(shù)Bi、低位進/借位Ci

、控制端P四個輸出加/減數(shù)Bi、當(dāng)位和/差Si、向高位的進/借位Ci+1、控制端P23一月202454不恢復(fù)余數(shù)的陣列除法器被除數(shù)x=0.x6x5x4x3x2x1頂部一行和最右邊對角線上的垂直輸入線;除數(shù)y=0.y3y2y1沿對角線方向輸入;逐行右移;商q=0.q3q2q1每次的加/減運算中產(chǎn)生;余數(shù)r=0.00r6r5r4r3由最后一行產(chǎn)生;如果夠減,有進位,商為1,下行做減法。如果不夠減,無進位,商為0,下行做加法。其它行工作同上,得出商和余數(shù)。通過以下有模運算進位圖理解商與進位的關(guān)系: 夠減,有進位,商為1;不夠減,無進位,商為0。23一月2024572.5定點運算器的組成2.5.1邏輯運算2.5.2多功能算術(shù)邏輯運算單元2.5.3內(nèi)部總線2.5.4定點運算器的基本結(jié)構(gòu)23一月2024582.5.1邏輯運算四種基本的邏輯運算:邏輯與邏輯或1010邏輯非1101邏輯異或邏輯數(shù):無符號數(shù)。邏輯運算:按位進行運算。 計算機中最基本的算術(shù)運算是加法運算,不論加、減、乘、除運算最終都可以歸結(jié)為加法運算。所以首先討論最基本、最核心的運算部件——加法器,以及并行加法器的進位問題。 加法器是由全加器和其它必要的邏輯電路組成的,所以從全加器開始討論。2.5.2多功能算術(shù)邏輯運算單元1、全加器(FA)全加器(FA)是最基本的運算單元,由它構(gòu)成加法器。全加器有三個輸入量:操作數(shù)Ai、Bi、以及低位傳來的進位信號Ci-1

。全加器有兩個輸出量:本位和Si、以及向高位的進位信號Ci。

AiBiCi-1SiCi0000000110010100110110010101011100111111

全加器真值表全加器的邏輯方程和電路根據(jù)真值表得:

Si=Ai⊕Bi⊕Ci-1

Ci=AiBi+(Ai⊕Bi)Ci-1Si:本位和

Ci

:向高位的進位實現(xiàn)電路邏輯框圖一個全加器只完成一位加法全加器構(gòu)成加法器全加器并不存儲信息,可用門電路來實現(xiàn)。用全加器能夠方便地構(gòu)成加法器。加法器分為串行加法器和并行加法器。串行加法器只有一個全加器,數(shù)據(jù)逐位串行送入加法器進行計算。由于運算速度慢,一般不用。并行加法器則由若干個全加器構(gòu)成,并行加法器的位數(shù)與操作數(shù)的位數(shù)相等。并行加法器的最長運算時間主要取決于進位信號的傳遞時間。例如:11…11和00…01相加,最低位產(chǎn)生的進位將逐位影響到最高位.由此可見,提高并行加法器速度的關(guān)鍵是盡量加快進位產(chǎn)生和傳遞的速度。2、進位產(chǎn)生與傳遞進位鏈的概念: 并行加法器中的每一個全加器都有一個從低位送來的進位輸入和一個傳送給高位的進位輸出。把構(gòu)成進位信號產(chǎn)生和傳遞的邏輯網(wǎng)絡(luò)稱為進位鏈。進位鏈上每一位的進位表達式為:

Ci=AiBi+(Ai⊕Bi)Ci-1

設(shè)

Gi=AiBi

,稱為進位產(chǎn)生函數(shù)(Generate)

Pi=Ai⊕Bi

,稱為進位傳遞函數(shù)(Propagate)∴進位表達式Ci=Gi+PiCi-1串行進位把n個全加器串聯(lián)起來,就可以實現(xiàn)兩個n位數(shù)的相加。這種加法器稱為串行進位的并行加法器,串行進位又叫行波進位。

其中:C1=G1+P1C0C2=G2+P2C1

Cn=Gn+PnCn-1串行進位的并行加法器,總的延遲時間正比于字長,字長越長,總延遲時間也越長。若一位進位需2ty時間,完成n位進位就需要2nty.要提高加法運算速度,必須改進進位方式。

3、并行加法器的快速進位改進串行進位方式的基本思路是讓各進位同時形成,避免各進位之間的依賴關(guān)系?,F(xiàn)在來分析一下進位關(guān)系。 展開C1=G1+P1C0

;C2=G2+P2C1;…,Cn=Gn+PnCn-1

得關(guān)系式:

C1=G1+P1C0 C2=G2+P2C1=G2+P2G1+P2P1C0 C3=G3+P3C2=G3+P3G2+P3P2G1+P3P2P1C0

C4=G4+P4C3=G4+P4G3+P4P3G2+P4P3P2G1

+P4P3P2P1C0

以上進位輸出只與Gi、Pi以及最低進位C0有關(guān),而且不依賴于其低位進位Ci-1的輸入,因此各級進位可以同時產(chǎn)生,形成并行進位。代入法并行進位的特點并行進位的特點是各級進位信號同時形成,與字長無關(guān),提高了整體運算速度

。并行進位又叫先行進位。最長延遲時間僅為2ty(一級門的延遲時間為ty)。隨著加法器位數(shù)的增加,Ci的邏輯表達式會變得越來越長,輸入變量會越來越多,電路結(jié)構(gòu)也會變得越來越復(fù)雜,導(dǎo)致電路實現(xiàn)也越來越困難。并行進位方式需繼續(xù)改進,才能有實用價值。以16位加法器為例,將其分為4組,每組4位。在組內(nèi),按照并行進位函數(shù)直接產(chǎn)生C1~C4,這些進位可同時得到。實現(xiàn)這種進位邏輯的電路稱為4位先行進位電路(CLA:Look-AheadCarry)。利用這種4位一組的CLA電路和4位全加器可以構(gòu)成4位CLA加法器。74181芯片將組內(nèi)并行進位鏈與4位全加器集成在一塊芯片中。在組間,每個組的進位輸入是前一個組的進位輸出,而每個組的進位輸出是下一個組的進位輸入.構(gòu)成16位加法器很容易實現(xiàn)

分組進位,組內(nèi)采用并行(先行)進位結(jié)構(gòu)單級先行進位(組內(nèi)并行,組間串行)上述組內(nèi)并行、組間串行的進位方式也稱為單級先行進位方式,原理如下圖所示。單級先行進位組內(nèi)并行、組間串行進位的時間圖(16位)如下:完成進位時間8ty.進位時間與組數(shù)成正比,組數(shù)越多,進位時間越長。多級先行進位(組內(nèi)并行,組間并行)為說明問題,仍以16位加法器為例,仍然4位一組,分成4個小組,先就第一小組的進位輸出函數(shù)C4做一下分析:

C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0G1*

P1* =G1*+P1*C0G1*稱為組進位產(chǎn)生函數(shù),P1*稱為組進位傳遞函數(shù);這兩個函數(shù)類似于進位產(chǎn)生函數(shù)G和進位傳遞函數(shù)P.多級先行進位(續(xù)一)四個組內(nèi)的最高進位C16、C12、C8、C4可以分別表示為:C4=G1*+P1*C0C8=G2*+P2*C4每一組輸出的最高進位為下一組的進位輸入C12=G3*+P3*C8C16=G4*+P4*C12

現(xiàn)在逐項代入、并展開得關(guān)系式:

C4=G1*+P1*

C0 C8=G2*+P2*C4=G2*+P2*G1*

+P2*P1*C0 C12=G3*+P3*G2*+P3*P2*G1*

+P3*P2*P1*C0 C16=G4*+P4*G3*+P4*P3*G2*+P4*P3*P2*G1*+P4*P3*P2*P1*C0

可以看出,這4組進位結(jié)構(gòu)與前述4位先行進位邏輯完全相同,組間進位信號只與最低進位C0有關(guān),所以能同時產(chǎn)生。如:組間并行進位鏈芯片74182多級先行進位問題是這4個組間進位信號如何用硬件來產(chǎn)生呢?對于多級先行進位的實現(xiàn)可以按如下思路來理解:先把單級先行進位加法器的串行進位鏈斷開;增加一級先行進位鏈,這個新增加的先行進位鏈的進位稱為二級進位;組間進位信號C4、C8、C12、C16由二級進位鏈來產(chǎn)生,其邏輯關(guān)系式已經(jīng)得到;讓一級進位鏈多產(chǎn)生兩個輔助函數(shù)Gi*和Pi*,并且作為二級進位鏈的輸入。多級先行進位組內(nèi)進位信號能同時產(chǎn)生、組間進位信號也能同時產(chǎn)生,由此可以構(gòu)成多級并行進位邏輯。16位2級先行進位加法器如下圖所示。多級先行進位(續(xù)四)16位2級先行進位時間圖

進位產(chǎn)生次序如下:產(chǎn)生第一小組的C1~C3、所有組進位產(chǎn)生函數(shù)Gi*和組進位傳遞函數(shù)Pi*,時間為2ty.由CLA電路產(chǎn)生第二、三、四小組的組間進位信號C4、C8、C12、C16,時間為2ty.產(chǎn)生第二、三、四小組的組內(nèi)進位信號C5、C6、C7、C9、C10、C11、C13、C14、C15,時間為2ty.4、多功能算術(shù)邏輯部件ALU前面介紹了加法器的算術(shù)運算功能,為了完成多種算術(shù)邏輯運算,需要將加法器的功能進行擴展,擴展的基本思想如下: 參加運算的兩個數(shù)Ai、Bi和低位進位Ci-1先不進行全加,先把兩個輸入Ai、Bi和四個控制參數(shù)S0、S1、S2、S3進行組合,形成函數(shù)Xi和Yi,然后再將Xi、Yi和低位進位Ci-1通過全加器進行全加。這樣一來,控制參數(shù)不同,得到的組合函數(shù)也不同,從而實現(xiàn)多種算術(shù)和邏輯運算。

算術(shù)邏輯部件ALU算術(shù)邏輯部件ALU大體上有三部分組成:全加器進位鏈輸入選擇器下面以ALU的一位邏輯為例,原理性地說明算術(shù)、邏輯功能是如何實現(xiàn)的。算術(shù)邏輯部件ALU(續(xù)一)一位加法器由全加器和進位門構(gòu)成,其中,兩個半加器構(gòu)成全加器、與或非門構(gòu)成一位進位門。一位輸入選擇器,由兩個與或非門構(gòu)成,可輸入2個本位操作數(shù)或非、4個控制信號(S3~S0)一個控制門M,選擇算邏運算。當(dāng)M=0時,開門接收低位來的進位信號,執(zhí)行算術(shù)運算;當(dāng)M=1時,關(guān)門不接收低位進位信號,執(zhí)行邏輯運算,與進位無關(guān)。算術(shù)邏輯部件ALU(續(xù)二)控制信號與選擇器輸出關(guān)系表:S3S2XiS1S0Yi00100Ai01Ai+Bi01AiBi10Ai+Bi10AiBi11Ai110

進位傳遞函數(shù)進位產(chǎn)生函數(shù) 通過不同的輸入選擇,實現(xiàn)不同的功能,這進一步說明:數(shù)據(jù)是在傳送過程實現(xiàn)運算、并得到處理的。多位ALU的實現(xiàn)思路完全一樣。

74181:4位算術(shù)邏輯運算單元結(jié)構(gòu):4位全加器

4位并行進位鏈

4位選擇器

1個控制門原始進位Cn

進位輸出

Cn+4G、P

構(gòu)成組間串行進位

構(gòu)成組間并行進位74182:先行進位部件邏輯電路圖

進位邏輯(1)組間串行168C12168C8168C4168C0C16Cn+4Cn(2)組間并行

1715874181

1715874181

1715874181

1715874181C074182并行進位鏈PGGⅣPⅣGⅢPⅢGⅡPⅡGI

PI

C3~1

CⅢ

CⅡCI

CⅣ

C15~13C11~9C7~5

23一月2024842.5.3內(nèi)部總線根據(jù)總線所在位置分內(nèi)部總線:

指CPU內(nèi)各部件的連線。外部總線:

指系統(tǒng)總線,即CPU與存儲器、I/O系統(tǒng)之間的連線。按總線的邏輯結(jié)構(gòu)分單向總線:

信息只能向一個方向傳送。雙向總線:

信息可以分兩個方向傳送,既可以發(fā)送數(shù)據(jù),也可以接收數(shù)據(jù)。23一月202485DE觸發(fā)器:E輸入端用以控制D的輸入任何時候二者不能同時為1任何時候二者不能同時為123一月2024862.5.4定點運算器的基本結(jié)構(gòu)單總線結(jié)構(gòu)的運算器雙總線結(jié)構(gòu)的運算器三總線結(jié)構(gòu)的運算器CPU內(nèi)部所有部件都接到同一總線上。數(shù)據(jù)可以在任何兩個寄存器之間,或任一個寄存器和ALU之間傳送。如果有陣列乘法器或除法器,它們所處的位置與ALU相當(dāng)。同一時刻,只能有一個操作數(shù)放在總線上,不能同時傳送兩個數(shù)據(jù)。結(jié)構(gòu)特點:操作速度較慢,控制電路比較簡單。

單總線結(jié)構(gòu)的運算器這種結(jié)構(gòu)有兩條總線:總線1、總線2。兩個操作數(shù)可以同時送到ALU中進行運算,只需一次操作控制,而把運算結(jié)果送到緩沖器,緩沖器的數(shù)據(jù)可以送到任意一條總線上,兩條總線的數(shù)據(jù)通過通用寄存器組來存儲。優(yōu)點:速度比單總線結(jié)構(gòu)快。雙總線結(jié)構(gòu)的運算器有三條總線:

兩端接ALU的輸入:輸入總線1,輸入總線2

一端接ALU的輸出:輸出總線3這樣一步就可以控制兩個數(shù)的運算,速度可以大大提高,通過通用寄存器把總線3的數(shù)據(jù)送到總線1與總線2。雙總線結(jié)構(gòu)的運算器23一月2024902.6浮點運算方法和浮點運算器2.6.1浮點加法、減法運算2.6.2浮點乘法、除法運算2.6.3浮點運算流水線2.6.4浮點運算器實例23一月202491設(shè)有兩個浮點數(shù)X=Mx×2Ex和Y=My×2Ey

,且Ex>Ey若要求X±Y的結(jié)果S,則S=X±Y=MS×2ES

其中,ES=Ex,MS=Mx±(My

SHR(Ex-Ey))浮點數(shù)加減運算的步驟零操作數(shù)檢查兩操作數(shù)對階尾數(shù)相加減結(jié)果的規(guī)格化結(jié)果的舍入處理結(jié)果的溢出判斷2.6.1浮點數(shù)加減運算一個操作數(shù)為0,則不必運算,節(jié)省運算時間使小數(shù)點位置對齊,為加減運算做準(zhǔn)備以雙符號位的補碼形式進行加減法操作23一月202492浮點數(shù)加減運算——兩操作數(shù)對階對階的原則以較大的階碼為標(biāo)準(zhǔn),調(diào)整階碼較小的數(shù)據(jù);避免階碼較大的浮點數(shù)的尾數(shù)左移,導(dǎo)致最高有效數(shù)位丟失;具體操作求階差△E=EX-EY調(diào)整階碼較小的數(shù)據(jù)若△E>0,則MY右移△E位,結(jié)果的階碼為EX若△E<0,則MX右移|△E|位,結(jié)果的階碼為EY例,X——EX=0001,MX=0.101;Y——EY=0011,尾數(shù)MY=0.111階差△E=EX-EY=0001-0011=-10

X尾數(shù)MX右移2位,MX=0.00101<0增大階碼,尾數(shù)右移23一月202493浮點數(shù)加減運算——結(jié)果的規(guī)格化處理兩尾數(shù)加減的結(jié)果有兩種情況(尾數(shù)用雙符號位的補碼表示)尾數(shù)溢出尾數(shù)右移1位,階碼加1尾數(shù)為非規(guī)格化數(shù)據(jù)尾數(shù)左移1位,階碼減1,直至數(shù)值位最高位與符號位相反。同上例,對階后E=EY=0011,尾數(shù)MX=0.001(01),MY=0.111尾數(shù)求和

MS=MX+MY=00.00101+00.111=01.00001兩符號位相反,應(yīng)進行右規(guī)1位的操作則MS=00.100(001),ES=011+1=0100兩符號位為01或10右規(guī)左規(guī)補碼表示的符號位與最高數(shù)值位相同雙符號位補碼表示結(jié)果規(guī)格化

1/2≤

|尾數(shù)|<1正數(shù)00.1*******(規(guī)格化)負數(shù)11.0*******(規(guī)格化)不規(guī)格化形式11.10******(3)10.********(4)00.01******(1)01.********(2)不規(guī)格化形式右規(guī)時最高位補符號位23一月202495浮點數(shù)加減運算——結(jié)果的舍入處理在對階或右規(guī)操作時,會使加數(shù)或結(jié)果的尾數(shù)低若干位移出,影響精度,常用兩種舍入處理方法方法1:0舍1入法保留右移時的移出位,若最高位為1,則尾數(shù)加1;否則舍去;特點:精度較高,但需要記錄所有的移出位。方法2:恒置1法若之前步驟有右移操作,則直接將結(jié)果的最低位置1;特點:精度較0舍1入法較低,但應(yīng)用簡單。同上例,結(jié)果的尾數(shù)MS=00.100001

0舍1入法:MS=00.100恒置1法:MS=00.10123一月202496浮點數(shù)加減運算——結(jié)果的溢出判斷尾數(shù)溢出在規(guī)格化處理時,通過完成右規(guī)完成;階碼溢出上溢(結(jié)果絕對值太大)——置上溢標(biāo)志,結(jié)束;下溢(結(jié)果絕對值太小)——置機器零;正常——運算結(jié)束;同上例,運算結(jié)果的階碼ES=011+1=0100未溢出!23一月202497設(shè)浮點數(shù)的階碼用雙符號位,尾數(shù)用單符號位的補碼表示;[X]?。?0010,0

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論