49
II. SISTEME TOLERANTE LA DEFECTARE II.1. Introducere Toleranţa la defectare nu este un concept nou. Dacă acceptăm evoluţionismul biologic, atunci acest proces al evoluţiei sistemelor vii nu este altceva decât „experimentarea” de către natură a unor variante de structuri apte de a îndeplini anumite funcţiuni, proces în care, prin selecţie naturală, s-a renunţat la nenumărate variante neviabile, în favoarea unor soluţii mai adecvate, din care multe se regăsesc la speciile superioare (vertebrate, mamifere). Multe din aceste soluţii sunt de tipul „ tolerante la defectare”. În domeniul tehnicii de calcul, primele abordări de a construi sisteme tolerante la defectare au fost impuse de slaba fiabilitate a componentelor (tuburi electronice). Un scurt istoric al abordărilor de pionierat în domeniu este relevant: În 1950, calculatorul BRC (Bell Relay Computers) [] era dotat cu două unităţi centrale (CPU), în caz de defectare a uneia din ele, cealaltă unitate executa comenzile următoare defectării. Într-o variantă îmbunătăţită, comanda după executarea căreia se constata defecţiunea era repetată, în ideea că defectul ar fi putut fi rezultatul unui proces aleator; În 1955, la calculatorul UNIVAC IBM-650 s-a aplicat tehnica duplicării, cu verificarea concordanţei rezultatelor celor două module. Un salt calitativ în realizarea unor structuri mai fiabile în domeniul electronicii l-a constituit apariţia transistorului (laboratoarele Bell Telephone, New Jersey,16 decembrie 1947 John Bardeen, Walter Houser Brattain, William Bradford Shockley) şi apoi utilizarea sa pe scară largă, perioadă care a coincis cu programele de dezvoltare a aviaţiei militare şi a programelor spaţiale ale SUA. Astfel. În 1969, la echipamentele de calcul IBM ale rachetei Saturn sau folosit tehnici de triplare a modulelor, precum şi coduri detectoare de eroare (verificatoare de paritate) pentru mărirea gradului de toleranţă la defectare.

sisteme tolerante la defectare

Embed Size (px)

DESCRIPTION

curs la fiabilitate si diagnoza,pentru facultatea de inginerie

Citation preview

Page 1: sisteme tolerante la defectare

II. SISTEME TOLERANTE LA DEFECTARE

II.1. Introducere

Toleranţa la defectare nu este un concept nou. Dacă acceptăm evoluţionismul biologic, atunci acest proces al evoluţiei sistemelor vii nu este altceva decât „experimentarea” de către natură a unor variante de structuri apte de a îndeplini anumite funcţiuni, proces în care, prin selecţie naturală, s-a renunţat la nenumărate variante neviabile, în favoarea unor soluţii mai adecvate, din care multe se regăsesc la speciile superioare (vertebrate, mamifere). Multe din aceste soluţii sunt de tipul „ tolerante la defectare”.

În domeniul tehnicii de calcul, primele abordări de a construi sisteme tolerante la defectare au fost impuse de slaba fiabilitate a componentelor (tuburi electronice). Un scurt istoric al abordărilor de pionierat în domeniu este relevant:

În 1950, calculatorul BRC (Bell Relay Computers) [] era dotat cu două unităţi centrale (CPU), în caz de defectare a uneia din ele, cealaltă unitate executa comenzile următoare defectării. Într-o variantă îmbunătăţită, comanda după executarea căreia se constata defecţiunea era repetată, în ideea că defectul ar fi putut fi rezultatul unui proces aleator;

În 1955, la calculatorul UNIVAC IBM-650 s-a aplicat tehnica duplicării, cu verificarea concordanţei rezultatelor celor două module.

Un salt calitativ în realizarea unor structuri mai fiabile în domeniul electronicii l-a constituit apariţia transistorului (laboratoarele Bell Telephone, New Jersey,16 decembrie 1947 John Bardeen, Walter Houser Brattain, William Bradford Shockley) şi apoi utilizarea sa pe scară largă, perioadă care a coincis cu programele de dezvoltare a aviaţiei militare şi a programelor spaţiale ale SUA. Astfel. În 1969, la echipamentele de calcul IBM ale rachetei Saturn sau folosit tehnici de triplare a modulelor, precum şi coduri detectoare de eroare (verificatoare de paritate) pentru mărirea gradului de toleranţă la defectare.

Abordările teoretice ale toleranţei la defectare se leagă de numele matematicianului John von Neumann care, după o serie de articole referitoare la multimodulare, publică în 1956 lucrarea sa „Probabilistic Logic and the Synthesis of Reliable Organism from Unreliable Components”. Începând din 1070, domeniul desemnat prin acronimul FTC (Fault Tolerant Computing) cunoaşte o deosebită extindere, mai multe reviste IEEE ca, Journal od Design and Fault Tolerant Computing, IEEE Transaction on Computers publicând cele mai noi soluţii sau abordări ale domeniului.

II.2. Indicatori cantitativi ai sistemelor tolerante la defectare.Calificarea sistemelor din punct de vedere al siguranţei în funcţionare este o activitate

materializată prin elaborarea unor normative de firmă sau chiar standarde naţionale. Pentru domenii speciale ca energetică, navigaţia aeriană (civilă şi militară), cercetări aerospaţiale, asemenea normative se articulează într-un sistem complex privind reglementarea (normarea) procedurilor de calificare a componentelor, a modului de calcul al indicatorilor de calitate, (inclusiv a celor de fiabilitate), clasificarea aplicaţiilor etc.

Enumerăm câţiva din aceşti indicatori cantitativi ai sistemelor tolerante la defectare, unii dintre aceştia făcând deja obiectul unor discipline de studiu ca fiabilitatea sistemelor.

a. Fiabilitatea R(t ) (de la engl. reliability) – definită ca probabilitatea de bună funcţionare pe interval de timp (limitat sau nelimitat). Este un indicator asociat unor sisteme nereparabile, sau acolo unde se impune cerinţa realizării unor valori foarte ridicate, exprimat sintetic prin MTBF (media timpului de bună funcţionare) sau prin funcţia de fiabilitate a sistemului de vârstă t, destinat îndeplinirii unei misiuni de durată x:

Page 2: sisteme tolerante la defectare

(78)

De exemplu, pentru sistemul de calcul de control al zborului avioanelor militare, de impune o valoare , adică la fiecare100 milioane de comenzi date suprafeţelor active de dirijare, se acceptă doar erori.

De remarcat că toleranţa ridicată la defectare măreşte fiabilitatea, dar nu presupune automat că sistemele de înaltă fiabilitate sunt tolerante la defectare: un sistem cu structură redusă la un număr redus de componente de înaltă fiabilitate este puţin probabil să se defecteze, dar odată ce acest lucru se produce, sistemul cade, tocmai din cauza simplităţii sale.

b. Disponibilitatea A(t), (de la engl. availability) – definită ca probabilitatea de bună funcţionare în vecinătatea momentului t, ce caracterizeză sistemele cu componente reparabile, sau sistemele destinate aplicaţiilor time-shared, (în mod de lucru interactive) ca automate bancare, sisteme computerizate de rezervare bilete avion etc.

c. Siguranţa S(t), (de la engl. safety) – definită ca probabilitatea ca sistemul să-şi realizeze obiectivul sau, suspendându-şi anumite funcţiuni, să asigure un mod de lucru care să nu provoace oprirea altor sisteme, sau/şi securitatea fizică a personalului de deservire. Această capacitate este exprimată de noţiunea de fail-safe. În acest sens, deja din faza de proiectare se impune această condiţie: de exemplu, în procesele chimice, un ventil de comandă trebuie proiectat astfel încât dacă el de defectează, acesta să se producă pe poziţia „închis”: în aceaşi idee, un ventil de siguranţă, dacă se defectează (blochează), aceasta trebuie să se producă pe poziţia „deschis”.

În general, .d. Performabilitatea P(L,t), (de la engl. performability) - definită ca probabilitatea ca

sistemul să funcţioneze la un nivel de calitate L(level) . În anumite aplicaţii, sistemele se proiectează astfel ca după defectare, acestea să-şi continue lucrul la parametri funcţionali inferiori : de exemplu, la sisteme multi -procesor, la defectarea unui microprocesor, sistemul nu se opreşte ci continuă să proceseze datele, dar la o viteză mai mică, sau limitând capacitatea de accesare a memoriei pentru anumite subsisteme. Revenind la sisteme multi-procesor cu k procesoare, nivelul de calitate se poate exprima prin numărul de procesoare în bună stare de funcţionare.

