計(jì)算機(jī)組成原理 第二章 數(shù)據(jù)的運(yùn)算2_第1頁
計(jì)算機(jī)組成原理 第二章 數(shù)據(jù)的運(yùn)算2_第2頁
計(jì)算機(jī)組成原理 第二章 數(shù)據(jù)的運(yùn)算2_第3頁
計(jì)算機(jī)組成原理 第二章 數(shù)據(jù)的運(yùn)算2_第4頁
計(jì)算機(jī)組成原理 第二章 數(shù)據(jù)的運(yùn)算2_第5頁
已閱讀5頁,還剩95頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

tl

(二)定點(diǎn)數(shù)的表示和運(yùn)算

考綱要求的內(nèi)容如下:

lo定點(diǎn)數(shù)的表示

無符號(hào)數(shù)的表示;有符號(hào)數(shù)的表示。

2o定點(diǎn)數(shù)的運(yùn)算

定點(diǎn)數(shù)的位移運(yùn)算;

原碼、補(bǔ)碼定點(diǎn)數(shù)的加/減運(yùn)算;

定點(diǎn)數(shù)的乘/除運(yùn)算;

溢出概念和判別方法。

定點(diǎn)數(shù)的移位運(yùn)算

移位運(yùn)算包括算術(shù)移位和邏輯移位。

算術(shù)移位時(shí),最高符號(hào)位不變;

邏輯移位時(shí),最高符號(hào)位可變。

lo機(jī)器數(shù)為正時(shí),不論左移右移,用0添補(bǔ)。

2O負(fù)數(shù)的原碼,不論左移右移,空位用0添補(bǔ)。

3o負(fù)數(shù)的反碼,不論左移右移,空位用1添補(bǔ)。

4。負(fù)數(shù)的補(bǔ)碼,左移時(shí),空位用0添補(bǔ);

負(fù)數(shù)的補(bǔ)碼,右移時(shí),空位用1添補(bǔ)。

邏輯移位時(shí):

左移位時(shí),低位補(bǔ)0,高位移丟;

右移位時(shí),高位補(bǔ)0,低位移丟;

游圉規(guī)阻屈原囹

定點(diǎn)運(yùn)算器定點(diǎn)加減法

補(bǔ)碼的加法運(yùn)算

任意兩個(gè)數(shù)的補(bǔ)碼之和,等于該兩數(shù)

和的補(bǔ)碼。

X補(bǔ)+[丫]補(bǔ)=[X+Y]補(bǔ)

兩個(gè)數(shù)不管正負(fù),均用補(bǔ)碼表示,符

號(hào)位應(yīng)當(dāng)作為數(shù)值位參加運(yùn)算,符號(hào)位相

加所產(chǎn)生的進(jìn)位要丟掉,結(jié)果為補(bǔ)碼。

加法公式的證明

現(xiàn)分四種情況來證明。假設(shè)采用定點(diǎn)小數(shù)

表示,因此證明的先決條件是

Ix|<1,IyI<1,Ix+yI<lo

(1)x>0,y>0,貝I」y>0o

(2)x>0,y<0,貝I」x+y>0或x+y<0o

⑶xvO,y>0,貝llx+y>0或x+y<0o

(4)x<0,y<0,貝Ux+y<0o

定點(diǎn)運(yùn)算器-----溢出及判別

溢出及其判別方法:

在計(jì)算機(jī)中數(shù)的表示范圍是有限的,若兩

數(shù)進(jìn)行加減運(yùn)算的結(jié)果超出了給定的取值范圍,

就稱為溢出。一旦出現(xiàn)溢出,必須及時(shí)處理,

否則會(huì)出現(xiàn)錯(cuò)誤。

可以采用兩種方法來判別是否產(chǎn)生溢出:

①單符號(hào)位法

②雙符號(hào)位法

定點(diǎn)運(yùn)算器------溢出及判別

采用單符號(hào)位的判斷方法

兩異號(hào)數(shù)相加或兩同號(hào)數(shù)相減決不

會(huì)產(chǎn)生溢出,僅當(dāng)兩同號(hào)數(shù)相加或兩異

號(hào)數(shù)相減時(shí)才有可能產(chǎn)生溢出。

兩同號(hào)數(shù)相加時(shí),如果結(jié)果的符號(hào)

與參與運(yùn)算的操作數(shù)符號(hào)相反,則表明

有溢出;兩異號(hào)數(shù)相減舟,如果結(jié)巢的

符號(hào)與被減數(shù)的符號(hào)相反,則表明有溢

出。

^^湖S3感圓國

定點(diǎn)運(yùn)算器-----溢出及判別

利用進(jìn)位值的判斷方法

兩補(bǔ)碼數(shù)進(jìn)行加減運(yùn)算時(shí),若最高數(shù)值

位產(chǎn)生向符號(hào)的進(jìn)位而符號(hào)位不產(chǎn)生進(jìn)位

時(shí),發(fā)生正溢出,若最高數(shù)值位無進(jìn)位而

符號(hào)位有進(jìn)位時(shí),發(fā)生負(fù)溢出

溢出判別的邏輯表達(dá)式為:

V=Cf十c0

在電路上用一個(gè)異或門實(shí)現(xiàn)。

定點(diǎn)運(yùn)算器------溢出及判別

例:X=-0,100Y=-0,101,求X+Y=?

解:

