Sunteți pe pagina 1din 12

1

SISTEME DE NUMERAIE. CODURI

1.1 Definiii.Clasificri. Baze de numeraie Orice form de existen a materiei reprezint i un suport reflectare a informaiei. Informaia este coninut n semnale ce caracterizeaz fenomenele i procesele. Semnalele n raport cu natura lor pot fi: Mecanice; Magnetice; Electrice; Optice. Din categoriile menionate pot fi supuse prelucrrii numerice doar semnalele de natur electric i optic. Orice semnal poate fi caracterizat printr-o serie de parametri specifici: amplitudine, faz, frecven. Aceti parametrii permit o apreciere cantitativ a semnalului. Domeniul de variaie al acestor parametrii, n contextul electronicii analogice, l reprezint continuul aritmetic. n electronica digital, aceti parametrii au o reprezentare aritmo-morf, adic nu pot lua dect valori discrete.

a ..[ A, B ] ana log a ..{multime.de.valori.discrete} digital

Reprezentarea acestor valori discrete se face prin numere a cror structur depinde de sistemul de numeraie(SN). Sistemul de numeraie se definete ca un ansamblu de reguli ce specific modul de utilizare a unor simboluri grafice numite cifre n vederea reprezentrii numerelor. Caracteristica oricrui sistem de numeraie o reprezint numrul de simboluri (cifre) utilizate n reprezentarea numerelor. Numrul simbolurilor utilizate determin baza sistemului de numeraie notat B. Numrul simbolurilor bi corespunztoare unei baze B va aparine mulimii bi{0,1,2,3,,B-1}. Aceste simboluri formeaz alfabetul sistemului de numeraie. n practica curent sunt cunoscute i utilizate 4 sisteme de numeraie: -sistemul zecimal : a crui baz este B=10 i pentru indicarea bazei se utilizeaz dup numr caracterul D (decimal) ,astfel c bi {0,1,.,9};

-sistemul hexazecimal : a crui baz este B=16 i pentru indicarea bazei se utilizeaz dup numr caracterul H ,astfel c bi {0,1,.,9,A,B,C,D,E,F}; -sistemul octal : a crui baz este B=8 i pentru indicarea bazei se utilizeaz dup numr caracterul Q, astfel c bi {0,1,.,7}; -sistemul binar : a crui baz este B=2 i pentru indicarea bazei se utilizeaz dup numr caracterul B ,astfel c bi {0,1}. Sistemul zecimal este utilizat n exterior pentru afiarea unor informaii, deoarece e perceput i neles de operatorul uman. Sistemul hexazecimal i octal intervin n reprezentarea unor cuvinte care faciliteaz nelegerea funcionrii unor circuite, semnificaia unor operaii sau reprezentarea codurilor unor instruciuni. Sistemul binar este un sistem intermediar care permite realizarea formalismului matematic al funciilor circuitelor numerice. n raport cu importana unei cifre fa de poziia pe care o reprezint n cazul reprezentrii unui numr sistemele de numeraie pot fi: nepoziionale i poziionale. Sistemele nepoziionale sunt caracterizate prin faptul c poziia cifrei n cadrul reprezentrii nu are nici o semnificaie anume. Sistemele poziionale sunt caracterizate prin faptul c poziia cifrei are importan n ceea ce privete semnificaia acesteia, schimbarea poziiei conducnd la schmbarea semnificaiei. Din punct de vedere al semnificaiei , sistemele poziionale pot fi: cu ponderi naturale sau cu ponderi artificiale. Ponderea reprezint semnificaia cifrei n raport cu poziia. n ceea ce privete reprezentarea sistemelor de numeraie exist 2 tipuri de reprezentri: direct; codificat. Reprezentarea direct const n faptul c numrul de simboluri utilizate este egal cu numrul de cifre. Reprezentarea codificat const n faptul c numrul de simboluri este mult mai mic dect numrul de cifre. n tehnica numeric sunt utilizate sistemele de numeraie poziionale i omogene. n acest context, forma general de exprimare a unui numr ntr-o baz B (B>1) este dat de o expresie polinomial de forma: N=bnBn+bn-1Bn-1+.+b1B1+b0B0 (1) n care:bi{0,1,2,.,B-1}, i=0,1,,n i N ntreg bi coeficientul polinomului avnd ca termeni puterile bazei B. Pentru un numr N fracionar : N=bnBn++b1B1+b0B0+b-1B-1+.+b-mB-m (2)