e. Mentenabilitatea M(t), (de la engl. maintainability) – definită ca probabilitatea ca defecţiunea să se remedieze în intervalul de timp . Să observăm că operaţia de remediere include detectarea, localizarea, repararea fizică a defectului şi repunerea în funcţiune a sistemului, unele din duratele asociate acetor operaţii fiind variabile aleatoare.

f. Testabilitatea T(t) - (de la engl. testability) - definită ca probabilitatea testării corecte a anumite defecte, sau clase de defecte. Pentru sisteme de calcul, unele din aceste teste se realizează prin autotestare.

g. Dependabilitatea (de la engl. dependability) este ansamblul indicatorilor definiţi la punctele a, b,…,f. Aşadar, pentru a caracteriza un sistem tolerant la defectare, fiecare din aceşti indicatori exprimă o anumită calitate ce este legată de capacitatea de toleranţă la defectare. Aceşti indicatori diferă ca valoare în funcţie de tipul aplicaţiei.

II.3. Aplicaţii de calcul tolerante la defectare

II. 3.1. Aplicaţii de lungă durată (long-life applications)Aplicaţii tipice: cercetări spaţiale, sateliţi. O astfel de aplicaţie a fost sonda spaţială

Pioneer 10, destinată să transmită fotografii de pe Jupiter, şi apoi din diverse puncte ale traiectoriei, în drumul ei înafara sistemului solar. Fluxul de transmisii de pe sondă a fost drastic limitat ori de câte ori prioritare au fost operaţiunile de conducere a sistemelor de navigaţie. Pentru acest tip de aplicaţii, se impune un ,

Page 3: sisteme tolerante la defectare

unde are, pentru această aplicaţie, valoarea . Un calcul elementar (vezi cap. I) duce la concluzia că un astfel de sistem trebuie calificat pentru un MTBF de minimum 200 de ani. O cale de obţinere a unor fiabilităţi ridicare pe termen lung este, după cum o arată şi exemplul sondei, oprirea temporară (pe durate scurte - de ordinul săptămânilor)a unor tipuri de activităţi.

O altă soluţie pentru aplicaţiile de lungă durată este duplicarea componentelor. (veyi în continuare paragraful). Utilizată în sistemul de comandă şi control a sondei Voyager, ea a însemnat dublarea fiecăruia din cele 8 blocuri principale (date zbor, contro altitudine, înregistrare date, telemetrie modulară, subsisteme de comandă şi control, sistem radio, detector de comenzi, receiver). Pentru fiecare din acestea, una din cele două blocuri dublate avea rolul de „primary”, destinat regimului de funcţionare normală, celălalt, „backup” ca rezervă, comanda de comutare dându-se din centrul de control.

II.3.2. Aplicaţii criticeÎn aceste aplicaţii, criteriile principale de calificare a modului de funcţionare sunt

securitatea personalului, securitatea mediului, etc. O cerinţă tipică este asigurarea unei fiabilităţi de (sau, după caz, mai

ridicate), dar în condiţii bine specificate de număr şi tipuri de defecţiune ce pot să se producă în aceste trei ore.

Astfel, sistemul de comandă al zborului avionului X-29, care a intrat în serviciu în 1983 şi încă mai este în exploatare, este proiectat după principiul triple-duplex (vezi în continuare paragraful) (fig. 17). Este util să menţionăm că acest tip de avion a fost conceput să fie instabil din punct de vedere aerodinamic, astfel încât stabilizarea sa putând fi realizată doar de un sistem computerizat cu mare viteză de răspuns la perturbaţii. Această cerinţă a putut fi aplicată odată cu trecerea la comanda prin cablu (fly- by- wire) în buclă închisă, adică utilizarea servomotoarelor electrice cu reacţie amplasate în imediata apropiere a suprafeţelor active (eleroane).

Fig. 17 – Schema bloc de comandă a zborului unui avion militar (X-29)

Câteva observaţii referitoare la fig.17: Calculatorul pentru comanda zborului este triplat (computer 1,2,3)Ş

SenzoriServomotoaresuprafeţe active

Computer1

Comandă&afişare cabină

Computer2

Computer3Computer 1(2,3)

Analog computer

Convertor D/A

Swich

Digitalcomputer

Convertor A/D

Page 4: sisteme tolerante la defectare

La rândul lui, fiecare din aceste module este în structură duplex; aici, ideea de bază este de a utiliza două moduri diferite de rezolvare a ecuaţiilor diferenţiale privind corecţiile ce trebuiau aplicate în vederea traiectoriei reale (la momentele de timp trecute şi prezentă) în vederea obţinerii traiectoriei dorite (viitoare). Swich-ul transmitea mai departe valoarea calculată numai dacă ieşirile celor două tipuri diferite de calculatoare erau egale.

II.3.3. Aplicaţii cu amânare (Postponement Applications)Sunt acele aplicaţii în care operaţiile de mentenanţă sunt scumpe sau nu se pot efectua

într-un interval de timp fără ca aplicaţia să sufere. În aceste aplicaţii (de exemplu: staţii telecomandate), testarea periodică este o cerinţă imperativă.

II.3.4. Aplicaţii de înaltă disponibilitate (High Availability Applications)Cuprinde aplicaţii de tip bancar. Pentru aceste aplicaţii, se foloseşte dublarea

modulelor, urmată de comparare. Valoarea disponibilităţii depinde de felul aplicaţiei şi poate fi exprimat prin durata şi numărul de căderi pe un interval de timp dat.

III.4. Defectare, eroare cădere Defectarea (fault) este procesul fizic neprevăzut care apare în structura unei

componente. El se poate produce la nivelul hard sau soft al echipamentului de calcul. La nivel hard, defectele sunt de tip scurt-circuit, întreruperea unui circuit. La nivel soft, defectarea poate apare de exemplu sub forma de buclă închisă de operaţii, fără posibilitatea ieşirii din buclă.

Eroare (error) este manifestarea defectului fizic: de exemplu, un scurt –circuit produce blocarea permanentă pe o anumită valoare logică.

Căderea (failure) cauzează un regim de funcţionare nedorit, în general o abatere de la un regim normal de funcţionare (malfuncţionare).

Aşadar, cei trei termeni sunt în relaţie de cauzalitate, conform figurii 18:

Exemplu: fie sumatorul complet (full- adder) şi un scurt circuit între intrarea A şi masă. (fig.19):

A B C0 Aer≡1 S C1 Ser C1 er

0 0 0 0 0 0 0 00 1 0 0 1 0 1 01 0 0 0 1 0 0 01 1 0 0 0 1 1 00 0 1 0 1 0 1 00 1 1 0 0 1 0 11 0 1 0 0 1 1 11 1 1 0 1 1 0 1

Fig.19- Sumatorul completAici, punerea la masă este defectul, valorile evidenţiate cu bold reprezintă eroarea: dacă cele două ieşiri sunt tensiuni utilizate mai departe, efectul erorii poate cauza acţionarea (sau dimpotrivă, neacţionarea) unui releu minimal de tensiune, ceea ce constituie căderea sistemului protejat de releu.

Defect Eroare Cădere

ABC0

S

C1

SUM

Page 5: sisteme tolerante la defectare

Din modul de manifestare al defectului, erorii şi căderii, se poate spune că defectul se manifestă la nivel fizic, eroarea se manifestă la nivelul informaţiei, iar căderea se produce în universul exterior, cel al utilizatorului. În consecinţă, se poate pune în evidenţă un fenomen de întârziere (latenţă) între defect şi eroare, respectiv între eroare şi cădere, întârzieri exprimate în unităţi de timp:

Întârzierea (manifestării) defectului - ; Întârzierea (manifestării) erorii - ;Cele două întârzieri se însumează: de regulă, are o valoare constantă, în timp ce

este o variabilă aleatoare.

III.5. Modele de defectare

Defectele, după modul lor de manifestare în timp, pot fi:- defecte permanente;- defecte tranzitorii

În cele ce urmează vom aborda modelele de defectare corespunzătoare defectelor permanente. Calitatea unui model se apreciază după măsura în care defectele circuitului real se pot reproduce pe model. Acest parametru – raportul dintre numărul de defecte modelabile şi numărul defectelor posibile ale circuitului fizic – se numeşte factor de acoperire al modelului.