[X]補(bǔ)=1.100

+[Y]補(bǔ)=1.0)1__________

111

「丟到「

兩負(fù)數(shù)相加,結(jié)果應(yīng)為負(fù)數(shù),但運(yùn)

算結(jié)果為正數(shù),表明有溢出發(fā)生

定點(diǎn)運(yùn)算器-----溢出及判別

例:X=100,Y=-110,求X-Y=?

解:

[X]補(bǔ)=0100

+[-Y]補(bǔ)=0)10___________

1010

一個(gè)正數(shù)減去一個(gè)負(fù)數(shù),結(jié)果為正數(shù),但計(jì)算

結(jié)果為負(fù)數(shù),表明有溢出發(fā)生,出錯(cuò)

定點(diǎn)運(yùn)算器-----溢出及判別

采用雙符號(hào)位的判斷方法

每個(gè)操作數(shù)的補(bǔ)碼符號(hào)用兩個(gè)二進(jìn)制數(shù)表示,

稱為變形補(bǔ)碼,用“00”表示正數(shù),“11”表示負(fù)

數(shù),左邊第一位叫第一符號(hào)位,右邊第一位稱為

第二符號(hào)位,兩個(gè)符號(hào)位同時(shí)參加運(yùn)算,如果運(yùn)

算結(jié)果兩符號(hào)位相同,則沒有溢出發(fā)生。如果運(yùn)

算結(jié)果兩符號(hào)位不同,則表明產(chǎn)生了溢出。“10”

表示負(fù)溢出,說明運(yùn)算結(jié)果為負(fù)數(shù),"01”表示

正溢出,說明運(yùn)算結(jié)果為正數(shù)。

溢出判別的邏輯表達(dá)式為:

f十SR

溢出及判別舉例

[例]x=+0.1100,y+0.1000,求x+y。

[解:]

[X]補(bǔ)=00.1100,[月補(bǔ)=00.1000

[X]補(bǔ)00.1100

+[月補(bǔ)00.1000

01.0100

兩個(gè)符號(hào)位出現(xiàn)“01\表示已溢出,即結(jié)果

大于,1。

溢出及判別舉例

[例]x=—0.1100,y=-0,1000,求x+y。

[解:]

補(bǔ)=

[*]11.0100,[y]#=11.1000

[*]補(bǔ)11.0100

+|>]補(bǔ)11.1000

10.1100

兩個(gè)符號(hào)位出現(xiàn)“10、表示已溢出,即結(jié)果小

于一1。

(四)算術(shù)邏輯單元ALU

考綱要求:

lo串行加法器和并行加法器

2o算術(shù)邏輯單元ALU的功能和機(jī)構(gòu)

根據(jù)真值表,可以寫一位全加器的真值表

出一位全加器的邏輯

方程:輸入輸Hi

AiB.C.s.Cj+]

Sj=Aj?Bj?Cj00000

00110

q+1=AjBj+BjCj+CjAj

01010

按此表達(dá)式組成的一位01101

10010

全加器如下圖所示:10101

11001

11111

基本的二進(jìn)制加法/減法器

一位全加器的邏輯實(shí)現(xiàn)

Sj=AjaBj十Ci的推導(dǎo)顯而易見。

下面推導(dǎo)Ci+i=AiBi+BiCi+CjAi

將用到如下定律:

1。摩根定律:ABC=A+B+C

A+B+C=ABC

2o吸收律:_

A+A-C=A+C

^^就S3房房混

串行進(jìn)位的補(bǔ)碼加法/減法器

P35圖2.2的串行進(jìn)位的補(bǔ)碼加法/減法器,

講清楚..\?.\第2章圖形\2.2.swf

①為什么叫串行進(jìn)位

a3a2a1a。

+b3b2b]b0

-S3S2SlS0

②如何完成減法運(yùn)算

A-B運(yùn)算轉(zhuǎn)化成[A]補(bǔ)+[-B]補(bǔ)運(yùn)算,

求補(bǔ)過程由B變反+1來實(shí)現(xiàn)。

游園儂811就屬超

串行進(jìn)位的補(bǔ)碼加法/減法器

③如何進(jìn)行溢出檢測處理?請思考!

④延遲時(shí)間的計(jì)算

考慮溢出:ta=n-2T+9T

不考慮溢出時(shí)ta=(n-1)-2T+9T

2T即每一位的進(jìn)位延遲

9T包括:溢出的異或門為3T,最下的一

排異或門為3T;FA內(nèi)部Aj和房輸入的異或

門為3T,故共9T。

十進(jìn)制加法器

主要講清楚P36圖2.3的兩個(gè)問題:

①為什么要進(jìn)行加6調(diào)整。

在十進(jìn)制運(yùn)算時(shí),當(dāng)相加兩數(shù)之和大于9時(shí),

便產(chǎn)生進(jìn)位??墒撬奈欢M(jìn)制數(shù)能表示的范

圍是0—15。兩者相差為6。

因此,當(dāng)和數(shù)大于9時(shí),必須對和數(shù)進(jìn)行加6

修正。

②如何實(shí)現(xiàn)加6調(diào)整。

I

另三L若

二對

寧R

s

三s

i

一g

S在、

a

(

E

雕二

米U

口二三

0占

+

定點(diǎn)運(yùn)算器——定點(diǎn)原碼一位乘法

定點(diǎn)原碼一位乘法

設(shè)被乘數(shù)[X]原=XfXn_]Xn_2........XjX。