N=

i =m

b B
i

Exemplu:

N=1943D=1*103+9*102+4*101+3*100 N=69.89D=6*102+9*101+8*10-1+9*10-2

1.2 Conversia numerelor n diverse baze Pentru a realiza conversia unui numr dintr-o baz n alta se are n vedere forma general de exprimare a numrului n cadrul sistemelor de numeraie poziionale omogene. Conversia se va face n mod diferit pentru partea ntreag i pentru patrea fracionar. Pentru a pune n eviden algoritmii de conversie de la un sistem de numeraie la altul se va analiza modul de reprezentare al prii ntregi, respectiv a prii fracionare. Considernd forma de reprezentare polinomial a prii ntregi (dat de expresia 1) deducerea algoritmului are n vedere mprirea cu rest: N= ct *numitor + restul Prin mprirea succesiv a numrului N la baza B se obine : N= B*( bn*Bn-1 N=B*N1 + b0
n-2 n-3

+ bn-1*Bn-2 N1

+..+ b2*B + b1) + b0 rest (3)

N1= B*(bn*B + bn-1*B + . + b3*B + b2 ) + b1 N1= B*N2 +b1 Nk = B*Nk+1 +bk N2 rest

Conversia pri ntregi a unui numr ntr-o nou baz se face prin mprirea succesiv a numrului la baz pn cnd se obine un ct nul, reinndu-se resturile. Resturile n ordine invers obinerii lor, vor reprezenta numrul n noua baz. Exemplu: 1435D = (?)H 1435 128 =155 14 11 B Din aceast expresie rezult algoritmul de conversie a prii ntregii a unui numr dintr-un sistem de numeraie n altul. Algoritmul const practic n mparirea sucesiv a prii ntregi a numrului la baza n care se va realiza conversia, mprire care se repet pn cnd ctul devine 0, resturile rezultate n ordine invers a obinerii lor vor da reprezentarea n noua baz. 16 89 80 9 16 5 0 5 1435D= 59BH = 5*162+ 9*16 +B = 1280 + 144 + 11 = 1435

16 0

Pentru a realiza conversia prii fracionare algoritmul va rezulta plecnd de la reprezentarea prii fracionare (conform relaiei 2). Prin nmulire succesiv a n umrului cu baza B se obine : N*B= b-1 + b-2 B-1 + +b-m*B-m+1 p.ntreag N1=partea fracionar

N1*B= b-2 + b-3 B-1 + +b-m*B-m+2 p.ntreag N2=partea fracionar Nk*B= b-k-1+ b-k-2B-1++b-m*B-m+k+1 n consecin din cele prezentate rezult c algoritmul de conversie a pri fracionare const n nmulirea acesteia cu noua baz n care se realizeaz conversia. Din rezultatul nmuliri partea ntreag va reprezenta valoarea primului coeficient al noi reprezentrii. Partea fracionar rezultat se va nmuli din nou cu baza, partea ntreag a produsului reprezentnd urmtorul coeficient, dup care pai se repet pn cnd fie partea fracionar devine zero, fie se atinge precizia dorit. Pentru a deduce numrul de ranguri necesare pentru a obine precizia impus se va presupune c trebuie realizat conversia unui numr din baza B1 n baza B2 cu precizia (B1-m ). n consecin presupunnd c n baza B2 aceast precizie este k se va putea scrie expresia : B2-k <= B1-m Prin logaritmarea expresiei n baza B2 rezult: logB2 B2-k <= logB2 B1-m Prelucrnd expresia se obine numrul de ranguri necesare: k >= m * logB2 B1 Exemplu : Conversiea numrului 0,745 D n hexa cu eroarea 10-4. Va rezulta numrul de ranguri: k >= 4 log1610 4 Conform algoritmului se va obine : 0.745*16=11.92 0.92*16=14.72 0.72*16=11.52 0.52*16=8.32 Rezultatul conversiei va fi : 11=B 14=E 11=B 8 0.745 D = (0.BEB8---) H