II.5.1. Modelul „ blocare pe valoare logică” (logical stuck- on)În aceste modele se acceptă următoarele reguli privind modul de manifestare al defectului:- blocarea pe 0 (1) logic afectează intrările şi ieşirile componentelor;- modulul îşi păstrează nealterat funcţia sa;- defectul este permanent;Fie poarta AND şi defectul de blocare al intrării I1 pe 1 (I1-b-1, sau I1≡1).

Fig.20 – Blocarea pe 1(0) logic a porţii AND

Conform regulilor enunţate mai sus, defectul de blocare al intrării I1 pe 1 înseamnă că în permanenţă, indiferent de valoarea aplicată pe I1, această intrare va fi blocată pe 1(0) pe porţiunea evidenţiată cu linia îngroşată. Defectarea nu se referă aşadar la schimbarea modului de funcţionare al porţii, care rămâne acelaşi, doar că va realiza funcţia AND pentru una din intrări blocate pe o anume valoare logică, cealaltă putând lua valoarea 0 sau 1.

Aceste modele sunt independente de tehnologia de realizare a componentelor. Avantajul lor este că pentru detectarea defectelor se utilizează schemele logice ale circuitelor şi funcţiile logice asociate acestor scheme. Există însă cazuri când componente realizate într-o anumită

OI1I2

1(0)

Page 6: sisteme tolerante la defectare

tehnologie se comportă în mod specific pentru anumite defecte. În acest caz modelul logic trebuie completat cu un circuit logic combinaţional (sau secvenţial) care să modeleze felul specific al manifestării erorii în circuitul respectiv:

Exemplu: fie poarta NOR realizată cu transistoare CMOS conform figurii 20:

Fig.20 - Poartă CMOS NOR

Dacă în momentul apariţiei defectului de întrerupere al conexiunii A la intrarea pe primul transistor „n”, intrările au valorile , al doilea „n”se blochează, calea VSS-VDD se întrerupe, astfel ieşirea O (punctul F) devine borna unei capacităţi care păstrează tensiunea avută în momentul defectării, tensiune scade în timp, astfel ieşirea O va avea valoarea 1 sau 0 în funcţie de valoarea instantanee a tensiunii reziduale pe F. Aceste defecte speciale, numite „suck-on-open” (blocare–pe- deschidere)se modelează, prin completarea porţii NOR cu următoarele componente (fig. 21):

O

„p”

F

VSS

VDD

I1

I2

„n”

FI1I2

D Q

CLK

A

M1

BM2

M3

O

OI1I2

Page 7: sisteme tolerante la defectare

Fig. 21 – Modelul CMOS NOR extins pentru defectul „stuck-on-open”

Bistabilul D modelează memorarea defectului în momentul apariţiei sale. Pentru defectele, altele decât cele tip „stuck-on-open”, acestea se pun pe

conexiunile A, B, F cu ; Pentru defectele de tip „stuck-on-open”, se pune 0 pe:

- M1, dacă defectul stuck-on-open” afectează canalul „n” comandat prin A;- M2, dacă defectul stuck-on-open” afectează canalul „n” comandat prin B;- M3, dacă defectul stuck-on-open” afectează oricare din canalele „p”;Aşadar în acest caz, modelul de defectare ce acoperă toate tipurile de defecte ale

circuitului logic combinaţional NOR, este un logic secvenţial.

II.5.2. Defecte singulare.Un defect singular se caracterizează prin aceea că afectează o singură conexiune. Motivul

pentru care ipoteza defectului singular se ia în considerare în procesul de detecţie are la bază următoarele considerente:

- marea majoritate a defectelor in sistemele de calcul sunt defecte singulare;- probabilitatea de producere pD a defectului dublu (în cazul defectelor independente)

este egal cu produsul al probabilităţilor defectelor singulare: dacă

;- metodele de detecţie ale defectelor singulare sunt mai simple decât cele destinate

defectelor multiple;- de regulă ceea ce numim defect multiplu este de multe ori apariţia, la intervale de timp mai

mici decât o anumită perioadă stabilită pentru testarea periodică. Aşadar, prin elaborarea unor teste mai rapide şi rulate mai des, probabilitatea apariţiei defectelor multiple se poate reduce.

II. 6. Redundanţa.În sens restrâns, în cadrul sistemelor tehnice, redundanţa exprimă prevederea unor

modul suplimentare cu aceeaşi funcţie ca cea a modulelor de bază. În sens larg, redundanţa semnifică ceva excedentar, peste strictul necesar. Pentru sisteme de calcul redundanţa se poate utiliza pe cele mai multe nivele distincte:

- redundanţă harware;- redundanţă software;- redundanţă informaţională;- redundanţă de timp;

Page 8: sisteme tolerante la defectare

Fie un filtru digital cu microprocesor (MP) conform schemei principiale din fig. 22:

Fig.22 – Schema principială a unui filtru cu microprocesor

Într-o primă variantă, nu se prevede redundanţă hard, iar softul de comandă al MP este minimal. Dacă adăugă un soft pentru controlul domeniului de tensiunii a tensiunii de intrare, aceasta va impune şi mărirea memoriei. Dacă dorim să verificăm paritatea tensiunii de ieşire, aceasta înseamnă redundaţă informaţională (pentru bitul suplimentar). Dacă repetăm fiecare operaţie de calcul şi compararea celor două rezultate,aceasta înseamnă redundanţă de timp şi evident o extindere a softului.

II.6. 1. Redundantă hardwareAşadar redundanţa la nivel hardware înseamnă adăugare de module suplimentare. În

funcţie de modul de operare al modulelor de bază şi a celor suplimentare, putem alege trei căi:a. redundanţă pasivă;b. redundanţă activă;c. redundanţă mixtă.

II.6.1.1. Redundanţa pasivăÎn această abordare, sistemul nu realizează operaţia de detectare a modulului defect, ca

urmare nici nu se reconfigurează. Ideea de bază este realizarea unui mecanism de votare majoritară (majority voter). Prin aceasta, practic defectul este mascat (ignorat)de funcţionarea modulelor în stare de bună funcţionare, atâta timp cât numărul modulelor bune este mai mare decât cel al modulelor defecte. Ceea mai simplă structură care permite alegerea rezultatului majoritar este ceea triplu modulară (TMR : triple -modular redundancy), conform figurii 23:

Fig.23 – Redundanţă triplu modulară

Modulele 1,2,3 sunt identice; voterul este un circuit relativ simplu, de înaltă fiabilitate. Această structură funcţionează corect atâta timp cât cel puţin două module şi voterul funcţionează corect. Dacă fiabilităţile modulelor şi voterului sunt Rm, respectiv Rv, fiabilitatea sistemului din figura 22 este:

UoutUIn Convertor

A/DMP Convertor

D/A

In

Out

Modul1

Modul1

Modul1

Voter

Page 9: sisteme tolerante la defectare

(79)

unde s-a folosit formula de calcul pentru variabila de repartiţie binomială .

Notă: Fie un eveniment A de probabilitate p rezultatul unui experiment E. Probabilitatea ca în urma repetării experimentului E de n ori, evenimentul A să se producă de k ori este dată de relaţia:

(80)Variabila x (numărul de apariţii al evenimentului A), descrisă de procedura de mai sus, este o variabilă

de repartiţie binomială.

Evident, punctul slab al sistemului din fig. 23 este voterul. Totodată, conform (79), fiabilitatea sistemului este mai mică decât a voterului. O soluţie care se impune de la sine este aplicarea triplării şi pentru voter (fig.24)

Fig. 24 – Redundanţă triplu modulară pentru modul şi voter

Având în vedere că această structură realizează o anumită operaţie (adunare, comparare, calculul unei funcţii), care este mărime de intrare pentru o altă operaţie, această modulare este aplicată până când se obţine mărimea de execuţie, care trebuie să fie unică (fig.25):

Fig.25 – Aplicarea consecutivă a TMR

Aşa cum s-a observat din cele de mai sus, performanţele structurilor TMR depind de modul de realizare al voterului.

II.6.1.1.a. Voterul hardware

Pentru o structură TMR, schema voterului cu funcţia logică:

Out2

Out1

Out3

In

Modul 1

Modul 2

Modul 3

Voter2

Voter1

Voter3

In 3xM1+3xV1

3xM2+3xV2

Page 10: sisteme tolerante la defectare

este conform fig. 26:

Fig. 26. Voter hardware

