第二章 運(yùn)算方法和運(yùn)算器_第1頁(yè)
第二章 運(yùn)算方法和運(yùn)算器_第2頁(yè)
第二章 運(yùn)算方法和運(yùn)算器_第3頁(yè)
第二章 運(yùn)算方法和運(yùn)算器_第4頁(yè)
第二章 運(yùn)算方法和運(yùn)算器_第5頁(yè)
已閱讀5頁(yè),還剩125頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2023/2/11第二章運(yùn)算方法和運(yùn)算器2.1數(shù)據(jù)與文字的表示2.2定點(diǎn)加法、減法運(yùn)算2.3定點(diǎn)乘法運(yùn)算2.4定點(diǎn)除法運(yùn)算2.5定點(diǎn)運(yùn)算器的組成2.6浮點(diǎn)運(yùn)算與浮點(diǎn)運(yùn)算器返回2023/2/122.1數(shù)據(jù)與文字的表示方法2.1.1數(shù)據(jù)格式2.1.2數(shù)的機(jī)器碼表示2.1.3字符與字符串的表示方法2.1.4漢字的表示方法2.1.5校驗(yàn)碼2023/2/132.1數(shù)據(jù)與文字的表示方法計(jì)算機(jī)中使用的數(shù)據(jù)可分成兩大類(lèi):符號(hào)數(shù)據(jù):非數(shù)字符號(hào)的表示(ASCII、漢字、圖形等)數(shù)值數(shù)據(jù):數(shù)字?jǐn)?shù)據(jù)的表示方式(定點(diǎn)、浮點(diǎn))計(jì)算機(jī)數(shù)字和字符的表示方法應(yīng)有利于數(shù)據(jù)的存儲(chǔ)、加工(處理)、傳送;編碼:用少量、簡(jiǎn)單的基本符號(hào),選擇合適的規(guī)則表示盡量多的信息,同時(shí)利于信息處理(速度、方便)2.1.1數(shù)據(jù)格式一、定點(diǎn)表示法所有數(shù)據(jù)的小數(shù)點(diǎn)位置固定不變理論上位置可以任意,但實(shí)際上將數(shù)據(jù)表示有兩種方法(小數(shù)點(diǎn)位置固定-定點(diǎn)表示法/定點(diǎn)格式):純小數(shù)純整數(shù)2023/2/142023/2/151、定點(diǎn)純小數(shù)

x0

x1x2x3…xn-1xn表示數(shù)的范圍是-1<X<+1符號(hào)量值小數(shù)點(diǎn)固定于符號(hào)位之后,不需專(zhuān)門(mén)存放位置2.1.1數(shù)據(jù)格式2023/2/162.1.1數(shù)據(jù)格式2、純小數(shù)的表示范圍2023/2/172.1.1數(shù)據(jù)格式3、定點(diǎn)純整數(shù)

x0x1x2x3…xn-1xn表示數(shù)的范圍是-(2n-1)≤X≤

+(2n-1)符號(hào)量值小數(shù)點(diǎn)固定于最后一位之后,不需專(zhuān)門(mén)存放位置2023/2/182.1.1數(shù)據(jù)格式4、定點(diǎn)表示法的特點(diǎn)定點(diǎn)數(shù)表示數(shù)的范圍受字長(zhǎng)限制,表示數(shù)的范圍有限;定點(diǎn)表示的精度有限機(jī)器中,常用定點(diǎn)純整數(shù)表示;

2023/2/192.1.1數(shù)據(jù)格式2、浮點(diǎn)表示法

電子質(zhì)量(克):9×10-28=0.9×10-27

太陽(yáng)質(zhì)量(克):2×1033=0.2×1034

2023/2/1102.1.1數(shù)據(jù)格式2、浮點(diǎn)表示:小數(shù)點(diǎn)位置隨階碼不同而浮動(dòng)1、格式:N=RE.M2、機(jī)器中表示指數(shù)E基數(shù)R,取固定的值,比如10或2,隱含表示尾數(shù)M階符階碼數(shù)符尾數(shù)2023/2/1112.1.1數(shù)據(jù)格式浮點(diǎn)數(shù)的規(guī)格化表示:

(1.75)10=1.11×20

(規(guī)格化表示)

=0.111×21=0.0111×22

2023/2/1122.1.1數(shù)據(jù)格式3、IEEE754標(biāo)準(zhǔn)(規(guī)定了浮點(diǎn)數(shù)的表示格式,運(yùn)算規(guī)則等)規(guī)則規(guī)定了單精度(32)和雙精度(64)的基本格式.規(guī)則中,尾數(shù)用原碼,指數(shù)用移碼(便于對(duì)階和比較)2023/2/1132.1.1數(shù)據(jù)格式IEEE754標(biāo)準(zhǔn)基數(shù)R=2,基數(shù)固定,采用隱含方式來(lái)表示它。32位的浮點(diǎn)數(shù):S數(shù)的符號(hào)位,1位,在最高位,“0”表示正數(shù),“1”表示負(fù)數(shù)。M是尾數(shù),23位,在低位部分,采用純小數(shù)表示E是階碼,8位,采用移碼表示。移碼比較大小方便。規(guī)格化:若不對(duì)浮點(diǎn)數(shù)的表示作出明確規(guī)定,同一個(gè)浮點(diǎn)數(shù)的表示就不是惟一的。尾數(shù)域最左位(最高有效位)總是1,故這一位經(jīng)常不予存儲(chǔ),而認(rèn)為隱藏在小數(shù)點(diǎn)的左邊。采用這種方式時(shí),將浮點(diǎn)數(shù)的指數(shù)真值e變成階碼E時(shí),應(yīng)將指數(shù)e加上一個(gè)固定的偏移值127(01111111),即E=e+127。2023/2/1142.1.1數(shù)據(jù)格式64位的浮點(diǎn)數(shù)中符號(hào)位1位,階碼域11位,尾數(shù)域52位,指數(shù)偏移值是1023。因此規(guī)格化的64位浮點(diǎn)數(shù)x的真值為:

