brojevni sustavi i kodovi

152

Click here to load reader

Upload: vanja-zalac

Post on 24-Nov-2015

142 views

Category:

Documents


14 download

DESCRIPTION

digitalna elektronika

TRANSCRIPT

  • 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