乘數(shù)[丫]原=丫£丫「丫廣2…丫1丫0

乘積[X]原=ZfZzn-Z2n.2.........

運(yùn)算原則:同號(hào)相乘為正,異號(hào)相乘為負(fù),

符號(hào)可按:異或運(yùn)算得到,數(shù)值部分的運(yùn)算方法

與普通的十進(jìn)制乘數(shù)相類似。不論真值的正負(fù),

尾數(shù)都用正數(shù)參加運(yùn)算。

N尸=

KTf企Yf

瘠僧如國就愿超

定點(diǎn)運(yùn)算器--定J一位乘法

手工算法

?兩個(gè)n位數(shù)相乘,其積

為2n位,則需要2n位長

0.1101

的加法器,這不適用于

X0.1011

1101定點(diǎn)機(jī)的形式。

1101

0000

1101?機(jī)器一次只能進(jìn)行兩

個(gè)數(shù)的相加,不能進(jìn)行

0.10001111

多個(gè)數(shù)據(jù)的加法。

定點(diǎn)運(yùn)算器——定點(diǎn)原碼一位乘法

定點(diǎn)原碼一位乘法

運(yùn)算法則:

計(jì)算機(jī)中執(zhí)行乘法時(shí),積的符號(hào)位由被乘

數(shù)和乘數(shù)的符號(hào)位通過一個(gè)異或門實(shí)現(xiàn);

數(shù)值部分的運(yùn)算規(guī)則是:從最低位丫0開始,

當(dāng)乘數(shù)Yi為1時(shí),將上次部分積加上被乘數(shù)的絕對

值,然后右移一位,得到新的部分積;當(dāng)Yj為。時(shí),

將部分直接右移一位,得到新的部分積。重復(fù)

“加一右移”操作N次,可得到最后的乘積。

定點(diǎn)運(yùn)算器——定點(diǎn)原碼一位乘法

例:X=0.1101,Y=0.1011,求X*Y=?

解:部分積乘數(shù)說明

00.0000Yfl011Zo=O

+00.1101Y0=l,+X

00.1101

一00.01101Yfl01右移,得4

+00.1101丫1=1,+x

01.0011

右移,得馬

f00.100111Yf10丫

+00.00002=0,+tf

00.1001

右移,得Z3

f00.0100111Yf1

+00.1101丫3=1,+X

01.0001

f00.10001111Yf右移,得Z4=X*Y

定點(diǎn)運(yùn)算器—定點(diǎn)原碼一位乘法

結(jié)果:

X*Y=0.10001111

定點(diǎn)運(yùn)算器——定點(diǎn)原碼一位乘法

原碼一位乘法的邏輯電路圖

圖2.5原碼一位乘法邏輯結(jié)構(gòu)原理圖

定點(diǎn)運(yùn)算器——定點(diǎn)原碼一位乘法

R0存放部分積,R2存放被乘數(shù),R1存放乘數(shù)。

一、Ro清零,R2存放被乘數(shù),R1存放乘數(shù)。乘法開始時(shí),

“啟動(dòng)”信號(hào)時(shí)控制Cx置1,于是開啟時(shí)序脈沖T,

當(dāng)乘數(shù)寄存其Ri最末位為“1”時(shí),部分積Z和

被乘數(shù)X在加法器中相加,其結(jié)果輸出至R0的輸入端o

一旦打入控制脈沖T至4來,控制信號(hào)LDR°使部分積

右移1位,與此同時(shí),乘數(shù)寄存其R1也在控制信號(hào)L

DR1作用下右移一位,且計(jì)數(shù)器I記數(shù)一次,

二、上述步驟重復(fù)執(zhí)行N次

三、當(dāng)計(jì)數(shù)器I=n時(shí),計(jì)數(shù)器I的溢出信號(hào)使控制觸法

器Cx置0,關(guān)閉時(shí)序脈沖T,乘法宣告結(jié)束。

瘠飄輟國就愿超

定點(diǎn)運(yùn)算器——一定點(diǎn)原碼一位乘法

原碼算法存在的缺點(diǎn):

一是符號(hào)位需要單獨(dú)運(yùn)算,最后給

出運(yùn)算結(jié)果的正確符號(hào);

二是對于采用補(bǔ)碼存儲(chǔ)的數(shù),從存儲(chǔ)

器中取出的是操作數(shù)的補(bǔ)碼,需先將其

轉(zhuǎn)換成原碼,這樣很不方便,而且影響

速度。

定點(diǎn)運(yùn)算器——定點(diǎn)補(bǔ)碼一位乘法

定點(diǎn)一位補(bǔ)碼乘法:

補(bǔ)碼乘法的特點(diǎn)是乘數(shù)、被乘數(shù)用補(bǔ)碼表

示,符號(hào)位參加運(yùn)算,希望得到的結(jié)果就

是乘積的補(bǔ)碼,符號(hào)位在運(yùn)算中形成。但是

與補(bǔ)碼加減法不同,兩數(shù)的補(bǔ)碼如果直接相

乘,結(jié)果不是乘積的補(bǔ)碼。

設(shè)被乘數(shù)[X]補(bǔ)=x°.X1X2X3……XR和

乘數(shù)[丫]補(bǔ)=丫0.Y]丫2Yn均為住意