x=(-1)S×(1.M)×2E-1023e=E-1023一個(gè)規(guī)格化的32位浮點(diǎn)數(shù)x的真值表示為

x=(-1)S×(1.M)×2E-127e=E-1272023/2/1152.1.1數(shù)據(jù)格式真值x為零表示:當(dāng)階碼E為全0且尾數(shù)M也為全0時(shí)的值,結(jié)合符號(hào)位S為0或1,有正零和負(fù)零之分。真值x為無(wú)窮大表示:當(dāng)階碼E為全1且尾數(shù)M為全0時(shí),結(jié)合符號(hào)位S為0或1,也有+∞和-∞之分。這樣在32位浮點(diǎn)數(shù)表示中,要除去E用全0和全1(25510)表示零和無(wú)窮大的特殊情況,指數(shù)的偏移值不選128(10000000),而選127(01111111)。對(duì)于規(guī)格化浮點(diǎn)數(shù),E的范圍變?yōu)?到254,真正的指數(shù)值e則為-126到+127。因此32位浮點(diǎn)數(shù)表示的絕對(duì)值的范圍是10-38~1038(以10的冪表示)。浮點(diǎn)數(shù)所表示的范圍遠(yuǎn)比定點(diǎn)數(shù)大。一臺(tái)計(jì)算機(jī)中究竟采用定點(diǎn)表示還是浮點(diǎn)表示,要根據(jù)計(jì)算機(jī)的使用條件來(lái)確定。一般在高檔微機(jī)以上的計(jì)算機(jī)中同時(shí)采用定點(diǎn)、浮點(diǎn)表示,由使用者進(jìn)行選擇。而單片機(jī)中多采用定點(diǎn)表示。2023/2/1162.1.1數(shù)據(jù)格式浮點(diǎn)數(shù)表示范圍如下圖所示2023/2/1172.1.1數(shù)據(jù)格式例1若浮點(diǎn)數(shù)x的754標(biāo)準(zhǔn)存儲(chǔ)格式為(41360000)16,求其浮點(diǎn)數(shù)的十進(jìn)制數(shù)值。解:將16進(jìn)制數(shù)展開(kāi)后,可得二制數(shù)格式為

0

1000001001101100000000000000000

符號(hào)S階碼E(8位)尾數(shù)M(23位)指數(shù)e=E-127=10000010-01111111=00000011=(3)10包括隱藏位1的尾數(shù)1.M=1.01101100000000000000000=1.011011于是有x=(-1)S×1.M×2e=+(1.011011)×23=+1011.011=(11.375)102023/2/1182.1.1數(shù)據(jù)格式例2將數(shù)(20.59375)10轉(zhuǎn)換成754標(biāo)準(zhǔn)的32位浮點(diǎn)數(shù)的二進(jìn)制存儲(chǔ)格式。解:首先分別將整數(shù)和分?jǐn)?shù)部分轉(zhuǎn)換成二進(jìn)制數(shù):

20.59375=10100.10011

然后移動(dòng)小數(shù)點(diǎn),使其在第1,2位之間

10100.10011=1.010010011×24e=4于是得到:

S=0,E=4+127=131,M=010010011

最后得到32位浮點(diǎn)數(shù)的二進(jìn)制存儲(chǔ)格式為:01000001101001001100000000000000=(41A4C000)162023/2/1192.1.2數(shù)的機(jī)器碼表示真值:一般書(shū)寫(xiě)的數(shù)機(jī)器碼:機(jī)器中表示的數(shù),要解決在計(jì)算機(jī)內(nèi)部數(shù)的正、負(fù)符號(hào)和小數(shù)點(diǎn)運(yùn)算問(wèn)題。原碼反碼補(bǔ)碼移碼2023/2/1201、原碼表示法定點(diǎn)小數(shù)x0.x1x2…xn

x1>x≥00,正[x]原=符號(hào)

1-x0≥x>-11,負(fù)數(shù)有正0和負(fù)0之分范圍-(1-2-n)

~+(1-2-n)例:x=+0.11001110,y=-0.11001110[x]原=0.11001110[y]原=1.110011102023/2/1211、原碼表示法定點(diǎn)整數(shù)X0X1X2…Xnx2n>x≥00,正數(shù)[x]原=符號(hào)

2n-x0≥x>-2n

1,負(fù)數(shù)說(shuō)明:有正0和負(fù)0之分范圍-(2n-1)

~+(2n-1)例:x=+11001110,y=-11001110 [x]原=011001110[y]原=1110011102023/2/1221、原碼表示法

原碼特點(diǎn):表示簡(jiǎn)單,易于同真值之間進(jìn)行轉(zhuǎn)換,實(shí)現(xiàn)乘除運(yùn)算規(guī)則簡(jiǎn)單。進(jìn)行加減運(yùn)算十分麻煩。2023/2/1232.1.1數(shù)據(jù)格式2、補(bǔ)碼表示法生活例子:現(xiàn)為北京時(shí)間下午4點(diǎn),但鐘表顯示為7點(diǎn)。有兩種辦法校對(duì):

(1)做減法7-3=4(逆時(shí)針退3格)

(2)做加法7+9=16(順時(shí)針進(jìn)9格)

16(mod12)=16-12=4(以12為模,變成4)2023/2/1242、補(bǔ)碼表示法定義:正數(shù)的補(bǔ)碼就是正數(shù)的本身,負(fù)數(shù)的補(bǔ)碼是原負(fù)數(shù)加上模。計(jì)算機(jī)運(yùn)算受字長(zhǎng)限制,屬于有模運(yùn)算.定點(diǎn)小數(shù)x0.x1x2…xn,以2為模定點(diǎn)整數(shù)x0.x1x2…xn,以2n+1為模定點(diǎn)小數(shù)x0.x1x2…xn

x1>x≥00,正小數(shù)[x]補(bǔ)=符號(hào)

2+x0≥x>-11,負(fù)小數(shù)2023/2/1252、補(bǔ)碼表示法定點(diǎn)整數(shù)x0.x1x2…xn

x2n>x≥00,正整數(shù)[x]補(bǔ)=符號(hào)

2n+1+x0≥x>-2n