Avnd n vedere faptul c 8 i 16 sunt puteri ale lui 2 pentru conversia n binar din zecimal este de preferat s se fac printr-o conversie intermediar. Aceasta se face fie n Hexa fie n Octal deoarece n acest caz se reduc considerabil operaiile de mprire. Pentru a realiza conversia din Hexa sau Octal n binar este necesar s se detrmine numrul de simboluri n cod binar necesare pentru reprezentarea celor 16 cifre ale sistemului H, respectiv cele 8 ale codului Q. nH=log216=4 nQ=log28=3 Avnd reprezentarea n sistemul H sau Q, reprezentarea n B va rezulta prin nlocuirea cifrei H sau Q printr-o tetrad sau triad, care reprezint echivalentul binar al cifrelor aferente celor 2 sisteme (Tabelul1.1). Tabel 1.1 Simbol Binar Octal 0 0000 000 1 0001 001 2 0010 010 3 0011 011 4 0100 100 5 0101 101 6 0110 110 7 0111 111 8 1000 9 1001 A 1010 B 1011 C 1100 D 1101 E 1110 F 1111 Exemplu : 1435 D = 59B H = 101/1001/1011 B 37 Q = 11/111 B Conversia din orice sistem de numeraie n sistem zecimal se realizeaz prin relaiei cunoscute : N = bn*Bn + .. +b1*B + b0 + b-1*B-1 + + b-n*B-n Conversia invers din Binar n Octal sau n Hexa se poate face prin conversie intermediar n Zecimal (conform expresiei anterioare) sau avnd n vedere c 8 i 16 sunt puteri ntregi ale lui 2. n acest caz pentru conversia din Binar n Octal respectiv Hexa se face mprirea n triade respectiv tetrade de la dreapta la stnga pentru partea ntreag i de la stnga la dreapta pentru partea fracional. nlocuindu-se triadele respectiv tetradele prin echivalentul Octal respectiv Hexa va rezulta reprezentarea n Octal respectiv Hexa a numrului binar. Exemplu : 11011001110,01010111 B =11/011/001/110,010/101/11 = 3316,256 Q 11011001110,01010111 B =110/1100/1110,0101/0111 = 6CE,57 H 5

