計算機原理及系統結構_第1頁
計算機原理及系統結構_第2頁
計算機原理及系統結構_第3頁
計算機原理及系統結構_第4頁
計算機原理及系統結構_第5頁
已閱讀5頁,還剩60頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

吉林大學遠程教育學院

計算機原理及系統結構

第六講

主講教師:趙宏偉學時:64

第3#

數據表示、數據運算算法

和邏輯電路實現

4#:要佝客

I

⑥信息編碼、碼制轉換與檢錯糾錯碼

>數據表示——常用的信息編碼:

⑥二進制數值數據的編碼與運算算法

數字化編碼二要素

數值文字符號語音圖形圖像等統稱數據,

在計算機內部,都必須用數字化編碼的形式

被存儲加工和傳送

數字化編碼二要素:

①少量簡單的基本符號

②一定的組合規則

用以表示大量復雜多樣的信息

P62

基二碼(二進制碼)

只使用兩個基本點符號:10

符號個數最少,物理上容易實現

與二值邏輯的真假兩個值對應簡單

用二進制碼表示數值數據運算規則簡單

P63

進位記數法與進制轉換

進位記數法

N=2ZQ*r

N代表一個數值i=m-l

r是這個數制的基(Radix)

i表示這些符號排列的位號

D,是位號為i的位上的一個符號

1

r1是位號為i的位上的一個1代表的值

Di*ri是第i位的所代表的實際值

)表示m+k位的值求累加和

P64

十進制轉二進制

整數部分除2取余小數部分乘2取整

2|11------1低0.625*2

215——--j高]0.25*2

212-----------0.00?5*2

21————1In]低]

0

除盡為止求得位數滿足要求為止

從二進制數求其十進制的值,逐位碼權累加求和

P65

二到八或十六進制轉換

二到八從小數點向左右三位-■*分組

(10011100.01)2=(234.2)8

010

二到十六從小數點向左右四位一分組

(10011100.01)=(9C.4)

乙2160

0100

說明:整數部分不足位數對轉換無影響,

小數部分不足位數要補零湊足,否則出錯。

P67

吉林大學遠程教育學院

計算機原理及系統結構

第七講

主講教師:趙宏偉學時:64

二進制數據算術運算規則

(1)加法運算規則

0+0=0例如:0101

0+1=1+)0001

1+0=10110

1+1=0并產生進位

(2)減法運算規則

0-0=0例如:1011

0-1=1并產生借位-)0101

1-0=10110

1-1=0

二進制數據算術運算規則

(3)乘法運算規則例如:1101

0X0=0X)0101

0X1=0

1X0=01101

1X1=11000001

(4)除法運算規則

1101例如:1110101/1001

1001/1110101

/1001

1011

1001

01001

1001

0

P68

二進制數據邏輯運算規則

(5)邏輯或運算規則(7)邏輯非運算規則

ovo=o70=1

0V1=1/1=0

0000

1V0=1

1V1=1

(6)邏輯與運算規則(8)邏輯異或運算規則

0A0=00十0=0

0A1=00十1=1

1A0=01十0=1

1A1=11十1=0

吉林大學遠程教育學院

計算機原理及系統結構

第八講

主講教師:趙宏偉學時:64

檢錯糾錯碼

為了提高計算機的可靠性,除了采

取選用更高可靠性的器件,更好的生產

工藝等措施之外,還可以從數據編碼上

想一些辦法,即采用一點冗余的線路,

在原有數據位之外再增加一到幾位校驗

位,使新得到的碼字帶上某種特性,之

后則通過檢查該碼字是否仍保持有這一

特性,來發現是否出現了錯誤,甚至于

定位錯誤后,自動改正這一錯誤,這就

是我們這里說的檢錯糾錯編碼技術。

P70

信息位與校驗位排列位置關系

隨機突發

錯誤錯誤非系統碼系統碼

P70

幾種常用的檢錯糾錯碼

我們只介紹三種常用的檢錯糾錯碼:

奇偶檢錯碼,用于并行數據傳送中

海明檢錯與糾錯碼,用于并行數據傳送中

循環冗余碼,用于串行數據傳送中

原始數據結果數據

編碼過程A譯碼過程

形成校驗位的值,檢查接送的碼字,

加進特征發現/改正錯誤

奇偶校驗碼

用于并行碼檢錯

原理:在k位數據碼之外增加1位校驗位,

使K+1位碼字中取值為1的位數總保持

為偶數(偶校驗)或奇數(奇校驗)。

例如:偶校驗奇校驗

000Jo000彳

校驗位;二

oc01

原有數字位兩個新的碼字

P71

奇偶校驗碼的實現電路

奇較驗偶校驗出錯指示