1,負(fù)整數(shù)補(bǔ)碼最大的優(yōu)點(diǎn)就是將減法運(yùn)算轉(zhuǎn)換成加法運(yùn)算。通常不按表達(dá)式求補(bǔ)碼,而通過(guò)反碼來(lái)得到。2023/2/1263、反碼表示法定義:正數(shù)的表示與原、補(bǔ)碼相同,負(fù)數(shù)的補(bǔ)碼符號(hào)位為1,數(shù)值位是將原碼的數(shù)值按位取反,就得到該數(shù)的反碼表示。電路容易實(shí)現(xiàn),觸發(fā)器的輸出有正負(fù)之分。2023/2/1273、反碼表示法對(duì)尾數(shù)求反,它跟補(bǔ)碼的區(qū)別在于末位少加一個(gè)1,所以可以推出反碼的定義定點(diǎn)小數(shù)x0.x1x2…xnx1>x≥0[x]反=2+x–2-n0≥x>-1X1=+0.1011011,[X1]反=0.1011011X2=-0.1011011,[X2]反=1.0100100

1.

1

1

1

1

1

1

1

0.

1

0

1

1

0

1

1

1.

0

1

0

0

1

0

02023/2/1283、反碼表示法[x]補(bǔ)=[x]反+2-n(證明見(jiàn)書(shū))反碼表示有正0和負(fù)0之分2023/2/1294、移碼表示法移碼表示法(用在階碼中)定點(diǎn)整數(shù)定義[x]移=2n+x2n>x≥-2n

00000000~11111111(-2n~2n-1)例1x=+1011111

原碼為01011111補(bǔ)碼為01011111反碼為01011111移碼為110111112023/2/1304、移碼表示法例2x=-1011111原碼為11011111補(bǔ)碼為10100001反碼為10100000移碼為00100001特點(diǎn):移碼和補(bǔ)碼尾數(shù)相同,符號(hào)位相反范圍:-2n~2n-1浮點(diǎn)IEEE754表示e=-127~+12800000000階碼表示數(shù)字”0”,尾數(shù)的隱含位為011111111階碼表示數(shù)字”無(wú)窮大”,尾數(shù)的隱含位為02023/2/131[例6]以定點(diǎn)整數(shù)為例,用數(shù)軸形式說(shuō)明原碼、反碼、補(bǔ)碼表示范圍和可能的數(shù)碼組合情況。2023/2/132[例7]將十進(jìn)制真值(-127,-1,0,+1,+127)列表表示成二進(jìn)制數(shù)及原碼、反碼、補(bǔ)碼、移碼值。2023/2/133[例8]設(shè)機(jī)器字長(zhǎng)16位,定點(diǎn)表示,尾數(shù)15位(1)定點(diǎn)原碼整數(shù)表示時(shí),最大正數(shù)是多少?最小負(fù)數(shù)是多少?0111111111111111最大正整數(shù)x=(215-1)10=(+32767)101111111111111111最小負(fù)整數(shù)x=(1-215)10=-(215-1)10=(-32767)10(2)定點(diǎn)原碼小數(shù)表示,最大正數(shù)是多少?最小負(fù)數(shù)是多少?0111111111111111最大正小數(shù)x=(1-215)101111111111111111最小負(fù)小數(shù)x=-(1-215)10

2023/2/134例9假設(shè)由S,E,M三個(gè)域組成的一個(gè)32位二進(jìn)制字所表示的非零規(guī)格化浮點(diǎn)數(shù)x,真值表示為(注意此例非IEEE754標(biāo)準(zhǔn)):

x=(-1)s×(1.M)×2E-128

問(wèn):它所表示的規(guī)格化的最大正數(shù)、最小正數(shù)、最大負(fù)數(shù)、最小負(fù)數(shù)是多少?(1)最大正數(shù)0

11

111

11111111111111111111111111x=[1+(1-2-23)]×2127(2)最小正數(shù)0

00

000

00000000000000000000000000x=1.0×2-128(3)最小負(fù)數(shù)1

11

111

11111111111111111111111111x=-[1+(1-2-23)]×2127(4)最大負(fù)數(shù)1

00

000

00000000000000000000000000x=-1.0×2-128

N=RE.M2023/2/1352.1.3字符和字符串的表示方法符號(hào)數(shù)據(jù):字符信息用數(shù)據(jù)表示,如ASCII等;字符表示方法ASCII:用一個(gè)字節(jié)來(lái)表示,低7位用來(lái)編碼(128),最高位為校驗(yàn)位,參見(jiàn)教材P24表2.1字符串的存放方法CAI2023/2/1362.1.4漢字的表示方法漢字的表示方法(一級(jí)漢字3755個(gè),二級(jí)漢字3008個(gè))輸入碼國(guó)標(biāo)碼一級(jí)(16~55)*94二級(jí)(56~87)*94圖形符號(hào)(682個(gè))(01~09)*94拼音、五筆漢字內(nèi)碼:漢字信息的存儲(chǔ),交換和檢索的機(jī)內(nèi)代碼,兩個(gè)字節(jié)組成,每個(gè)字節(jié)高位都為1(區(qū)別于英文字符)2023/2/1372.1.4漢字的存放漢字字模碼:漢字字形點(diǎn)陣漢字庫(kù)2023/2/1382.1.5校驗(yàn)碼校驗(yàn)碼(只介紹奇偶校驗(yàn)碼)引入:信息傳輸和處理過(guò)程中受到干擾和故障,容易出錯(cuò)。解決方法:是在有效信息中加入一些冗余信息(校驗(yàn)位)奇偶校驗(yàn)位定義設(shè)x=(x0x1…xn-1)是一個(gè)n位字,則奇校驗(yàn)位C定義為:C=x0⊕x1⊕…⊕xn-1,式中⊕代表按位加,表明只有當(dāng)x中包含有奇數(shù)個(gè)1時(shí),才使C=1,即C=0。同理可以定義偶校驗(yàn)。