n cazul prii fracionare dac exist echivalentul n hexazecimal poate fi gsit rapid i echivalentul n binar prin nlocuirea fiecrui rang din hexazecimal cu tetrada binar aferent. Dup obinerea numrului n binar poate fi gsit i echivalentul octal al prii fracionare. n cazul n care numrul are i parte ntreag i parte zecimal, partea ntreag se va converti separat prin algoritmul specific i partea zecimal separat. Avnd n vedere valorile bazelor este de preferat ca prima conversie s se realizeze n hexazecimal din care va rezulta imediat echivalentul n binar i apoi n octal. Pe lng algoritmul prezentat, trecerile dintr-un sistem n altul se pot face i direct fr a se mai trece prin sistemul zecimal. Exemplu : 1 0110 1101,1010 1111 0101 0100 16D,AF54 (H) Pentru a trece direct n Hexa se mparte n tetrade de la stnga la dreapta pentru partea fracionar respectiv de la dreapta la stnga pentru partea ntreag. Pentru octal se va proceda similar prin mprirea n triade. 101 101 101 , 101 011 110 101 010 555.53652 (Q) Pentru trecerea din octal n hexa se va realiza o trecere imediat n binar i apoi n hexa: Exemplu: 6742,61(Q)=1101 1110 0010 , 1100 0100(B)=DE2.C2(H) Conversia invers din Binar n Zecimal este facil intr-o conversie intermediar, fie n Octal, fie n Hexa, dup care s se utilizeze formula general. Pentru conversia n Hexa / Octal a numrului N la partea ntreag se va mprii numrul n tetrade / triade ncepnd de la dreapta la stnga i la fel pentru partea fracional dar de la stnga la dreapta, n locuind tetradele / triadele rezultate prin echivalentul lor n Hexa sau Octal. 1.3. Codificarea informaiei. Coduri binare. n tehnica numeric, orice informaie este reprezentat n cod binar, care utilizeaz simbolurile 0 i 1. Aeast reprezentare este impus practic de funcionarea circuitelor numerice. Funcionarea acestora este caracterizat n esen prin faptul c intrrile i ieirile sunt caracterizate doar prin dou nivele de tensiune (0 V i +V) determinate de cele dou stri limit de funcionare a dispozitivelor electronice din structur, adic conducie sau blocat. n consecin pentru a studia formalismul matematic al celor dou nivele de tensiune li se asociaz cele dou valori de 0 i 1. Deci n scopul prelucrrii unei informaii externe (accesibil utilizatorului) de ctre circuitele numerice, se impune translatarea acestei informaii externe ntr-o informaie intern accesibl echipamentului. Aceast translatare se face prin operaia de codificare. Considernd dou mulimi : A = {a0, a1, , an} i B = {b0, b1, , bm} a codifica elementele mulimii A prin elementele mulimii B nseamn a pune n coresponden fiecrui element aA o secven de elemente bibjbkB. Daca mulimea secvenelor de elemente bibjbk asociate elementelor aiA se noteaz cu I, prin codificare se nelege o aplicaie biunivoc de forma : f:AI Deci prin codificare fiecrui element din A i se asociaz un element din I care reprezint o secven de simboluri din B. Elementul iiI care se asociaz elementului aiA se numete cod. Codurile 6

n care sunt reprezentate numai numere se numesc coduri numerice. Codurile n care sunt reprezentate pe lng numere i alte simboluri se numesc coduri alfanumerice. Pentru a pune n eviden operaia de codificare se consider : A = {a0, a1,a2,..,an}; B = {b0, b1, b2,,bm}. a0 = b0b1b2i0 a1 = b1b2b3i1 . . . an = bm-2bm-1bmin Mulimea cuvintelor de cod va fi : I = {i0, i1, i2,,in}; ij , j=1,n este codul reprezentrii. n contextul circuitelor digitale bi{0,1}. Referirea la 0 sau 1 n exprimarea curent poart denumirea de bit. Conform definiiei codificrii un element poate fi reprezentat printr-o succersiune de simboluri de forma : N= bn bn-1b0 Dac simbolurile bi {0, 1} poart denumirea de bii. Bitul cu ponderea cea mai mare (bn) reprezint bitul cel mai semnificativ, iar bitul cu ponderea cea mai mic (b0) reprezint bitul cel mai puin semnificativ. Acetia se noteaz i sub forma : b0=LSB (Last Significant Byte) bn=MSB(Most Significant Byte) Numrul maxim care poate fi reprezentat prin n bii este : N = 2n Conform acestor notaii, prin logaritmare poate fi determinat i numrul de bii necesari reprezentrii unei valori maxime N. Acesta se obine prin logaritmarea expresiei anterioare : log2N = log22n n = log2N n cazul reprezentrii numerelor cu semn, bitul MSB poart denumirea de bit de semn i are valoarea 0 pentru numere pozitive i 1 pentru numere negative. bn= 0 numr pozitiv 1 numr negativ n acestcaz forma polinomului de reprezentare devine: N=(-1)bn (bn-1Bn-1+..+b0) O succesiune de 8 bii se numete octet sau byte. O succesiune de 16 bii se numete cuvnt. Codificarea informaiei n sistemul binar poate fi realizat n mai multe feluri, n funcie de codul utilizat. Codul utilizat se stabilete n funcie de natura prelucrrii. Cele mai utilizate coduri n tehnica digital sunt: binar natural, binar zecimal, Gray, exces 3, 2 din 5, cu paritate. Modul de codificare pentru codurile menionate sunt prezentate sintetic n tabelul 1.2.