Acst voter realizează condiţia „cel puţin 2 din trei”. Voterul votează un bit. Pentru un voter pe 8 (16) biţi sunt aşadar necesare 8 (16 circuite ) ca cea din fig. 26. Există însă aplicaţii care nu permit apariţia unei valori eronate chiar pentru perioade mici de timp Aceste erori se pot datora nesincronizării intrărilor. Sincronizarea intrărilor se poate realiza prin utilizarea bistabilelor în montaj master-slave (fig.27). Fiecare din bistabilele D din fig. 27 sunt triggerate pe frontul pozitiv, adică ieşirea păstrează valoarea intrării, corespunzătoare momentului când semnalului clock trece de pe 0 pe 1.

Fig.27 - Voter cu sincronizarea intrărilor şi ieşiriiDiagrama de timp a semnalelor din figura 27 , pentru intrările este dată în figura 28:

A

B

C

Z

A

B

C

D Q

CLK

D Q

CLK

D Q

CLK

D Q

CLK

D Q

CLK

D Q

CLK

D Q

CLK

D Q

CLK

Z

CLK CLK

Timp de votare

clk

A

B

C

Z

Ieşire votată disponibilă

Intrărizăvorite

Page 11: sisteme tolerante la defectare

Fig. 29 - Diagrama de timp a voterului din fig. 27

După cum se observă în diagrama din fig.28, intrările sunt memorate în bistabilul master la frontul pozitiv al lui CLK, iar în bistabilele slave, la frontul pozitiv al lui , moment în care are loc votarea de către voterul propriu-zis. Astfel el este memorat în bistabilul slave al de la ieşirea voterului la următoarea trecere de la 0 la 1 a lui .

II.6.1.1.b. Votare software Un mecanism de votare prin software trebuie să poată realiza următoarele funcţii:

- memorarea intrărilor;- votarea popriu-zisă efectuată de procesor programat pentru votare- memorarea valorilor votate;- n-modularea ieşirii;

Softul de votare este simplu: pentru o structură TMR, trei microprocesoare asigură votarea prin acelaşi tip de program: acesta constă în compararea, două câte două a celor trei intrări,în urma căreia valoarea de ieşire este cea care, din cele comparaţii, găseşte identitatea dintre valorile comparate.

Fiecare din cele două tehnici de votare are avantaje şi dezavantaje: comparaţia cuprinde doi termeni : viteza şi harware-ul necesar realizării vitezei. Să observăm că un voter pe 16 biţi în structură TMR conform fig.28 necesită 24 de porţi logice şi 128 bistabile D. Ieşirea votată este disponibilă practic după trei tacţi. Votarea software depinde de viteza procesorului. Pe de altă parte, prin modificarea programului, putem mări unele performanţe ale voterului, ca de exemplu fiabilitatea, prin prevederea repetării operaţiei de votare.

Page 12: sisteme tolerante la defectare

O altă problemă în alegerea tehnicii de votare este cauzată de modul de obţinere al datelor. Astfel. Considerând că avem datele provenite de la un senzor triplat de presiune (pentru măsurarea într-un acelaşi punct „geometric”a presiunii), prin utilizarea de convertoare A/D, este posibilă apariţia de valori binare diferite la biţii cei mai puţini semnificativi. Soluţionarea hard înseamnă practic renunţarea luării în considerare a unui număr de biţi la votare, în tip ce votarea soft permite tratarea mai elastică a acestui fenomen. O modalitate de soluţionare a fenomenelor de neconcordanţă, chiar în cazul existenţei a două măsurării corecte(x1, x2) şi celei de-a treia eronată (x3)este metoda selectării valorii de mijloc (mid-value), ilustrată în fig.30:

Fig. 30 – Metoda de selectare a valorii de mijloc

Punctul vulnerabil al redundanţei pasive este că, indiferent de tehnica de votare, ultima valoare de ieşire trebuie să fie o valoare unică, aplicată elementului de execuţie (exemplu:

)Această cerinţă decurge aşadar din faprul că de cele mai multe ori, elementul de execuţie este unic, sau chiar dacă el este dublat sau triplat, elementele redundante sunt în rezervă caldă, adică intră în funcţiune doar la constatarea defectării elementului de execuţe desemnat funcţionării în regim normal.

II.6.1.1.c. Tehnica de votare flux-summingUna din abordările de realizării dezideratului de a obţine o ieşire unică corectă este

redată în cele ce urmează. În acest exemplu tehnica TMR se aplică comenzii curentului de excitaţie unui servomotor de mică putere şi se bazează pe proprietăţile reglării în buclă închisă. Voterul propriu-zis este un transformator cu patru înfăşurări, trei de intrare şi una de ieşire, cu proprietatea că suma solenaţiilolor de intrare este proporţională cu curentul de ieşire (fig. 31). Mărimea controlată (poziţia elementului acţionat de motor – unghi, moment rezistent, etc). este comparată cu mărimea prescrisă, calculată în etajul precedent, prin trei module identice, a căror mărime de ieşire sunt curenţii aplicaţi pe înfăşurările de intrare ale transformatorului.

Valoare selectată

Valoare selectată Valoare

selectată

X1

X2

t

X3

X

Valoare selectată

In1

Feed-back1

In2Feed-back2

In3Feed-back3

Modul 2

Modul 3

Modul 1

Servomotor+

Element acţionat

Page 13: sisteme tolerante la defectare

Fig. 31 – Tehnica flux-summing

În cazul când toate modulele furnizează aceeaşi mărime de ieşire (analogică), fiecare din cele trei înfăşurări furnizează 1/3 din fluxul total aplicat înfăşurării de ieşire a tranformatorului. Dacă un modul se defectează, aceasta , în funcţiune de natura defectului, poate produce următoarele urmări:

- întreruperea curentului într-una din înfăşurările de intrare ale transformatorului. Fluxul rezultant scade la două treimi din valoarea necesară. Datorită reacţiei negative celelalte două module sesizează abaterea de la mărimea impusă, abatere mai mare faţă de ceea din momentul precedent întreruperii curentului la ieşirea modului defect. Ca urmare, modulele care lucrează corect vor creşte curenţii lor de ieşire pentru a compensa pierderea de flux cauzată de modulul defect;

- blocarea ieşirii unui modul la valoarea maximă . În acest caz, unul din modulele nedefectate va produce un flux egal şi de sens contrar cu valoarea furnizată de modulul defect, iar celălalt modul nedefectat va conduce procesul.

Să observăm că această tehnică nu este de fapt un proces de votare, ci de „ignorare” a defectării. În varianta prezentată, în ceea de-a doua ipoteză de defectare – posibilă prin punerea la masă a unuia din canalele de măsură a reacţiei – comportarea celor două module nedefecte este implementată printr-o comandă adecvată. Pentru cest subcaz, o rezolvare ar fi prevederea unui voter pentru cele trei reacţii. Dacă însă blocarea pe maxim a unuia din curenţii de ieşire are o ală cauză, revenirea la valoarea de comandă corectă, prin mecanismul de automenţinere a valorii fluxului este mai lentă.

II.6.1.1. Redundanţa activă

II.6.1.1.1. Acoperirea defectului (fault coverage)După cum s-a precizat în paragraful III.4. efectul defectării (fault) este eroarea. Ca urmare, din punct de vedere al detecţie şi după caz, a localizării defectului, ordinea operaţiilor este:

1. detectarea erorii2. localizarea defectului3. înlocuirea modulului defect efectelor- acoperirea defectului.

În sens larg, acoperirea înseamnă rezolvarea detectării erorii sau a localizării defectului. Fie F mulţimea defectelor unui sistem. Un sistem de detecţie şi de localizare are ca scop fie detecţia şi localizarea defectelor (sau claselor de defecte) cele mai probabile, fie detecţia şi localizarea defectelor vitale, fie – la limită- detecţia şi localizarea tuturor defectelor posibile. Acoperirea defectului, se defineşte cantitativ ca raportul dintre numărul defectelor detectabile- şi implicit rezolvabile- şi numărul total de defecte posibile:

(81)

Page 14: sisteme tolerante la defectare

Desigur, noţiunea de acoperire se aplică atât detecţiei erorii, cât şi localizării şi înlocuirii componentelor defecte. Aceste valorile ale lui C caracterizează astfel cantitativ performanţele unui sistem activ de detecţie.

III.6.1.1.1. Factorul de acoperire şi fiabilitatea sistemelor tolerante la defectare (FTS)Cazul I.Să considerăm unul din cele mai simple arhitecturi de redundanţă activă, cel al

funcţionării în paralel a două unităţi cu funcţii identice, unul desemnat ca modul activ, celălalt ca rezervă (vezi paragraful II.6.1.1.2 a.). Se comparară în permanenţă ieşirile celor două unităţi: în momentul când valorile acestora diferă, se detectează care din module este defect, celălalt preluând funcţia de unitate activă.

