計(jì)算機(jī)組成原理 第二章_第1頁(yè)
計(jì)算機(jī)組成原理 第二章_第2頁(yè)
計(jì)算機(jī)組成原理 第二章_第3頁(yè)
計(jì)算機(jī)組成原理 第二章_第4頁(yè)
計(jì)算機(jī)組成原理 第二章_第5頁(yè)
已閱讀5頁(yè),還剩142頁(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)介

計(jì)算機(jī)組成原理第二章第一頁(yè),共一百四十七頁(yè),2022年,8月28日第一章計(jì)算機(jī)系統(tǒng)概論第二章運(yùn)算方法和運(yùn)算器第三章內(nèi)部存儲(chǔ)器第四章指令系統(tǒng)第五章中央處理機(jī)

第六章總線(xiàn)系統(tǒng)第七章外圍設(shè)備第八章輸入輸出系統(tǒng)第九章操作系統(tǒng)支持目錄第二頁(yè),共一百四十七頁(yè),2022年,8月28日第二章運(yùn)算方法和運(yùn)算器重點(diǎn):數(shù)據(jù)表示簡(jiǎn)介:運(yùn)算方法和運(yùn)算器補(bǔ)充:數(shù)字邏輯第三頁(yè),共一百四十七頁(yè),2022年,8月28日數(shù)制K進(jìn)制數(shù)N可表示為:N=mn-1×Kn-1+mn-2×Kn-2+…+m0×K0+m-1×K-1+…Ki稱(chēng)為K進(jìn)制數(shù)第i位的權(quán),簡(jiǎn)稱(chēng)位權(quán);mi稱(chēng)為K進(jìn)制第i位的系數(shù),共K個(gè)。第四頁(yè),共一百四十七頁(yè),2022年,8月28日常用數(shù)制二進(jìn)制八進(jìn)制十進(jìn)制十六進(jìn)制K進(jìn)制基數(shù)281016K進(jìn)位逢2進(jìn)1逢8進(jìn)1逢10進(jìn)1逢16進(jìn)1逢K進(jìn)1可用數(shù)碼0,10,1,2,3,4,5,6,70,1,2,3,4,5,6,7,8,90,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F(xiàn)0,1,2,3,4,5,6,7,8,9,…,k-1第五頁(yè),共一百四十七頁(yè),2022年,8月28日(1)在數(shù)字后面加寫(xiě)相應(yīng)的英文字母作為標(biāo)識(shí)B(Binary)——表示二進(jìn)制如100BO(Octonary)——表示八進(jìn)制如100OD(Decimal)——表示十進(jìn)制如100DH(Hexadecimal)——表示十六進(jìn)制如100H(2)在括號(hào)外面加數(shù)字下標(biāo)(1101)2——表示二進(jìn)制1101(3174)8——表示八進(jìn)制3174(6678)10——表示十進(jìn)制6678(2DF6)16——表示十六進(jìn)制2DF6書(shū)寫(xiě)規(guī)則第六頁(yè),共一百四十七頁(yè),2022年,8月28日二進(jìn)制數(shù)便于計(jì)算機(jī)存儲(chǔ)及物理實(shí)現(xiàn)特點(diǎn):逢二進(jìn)一,由0和1兩個(gè)數(shù)碼組成,基數(shù)為2,各個(gè)位權(quán)以2k表示二進(jìn)制數(shù): anan-1…a1a0.b1b2…bm= an×2n+an-1×2n-1+…+a1×21+a0×20

+b1×2-1+b2×2-2+…+bm×2-m

其中ai,bj非0即1第七頁(yè),共一百四十七頁(yè),2022年,8月28日十六進(jìn)制數(shù)用于表達(dá)二進(jìn)制數(shù),相互轉(zhuǎn)換簡(jiǎn)單基數(shù)16,逢16進(jìn)位,位權(quán)為16k,16個(gè)數(shù)碼:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F(xiàn)十六進(jìn)制數(shù): anan-1…a1a0.b1b2…bm= an×16n+an-1×16n-1+…+a1×161+a0×160 +b1×16-1+b2×16-2+…+bm×16-m 其中ai,bj是0~F中的一個(gè)數(shù)碼第八頁(yè),共一百四十七頁(yè),2022年,8月28日二進(jìn)制數(shù)或十六進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)方法:按權(quán)展開(kāi)二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù) 0011.1010B =1×21+1×20+1×2-1+0×2-2+1×2-3 =3.625十六進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù) 1.2H

=1×160+2×16-1

=1.125十六進(jìn)制數(shù)用后綴字母H二進(jìn)制數(shù)用后綴字母B第九頁(yè),共一百四十七頁(yè),2022年,8月28日十進(jìn)制整數(shù)轉(zhuǎn)換為二或十六進(jìn)制數(shù)整數(shù)部分轉(zhuǎn)換:用除法十進(jìn)制數(shù)整數(shù)部分不斷除以基數(shù)2或16,并記下余數(shù),直到商為0為止由最后一個(gè)余數(shù)起逆向取各個(gè)余數(shù),則為轉(zhuǎn)換成的二進(jìn)制和十六進(jìn)制數(shù) 126=01111110B 126=7EH第十頁(yè),共一百四十七頁(yè),2022年,8月28日十進(jìn)制小數(shù)轉(zhuǎn)換為二或十六進(jìn)制數(shù)小數(shù)部分轉(zhuǎn)換:用乘法分別乘以各自的基數(shù),記錄整數(shù)部分,直到小數(shù)部分為0為止 0.8125=0.1101B 0.8125=0.DH小數(shù)轉(zhuǎn)換會(huì)發(fā)生總是無(wú)法乘到為0的情況可選取一定位數(shù)(精度)將產(chǎn)生無(wú)法避免的轉(zhuǎn)換誤差第十一頁(yè),共一百四十七頁(yè),2022年,8月28日數(shù)值轉(zhuǎn)換(十進(jìn)制→二進(jìn)制)十進(jìn)制→二進(jìn)制整數(shù)部分連續(xù)除2取余數(shù),小數(shù)部分連續(xù)乘2取整數(shù)。123.456(十進(jìn)制)≈1111011.01110100101(二進(jìn)制)

2|123

2|61…1 2|30…1

2|15…02|7…12|3…12|1…10…1123=64+32+16+8+2+1

0.456X2=0.912

.912X2=1.824

.824X2=1.648

.648X2=1.296

.296X2=0.592

.592X2=1.184

.184X2=0.368

.368X2=0.736

.736X2=1.472

.472X2=0.994

.994X2=1.888第十二頁(yè),共一百四十七頁(yè),2022年,8月28日二進(jìn)制與十六進(jìn)制的轉(zhuǎn)換二進(jìn)制和十六進(jìn)制數(shù)之間具有對(duì)應(yīng)關(guān)系整數(shù)從左向右小數(shù)從右向左每4個(gè)二進(jìn)制位對(duì)應(yīng)一個(gè)十六進(jìn)制位(0011

0101.0010

0011

1000)2=(35.238)16

35238(2

B.F)16=(101011.1111)200101011.1111

00111010B=3AH,F(xiàn)2H=11110010B第十三頁(yè),共一百四十七頁(yè),2022年,8月28日十六進(jìn)制數(shù)的加減運(yùn)算十六進(jìn)制數(shù)的加減運(yùn)算類(lèi)似十進(jìn)制逢16進(jìn)位1,借1當(dāng)16