Atp

編碼電路譯碼電路

據十

D比目4

海明校驗碼

用于多位并行數據檢錯糾錯處理

實現:為k個數據位設立r個校驗位,

使k+r位的碼字同時具有這樣兩個特性:

①能發現并改正k+r位中任何一位出錯,

②能發現k+r位中任何二位同時出錯,但已

無法改正。

海明碼的編碼方法

合理地用k位數據位形成r個校驗位的值,

即保證用k個數據位中不同的數據位組合

來形成每個校驗位的值,使任何一個數據

位出錯時,將影響r個校驗位中不同的校

驗位組合起變化。換言之,通過檢查是哪

種校驗位組合起了變化,就能確定是哪個

數據位錯,對該位求反則實現糾錯。

有時兩位錯與某種情況的一位錯對校驗位組

合的影響相同,必須加以區分與解決。

海明碼的實現方案例如:k=3,r=4

D3D2DIP4P3P2Pl

1111111十:異或

iooio~~o-Pl=D2@D1

1O1OO1OP2=D3?DI

0110001P3=D3@D2

編碼方案P4=P3?P2@P1@D3@D2@DI

Sl=Pl?D2@D1

譯碼方案S2=P20D3GDI

S3=P3@D30D2

S4=P4@P3@P2@P1?D30D2@D1

P72

檢錯糾錯碼小結

(1)K位碼有2K個編碼狀態,全用于表示合法

碼,則任何一位出錯,均會變成另一個合法

碼,不具有檢錯能力。

(2)從一個合法碼變成另一個合法碼,只少要

改變幾位碼的值,稱為最小碼距(碼距)。

(3)K+1位碼,只用其2K個狀態,可使碼距

為2,如果一個合法碼中的一位錯了,就成

為非法碼,通過檢查碼字的合法性,就得到

檢錯能力,這就是奇偶校驗碼。

檢錯糾錯能力

(4)對k位數據位,當給出r位校驗位時,

要發現并改正一位錯,須滿足如下關系:

2r>=k+r+1;

要發現并改正一位錯,也能發現兩位錯,則應:

2r.i>=k+r,此時碼距為4。

⑸若最小碼距為d(d>=2),

能發現d-1位錯,或改正(d-2)/2(取整)位錯,

要發現I位錯,并改正t位錯,應滿足如下條件:

d>=I+t+1(I>=t)

吉林大學遠程教育學院

計算機原理及系統結構

第九講

主講教師:趙宏偉學時:64

4#:要佝客

I

⑥信息編碼、碼制轉換與檢錯糾錯碼

⑥數據表示——常用的信息編碼

⑥二進制數值數據的編碼與運算算法

碼應用實例:數據表示

邏輯型數據

字符型數據

ASCII碼EBCDIC碼

字符串漢字

檢錯糾錯碼

奇偶校驗海明校驗循環冗余校驗

數值型數據

定點小數整數浮點數

二一十進制數(BCD碼)

邏輯型數據

邏輯型數據只有兩個值:真和假,

正好可以用二進制碼的兩個符號分別表示,

例如1表示真

則0表示假

不必使用另外的編碼規則。

對邏輯型數據可以執行邏輯的與或非等基

本邏輯運算。其規則如下:

邏輯型數據基本運算規則

XYX與YX或丫X的非

00001

01011

10010

1111___0

字符型數據的表示

字符作為人一機聯系的媒介,是最重

要的數據類型之一,當前的西文字符集由

12個符號組成,通常用位二進制編碼,

即用一個字節來表示每一個符號,當前通用

的兩個標準字符集是:

ASCII碼:即AmericanStandardCodefor

InformationInterchange

EBCDIC碼:即ExtendedBinaryCoded

DecimalInterchageCode

ASCH碼字符集具體編碼如下表所示:

ASCH字符編碼集

b5,4000001010011100101110111

h?h2

0000NULDLESP0@P5P

0001SOHDC1I■1AQaq

0010STXDC22BRbr

0011ETXDC3#3CScs

0100EOTDC4$4DTdt

0101ENQNAK%5EUeu

0110ACKSYN&6FVfV

0111BELETB7Gwgw

1000BSCAN(8HXhX

1001HTEM)9IY1y

*■■

1010LFSUB■JzJz

1011VTESC+yK[k{

1100FFFSJ<L1I

1101CRGS■二M]m}

1110SORS■>NAnMW

?

P751111SIUS10..o

字符串的表示與存儲

字符串是指連續的一串字符,它們占據主存中連續的

多個字節,每個字節存放一個字符,對一個主存字的

多個字節,有按從低位到高位字節次序存放的,也有

按從高位到低位字節次序存放的。表示字符串數據要