Fie fiabilităţile celor două module şi C factorul de acoperire al sistemului de detecţie. Funcţia de fiabilitate a sistemului este:

(82)Pentru :

(83)Pentru

(84)Să reprezentăm grafic fiabilitatea sistemului, funcţie de factorul de acoperire C:

Cazul II.Să considerăm un sistem cu redundanţă activă, cel al funcţionţrii în paralel a două

unităţi cu funcţii identice, unul desemnat ca modul activ, celălalt ca rezervă. Se comparară în permanenţă ieşirile celor două unităţi: în momentul când valorile acestora diferă, sistemul de diagnozare având capacitatea de a localiza defectul (vezi paragraful ). În acest caz, funcţia de fiabilitate a sistemului este:

(85)Pentru :

(86)Pentru

Rsys

2R-R2

R

1 C

Page 15: sisteme tolerante la defectare

(87)Să reprezentăm grafic şi acest caz:

Din compararea celor două cazuri reiese că pentru un sistem de detecţie (sau localizare cu factor de acoperire redus, sistemul descris în cazul I este mai fiabil (punctul de plecare al dreptei este din ordonata R, cu ). Evident, pentru C mare, cele două tipuri de sisteme au aceeaşi fiabilitate

III.6.1.1.2. Factorul de acoperire şi disponibilitatea FTSSă considerăm un FTS care, în cazul defectării, are capacitatea să se reconfigureze

astfel încât să-şi continue funcţia principală, la un nivel de performanţă inferior. Astfel acest sistem are trei stări de funcţionare:

0 – starea de bună funcţionare;1 – starea de funcţionare defectă, dar sigură (după reconfigurare);2 – stare defectă (nesigură), datorită nedetectării defecţiunii.

Modelul Markov al unui astfel de sistem este conform fig. 32:

Fig.32- Modelul Markov cu trei stări al sistemului reconfigurabil

În fig. 32, este intensitatea de defectare a sistemului. Cantităţile înscrise pe arce reprezintă probabilităţile instantanee de tranziţie pe durata de timp . Astfel, este probabilitatea ca sistemul să treacă din starea 0 în starea 1, factorul de acoperire C fiind luat aici cu sens de „probabilitate de detecţie a defectului”. Buclele cu probabilităţile instantanee de tranziţie unitare exprim[ faptul că sistemul rămâne în mod sigur în starea respectivă (1 sau 2). Ecuaţiile asociate fg.32 sunt:

Rsys

2R-R2

R2

1 C

1

1

)1( Ct

Ct 0

2

1

t 1

Page 16: sisteme tolerante la defectare

(88)

sau, împărţind cu :

(88a)

Să notăm cu transformata Laplace a lui P(t). Reamintim că:L(P’(t)) (89)

Pentru orice moment de timp, (90)

În ipoteza că , din (90) rezultă că . Cu luarea în considerare a acestor valori, sistemul 88a devine:

(91)

Soluţiile sistemului sunt:

(92)

Aplicând asupra funcţiilor din (92 transformata Lapalace inversă se obţin:

(93)Suma dintre cele două probabilităţi P1 şi P2 este tocmai disponibilitatea A(t)a sistemului:

(94)Pentru

(95)

Relaţia (95) spune că probabilitatea de bună funcţionare a sistemului în exploatare este egală cu valoarea factorului de acoperire al defectului!

II.6.1.1.2 Arhitecturi de redundanţa activă Redundanţa activă implică detecţia defectului, localizarea defectului şi acoperirea defectului. Argumentul cel mai puternic în sprijinul alegerii redundanţei active în locul celei pasive este că în general este preferabil să acceptăm erori temporare (remediate prin reconfigurare), în loc să prevedem un sistem de înaltă fiabilitate, obţinut printr-un grad ridicat de redundanţă cerut de necesitatea de a masca defectul.

II.6.1.1.2 a. Dublare cu compararePrincipiul acestei arhitecturi este prevederea a două module identice, care efectuează

aceleaşi operaţii de calcul în paralel şi compararea permanentă a celor două rezultate (fig. 33).

Out

Acceptare/refuzIn

Modul 1

Modul 2

comparator

Page 17: sisteme tolerante la defectare

Fig. 33 - Arhitectură tip dublare cu comparare

În cazul când cele două valori de ieşire sunt diferite, este generat un mesaj de eroare. In această formă simplificată se realizează aşadar doar detecţia erorii, nu şi identificarea modulului defect. Pe de altă parte, defectarea comparatorului este ea însăşi o posibilă sursă a erorii.

O variantă mai bună, în cazul duplicării microprocesoarelor este de a implementa operaţia de comparare în softul ambelor microprocesoare. Fiecare procesor are propria memorie, dar în mod suplimentar o memorie auxiliară two-port transferă rezultatele de la un procesor la celălalt, în scopul efectuării comparaţiei. Ambele microprocesoare efectuează aceleşi calcule iar rezultatele sunt puse atât în memoria proprie, cât şi în memoria auxiliară. Dacă acesta din urmă se defectează, ambele microprocesoare for semnala diferenţa dintre valorile stocate în memoria proprie şi ceea auxiliară. Asemănător se detectează eroare dacă rezultatul unuia din microprocesoare se defectează. Astfel identificarea modulului defect este posibilă, iar scoaterea din funcţiune a acestuia se poate realiza printr-un sistem de întrerupătoare in serie conform fig. 34:

Fig. 34 – Structură tip dublare cu comparare pentru detectarea modului defect

II.6.1.1.2 b. Rezervare în regim de aşteptare (standby sparing)După cum indică şi denumirea sa, în această variantă de redundanţă activă un modul

este în funcţiune, iar un număr de k-1 module sunt în regim de aşteptare (fig.35). Defectul odată detectat şi localizat produce schimbarea modulului defect şi înlocuirea lui cu un modul de rezervă, pe baza unei liste conţinând ordinea de înlocuire cu ajutorul unui sistem de comutare.

Sw1 Sw2

OutμP 1

Memorie

μP 1

Memorie

InMemorie auxiliară

Out

InModul 1

Detector de eroare

Modul 2

Detector de eroare

Modul k

Detector de eroare

COMUTA k/1TOR

Page 18: sisteme tolerante la defectare

Fig. 35 – Arhitectură tip rezervare în regim de aşteptare

Dezavantajul acestei abordări este o întrerupere temporară a unei anumite activităţi a sistemului pe perioada înlocuirii modulului defect. Problema esenţială este modul de rezolvare al detectării erorii sau defectului pentru identificarea modulului defect. O cale de rezolvare este tehnica rezervării în perechi (pair-and-a spare technique).

II.6.1.1.2.b.1. Tehnica rezervării în perechi Această metodă reuneşte însuşirile generale ale rezervării în aşteptare cu cele ale duplicării cu comparare. Astfel, două module lucrează simultan, iar rezultatele sunt comparate continuu (fig. 36). În cazul detectării diferenţei celor două ieşiri, semnalul de eroare activează reconfigurarea sistemului, constând din decuplarea modulului defect şi înlocuirea sa cu unul din modulele în aşteptare.

Fig. 36 - Tehnica rezervării în perechi

Există două modalităţi de a efectua această operaţie:- se înlocuieşte perechea de module unde s-a constat eroarea. Acesta duce la

introducerea în funcţiune a unei noi perechi. Modulele „sănătoase” ale perechii scoase din funcţiune nu se mai refolosesc.

- fiecărui modul îi este asociat un bloc de detecţie a erorii, activat la constatarea diferenţei dintre cele două module. Se înlocuieşte doar modulul defect.

II.6.1.1.2.c. Temporizatoare de control (watchdog timers)

Acceptare/refuz

Out

InModul 1

Modul 2

Modul k

COMUTA k/2TOR

comparator

Page 19: sisteme tolerante la defectare

Un astfel de temporizator se resetează în mod repetitiv, atâta timp cât sistemul funcţionează fără eroare. Frecvenţa de resetare depinde de tipul sistemului. De exemplu, ]n sistemele de reglare numerică, anumite rutine necesită un anumit timp bine definit: timerul se fixează la această valoare; dacă rutina durează mai mult (şi timerul nu se resetează), aceasta indică o eroare de software. UN astfel de proces poate fi blocarea într-o buclă fără ieşire.

II. 6.1.1.3. Tehnici de redundanţă hibridăTehnicle de redundanţă hibridă constau în procedee care reunesc elementele redundanţei pasive - votare, mascarea defectului – cu cele ale redundanţei active - reconfigurarea sistemului la detectarea erorii.

II.6.1.1.3.a. Redundanţa n-modulară cu rezervareAceastă tehnică constă în prevederea a n1 module active şi a n2 module în rezervă, în

regim de aşteptare. Pentru cele n1 modele în funcţionare simultană, ieşirea este stabilită printr-o metodă de votare. În cazul constatării diferenţei dintre valoarea votată şi valoarea de ieşire a unuia din modulele active, acest modul este decuplat, iar în locul lui este introdus primul modul de pe lista modulelor de rezervă. La următoarea neconcordanţă dintre valoarea votată şi valoarea de ieşire a unuia din modulele active, se introduce în locul modulului respectiv, al doilea modul de pe lista modulelor de rezervă, ş.a.m.d. Schematic, o arhitectură redundanta n-modulară cu rezervare este conform fig.37:

Fig. 37- Redundanţa n - modulară cu rezervare

Într-o primă analiză, vom compara două structuri tolerante la defectare, una cu redundanţă pasivă, ceea de-a doua cu redundanţă hibridă. Cele două variante au acelaşi număr admisibil

de module defectabile, fie acesta . În varianta cu redundanţă pasivă, aceasta înseamnă prevederea a 5 module a căror ieşiri urmează să fie votate. În varianta hibridă, alegând o structură cu 3 module active şi un modul de rezervă, rezultă că acest sistem va funcţiona corect, până când nu se defectează mai mult de două module (unul dintre modulele active şi apoi, încă unul dintre cele două module active şi cel de rezervă, introdus la prima

In

In

In

Moduleactive

Out

Modul 1

Modul 2

Modul n1

COMUTATOR

comparator

Modul 1

Modul 2

Modul n2

voter

Modulerezervă

Page 20: sisteme tolerante la defectare

defectare) . Aşadar structura cu redundanţă hibridă necesită doar patru module, faţă de cele cinci ale structurii cu redundanţă pasivă. Evident, trebuie luate în considerare şi fiabilităţile circuitelor suplimentare (comutator, comparator) precum şi costul acestora.

II.6.1.1.3.b. Redundanţa activă prin autoeliminare (self-purging redundancy)În această variantă, toate modulele sunt active, conform schemei principiale din fig.

38:

Fig.38 - Arhitectură cu redundanţa activă prin autoeliminare

După cum se vede în fig. 38, ieşirile fiecărui modul sunt comparate cu ieşirea (votată) a sistemului: în caz de neconcordanţă, switch-ul înseriat cu modulul respectiv decuplează modulul de la operaţia de votare. Ceea ce diferenţiază redundanţa activă prin autoeliminare de ceea a redundanţei n-modulare cu rezervare este modul de votare. Voterul utilizat este de tip poartă cu prag. Intrările binare x1, x2,…, xn sunt ponderate cu factorii w1, w2,…, wn. Ieşirea porţii este rezultatul comparării sumei ponderate a intrărilor cu un prag T:

(96)Prin alegerea adecvată a factorilor de ponderare şi a pragului se pot adopta mai multe strategii de votare: Fie de exemplu o structură cu următoarele caracteristici:

Pentru aceste valori, voterul cu prag funcţionează ca voterul bazat pe valoarea majoritară. Să prevedem ca mod de funcţionare al sistemului din fig. 38 setarea valorii factorilor de ponderare în funcţie de starea modulelor: astfel, la constatarea primei defectări, fie acesta modulul 1, , astfel că modulul defect este exclus de la votare. Fie acum o structură cu 6 module, cu caracteristicile:

În acest caz, sistemul va accepta defectarea (succesivă) a 4 module.

II.6.1.1.3.c Redundanţa hibridă cu identificare prin eliminare (sift- out redundancy)În această tehnică foloseşte, ca şi în varianta anterioare (self –purging) toate cele n

module sunt active. Deosebirea apare la modalitatea de identificare a modulului defect,

Out

switch

switch

switchIn

In

InModul 1

Modul 2

Modul n

voter

Page 21: sisteme tolerante la defectare

realizată cu CLC-uri specializate: comparatorul, detectorul şi colectorul. Toate acestea sunt structurate conform schemei din fig. 39:

Fig. 39 - Redundanţa hibridă cu identificare prin eliminare

Structura şi funcţiunile comparatorului, detectorului şi colectorului, exemplificate pentru o structură cu trei module, sunt următoarele:- comparatorul compară două câte două, ieşirile tuturor celor n module, cu circuite sau-exclusiv (XOR), conform fig. 40:

Fig. 40 – Comparatorul sistemului din fig. 39 - Detectorul are ca valori de intrare ieşirile C12, C13, C23 ale detectorului. Funcţia sa este detectarea modulului defect: detectorul va genera valoarea logică 1 pe ieşirea corespunzătoare indicelui modulului defect (fig.41).

Out

In

In

InModul 1

Modul 2

Modul n

Coect

C omp

Detect

C12

C23

C13

Outmodul1

Outmodul1

Outmodul1

Init

K

Q J

K

Q J

Page 22: sisteme tolerante la defectare

Fig.41- Detectorul”modul 1 defect”, ”modul 2 defect”, ”modul 3

defect”

Bistabilele JQ, prin intrarea „Init”, permit reintroducerea modulelor în sistem, facilitate utilă în cazul defectelor tranzitorii.Colectorul , pe baza ieşirilor exclud modulul „minoritar (defect)”, producând la ieşirea sa valoarea majoritară (fig. 42) Fie aşadar ieşirile celor trei module în funcţionare corectă: ; in ipoteza că modulul 1 este defect, .Avem (conform fig. 40):

(97)

Ieşirile detectorului (fig. 41) au valorile:

(98)

C12

C23

C13

K

Q J

F3

F2

F1

Out

F1

Out 1

F2

Out 2

F3

Out 3

Page 23: sisteme tolerante la defectare

Fig. 42 – Colectorul

Valoarea ieşirii sistemului, adică cea furnizată de colector (fig. 42), este:

(99)

În acest mod, valoarea majoritară (neeronată) este transmisă mai departe.

II.6.1.1.3.d. Arhitectura triplare-dublare Dupăcum arată şi numele, această structură foloseşte pe de o parte 3-modularea (triplarea), implicit tehnica votării, pe de altă parte, dublarea cu comparaţie permite eliminarea modulului defect. Această arhitectură este utilizată în sisteme automate, în ultima fază de elaborare a mărimii de comandă, unde votarea se face prin tehnica însumării fluxurilor (flux-summing). Schema principială a unui astfel de sistem este dată în fig. 43:

Fig.43 - Arhitectura triplare-dublareAvantajul acestei arhitecturi este acela ca el asigură o funcţionare corectă şi în cazul eliminării a două module (dublate).

II.6. 2. REDUNDANTĂ INFORMAŢIONALĂRedundanţa informaţională constă în adăugarea unor biţi suplimentari, peste cei strict

necesari codificării informaţiei primare U (utile), în scopul detectării sau corectării erorilor survenite în operaţiile de procesare a acestei informaţii.

U’U

X’X

INPUTS

Modul 1aModul 1b

comparator

Modul 3aModul 3b

comparator

Modul 2aModul 2b

comparator

Sumator fluxuri

Output

Sursa Codare Procesare Decodare Destinatar

Page 24: sisteme tolerante la defectare

Fig. 44 – Codarea-decodarea informaţiei

În general, informaţia primară care urmează să fie procesată, chiar dacă aceasta este doar o operaţie de transmitere, trebuie să fie prelucrată din mai multe motive:

- necesitatea utilizării eficiente a canalului de transmisie;- necesitatea adaptării conforme destinatarului;- eliminarea efectelor perturbaţiilor;- consideraţiuni legate de confidenţialitatea informaţiei;

În acest capitol vom studia doar câteva din modurile de codare, impuse de cerinţe precum detectarea şi/sau corectarea informaţiei, detectarea erorilor survenite în urma unor operaţii logice sau aritmetice.

II.6.2. Coduri detectoare de eroare [Wakerly]

II.6.2.1. Coduri verificatoare a parităţii Definim un alfabet , şi mulţimea cuvintelor de lungime n ce se pot forma pe ; fie apoi

o submulţime S al lui , denumit în continuare cod, cu elementele : să notăm cu efectul erorii E asupra cuvântului X:

(100)

În funcţie de tipul defectului, pot apare următoarele două situaţii (fig. 45)

Fig. 45 – Definirea unui cod S

a) - în acest caz, eroarea E este nedetectabilă;b) - în acest caz, eroarea E este detectabilă