23D9H+94BEH=B897H A59FH-62B8H=42E7H第十四頁(yè),共一百四十七頁(yè),2022年,8月28日真值和機(jī)器數(shù)真值:現(xiàn)實(shí)中真實(shí)的數(shù)值機(jī)器數(shù):計(jì)算機(jī)中用0和1數(shù)碼組合表達(dá)的數(shù)值定點(diǎn)數(shù):固定小數(shù)點(diǎn)的位置表達(dá)數(shù)值的機(jī)器數(shù)定點(diǎn)整數(shù):將小數(shù)點(diǎn)固定在機(jī)器數(shù)的最右側(cè)表達(dá)的整數(shù)定點(diǎn)小數(shù):將小數(shù)點(diǎn)固定在機(jī)器數(shù)的最左側(cè)表達(dá)的小數(shù)浮點(diǎn)數(shù):小數(shù)點(diǎn)浮動(dòng)表達(dá)的實(shí)數(shù)無(wú)符號(hào)數(shù):只表達(dá)0和正整數(shù)的定點(diǎn)整數(shù)有符號(hào)數(shù):表達(dá)負(fù)整數(shù)、0和正整數(shù)的定點(diǎn)整數(shù)符號(hào)位需要占用一個(gè)位,常用機(jī)器數(shù)的最高位0表示正數(shù)、1表示負(fù)數(shù)具有原碼、反碼、補(bǔ)碼、移碼第十五頁(yè),共一百四十七頁(yè),2022年,8月28日沒(méi)有符號(hào)位,使用全部字長(zhǎng)來(lái)表示數(shù)值大小字長(zhǎng)N=8時(shí),編碼:00000000~11111111

取值范圍:0~255(28-1)字長(zhǎng)N=16時(shí),編碼:0000~FFFFH

取值范圍:0~65535(216-1)字長(zhǎng)N=32時(shí),編碼:00000000~FFFFFFFFH 取值范圍:0~232-1無(wú)符號(hào)數(shù)的表示第十六頁(yè),共一百四十七頁(yè),2022年,8月28日2.1數(shù)據(jù)與文字的表示方法2.1.1數(shù)據(jù)格式2.1.2數(shù)的機(jī)器碼表示2.1.3字符與字符串的表示方法2.1.4漢字的表示方法2.1.5校驗(yàn)碼第十七頁(yè),共一百四十七頁(yè),2022年,8月28日數(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í)利于信息處理(速度、方便)第十八頁(yè),共一百四十七頁(yè),2022年,8月28日考慮因素(1)表示的數(shù)據(jù)類(lèi)型(符號(hào)、小數(shù)點(diǎn)、數(shù)值)(2)數(shù)值的范圍(3)數(shù)值精度(4)存儲(chǔ)、處理、傳送的硬件代價(jià)第十九頁(yè),共一百四十七頁(yè),2022年,8月28日計(jì)算機(jī)中常用的數(shù)據(jù)表示格式有兩種,一是定點(diǎn)格式,二是浮點(diǎn)格式定點(diǎn)格式容許的數(shù)值范圍有限,但要求的處理硬件比較簡(jiǎn)單浮點(diǎn)格式容許的數(shù)值范圍很大,但要求的處理硬件比較復(fù)雜2.1.1數(shù)據(jù)格式第二十頁(yè),共一百四十七頁(yè),2022年,8月28日定點(diǎn)數(shù)的表示方法定點(diǎn)表示:約定機(jī)器中所有數(shù)據(jù)的小數(shù)點(diǎn)位置是固定不變的。通常將數(shù)據(jù)表示成純小數(shù)或純整數(shù)定點(diǎn)數(shù)x=xnxn-1…x1x0

在定點(diǎn)機(jī)中表示如下(xn表示符號(hào)位,0代表正號(hào),1代表負(fù)號(hào))Xn-1XnXn-2X1X0符號(hào)位N位數(shù)值位(尾數(shù))純整數(shù)小數(shù)點(diǎn)位置

純整數(shù)小數(shù)點(diǎn)位置

第二十一頁(yè),共一百四十七頁(yè),2022年,8月28日X=+1010110.純整數(shù):X=01010110.正數(shù),符號(hào)位取0Y=-1101001.純整數(shù):Y=11101001.(原碼)負(fù)數(shù),符號(hào)位取1X=+0.11011符號(hào)位取0純小數(shù):X=0.11011Y=-0.10101符號(hào)位取1純小數(shù):X=1.10101(原碼)例子第二十二頁(yè),共一百四十七頁(yè),2022年,8月28日定點(diǎn)整數(shù)的表示范圍純整數(shù)的表示范圍為(xnxn-1…x0各位均為0時(shí)最??;各位均為1時(shí)最大,xn為符號(hào)位)0≤|x|≤2n

-1例如:n=8,最大值編碼:11111111 表示:11111111=100000000-1

=28-1目前計(jì)算機(jī)中多采用定點(diǎn)純整數(shù)表示,因此將定點(diǎn)數(shù)表示的運(yùn)算簡(jiǎn)稱(chēng)為整數(shù)運(yùn)算第二十三頁(yè),共一百四十七頁(yè),2022年,8月28日定點(diǎn)小數(shù)的表示范圍純小數(shù)的表示范圍為(xnxn-1…x0各位均為0時(shí)最?。桓魑痪鶠?時(shí)最大,xn為符號(hào)位)0≤|x|≤1-2-n例如,n=8,最大值編碼:0.11111111 表示:0.11111111=1.0-0.00000001

=1-2-8第二十四頁(yè),共一百四十七頁(yè),2022年,8月28日浮點(diǎn)數(shù)的表示方法把一個(gè)數(shù)的有效數(shù)字和數(shù)的范圍在計(jì)算機(jī)的一個(gè)存儲(chǔ)單元中分別予以表示數(shù)的小數(shù)點(diǎn)位置隨比例因子的不同而在一定范圍內(nèi)自由浮動(dòng)一個(gè)十進(jìn)制數(shù)N可以寫(xiě)成

N=10e×M一個(gè)R進(jìn)制數(shù)N可以寫(xiě)成

N=Re×MM 尾數(shù)e 指數(shù)R

基數(shù)數(shù)的科學(xué)表達(dá)法第二十五頁(yè),共一百四十七頁(yè),2022年,8月28日階碼和尾數(shù)用定點(diǎn)小數(shù)表示,給出有效數(shù)字的位數(shù)決定了浮點(diǎn)數(shù)的表示精度表達(dá)指數(shù)部分用整數(shù)形式表示,指明小數(shù)點(diǎn)在數(shù)據(jù)中的位置決定浮點(diǎn)數(shù)的表示范圍早期計(jì)算機(jī)表達(dá)法EsE階符階碼數(shù)符尾數(shù)MsMn-1…M1M0第二十六頁(yè),共一百四十七頁(yè),2022年,8月28日32位單精度浮點(diǎn)數(shù)E:含階符的階碼,8位階碼采用移碼方式來(lái)表示正負(fù)指數(shù)S:1位符號(hào)位0表示正數(shù)1表示負(fù)數(shù)M:尾數(shù),23位小數(shù)表示,小數(shù)點(diǎn)放在尾數(shù)域最前面IEEE754標(biāo)準(zhǔn)第二十七頁(yè),共一百四十七頁(yè),2022年,8月28日64位雙精度浮點(diǎn)數(shù)E:含階符的階碼,11位S:1位符號(hào)位M:尾數(shù),52位小數(shù)IEEE754標(biāo)準(zhǔn)第二十八頁(yè),共一百四十七頁(yè),2022年,8月28日浮點(diǎn)數(shù)的規(guī)格化例:156.78 =15.678×101 =

1.5678×102 =0.15678×103=RE×M對(duì)于二進(jìn)制數(shù)1011.1101 =0.10111101×2+4 =10.111101×2+2 =1.0111101×2+3(規(guī)格化表示法)

=RE×M那么,計(jì)算機(jī)中究竟采用哪種數(shù)據(jù)形式?多種數(shù)據(jù)形式第二十九頁(yè),共一百四十七頁(yè),2022年,8月28日當(dāng)尾數(shù)不為0,尾數(shù)最高有效位應(yīng)為1,隱藏,并且隱藏在小數(shù)點(diǎn)的左邊,為1.M(即:1≤M<2)。32位單精度浮點(diǎn)數(shù)規(guī)格化表示 x=(-1)s×(1.M)×2E-127 e=E-127(E=e+127)64位雙精度浮點(diǎn)數(shù)規(guī)格化表示 X=(-1)s×(1.M)×2E-1023 e=E-1023(E=e+1023)指數(shù)真值e用偏移碼形式表示為階碼E規(guī)格化表示原則IEEE754標(biāo)準(zhǔn)第三十頁(yè),共一百四十七頁(yè),2022年,8月28日真值0的機(jī)器數(shù)(機(jī)器零)階碼E=0,尾數(shù)M=0正0:S=0,負(fù)0:S=1非規(guī)格化浮點(diǎn)數(shù):階碼E=0,尾數(shù)M≠0規(guī)格化浮點(diǎn)數(shù):階碼E=1~254(11111110)無(wú)窮大的機(jī)器數(shù)階碼E=全1(11111111),尾數(shù)M=0+∞:S=0,-∞:S=1NaN(notanumber,不是一個(gè)數(shù))階碼E=全1(11111111),尾數(shù)M≠0用來(lái)通知異常情況IEEE754標(biāo)準(zhǔn)32位單精度浮點(diǎn)數(shù)第三十一頁(yè),共一百四十七頁(yè),2022年,8月28日E=1(00000001)~254(11111110)e=-126~+127表達(dá)的數(shù)據(jù)范圍(絕對(duì)值):最小值:e=-126,M=0(1.M=1) 十進(jìn)制表達(dá):2-126≈1.18×10-38最大值:e=127,M=11…1(23個(gè)1)