只能檢查出奇數(shù)位錯(cuò);不能糾正錯(cuò)誤。p26例10自己看一下。其它還有Hamming,CRC2023/2/1392.2定點(diǎn)加法、減法運(yùn)算2.2.1補(bǔ)碼加法2.2.2補(bǔ)碼減法2.2.3溢出概念與檢測(cè)方法2.2.4基本的二進(jìn)制加法/減法器2023/2/1402.2.1補(bǔ)碼加法補(bǔ)碼加法公式:[x+y]補(bǔ)=[x]補(bǔ)+[y]補(bǔ)(mod2n+1)

2023/2/141[x]補(bǔ)+[y]補(bǔ)=[x+y]補(bǔ)證明假設(shè)︱x︱﹤1,︱y︱﹤1,︱x+y︱﹤1現(xiàn)分四種情況來(lái)證明(1)x﹥0,y﹥0,則x+y﹥0[x]補(bǔ)=x,[y]補(bǔ)=y,[x+y]補(bǔ)=x+y所以等式成立.(2)x﹥0,y﹤0,則x+y>0或x+y<0[x]補(bǔ)=x,[y]補(bǔ)=2+y,[x]補(bǔ)+[y]補(bǔ)=x+2+y當(dāng)x+y>0時(shí),2+(x+y)>2,進(jìn)位2必丟失,又因(x+y)>0,故[x]補(bǔ)+[y]補(bǔ)=x+y=[x+y]補(bǔ)

當(dāng)x+y<0時(shí),2+(x+y)<2,又因(x+y)<0,故[x]補(bǔ)+[y]補(bǔ)=2+(x+y)=[x+y]補(bǔ)

所以上式成立2023/2/142[x]補(bǔ)+[y]補(bǔ)=[x+y]補(bǔ)證明(3)x<0,y>0,則x+y>0或x+y<0

這種情況和第2種情況一樣,把x和y的位置對(duì)調(diào)即得證。(4)x<0,y<0,則x+y<0相加兩數(shù)都是負(fù)數(shù),則其和也一定是負(fù)數(shù)。∵[x]補(bǔ)=2+x,

[y]補(bǔ)=2+y∴[x]補(bǔ)+[y]補(bǔ)=2+x+2+y=2+(2+x+y)上式右邊分為”2”和(2+x+y)兩部分.既然(x+y)是負(fù)數(shù),而其絕對(duì)值又小于1,那么(2+x+y)就一定是小于2而大于1的數(shù),進(jìn)位”2”必丟失.又因(x+y)<0,所以[x]補(bǔ)+[y]補(bǔ)=2+(x+y)=[x+y]補(bǔ)

2023/2/1432.2.1補(bǔ)碼加法[例11]x=+1011,y=+0101,求x+y=?

解:[x]補(bǔ)

=01001,[y]補(bǔ)

=00101

[x]補(bǔ)

01001

[y]補(bǔ)

00101

————————————————

[x+y]補(bǔ)

01110

∴x+y=+1110

2023/2/1442.2.1補(bǔ)碼加法[例12]x=+1011,y=-0101,求x+y=?

解:[x]補(bǔ)

=01001,[y]補(bǔ)

=11011

[x]補(bǔ)

01001

+[y]補(bǔ)

11011

————————————————

[x+y]補(bǔ)

1

00110

∴x+y=+01102023/2/1452.2.2補(bǔ)碼減法

公式:

[x]補(bǔ)

-[y]補(bǔ)

=[x]補(bǔ)

+[-y]補(bǔ)

[-y]補(bǔ)

=-[y]補(bǔ)

+2-n

2023/2/1462.2.2補(bǔ)碼減法[例13]已知x1=-1110,x2=+1101,求:

[x1]補(bǔ)

,[-x1]補(bǔ)

,[x2]補(bǔ)

,[-x2]補(bǔ)。

解:

[x1]補(bǔ)

=10010

[-x1]補(bǔ)

=-[x1]補(bǔ)

+2-4=01101+00001=01110

[x2]補(bǔ)

=01101

[-x2]補(bǔ)

=-[x2]補(bǔ)

+2-4=10010+00001=10011

2023/2/1472.2.2補(bǔ)碼減法[例14]x=+1101,y=+0110,求x-y=?

解:[x]補(bǔ)

=01101

[y]補(bǔ)

=00110,[-y]補(bǔ)

=11010

[x]補(bǔ)

01101

[-y]補(bǔ)

11010

————————————————

[x-y]補(bǔ)

1

00111

∴x-y=+01112023/2/1482.2.3溢出概念與檢測(cè)方法溢出的概念可能產(chǎn)生溢出的情況兩正數(shù)加,變負(fù)數(shù),正溢(大于機(jī)器所能表示的最大數(shù))

兩負(fù)數(shù)加,變正數(shù),負(fù)溢(小于機(jī)器所能表示的最小數(shù))

下面舉兩個(gè)例子。2023/2/1492.2.3溢出概念與檢測(cè)方法[例15]x=+1101,y=+1001,求x+y。

解:[x]補(bǔ)=01011,[y]補(bǔ)=01001

[x]補(bǔ)

01011

+[x]補(bǔ)

01001

——————————————

[x+y]補(bǔ)

10100

兩個(gè)正數(shù)相加的結(jié)果成為負(fù)數(shù),表示正溢。2023/2/1502.2.3溢出概念與檢測(cè)方法

[例16]x=-1101,y=-1011,求x+y。

解:[x]補(bǔ)=10011,[y]補(bǔ)=10101

[x]補(bǔ)

10011

+[x]補(bǔ)

10101

——————————————

[x+y]補(bǔ)

01000

兩個(gè)負(fù)數(shù)相加的結(jié)果成為正數(shù),表示負(fù)溢。2023/2/1512.2.3溢出概念與檢測(cè)方法溢出的概念

2023/2/1522.2.3溢出概念與檢測(cè)方法檢測(cè)方法1、雙符號(hào)位法(變形補(bǔ)碼)[x]補(bǔ)

=2n+2+x

(mod2n+2)Sf1Sf2

0

0

正確(正數(shù))

0

1

正溢

1

0

負(fù)溢

1

1

正確(負(fù)數(shù))

Sf1