Scopul urmărit este ca pentru erorile cele mai probabile (care apar cu o frecvenţă mai ridicată), cuvintele afectate de eroare să ducă la cuvinte non-cod, (cazul b). Decodificatorul are funcţia de a semnala dacă cuvântul citit este sau nu cuvânt de cod: în funcţie de tipul răspunsului, fie că:

răspunsul este pozitiv: în acest caz se trece la extragerea informaţiei utile. răspunsul este negativ: se emite un semnal de neconformitate sau în funcţie de

capacităţile codului se corectează informaţia, după care se trece la extragerea informaţiei utile.

S

X2 X1X1

*

X2*

Page 25: sisteme tolerante la defectare

II.6.2.1.1.Distanţa unui cod În cele ce urmează vom analiza codurile binare, adică cuvântul de cod are forma:

(101)

Din cei n biţi, k biţi reprezintă informaţia utilă. Cei biţi sunt biţi redundanţi. Astfel, un cod S , definit de dubletul (n,k), poartă numele de cod verificator de paritate.

Aceste coduri se utilizează în cazurile când alterare unui bit este cauzată de defectarea unei singure componente.

Definiţie: Se defineşte ponderea Hamming w(X) a unui cuvânt ca fiind numărul elementelor nenule ale cuvântului:

(102)