符號(hào),則有8碼乘法登式,這就是有名的布

斯公式。

定點(diǎn)運(yùn)算器——定點(diǎn)補(bǔ)碼一位乘法

[X*Y]補(bǔ)

二兇補(bǔ)*丫

n

=兇補(bǔ)[地+丫12-1+丫2*2-2+...+Yn2-]

=[X]補(bǔ)[-Ys+(Yi-Y[2T)+(丫22工丫22-2)+…+(丫>小1)-丫“2?%

=[X]補(bǔ)[(丫1-丫。+(丫2-丫1)2-1+...+(丫廣丫『1)2"1)+(0-丫/2力

=[X]補(bǔ)(Yi-Ys)+2」([X]補(bǔ)(丫2-丫1)+2-1([刈補(bǔ)(丫3-丫2)...+2-1([刈補(bǔ)

(Yn-YQ+2T(兇補(bǔ)(Yn+1-Yn)))...))(Yn+1=0)

n_.

z

=[x]?x(r.+1-r)2-

i=0

定點(diǎn)運(yùn)算器一一定點(diǎn)補(bǔ)碼一位乘法

遞推公式為:

[P。]補(bǔ)=。

[Pl]#="(IP。]補(bǔ)+(Y用-丫口)兇補(bǔ))

(間補(bǔ)兇補(bǔ))

[P2]#=2T+(Yn-Yn-1)

???

舊]補(bǔ)="([PH補(bǔ)+(丫n-i+2-^n-i+l)[X]補(bǔ))

???

補(bǔ)丫兇補(bǔ))

[Pn]#=2T([P=]+(Y2-1)

補(bǔ)兇補(bǔ)補(bǔ)

[Pn+1]#=[Pn]+(Y1-YS)=[X*Y]

游園就SU屈原囹

定點(diǎn)運(yùn)算器—定點(diǎn)補(bǔ)碼一位乘法

補(bǔ)碼一位乘法的運(yùn)算規(guī)則如下(開始時(shí)ya=0);

(1)如果丫口=yn+1,部分積[zj加0,再右移1位

(2)如果丫0日二01,部分積加[x]補(bǔ),再右移1位

(3)如果yjn+1=1°,部分積加[—x]補(bǔ),再右移1位

這樣重復(fù)n+1步,最后一步不移位。

定點(diǎn)運(yùn)算器——定點(diǎn)補(bǔ)碼一位乘法

例:[X]補(bǔ)=0.1101,[Y]補(bǔ)=0.1011,求X*Y二?

解:部分積乘數(shù)說明

00.00000.10110Y?+1=O「

+11.00CCYnYn+l=10,加[-X]補(bǔ)

11.0011

一11,10011.01011右移一位

匕丫用=11,加0

+010.000o0

±■

fX1o

+■1o110101右移一位

■±YnYn+i=01,加[X]補(bǔ)

00.1001

-00.0100111010右移一位

YnYn+i=10,力M-X]補(bǔ)

+111.0o01111

X■

fx1iO1

+■l1O1111。1右移一位

■YnYn+l=0l,加兇補(bǔ)

00.1000111101最后一次不移位

定點(diǎn)運(yùn)算器----定點(diǎn)補(bǔ)碼一位乘法

結(jié)果:

[X*Y]補(bǔ)=0.10001111

游困的山就匾滔

定點(diǎn)運(yùn)算器定點(diǎn)補(bǔ)碼一位乘法

被乘數(shù)”

圖2.7補(bǔ)碼一位乘法邏輯原理圖

定點(diǎn)運(yùn)算器定點(diǎn)補(bǔ)碼一位乘法

0被乘數(shù)的符號(hào)X0和乘數(shù)的符號(hào)Y0都參加運(yùn)算。

0乘數(shù)寄存器R1有附加位Yn+1,其初始狀態(tài)為

“0”。當(dāng)乘數(shù)和部分積每次右移時(shí),部分積最低為移至R

1的首位位置,故R1必須是具有右移功能的寄存器。

0被乘數(shù)寄存器R2的每一位用原碼或反碼經(jīng)多路開關(guān)傳

送到加法器對應(yīng)位的一個(gè)輸入端,而開關(guān)的控制信號(hào)由Y口

丫一1的輸出譯碼器產(chǎn)生。當(dāng)丫「丫11+1=01時(shí),送[X]

補(bǔ);當(dāng)YnYn+1=10時(shí),送[-X]補(bǔ),即送R2的反

碼且在加法器最末位加上“1”。

0R0保存部分積,它也是具有右移功能的移位寄存器,

其符號(hào)位與加法器符號(hào)位始終一致。

當(dāng)計(jì)數(shù)器i=n+1時(shí),封鎖LDR1和LDR0控制信號(hào),

澇僧豳步不移位。

定點(diǎn)運(yùn)算器原碼并行乘法

前面講到的硬件

乘法器是常采用

“串行移位”和

“并行加法”相

結(jié)合的方法,雖

然所需器件不多,

但速度太慢,隨

著大規(guī)律集成電

路的高速發(fā)展,

高速的單元陣列

乘法器應(yīng)運(yùn)而生。

L不帶符號(hào)位的

陣列乘法器

瘠飄輟國就愿超

定點(diǎn)運(yùn)算器——一原碼并行乘法

[例]已知兩個(gè)不帶符號(hào)的二進(jìn)制整數(shù)A

=11011,5=10101,用原碼并行乘法求

4即值。(參見P39圖2.5)

第2章圖形\22swf

[110I1=A&7io)

X1011O01l1=B(21io)

4

ooOo

111I

Oo0uAo

十X11o1X1

1000110111=P

定點(diǎn)運(yùn)算器原碼并行乘法

①陣列乘法器之所以快速,因?yàn)殛嚵挟?dāng)中的行加

法器不是串行進(jìn)位,進(jìn)位位移到了下一行運(yùn)算,

因而提高了運(yùn)算速度,但最后一行是行波進(jìn)位。

②實(shí)現(xiàn)n位xn時(shí),要n?(n-1)個(gè)全加器和ri"與"

門。

③延遲時(shí)間:

tm=Ta+[(n-l)+(n-l)]XTf=(4n-2)T

其中丁己對應(yīng)圖2.8的上半部“與”門延遲時(shí)間

2TO

(n-1)對應(yīng)斜線的FA進(jìn)行延遲,單個(gè)為2T。

(n-1)對應(yīng)虛線框內(nèi)的行波進(jìn)位延遲。

定點(diǎn)運(yùn)算器——一原碼并行乘法

2,帶符號(hào)位的陣列乘法器

①對2求補(bǔ)器的電路圖(教材P40圖2.6)

..\?.\第2章圖形\23swf

E=l,對輸入的數(shù)求補(bǔ);

E=0,不求補(bǔ),輸出等于輸入。

求補(bǔ)的方法是按位掃描技術(shù)。

②帶求補(bǔ)電路的陣列乘法器

(教材P41圖2.7)

?.\..\第2章圖形\24swf

定點(diǎn)運(yùn)算器——一原碼并行乘法

[例]設(shè)X=+15,y=—13,用帶求補(bǔ)器的原碼陣

列乘法器求出乘積木?y=?

[解:]

設(shè)最高位為符號(hào)位,則輸入數(shù)據(jù)為

[*]原-01111[力原=11101

符號(hào)位單獨(dú)考慮,算前求補(bǔ)級后

|x|=1111,|y|=1101

1111

乂1101符號(hào)位運(yùn)算:0+1=1

1111

1111

+1111__________

11l:ll:l1:1011

定點(diǎn)運(yùn)算器——一原碼并行乘法

算后經(jīng)求補(bǔ)級輸出并加上乘積符號(hào)位1,則

原碼乘積值為111000011。

換算成二進(jìn)制數(shù)真值是

x?y=(—11000011)2=(-195)io

十進(jìn)制數(shù)驗(yàn)證:xXy=15義(-13)

=—195相等。

定點(diǎn)運(yùn)算器補(bǔ)碼并行乘法

補(bǔ)碼乘法因符號(hào)位參與運(yùn)算,可以完成補(bǔ)碼

數(shù)的“直接”乘法,而不需要求補(bǔ)級。這種直接

的方法排除了較慢的對2求補(bǔ)操作,因而大大加

速了乘法過程。

常規(guī)的一位全加器可假定它的3個(gè)輸入和

2個(gè)輸出都是正權(quán)。這種加法器通過把正權(quán)或

負(fù)權(quán)加到輸入/輸出端,可以歸納出四類加法

定點(diǎn)運(yùn)算器補(bǔ)碼并行乘法

[例20]設(shè)⑷補(bǔ)=(01101)〃網(wǎng)補(bǔ)=(11011)〃求[/X司補(bǔ)=?

[解:]

(0)1101=+13

⑴1011O11=-5

(0)1o1

(0)11O

(0)000

(0)1101

Q__aiwIQ1W

11

0(1)0111

1165

(1)10111=

驗(yàn)證:

-1X27+OX26+1X25+1X24+1X23+

1X22+1X21+1X2°

=—128+(32+16+8+4+2+1)

=—65

定點(diǎn)運(yùn)算器——一補(bǔ)碼并行乘法

補(bǔ)碼陣列乘法器參見P44圖2.8

1:\第2章圖形形5swf

在/X立乘/X立的一般情況下,該乘法器需要(〃

—2尸個(gè)0類全加器,(〃一2)個(gè)1類全加

器,(2/7—3)個(gè)2類全加器,1個(gè)3類全加器,

總共是"/7—1)個(gè)全加器。故所需的總乘

法時(shí)間是:

Tp=Ta+2(n-l)Tf=2T+(2n-2)2T=(4n-2)T

定點(diǎn)運(yùn)算器一定點(diǎn)原碼一位除法

定點(diǎn)原碼一位除法

在定點(diǎn)計(jì)算機(jī)中,完成兩個(gè)原碼表示的數(shù)相除時(shí),

商的符號(hào)由兩數(shù)的符號(hào)位按位異或得到,而商的數(shù)值

部分則是兩個(gè)正數(shù)相除得到。

設(shè)

被除數(shù)[X].=XfX1X2...Xn

除數(shù)[丫]原=丫「丫1丫2..工

商9]原=(X—f).(X1X2...Xn/Y1Y2...Yn)

定點(diǎn)除法一一定點(diǎn)原碼一位除法

計(jì)算機(jī)中執(zhí)行除法時(shí),商的符號(hào)位由

被除數(shù)和除數(shù)的符號(hào)位通過一個(gè)半加器實(shí)

現(xiàn),對于數(shù)值部分,由于定點(diǎn)數(shù)的絕對值

小于1,如果被除數(shù)大于或等于除數(shù),則商

就大于或等于1,因而會(huì)產(chǎn)生溢出,這是不

允許的。因此在執(zhí)行除法以前,先要判別

是否溢出,不溢出時(shí)才執(zhí)行除法運(yùn)算。判

別溢出的方法是被除數(shù)減去除數(shù),若差為

正,就表示溢出。

原碼一位除法一加減交替法

加減交替法的規(guī)則:

首先作X-Y,余數(shù)為正,表明產(chǎn)生溢出,應(yīng)

終止除法運(yùn)算;余數(shù)為負(fù),上商為0(作為商的

符號(hào)位),然后重復(fù)下述操作n次,可得商的Mi

數(shù)值

余數(shù)為正時(shí),商為1,余數(shù)左移一位,減除數(shù);

余數(shù)為負(fù)時(shí),商為0,余數(shù)左移一位,加除數(shù)。

由于運(yùn)算中余數(shù)共左移了n次,相當(dāng)于乘2%

故最后得余數(shù)應(yīng)乘上25才是真正的正確余數(shù)。

原碼一位除法一加減交替法

解:兇原=兇補(bǔ)=X=0.1001,[Y]補(bǔ)=0?1011,[-丫]補(bǔ)=1.0101

被除數(shù)X/余數(shù)r商數(shù)q說明

00.1001

+[-丫]補(bǔ)11.0101X減Y

11.1110余數(shù)s為負(fù)

+[丫]補(bǔ)”11.11000商0,r粕q左移一位

00.1011加Y

00.0111余數(shù)口為正

呼l,r和q左移一位

+『丫]補(bǔ)-00.11100.1

11.0101

00.0011余數(shù)上為正

國和左移一位

+[-丫]補(bǔ)-00.01100.11yq

11.0101

11.1011余數(shù)口為負(fù)

+[丫]補(bǔ)*11,01100.110冏0,屈lq左移一位

00.1011加Y

00.0001余數(shù)Q為正

瘠飄輟國就向超0.1101商1,僅q左移一位

原碼一位除法_加減交替法

?結(jié)果:

Q=0.1101

R=2-4*0,0001

原碼一位除法_加減交替法

被除效力余效r寄存器

,?n

際/寄N湍

Ro----Riq「--《—一

LDR0

LDR1

計(jì)數(shù)加

R2

除數(shù)y寄存器

錯(cuò)題

原碼一位除法一加減交替法

Ri寄存器為n位,是雙向移位寄存器,琮為雙向移位寄

存器。

除法開始前R1可存放被除數(shù)的低n位,R。保存被除數(shù)

或者余數(shù)。

在進(jìn)商左移的過程中,被除數(shù)(余數(shù))的低位部分

由Ri串行移至R。。經(jīng)n+1步后,求得n+1位商。

每次進(jìn)商置于用的最末位,由加法器符號(hào)位Ef來

設(shè)置,

運(yùn)算結(jié)束后凡存放n位的商,琮中存放余數(shù)。

補(bǔ)碼一位除法_加減交替法

補(bǔ)碼加減交替除法的算法規(guī)則如下:

(1)被除數(shù)與除數(shù)同號(hào),被除數(shù)減去除數(shù);被除數(shù)

與除數(shù)異號(hào),被除數(shù)加除數(shù);

(2)余數(shù)和除數(shù)同號(hào),商上1,余數(shù)左移一位,下

次減除數(shù);當(dāng)余數(shù)和除數(shù)異號(hào),商上0,余數(shù)左移

一位,下次加除數(shù)。

(3)重復(fù)步驟(2),包括符號(hào)位在內(nèi),共做n+1步。

為了統(tǒng)一并簡化控制線路,一開始上一次假商,

如果果]補(bǔ)和[y]補(bǔ)同號(hào),假商上1,正好控制下一次

做減法;如果[x]補(bǔ)和[y]補(bǔ)異號(hào),假商上0,正好控

制下一次做加法。

補(bǔ)碼一位除法_加減交替法

商的校正

在沒有特殊精度要求的情況下,一般就采用商的未

位“恒置「的方式進(jìn)行舍入,這樣簡單,便于實(shí)現(xiàn)。

如果要提高精度要求,可采用如下校正方法對商進(jìn)

行處理:

(1)剛好解除盡時(shí),如果除數(shù)為正,商不必校正;

如果除數(shù)為負(fù),則商加2-((最低位加1)

(2)不能除盡時(shí),如果商為正,則不必校正;如

果商為負(fù),則商加25。

補(bǔ)碼一位除法_加減交替法

?補(bǔ)碼一位除法的流程圖

圖2.13補(bǔ)碼加減交替除法算法流程圖

補(bǔ)碼一位除法一加減交管法

例:X=0.1001,Y=0.1011,求[X/Y]補(bǔ)

解:

兇補(bǔ)=0.1001

[Y]#=0.1011

[-Y]補(bǔ)=1.0101

補(bǔ)碼一位除法_加減交替法

解:[X]補(bǔ)=0?1001,[丫]補(bǔ)=0.1011,[-丫]補(bǔ)=1.0101

被除數(shù)/余數(shù)商數(shù)說明

00.10011融臚澗號(hào),5

+[一丫]補(bǔ)11.0101

X1O余數(shù)和除數(shù)異號(hào)

+rY7左移1位,商0

、k

LJ不

—加除數(shù)

00.0111余數(shù)和除數(shù)同號(hào)

00.1110101左移1位,商1

+[-丫]補(bǔ)11.0101減除數(shù)

00.0011余數(shù)和除數(shù)同號(hào)

00.01101011左移1位,商1

+[一丫]補(bǔ)11.0101減除數(shù)

余數(shù)和除數(shù)異號(hào)

rYU10110左移1位,商0

、k

L不

—加除數(shù)

00.0001余數(shù)和除數(shù)同號(hào)

00.00010.1101左移1位,商0

補(bǔ)碼?位除法

加減交替法

?結(jié)果:

澇闌如國就匾逋

定點(diǎn)運(yùn)算器并行設(shè)法

L可控加法/減法(CAS)單元

見教材P42圖2.9(a)

它有四個(gè)輸出端和四個(gè)輸入端。

當(dāng)輸入線P=0時(shí),CAS作加法運(yùn)算;

當(dāng)蛹入線P=1時(shí),CAS作減法運(yùn)算。

CAS單元的輸入與輸出的關(guān)系可用如下一組邏輯方程來

表示:

Si=A十(Bj十P)十q

G+]=(A+G)?但十P)+A£

當(dāng)P=0時(shí),即得我們熟悉的一位全加器(FA)的公式

當(dāng)P=1時(shí),即得求差公式

瘠翼的國就屬超

定點(diǎn)運(yùn)算器—外行除法

不恢復(fù)余數(shù)的陣列除法器0x2y5匕

在不恢復(fù)余數(shù)的除法陣列中,每

一行所執(zhí)行的操作究竟是加法

還是減法,取決于前一行輸出的

符號(hào)與被除數(shù)的符號(hào)是否一致。

①當(dāng)出現(xiàn)不夠減時(shí),部分余數(shù)

相對于被除數(shù)來說要改變符

號(hào)。這時(shí)應(yīng)該產(chǎn)生一個(gè)商位

“0”,除數(shù)首先沿對角線右移,

然后加到下一行的部分余數(shù)

CASnCASHCASnCAS□

上。

②當(dāng)部分余數(shù)不改變它的符

號(hào)時(shí),即產(chǎn)生商位“1”,下一行的余數(shù)r=3q日%

操作應(yīng)該是減法。(b)4位除4位陣列除法器遺較結(jié)構(gòu)圖

一個(gè)(n+1)位除(n+1)位的加減交替除法陣列由(n+l)2個(gè)CAS單元組成。

船僧如國就愿超除法執(zhí)行時(shí)間為Td=3(n+1)2T

定點(diǎn)運(yùn)算器—外行除法

[例]*=0.101001,y=0.111,求xfy。

[解:]Ly]補(bǔ)=1.001

被除數(shù)X0.101001

減-11.010l1o__o______O

■X-

余數(shù)為負(fù)11oOO1

■xX

余數(shù)左移o1l1

加尸■X

Oo1lo1>o1

■±X-X

余數(shù)為正O11o1

■X

余數(shù)左移Iol

減尸■

余數(shù)為負(fù)L1111<0%=0

余數(shù)左移LI11

加y0.111____________

余數(shù)為正0,110>0%=1

故得商q=%,%/%=0.101

澇園湖血居康徽r=(0.000^^)=0.000110

補(bǔ)充兩種加快除法運(yùn)算的算法

-O跳0跳1除法

這是一種對規(guī)格化小數(shù)絕對值相除的除法加速算法。

基本思想:當(dāng)余數(shù)的絕對值很小時(shí),可根據(jù)余數(shù)前幾

位代碼值再次求得幾位同為1或0的商。

基本規(guī)則:

lo如果余數(shù)R大于等于0,且R的高K個(gè)數(shù)位均為0,

則本次的商為1后跟K-1個(gè)0,R左移K位后,減去除數(shù)D,

得新余數(shù)。

2o如果余數(shù)R小于0,且R的高K個(gè)數(shù)位均為1,則

本次商為0后跟K-1個(gè)1,R左移K位后,加上除數(shù)D,得

新余數(shù)。

例題:M=0.1010000D=0.1100011

[-D]補(bǔ)=10011101

0.1010000

1.0011101M-D

1.1101101R<0,符號(hào)后有2位1,商為01

1.0110100左移兩位

0.1100011+D

0.0010111R>0,符號(hào)后有2位0,商為10

0.1011100左移兩位

1.0011101-D

1.1111001R<0,符號(hào)后有4位1,商為0111

最后得商Q=0.1100111(接下去可左移4位,+D繼續(xù)求

商)

二.用快速乘法器實(shí)現(xiàn)快速除法

按下式完成M/D:

M="X尸。X尸1X戶2X…XFr

DQX產(chǎn)0X尸?X產(chǎn)2X…xFr

由上式可知:遞乘幾次之后,可以使

-X-。X/X尸2X…XFrf1

則商應(yīng)為:MXFXFXFX???XF

ot?

若M和D為規(guī)格化正的二進(jìn)制小數(shù)代碼時(shí),可寫成:

D=\-61ovsw—>|

那么可取Fj的值如下:

-1+6

Z)o=Qx尸0=(1—b)(l+b)=l—/