表示正確的符號(hào),邏輯表達(dá)式為V=Sf1⊕Sf2,

可以用異或門(mén)來(lái)實(shí)現(xiàn)

2023/2/1532.2.3溢出概念與檢測(cè)方法[例17]x=+01100,y=+01000,求x+y。

解:[x]補(bǔ)

=001100,[y]補(bǔ)

=001000

[x]補(bǔ)

001100

+[y]補(bǔ)

001000

————————————————

[x+y]補(bǔ)

0

10100

(表示正溢)

2023/2/1542.2.3溢出概念與檢測(cè)方法[例18]x=-1100,y=-1000,求x+y。

解:[x]補(bǔ)

=110100,[y]補(bǔ)

=111000

[x]補(bǔ)

110100

+[y]補(bǔ)

111000

————————————————

[x+y]補(bǔ)

1

01100

(表示負(fù)溢)

2023/2/1552.2.3溢出概念與檢測(cè)方法單符號(hào)位法Cf C0

0

0

正確(正數(shù))

0

1

正溢

1

0

負(fù)溢

1

1

正確(負(fù)數(shù))V=Cf⊕C0,其中Cf為符號(hào)位產(chǎn)生的進(jìn)位,C0為最高有效位產(chǎn)生

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

一位全加器真值表輸入輸出AiBiCiSiCi+100000001100101001101100101010111001111112023/2/1572.2.4基本的二進(jìn)制加法/減法器FA邏輯方程2023/2/1582.2.4基本的二進(jìn)制加法/減法器FA邏輯電路和框圖CAI2023/2/1592.2.4基本的二進(jìn)制加法/減法器

n位行波進(jìn)位加法器圖2-3行波進(jìn)位的補(bǔ)碼加法/加法器CAI2023/2/1602.3定點(diǎn)乘法運(yùn)算2.3.1原碼并行乘法2.3.2直接補(bǔ)碼并行乘法2023/2/1612.3.1原碼并行乘法1、人工算法與機(jī)器算法的同異性2、不帶符號(hào)的陣列乘法器3、帶符號(hào)的陣列乘法器2023/2/1621、人工算法與機(jī)器算法的同異性[x]原=xf.xn-1…x1x0[y]原=yf.yn-1…y1y0[x.y]原=(xf⊕yf)+(xn-1…x1x0).(yn-1…y1y0)用習(xí)慣方法求乘積如下:設(shè)x=1101,y=1011

1

1

01(x)

×

10

1

1

(y)

1

1

0

1

1

1

0

1

0

0

0

0

+1

1

0

1

1

0

0

0

1

1

1

1

(z)2023/2/1631、人工算法與機(jī)器算法的同異性n位乘n位積可能為2n位.乘積的最后是所有部分積之和

采用流水式陣列乘法器,取代串行方案。2023/2/1642、不帶符號(hào)位的陣列乘法器不帶符號(hào)陣列乘法器邏輯圖CAI2023/2/1652、不帶符號(hào)位的陣列乘法器CAI2023/2/1662、不帶符號(hào)位的陣列乘法器[例19]參見(jiàn)圖2.5,已知不帶符號(hào)的二進(jìn)制整數(shù)A=11011,B=10101,求每一部分乘積項(xiàng)aibj的值與p9p8…p0的值。

解:

11011=A(2710)

×

10101=B(2110)

————————————

11011

a4b0=1,a3b0=1,a2b0=0,a1b0=1,a0b0=1

00000

a4b1=0,a3b1=0,a2b1=0,a1b1=0,a0b1=0

11011

a4b2=1,a3b2=1,a2b2=0,a1b2=1,a0b2=1

00000

a4b3=0,a3b3=0,a2b3=0,a1b3=0,a0b3=0

+11011

a4b4=1,a3b4=1,a2b4=0,a1b4=1,a0b4=1

————————————

1000110111=P

P=p9p8p7p6p5p4p3p2p1p0

=1000110111(56710)

2023/2/1673、帶符號(hào)位的陣列乘法器求補(bǔ)電路原理:算前求補(bǔ)-乘法器-算后求補(bǔ),見(jiàn)下圖CAI2023/2/1683、帶符號(hào)的陣列乘法器求補(bǔ)電路小結(jié)E=0時(shí),輸入和輸出相等E=1時(shí),則從數(shù)最右端往左邊掃描,直到第一個(gè)1的時(shí)候,該位和右邊各位保持不變,左邊各數(shù)值位按位取反可以用符號(hào)作為E的輸入原:1.11110補(bǔ):1.00010不變,左邊數(shù)值位取反2023/2/1693、帶符號(hào)的陣列乘法器

原碼/補(bǔ)碼CAI2023/2/170[例20]設(shè)x=+15,y=-13,用帶求補(bǔ)器的原碼陣列乘法器求出乘積

x·y=?

解:[x]原=01111,[y]原=11101,|x|=1111,|y|=1101

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

1111

×

1101

————————————

1111

0000

1111

+1111

————————————

11000011

乘積符號(hào)為1,算后求補(bǔ)器輸出11000011,[x×y]原=111000011

換算成二進(jìn)制數(shù)真值是x·y=(-11000011)2=(-195)102023/2/171[例21]設(shè)x=-15,y=-13,用帶求補(bǔ)器的補(bǔ)碼陣列乘法器求出乘積

x·y=?并用十進(jìn)制數(shù)乘法進(jìn)行驗(yàn)證。

解:[x]補(bǔ)=10001,[y]補(bǔ)=10011,乘積符號(hào)位運(yùn)算:1⊕1=0

尾數(shù)部分算前求補(bǔ)器輸出|x|=1111,|y|=1101

1111

×

1101

————————————

1111

0000

1111

+1111

————————————

11000011

乘積符號(hào)為0,算后求補(bǔ)器輸出11000011,[x×y]補(bǔ)=011000011

補(bǔ)碼二進(jìn)制數(shù)真值x·y=0×28+1×27+1×26+1×21+1×20=(+195)10

