You are on page 1of 4

JU Tehnička škola Brčko IV Razred Računarske mreže - Izborni

Ciklične provjere redundancije (CRC)

Dodatna informacija dobiva se računanjem takozvanog CRC. Računanje se


implementira u hardveru kombiniranjem logičkih sklopova za ekskluzivno-ili te
shift-registara.
Sklop za ekskluzivno-ili prima dva bita kao ulaz i daje jedan bit kao izlaz u
skladu s tablicom.

Shift-registar pohranjuje niz bitova. Izvršavanjem operacije shifta novi bit s


desna ulazi u registar, svi bitovi u registru pomiču se za jedno mjesto ulijevo, a
bit koji je do tada bio na krajnjem lijevom mjestu se gubi. Registar kao izlaz daje
vrijednost trenutnog bita na lijevom kraju.

Slijedeći sklop računa CRC od 16 bitova. Svi registri najprije postave na 0, a


zatim se podaci iz okvira kao niz bitova uguravaju u sklop nizom shift operacija.
Pritom svi registri simultano izvode svoje shiftove. Nakon što je cijeli niz bitova
uguran u sklop, registri sadrže traženi CRC.

Matematička analiza pokazuje da CRC otkriva više grešaka od kontrolnog


zbroja.

1
JU Tehnička škola Brčko IV Razred Računarske mreže - Izborni
CRC - Cyclic Redundancy Code

 Elementi m-bitne poruke se posmatraju kao koeficijenti polinoma stepena m-1


 Bit najveće težine je koef. uz Xm-1
 Primjer 10001 je 1x4+0x3+0x2+0x1+1x0 = x4+x0
 Polinom koji odgovara poruci obilježimo sa M(X)
 Niz kontrolnih cifara koji se dodaje poruci, koja se prenosi, se formira diobom
polinoma M(X) sa generatorskim polinomom, G(X)
 Izvor i odredište moraju da koriste isti generatorski polinom (definisano
protokolom)
 Bit najmanje i najveće težine generatorskog polinoma mora biti 1
 Stepen generatorskog polinoma mora biti manji od stepena polinoma
poruke, M(X)
 Neka je r stepen generatorskog polinoma, G(X)
1. dodati r nula na kraj poruke, tako da ona sadrži m+r bitova
 ovakva poruka odgovara polinomu XrM(X)
2. Podijeliti XrM(X) sa G(X)
 sva izračunavanja se obavljaju u mod2 aritmetici
 nema prijenosa kod sabiranja
 nema pozajmice kod oduzimanja
 obje operacije su identične i odgovaraju EXOR operaciji
 dijeljenje se obavlja ko binarno dijeljenje, ali se oduzimanje
obavlja po mod2
 za dijelilac se kaže da se sadrži u dijeljeniku ako dijeljenik ima
jednak broj bitova kao i dijelilac
3. Oduzeti ostatak dijeljenja (koji je uvjek r ili manje bitova) od XrM(X)
korišćenjem sumiranja po mod2
 REZULTAT JE PORUKA SA CRC kodom! (recimo T(X))
 Kada poruka sa CRC (tj. T(X)) stigne u odredište, vrši se dijeljenje T(X) sa
G(X).
 Ako se dobije ostatak 0, nema greške
 Ako je ostatak ¹0, nastupila je greška u toku prenosa.

Primjer-1

• Neka je r stepen polinoma G(x)


– G(x) = x2+x0 = 101, r je 2
• Dodati r nula poruci M(x)
– dobija se xrM(x)
– npr: 1001 + 00 = 100100
• Podijeliti xrM(x) sa G(x) korišćenjem mod 2 aritmetike pr: 100100 / 101

2
JU Tehnička škola Brčko IV Razred Računarske mreže - Izborni
Dijeljenje xrM(x) sa G(x)
____1011__
101 | 100100
101
011
000
110
101
110
101
11 ¬ Ostatak!

• Oduzeti ostatak od xrM(x)


100100
11
100111
• Rezultat je ram koji se prenosi
– T(x) = 100111
• Šta ako podelimo T(x) sa G(x)?
– 210,278 / 10,941 ostatak je 2399
– 210,278 - 2399 je deljivo sa 10,941 bez ostatka

Da li ovo funkcioniše?
_ ___1011__
101 | 100111
101
011
000
111
101
101
101
0 ¬ yeah!

3
JU Tehnička škola Brčko IV Razred Računarske mreže - Izborni

Primjer G(x)=x4+x2+x

You might also like