々=1+b2

—尸)(1+尸)=1—尸

可見,當(dāng)i增大時(shí),Dj將很快趨近于1,其誤差為日?…

松園覦餌屈原囹

定點(diǎn)運(yùn)算器的組成

運(yùn)算器主要由算術(shù)邏輯部件,通用寄存器和狀態(tài)

寄存器組成。

前面講到的行波進(jìn)位加法器存在兩個(gè)大問題:

①由于串行進(jìn)位,所以它的運(yùn)算時(shí)間較長。

②只能完成算術(shù)運(yùn)算,不能進(jìn)行邏輯運(yùn)算。

多功能算術(shù)/邏輯運(yùn)算單元

1.基本思想

一位全加器(FA)的邏輯表達(dá)式為:

Fj=Aj④B*G

Ci”二AiBi+BjCj+QAi

為了將全加器的功能進(jìn)行擴(kuò)展以完成多種算術(shù)邏輯

運(yùn)算,我們先不將輸入%和以和下一位的進(jìn)位。直接進(jìn)

行全加,而是將Aj和瓦先組合成由控制參數(shù)S。,SPS2,

S3控制的組合函數(shù)4和Yj然后再將4,Yj和下一位進(jìn)

位數(shù)通過全加器進(jìn)行全加,這樣,不同的控制參數(shù)可以

