Note de curs - Departamentul Automatica, Calculatoare si ...
Note de curs - Departamentul Automatica, Calculatoare si ...
Note de curs - Departamentul Automatica, Calculatoare si ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
face codarea cu cuvinte binare <strong>de</strong> lungime w > 1 cu operatiile <strong>de</strong> adunare <strong>si</strong><br />
înmultire modulo 2 w . În loc trebuie utilizat câmpul Galois corespunzǎtor.<br />
Explicatiile relative la câmpurile Galois uzeazǎ <strong>de</strong> polinoamele într-o<br />
ne<strong>de</strong>terminatǎ cu coeficienti în GF(2). Adicǎ, dacǎ r(x) = x + 1 <strong>si</strong> s(x) = x atunci<br />
r(x) + s(x) = 1 doarece x + x = (1 + 1)x = 0x = 0. Mai mult, se pot lua polinoame<br />
<strong>de</strong> acest gen modulo alte polinoame conform cu i<strong>de</strong>ntitatea: dacǎ r(x) mod q(x)<br />
= s(x), atunci s(x) este un polinom <strong>de</strong> grad inferior lui q(x) <strong>si</strong> r(x) = q(x)t(x) +<br />
s(x) cu t(x) un polinom în x.<br />
Dacǎ, <strong>de</strong> exemplu, r(x) = x 2 + x <strong>si</strong> q(x) = x 2 + 1 atunci r(x) mod q(x) = x + 1.<br />
Fie acum q(x) un polinom primitiv <strong>de</strong> gradul w cu coeficienti în GF(2). Primitiv<br />
înseamnǎ cǎ polinomul nu are divizori cu coeficienti în GF(2) <strong>si</strong> polinomul x<br />
este generatorul câmpului GF(2 w ). Cum genereazǎ x câmpul Se con<strong>si</strong><strong>de</strong>rǎ<br />
initial elementele obligatorii 0, 1 <strong>si</strong> x <strong>si</strong> se continuǎ enumerarea elementelor<br />
obtinute prin multiplicarea ultimului element cu x <strong>si</strong> retinerea rezultatului<br />
modulo q(x). Enumerarea se încheie cu elementul pentru care rezultatul modulo<br />
q(x) este egal cu 1.<br />
Dacǎ, <strong>de</strong> exemplu, w = 2 <strong>si</strong> q(x) = x 2 + x + 1 atunci primele elemente sunt 0, 1 <strong>si</strong><br />
x, iar x 2 mod q(x) = x + 1 <strong>si</strong> cele patru elemente ale câmpului GF(4) sunt {0, 1,<br />
x, x + 1}. Un al cincilea element nu existǎ <strong>de</strong>oarece x(x + 1) = x 2 + x care luat<br />
modulo q(x) produce 1, element <strong>de</strong>ja existent.<br />
Câmpul general GF(2 w ) se construieste prin gǎ<strong>si</strong>rea unui polinom primitiv q(x)<br />
<strong>de</strong> gradul w peste GF(2) urmatǎ <strong>de</strong> enumerarea elementelor generate <strong>de</strong> x.<br />
Adunarea <strong>si</strong> multiplicarea elementelor câmpului se fac dupǎ regulile adunǎrii <strong>si</strong><br />
multiplicǎrii polinoamelor cu grija <strong>de</strong> a lua tot<strong>de</strong>auna rezultatul modulo q(x).<br />
Un asemenea câmp se mai scrie ca GF(2 w )= GF(2)[x]/q(x).<br />
Acum, pentru a uza <strong>de</strong> un câmp GF(2 w ) în algoritmul RS-RAID este necesarǎ<br />
<strong>de</strong>finirea unei aplicatii a elementelor din acest câmp pe cuvinte binare <strong>de</strong><br />
lungime w. Un polinom r(x) din GF(2 w ) poate fi aplicat pe un cuvânt binar b <strong>de</strong><br />
lungime w prin punerea celui <strong>de</strong> al i-lea bit din b egal cu coeficientul puterii x i<br />
din polinom. Pentru GF(4) = GF(2)[x]/x 2 + x + 1 se obtine tabelul urmǎtor<br />
Elemente<br />
generate<br />
Elemente<br />
polinomiale<br />
Elemente binare<br />
0 0 00 0<br />
x 0 1 01 1<br />
x 1 x 10 2<br />
x 2 x + 1 11 3<br />
Reprezentarea<br />
zecimalǎ<br />
Adunarea elementelor se realizeazǎ prin operatia SAU EXCLUSIV (XOR) bit<br />
cu bit. Multiplicarea este mai complicatǎ: se iau elementele sub forma<br />
polinomialǎ, se multiplicǎ ca polinoame <strong>si</strong> se ia rezultatul modulo q(x). Tabelele<br />
<strong>de</strong> logaritmi ca acela <strong>de</strong> mai sus se bazeazǎ pe o tabelǎ <strong>de</strong> compunere ca aceea<br />
datǎ pentru cazul GF(4).<br />
114