Documente Academic
Documente Profesional
Documente Cultură
𝑑=2
1
Cuvântul 𝑤1 cu un bit eronat
eereronateronat
𝑤1 𝑤2
𝑑=3
Cuvântul 𝑤1 cu C erori
𝑤1 𝑤2
C 𝐶 + 1
𝑑 = 2𝐶 + 1
𝐽𝑢𝑠𝑡𝑖𝑓𝑖𝑐𝑎𝑟𝑒 : Întrucât 𝐷 ≥ 𝐶 rezultă că sunt îndeplinite condiţiile (1) şi (2) menţionate anterior.
Cele mai folosite coduri sunt:
• Codul de paritate: 𝑑 = 2 , 𝐶 = 0, 𝐷 = 1;
• Codul SEC_SED: 𝑑 =3, 𝐶 = 1, 𝐷 = 1;
• Codul DED : 𝑑 =3, 𝐶 = 0, 𝐷 = 2;
• Codul SEC_DED: 𝑑 =4, 𝐶 = 1, 𝐷 = 2;
• Codul TED: 𝑑 =4, 𝐶 = 0, 𝐷 = 3.
Relaţiile (1) – (3) evidenţiază importanţa conceptului de distanţă de cod. Pentru a înţelege mai
bine acest concept şi proprietăţile asociate să analizăm în continuare codul de paritate pentru
cuvinte cu 2 biţi de date.
Fie un cuvânt format din doi biți de date 𝑎 și 𝑏 și un bit de paritate 𝑝 = 𝑎 𝑏. Să analizăm mai
întâi combinațiile valide pentru acest cuvânt extins. Bitul 𝑎 se consideră cel mai semnificativ.
𝑎 0 0 1 1
𝑏 0 1 0 1
𝑝 0 1 1 0
(în octal) 0 3 5 6
Figura următoare (Fig. 9) evidenţiază efectul erorilor singulare asupra acestor cuvinte valide. Din
figură rezultă faptul că orice cuvânt afectat de o eroare singulară nu unul nevalid. Codul de paritate
permite așadar detectarea tuturor erorilor singulare. Totodată, figura arată că orice cuvânt nevalid
poate proveni de la 3 cuvinte valide și prin urmare cauza erorii nu poate fi identificată. Așadar,
erorile detectate nu pot fi și corectate.
2
cuvinte valide cuvinte nevalide
0 1
3 2
5
4
6 7
Următoarea figură evidențiază distanța Hamming dintre cuvinte. Se verifică uşor că distanţă de
cod în acest caz este 2.
3
Dar, conform unui rezultat remarcabil de algebră lineară, 𝑉 este o mulţime închisă în raport cu
operatorul sau-exclusiv (). Asta înseamnă că pentru oricare două cuvinte 𝑢, 𝑣 ∈ 𝑉, 𝑢 ≠ 𝑣 , şi
cuvântul rezultat 𝑢 𝑣 ∈ 𝑉. Pe baza acestor elemente, distanţa de cod se exprimă cu relaţia:
𝑑 = 𝑚𝑖𝑛 {𝑝(𝑣), 𝑣 ∈ 𝑉 − 𝑧𝑒𝑟𝑜} (5)
Astfel, se verifică uşor pe mulţimea 𝑉 că la codarea SEC_SED 𝑑 = 3, iar la codarea SEC_DED 𝑑 = 4.
Să analizăm mai în detaliu această proprietate deosebită a mulţimii cuvintelor valide. O ilustrare
grafică a acestei preoprietăţi se prezintă în figura următoare.
𝑢 𝑣 𝑥
Cuvânt
de ⨁
date
⨁
Cuvânt
de ⨁
control
Cuvintele de date acoperă toate combinaţiile posibile, de la cea cu cea cu toţi biţii de 0 la cea
cu toţi biţii de 1. Prin urmare, aplicând operatorul asupra a două cuvinte de date rezultă tot un
cuvânt valid. Problema se reduce la verificarea codului de control. Să considerăm două cuvinte
valide oarecare 𝑢 şi 𝑣 şi cuvântul rezultat prin aplicarea operatorului , 𝑥 = 𝑢 𝑣. Partea de date
a cuvântului nu poate fi decât o combinaţie validă. Aşa cum este ilustrat în figură, trebuie să
verificăm că partea de control a cuvântului 𝑥, rezultată din aplicarea operatorul asupra biţilor de
control de pe aceeaşi poziţie din cuvintele iniţiale 𝑢 şi 𝑣, se obţine şi atunci când se aplică regula de
codare asupra biţilor de date din cuvântul 𝑥. Ca urmare, cuvântul extins 𝑥 este tot un cuvânt valid.
Să exemplificăm acest lucru pentru primul bit de control de la o codare de tip SEC_SED
considerând cuvinte de date de 4 biţi. Cele două cuvinte iniţiale, 𝑢 şi 𝑣, sunt de următoarea formă:
𝑢 = (𝑑1𝑢 , 𝑑2𝑢 , 𝑑3𝑢 , 𝑑4𝑢 , 𝑐1𝑢 , 𝑐2𝑢 , 𝑐3𝑢 ) şi 𝑣 = (𝑑1𝑣 , 𝑑2𝑣 , 𝑑3𝑣 , 𝑑4𝑣 , 𝑐1𝑣 , 𝑐2𝑣 , 𝑐3𝑣 )
Cuvântul rezultat aplicând operatorul este
𝑥 = (𝑑1𝑥 , 𝑑2𝑥 , 𝑑3𝑥 , 𝑑4𝑥 , 𝑐1𝑥 , 𝑐2𝑥 , 𝑐3𝑥 ), în care 𝑑1𝑥 = 𝑑1𝑢 𝑑1𝑣 , 𝑑2𝑥 = 𝑑2𝑢 𝑑2𝑣 , … , 𝑐1𝑥 = 𝑐1𝑢 𝑐1𝑣 , …
Cum 𝑐1𝑢 = 𝑑2𝑢 𝑑3𝑢 𝑑4𝑢 şi 𝑐1𝑣 = 𝑑2𝑣 𝑑3𝑣 𝑑4𝑣 rezultă că
𝑐1𝑥 = 𝑐1𝑢 𝑐1𝑣 = 𝑑2𝑢 𝑑3𝑢 𝑑4𝑢 𝑑2𝑣 𝑑3𝑣 𝑑4𝑣 .
Să verificăm că aceeaşi valoare se obţine pentru 𝑐1𝑥 dacă se aplică regula de codare pe biţii de date.
𝑐1𝑥 = 𝑑2𝑥 𝑑3𝑥 𝑑4𝑥 = (𝑑2𝑢 𝑑2𝑣 ) (𝑑3𝑢 𝑑3𝑣 ) (𝑑4𝑢 𝑑4𝑣 ).
Cum nu contează ordinea în care se aplică operatorul logic, rezultă aceeaşi expresie
𝑐1𝑥 = 𝑑2𝑢 𝑑3𝑢 𝑑4𝑢 𝑑2𝑣 𝑑3𝑣 𝑑4𝑣 .
4
Specificarea unui cod
Modelul matematic cel mai avantajos în specificarea şi studiul codurilor lineare este cel
matriceal. Astfel, reprezentarea unui cod linear se face sub forma unei matrice de generare 𝐺 care
conţine toţi vectorii linear independenţi ai codului, cu excepţia codului nul (baza spaţiului vectorial).
Matricea 𝐺 are 𝑚 linii şi 𝑛 = 𝑚 + 𝑘 coloane şi este de forma
𝐺𝑚×𝑛 = [𝐼𝑚 𝑄𝑚×𝑘 ],
în care 𝐼𝑚 este matricea unitate, ca bază pentru toate cuvintele de date, iar 𝑄𝑚×𝑘 este matricea
codurilor suplimentare de control.
Prin combinaţii lineare realizate între liniile acestei matrice se obţin toate cuvintele valide pentru
codul respectiv, mai puţin codul nul. De exemplu, pentru codurile analizate, matricea 𝑄 este de
următoare forma :
a) SEC_SED, 𝑚 = 4, 𝑘 = 3
0 1 1
1 0 1
𝑄4×3 =[ ]
1 1 0
1 1 1
b) SEC_DED, 𝑚 = 4, 𝑘 = 4
0 1 1 1
1 0 1 1
𝑄4×4 =[ ]
1 1 0 1
1 1 1 0
Submatricea 𝑄 din matricea de generare descrie structura logicii de codare. Structura logicii de
decodare este descrisă printr-o matrice de control a parităţii (engl. 𝑝𝑎𝑟𝑖𝑡𝑦 − 𝑐ℎ𝑒𝑐𝑘 𝑚𝑎𝑡𝑟𝑖𝑥) de
𝑇
forma 𝐻 = [𝐼𝑘 𝑄𝑚×𝑘 ] , care evidenţiază biţii din cuvântul extins care intervin la formarea
𝑠𝑦𝑛𝑑𝑟𝑜𝑚𝑒-ului. Pentru codurile analizate, matricea 𝐻 de generare a 𝑠𝑦𝑛𝑑𝑟𝑜𝑚𝑒-ului este :
a) SEC_SED, 𝑚 = 4, 𝑘 = 3
1 0 0 0 1 1 1
𝐻 = [0 1 0 1 0 1 1]
0 0 1 1 1 0 1
b) SEC_DED, 𝑚 = 4, 𝑘 = 4
1 0 0 0 0 1 1 1
0 1 0 0 1 0 1 1
𝐻=[ ]
0 0 1 0 1 1 0 1
0 0 0 1 1 1 1 0
Dacă cuvântul citit din memorie este [𝑐1 𝑐2 … 𝑐𝑘 𝑑1 𝑑2 … 𝑑𝑚 ] atunci codul de eroare sau
𝑠𝑦𝑛𝑑𝑟𝑜𝑚𝑒-ul (𝑆) de lungime 𝑘 se obţine cu relaţia :
5
Pentru o soluţie optimală, la codarea SEC_DED, matricea 𝐻 de generare a 𝑠𝑦𝑛𝑑𝑟𝑜𝑚𝑒 -ului
trebuie să îndeplinească următoarele condiţii :
• Numărul de biţi de 1 de pe fiecare coloană trebuie să fie impar – condiţie care derivă din
principiul codării;
• Numărul total de biţi de 1 din matrice trebuie să fie minim – condiţie ce urmăreşte reducerea
complexităţii logicii de control;
• Numărul de biţi de 1 de pe oricare două linii trebuie să fie acelaşi sau, dacă nu este posibil, să
fie cât mai apropiat de o valoare medie (valoare dată de raportul dintre numărul biţilor de 1 din
matrice şi numărul de linii) – condiţie ce urmăreşte ca timpul de propagare prin logica de
control să fie cât mai mic.
De exemplu, pentru o memorie cu lungimea cuvântului de date de 16 biţi, o matrice optimală de
control a parităţii la codarea SEC_DED este următoarea :
1 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 1 1 1 0 0
0 1 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0
0 0 1 0 0 0 1 1 1 0 1 1 1 0 0 1 1 0 0 0 0 0
H =
0 0 0 1 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 0 0 1
0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 1 0 0 0 1 1 1
0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 1 1 1 1 1
Observaţii finale
➢ Implementarea codurilor de control asigură o creştere semnificativă a fiabilităţii şi securităţii
părţii de memorie RAM. Această creştere este cu atât mai ridicată cu cât fiabilitatea circuitelor
componente este mai mare.
6
➢ Varianta SEC_SED conduce la o creştere mai mare a fiabilităţii faţă de varianta SEC_DED. Şi în
ceea ce priveşte complexitatea sau timpul de acces la memorie varianta SEC_SED este de
preferat.
➢ Varianta SEC_DED asigură în schimb o securitate mult mai ridicată. Aşadar, această variantă se
adoptă atunci când condiţia privind securitatea sistemului este dominantă.
➢ Cu privire la erorile ce pot apărea la nivelul logicii de codare, se remarcă faptul că dacă biţii de
control se generează în mod independent, atunci o eroare singulară în logica de codare
afectează un singur bit din cuvântul extins şi, ca urmare, acesta este mascat de logica de
control şi corecţie.
➢ O eroare în cuvântul citit din memorie poate avea mai multe cauze, şi anume:
• Defectarea unui circuit de memorie sau activarea unui defect de memorie greu de detectat
care a trecut de testele aplicate; dacă structura de memorie este formată din circuite
orientate pe bit atunci aceste defecte conduc la erori singulare şi sunt corectate automat în
cazul memoriei cu coduri de control.
• Apariţia unor erori tranzitorii ca urmare a unor perturbaţii severe cum ar fi impactul cu
particule grele. Structura redundantă cu coduri de control constituie o soluţie foarte
eficientă de protejare împotriva acestor tipuri de erori.