得到不同的組合函數(shù),因而能夠?qū)崿F(xiàn)多種算術(shù)運(yùn)算和邏

輯運(yùn)算。

多功能算術(shù)/邏輯運(yùn)算單元

介Fi

Cn+i+lr------------------------.「

1n+i

——全加器--------

A/\

s、「Xi、Yi與控制參數(shù)和輸入量的關(guān)系

1---------?SOSIYiS2S3Xi

2A函數(shù)發(fā)生器

3?

AA00001

A1.

01A.B.01

1I.+B.

AiBiii

1010

A.1BI.4.i+Bi.

11011

A.1

多功能算術(shù)/邏海運(yùn)算單元

ALU的某一位邏輯表達(dá)式如下:

X^SOA.B.+SOA.K

J.O_L_L乙_LJL

Yi=Aj+SoBi+sH

Fi=Y@X@Cn+i

多功能算術(shù)/邏輯運(yùn)算單元

■每一位的進(jìn)位公式可遞推如下:

Cn+l=Yo+X()Cn

cm二-1=Y1+YoXi+XoX?

Cn+3=Y2+X2Cn+2=Y2+X2Y1+Y0X1X2+X0X1X2Cn

Ce=丫3+*3。(+3

=Y3+X3Y2+X2X3Y1+Y0X1X2X3+X0XxX2X3Cn

多功能算術(shù)/邏輯運(yùn)舁單兀

■設(shè):

G=Y3+X3丫2+X2X3Y1+XiX2X3Y0

P=X0X]X2X3