Tabel 1.2. Numr Binar 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 A 1010 B 1011 C 1100 D 1101 E 1110 F 1111

BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

Gray 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000

Exces 3 0011 0100 0101 0110 0111 1000 1001 1010 1011 01100 01101 01110 01111 10000 10001 10010

2 din 5 00011 00101 00110 01001 01010 01100 10001 10010 10100 11000

Cu paritate 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0

Codul binar e utilizat n special n analiza i sinteza circuitelor numerice. Combinaiile n codul binar se obin prin adugarea unei uniti la combinaia anterioar. Codul BCD este utilizat n contextul afirii informaiei. Acest cod codific printr-o tetrad (succesiune de 4 bii ) fiecare cifr a codului zecimal, deci aceast tetrad reprezint echivalentul binar al cifrei sistemului zecimal. Codul Gray este un cod n care combinaiile succesive sunt adiacente, nseamn c trecerea de la o combinaie la alta se face prin modificarea unui singur bit. Codul Gray este simetric i ciclic. Aceasta semnific faptul c toate combinaiile sunt simetrice fa de axa de simetrie, adic toate combinaiile sunt adiacente. Codul Gray e utilizat n analiza i sinteza circuitelor. Echivalentul Gray al reprezintrii se obine plecnd de la echivalentul binar natural. Exist dou modaliti de determinare. O modalitate de determinare const n analiza structurii n binar, plecnd de la cel mai semnificativ bit, care se scrie neschimbat, urmtorul se trece nemodificat dac anteriorul este 0 sau dualul su dac anteriorul este 1, dup care operaia se repet. O alt modalitate const n adunarea numrului cu el nsui, translatat cu un rang spre stnga. Se realizeaz suma fr transfer, iar din rezultat se elimin bitul cel mai puin semnificativ, obinndu-se rezultatul n Gray. Exemplu : 1001 B = 9 D = 1101 Gray 1001 + 1001 11011 Codul Exces 3 fixeaz pentru cifra 0 echivalentul binar al cifrei 3, dup care codificarea se continu . Codul este utilizat pentru a se putea discrimina n cadrul circuitelor numerice valoarea 0 a semnalului de absena semnalului. La codul 2 din 5, fiecare cifr este codificat prin 5 bii, fiecare combinaie avnd 2 bii egali cu 1. Codul cu paritate e utilizat n cazul transmiterii la distan a informaiei n vederea verificrii posibilelor erori de transmisie. n acest caz la cuvntul de cod se ataeaz un bit pentru controlul paritii