十進(jìn)制數(shù)乘法驗(yàn)證x·y=(-15)×(-13)=+1952023/2/1722.4定點(diǎn)除法運(yùn)算2.4.1原碼除法算法原理2.4.2并行除法器2023/2/1732.4.1原碼除法算法原理設(shè)有n位定點(diǎn)小數(shù)(定點(diǎn)整數(shù)也適用)

被除數(shù)x,[x]原=xf.xn-1…x1x0

除數(shù)y,[y]原=yf.yn-1…y1y0

則有商q=x/y,

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

商的符號(hào)運(yùn)算qf=xf⊕yf與原碼乘法一樣,用模2求和得到。

下面是人工算法例子。2023/2/1742.4.1定點(diǎn)原碼除法

0.1101

商q0.1011

0.10010

x(r0)

被除數(shù)

-0.01011

2-1y除數(shù)右移1位,減除數(shù)

0.001110

r1得余數(shù)r1

-0.0

01011

2-2y除數(shù)右移1位,減除數(shù)

0.0000110

r2

得余數(shù)r2

-0.0

001011

2-3y

除數(shù)右移1位,不減除數(shù)

0.00001100

r3

得余數(shù)r3

-0.0

0001011

2-4y除數(shù)右移1位,減除數(shù)

-0.00000001

r4

得余數(shù)r4商0還是商1人可以比較后確定,計(jì)算機(jī)如何確定?定點(diǎn)原碼一位除法實(shí)現(xiàn)方案(手工)0.10010/0.10112023/2/1752、不恢復(fù)余數(shù)的除法人工除法時(shí),人可以比較被除數(shù)(余數(shù))和除數(shù)的大小來(lái)確定商1(夠減)或商0(不夠減)機(jī)器除法時(shí),余數(shù)為正表示夠減,余數(shù)為負(fù)表示不夠減。不夠減時(shí)必須恢復(fù)原來(lái)余數(shù),才能繼續(xù)向下運(yùn)算。這種方法叫恢復(fù)余數(shù)法,控制比較復(fù)雜。不恢復(fù)余數(shù)法(加減交替法)

余數(shù)為正,商1,下次除數(shù)右移做減法;

余數(shù)為負(fù),商0,下次除數(shù)右移做加法。

控制簡(jiǎn)單,有規(guī)律。2023/2/1762.4.2并行除法器1、可控加法/減法(CAS)單元

原理:采用不恢復(fù)余數(shù)(加減交替)法P=0,作加法運(yùn)算P=1,作減法運(yùn)算CAI2023/2/1772、不恢復(fù)余數(shù)的陣列除法器

被除數(shù)x=0.x6x5x4x3x2x1

(雙倍長(zhǎng))

除數(shù)y=0.y3y2y1

商數(shù)q=0.q3q2q1

余數(shù)r=0.00r6r5r4r3

除數(shù)右移2.4.2并行除法器2023/2/1782.4.2并行除法器[例23]x=0.101001,y=0.111,求x÷y。[解:][x]補(bǔ)=0.101001,[y]補(bǔ)=0.111,[-y]補(bǔ)=1.001

0.101001

;被除數(shù)

+[-y]補(bǔ)

1.001

;第一步減除數(shù)y

————————————————————————

1.110001

<0q4=0;余數(shù)為負(fù),商0

+[y]補(bǔ)→

0.0111

;除數(shù)右移1位加

————————————————————————

0.001101

>0q3=1;余數(shù)為正,商1

+[-y]補(bǔ)→

1.11001

;除數(shù)右移2位減

————————————————————————

1.111111

<0q2=0;余數(shù)為負(fù),商0

+[y]補(bǔ)→

0.000111

;除數(shù)右移3位加

————————————————————————

0.000110

>0q1=1;余數(shù)為正,商1

商q=q4.q3q2q1=0.101,余數(shù)r=(0.00r6r5r4r3)=0.0001102023/2/1792.5定點(diǎn)運(yùn)算器的組成2.5.1邏輯運(yùn)算2.5.2多功能算術(shù)/邏輯運(yùn)算單元ALU2.5.3內(nèi)部總線2.5.4定點(diǎn)運(yùn)算器的基本結(jié)構(gòu)2023/2/1802.5.1邏輯運(yùn)算1、邏輯非運(yùn)算2、邏輯加運(yùn)算3、邏輯乘運(yùn)算4、邏輯異運(yùn)算

2023/2/1811、邏輯非運(yùn)算x=x0x1x2…xn,對(duì)x求邏輯非,則有

x=z=z0z1z2…zn

zi=xi,i=0,1,2,…,n

2023/2/1821、邏輯非運(yùn)算[例24]x1=01001001,x2=11110000,求x1,x2

解:

x1=10110100

x2=00001111

2023/2/1832、邏輯加運(yùn)算x=x0x1x2…xn,y=y0y1y2…yn

則有

x+y=z=z0z1z2…zn

zi=xi+yi,i=0,1,2,…,n

2023/2/1842、邏輯加運(yùn)算[例25]x=10100001,y=100111011,求x+y

解:

10100001

x

+10011011

y

————————————

10111011

z

即x+y=10111011

2023/2/1853、邏輯乘運(yùn)算x=x0x1x2…xn,y=y0y1y2…yn

則有

x·y=z=z0z1z2…zn

zi=xi·yi,i=0,1,2,…,n

2023/2/1863、邏輯乘運(yùn)算[例26]x=10111001,y=11110011,求x+y

解:

10111001

x

·

11110011

y

————————————

10110001

z

即x·y=10110001

2023/2/1874、邏輯異運(yùn)算x=x0x1x2…xn,y=y0y1y2…yn

則有

x⊕y=z=z0z1z2…zn

zi=xi⊕yi,i=0,1,2,…,n

2023/2/1884、邏輯異運(yùn)算[例27]x=10101011,y=11001100,求x+y

解:

10101011

x

11001100

y

————————————

01100111

z

即x⊕y=01100111

2023/2/1892.5.2多功能算術(shù)/邏輯運(yùn)算單元ALU1、基本思想2、邏輯表達(dá)式3、算術(shù)邏輯運(yùn)算的實(shí)現(xiàn)4、兩級(jí)先行進(jìn)位的ALU