給出串存放的主存起始地址和串的長度。例如:IF

A>BTHENREAD(C)就可以有如下不同的存放方式:

假定每個字

由4個字節

組成

漢字的表示

通常用兩個字節表示一個漢字

為了與西文字符編碼相區別(西文的

ASCH碼的最高一位編碼值為0),表示一

個漢字時,把兩個字節的最高一位的編碼

值設定為1,則該編碼集的最多編碼數量

為128X128。

這種編碼方案與西文傳送中的把ASCH

碼的最高一位用作奇偶校驗位有矛盾。

數值數據在計算機內的格式

定點小數:N=NsN-lN-2...........N-n

整數:N=NsNnNn"...NiNo

浮點數:N=MSESEmi…EiEoMiM2...Mn

基為2

IEEE標準:階碼用移碼,尾數用原碼

符號位階碼位尾數數碼位總位數

短浮點數:182332

長浮點數:1115264

臨時浮點數:1156480

P76

二一十進制編碼(BCD編碼)

用四位二進制表小一位十進制,

16個編碼狀態選用其中的10個編碼

有多種方案,例如:

8421碼,余3碼,循環碼

又可區分為:

有權碼:每位上的1代表確定的值

無權碼:無法確定每位上的1代表的值

有權碼無碼

8421余3碼循環碼84-2-1

00000001100000000

10001010000010111

20010010100110110

30011011000100101

40100011101100100

50101100011101011

60110100110101010

70111101010001001

81000101111001000

91001110001001111

P79

吉林大學遠程教育學院

計算機原理及系統結構

第十講

主講教師:趙宏偉學時:64

4#:要佝客

I

⑥信息編碼、碼制轉換與檢錯糾錯碼

>數據表示——常用的信息編碼:

⑥二進制數值數據的編碼與運算算法

定,/小數表示:NsN1N2...Nn

(純小數)原碼,反碼,補碼的定義

xO<X<1

[X]原1-X-1<X<O

XnO<X<1

[X]=(2-2n)+X-1<X<0Mod(2-2n)

O<X<1

[X]=12+X-1<X<0Mod2

P82

定點小數表示:NsN1N2...Nn

原碼

定義:[X]原=[X0WXV1

原I1-X-1<X<0

實例:X1=0.10110-0.101100.0000

[乂]原=010110110110f00000

__________________________t10000

結論:原碼為符號位加數的絕對值,。正1負

原碼零有兩個編碼,+0和=()編碼不同

原碼難以用于加減運算,但乘除方便

P83

定,名小數表示:NsN1N2...Nn

模2補碼

定義:O<X<1

兇補={1-1<X<0MOD2

實例:X1=0.10110-0.101100.0000

[X]補=01011010101000000

結論:補碼最高一位是符號位,。正1負―-

補碼表示為:2*符號位+數的真值

補碼零只有一個編碼,故能表示

補碼能很好地用于加減(乘除)運算

P83

定,名小數表示:NsN1N2...Nn

反碼

定義?『X%=JX0&XV1

?1,反l(2?2-n)+X4<X<0MOD(2-2n)

實例:X1=0.10110-0.101100.0000

[X]^=01011010100100000

___________________________11111

結論:反碼負數為符號位跟每位的反,0正1負

反碼零有二個編碼,分+0和,

反碼難以用于加減運算,有循環進位問題

P86

吉林大學遠程教育學院

計算機原理及系統結構

主講教師:趙宏偉學時:64

整數的編碼表示

整數的原碼反碼補碼表示

與小數的三種表示基本相同,

差別僅表現在小數點的位置,

可以認為整數的小數點在最低數值位的右側

因此整數的模與整數位數有關,

講課中不大用整數講原反補碼定義

例如:整數六位編碼:

X=+01110[X]jg=001110[X]#=001110

X=-01110兇原=101110[X]#=110010

P87

原反補碼表示小結

正數的原碼、反碼、補碼表示均相同,

符號位為0,數值位同數的真值。

零的原碼和反碼均有2個編碼,補碼只1個碼

負數的原碼,反碼,補碼表示均不同,

符號位為1,數值位:原碼為數的絕對值

反碼為每一位均取反碼

補碼為反碼再在最低位+1

由[X]補求[?X]補:每一位取反后,再在最低位+1

n

由兇補求X的真值:X=-1+ZXj*2】

i=l

數據的算術運算

補碼加減法運算

原碼一位乘法運算原碼一位除法運算

補碼一位乘法運算補碼一位除法運算

原碼二位乘法運算

補碼二位乘法運算

其它快速乘除法運算方法簡介

補碼加減法的實現

[X+丫]補=兇補+[Y]補

[XM補=嗎卜+RY]補

卜丫]補=對[Y]補逐位取反,再在最低位加1

溢出判斷:

(1)正+正得負或負十負得正

(2)數字位有向符號位的進位,但符號位不產

生向更高位的進位

(3)雙符號位的值為01或10

實現補碼加減運算的邏輯電路

F-X

力口F?—Y

X-F

Vrx-X+Y

IX—X?Y

F-X

F-/Y

F-1

X-F

補碼加減法運算實例

X=0.1011y=-0.0101模4補碼

[不補=001011,[丫]補=111011

[?丫]補=000101

001011001011

考111°11+000101

io丁OHOoioooo

X+YX-Y(溢出)

補碼表示中的符號位擴展

由兇補求[X/2]補的方法

原符號位不變,

且符號位與數值位均右移一位,例如,

兇補=10010貝I」兇2]補=110010

不同位數的整數補碼相加減時,

位數少的補碼數的符號位向左擴展,

一直擴展到與另一數的符號位對齊。

01010101110000110101010111000011

+1111111110011100+0000000000011100

01010101010111110101010111011111

吉林大學遠程教育學院

計算機原理及系統結構

第十二講

主講教師:趙宏偉學時:64

原碼一位乘運算

*

[X*Y]原=(XS?YS)(XY)

例如:X=0.1101Y=-0.1011

部分積乘數

0.11010000001011

*0.10110001101101

11010010011110

11010001001111

00000010001111

+1101X和Y符號異或為負

0.10001111最終乘積原碼表不為:

110001111

手工運算過程計算機內運算的實現方法

P90部分積右移P92

原碼一位乘運算

例如:X=0.1101Y=-0.1011

0.1101問題:

*0.10111.加法器只有兩個數據輸入端

-11012.加法器與乘運算數據位數相同

1101解決方案:

0000每次求出部分積,而不是一次總累加

+1101變每次左移被乘數為右移部分積

0.10001111判乘數每一位的值用固定的一位線路

手工運算過程

實現原碼一位乘法的邏輯線路圖

原碼一位乘法

111

1111

原碼一位乘運算

例如:X=0.1101Y=-0.101^)