sau imparitii. n cazul controlului paritii (imparitii), la cuvntul de cod se ataeaz un bit de paritate (imparitate) bit care se va transmite odat cu cuvntul de cod. Acest bit va avea valoarea astfel nct numrul total de bii cu valoarea 1 din cuvntul transmis s fie par (impar). Bitul de paritate se calculeaz automat prin circuite specializate. La recepie, se va calcula prin circuitele de la recepie bitul de paritate (imparitate) al codului recepionat care se va compara cu bitul de paritate (imparitate) transmis. n cazul n care cei doi bii coincid se valideaz transmisia ca fiind corect, n caz contrar se semnalizeaz eroare de transmisie. Exemplificarea obineii bitului pentru controlu paritii pentru un cuvnt binar de 4 bii este prezentat n tabelul 1.2. Acest cod permite determinarea unui numr impar de erori de transmisie. 1.4. Coduri utilizate n sistemele programabile Pe lng codurile analizate n sistemele programabile sunt utilizate i alte tipuri de coduri. Din aceast categorie pot fi amintite : codul complement fa de 1 i complement fa de 2. Codul complement fa de 1 se obine din reprezentarea binar a numrului prin pstrarea bitului de semn i complementarea celorlali bii din reprezentare. Fie numrul binar de forma : N=bnbn-1b1b0 , bi{0, 1} Numrul n cod complement fa de 1 va fi de forma : NC1=bnbn-1..b1 b0 Exemplu: N = 1100111001 NC1= 1011000110 N = 0110011010 NC1= 0001100101 Algoritmul de conversie al unui numr din binar n complement fa de 2 este diferit la numerele pozitive fa de cele negative. n cazul numerelor pozitive reprezentarea n cod complement fa de 2 este aceeai cu reprezentarea n cod binar. Pentru numerele negative codul complement fa de 2 se obine pstrnd bitul de semn dup care biii de la reprezentarea binar se complemeteaz, iar la bitul cel mai puin semnificativ se adaug o unitate. Fie numrul binar de forma : N=bnbn-1b1b0 Numrul n cod complement fa de 2 va fi de forma : NC2= bnbn-1b1b0, dac bn=0, (N>0) bnbn-1..b1(b0+1), dac bn=1, (N<0) Exemplu: N = 010011101 NC2= 010011101 N = 110011101 NC2= 101100011

Conform algoritmului prezentat n complement fa de 2, zero va admite dou reprezentri 0000 i 1111. Aceste dou coduri sunt utilizate n sistemele programabile pentru efectuarea unor operaii aritmetice cu semn. Pe lng codurile enumerate n tehnica digital se utilizeaz i coduri alfanumerice. Aceste coduri stabilesc o aplicaie ntre mulimea informaiei externe formate din cifre, litere i semne specifice denumite caractere i mulimea cuvintelor binare de cod de o lungime oarecare. Aceste coduri sunt necesare pentru a memora mesaje sau pentru reprezentri grafice a unor mesaje. n acest sens se vor codifica n mod corespunztor cele 52 de simboluri pentru minusculele i majusculele alfabetului, 10 simboluri pentru cifrele codului zecimal 0,1,2,3,4,5,6,7,8,9 , 26 simboluri speciale reprezentnd caractere speciale (semne de punctuaie sau comenzi). Fiind circa 88 de simboluri pentru codificare se utilizeaz 7 bii care pot codifica: 27 = 128 simboluri. Deoarece se lucreaz cu cuvinte de 8 bii, al optulea bit se utilizeaz pentru controlul paritii. Codurile alfanumerice cele mai utilizate n tehnica digital sunt codurile ASCII i EBCDIC (Extended Binary Coded Decimal Interchange Code) Codul ASCII (American Standard Cod for Information Interchange) este cel mai utilizat. Codificarea simbolurilor menionate n acest cod este prezentat sintetic in tabelul 1.3. Tabelul 1.3.
CARACTER BLANC ! # $ % & CARACTER @ A B C D E F G COD ASCII 20 21 22 23 24 25 26 27 COD ASCII 40 41 42 43 44 45 46 47 CARACTER COD ASCII ( 28 ) 29 * 2A + 2B , 2C 2D . 2E / 2F CARACTER COD ASCII H 48 I 49 J 4A K 4B L 4C M 4D N 4E O 4F CARACTER COD ASCII CARACTER 0 30 8 1 31 9 2 32 : 3 33 ; 4 34 < 5 35 = 6 36 > 7 37 ? CARACTER COD ASCII CARACTER P 50 X Q 51 Y R 52 Z S 53 [ T 54 \ U 55 ] V 56 W 57 COD ASCII 38 39 3A 3B 3C 3D 3E 3F COD ASCII 58 59 5A 5B 5C 5D 5E 5F