2023/2/1902.5.2多功能算術(shù)/邏輯運(yùn)算單元ALU1、基本思想創(chuàng)新點(diǎn):

(1)實(shí)現(xiàn)并行進(jìn)位(先行進(jìn)位)

(2)實(shí)現(xiàn)16種算術(shù)運(yùn)算,16種邏輯運(yùn)算

基本思想:一位全加器FA的邏輯表達(dá)式:為了實(shí)現(xiàn)多種算術(shù)邏輯運(yùn)算,可將Ai和Bi輸入一個(gè)函數(shù)發(fā)生器(進(jìn)位傳遞函數(shù)和進(jìn)位產(chǎn)生函數(shù))得到輸出Xi和Yi,作為一位全加器的輸入(見(jiàn)下頁(yè)圖)。2023/2/191ALU的邏輯圖與邏輯表達(dá)式一位ALU邏輯圖4位一片,i=0,1,2,32.5.2多功能算術(shù)/邏輯運(yùn)算單元ALU2023/2/192S0S1

Yi

S2S3

Xi

0

0

0

1

1

0

110

0

0

1

1

0

1

11

2、邏輯表達(dá)式XiYi與控制參數(shù)和輸入量的關(guān)系構(gòu)造如下真值表2.5.2多功能算術(shù)/邏輯運(yùn)算單元ALU2023/2/1932.5.2多功能算術(shù)/邏輯運(yùn)算單元ALUALU的某一位邏輯表達(dá)式見(jiàn)下:2023/2/1942.5.2多功能算術(shù)/邏輯運(yùn)算單元ALU如何實(shí)現(xiàn)先行進(jìn)位?答:由于每一位中X、Y的產(chǎn)生是同時(shí)的,則可以由下面方法算出并行進(jìn)位的Cn+4

Cn+1=Y(jié)0+X0Cn

Cn+2=Y(jié)1+X1Cn+1=Y(jié)1+Y0X1+X0X1Cn

Cn+3=Y(jié)2+X2Cn+2=Y(jié)2+Y1X1+Y0X1X2+X0X1X2Cn

Cn+4=Y(jié)3+X3Cn+3=Y(jié)3+Y2X3+Y1X2X3+Y0X1X2X3+X0X1X2X3Cn

2023/2/1952.5.2多功能算術(shù)/邏輯運(yùn)算單元ALU令G=Y(jié)3+Y2X3+Y1X2X3+Y0X1X2X3

P=X0X1X2X3G為進(jìn)位發(fā)生輸出P為進(jìn)位傳送輸出增加P和G的目的在于實(shí)現(xiàn)多片(組)ALU之間的先行進(jìn)位,需要配合電路,稱(chēng)為先行進(jìn)位發(fā)生器(CLA)器件:741812023/2/1963、算術(shù)邏輯運(yùn)算的實(shí)現(xiàn)2.5.2多功能算術(shù)/邏輯運(yùn)算單元ALU圖2.11正邏輯操作數(shù)表示的74181ALU邏輯電路圖CAI2023/2/1972.5.2多功能算術(shù)/邏輯運(yùn)算單元ALU算術(shù)邏輯運(yùn)算的實(shí)現(xiàn)(74181)M=L時(shí),對(duì)進(jìn)位信號(hào)沒(méi)有影響,做算術(shù)運(yùn)算M=H時(shí),進(jìn)位門(mén)被封鎖,做邏輯運(yùn)算說(shuō)明:74181執(zhí)行正邏輯輸入/輸出方式的一組算術(shù)運(yùn)算和邏輯運(yùn)算和負(fù)邏輯輸入/輸出方式的一組算術(shù)運(yùn)算和邏輯運(yùn)算是等效的。A=B端可以判斷兩個(gè)數(shù)是否相等。2023/2/1984、兩級(jí)先行進(jìn)位的ALU4片(組)的先行進(jìn)位邏輯Cn+x=G0+P0CnCn+y=G1+P1Cn+x=G1+G0P1+P0P1Cn

Cn+x=G2+P2Cn+y