則:

=

Cn+4G+PCn

其中:G稱為進(jìn)位發(fā)生輸出

--------------------------------------------------------------------------

該式表明,第0位的進(jìn)位輸入可以直接傳送到最局進(jìn)

位位上主向而可以實(shí)現(xiàn)高萼晝—.

--------------------------

多功能算術(shù)/邏輯運(yùn)算單元

3.算術(shù)邏輯運(yùn)算的實(shí)現(xiàn)(74181ALU)

見教材P48圖2.11

M=1時(shí),進(jìn)行邏輯操作,因?yàn)榉怄i了各

位的進(jìn)位輸出,即Cn+產(chǎn)。

M=0時(shí),M對進(jìn)位信號(hào)無影響,進(jìn)行算

術(shù)運(yùn)算。

多功能算術(shù)/邏輯運(yùn)算單元

74181ALU方框圖如下:

74181ALU的功能表見P49表2,5

A1IO

2kLJ

/

o

d

7

/

S

v

多功能算術(shù)/邏輯運(yùn)算單元

4,兩級先行進(jìn)位的ALU

前面說過,74181ALU設(shè)置了P和G兩個(gè)本組先行

進(jìn)位輸出端。如果將四片74181的P,G輸出端送

入到74182先行進(jìn)位部件(CLA),又可實(shí)現(xiàn)第

二級的先行進(jìn)位,即組與組之間的先行進(jìn)位。

假設(shè)4片(組)74181的先行進(jìn)位輸出依次

為為,603卬1尸2?2/3?3,那么參考式(2.37)

的進(jìn)位邏輯表達(dá)式,先行進(jìn)位部件74182CLA所

提供的進(jìn)位邏輯關(guān)系如下:

多功能算術(shù)/邏輯運(yùn)算單元

Cn+x=Go+PoCn

Cn+y=Gi+P]Cn+*=Gi+GoPi+PoPiCn

Cn+Z-+P2Cn.|_y—G2+GXP2+G0P1P2+PoPiP2^n

Cn+4—G3+P3Cn+z=Gs+G2P3+GFF2+G°PiP2P3+

P°PF2P3。1

=G*+P*C;

其中P*=P0PiP2P3

G*=G3+G2P3+GFF2+G0P1P2P3

根據(jù)以上表達(dá)式,用TTL器件實(shí)現(xiàn)的成組先行進(jìn)位部件

74182的邏輯電路圖如教材P50圖2.12所示

其中G*稱為成組進(jìn)位發(fā)生輸出,P*稱為成組進(jìn)位傳送輸出。

多功能算術(shù)/邏輯運(yùn)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論