1.5. Coduri detectoare i corectoare de erori. Aceste coduri sunt necesare n vederea determinrii i identificrii erorilor ce ar putea apare n contextul transmiterii datelor ntre diverse sisteme ale sistemului programabil. Detectarea acestora se face avnd la baz mai multe principii : controlul paritii, dubla complementare, utilizarea codurilor ciclice Controlul paritii se face prin mecanismul analizat la codul cu paritate, care const n ataarea la cuvntul de date transmis a unui bit care caracterizeaz paritatea / imparitatea. Acest mod de control se numete control de paritate transversal i permite detectarea unui numr impar de erori. Dac pe lng bitul de paritate transversal se adaug i o paritate longitudinal atunci va exista posibilitatea ca pe lng

10

detectarea erorii s se fac i corectarea. Acest mod de control poate fi practicat n contextul transmiterii unui bloc de date. La sfritul transmiterii fiecrui bloc de date se va calcula o sum de control pentru fiecare rang al biilor din blocul transmis, care va reprezenta i ultimul cuvnt transmis. La recepie se va calcula pentru fiecare cuvnt bitul de paritate, putndu-se astfel identifica cuvntul de date eronat. Se calculeaz apoi suma de control a blocului recepionat, care se compar cu suma de control de la emisie. Va putea fi identificat i bitul eronat din cuvntul n care a aprut eroare. Acest bit va fi bitul plasat pe coloana n care sumele de control de la emisie i recepie nu coincid, i n cuvntul plasat pe linia n care nu coincid biii de paritate. Pentru exemplificare vom considera: Caracter Emisie Emisie Recepie Recepie Cod EMB BPE Cod R BPR 3 0011 0 0011 0 5 0101 0 0101 0 2 0010 1 0010 1 4 0100 0101 1 0 0 0000 0 0000 0 9 1001 0 1001 0 3 0011 0 0011 0 1010 1011 SCE SCR Dubla complementare se utilizeaz pentru testarea memoriei sistemelor n vederea identificrii eventualelor celule de memorie defecte. Algoritmul const n urmtoarele etape : o Citirea cuvntului o Complementarea cuvntului citit o Renscrierea n memorie a cuvntului citit o Citirea din nou a cuvntului scris o Complementarea i apoi compararea cu cuvntul iniial. Dac cele 2 cuvinte nu coincid, rezult c celula respectiv e defect iar prin identificarea biilor care nu coincid se pot identifica celulele de memorie afectate. Exemplu : - considernd c din memorie se citete cuvntul : 10101101 01010010 - cuvntul obinut prin complementare 01010011 - cuvntul nscris n memorie dup complementare 01010011 - cuvntul citit din memorie a doua oar 10101100 - cuvntul complementat dup a doua citire Comparnd cuvntul citit iniial cu cuvntul obinut prin complementare dup a doua citire se poate constata c locaia reprezentnd cel mai puin semnificativ bit este alterat, deci celula de memorie aferent este defect. Bazat pe acest principiu, pentru testarea celulelor de memorie, la iniializarea sistemuuli pot fi realizate rutine care pot detecta i afia automat erorile. Pentru determinarea erorilor de transmisie se utilizeaz codul de control ciclic (CRC Cyclic Redundancy Check). Calculul CRC reprezint cea mai rspndit metod de detectare a erorilor n cazul unui ir lung de bii transmii serie. Aceast metod este utilizat n domeniul transmiterii de date i a nregistrri pe suporturi magnetice. Posibilitatea detectrii erorilor depinde de lungimea codului de control i de lungimea mesjului. Polinoamele generatoare utilizate n mod curent sunt de forma : P(x) = x16 + x15 + x2 + 1 P(x) = x16 + x14 + x + 1 (CRC 16 Forward) (CRC 16 Reverse) 11

P(x) = x16 + x12 + x5 + 1 P(x) = x16 + x11 +x4 + 1

(CCITT Forward) (CCITT Reverse)

Pentru calculul CRC sunt sstabilite rutine care realizeaz aceast operaie. CRC se utilizeaz doar n cazul sistemelor programate. Pe lng codurile enumerate n detectarea i corectarea erorilor mai sunt i coduri speciale cum ar fi codul HAMING.

12

S-ar putea să vă placă și