1.M=1.11…1

(23個(gè)1)

=2-2-23

十進(jìn)制表達(dá):(2-2-23)×2127

≈2×2127≈3.40×103832位單精度規(guī)格化浮點(diǎn)數(shù)IEEE754標(biāo)準(zhǔn)第三十二頁(yè),共一百四十七頁(yè),2022年,8月28日浮點(diǎn)數(shù)表示范圍如下圖所示取值范圍負(fù)浮點(diǎn)數(shù):-3.40×1038~~-1.18×10-38正浮點(diǎn)數(shù):1.18×10-38~~3.40×1038第三十三頁(yè),共一百四十七頁(yè),2022年,8月28日E=1~2046e=-1022~+1023表達(dá)的數(shù)據(jù)范圍(絕對(duì)值):

最小值:e=-1022,M=0(1.M=1)十進(jìn)制表達(dá):2-1022≈2.23×10-308

最大值:e=1023,M=11…1(52個(gè)1) 1.M=1.11…1(52個(gè)1)=2-2-52

十進(jìn)制表達(dá):(2-2-52)×21023 ≈2×21023≈1.79×1030864位雙精度規(guī)格化浮點(diǎn)數(shù)IEEE754標(biāo)準(zhǔn)第三十四頁(yè),共一百四十七頁(yè),2022年,8月28日④

X=(-1)s×1.M×2e

=+(1.011011)×23 =+1011.011=(11.375)10②指數(shù)e=階碼-127=10000010-01111111 =00000011=(3)10③包括隱藏位1的尾數(shù)1.M=1.011011例1:浮點(diǎn)機(jī)器數(shù)(41360000)16,求真值①十六進(jìn)制數(shù)展開(kāi)成二進(jìn)制數(shù)01000001001101100000000000000000S階碼E(8位)尾數(shù)M(23位)第三十五頁(yè),共一百四十七頁(yè),2022年,8月28日例2:真值20.59375,求32位單精度浮點(diǎn)數(shù)①分別將整數(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=4S=0E=4+127=131=(10000011)2M=010010011③得到32位浮點(diǎn)數(shù)的二進(jìn)制存儲(chǔ)格式為:0

1000001

101001001100000000000000=(41A4C000)16第三十六頁(yè),共一百四十七頁(yè),2022年,8月28日

十進(jìn)制數(shù)串的表示方法1.字符串形式每個(gè)十進(jìn)制的數(shù)位或符號(hào)位都用一個(gè)字節(jié)存放+12-38-382.壓縮的十進(jìn)制數(shù)串形式一個(gè)字節(jié)存放兩個(gè)十進(jìn)制的數(shù)位,符號(hào)位占半個(gè)字節(jié)(例如用C表示正,D表示負(fù)),放在數(shù)字位后,位數(shù)加符號(hào)位和必須為偶數(shù)。+12123C012D+123-12每個(gè)數(shù)位可用BCD碼或ASCII碼第三十七頁(yè),共一百四十七頁(yè),2022年,8月28日BCD碼(BinaryCodedDecimal)二進(jìn)制編碼的十進(jìn)制數(shù)一個(gè)十進(jìn)制數(shù)位用4位二進(jìn)制編碼來(lái)表示常用8421BCD碼:4位二進(jìn)制編碼表示0~9壓縮BCD碼:一個(gè)字節(jié)表達(dá)兩位BCD碼非壓縮BCD碼:一個(gè)字節(jié)表達(dá)一位BCD碼(低4位表達(dá)數(shù)值,高4位常設(shè)置為0)BCD碼很直觀BCD碼:0100100101111000.000101001001十進(jìn)制真值: 4978.149BCD碼便于輸入輸出,表達(dá)數(shù)值準(zhǔn)確第三十八頁(yè),共一百四十七頁(yè),2022年,8月28日2.1.2數(shù)的機(jī)器碼表示真值:現(xiàn)實(shí)中真實(shí)的數(shù)值機(jī)器數(shù):計(jì)算機(jī)中用0和1數(shù)碼組合表達(dá)的數(shù)值,要解決在計(jì)算機(jī)內(nèi)部數(shù)的正、負(fù)符號(hào)和小數(shù)點(diǎn)運(yùn)算問(wèn)題原碼反碼補(bǔ)碼移碼第三十九頁(yè),共一百四十七頁(yè),2022年,8月28日定點(diǎn)整數(shù)的原碼表示定點(diǎn)整數(shù)的原碼形式為xnxn-1…x1x0

X2n>X≥0

[X]原= 2n-X=2n+|X|0≥X>-2n使用8位二進(jìn)制:[105]10=[01101001]2X=+105,則[X]原=01101001X=-105,則[X]原=111010010使用原碼有兩種表達(dá)形式[+0]原=00000000[-0]原=10000000范圍1-2n~2n–1符號(hào)位第四十頁(yè),共一百四十七頁(yè),2022年,8月28日定點(diǎn)小數(shù)的原碼表示定點(diǎn)小數(shù)的原碼形式為xn.xn-1…x1x0

X

1>X≥0

[X]原= 1-X=1+|X|0≥X>-1使用8位二進(jìn)制表示x=+0.1001,則[X]原=0.1001000x=-0.1001,則[X]原=1.1001000有正0和負(fù)0之分,范圍2-n-1~1-2-n原碼特點(diǎn):表示簡(jiǎn)單,易于同真值之間進(jìn)行轉(zhuǎn)換,實(shí)現(xiàn)乘除運(yùn)算規(guī)則簡(jiǎn)單。進(jìn)行加減運(yùn)算十分麻煩。符號(hào)位第四十一頁(yè),共一百四十七頁(yè),2022年,8月28日定點(diǎn)整數(shù)的補(bǔ)碼有符號(hào)整數(shù)在計(jì)算機(jī)中默認(rèn)采用補(bǔ)碼最高位表示符號(hào):正數(shù)用0,負(fù)數(shù)用1正數(shù)補(bǔ)碼:直接表示數(shù)值大小(=原碼=無(wú)符號(hào)數(shù))負(fù)數(shù)補(bǔ)碼:將對(duì)應(yīng)正數(shù)補(bǔ)碼取反加1補(bǔ)碼性質(zhì)高位表明正負(fù)正數(shù)補(bǔ)碼,尾數(shù)與原碼相同范圍-2n~2n-1(定點(diǎn)整數(shù))無(wú)正零和負(fù)零之分[+0]補(bǔ)=[-0]補(bǔ)=00000000第四十二頁(yè),共一百四十七頁(yè),2022年,8月28日補(bǔ)碼形式定點(diǎn)整數(shù)的補(bǔ)碼形式定點(diǎn)小數(shù)的補(bǔ)碼形式

X

2n>X≥0

[X]補(bǔ)= 2n+1+X=2n+1-|X|0≥X>-2n

X

1>X≥0

[X]補(bǔ)= 2+X0≥X>-1第四十三頁(yè),共一百四十七頁(yè),2022年,8月28日負(fù)數(shù)求補(bǔ)負(fù)數(shù)真值“取反加1”得機(jī)器數(shù)補(bǔ)碼負(fù)數(shù)補(bǔ)碼“取反加1”得到負(fù)數(shù)真值補(bǔ)碼:11100000真值:-([11100000]求反+1)=-(00011111+1)=-00100000=-25=-32設(shè)補(bǔ)碼是[X]補(bǔ)=XnXn-1Xn-2…X1X0其補(bǔ)碼表示的真值是

第四十四頁(yè),共一百四十七頁(yè),2022年,8月28日定點(diǎn)整數(shù)的反碼反碼:二進(jìn)制的各位數(shù)碼0變?yōu)?,1變?yōu)?有符號(hào)整數(shù)采用反碼最高位表示符號(hào):正數(shù)用0,負(fù)數(shù)用1正數(shù)反碼:直接表示數(shù)值大?。ǎ皆a=補(bǔ)碼)負(fù)數(shù)反碼:將對(duì)應(yīng)正數(shù)反碼取反 [105]反碼=01101001 [-105]反碼=[01101001]取反=10010110反碼表示有正0和負(fù)0之分[+0]反=00000000[-0]反=11111111第四十五頁(yè),共一百四十七頁(yè),2022年,8月28日定點(diǎn)整數(shù)的移碼(偏移碼)移碼通常用于表示浮點(diǎn)數(shù)的階碼有符號(hào)整數(shù)采用移碼最高位表示符號(hào):正數(shù)用1,負(fù)數(shù)用0移碼的傳統(tǒng)定義:

[e]移碼=2k+e

2k>X≥-2ke為真值[105]移碼=10000000+1101001=1,1101001[-105]移碼=10000000-1101001=0,0010111相當(dāng)于偏移一半傳統(tǒng)定義與標(biāo)準(zhǔn)浮點(diǎn)數(shù)階碼的定義不同,偏移量是127,指數(shù)e范圍是-127~~+128。第四十六頁(yè),共一百四十七頁(yè),2022年,8月28日[例6]以定點(diǎn)整數(shù)為例,用數(shù)軸形式說(shuō)明原碼、反碼、補(bǔ)碼表示范圍和可能的數(shù)碼組合情況。第四十七頁(yè),共一百四十七頁(yè),2022年,8月28日碼型比較真值原碼反碼補(bǔ)碼移碼-128

1000000000000000-12711111111100000001000000100000001...............-110000001111111101111111101111111-010000000111111110000000010000000+000000000000000000000000010000000+100000001000000010000000110000001...............+12701111111011111110111111111111111第四十八頁(yè),共一百四十七頁(yè),2022年,8月28日例8

設(shè)機(jī)器字長(zhǎng)16位,定點(diǎn)表示,尾數(shù)15位,數(shù)符1位,問(wèn):

(1)

定點(diǎn)原碼整數(shù)表示時(shí),最大正數(shù)是多少?最小負(fù)數(shù)是多少?

(2)定點(diǎn)原碼小數(shù)表示時(shí),最大正數(shù)是多少?最小負(fù)數(shù)是多少?第四十九頁(yè),共一百四十七頁(yè),2022年,8月28日例8解⑴定點(diǎn)原碼整數(shù)表示最大正數(shù)值=(215-1)10=(+32767)10最小負(fù)數(shù)值=-(215-1)10=(-32767)10

⑵定點(diǎn)原碼小數(shù)表示最大正數(shù)值=(+0.111...11)2=(1-2-15)10最小負(fù)數(shù)值=(-0.111..11)2=-(1-2-15)1001111111111111111111111111111111第五十頁(yè),共一百四十七頁(yè),2022年,8月28日例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ù)01111111111111111111111111111111x=[1+(1-2-23)]×2127(2)最小正數(shù)0

0000000

0000

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

1111111

1111

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