Fie două cuvinte de cod Pe mulţimea S se definesc operaţiile:

I. Definiţie: operaţia logică sau-exclusiv ( );

(103)II. Definiţie : operaţia de înmulţire scalară

(104)Distanţa d(X,Y) Hamming dintre două cuvinte X, Y de defineşte astfel:

Definiţie: Distanţa d(X,Y) Hamming dintre două cuvinte X, Y este numărul elementelor prin care diferă elementele vectorilor X şi Y.Cu ajutorul ponderii Hamming şi a operaţiei sau-exlusiv, distanţa Hamming dintre două cuvinte X, Y se poate calcula ca:

(105)

Exemplu:

Fie

O eroare E poate fi exprimată sub forma unui cuvânt în care biţii nenuli indică biţii afectaţi de eroare. Dacă un singur bit este afectat de eroare, , eroarea fiind simplă. Pentru eroarea dublă, , ş.a.m.d.

Efectul al erorii E asupra unui cuvânt X este rezultatul operaţiei:

Definiţie: Distanţa d unui cod S se defineşte ca distanţa ceea mai mică dintre distanţele tuturor perechilor de cuvinte ale codului:

Proprietăţi ale codului ce depind de distanţa coduluiI. Fie un cod S de distanţă ; acest cod poate detecta un număr de erori egal

cu .

Page 26: sisteme tolerante la defectare

II. Fie un cod S de distanţă ; acest cod poate corecta un număr de erori egal cu c.

Demonstraţiile celor două afirmaţii sunt imediate, ele decurgând din definiţiile distanţei codului şi a detectabilităţii respectiv nedetectabilităţii erorii.

Astfel, pentru prima afirmaţie putem raţiona astfel: o eroare E cu pondere modifică exact biţi şi se obţine cuvântul eronat X’ care nu poate fi cuvânt de cod, din moment ce între toate cuvintele de cod distanţa minimă este . Afirmaţiile de mai sus sunt ilustrate prin două exemple:

Exemplul I. Fie un cod S cu caracteristicile: . Numărul cuvintelor binare cu trei biţi este . Acestea se pot reprezenta convenabil într-un spaţiu tridimensional ca fiind vârfurile unui cub de muchie egală cu unitatea. Să observă că într-o astfel de reprezentare, distanţa între două cuvinte este cea mai scurtă distanţă măsurată în unităţi de muchie (fig. 46).

Fig.46- Un cod cu distanţa

Cum se observă în figura 46, cuvintele acestui cod sunt:

Conform afirmaţiei I, acest cod poate detecta doar eroarea simplă ( ). Într-adevăr, schimbarea unui singur bit a oricăruia din cele 4 cuvinte de cod nu este cuvânt de cod, ca urmare eroarea simplă este detectabilă.

Observaţie: acest cod, cu are patru cuvinte distincte. Pentru aceasta, în binar este nevoie de 2 biţi. Ca urmare, putem afirma că acest cod este de tip , adică al treilea bit este bit redundant.

Exemplul II. Fie un cod S cu caracteristicile: : să reprezentăm două cuvinte ale acestui cod (fig.47):

100 110

000

001

101

010

111

011

X3’=1110000X2’=1100000

X4’=1111000X1’=1000000

X2=1111100X1=0000000

Page 27: sisteme tolerante la defectare

Fig.47 – Un cod corector de eroare dublă

Cum distanţa codului este , aşadar, conform afirmaţiei II., acest cod poate corecta maximum două erori: într-adevăr, dacă cuvântul X1 este afectat de o eroare simplă sau dublă, ( ), el va fi corectat la valoarea corespunzătoare cuvântului de cod celui mai apropiat, care este X1, aşadar corecţia repară eroarea. Dacă însă eroarea este triplă, sau de pondere mai mare ca 3, codul va alege ca formă corectată cuvântul X2, ceea ce evident este greşit. În acest exemplu, explicaţia calităţii de corectare a codurilor de distanţă se bazează pe faptul că orice număr impar se poate exprima ca suma a două numere consecutive.

Ca urmare acelor de sus, un cod cu poate fi folosit fie ca cod detector de eroare cuadruplă ( ) sau ca cod corector de eroare dublă ( ), aceasta depinzând de modul de lucru al decodorului. De notat că în aplicaţii tip sisteme tolerante la erori, detecţia erorii este suficientă, dar ea presupune alocarea de redundanţă la nivel hardware, în timp ce corecţia erorii poate constitui o sursă de economie la nivel hardware.

6.2.1.1.1.Verificarea parităţii. Matrici generatoare.Un cod verificator de paritate poate fi dat prin lista cuvintelor de cod. Există însă

posibilitatea descrierii acestor coduri ca submulţimi ale unor spaţii vectoriale.Fie mulţimea matricilor de dimensiune

, cu proprietatea că liniile matricii sunt liniar independente Să considerăm mulţimea X a soluţiilor ecuaţiei:

(106)

În acest mod, mulţimea X defineşte un cod S cu cuvinte distincte, numit şi cod verificator de paritate. H se numeşte matricea verificatoare a codului S.

Acest cod are câteva proprietăţi decurgând din modul de definire al spaţiului zerourilor matricii H:

Proprietatea 1: Mulţimea X este grup în raport cu operaţia . Acesta înseamnă că pentru orice , . De aici rezultă şi un mod de construire a tuturor cuvintelor codului S:

Fie matricea G care are ca rânduri k soluţii liniar independente X1, X2,…, Xk, ale ecuaţiei (106):

(107)

În acest caz, cele cuvinte ale codului S se pot scrie ca combinaţii liniare ale liniilor lui G:

(108)Matricea G se numeşte matricea generatoare a codului S, iar X1, X2,…, Xk constituie o

bază a lui S.

Page 28: sisteme tolerante la defectare

Evident, pe baza proprietăţii (106), avem şi egalitatea:

(109)

Exemplu:Fie matricea H:

Soluţiile ecuaţiei matriciale sunt:

Să alegem ca bază pe X2, X3 şi X5:

Pentru

Astfel, dând celor trei coeficienţi a toate valorile posibile ( 23 combinaţii), se obţin toate cuvintele codului.

Proprietatea 2: Distanţa codului S este egală cu ponderea minimă a cuvintelor nenule ale codului S.În exemplul prezentat, ponderea codului definit de matricea H, cu cuvintele X1, X2,…, X8 este .

Proprietatea 3: Distanţa codului definit de matricea H este egală cu numărul minim al coloanelor liniar dependente ale matricii verificatoare. În exemplul prezentat, coloanele 1 şi 2, sau 4 şi cinci sunt liniar dependente, suma lor fiid vectorul coloană nul. Cum aici numărul rândurilor este 2, iar numărul combinaţiilor binre de doi biţi este 4, în mod obligatoriu orice matrice are obligatoriu cel puţin două coloane identice, aşadar putem afirma de pe-acum că orice cod de dimensiune are distanţa 2. Conform proprietăţii I, aceste coduri detectează doar eroarea simplă ( )

