brojevni sustavi i kodovi
DESCRIPTION
digitalna elektronikaTRANSCRIPT
-
2. Brojevni sustavi i kodovi
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 1
Pregled tema
Tipovi i prikaz podataka Brojevni sustavi Zbrajanje i odbijanje prirodnih binarnih brojeva Prikaz brojeva u modulu Binarna aritmetika Binarno kodiranje znamenki i simbola Kodovi za otkrivanje i ispravljanje pogreaka
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 2
Tipovi i prikaz podataka
prikaz podataka u digitalnom obliku ~ niz bitova, bitovni vektor
znaenja bitovnog vektora: broj
znak/simbol
specijalni znakovi: upravljaki, instrukcije,
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 3
Tipovi i prikaz podataka
bitovni vektor ~ "tipiziran": pripada nekom tipu podataka (engl. data type) nametanje discipline manipuliranja s podacima
osnovni tipovi podataka: brojevi: prirodni, cijeli, realni,
znak/simbol: pojedine abecede (~ znakovni kodovi) specijalni znakovi ~ posebno znaenje:
logike varijable
znaenje bitovnog vektora ~ utvreno interpretacijom, kontekstom obrade
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 4
Tipovi i prikaz podataka
zapis podataka (~ zapis bitovnog vektora): utvreni oblik = format organizacija niza bitova (grupe bitova ~ polja) znaenje pojedinih bitova/grupa bitova
najjednostavniji zapis: prirodni binarni brojevi vrijednost bita u broju = pozicija bita u binarnom
vektoru
posve openito: pridruivanje znaenja binarnom vektoru = kd broj neto drugo (~ simbol)
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 5
Pozicijski brojevni sustavi
pozicija znamenke odreuje njenu teinu faktor kojim se znamenka mnoi
teina - potencija baze brojevnog sustava
dekadski sustav:
baza sustava moe openito biti bilo koji cijeli broj
2 1 0234 2 10 3 10 4 10= + +
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 6
Pozicijski brojevni sustavi - II dio
Prikaz n-znamenkastih cijelih brojeva:1 2 1 0
1 2 1 01
0
1 2 1 0
n nB n n
ni
ii
n n
N a B a B a B a B
a B
a a a a
=
= + + + + = =
L
K
B: baza ili korijen brojevnog sustava
ai: koeficijent uz i-tu potenciju (teinu); ai = {0, 1, ., B-1}, i = 0, 1, ., n-1
znamenke
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 7
Prikaz razlomljenih brojeva
isti princip, potencije baze koje odgovaraju znamenkama iza zareza - negativne
kod pretvorbe - posebno pretvoriti cjelobrojni a posebno razlomljeni dio broja
1 2 11 2 ( 1)
1
1 2 ( 1)0,
m mB m m
ii
i m
m m
n a B a B a B a B
a B
a a a a
+
=
= + + + + = =
L
K
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 8
Mijeani ili racionalni brojevi
prikaz s fiksnim zarezom [fixed-point notation]
1
1 2 1 0 1 2 ( 1),
B Bn
ii
i m
n n m m
N N n
a B
a a a a a a a a
=
= += =
K K
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 9
Neki brojevni sustavibaza B brojevni sustav znamenke sustava (B)
2 binarni 0,1 3 ternarni 0,1,2 8 oktalni 0,1,2,3,4,5,6,7
10 dekadski 0,1,2,3,4,5,6,7,8,9 16 heksadekadski 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
dekadski binarni oktalni heksadekadski
0 0 0 0 1 1 1 1 2 10 2 2 3 11 3 3 4 100 4 4 5 101 5 5 6 110 6 6 7 111 7 7 8 1000 10 8 9 1001 11 9
10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 10
Pretvorba brojeva u razliitim sustavima
pretvorba cijelog dekadskog broja u neki drugi sustav sukcesivno dijeljenje bazom tog sustava ostaci dijeljenja s bazom - znamenke ostatak prvog dijeljenja - najmanje znaajna znamenka
01212
012110
bbbbNaaaaN
ss
nn
LL
==
( )01
00
13
22
1
00
11
22
1110
22222
2222
bAbbbb
bbbbNs
ss
s
ss
ss
+=++++=++++=
LL
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 11
Pretvorba dekadskog broja u binarni
Primjer345 : 2 172 1172 : 2 86 086 : 2 43 043: 2 21 121: 2 10 110 : 2 5 0
5 : 2 2 12 : 2 1 01: 2 0 1
=========
10 2345 101011001=
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 12
Pretvorba dekadskog broja u ternarni
Primjer
345 : 3 115 0115 : 3 38 1
38 : 3 12 212 : 3 4 04 : 3 1 11: 3 0 1
======
10 3345 110210=
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 13
Pretvorba dekadskog broja u heksadekadski
Primjer
345 :16 21 921:16 1 5
1:16 0 1
===
10 16345 159=
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 14
Pretvorba necijelog dekadskog broja
pretvorba razlomljenog dijela dekadskog broja u sustav s nekom drugom bazom - uzastopnim mnoenjem s bazom sustava
PrimjerPretvoriti dekadski broj 0,625 u binarni sustav.
0,625 * 2 = 1,25 = 1 + 0,25 10,25 * 2 = 0,5 = 0 + 0,5 00,5 * 2 = 1 = 1 + 0 1 0,62510 = 0,1012
ne mora uvijek zavriti konanim brojem znamenaka !!
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 15
Pretvorba u dekadski sustav
izravno - odrediti dekadski zapis svake potencije baze izvornog sustava, pomnoiti vrijednost svake znamenke s odgovarajuom teinom, sumirati
PrimjerPretvoriti binarni broj 10010,101 u dekadski sustav.
10010,1012 = 1*24 + 0*23 + 0*22 + 1*21 + 0*20 + 1*2-1 + 0*2-2 + 1*2-3= 1*16 + 1*2 + 1*0,5 + 1*0,125 = 18,625
10010,1012 = 18,62510
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 16
Rekurzivno mnoenje i pribrajanje
umjesto raunanja potencija baze i mnoenjem sa znamenkama i pribrajanja - posmak za 1 mjesto i pribrajanje, za svaku znamenku
12 s 22 s 32 s 42 s 52 s 12 02 1sb 2sb 3sb 4sb 5sb 1b 0b
= ( 1 22 s sb b + ) 3sb 4sb 5sb 1b 0b 2ss 3sb 4sb 5sb 1b 0b
= ( 2 32 s ss b + ) 4sb 5sb 1b 0b 3ss 4sb 5sb 1b 0b
= ( 3 42 s ss b + ) 5sb 1b 0b 4ss 5sb 1b 0b
( 4 52 s ss b + ) 1b 0b 1b 0b
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 17
Rekurzivno mnoenje i pribrajanje
osnovni korak: ss-1 = as-1 korak rekurzije: si-1 = 2si + ai-1
=++=
++=+=+=+=
=
1
0
11
321
12
323
21
212
11
2
22
22
222
si
i
ssss
ss
ss
sss
sss
ss
sss
ss
a
aasaaa
assaaass
as
L
1 1 0 1- 2 6 121 3 6 13
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 18
Rekurzivno mnoenje i pribrajanje
PrimjerMetodom rekurzivnog mnoenja i pribrajanja pretvoriti broj 10011101 u dekadski sustav.
(((1*2*2*2 + 1)*2 + 1)*2 + 1)*2*2 + 1 = ((9*2 + 1)*2 + 1)*2*2 + 1 = (19*2 + 1)*2*2 + 1 =39*2*2 + 1 = 157
postupak vrijedi za cijele brojeve
razlomljeni dio: rekurzivno dijeljenje i pribrajanje
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 19
Usporedba brojevnih sustava
Poveanjem baze sustava smanjuje se broj brojnih mjesta
Baza sustava Broj 1110
2 1011 3 201 8 13
10 11 >16 B
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 20
Optimalna baza brojevnog sustava
prikladnost brojevnog sustava za fiziku realizaciju ne odgovara njegovoj prikladnosti za ovjekovu upotrebu
prikaz znamenki elektronikim sklopom: toliko razliitih diskretnih stanja koliko ima
znamenki
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 21
Optimalna baza brojevnog sustava
n-znamenkasti broj u sustavu s bazom BN: broj moguih n-znamenkastih brojeva u brojevnom
sustavu s bazom B: "kapacitet" n pozicijav:ukupni broj razliitih diskretnih stanja
Bn-1 Bn-2 B1 B0
B-1B-2
0
n brojnih mjesta
B razliitihdiskretnih
stanja
pozicija (teina)
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 22
Optimalna baza brojevnog sustava
nN Bv n B
==
( )( )
2
2
lnln
1lnln
lnln 1lnln
dv d BNdB dB B
B BBN
BBNB
=
=
=
0 ln 2,711 83dv B B edB
= = = =
ln lnlnln
N n BNv BB
= =
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 23
"najekonominija" baza: B = 3 ternarni brojevni sustav:
najblii teorijskom minimumu
binarni brojevni sustav: laka realizacija:
tehniki bolji, a samo 5% loiji od ternarnog
Optimalna baza brojevnog sustava
B B/lnB 2 2,89 e e (2,718) 3 2,73 4 2,89 5 3,11 6 3,35 7 3,60 8 3,85 9 4,10
10 4,34
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 24
Oktalni i heksadekadski sustav
pozicijski brojevni sustavi, baza 8 odnosno 16 baza je potencija broja 2 jednostavna pretvorba u binarni
sustav vea baza manji broj znamenaka za zapis broja oktalni sustav - znamenke 0-7 predstavljaju se s 3 bita
0 0001 0012 0103 0114 1005 1016 1107 111
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 25
Oktalni i heksadekadski sustav
Primjer
Pretvoriti broj 1011110110011002 u oktalni sustav.101 111 011 001 1005 7 3 1 4
1011110110011002 = 573148
Primjer
Pretvoriti broj 7654328 u binarni sustav.7 6 5 4 3 2
111 110 101 100 011 010
7654328 = 1111101011000110102
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 26
Heksadekadski sustav
baza sustava 16, znamenke 0 - "15", tj. 0-9, A, B,..., F
svaka znamenka predstavljena s 4 bita
jednostavna pretvorba, vrlo rairen brojevni sustav kao saeti zapis binarnog
2 heksa znamenke ~ 1 oktet0 0000 A 10101 0001 B 1011
... C 1100 7 0111 D 11018 1000 E 11109 1001 F 1111
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 27
Heksadekadski sustav
Primjer
Pretvoriti broj 010111100011100111002 u heksadekadskisustav.
0101 1110 0011 1001 11005 E 3 9 C
010111100011100111002 = 5E39C16
Primjer
Pretvoriti broj 76A4C216 u binarni sustav.7 6 A 4 C 2
0111 0110 1010 0100 1100 0010
76A4C216 = 0111011010100100110000102
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 28
Binarna aritmetika
binarna aritmetika ~ aritmetike operacije u binarnom sustavu
(zbrajanje, odbijanje, mnoenje, ...) specifinosti u odnosu na dekadsku aritmetiku binarno zbrajanje
~ osnovna operacija u digitalnim sustavima (raunalima)
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 29
Binarna aritmetika
binarno zbrajanje najjednostavnije
~ zbrajanje dviju binarnih znamenki: suma mod 2 : operator
rezultat: 210 = 102~ pojava prijenosa (engl. carry) na viu bitovnu poziciju
oznake: S : suma, zbroj ; C : prijenos
0 0 1 1
+0 +1 +0 +1
0 1 1 10C: prijenos
S: suma
ab 0 10 0 11 1 10
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 30
Binarna aritmetika
binarno zbrajanje dvaju binarnih brojeva : openito n-bitni binarni brojevi prijenos pribrojiti vioj bitovnoj poziciji
~ zbrajanje triju binarnih znamenki 3 7 8
+ 2 73 9 5 : S1.
+ 1 : C3 0 5 : S2.
+ 1 : C4 0 5
1 0 1 1 1 1 0 1 0 1 1 0 1 1
1 0 1 1 0 0 0 0 1 S1 1 1 1 C1
1 0 1 0 1 0 1 0 1 S2 1 C2
1 0 0 0 1 0 1 0 1 S3 1 C4
1 1 0 0 1 0 1 0 1
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 31
Binarna aritmetika
binarno zbrajanje dvaju binarnih brojeva : n-bitni binarni brojevi
~ openito promatrati i-ti bit Si = Ai Bi Ci-1Ci = ?
posebna tablica zbrajanja
Primjer : prethodni
Ai Bi C i-1 S i C i0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1
1 0 1 1 1 1 0 1 0+ 1 1 0 1 1
1 1 0 0 1 0 1 0 1?
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 32
Binarna aritmetika
binarno odbijanje dvaju binarnih znamenki : diferencija = minuend suptrahend
minuend 0 1 1 0
suptrahend 0 0 1 1
0 1 0 11C: posudba
D: diferencija
ab 0 10 0 11 11 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 33
Binarna aritmetika
binarno odbijanje dvaju binarnih brojeva : n-bitni binarni brojevi
~ openito promatrati i-ti bit diferencija = suma !!!
Di = Ai Bi Ci-1Ci = ?
posebna tablica odbijanja
stvarna izvedba ~ pribrajanje komplementa broja
(vidi kasnije)
Ai Bi C i-1 D i C i0 0 0 0 00 0 1 1 10 1 0 1 10 1 1 0 11 0 0 1 01 0 1 0 01 1 0 0 01 1 1 1 1
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 34
Prikaz brojeva u modulu
digitalni sustavi (raunala): pohranjivanje brojeva u registrima
ogranieni broj mjesta ~ n-znamenkasti brojevi
broj moguih n-znamenkastih brojeva kod baze B:
Bn = m : modul ~ broj stanja registra, "kapacitet" registra od n mjesta
W = Bn 1 : najvei n-znamenkasti broj
Dn-1 Dn-2 Dn-3 ...... D2 D1 D0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 35
Prikaz brojeva u modulu
prikaz n-znamenkastih brojeva: ogranienje na brojeve < m = Bn
grafiki prikaz ~"brojna krunica"
uoiti: a = kBn + b, b < Bn = m, k = 0, 1, 2,
b = a (mod m)
0 1 23Bn-1
Bn Bn+1 Bn+2Bn+3
2.Bn 2.Bn+1 2.Bn+2 2.Bn+3
a = k.Bn+b ~ b
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 36
Prikaz brojeva u modulu
prikaz n-znamenkastih brojeva: interpretacija relacije
b = a (mod m)
"b je ostatak dijeljenja broja a s modulom m"
Primjeri : 23 mod 17 = 6
35 mod 16 = 30 1 2
3Bn-1
Bn Bn+1 Bn+2Bn+3
2.Bn 2.Bn+1 2.Bn+2 2.Bn+3
a = k.Bn+b ~ b
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 37
Modulo-aritmetika
umjesto jednakosti, relacija kongruencije, npr. za m = 10:
openito:
primjeri zbrajanja i oduzimanja mod 10:
K 192191111KK ,2,1,0,1,2,10 =+ kkaa
KKK
++
+
9111561010055119954
KKK
1199651010055911145
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 38
Modulo-aritmetika
zapis: radi jasnoe na kraju izraza se pie (mod m)
npr.
algebarski izrazi, npr:
jednadbu zadovoljavaju:
a = b + 2, b 8, b + 12, b 18, ...
10) (mod 155 ( )10mod2+ ba
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 39
Komplementi brojeva
komplementi brojeva: u odnosu na modul brojevnog sustava m = Bn
~ u odnosu na broj mjesta n za prikaz brojeva u registru
u odnosu na najvei n-znamenkasti broj W = Bn 1
znaaj komplementa brojeva: pojednostavljivanje obavljanja aritmetikih operacija npr. koritenje istog sklopovlja
za obavljanje zbrajanja i odbijanja
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 40
Komplement
svaki broj a, 0 a < m, ima svoj komplement: definicijska relacija:
srodan pojmu suprotnog broja (-a):
a
maa =+( )
( )maaaa
mod00
+=+
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 41
Komplement
korist od komplementa:oduzimanje pretvara u zbrajanje!
omoguuje koritenje istog sklopovlja za zbrajanje i oduzimanje
( ) babbbababa +=+++= 0baba +
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 42
Komplement
B-komplement: naziv za ve prikazani komplement u odnosu na m=Bn:
(n je maksimalan broj znamenki koji se koristi)
B = 10: 10-komplementn= 2: n= 3:
B = 2: 2-komplement
aBama nB ==
( ) 65351035 210 ==
( ) 10101101010110000000101012010101 62 ===
( ) 965351035 310 ==
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 43
Komplementi brojeva
praktini algoritam za dobivanje 2-komplementa:
"Poev od najmanje znaajnog bita broja, invertirati svaki bit nakon prve 1."
Primjer :
00010110 1110101000100101 11011011
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 44
Komplementi brojeva
(B-1)-komplement~ komplement u odnosu na W
B = 10: 9-komplement
n = 2:
n = 3:
B = 2: 1-komplement
NWNNBN Bn == 11
( ) ( ) 35993510106410351035 0202 ====( ) ( ) 3599935101096410351035 0303 ====
( ) 10101001010111111110101012010101 6 ===
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 45
Komplementi brojeva
dobivanje (B-1)-komplementa: svaku znamenku broja odbiti od W = B 1
dobivanje 1-komplementa ~ komplementiranje pojedinih bitova:
vrlo jednostavna sklopovska izvedba!
dobivanje 2-komplementa iz 1-komplementa:
u odnosu na B-komplement je kod (B-1)-komplementa znamenka najmanje teine umanjena za 1
112 += BB
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 46
Oduzimanje komplementom
uzmimo da nae sklopovlje podrava: zbrajanje
inverziju svih bitova u broju
problem: izraunati D = M S moemo izraunati komplemente:
1-komplement = inverzija svih bitova
2-komplement = 1-komplement + 1
u nastavku: oduzimanje komplementomu bilo kojoj bazi B
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 47
Oduzimanje B-komplementom
Oduzimanje B-komplementom:sklopovlje izraunava
u sklopovskoj izvedbi razlikujemo dva sluaja: 1. M > S D > 02. M < S D < 0
( ) ( )( )
B
nB
nnnB
SMDBSMD
BDBSMSBMSM
++=
+=+=+=+BSM +
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 48
Odbijanje pomou komplementa
odbijanje pomou komplementa ~ pribrajanje minuendu komplementa suptrahenda
openiti algoritam za brojevni sustav s bazom B
odbijanje pomou (B-1)-komplementa
odbijanje pomou B-komplementa
dva sluaja:
M > S D > 0 M < S D < 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 49
Oduzimanje B-komplementom
sluaj 1: M > S D > 0
rezultat je vei od najveeg prikazivog broja, W dolazi do preljeva u registru je rezultat kojem nedostaje najvia znamenka
njena teina: Bn
u registru je dakle preljev naruava jednakost, ali ne i kongruenciju!
sadraj registra je upravo traeni rezultat:
WWDBDSBMSM nnB >++=+=+=+ 1
Bn
B SMBSM ++
( ) ( ) DBBDBSM nnnB =+=+
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 50
Oduzimanje B-komplementom
primjer: B=2, n=8 (8-bitno binarno raunalo)
izraunati 32, dakle M=3, S=2
12572572543
2542256
>=+=+
===WSM
SBS
B
nB
2551256121 8 ==== nBW
broj koji dobiva sklopovlje
preljev!
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 51
Oduzimanje B-komplementom
registri: A=3, B=2
000000011
11111110 00000011 :BA
11111110B 00000010 B: 00000011 :A2
2
++
=
ne stane u registar preljev!
traeni rezultat
sloenost posla:2x zbrajanje1x inverzija bitova
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 52
Oduzimanje B-komplementom
sluaj 2: M < S D < 0
nema preljeva, sklopovlje dobiva
oduzimanje Bn od rezultata: uzeti mu komplement i tome staviti predznak minus:
( )( )( )
( )BBB
n
nB
SM
SMBBSMD
+=+=
+=
WWDBDSM nB ++=+=+ 1BSM +
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 53
Oduzimanje B-komplementom
izraunati 23, dakle M=2, S=3
( ) ( )12551256255255
255
25525322533256
2 =====
=+=+===
D
BDD
WSMSBS
n
B
nB
nema preljeva,sklopovlje dobivaupravo 255
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 54
Oduzimanje B-komplementom
registri: A=2, B=3
( ) 0000000111111111
11111111
11111101 00000010 :BA
11111101B 00000011 B: 00000010 :A2
2
=
++
=
2
novi sadraj registra A
traeni rezultat
sloenost posla:3x zbrajanje2x inverzija bitova
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 55
Odbijanje pomou komplementa
algoritam oduzimanja B-komplementom: pribrojiti minuendu komplement suptrahenda
ako se pojavi preljev, to je rezultat
ako nema preljeva, jo jednom komplementirati te promijeniti predznak
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 56
Oduzimanje (B-1)-komplementom
oduzimanje (B-1)-komplementom:sklopovski izraunavamo
( ) ( ) WDWSMSWMSM B +=+=+=+ 11+ BSM
( ) ( ) 11 111 ++=+=+= nBnBB BSMBSMWSMD
11 ++ BSMD
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 57
Oduzimanje (B-1)-komplementom
sluaj 1: M > S D > 0
dolazi do preljeva u izraunu, registar sadri
dobivanje rezultata:
dakle, registru treba dodati 1 "povratni preljev" (eng. end-around carry)
jer bit prijenosa dodajemo sadraju registra
WWDSM B >+=+ 1
11 ++ BnB SMBSM
( ) 1111
++=++=+=
n
B
nnBB
BSMWBBSMWSMD
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 58
Oduzimanje (B-1)-komplementom
izraunati 32, dakle M=3, S=2
1101256256preljev!2562533
2532255
1
1
=+=+=>=+=+
===
DWSM
SWS
B
B
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 59
000000001
11111101 00000011 :BA 1
++
Oduzimanje (B-1)-komplementom
registri: A=3, B=2
strojna naredba: SUB A,B11111101B 00000010 B: 00000011 :A 1 =
00000001
0000000100000000
+
povratni prijenos:
rezultat
preljev
sloenost posla:2x zbrajanje1x inverzija bitova
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 60
Oduzimanje (B-1)-komplementom
sluaj 2: M < S D < 0
nema preljeva
dobivanje rezultata kao i kod B-komplementa, samo radimo (B-1)-komplement:
( ) ( )( ) ( ) 1111 +=+=+= BBBB SMSMWWSMD
WWDSM B
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 61
Oduzimanje (B-1)-komplementom
izraunati 23, dakle M=2, S=3
( ) ( )12541255254
preljeva! nema25425222523255
1
1
1
====
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 62
( ) 0000000111111110
11111110
11111100 00000010 :BA 1
=
++
1
Oduzimanje (B-1)-komplementom
registri: A=2, B=3
strojna naredba: SUB A,B11111100B 00000011 B: 00000010 :A 1 =
traeni rezultat
sloenost posla:1x zbrajanje2x inverzija bitova
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 63
Oduzimanje pomou komplementa
algoritam oduzimanja (B-1)-komplementom: pribrojiti minuendu komplement
suptrahenda
ako se pojavi preljev, dodati 1 ~ povratni prijenos
ako nema preljeva, jo jednom komplementiratite promijeniti predznak
SWS
MM
SMD +1
PRELJEV?
111 + DD 11 DD
1DD
NE
DA
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 64
Oduzimanja (B-1)-komplementom
SWS
MM
SMD +1
PRELJEV?
111 + DD 11 DD
1DD
NE
DA
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 65
Oduzimanje pomou komplementa
oduzimanje (B-1)-komplementom:
Primjer : oduzimanje 1-komplementom M=11 1 0 1 1S=9 - 1 0 0 1
1 0 1 1+ 0 1 1 01 0 0 0 1povratni
prijenos + 10 0 1 0
M=9 1 0 0 1S=11 - 1 0 1 1
1 0 0 1+ 0 1 0 0
1 1 0 1- 0 0 1 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 66
Operacije nad brojevima s predznakom
zapis brojeva s predznakom: veliina broja ~ iznos predznak
~ jo jedan bit: najznaajniji (najlijeviji) bit tipino:
0 : "+"
1 : "-"
prikaz negativnih brojeva: predznak i veliina predznak i 2-komplement predznak i 1-komplement
Dn Dn-1 Dn-2 ...... D2 D1 D0
bit predznaka
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 67
Prikaz brojeva s predznakom
prikaz brojeva predznakom i veliinom : odvojeno manipuliranje predznaka i veliine relativno sloeno izvoenje raunskih operacija problem "negativne nule"
Primjer: prikaz jednim oktetom
63 0011 1 111114 0111 0010
0 0000 0000
+ =+ =
+ =
63 1011 1 111114 1111 0010
0 1000 0000
= =
=
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 68
Prikaz brojeva s predznakom
prikaz brojeva predznakom i 2-komplementom : pozitivni brojevi: predznak i veliina negativni brojevi: predznak i 2-komplement
komplementiranje predznaka i veliine zajedno nema problema "negativne nule"
~ nula je jedinstvena !
Primjer: prikaz jednim oktetom 63 0011 1 111
114 0111 00100 0000 0000
+ =+ =
+ =
63 1100 0001114 1000 1 110
0 0000 0000
= =
=
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 69
Prikaz brojeva s predznakom
prikaz brojeva predznakom i 1-komplementom : slino prikazu predznakom i 2-komplementom
~ komplementiranje predznaka i veliine zajedno problem "negativne nule"
Primjer: prikaz jednim oktetom
63 0011 1 111114 0111 0010
0 0000 0000
+ =+ =
+ =
63 1100 0000114 1000 1 101
0 1111 1 111
= =
=
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 70
Usporedba 1 i 2 komplementa
prikaz predznakom i 2-komplementom praktiniji! nema "negativne nule"
asimetrini raspon pozitivnih i negativnih brojeva ~ nula je "pozitivna"
broj predznak i veliina
2-komplement
1-komplement
-8 - 1000 -
-7 1111 1001 1000
-6 1110 1010 1001
-5 1101 1011 1010
-4 1100 1100 1011
3 1011 1101 1100
-2 1010 1110 1101
-1 1001 1111 1110
0 0000 ili 1000
0000 0000 ili 1111
1 0001 0001 0001
2 0010 0010 0010
3 0011 0011 0011
4 0100 0100 0100
5 0101 0101 0101
6 0110 0110 0110
7 0111 0111 0111
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 71
POGRENO
Zbrajanje u 2-komplementu
pojava aritmetikog preljeva (engl. arithmetic overflow): pribrojnici istog predznaka (+ ili ),
a predznak rezultata se razlikuje ( ili +) suma premauje broj mjesta veliine (n-1)
potreba detekcije aritmetikog preljeva Primjer: 7 + 4
0111 +7 + 0100 +4
1011 -5 00111 +7 + 00100 +4
01011 +11
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 72
Oduzimanje u 2-komplementu
od suptrahenda dobiti 2-komplement ~ promjena predznaka! 2-komplement suptrahenda pribrojiti minuendu
Primjer:
preljev se nema preljeva! zanemaruje (rezultat je negativan:
1 na najznaajnijem mjestu)
1011- 1001 1011+ 01111 0010
1001- 1011 1001+ 0101 1110
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 73
Mnoenje
binarno mnoenje ~ prema pravilima za dekadsko mnoenje:
multiplikand multiplikator 1 1 0 0 1 0 0 0 0 1 1 0
+ 0 0 0
parcijalni produkti
0 1 1 0 0 produkt
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 74
Mnoenje
mogunosti ostvarivanja binarnog mnoenja: uzastopna zbrajanja
parcijalna mnoenja s 2 (~ "posmak") i zbrajanje multiplikand multiplikator
efikasnije primjenom Hornerove sheme:
3 2 1 0
3 2 1 0
M m m m mN n n n n
==
( )3 2 1 03 2 1 03 2 1 0
3 2 1 03
0
2 2 2 2
2 2 2 2
2iii
M N M n n n n
M n M n M n M n
M n=
= + + + = + + + =
( )( ) { }3 2 1 02 2 2 , 0,1iM N M n M n M n M n n = + + +
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 75
Mnoenje i dijeljenje
n0 = 0 0 0 0 0 0 0 0 produkt: 0
102
102
102
1101101110
101010111011
====
NMP
NM
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 76
Mnoenje i dijeljenje
102
102
102
1101101110
101010111011
====
NMP
NM
0 0 0 0 0 0 0 0
n1 = 1 1 0 1 1 1 0 1
1 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 77
Mnoenje i dijeljenje
102
102
102
1101101110
101010111011
====
NMP
NM
0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1
n2 = 0 0 0 0 0 0 1 0 produkt: 1 1 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 78
Mnoenje i dijeljenje
102
102
102
1101101110
101010111011
====
NMP
NM
0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 0 0 0 0 0 0 1 0
n3 = 1 1 0 1 1 produkt: 1 1 0 1 1 1 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 79
Mnoenje i dijeljenje
Primjer:
102
102
102
991100011
91001111011
====
NMP
NM
n0 = 1 1 0 1 1 0 1 0 1
n1 = 0 0 0 0 0 0 0 1 0
n2 = 0 0 0 0 0 0 0 0 1
n3 = 1 1 0 1 1 produkt: 1 1 0 0 0 1 1
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 80
Mnoenje i dijeljenje
binarno mnoenje: Primjer : mnoenje 4-bitnih brojeva
102
102
102
9901100011
91001111011
====
NMP
NM
n0 = 1 1 0 1 11 0 1
n1 = 0 0 0 0 00 1 0
n2 = 0 0 0 0 00 0 1
n3 = 1 1 0 1 1produkt: 1 1 0 0 0 1 1
( )( ) { }1,0,222 0123 +++== innMnMnMnMNMP
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 81
Dijeljenje
binarno dijeljenje ~ svodi se na uzastopno oduzimanje
primjer: 57 : 5 = 11, ostatak 2 1. korak: djelitelj potpiemo lijevo ispod djeljenika
i oduzmemo
iza jednakosti stavljamo 1
1 1 1 0 0 1 : 1 0 1 = 1 1 0 1 1 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 82
Dijeljenje
2. dopiemo sljedeu znamenku djeljenika sad imamo 100, broj manji od djelitelja
iza jednakosti dodajemo nulu
ne radimo oduzimanje
1 1 1 0 0 1 : 1 0 1 = 1 0 1 0 1 1 0 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 83
Dijeljenje
3. dopiemo jo jednu znamenku djeljenika sad imamo 1000, vei od djelitelja iza jednakosti dodajemo jedinicu
provodimo oduzimanje
1 1 1 0 0 1 : 1 0 1 = 1 0 1 1 0 1 1 0 0 0 - 1 0 1 1 1
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 84
Dijeljenje
i tako dalje
1 1 1 0 0 1 : 1 0 1 = 1 0 1 1 1 0 1
1 0 01 0 0 0 1 0 1
1 1 1 1 0 1
1 0 ostatak
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 85
Dijeljenje
primjer: 38 : 5 = 7, ostatak 3
1 0 0 1 1 0 : 1 0 1 = 1 1 1 1 0 1 1 0 0 1 1 0 1 1 0 0 0 1 0 1 0 0 1 1
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 86
Dijeljenje
binarno dijeljenje ~ svodi se na uzastopno odbijanje
1 1 1 0 0 1 : 1 0 1 = 1 0 1 1 1 0 1
1 0 01 0 0 0 1 0 1
1 1 1 1 0 1
1 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 87
Binarno kodiranje znamenki i simbola
princip kodiranja binarnim rijeima: izraavanje simbola/znakova u binarnom obliku,
radi dalje obrade digitalnim sklopom ~ binarno kodiranje
kd : grupa simbola kojoj se dogovorno daje znaenje kodna rije : niz bitova kojem se pridaje neko znaenje abeceda : skup svih simbola prikazanih kodnim rijeima znakovi : elementi abecede
kodiranje
dekodiranje
kodnerijeci
kodabeceda
simboli =znakovi
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 88
Binarno kodiranje znamenki i simbola
princip kodiranja binarnim rijeima: broj simbola = broj razliitih prikaza
broj bitova kodnih rijei K simbola: n ld K [bit], ld x = log2 x
2n K n bitova: N = 2n moguih kombinacijapridruivanje kodne rijei prvom simbolu N naina pridruivanje kodne rijei drugom simbolu N-1 nain pridruivanje kodne rijei treem simbolu N-2 naina pridruivanje kodne rijei K-tom simbolu N-(K-1) ( ) ( ) ( )( ) ( ) ( )!1 2 1 ! KNNN N N N K VN K = =L
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 89
Binarno kodiranje znamenki i simbola
dekadski kodovi~ binarni prikaz dekadskih znamenki n 4 bita; 23 < 10 < 24 n = 4 bita
~ 16 kombinacija
broj 4-bitnih kodova ~ mogui broj kodiranja:
odabrati kodove s povoljnim svojstvima!
(10) 916
16! 29,059 106!
V = =
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 90
Dekadski kodovi
svojstva dekadskih kodova: aditivnost
~ veza izmeu kodne rijei i prikazane dekadske znamenke
samokomplementarnost (engl. self-complementing) ~ veza kodnih rijei po parovima
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 91
Dekadski kodovi
teinski kod: zbroj teina = vrijednost prikazane znamenke
17 teinskih kodova s pozitivnim teinama, 71 s jednom ili dvije negativne teine
1
0
n
i ii
N a w D
== +
N : dekadski ekvivalent wi : i-ta teina ai : koeficijent za i-tu teinu D : konstanta pomaka
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 92
Dekadski kodovi
samokomplementirajui kod: ~ 9-komplement dekadskog broja
zamjenom 0 i 1 u kodnoj rijei korisno kod binarno-dekadske aritmetike
teinski je kod samokomplementirajui ako:
9ii
w =
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 93
Dekadski kodovi
kod 8421, BCD (engl. Binary Coded Decimal) prvih 10 binarnih brojeva
teine: 8, 4, 2, 1
neupotrijebljene kombinacije: 10011111
23 22 21 20 8 4 2 1
0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 8 1 0 0 0 9 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 94
Dekadski kodovi
kod 2421 (Aikenov kod) teinski kod
~ teine: 2, 4, 2, 1
samokomplementirajui kod: 0-9, 1-8, 2-7, 3-6, 4-5
prvih i zadnjih pet 4-bitnih brojeva
neupotrijebljene kombinacije: 01011010
2 4 2 1 0 0 0 0 0 1 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0
5 1 0 1 1 6 1 1 0 0 7 1 1 0 1 8 1 1 1 0 9 1 1 1 1
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 95
Dekadski kodovi
kod XS-3 (Stibitzov kod) kod 8421,
s "prekoraenjem" (ekscesom) od 3 uz D = 3
~ teinski kod
ne postoji 0000: detekcije prekida kod prijenosa
neupotrijebljene kombinacije: 00000010, 11011111
simetrina tablica koda ~ samokomplementirajui kod!
23 22 21 20 8 4 2 1 0 0 0 0 0 0 0 1 0 0 1 0
0 0 0 1 1 1 0 1 0 0 2 0 1 0 1 3 0 1 1 0 4 0 1 1 1 5 1 0 0 0 6 1 0 0 1 7 1 0 1 0 8 1 0 1 1 9 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 96
Dekadski kodovi
bikvinarni kod teinski 7-bitni kod (2+5=7)
kodne rijei s dvije 1: otkrivanje pogreaka ne ako je pogreka
samokompenzirajua velika zalihost:
~ 10 od 128 moguih kombinacija
5 0 4 3 2 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 2 0 1 0 0 1 0 0 3 0 1 0 1 0 0 0 4 0 1 1 0 0 0 0 5 1 0 0 0 0 0 1 6 1 0 0 0 0 1 0 7 1 0 0 0 1 0 0 8 1 0 0 1 0 0 0 9 1 0 1 0 0 0 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 97
Grayev kod
kod s minimalnom promjenom susjedne kodne rijei
~ razlika u samo 1 bitu
ograniavanje pogreki pri slijednoj promjeni npr. direktno oitavanje poloaja
kodna rije ikodna rije i+1
kodna rije i+2
kodna rije i+3
B3B2
B1B0
B0
B1B2
B3
10
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 98
Grayev kod
svojstva Grayevog koda: susjedne kodne rijei
~ razlika u samo jednom bitu ("jedinina distanca")
izgradnja koda:~ zrcaljenje u jednom
bitovnom mjestu: reflektirani kod
neteinski kod
binarni, ali i "dekadski" ~ XS-3 Grayev kod
0 0 0 0 0 0 0 1 0 0 1 1
0 0 0 1 0 1 0 1 1 0 2 0 1 1 1 3 0 1 0 1 4 0 1 0 0 5 1 1 0 0 6 1 1 0 1 7 1 1 1 1 8 1 1 1 0
9 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0
0 0 0 0 0 0 0 1 0 0 1 1
0 0 0 1 0 1 0 1 1 0 2 0 1 1 1 3 0 1 0 1 4 0 1 0 0 5 1 1 0 0 6 1 1 0 1 7 1 1 1 1 8 1 1 1 0
d
e
k
a
d
s
k
i
G
r
a
y
e
v
k
o
d
9 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0
b
i
n
a
r
n
i
G
r
a
y
e
v
k
o
d
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 99
Grayev kod
izgradnja koda:~ zrcaljenje u jednom bitovnom mjestu:
reflektirani kod
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 100
Znakovni kodovi
prikaz skupa znakova: prikaz slova i znamenki:
"grafiki" ~ "alfa-numeriki" znakovi, interpunkcije, simboli, ...
upravljaki znakovi standardizirani znakovni kodovi:
npr. 7-bitni (128 kombinacija) ASCII: ISO IS 646, ITU-T/CCITT No. 5
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 101
Znakovni kodovi
kod ASCII (engl. American Standard Codefor Information Interchange):
: 20H, CR : 08H, LF : 0AH
0 9: 30-39H
A - Z : 41-5AH
a z : 61-7AH
npr.
A = 100 0001 = 41H
a = 110 0001 = 61H
* = 010 1010 = 1AH
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 102
Kodovi za zatitu podataka
prijenos podataka ~ utjecaj smetnji: mogua pojava pogreke pogreka
~ neeljena promjena jednog/vie bitova u kodnoj rijei
jednostruka pogreka ~ promjena vrijednosti jednog bita
(0 1 ili 1 0) viestruka pogreka ~ vie bitova
rezultat ~ neispravna, ali i ispravna kodna rije !
dobivena kodna rije ispravna~ nemogue otkriti da je dolo do pogreke!!!
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 103
Kodovi za zatitu podataka
princip otkrivanja (i ispravljanja) pogreaka~ razlika kodnih rijei u 1 bita
distanca kodnih rijei (R. W. Hamming) ~ "udaljenost" dviju kodnih rijei: najmanji broj bitova u kojima se dvije kodne rijei razlikuju broj bitova koje treba promijeniti
da se jedna kodna rije pretvori u drugu ~ pogreka ostaje neotkrivena !!!
1000101 1110011
d = 4
uzorci bitovanisu iz koda
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 104
Kodovi za zatitu podataka
raunanje distance kodnih rijei broj razliitih bitovnih mjesta dviju kodnih rijei:
c = a b po bitovima d = aritmetika suma "1" u c
formalno:
c = a b = (an-1 bn-1, an-2 bn-2, ..., a0 b0) d = |c| = |a b| |x| : teina kodne rijei (engl. weight) ,
broj jedinica u kodnoj rijei
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 105
Kodovi za zatitu podataka
minimalna distanca koda dmin ~ najmanji razmak izmeu dvije kodne rijei npr. kod 8421: dmin = 1
bikvinarni kod: dmin = 2
Grayev kod: dmin = d = 1
kod prua zatitu od t pogreaka
t=dmin-1
dmin (t+1)Primjer: dmin = 2
~ otkrivanje jednostruke pogreke
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 106
Kodovi za zatitu podataka
kodovi s dmin > 1 ~ postoji zalihost (redundancija), R:
snaga zatite, viak informacije
vei broj bitova od minimalno potrebnih za prikaz informacije npr. bikvinarni kod
kodna rije = bitovi + zatitni bitovi sistematski kodovi
~ zatitni bitovi nakon informacijskih
n : duljina kodne rijei k
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 107
Kodovi za zatitu podataka
dvije skupine zatitnih kodova: s mogunou otkrivanja pogreaka
~ EDC (engl. Error Detecting Codes): dmin t + 1 za otkrivanje t pogreaka
s mogunou ispravljanja pogreaka ~ ECC (engl. Error Correcting Codes): dmin 2t + 1 za ispravljanje t pogreaka
1000101 1111011
dmin = 5
11001011100001
1110001
1110011
"blii" 1000101
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 108
Kodovi za zatitu podataka
geometrijski prikaz kodnih rijei/koda ~ kubusi u n-dimenzijskom prostoru 0-kubus ~ toka 1-kubus ~ duina
2-kubus ~ kvadrat
3-kubus ~ kocka
n-kubus ~ "hiperkocka"
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 109
Kodovi za zatitu podataka
geometrijski prikaz kodnih rijei/koda Primjer: n-kubus 3-kubus1. za 2n uzoraka: dmin = 1
2. za {100, 011}: dmin = 3
otkriva 2 pogreke:
010, 111, 001
110, 101, 000
ispravlja 1 pogreku:
110, 101, 000
001, 111, 010
101
001
000 010
110111
100
011
x0
x1
x2
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 110
Izgradnja 4 kubusa
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 111
Kodovi za zatitu podataka
paritet ~ najjednostavniji nain zatite dodati paritetni bit
~ tipino osmi bit rijei iz ASCII koda: p b6b5b4 b3b2b1b0
nova kodna rije mora imati paran/neparan broj jedinica~ paran/neparan paritet
"vertikalna" (okomita) paritetna zatita (engl. Vertical Redundancy Check, VRC)~ otkrivanje neparnih pogreaka
PARITET ZNAK PARNI NEPARNI
A 100 0001 0 100 0001 1 100 0001 a 110 0001 1 110 0001 0 110 0001 * 010 1010 1 010 1010 0 010 1010
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 112
Kodovi za zatitu podataka
viestruko ispitivanje pariteta : zahtjev: poveati mo zatite!
vei broj paritetnih ispitivanja ~ "nezavisna" (ortogonalna)
vei broj zatitnih bitova ~ vea zalihost
vie mogunosti: dvodimenzijski kod Hammingov kod
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 113
Kodovi za zatitu podataka
dvodimenzijski kod~ 2D matrica informacijskih bitova
"pravokutni" kod
uzduna i poprena paritetna zatita: kodna rije paritetni bit cijelom bloku kodnih rijei
paritetna rije, BCC (engl. Block Check Character) ~ "horizontalna" (uzduna) paritetna zatita
(engl. Longitudinal Redundancy Check, LRC)
ispravljanje jednostruke pogreke
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 114
Kodovi za zatitu podataka
vodoravna i okomita paritetna zatita:
Primjer: kodne rijei iz ASCII koda
zalihost:
R = 1/m + 1/n
R = 0,125 + m-1 (ASCII)
komentar: ~ prevelika zalihost za relativno ogranienu mo zatite!
A a * BCC 0 1 1 x 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 115
Kodovi za zatitu podataka
uzduna i poprena paritetna zatita:
Primjer : kodne rijei iz ASCII koda zalihost:
sa BCC
bez BCC
komentar: ~ prevelika zalihost za relativno ogranienu mo zatite!
A a * BCC 0 1 1 x 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 0
)1)(1(1++
++=nm
nmR
1)1)(1( +++=nm
nmR
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 116
Kodovi za zatitu podataka
Hammingovi kodovi: sustavni mehanizam za izgradnju
niza kodova za ispravljanje pogreaka ~ R.W. Hamming, 1950.
princip: ~ viestruko (nezavisno) paritetno ispitivanje
bolja efikasnost kodiranja ~ manja zalihost
usp. dvodimenzijski kod
naroito popularan Hammingov kodza ispravljanje jednostruke pogreke ~ tipina primjena: memorijski sklopovi
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 117
Kodovi za zatitu podataka
Hammingovi kodovi : nezavisna paritetna ispitivanja
~ ne mogu se dobiti kombinacijom preostalih
princip izgradnje kodne rijei: "nezavisna" (ortogonalna) ispitivanja "nezavisni" (ortogonalni) smjetaj zatitnih bitova
"nezavisna" (ortogonalna) ispitivanja: svaki zatitni bit "pokriva" (= titi) drugi podskup
bitova podatka svaki bit podatka zatien s vie zatitnih bitova
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 118
Kodovi za zatitu podataka
Hammingovi kodovi: odnos zatitnih i informacijskih bitova :
2r k + r + 1 , n = k + r r: broj zatitnih bitova k: broj informacijskih bitova n: duljina kodne rijei
obrazloenje: jednostruka pogreka na jednom od n mjesta bez pogreaka
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 119
Kodovi za zatitu podataka
Hammingovi kodovi: zatitni bitovi su na mjestima 2i ( 1, 2, 4, 8, )
ostali bitovi su informacijski
primjer: kod (11,7) ukupno 11 bitova, od ega 7 nose podatke korisno za zatitu ASCII-znakova
d7d6d5P4d4d3d2P3d1P2P1
1110987654321
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 120
Kodovi za zatitu podataka
zatitni bitovi raunaju paritet poevi od sebe: Pozicija 1: provjera 1 bita, preskae 1 bit, provjera 1, ... Pozicija 2: prov. 2 bita, pres. 2 bita, prov. 2 bita, ...
Pozicija 4: prov. 4 bita, pres. 4 bita, prov. 4 bita, ...
...
raspored odgovornosti bitova:
P4P3P2P1
P4P3P2P1
P4P3P2P1
P4P3P2P1
1110987654321
P1:P2:P3:P4:
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 121
Kodovi za zatitu podataka
Hammingovi kodovi: odnos zatitnih i informacijskih bitova :
2r k + r + 1 , n = k + r BROJ
INFORMACIJSKIH BITOVA ()
BROJ ZATITNIH BITOVA
DULJINA KODNE RIJEI
1 2 3 4 3 7
11 4 15 26 5 31 57 6 63
120 7 127
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 122
Kodovi za zatitu podataka
izgradnja Hammingovog koda za ispravljanje jednostruke pogreke : zatitni bitovi na mjesta koja se ne mogu dobiti
kombinacijama drugih zatitnih bitova: 2i
zatitni bitovi "pokrivaju" svoju poziciju ~ sve pozicije iji redni broj sadri 2i
zatitni bitovi: C2 C1 C0
POZICIJA nema
pogreke 1 2 3 4 5 6 7
C2 0 0 0 0 1 1 1 1 C1 0 0 1 1 0 0 1 1 C0 0 1 0 1 0 1 0 1 C0 C1 k1 C2 k2 k3 k4
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 123
Kodovi za zatitu podataka
Hammingov kod za ispravljanje jednostruke pogreke : izraunavanje zatitnih bitova, za parni paritet
POZICIJA nema pogreke 1 2 3 4 5 6 7
C2 0 0 0 0 1 1 1 1 C1 0 0 1 1 0 0 1 1 C0 0 1 0 1 0 1 0 1 C0 C1 k1 C2 k2 k3 k4
C0k1k2k4=0 C0=k1k2k4 C1k1k3k4=0 C1=k1k3k4 C2k2k3k4=0 C2=k2k3k4
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 124
Kodovi za zatitu podataka
Hammingov kod za ispravljanje jednostruke pogreke : izraunavanje zatitnih bitova, za neparni paritet
POZICIJA nema pogreke 1 2 3 4 5 6 7
C2 0 0 0 0 1 1 1 1 C1 0 0 1 1 0 0 1 1 C0 0 1 0 1 0 1 0 1 C0 C1 k1 C2 k2 k3 k4
C0k1k2k41=0 C0=k1k2k41 C1k1k3k41=0 C1=k1k3k41 C2k2k3k41=0 C2=k2k3k41
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 125
Kodovi za zatitu podataka
Hammingov kod za ispravljanje jednostruke pogreke :
Primjer: zatita ASCII znaka A (41H)k = n - r = 7 r = 4
mjesto pogreke:
1 2 3 4 5 6 7 8 9 10 11C0 C1 k1 C2 k2 k3 k4 C3 k5 k6 k7
k1 k2 k3 k4 k5 k6 k71 0 0 0 0 0 1
C0 = k1 k2 k4 k5 k7 C0 = 0 C1 = k1 k3 k4 k6 k7 C1 = 0 C2 = k2 k3 k4 C2 = 0 C3 = k5 k6 k7 C3 = 1 0 0 1 0 0 0 0 1 0 0 1
k 1 k 2 k 3 k 4 k 5 k 6 k 70 1 1 0 0 0 0 1 0 0 1C 0 C 1 C 2 C 3 X = C3 C2 C1 C0 = 1 0 1 0
Y = C3' C2' C1' C0' = 1 0 0 0
X Y = 00102 = 210
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 126
Kodovi za zatitu podataka
Hammingov kod za ispravljanje jednostruke pogreke: sindrom
~ uzorak zatitnih bitova koji ukazuje na mjesto pojave pogreke
Primjer:
sindrom = 2 ~ drugi bit kodne rijei je pogrean!
sindrom = 0 ~ nema pogreke
k1 k2 k3 k4 k5 k6 k7 0 1 1 0 0 0 0 1 0 0 1 C0 C1 C2 C3
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 127
Hammingov kod primjer
Podatak = P1P2P3P4P5P6P7P8P9P10P11P12 = 101100011010 Zatita = C1C2C4C8C16
Pozicija 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Rezultat
Binarno 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001
Rije C1 C2 P1 C4 P2 P3 P4 C8 P5 P6 P7 P8 P9 P10 P11 C16 P12
Rije 1 0 1 1 0 0 0 1 1 0 1 0
Provjera:16
Provjera:8
Provjera:4
Provjera:2
Provjera:1
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 128
Hammingov kod - zatitni bitovi
Podatak = P1P2P3P4P5P6P7P8P9P10P11P12 = 101100011010 Zatita = C1C2C4C8C16
Pozicija 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Rezultat
Binarno 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001
Rije C1 C2 P1 C4 P2 P3 P4 C8 P5 P6 P7 P8 P9 P10 P11 C16 P12
Rije 1 0 1 1 0 0 0 1 1 0 1 0
Provjera:16 C16
Provjera:8 C8
Provjera:4 C4
Provjera:2 C2
Provjera:1 C1
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 129
Hammingov kod zatitni bit C1
Podatak = P1P2P3P4P5P6P7P8P9P10P11P12 = 101100011010 Zatita = C1C2C4C8C16
Pozicija 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Rezultat
Binarno 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001
Rije C1 C2 P1 C4 P2 P3 P4 C8 P5 P6 P7 P8 P9 P10 P11 C16 P12
Rije 1 0 1 1 0 0 0 1 1 0 1 0
Provjera:16 C16
Provjera:8 C8
Provjera:4 C4
Provjera:2 C2
Provjera:1 C1 1 0 1 0 0 1 1 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 130
Hammingov kod zatitni bit C1
Podatak = P1P2P3P4P5P6P7P8P9P10P11P12 = 101100011010 Zatita = C1C2C4C8C16
Pozicija 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Rezultat
Binarno 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001
Rije C1 C2 P1 C4 P2 P3 P4 C8 P5 P6 P7 P8 P9 P10 P11 C16 P12
Rije 1 0 1 1 0 0 0 1 1 0 1 0
Provjera:16 C16
Provjera:8 C8
Provjera:4 C4
Provjera:2 C2
Provjera:1 0 1 0 1 0 0 1 1 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 131
Hammingov kod zatitni bit C2
Podatak = P1P2P3P4P5P6P7P8P9P10P11P12 = 101100011010 Zatita = C1C2C4C8C16
Pozicija 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Rezultat
Binarno 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001
Rije C1 C2 P1 C4 P2 P3 P4 C8 P5 P6 P7 P8 P9 P10 P11 C16 P12
Rije 1 0 1 1 0 0 0 1 1 0 1 0
Provjera:16 C16
Provjera:8 C8
Provjera:4 C4
Provjera:2 C2 1 1 1 0 0 0 1
Provjera:1 0 1 0 1 0 0 1 1 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 132
Hammingov kod zatitni bit C2
Podatak = P1P2P3P4P5P6P7P8P9P10P11P12 = 101100011010 Zatita = C1C2C4C8C16
Pozicija 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Rezultat
Binarno 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001
Rije C1 C2 P1 C4 P2 P3 P4 C8 P5 P6 P7 P8 P9 P10 P11 C16 P12
Rije 1 0 1 1 0 0 0 1 1 0 1 0
Provjera:16 C16
Provjera:8 C8
Provjera:4 C4
Provjera:2 0 1 1 1 0 0 0 1
Provjera:1 0 1 0 1 0 0 1 1 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 133
Hammingov kod zatitni bit C4
Podatak = P1P2P3P4P5P6P7P8P9P10P11P12 = 101100011010 Zatita = C1C2C4C8C16
Pozicija 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Rezultat
Binarno 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001
Rije C1 C2 P1 C4 P2 P3 P4 C8 P5 P6 P7 P8 P9 P10 P11 C16 P12
Rije 1 0 1 1 0 0 0 1 1 0 1 0
Provjera:16 C16
Provjera:8 C8
Provjera:4 C4 0 1 1 1 1 0 1
Provjera:2 0 1 1 1 0 0 0 1
Provjera:1 0 1 0 1 0 0 1 1 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 134
Hammingov kod zatitni bit C4
Podatak = P1P2P3P4P5P6P7P8P9P10P11P12 = 101100011010 Zatita = C1C2C4C8C16
Pozicija 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Rezultat
Binarno 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001
Rije C1 C2 P1 C4 P2 P3 P4 C8 P5 P6 P7 P8 P9 P10 P11 C16 P12
Rije 1 0 1 1 0 0 0 1 1 0 1 0
Provjera:16 C16
Provjera:8 C8
Provjera:4 1 0 1 1 1 1 0 1
Provjera:2 0 1 1 1 0 0 0 1
Provjera:1 0 1 0 1 0 0 1 1 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 135
Hammingov kod zatitni bit C8
Podatak = P1P2P3P4P5P6P7P8P9P10P11P12 = 101100011010 Zatita = C1C2C4C8C16
Pozicija 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Rezultat
Binarno 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001
Rije C1 C2 P1 C4 P2 P3 P4 C8 P5 P6 P7 P8 P9 P10 P11 C16 P12
Rije 1 0 1 1 0 0 0 1 1 0 1 0
Provjera:16 C16
Provjera:8 C8 0 0 0 1 1 0 1
Provjera:4 1 0 1 1 1 1 0 1
Provjera:2 0 1 1 1 0 0 0 1
Provjera:1 0 1 0 1 0 0 1 1 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 136
Hammingov kod zatitni bit C8
Podatak = P1P2P3P4P5P6P7P8P9P10P11P12 = 101100011010 Zatita = C1C2C4C8C16
Pozicija 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Rezultat
Binarno 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001
Rije C1 C2 P1 C4 P2 P3 P4 C8 P5 P6 P7 P8 P9 P10 P11 C16 P12
Rije 1 0 1 1 0 0 0 1 1 0 1 0
Provjera:16 C16
Provjera:8 1 0 0 0 1 1 0 1
Provjera:4 1 0 1 1 1 1 0 1
Provjera:2 0 1 1 1 0 0 0 1
Provjera:1 0 1 0 1 0 0 1 1 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 137
Hammingov kod zatitni bit C16
Podatak = P1P2P3P4P5P6P7P8P9P10P11P12 = 101100011010 Zatita = C1C2C4C8C16
Pozicija 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Rezultat
Binarno 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001
Rije C1 C2 P1 C4 P2 P3 P4 C8 P5 P6 P7 P8 P9 P10 P11 C16 P12
Rije 1 0 1 1 0 0 0 1 1 0 1 0
Provjera:16 C16 0
Provjera:8 1 0 0 0 1 1 0 1
Provjera:4 1 0 1 1 1 1 0 1
Provjera:2 0 1 1 1 0 0 0 1
Provjera:1 0 1 0 1 0 0 1 1 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 138
Hammingov kod zatitni bit C16
Podatak = P1P2P3P4P5P6P7P8P9P10P11P12 = 101100011010 Zatita = C1C2C4C8C16
Pozicija 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Rezultat
Binarno 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001
Rije C1 C2 P1 C4 P2 P3 P4 C8 P5 P6 P7 P8 P9 P10 P11 C16 P12
Rije 1 0 1 1 0 0 0 1 1 0 1 0
Provjera:16 0 0
Provjera:8 1 0 0 0 1 1 0 1
Provjera:4 1 0 1 1 1 1 0 1
Provjera:2 0 1 1 1 0 0 0 1
Provjera:1 0 1 0 1 0 0 1 1 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 139
Hammingov kod zatiena poruka
Podatak = P1P2P3P4P5P6P7P8P9P10P11P12 = 101100011010 Zatita = C1C2C4C8C16 = 00110
Pozicija 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Rezultat
Binarno 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001
Rije C1 C2 P1 C4 P2 P3 P4 C8 P5 P6 P7 P8 P9 P10 P11 C16 P12
Rije 0 0 1 1 0 1 1 1 0 0 0 1 1 0 1 0 0
Provjera:16 0 0
Provjera:8 1 0 0 0 1 1 0 1
Provjera:4 1 0 1 1 1 1 0 1
Provjera:2 0 1 1 1 0 0 0 1
Provjera:1 0 1 0 1 0 0 1 1 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 140
Hammingov kod - otkrivanje i ispravljanje pogreke
Pretpostavimo pogreku na 12. bitu.
Pozicija 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Rezultat
Binarno 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001
Rije C1 C2 P1 C4 P2 P3 P4 C8 P5 P6 P7 P8 P9 P10 P11 C16 P12
Rije 0 0 1 1 0 1 1 1 0 0 0 0 1 0 1 0 0
Provjera:16 0 0
Provjera:8 1 0 0 0 1 0 1
Provjera:4 1 0 1 1 1 0 1
Provjera:2 0 1 1 1 0 0 0 1
Provjera:1 0 1 0 1 0 0 1 1 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 141
Hammingov kod - otkrivanje i ispravljanje pogreke
Pretpostavimo pogreku na 12. bitu.
Pozicija 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Rezultat
Binarno 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001
Rije C1 C2 P1 C4 P2 P3 P4 C8 P5 P6 P7 P8 P9 P10 P11 C16 P12
Rije 0 0 1 1 0 1 1 1 0 0 0 0 1 0 1 0 0
Provjera:16 0 0
Provjera:8 0 0 0 0 0 1 0 1 X
Provjera:4 0 0 1 1 0 1 0 1 X
Provjera:2 0 1 1 1 0 0 0 1
Provjera:1 0 1 0 1 0 0 1 1 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 142
Hammingov kod - otkrivanje i ispravljanje pogreke
Pretpostavimo pogreku na 12. bitu.
Pozicija 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Rezultat
Binarno 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001
Rije C1 C2 P1 C4 P2 P3 P4 C8 P5 P6 P7 P8 P9 P10 P11 C16 P12
Rije 0 0 1 1 0 1 1 1 0 0 0 0 1 0 1 0 0
Provjera:16 0 0 0
Provjera:8 0 0 0 0 0 1 0 1 1
Provjera:4 0 0 1 1 0 1 0 1 1
Provjera:2 0 1 1 1 0 0 0 1 0
Provjera:1 0 1 0 1 0 0 1 1 0 0 Niz zatitnih bitova iz dobivene poruke: 01100 Vrijednost zatitnih bitova dobivena provjerom: 00000 Mjesto pogreke odreuje sindrom: 01100 XOR 00000 = 01100 = 12(10)
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 143
Hammingov kod pogreka na zatitnom bitu
Pretpostavimo pogreku na 4. bitu, tj. zatitnom bitu C4.
Pozicija 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Rezultat
Binarno 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001
Rije C1 C2 P1 C4 P2 P3 P4 C8 P5 P6 P7 P8 P9 P10 P11 C16 P12
Rije 0 0 1 0 0 1 1 1 0 0 0 1 1 0 1 0 0
Provjera:16 0 0
Provjera:8 1 0 0 0 1 1 0 1
Provjera:4 1 0 1 1 1 1 0 1
Provjera:2 0 1 1 1 0 0 0 1
Provjera:1 0 1 0 1 0 0 1 1 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 144
Hammingov kod pogreka na zatitnom bitu
Pretpostavimo pogreku na 4. bitu, tj. zatitnom bitu C4.
Pozicija 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Rezultat
Binarno 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001
Rije C1 C2 P1 C4 P2 P3 P4 C8 P5 P6 P7 P8 P9 P10 P11 C16 P12
Rije 0 0 1 0 0 1 1 1 0 0 0 1 1 0 1 0 0
Provjera:16 0 0
Provjera:8 1 0 0 0 1 1 0 1
Provjera:4 1 0 1 1 1 1 0 1 X
Provjera:2 0 1 1 1 0 0 0 1
Provjera:1 0 1 0 1 0 0 1 1 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 145
Hammingov kod pogreka na zatitnom bitu
Pretpostavimo pogreku na 4. bitu, tj. zatitnom bitu C4.
Pozicija 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Rezultat
Binarno 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001
Rije C1 C2 P1 C4 P2 P3 P4 C8 P5 P6 P7 P8 P9 P10 P11 C16 P12
Rije 0 0 1 0 0 1 1 1 0 0 0 1 1 0 1 0 0
Provjera:16 0 0 0
Provjera:8 1 0 0 0 1 1 0 1 0
Provjera:4 1 0 1 1 1 1 0 1 1
Provjera:2 0 1 1 1 0 0 0 1 0
Provjera:1 0 1 0 1 0 0 1 1 0 0 Pogreka je na bitu 001002 = 410
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 146
Hammingov kod dvije pogreke
Pretpostavimo pogreku na 4. bitu (tj. zatitnom bitu C4) i 12. bitu.
Pozicija 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Rezultat
Binarno 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001
Rije C1 C2 P1 C4 P2 P3 P4 C8 P5 P6 P7 P8 P9 P10 P11 C16 P12
Rije 0 0 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0
Provjera:16 0 0
Provjera:8 0 0 0 0 1 0 1
Provjera:4 0 1 1 0 1 0 1
Provjera:2 0 1 1 1 0 0 0 1
Provjera:1 0 1 0 1 0 0 1 1 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 147
Hammingov kod dvije pogreke
Pretpostavimo pogreku na 4. bitu (tj. zatitnom bitu C4) i 12. bitu.
Pozicija 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Rezultat
Binarno 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001
Rije C1 C2 P1 C4 P2 P3 P4 C8 P5 P6 P7 P8 P9 P10 P11 C16 P12
Rije 0 0 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0
Provjera:16 0 0
Provjera:8 0 0 0 0 0 1 0 1
Provjera:4 0 0 1 1 0 1 0 1
Provjera:2 0 1 1 1 0 0 0 1
Provjera:1 0 1 0 1 0 0 1 1 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 148
Hammingov kod dvije pogreke
Pretpostavimo pogreku na 4. bitu (tj. zatitnom bitu C4) i 12. bitu.
Pozicija 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Rezultat
Binarno 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001
Rije C1 C2 P1 C4 P2 P3 P4 C8 P5 P6 P7 P8 P9 P10 P11 C16 P12
Rije 0 0 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0
Provjera:16 0 0
Provjera:8 0 0 0 0 0 1 0 1
Provjera:4 0 0 1 1 0 1 0 1
Provjera:2 0 1 1 1 0 0 0 1
Provjera:1 0 1 0 1 0 0 1 1 0
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 149
Hammingov kod dvije pogreke
Pretpostavimo pogreku na 4. bitu (tj. zatitnom bitu C4) i 12. bitu.
Pozicija 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Rezultat
Binarno 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001
Rije C1 C2 P1 C4 P2 P3 P4 C8 P5 P6 P7 P8 P9 P10 P11 C16 P12
Rije 0 0 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0
Provjera:16 0 0 0
Provjera:8 0 0 0 0 0 1 0 1 1
Provjera:4 0 0 1 1 0 1 0 1 0
Provjera:2 0 1 1 1 0 0 0 1 0
Provjera:1 0 1 0 1 0 0 1 1 0 0 Pogreka na bitu 8. bitu (010002 = 810) !?
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 150
Hammingov kod otkrivanje dvostruke pogreke
Dodavanjem paritetnog bita (na poziciji 0) mogue je otkriti prisustvo dvostruke pogreke (ili ispraviti jednu pogreku).
Pozicija 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Rezultat
Binarno 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001
Rije C1 C2 P1 C4 P2 P3 P4 C8 P5 P6 P7 P8 P9 P10 P11 C16 P12
Rije 0 0 0 1 0 0 1 1 1 0 0 0 0 1 0 1 0 0
Provjera:16 0 0 0
Provjera:8 0 0 0 0 0 1 0 1 1
Provjera:4 0 0 1 1 0 1 0 1 0
Provjera:2 0 1 1 1 0 0 0 1 0
Provjera:1 0 1 0 1 0 0 1 1 0 0
Jednostruka pogreka paritetni bit mora biti pogrean U primjeru je: - paritetni bit ispravan - a provjera 8 javlja greku dvostruka pogreka
-
13. rujna 2007. FER-Zagreb, Digitalna logika 2007/08 151
Kodovi za zatitu podataka
Hammingov kod za ispravljanje jednostruke pogreke: distanca d = 3
kod za ispravljanje "nezavisnih pogreaka" ~ rezultat djelovanja "bijelog uma"
efikasan kod, jer je R mali