0000000000000000000000000000000X=-1.0×2-128第五十一頁(yè),共一百四十七頁(yè),2022年,8月28日數(shù)的機(jī)器碼表示正數(shù)的原碼、反碼、補(bǔ)碼等于真值,只有負(fù)數(shù)才分別有不同的表示方法采用補(bǔ)碼,減法運(yùn)算可以用加法運(yùn)算實(shí)現(xiàn),節(jié)省硬件,目前機(jī)器中廣泛采用補(bǔ)碼表示法有些機(jī)器用原碼進(jìn)行存儲(chǔ)和傳送,運(yùn)算時(shí)改用補(bǔ)碼有些機(jī)器做加減法時(shí)用補(bǔ)碼,做乘除法時(shí)用原碼移碼表示法主要用于表示浮點(diǎn)數(shù)的階碼,可以直接比較大小。表示范圍和補(bǔ)碼相同,只有最高位相反。第五十二頁(yè),共一百四十七頁(yè),2022年,8月28日同一代碼的不同含義一個(gè)代碼,采用不同編碼,其數(shù)值不一樣計(jì)算機(jī)內(nèi)一個(gè)二進(jìn)制數(shù): 10000001不同的含義無(wú)符號(hào)二進(jìn)制數(shù): 1298421BCD碼: 81有符號(hào)整數(shù)的原碼: -1有符號(hào)整數(shù)的反碼: -126有符號(hào)整數(shù)的補(bǔ)碼: -127第五十三頁(yè),共一百四十七頁(yè),2022年,8月28日三種編碼的比較相同點(diǎn):1、三種編碼(原碼、反碼、補(bǔ)碼)的最高位都是符號(hào)位。2、當(dāng)真值為正時(shí),三種編碼的符號(hào)位都用0表示,數(shù)值部分與真值相同。即它們的表示方法是相同的。3、當(dāng)真值為負(fù)時(shí),三種編碼的符號(hào)位都用1表示,但數(shù)值部分的表示各不相同,數(shù)值部分存在這樣的關(guān)系:補(bǔ)碼是原碼的“求反加1”(整數(shù)),或者“求反末位加1”(小數(shù));反碼是原碼的“每位求反”。4、它們所能表示的數(shù)據(jù)范圍基本一樣,-2n<X<2n(整數(shù))或-1<X<1(小數(shù)),補(bǔ)碼多表示一個(gè)數(shù)-2n(整數(shù))或-1(小數(shù))。區(qū)別:在于對(duì)負(fù)數(shù)的表示方法有所不同。第五十四頁(yè),共一百四十七頁(yè),2022年,8月28日ASCII碼(美國(guó)標(biāo)準(zhǔn)信息交換碼)標(biāo)準(zhǔn)ASCII碼用7位二進(jìn)制編碼,有128個(gè)不可顯示的控制字符:前32個(gè)和最后一個(gè)編碼回車(chē)CR:0DH換行LF:0AH響鈴BEL:07H可顯示和打印的字符:20H后的94個(gè)編碼數(shù)碼0~9:30H~39H大寫(xiě)字母A~Z:41H~5AH小寫(xiě)字母a~z:61H~7AH空格:20H擴(kuò)展ASCII碼:最高D7位為1,表達(dá)制表符號(hào)第五十五頁(yè),共一百四十七頁(yè),2022年,8月28日表2.1ASCII字符編碼表000000010010001101000101011001110000NULDELSP0@P`p0001SOHDC1!1AQaq0010STXDC2"2BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111BELETB'7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;K[k{1100FFFS,<L\1|1101CRGS-=M]m}1110SORS.>N^n~1111SIUS/?O_oDEL0-3位4-7位第五十六頁(yè),共一百四十七頁(yè),2022年,8月28日20H42H3EH41H54H20H46H49H存儲(chǔ)器地址低地址高地址字符串的表示方法字符串是指連續(xù)的一串字符,通常占用主存中連續(xù)的多個(gè)字節(jié),每個(gè)字節(jié)存一個(gè)字符。

IFA>BTHENREAD(C)從低位字節(jié)向高位字節(jié)的順序存放20H42H3EH41H54H20H46H49H存儲(chǔ)器地址高地址低地址從高位字節(jié)向低位字節(jié)的順序存放第五十七頁(yè),共一百四十七頁(yè),2022年,8月28日小端方式和大端方式多字節(jié)數(shù)據(jù)通常也連續(xù)存放在主存,占用多個(gè)連續(xù)的字節(jié)存儲(chǔ)單元小端方式(LittleEndian)低字節(jié)數(shù)據(jù)存放在低地址存儲(chǔ)單元高字節(jié)數(shù)據(jù)存放在高地址存儲(chǔ)單元大端方式(BigEndian)低字節(jié)數(shù)據(jù)存放在高地址存儲(chǔ)單元高字節(jié)數(shù)據(jù)存放在低地址存儲(chǔ)單元第五十八頁(yè),共一百四十七頁(yè),2022年,8月28日32位數(shù)據(jù)的存儲(chǔ)方式32位數(shù)據(jù)(4個(gè)字節(jié)):12345678H主存以字節(jié)為單位,每個(gè)存儲(chǔ)單元具有一個(gè)存儲(chǔ)器地址,其中存放一個(gè)字節(jié)數(shù)據(jù)(8位)120378340256560134780012地址小端方式大端方式第五十九頁(yè),共一百四十七頁(yè),2022年,8月28日漢字的輸入編碼數(shù)字編碼國(guó)標(biāo)區(qū)位碼,用數(shù)字串代表一個(gè)漢字輸入GB2312-80簡(jiǎn)化字編碼GB12345-90繁體字ISO10646中、日、韓、蒙、藏、彝、維等多文種并存拼音碼以漢字拼音為基礎(chǔ)的輸入方法優(yōu)點(diǎn):容易掌握缺點(diǎn):同音字多、重碼率高,輸入效率低字形編碼用漢字的形狀(筆劃)來(lái)進(jìn)行的編碼例如五筆字形優(yōu)點(diǎn):重碼少,不受方言限制,效率高缺點(diǎn):需記憶東西多第六十頁(yè),共一百四十七頁(yè),2022年,8月28日漢字交換碼漢字交換碼是不同的漢字處理系統(tǒng)之間交換信息用的編碼漢字也是一種字符1981年我國(guó)制定了《信息交換用漢字編碼字符集基本集GB2312-80》國(guó)家標(biāo)準(zhǔn)(簡(jiǎn)稱(chēng)國(guó)標(biāo)碼)。每個(gè)漢字的二進(jìn)制編碼用兩個(gè)字節(jié)表示。共收錄一級(jí)漢字3755個(gè),二級(jí)漢字3008個(gè),各種符號(hào)682個(gè),共計(jì)7445個(gè)。第六十一頁(yè),共一百四十七頁(yè),2022年,8月28日漢字內(nèi)碼漢字內(nèi)碼是用于漢字信息的存儲(chǔ)、檢索等操作的機(jī)內(nèi)代碼,一般采用兩個(gè)字節(jié)表示漢字內(nèi)碼有多種方案,常以國(guó)標(biāo)碼為基礎(chǔ)的編碼例如,將國(guó)標(biāo)碼兩字節(jié)的最高位置1后形成漢字“啊”的國(guó)標(biāo)碼

3021H(0011000000100001)對(duì)應(yīng)的漢字內(nèi)碼B0A1H(1011000010100001)第六十二頁(yè),共一百四十七頁(yè),2022年,8月28日字模碼漢字的字模碼為:16位×16位=32字節(jié)漢字字模點(diǎn)陣及編碼第六十三頁(yè),共一百四十七頁(yè),2022年,8月28日漢字的表示方法漢字的輸入編碼、交換碼、漢字內(nèi)碼、字模碼是計(jì)算機(jī)中用于輸入、內(nèi)部處理、交換、輸出四種不同用途的編碼,不要混為一談

顯示輸出打印輸出機(jī)內(nèi)碼向字形碼轉(zhuǎn)換機(jī)內(nèi)碼輸入碼向機(jī)內(nèi)碼轉(zhuǎn)換字符代碼化(輸入)第六十四頁(yè),共一百四十七頁(yè),2022年,8月28日校驗(yàn)碼校驗(yàn)碼:能夠發(fā)現(xiàn)甚至糾正信息傳輸或存儲(chǔ)過(guò)程中出現(xiàn)錯(cuò)誤的編碼檢錯(cuò)碼:僅能檢測(cè)出錯(cuò)誤的編碼糾錯(cuò)碼:能夠發(fā)現(xiàn)并糾正錯(cuò)誤的編碼最簡(jiǎn)單且應(yīng)用廣泛的檢錯(cuò)碼:奇偶校驗(yàn)碼奇校驗(yàn):使包括校驗(yàn)位在內(nèi)的數(shù)據(jù)中為“1”的個(gè)數(shù)恒為奇數(shù)偶校驗(yàn):使包括校驗(yàn)位在內(nèi)的數(shù)據(jù)中為“1”的個(gè)數(shù)恒為偶數(shù)(包括0)只能檢測(cè)出奇數(shù)個(gè)位出錯(cuò)的情況,不能糾錯(cuò)。第六十五頁(yè),共一百四十七頁(yè),2022年,8月28日例10:用奇校驗(yàn)和偶校驗(yàn)進(jìn)行編碼數(shù)據(jù)1010101001010100000000000111111111111111偶校驗(yàn)碼101010100010101001000000000011111111111111110奇校驗(yàn)碼101010101010101000000000001011111110111111111第六十六頁(yè),共一百四十七頁(yè),2022年,8月28日計(jì)算機(jī)的數(shù)據(jù)表示整數(shù)編碼定點(diǎn)數(shù),無(wú)符號(hào)數(shù),有符號(hào)數(shù)(補(bǔ)碼),BCD實(shí)數(shù)編碼浮點(diǎn)數(shù),單精度,雙精度,規(guī)格化字符編碼:ASCII碼漢字編碼輸入碼,機(jī)內(nèi)碼,交換碼,字形碼國(guó)際字符編碼:Unicode編碼:用文字、符號(hào)或者數(shù)碼來(lái)表示某種信息(數(shù)值、語(yǔ)言、操作指令、狀態(tài))的過(guò)程第六十七頁(yè),共一百四十七頁(yè),2022年,8月28日練習(xí)1.代碼(BE580000)16是采用單精度格式保存的浮點(diǎn)數(shù),求其十進(jìn)制真值。2.有一個(gè)十進(jìn)制數(shù)100.25,請(qǐng)將它轉(zhuǎn)換成單精度浮點(diǎn)數(shù)格式。第六十八頁(yè),共一百四十七頁(yè),2022年,8月28日運(yùn)算方法和運(yùn)算器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)算器第六十九頁(yè),共一百四十七頁(yè),2022年,8月28日2.2定點(diǎn)加法、減法運(yùn)算補(bǔ)碼加法公式:[x+y]補(bǔ)=[x]補(bǔ)+[y]補(bǔ)證明:現(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ǔ)=2n+1+y,[x]補(bǔ)+[y]補(bǔ)=2n+1+(x+y)=[x+y]補(bǔ)第七十頁(yè),共一百四十七頁(yè),2022年,8月28日(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ǔ)=2n+1+x,[y]補(bǔ)=2n+1+y∴[x]補(bǔ)+[y]補(bǔ)=2n+1+x+2n+1+y=2n+1+(2n+1+x+y)=[x+y]補(bǔ)第七十一頁(yè),共一百四十七頁(yè),2022年,8月28日例11:x=+1001,y=+0101,求x+y[x]補(bǔ)=01001,[y]補(bǔ)=00101

[x]補(bǔ)

01001+[y]補(bǔ)

00101[x+y]補(bǔ)

01110所以x+y=+1110

第七十二頁(yè),共一百四十七頁(yè),2022年,8月28日例12:x=+1011,y=-0101,求x+y[x]補(bǔ)=01011,[y]補(bǔ)=11011

[x]補(bǔ)

01011

+[y]補(bǔ)

11011[x+y]補(bǔ)

100110所以x+y=+0110第七十三頁(yè),共一百四十七頁(yè),2022年,8月28日補(bǔ)碼減法減法運(yùn)算公式:

[x-y]補(bǔ)=[x]補(bǔ)-[y]補(bǔ)=[x]補(bǔ)+[-y]補(bǔ)只需證明公式:-[y]補(bǔ)=[-y]補(bǔ)證明如下因?yàn)椋篬x+y]補(bǔ)=[x]補(bǔ)+[y]補(bǔ)所以:[y]補(bǔ)=[x+y]補(bǔ)-[x]補(bǔ)(式1)又[x-y]補(bǔ)=[x+(-y)]補(bǔ)=[x]補(bǔ)+[-y]補(bǔ)所以[-y]補(bǔ)=[x-y]補(bǔ)-[x]補(bǔ)(式2)將(式1)與(式2)相加,得

[y]補(bǔ)+[-y]補(bǔ)=[x+y]補(bǔ)+[x-y]補(bǔ)-[x]補(bǔ)-[x]補(bǔ)=[x+y+x-y]補(bǔ)-[x]補(bǔ)-[x]補(bǔ)=0故-[y]補(bǔ)=[-y]補(bǔ)(mod2n+1)第七十四頁(yè),共一百四十七頁(yè),2022年,8月28日法則從[y]補(bǔ)求[-y]補(bǔ)法則是:對(duì)[y]補(bǔ)包括符號(hào)位“求反且末位加1”公式:[-y]補(bǔ)=﹁[y]補(bǔ)+2-n“﹁”意義是對(duì)[y]補(bǔ)做包含符號(hào)位在內(nèi)的取反操作,2-n表示末位加1.如:y=0.0111[y]補(bǔ)=0.0111[-y]補(bǔ)=1.1001

第七十五頁(yè),共一百四十七頁(yè),2022年,8月28日解:[x1]補(bǔ)=10010[-x1]補(bǔ)=﹁[x1]補(bǔ)+2-4

=01101+00001=01110[x2]補(bǔ)=01101[-x2]補(bǔ)=﹁[x2]補(bǔ)+2-4

=10010+00001=10011

例13:

已知x1=-1110,x2=+1101

求:[x1]補(bǔ),[-x1]補(bǔ),[x2]補(bǔ),[-x2]補(bǔ)第七十六頁(yè),共一百四十七頁(yè),2022年,8月28日例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ǔ)

100111所以x-y=+0111第七十七頁(yè),共一百四十七頁(yè),2022年,8月28日

溢出概念與檢驗(yàn)方法兩個(gè)正數(shù)相加,結(jié)果為負(fù)(即:大于機(jī)器所能表示的最大正數(shù)),稱(chēng)為上溢。兩個(gè)負(fù)數(shù)相加,結(jié)果為正(即:小于機(jī)器所能表示的最小負(fù)數(shù)),稱(chēng)為下溢。運(yùn)算出現(xiàn)溢出,結(jié)果就是錯(cuò)誤的第七十八頁(yè),共一百四十七頁(yè),2022年,8月28日[例15]

x=+1011,y=+1001,求x+y。[解:]

[x]補(bǔ)=01011,[y]補(bǔ)=0.1001[x]補(bǔ)

01011+[y]補(bǔ)

01001[x+y]補(bǔ)

10100兩正數(shù)相加,結(jié)果為負(fù),顯然錯(cuò)誤。

--運(yùn)算中出現(xiàn)了“正溢”第七十九頁(yè),共一百四十七頁(yè),2022年,8月28日[例16]x=-1101,y=-1011,求x+y。[解:]

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

10011

+[y]補(bǔ)

10101[x+y]補(bǔ)

01000兩負(fù)數(shù)相加,結(jié)果為正,顯然錯(cuò)誤。--運(yùn)算中出現(xiàn)了“負(fù)溢”第八十頁(yè),共一百四十七頁(yè),2022年,8月28日產(chǎn)生“溢出”的原因:分析可知,當(dāng)最高有效數(shù)值位的運(yùn)算進(jìn)位與符號(hào)位的運(yùn)算進(jìn)位不一致時(shí),將產(chǎn)生運(yùn)算“溢出”進(jìn)一步結(jié)論:

當(dāng)最高有效位產(chǎn)生進(jìn)位而符號(hào)位無(wú)進(jìn)位時(shí),產(chǎn)生正溢;當(dāng)最高有效位無(wú)進(jìn)位而符號(hào)位有進(jìn)位時(shí),產(chǎn)生負(fù)溢。第八十一頁(yè),共一百四十七頁(yè),2022年,8月28日“溢出”檢測(cè)方法:

為了判斷“溢出”是否發(fā)生,可采用兩種檢測(cè)的方法。第一種方法:采用雙符號(hào)位法,稱(chēng)為“變形補(bǔ)碼”或“模4補(bǔ)碼”,可使模2補(bǔ)碼所能表示的數(shù)的范圍擴(kuò)大一倍。

x2>x≥0[x]補(bǔ)=4+x0≥x>-2Sf1Sf200正確(正數(shù))01正溢 10負(fù)溢11正確(負(fù)數(shù))Sf1和

Sf2表示最高符號(hào)位和第二符號(hào)位,溢出邏輯表達(dá)式為V=Sf1⊕Sf2,可以用異或門(mén)來(lái)實(shí)現(xiàn)。第八十二頁(yè),共一百四十七頁(yè),2022年,8月28日第二種溢出檢測(cè)方法:采用“單符號(hào)位法”。當(dāng)最高有效位產(chǎn)生進(jìn)位而符號(hào)位無(wú)進(jìn)位時(shí),產(chǎn)生正溢;當(dāng)最高有效位無(wú)進(jìn)位而符號(hào)位有進(jìn)位時(shí),產(chǎn)生負(fù)溢。故:溢出邏輯表達(dá)式為:

V=Cf⊕Co其中:

Cf為符號(hào)位產(chǎn)生的進(jìn)位,Co為最高有效位產(chǎn)生的進(jìn)位。(顯然:此邏輯關(guān)系可用異或門(mén)方便地實(shí)現(xiàn))

在定點(diǎn)機(jī)中,當(dāng)運(yùn)算結(jié)果發(fā)生溢出時(shí),機(jī)器通過(guò)邏輯電路自動(dòng)檢查出溢出故障,并進(jìn)行中斷處理。第八十三頁(yè),共一百四十七頁(yè),2022年,8月28日2.2.4基本的二進(jìn)制加法/減法器在計(jì)算機(jī)中完成兩個(gè)二進(jìn)制數(shù)相加的基本加法器有半加器和全加器。半加器在完成兩數(shù)相加時(shí),不需要考慮低位進(jìn)位。全加器用來(lái)完成兩個(gè)二進(jìn)制數(shù)相加,并且同時(shí)考慮低位的進(jìn)位,即全加器完成三個(gè)一位數(shù)相加的功能。設(shè):

Ai表示被加數(shù)的第i位Bi表示加數(shù)的第i位Ci為第i-1位向第i位產(chǎn)生的進(jìn)位Ci+1為第i位向第i+1位產(chǎn)生的進(jìn)位Si為第i位產(chǎn)生的和則全加器以Ai、Bi、Ci為輸入,以Ci+1、Si為輸出構(gòu)成一個(gè)邏輯圖。第八十四頁(yè),共一百四十七頁(yè),2022年,8月28日2.2.4基本的二進(jìn)制加法/減法器全加器邏輯圖CiAiBiSiCi+1FACiAiBiSiCi+1輸出輸入0110100001101000100010100010111010111111表2-2全加器真值表第八十五頁(yè),共一百四十七頁(yè),2022年,8月28日2.2.4基本的二進(jìn)制加法/減法器全加器的表達(dá)式為:

Si=AiBiCi

Ci+1=AiBi+BiCi+AiCi=AiBi+(AiBi)Ci=一位全加器內(nèi)部邏輯圖

BCABCASiCi+1AiBiCi第八十六頁(yè),共一百四十七頁(yè),2022年,8月28日2.2.4基本的二進(jìn)制加法/減法器利用全加器可以實(shí)現(xiàn)兩數(shù)的和或差1、串行加法:從低位開(kāi)始,每步只完成一位運(yùn)算的加法。串行加法器只需要一個(gè)全加器和一個(gè)進(jìn)位觸發(fā)器計(jì)算兩個(gè)n位數(shù)之和,需要n+1步(1位符號(hào)位),或n+2步(2位符號(hào)位)運(yùn)算。高位運(yùn)算只有等低位運(yùn)算完成后才能進(jìn)行,速度較慢2、并行加法器:可在同一時(shí)刻完成n位數(shù)的運(yùn)算。若采用變形補(bǔ)碼表示一個(gè)機(jī)器數(shù),則符號(hào)位需2位,這時(shí)需要n+2個(gè)加法器。運(yùn)算速度比串行進(jìn)位加法器高很多,這是用足夠多的硬件設(shè)備換來(lái)的第八十七頁(yè),共一百四十七頁(yè),2022年,8月28日2.2.4基本的二進(jìn)制加法/減法器圖2-2

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

FAS0S1Sn-1Bs1As1Bs2As2Cs2Cs1Ss2Ss1Bn-1An-1Cn-1Cn-2B1A1B0A0C1C2C0溢出M方式控制M=1減M=0加

FA

FA

FA

FA第八十八頁(yè),共一百四十七頁(yè),2022年,8月28日2.3定點(diǎn)乘法運(yùn)算實(shí)現(xiàn)乘除法運(yùn)算的方案:1、當(dāng)使用乘除運(yùn)算較多,速度要求高時(shí),用硬件直接實(shí)現(xiàn);2、一般情況,配置乘除法選件;3、對(duì)速度要求不高的機(jī)器,用軟件實(shí)現(xiàn)。第八十九頁(yè),共一百四十七頁(yè),2022年,8月28日2.3.1原碼一位乘法

(1/5)算法描述設(shè)[X]原=Xs.Xn-1Xn-2…Xi…X1X0=Xs.Xv[Y]原=Ys.Yn-1Yn-2…Yi…Y1Y0=Ys.Yv則乘積[Z]原=Zs.Zv=(Xs⊕

Ys).(Xv×Yv)運(yùn)算步驟(1)從乘數(shù)的最低位開(kāi)始,用乘數(shù)B的每個(gè)二進(jìn)制位去乘被乘數(shù)A,若B的某個(gè)二進(jìn)制位為1,則得位積A;如為0,則得位積0。(2)B的各位分別乘以A的所得的位積,因?yàn)槲粰?quán)不同,逐次向左移位,即在空間上按一定位數(shù)錯(cuò)開(kāi),這樣逐位進(jìn)行下去,直到乘數(shù)各位都乘完為止。(3)把經(jīng)過(guò)移位對(duì)準(zhǔn)的各次位積(部分積)相加起來(lái)即得結(jié)果。第九十頁(yè),共一百四十七頁(yè),2022年,8月28日2.3.1原碼一位乘法(2/5)缺點(diǎn)(1)將多個(gè)數(shù)一次相加,機(jī)器難以實(shí)現(xiàn)。一般的加法器,只能把兩個(gè)輸入數(shù)相加,多個(gè)位積的同時(shí)輸入是無(wú)法實(shí)現(xiàn)的。(2)乘積位數(shù)增長(zhǎng)了一倍,即2n,而機(jī)器字長(zhǎng)只有n位。改進(jìn)(a)把一次求和的操作,變成逐步累加求部分積的操作(b)將求積過(guò)程中逐位按權(quán)左移位積的操作,改為位積不動(dòng),而是上次部分積右移的操作第九十一頁(yè),共一百四十七頁(yè),2022年,8月28日2.3.1原碼一位乘法(3/5)手算方法例如求A=0.1101和B=0.0110的乘積機(jī)器算法若用Zi表示第i次部分積,則Z0=0Z1=2-1(BnA+Z0)Z2=2-1(Bn-1A+Z1)

…Zi=2-1(Bn-i+1A+Zi-1)

…Zn=2-1(B1A+Zn-1)Zn即為A和B的乘積,即A·B=Z=0.Z1Z2…Zn第九十二頁(yè),共一百四十七頁(yè),2022年,8月28日2.3.1原碼一位乘法

(4/5)例題已知X=-0.1011,Y=0.1001,求[X×Y]原解:[X]原=1.1011,[Y]原=0.1001|X|=0.1011,|Y|=0.1001按原碼一位乘法運(yùn)算規(guī)則,求[X×Y]原的數(shù)值部分。|X|×|Y|=0.01100011,而Zs=Xs⊕

Ys=1⊕0=1最后求得[X×Y]原=1.01100011第九十三頁(yè),共一百四十七頁(yè),2022年,8月28日例題之原碼一位乘法運(yùn)算過(guò)程例原碼一位乘法運(yùn)算過(guò)程+)0.0000+)0.0000+)0.1011+)0.10110.00010.01100.11000.00100.00100.01010.01010.10110.0000右移一位得部分積Z4,乘數(shù)同時(shí)右移一位右移一位得部分積Z3,乘數(shù)同時(shí)右移一位右移一位得部分積Z2,乘數(shù)同時(shí)右移一位右移一位得部分積Z1,乘數(shù)同時(shí)右移一位Y1=1,加|X|Y2=0,加0Y3=0,加0設(shè)部分積初值Z0=0,Y4=1,加|X|操作說(shuō)明乘數(shù)部分積0.100110.100110.100110.100110.低位積高位積第九十四頁(yè),共一百四十七頁(yè),2022年,8月28日定點(diǎn)原碼乘法原理[x]原=xf.xn-1…x1x0

[y]原=yf.yn-1…y1y0[x.y]原=(xf⊕yf)+(0.xn-1…x1x0).(0.yn-1…y1y0)尾數(shù)乘法如下:設(shè)x=0.1101,y=0.1011

0.1

1

01(x)

×

0.10

1

1

(y)110111010000+11010

0.10001111

(z)第九十五頁(yè),共一百四十七頁(yè),2022年,8月28日設(shè)x=0.1101,y=0.1011求x×y

部分積 乘數(shù)部分積初始化為0 0.0000 01011部分積右移,前面補(bǔ)0

+X 0.1101乘數(shù)最低位為1,加上被乘數(shù) ------------------------------------------ 01101 01011部分積右移,前面補(bǔ)0 0.0110 10101乘數(shù)最低位為1,加上被乘數(shù) +X 01101 ------------------------------------------ 10011 10101部分積右移,前面補(bǔ)0 01001 11010乘數(shù)最低位為0,加上0 +0 00000 ------------------------------------------ 01001 11010部分積右移,前面補(bǔ)0 00100 1110

1乘數(shù)最低位為1,加上被乘數(shù) +X 01101 ------------------------------------------ 10001 11101部分積右移,前面補(bǔ)0 0.1000 11110運(yùn)算四次結(jié)束,數(shù)值部分運(yùn)算第九十六頁(yè),共一百四十七頁(yè),2022年,8月28日2、不帶符號(hào)位的陣列乘法器第九十七頁(yè),共一百四十七頁(yè),2022年,8月28日5×5不帶符號(hào)位的陣列乘法器第九十八頁(yè),共一百四十七頁(yè),2022年,8月28日3.帶符號(hào)位的陣列乘法器求補(bǔ)電路見(jiàn)下圖第九十九頁(yè),共一百四十七頁(yè),2022年,8月28日帶符號(hào)的陣列乘法器求補(bǔ)電路小結(jié)E=0時(shí),輸入和輸出相等E=1時(shí),則從數(shù)最右端往左邊掃描,直到第一個(gè)1的時(shí)候,該位和右邊各位保持不變0⊕A=A,左邊各數(shù)值位按位取反1⊕A=乛A可以用符號(hào)作為E的輸入原:1.11110補(bǔ):1.00010時(shí)間延遲分析:轉(zhuǎn)換n+1位帶符號(hào)的時(shí)間延遲為t=n*2T+5T,其中n*2T為或門(mén)延遲時(shí)間,5T為最高位與門(mén)和異或門(mén)的時(shí)延。第一百頁(yè),共一百四十七頁(yè),2022年,8月28日帶符號(hào)的陣列乘法器(間接法)第一百零一頁(yè),共一百四十七頁(yè),2022年,8月28日帶符號(hào)的陣列乘法器(間接法)原理:算前求補(bǔ)-乘法器-算后求補(bǔ)算前求補(bǔ)器:將兩個(gè)操作數(shù)A和B在被不帶符號(hào)的乘法陣列相乘以前,先變成正整數(shù)。算后求補(bǔ)器:當(dāng)兩個(gè)輸入操作數(shù)的符號(hào)不一致時(shí),把運(yùn)算結(jié)果變換成帶符號(hào)的數(shù)。第一百零二頁(yè),共一百四十七頁(yè),2022年,8月28日舉例(P36)例20用帶求補(bǔ)器原碼乘法器(輸入/出:為原碼)Y=(+15)×(-13)例21用帶求補(bǔ)器補(bǔ)碼乘法器(輸入/出:為補(bǔ)碼)Y=(-15)×(-13)第一百零三頁(yè),共一百四十七頁(yè),2022年,8月28日2.4定點(diǎn)除法運(yùn)算2.4.1原碼除法算法原理

主要內(nèi)容:原碼一位除法設(shè)被除數(shù)[X]原=Xf.Xn-1Xn-2…Xi…X1X0除數(shù)[Y]原=Yf.Yn-1Yn-2…Yi…Y1Y0則商[Z]原=X/Y=(Xf⊕Yf)+(0.Xn-1Xn-2…Xi…X1X0/0.Yn-1Yn-2…Yi…Y1Y0)

兩個(gè)原碼表示的數(shù)相除時(shí)商的符號(hào)由兩數(shù)的符號(hào)“異或”求得,即同號(hào)時(shí)為正,異號(hào)為負(fù)。商的數(shù)值可由兩數(shù)的絕對(duì)值相除求得。第一百零四頁(yè),共一百四十七頁(yè),2022年,8月28日2.4.1原碼一位除法手算:假設(shè)被除數(shù)X=0.1001,除數(shù)Y=0.1011,計(jì)算X/Y

0.1101 商Q0.1011

/-----------------------------------

/0.10010 X(R0)-0.01011 2-1Y,除數(shù)右移一位,減除數(shù)--------------------------------0.001110 R1-

0.0010112-2Y,除數(shù)右移一位,減除數(shù)

----------------------------------0.0000110 R20.0001011 2-3Y,除數(shù)右移一位,不減----------------------------------0.00001100 R3-

0.00001011 2-4Y,除數(shù)右移一位,減除數(shù)

----------------------------------0.00000001 R4

得商X/Y=0.1101,余數(shù)=R4=0.00000001第一百零五頁(yè),共一百四十七頁(yè),2022年,8月28日2.4.1原碼一位除法筆算特點(diǎn):(1)每次都是由心算來(lái)比較余數(shù)和除數(shù)的大小,余數(shù)大時(shí),商1;余數(shù)小時(shí),商0。第一次比較時(shí),余數(shù)就是被除數(shù)。(2)每做一次減法,總是保持余數(shù)不動(dòng),而除數(shù)向右移一位。(3)商的符號(hào)單獨(dú)處理。為適應(yīng)機(jī)器運(yùn)算,需要進(jìn)行改進(jìn):(1)用補(bǔ)碼加代替直接減(兩個(gè)符號(hào)位)(2)除數(shù)右移改為余數(shù)左移。

第一百零六頁(yè),共一百四十七頁(yè),2022年,8月28日2.4.1原碼一位除法-恢復(fù)余數(shù)法原碼恢復(fù)余數(shù)法與筆算除法極相似,只是處理方法有些不同。(1)比較余數(shù)和除數(shù)的大小,計(jì)算機(jī)是通過(guò)用余數(shù)減去除數(shù)求得差值,然后通過(guò)差值進(jìn)行判定。當(dāng)差值大于0時(shí),商上1;當(dāng)差值小于0時(shí),商上0。(2)減去除數(shù)的運(yùn)算,機(jī)器可用加上除數(shù)的補(bǔ)碼機(jī)器負(fù)數(shù)的方式轉(zhuǎn)換為加法運(yùn)算。另外,當(dāng)差值小于0時(shí),商上“0”,不夠減,多減去了除數(shù),還必須加上除數(shù),重新恢復(fù)原來(lái)的余數(shù)。(3)筆算中,每做一次減法,除數(shù)右移一位。第一百零七頁(yè),共一百四十七頁(yè),2022年,8月28日2.4.1原碼一位除法-加減交替法原碼加減交替法的規(guī)則:當(dāng)余數(shù)為正時(shí),商上1,余數(shù)左移一位,減除數(shù)絕對(duì)值得新余數(shù);當(dāng)余數(shù)為負(fù)時(shí),商上0,余數(shù)左移一位,加除數(shù)絕對(duì)值得新余數(shù)。證明: 若被除數(shù)為X,除數(shù)Y,當(dāng)上商操作進(jìn)行到第i位商數(shù)時(shí),設(shè)余數(shù)為Ri,則有下式:

Ri=2Ri-1+(-|Y|)(1)

若Ri≥0,則該位商上“1”,下一步操作是:Ri+1=2Ri+(-|Y|)(2)若Ri<0,則該位商上“0”,下一步恢復(fù)余數(shù):Rj=Ri+|Y|,然后,Ri+1=2Rj+(-|Y|)=2(Ri+|Y|)+(-|Y|)=2Ri+|Y|第一百零八頁(yè),共一百四十七頁(yè),2022年,8月28日[例23]x=0.101001,y=0.111,求x÷y。[解:][x]補(bǔ)=0.101001[y]補(bǔ)=0.111[-y]補(bǔ)=1.001

被除數(shù)x0.101001

減y1.001

+[-y]補(bǔ)余數(shù)為負(fù)1.110001<0q0=0

加y0.0111

+[y]補(bǔ)余數(shù)為正0.001101>0q1=1

減y1.11001

+[-y]補(bǔ)余數(shù)為負(fù)1.111111<0q2=0

加y0.000111

+[y]補(bǔ)余數(shù)為正0.000110>0q3=1

故得商q=q0.q1q2q3=0.101

余數(shù)r=(0.00r3r4r5r6)=0.000110第一百零九頁(yè),共一百四十七頁(yè),2022年,8月28日2.4.2并行除法器(可控加法/減法單元)可控的加法/減法單元CAS單元P=0,作加法運(yùn)算P=1,作減法運(yùn)算Si=Ai⊕(Bi⊕P)⊕CiCi+1=(Ai+Ci)·(Bi⊕P)+AiCi第一百一十頁(yè),共一百四十七頁(yè),2022年,8月28日第一行:P=1減法運(yùn)算;除數(shù)右代替部分積左依被除數(shù)x=0.x6x5x4x3x2x1除數(shù)y=0.y3y2y1商Q=0.q3q2q1余數(shù)R=0.00r6r5r4r3字長(zhǎng)n+1=4不恢復(fù)余數(shù)算法第一百一十一頁(yè),共一百四十七頁(yè),2022年,8月28日2.5定點(diǎn)運(yùn)算器的組成運(yùn)算器是數(shù)據(jù)的加工處理部件,是CPU的重要組成部分;最基本的結(jié)構(gòu)中包含:算術(shù)/邏輯運(yùn)算單元、數(shù)據(jù)緩存寄存器、通用寄存器、多路轉(zhuǎn)換器數(shù)據(jù)總線(xiàn)等邏輯構(gòu)件。第一百一十二頁(yè),共一百四十七頁(yè),2022年,8月28日2.5.1邏輯運(yùn)算計(jì)算機(jī)中除了進(jìn)行加、減、乘、除等基本算術(shù)運(yùn)算外,還可對(duì)兩個(gè)或一個(gè)邏輯數(shù)進(jìn)行邏輯運(yùn)算。所謂邏輯數(shù)是指不帶符號(hào)的二進(jìn)制數(shù)。利用邏輯運(yùn)算可以進(jìn)行兩個(gè)數(shù)的比較,或者從某個(gè)數(shù)中選取某幾位等操作。主要有邏輯非(反)、邏輯加(或)、邏輯乘(與)、邏輯異或四種基本運(yùn)算。第一百一十三頁(yè),共一百四十七頁(yè),2022年,8月28日2.5.2多功能算術(shù)/邏輯運(yùn)算單元全加器的表達(dá)式為:Si=AiBiCi

Ci+1=AiBi+BiCi+AiCi一位全加器內(nèi)部邏輯圖

BCSiCi+1ABCAAiBiCi第一百一十四頁(yè),共一百四十七頁(yè),2022年,8月28日加法器FA、減法單元CAS和一位ALU邏輯圖一位ALU邏輯圖第一百一十五頁(yè),共一百四十七頁(yè),2022年,8月28日ALU的邏輯圖與邏輯表達(dá)式S0S1

Yi

S2S3

Xi

0

溫馨提示

  • 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)論