Proprietatea 4: Dacă în matricea H a codului S se schimbă ordinea a două coloane (distincte), se obţine matricea H1 care defineşte un nou cod S1. Cuvintele codului S1 rezultă imediat, operându-se aceeaşi operaţie asupra biţilor de ordin corespunzător coloanelor . Codurile S şi S1sunt coduri echivalente. Din aceasta rezultă că matricea generatoare a codului S1 se construieşte analog cu ceea prin care s-a obţinut şi matricea H1.

Să considerăm acum o matrice generatoare G’ de dimensiune , de forma:

(110)

Page 29: sisteme tolerante la defectare

unde Ik este matricea unitate de ordin k, iar P este o matrice de dimensiune . Acest tip de matrice generatoare îl vom numi cod sistematic.

(111)

Să calculăm produsul :

Comparând acest rezultat cu relaţia (109), matricea A nu este altceva decât matricea verificatoare a codului S’ definit de matricea generatoare G’. Aşadar:

(112)

Să observăm că deşi am considerat P ca o matrice arbitrară, având în vedere că liniile lui P devin coloane în matricea lui H’: dacă în H’ ar exista coloane nule, bitul asociat coloanei respective nu contează la operaţia de verificare, altfel spus, distanţa codului este 1, adică fără capacitate minimă de detectare. (la aceeaşi concluzie se poate ajunge cu ajutorul examinării numărului minim de coloane liniar dependente).

Exemplu: Fie matricea generatoare G’ de forma (110)a unui cod sistematic S’ cu :

Liniile lui G’ sunt cuvinte de cod; acest cod are , cum am văzut, un număr de 8 cuvinte, obţinute ca combinaţii binare a celor trei linii ale lui G’: aceste linii îndeplinesc condiţia de independenţă liniară din cauza formei matricii unitate. Combinaţiile liniare ale primilor biţi a cuvintelor lui G’ reprezintă numerele în binar, de la 0 la 7: acestea reprezintă informaţia utilă (pentru 8 cuvinte de comandă distincte avem nevoie de 3 biţi). Aşadar ceilalţi biţi sunt biţi redundanţi, prin care se realizează operaţia de detecţie a erorii simple. Astfel, prin construcţia matricii G’, asociem fiecărui segment util un segment de control: fie

: astfel, biţii de control ai informaţiei utile sunt .

Pentru orice cod sistematic avem identitatea:(113)

De aici rezultă imediat că biţii de control, pentru oricare cuvânt util , biţii de control se calculează cu relaţia:

(114)

Exemplu:Pentru segmentul de informaţie utilă al lui X4 biţii de control, conform (114) sunt:

Page 30: sisteme tolerante la defectare

În funcţie de scopul urmărit (detectare, corectare) se prezintă în continuare câteva tipuri de coduri verificatoare de paritate.

6.2.1.1.1. a. Coduri cu un bit redundantAceste coduri sunt de tip şi sunt definire de matrici de forma:

(115)Spaţiul zerourilor ecuaţiei (109) o reprezintă vectori cu număr par de biţi unitari. Cum ultimul bit reprezintă bitul de verificare, rezultă că informaţia utilă conţine un număr impar de biţi unitari. Deoarece numărul minim de coloane liniar independente este 2, egală cu distanţa codului, aşadar acest tip de cod detectează eroarea simplă.

6.2.1.1.1. b. Coduri cu doi biţi redundanţiAceste coduri sunt de tip şi sunt definire de matrici de forma:

(116)

Conform celor stabilite pentru codurile sistematice, matricea verificatoare va fi conform formei (112):

(117)

S-a găsit că distanţa unui astfel de cod este , indiferent de numărul de coloane al matricii. Se pune întrebarea: din ce raţiuni alegem un cod definit de o matrice verificatoare de forma (117), dacă un cod definit de o matrice linie de forma (115) are aceeaşi capacitate de detecţie. Pentru aceasta vom compara două astfel de coduri, alese astfel încât să aibă acelaşi număr de cuvinte de cod. Fie ; ambele coduri au cuvinte. Aceasta înseamnă că cele două coduri vor fi de tip:

- pentru S1 – ;- pentru S2 – ;

Cele două matrici verificatoare, cu Pt ales arbitrar, dar astfel ca P să nu aibă coloană nulă vor fi:

(118)

Să scriem condiţiile de verificare (106) pentru cele două coduri:

(119)

adică:

(120)

Page 31: sisteme tolerante la defectare

Ecuaţiile(120) permit calculul biţilor de control (redundanţi):

(121)

Rezultatele din (121) permit sinteza circuitelor destinate să realizeze calculul biţilor de control: rezultă că pentru codul S1 sunt necesare două porţi XOR, în timp ce pentru codul S2

este suficient o singură poartă XOR.

6.2.1.1.1. b. Coduri corectoare de eroareFie un cod corector de eroare simplă . Un astfel de cod trebuie să aibă distanţa , egal cu numărul minim al coloanelor liniar dependente. Aşadar rezultă că coloanele trebuie să fie distincte şi evident, să nu existe coloană nulă.: dacă numărul liniilor matricii verificatoare este , se pot scrie coloane, : astfel:

(122)

ExempluFie : rezultă . Să se scrie toate cuvintele acestui cod.Să scriem matricea verificatoare a unui cod sistematic cu aceste caracteristici:

Matricea generatoare de forma (110) se scrie imediat:

Cuvintele codului se obţin făcându-se toate combinaţiile liniare ale cuvintelor de cod (tab.1):

Tabel 1

Page 32: sisteme tolerante la defectare

Corecţia erorii Fie un cuvânt X al unui cod S de distanţă , cu matricea verificatoare H şi vectorul eroare E ce modifică pe X în X’. Aceasta se exprimă prin relaţia:

(123)Operaţia de verificare a lui X’ este:

(124)

Dacă (eroare simplă), rezultatul din (124) este tocmai linia lui Ht, adică coloana lui H corespunzătoare indicelui bitului eronat din X’.

Exemplu:Fie codul S definit de matricea H din exemplul precedent, şi fie cuvântul C9 afectat de

o eroare simplă care modifică bitul al treilea (din stânga): 0111101

Rezultatul operaţiei de verificare (123) este:

Cum era de aşteptat, rezultatul reprezintă coloana III-a a lui H.

Dacă (eroare dublă), rezultatul operaţiei de verificare este combinaţia liniară dintre coloanele lui H afectate de eroare. Cum orice combinaţie liniară dintre două coloane este obligatoriu o altă coloană, diferită de cele două coloane iniţiale, rezultatul corecţiei (identificarea bitului eronat) va fi greşită.

Coduri de distanţă Fie un cod S de distanţă d, cu matricea verificatoare H. Pentru a obţine un cod S’ de

distanţă , matricea verificatoare H’ se obţine prin următoarea schemă de extindere:

(125)

Se observă că dacă S este un cod (n,k), codul S’ va fi de tip (n+1, k), adică numărul cuvintelor de cod nu se schimbă. Deoarece orice combinaţie liniară a d coloane ale lui H nu este nulă, adăugarea ultimei coloane nu schimbă această situaţie, exceptând ultima linie, unde suma termenilor unitari poate să ia fie valoarea 1, fie 0, aşadar orice combinaţie dintre oricare d coloane ale lui H’ cu ultima coloană, va fi diferită de coloana nulă. Astfel, H’ va defini un cod de distanţă .Dezavantajul unui astfel de cod (nesistematic)este că ultima linie impune ca la sinteza circuitului de verificare să fie necesare n-1 circuite XOR.

Exemplu: a. Să se construiască matricea verificatoare a unui un cod corector de eroare dublă S’ cu

caracteristicile (n,4 ):

Page 33: sisteme tolerante la defectare

b. Să se scrie cuvintele acestui cod.a. Distanţa unui astfel de cod trebuie să fie . Putem face acest lucru aplicând de două ori metoda de extindere de mai sus asupra matricii verificatoare a unui cod S (7, 4), cu distanţa studiat mai înainte:

c. Pentru a scrie cuvintele de cod se poate proceda astfel: se porneşte de la cuvintele ale matricii generatoare asociate matricii H: cuvintele codului S’ vor fi de

forma:

Aceste cuvinte verifică primele trei linii ale lui H’, rămâne ca ele să verifice liniile 4 şi 5 ale aceleiaşi matrici, adică:

Rezultă:

Cu aceste valori, cuvintele de bază ale lui S’ sunt univoc şi corect determinate, deoarece aceste cuvinte sunt liniar independente. În continuare, celelalte cuvinte ale codului se construiesc prin scrierea tuturor combinaţiilor liniare ale cuvintelor de bază.