0.1101000000累加器初值取零值

*0.1011001101

110100110T初值o加被乘數

11010001101部分積右移

0000將移出的一位保存起來

+1101求第一次部分積

0.10001111

手工運算過程

原碼一位乘運算

例如:X=0.1101Y=-0.10^1

0.1101000110

*0J011001101

1101010011前次部分積加被乘數

110100100111部分積右移

0000將移出的一位保存起來

+1101求第二次部分積

0.10001111

手工運算過程

原碼一位乘運算

例如:X=0.1101Y=-0.1§11

0.1101001001

*0.1011000000

1101001001前次部分積加0

1101000100111部分積右移

0000將移出的一位保存起來

+1101求第三次部分積

0.10001111

手工運算過程

原碼一位乘運算

例如:X=0.1101Y=-0.^011

0.1101000100

*0,1011+001101

1101010001前次部分積加被乘數

11010010001111部分積右移

0000將移出的一位保存起來

+1101求第四次部分積

0.10001111

最后一步2數符號異或求

手工運算過程積的符號

原碼一位乘運算

例如:X=0J101Y=-o|o11

0.1101000100

*0,1011+001101

110101000

11010010001111

0000

+1101求第四次部分積

0.10001111若把乘數放在一個移位寄存器中,

該寄存器又用來接受加法器的移位輸

出,則判乘數的某一位也更方便

手工運算過程

除法運算

在計算機內實現除運算時,存在

與乘法運算類似的幾個問題:

加法器與寄存器的配合,

被除數位數更長,商要一位一位

地計算出來等。這可以用左移余數得

到解決,且被除數的低位部分可以與

最終的商合用同一個寄存器,余數與

上商同時左移。

原碼一位除運算

[Y/X]=(XS?YS)(|Y|/|X|)

原碼一位除是指用原碼表示的數相除,求出原

碼表示的商。除操作的過程中,每次求出一位商。

從理解原理考慮,用恢復余數除法講解計算機

內的實現方法更直觀方便,即確定上商應為1還是

為0時,必須用被除數或中間余數減去除數,通過

檢查本次求得的余數為正還是為負才能知道,而不

象人計算時用眼睛直接看出來的。若求出一個為負

的余數來,通常應首先恢復其值為正,再求下一位

商才有道理。但計算機內從來不用這種辦法,而是

直接用求得的負余數求下一位商。

P93

加減交替除法原理證明

1.若第i?1次求商余數為+Rw,商1余數

左移得2RMo區

2.則第i

溫馨提示

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

評論

0/150

提交評論