=G2+G1P2+G0P1P2+P0P1P2CnCn+4=G3+P3Cn+z=G3+G2P3+G1P2P3+G0P1P2P3+P0P1P2P3Cn=G*+P*CnG*為成組先行進(jìn)位發(fā)生輸出P*為成組先行進(jìn)位傳送輸出2.5.2多功能算術(shù)/邏輯運(yùn)算單元ALU2023/2/199成組先行進(jìn)位部件CLA的邏輯圖2.5.2多功能算術(shù)/邏輯運(yùn)算單元ALUCAI2023/2/1100設(shè)計(jì)16位ALU2.5.2多功能算術(shù)/邏輯運(yùn)算單元ALUCn+x=G2+P2Cn+yCn+4=G3+P3Cn+z片內(nèi)先行進(jìn)位,片間先行進(jìn)位.2023/2/11012個(gè)74L1828個(gè)4位ALU74L1812.5.2多功能算術(shù)/邏輯運(yùn)算單元ALU圖2.13用兩個(gè)16位全先行進(jìn)位邏輯級(jí)聯(lián)組成的32位ALUCAI2023/2/11022.5.3內(nèi)部總線內(nèi)部總線機(jī)器內(nèi)部各部份數(shù)據(jù)傳送頻繁,可以把寄存器間的數(shù)據(jù)傳送通路加以歸并,組成總線結(jié)構(gòu)。分類(lèi)所處位置內(nèi)部總線(CPU內(nèi))外部總線(系統(tǒng)總線)邏輯結(jié)構(gòu)單向傳送總線雙向傳送總線2023/2/11032.5.3內(nèi)部總線圖2.14由三態(tài)門(mén)組成的雙向數(shù)據(jù)總線CAI2023/2/11042.5.4定點(diǎn)運(yùn)算器的基本結(jié)構(gòu)1、單總線結(jié)構(gòu)的運(yùn)算器CAI2023/2/11052.5.4定點(diǎn)運(yùn)算器的基本結(jié)構(gòu)2、雙總線結(jié)構(gòu)的運(yùn)算器2023/2/11062.5.4定點(diǎn)運(yùn)算器的基本結(jié)構(gòu)3、三總線結(jié)構(gòu)的運(yùn)算器2023/2/11072.6浮點(diǎn)運(yùn)算方法和浮點(diǎn)運(yùn)算器2.6.1浮點(diǎn)加法、減法運(yùn)算2.6.2浮點(diǎn)乘法、除法運(yùn)算2.6.3浮點(diǎn)運(yùn)算流水線2.6.4浮點(diǎn)運(yùn)算器實(shí)例2023/2/11082.6.1浮點(diǎn)加法、減法運(yùn)算1、浮點(diǎn)加減運(yùn)算 設(shè)有兩個(gè)浮點(diǎn)數(shù)x和y,它們分別為 x=2Ex·Mx y=2Ey·My其中Ex和Ey分別為數(shù)x和y的階碼,Mx和My為數(shù)x和y的尾數(shù)。兩浮點(diǎn)數(shù)進(jìn)行加法和減法的運(yùn)算規(guī)則是 x±y=(Mx2Ex-Ey±My)2Ey, 設(shè)Ex<=EyCAICAI2023/2/11092.6.1浮點(diǎn)加法、減法運(yùn)算2、浮點(diǎn)運(yùn)算步驟如下:1.0操作數(shù)檢查;2.比較階碼并完成對(duì)階(小階向大階對(duì)齊);3.尾數(shù)求和運(yùn)算;4.結(jié)果規(guī)格化;5.舍入處理。2023/2/11102.6.1浮點(diǎn)加法、減法運(yùn)算浮點(diǎn)加減法運(yùn)算操作流程2023/2/11112.6.1浮點(diǎn)加法、減法運(yùn)算[例28]設(shè)x=2010×0.11011011,y=-2100×0.10101100,求x+y。1、0操作數(shù)檢查(非0)2、對(duì)階:階碼對(duì)齊后才能加減。規(guī)則是階碼小的向階碼大的數(shù)對(duì)齊;若△E=0,表示兩數(shù)階碼相等,即Ex=Ey;若△E>0,表示Ex>Ey;若△E<0,表示Ex>Ey。當(dāng)Ex≠Ey

時(shí),要通過(guò)尾數(shù)的移動(dòng)以改變Ex或Ey,使之相等。[x]浮=00010,0.11011011;[y]浮=00100,1.01010100階差=[Ex]補(bǔ)-[Ey]補(bǔ)=00010-00100=11110即階差為-2,Mx右移兩位,Ex加2。[x]浮=00100,0.00110110(11)2023/2/11122.6.1浮點(diǎn)加法、減法運(yùn)算3、尾數(shù)相加

0.00110110(11)

+1.01010100

————————————————

1.10001010(11)4、結(jié)果規(guī)格化規(guī)則:尾數(shù)右移1位,階碼加1,尾數(shù)左移1位,階碼減1。左規(guī)處理,結(jié)果為1.00010101(10),階碼為000112023/2/11132.6.1浮點(diǎn)加法、減法運(yùn)算舍入處理(對(duì)階和向右規(guī)格化時(shí))就近舍入(0舍1入):類(lèi)似”四舍五入”,丟棄的最高位為1,進(jìn)1朝0舍入:截尾朝+∞舍入:正數(shù)多余位不全為”0”,進(jìn)1;負(fù)數(shù),截尾朝-∞舍入:負(fù)數(shù)多余位不全為”0”,進(jìn)1;正數(shù),截尾采用0舍1入法處理,得到1.00010110。溢出判斷和處理階碼上溢,一般將其認(rèn)為是+∞和-∞。階碼下溢,則數(shù)值為0。階碼符號(hào)位為00,不溢出。得最終結(jié)果為

x+y=2011×(-0.11101010)2023/2/11142.6.1浮點(diǎn)加法、減法運(yùn)算[例29]設(shè)x=10Ex×Mx=102×0.3,

y=10Ey×My=103×0.2,求x+y=?x-y=?

解:Ex=2,Ey=3,Ex<Ey,對(duì)階時(shí)小階向大階看齊。

x+y=(Mx·10Ex-Ey+My)×10Ey

=(0.3×102-3+0.2)×103

=0.23×103=230

x-y=(Mx·10Ex-Ey-My)×10Ey

=(0.3×102-3-0.2)×103

=-0.17×103=-170

2023/2/1115設(shè)[x1]補(bǔ)=11.01100000,[x2]補(bǔ)=11.01100001,[x3]補(bǔ)=11.01101000,[x4]補(bǔ)=11.01111001,

求執(zhí)行只保留小數(shù)點(diǎn)后4位有效數(shù)字的舍入操作值。課堂作業(yè)2023/2/11162.6.1浮點(diǎn)加法、減法運(yùn)算課堂練習(xí):x=0.1101*201y=-0.1010*211尾數(shù)和階符都采用補(bǔ)碼表示,都采用雙符號(hào)位表示法。求x+y2023/2/11172.6.1浮點(diǎn)加法、減法運(yùn)算[x]浮=0001,00.1101[y]浮=0011,11.0110階差=1110即為-2Mx應(yīng)當(dāng)右移2位,[x]浮=0011,00.0011(01)尾數(shù)和為11.1001(01)左規(guī)11.0010(10),階碼減1為0010舍入(就近舍入)11.0011

丟棄10x+y=-0.1101*2102023/2/11182.6.2浮點(diǎn)乘法和除法運(yùn)算設(shè)有兩個(gè)浮點(diǎn)數(shù)x和y:

x=2Ex·Mx

y=2Ey·Myx×y=2(Ex+Ey)·(Mx×My)x÷y=2(Ex-Ey)·(Mx÷My)乘除運(yùn)算分為四步0操作數(shù)檢查階碼加減操作尾數(shù)乘除操作結(jié)果規(guī)格化和舍入處理CAI2023/2/11192.6.2浮點(diǎn)乘法和除法運(yùn)算補(bǔ)碼采用雙符號(hào)位,為了對(duì)溢出進(jìn)行判斷00

為正11

為負(fù)01

上溢

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論