Sunteți pe pagina 1din 7

Sisteme de timp real

Cursul 7 – Structură de memori RAM cu redundanţă activă

În acest curs vom analiza o structură de memorie RAM redundantă, reconfigurabilă care să
permită testarea cvasipermanentă a circuitelor de memorie şi, în caz de defectare a unui circuit,
înlocuirea circuitului defect cu altul de rezervă. Aşadar, vom analiza o structură de memorie RAM
cu redundanţă activă sau de comutaţie.
Testarea memoriei RAM poate fi realizată prin programe de test, care să fie executate de
procesor în perioadele de pauză, sau de relaxare în funcţionarea sistemului. În engleză, această
tehnică este numită 𝑛𝑜𝑛 − 𝑐𝑜𝑛𝑐𝑢𝑟𝑟𝑒𝑛𝑡 𝑜𝑛𝑙𝑖𝑛𝑒 𝑡𝑒𝑠𝑡𝑖𝑛𝑔 şi urmăreşte detectarea cât mai rapidă a
defectelor permanente de memorie. În aplicaţiile critice, această verificare este încă insuficientă,
impunându-se o testare cvasipermanentă a memoriei, în timpul funcţionării normale – tehnică
numită 𝑐𝑜𝑛𝑐𝑢𝑟𝑟𝑒𝑛𝑡 𝑜𝑛𝑙𝑖𝑛𝑒 𝑡𝑒𝑠𝑡𝑖𝑛𝑔. O problemă a testării 𝑜𝑛𝑙𝑖𝑛𝑒 a memoriei RAM este aceea că
prin testare conţinutul memoriei se pierde. De aceea, testarea 𝑜𝑛𝑙𝑖𝑛𝑒 necesită circuite suplimentare
pentru salvarea datelor pe durata procesului de testare.

1. Prezentarea structurii redundante studiate

În cele ce urmează va fi analizat un sistem de memorie cu structură redundantă ce permite


testarea secvenţială a modulelor de memorie în paralel cu funcţionarea normală. Sistemul are o
structură reconfigurabilă care asigură înlocuirea unui circuit defect cu altul de rezervă. Vor fi
analizate aici numai aspectele legate de redundanţa dinamică a structurii de memorie, fără să
abordăm problematica propriu-zisă a testării. De aceea se presupune că sistemul de memorie este
compus din circuite autotestabile, cu logică de testare integrată, de tip BIST-RAM (engl. 𝐵𝑢𝑖𝑙𝑡 −
𝐼𝑛 𝑆𝑒𝑙𝑓 − 𝑇𝑒𝑠𝑡𝑖𝑛𝑔 𝑅𝐴𝑀 𝑑𝑒𝑣𝑖𝑐𝑒𝑠).
Fie structura de memorie RAM cu redundanţă activă prezentată în Fig. 1. Necesarul de memorie
implică folosirea a 𝑚 circuite de bază. Pe lângă acestea, sistemul mai cuprinde alte 𝑠 circuite
suplimentare. Din cele 𝑚 + 𝑠 circuite de memorie, 𝑚 sunt utilizate efectiv, unul este supus testării
şi celelalte 𝑠 − 1 sunt în 𝑠𝑡𝑎𝑛𝑑 − 𝑏𝑦. Modulele indisponibile, cele defecte şi cel în curs de testare,
sunt marcate cu 1 în registrul de stare 𝑆𝑅. Sistemul funcţionează cu primele 𝑚 module disponibile,
numărate de la stânga la dreapta şi sărind peste cele inoperabile. Atunci când se defectează un
modul de bază este activat un modul de rezervă. Sistemul de memorie poate tolera până la 𝑠 module
defecte. Structura combinaţională de control asigură reconfigurarea sistemului pentru testarea pe
rând a modulelor de memorie.
Circuitele de memorie sunt testate unul câte unul, la un anumit interval de timp 𝑇. Registrul de
stare (𝑆𝑅) este actualizat de către procesor pentru a marca modulul în curs de testare şi modulele
care în urma testării sunt găsite defecte.

1
modul defect modul în curs de testare modul disponibil

registru de
stare (SR) 0 1 ∙∙∙ 1 ∙∙∙ 0 0 ∙∙∙ 0

adrese logice
Structură combinaţională de selecţie şi reconfigurare

A1 ÷ Am S1 S2 Sj Sm Sm+1 Sm+s

decodor M1 M2 ∙∙∙ Mj ∙∙∙ Mm Mm+1 ∙∙∙ Mm+s

date
adrese

Fig. 1 – Structură de memorie RAM cu redundanţă activă.

2. Testarea online a circuitelor din aria de memorie

Fiecare circuit este verificat de două ori într-un ciclu de testare, aria circuitelor de memorie fiind
parcursă mai întâi în ordine descrescătoare, de la dreapta la stânga (+), şi apoi în ordine crescătoare,
de la stânga la dreapta (–). Pentru testarea unui modul 𝑀𝑗 sunt necesare următoarele operaţii :
• Modulul 𝑀𝑗±1 este adus în regim de funcţionare normală (𝑆𝑅𝑗±1 = 0) ;
• Datele din modulul 𝑀𝑗 sunt salvate în modulul 𝑀𝑗±1 ;
• Este lansat procesul de testare pentru modulul 𝑀𝑗 (𝑆𝑅𝑗 = 1).

În Fig. 2 este ilustrat un ciclu de testare a ariei de memorie cu 𝑚 circuite de bază şi unul
suplimentar care asigură posibilitatea testării 𝑜𝑛𝑙𝑖𝑛𝑒. Modulele logice (partiţiile) sunt numerotate
de la 1 la 𝑚. Circuitul în curs de testare este marcat cu *. Funcţionarea normală a sistemului este
întreruptă doar pe durata transferului de date, înaintea testării unui modul. Transferul de date este
însă rapid, mai ales dacă se realizează cu circuite de acces direct la memorie, şi se presupune că
poate fi tolerat în aplicaţia considerată.
Faţă de procedura de testare a circuitelor prin rotaţie, în acest caz, prin alternarea sensului de
parcurgere a ariei de memorie, numărul operaţiilor de transfer pentru salvarea datelor înaintea
testării se reduce la jumătate. Trebuie însă menţionat ca dezavantaj faptul că circuitele de memorie
nu sunt testate la intervale egale de timp. Acest aspect este evidenţiat în Fig. 3, în care se consideră
o arie de memorie cu patru circuite de bază şi unul suplimentar pentru testarea 𝑜𝑛𝑙𝑖𝑛𝑒. Circuitele
de memorie sunt numerotate de la 1 la 5. Pentru fiecare din cele cinci circuite de memorie se indică
perioada dintre două testări consecutive.

2
1 2 3 . 𝑗− 1 𝑗 j+1 . m−1 m *
1 2 3 . j−1 j j+1 . m−1 * m
1 2 3 . j−1 j j+1 . * m−1 m
. . . . . . . . . . .
1 2 3 . j−1 j * . m−2 m−1 m
1 2 3 . j−1 * j . m−2 m−1 m
1 2 3 . * j−1 j . m−2 m−1 m
. . . . . . . . . . .
1 2 * . j−2 j−1 j . m−2 m−1 m
1 * 2 . j−2 j−1 j . m−2 m−1 m

* 1 2 . j−2 j−1 j . m−2 m−1 m


1 * 2 . j−2 j−1 j . m−2 m−1 m
1 2 * . j−2 j−1 j . m−2 m−1 m
. . . . . . . . . . .
1 2 3 . * j−1 j . m−2 m−1 m
1 2 3 . j−1 * j . m−2 m−1 m
1 2 3 . j−1 j * . m−2 m−1 m
. . . . . . . . . . .
1 2 3 . j−1 j j+1 . * m−1 m
1 2 3 . j−1 j j+1 . m−1 * m
1 2 3 . j−1 j j +1 . m−1 m *

Fig. 2 − Un ciclul de testare pentru aria de memorie.

Fig. 3 – Perioada dintre două testări consecutive (m = 4, s = 1).

3
Aşa cum rezultă din figură, pentru un sistem de memorie cu 𝑚 module de bază şi unul
suplimentar, intervalele de timp dintre două testări consecutive sunt :

2𝑚𝑇 pentru modulele 𝑀1 şi 𝑀𝑚+1,


şi respectiv, (1)
𝑚
2(𝑗−1)𝑇 şi 2(𝑚−𝑗 + 1)𝑇, în alternanţă, pentru modulele 𝑀𝑗 şi 𝑀𝑚+2−𝑗 , j = 2, 3, ... [ 2 ] + 1.

3. Sinteza logicii de selecţie şi reconfigurare

Complexitatea logicii de selecţie şi reconfigurare depinde de numărul de circuite suplimentare


𝑠. Să presupunem o structură redundantă cu două circuite suplimentare (𝑠 = 2).
Fie 𝐴𝑖 , 𝑖 = 1, 2, … , 𝑚, adresa logică care indică partiţia accesată la o operaţie de lucru cu
memoria. Evident, adresa logică fiind decodificată, un singur bit de adresă poate avea valoarea 1.
Semnalele pentru selecţia circuitelor de memorie sunt notate cu 𝑆𝑗 , 𝑗 = 1, 2, … , 𝑚 + 2. Activarea
semnalului 𝑆𝑗 se face în funcţie de adresele 𝐴𝑖 , 𝑖 = 1, 2, … , 𝑚, şi de valorile registrului de stare,
𝑆𝑅𝑗 , 𝑗 = 1, 2, … , 𝑚 + 2. Evident, nu poate fi activat un circuit 𝑀𝑗 decât atunci când acesta este
operaţional (𝑆𝑅𝑗 = 0). Mai precis, structura de control trebuie să activeze primul circuit disponibil
când 𝐴1 = 1, al doilea circuit când 𝐴2 = 1, ş.a.m.d., al 𝑚 − lea circuit disponibil când 𝐴𝑚 = 1.
Ţinând cont de acest lucru rezultă că atunci când sunt operaţionale, modulele 𝑀1 , 𝑀2 , … , 𝑀𝑚+2
sunt selectate astfel :
(1) 𝑀1 este selectat numai dacă 𝐴1 = 1;
(2) 𝑀2 este selectat în două situaţii :
• 𝑀1 şi 𝑀2 sunt operaţionale şi 𝐴2 = 1;
• 𝑀1 este neoperaţional şi 𝐴1 = 1.
(3) Un modul 𝑀𝑗 , 𝑗 = 3, 4, … , 𝑚 este selectat în următoarele trei situaţii :
• Modulele 𝑀1 ÷ 𝑀𝑗 sunt operaţionale şi 𝐴𝑗 = 1;
• Unul din modulele 𝑀1 ÷ 𝑀𝑗−1 este neoperaţional şi 𝐴𝑗−1 = 1;
• Două din modulele 𝑀1 ÷ 𝑀𝑗−1 sunt neoperaţionale şi 𝐴𝑗−2 = 1.

(4) Modulul 𝑀𝑚+1 este selectat în două situaţii :


• Unul din modulele 𝑀1 ÷ 𝑀𝑚 este neoperaţional şi 𝐴𝑚 = 1;
• Două din modulele 𝑀1 ÷ 𝑀𝑚 sunt neoperaţionale şi 𝐴𝑚−1 = 1.
(5) Modulul 𝑀𝑚+2 este selectat numai dacă două din modulele 𝑀1 ÷ 𝑀𝑚+1 sunt neoperaţionale
iar 𝐴𝑚 = 1.
Plecând de la condiţiile (1) – (5) definite anterior, pentru logica combinaţională de selecţie şi
reconfigurare se are în vedere o structură celulară ca cea din Fig. 4, în care blocurile 𝐵𝑆3 ÷ 𝐵𝑆𝑚
sunt identice.

4
Fig. 4 – Structura celulară a logicii de selecţie şi reconfigurare.

Variabilele logice de stare notate cu 𝑥 au următoarea semnificaţie :


• 𝑥1 = 0 – modulul 𝑀1 este operaţional;

• 𝑥22 = 0, 𝑥21 = 0 – modulele 𝑀1 şi 𝑀2 sunt operaţionale;

𝑥22 = 0, 𝑥21 = 1 – unul din module, 𝑀1 sau 𝑀2 , este neoperaţional;

𝑥22 = 1, 𝑥21 = 0 – atât 𝑀1 cât şi 𝑀2 sunt neoperaţionale;


• Pentru j = 3, 4, …, m+2:

𝑥𝑗2 = 0, 𝑥𝑗1 = 0 – toate modulele 𝑀1 ÷ 𝑀𝑗 sunt operaţionale;

𝑥𝑗2 = 0 , 𝑥𝑗1 = 1 – unul din modulele 𝑀1 ÷ 𝑀𝑗 este neoperaţional;

𝑥𝑗2 = 1, 𝑥𝑗1 = 0 – două din modulele 𝑀1 ÷ 𝑀𝑗 sunt neoperaţionale;

𝑥𝑗2 = 1, 𝑥𝑗1 = 1 – mai mult de două din modulele 𝑀1 ÷ 𝑀𝑗 sunt neoperaţionale.

1 2
𝑃𝑟𝑒𝑐𝑖𝑧𝑎𝑟𝑒: Variabilele logice 𝑥𝑚+2 şi 𝑥𝑚+2 pot fi folosite pentru testarea funcţionării corecte a
structurii combinaţionale de selecţie şi reconfigurare de către procesor. Valorile acestor variabile
trebuie să fie în concordanţă cu numărul biţilor de 1 din registrul de stare 𝑆𝑅. De asemenea, când
ambele valori sunt 1 se poate genera o întrerupere pentru a semnala faptul că nivelul de redundanţă
a fost depăşit.
Sinteza logicii de selecţie şi reconfigurae se reduce aşadar la sinteza celulelor:
𝐵𝑆1 , 𝐵𝑆2 , 𝐵𝑆𝑗 ( 𝑗 = 3 ÷ 𝑚), 𝐵𝑆𝑚+1 şi 𝐵𝑆𝑚+2 .

Pentru variabilele de selecţie, 𝑆𝑗 (𝑗 = 1 ÷ 𝑚 + 2), rezultă următoarele funcţii logice :

𝑆1 = 𝑆𝑅1 𝐴1 . (2)

𝑆2 = 𝑆𝑅2 (𝐴2 𝑥1 + 𝐴1 𝑥1 ). (3)

2 1 2 1 2 1
𝑆𝑗 = 𝑆𝑅𝑗 (𝐴𝑗 𝑥𝑗−1 𝑥𝑗−1 + 𝐴𝑗−1 𝑥𝑗−1 𝑥𝑗−1 + 𝐴𝑗−2 𝑥𝑗−1 𝑥𝑗−1 ) , ( 𝑗 = 3, 4, . . . , 𝑚) (4)

5
2 1 2 𝑥 1 ).
𝑆𝑚+1 = 𝑆𝑅𝑚+1 (𝐴𝑚 𝑥𝑚 𝑥𝑚 + 𝐴𝑚−1 𝑥𝑚 𝑚 (5)

1 2
𝑆𝑚+2 = 𝑆𝑅𝑚+2 𝐴𝑚 𝑥𝑚+1 𝑥𝑚+1 . (6)

Variabilele logice 𝑥21 , 𝑥22 şi 𝑥𝑗1 , 𝑥𝑗2 ( 𝑗 = 3 ÷ 𝑚 + 2) sunt date de ecuaţiile :

𝑥21 = 𝑥1 𝑆𝑅2 + 𝑥1 𝑆𝑅2 . (7)

𝑥22 = 𝑥1 𝑆𝑅2 . (8)

1 ̅̅̅̅̅ 2 ̅̅̅̅̅
𝑥𝑗1 = 𝑥𝑗−1
2 1
𝑥𝑗−1 2
𝑆𝑅𝑗 + 𝑥𝑗−1 𝑥𝑗−1 𝑆𝑅𝑗 + 𝑥𝑗−1 1
𝑥𝑗−1 2
𝑆𝑅𝑗 + 𝑥𝑗−1 1
𝑥𝑗−1 =

1 2 1 ̅̅̅̅̅ 2 1 1 1 2 2 ̅̅̅̅̅
= 𝑥𝑗−1 𝑆𝑅𝑗 + 𝑥𝑗−1 𝑥𝑗−1 𝑆𝑅𝑗 + 𝑥𝑗−1 𝑥𝑗−1 = 𝑥𝑗−1 𝑆𝑅𝑗 + 𝑥𝑗−1 (𝑥𝑗−1 + 𝑥𝑗−1 𝑆𝑅𝑗 ) =

1
= 𝑥𝑗−1 1
𝑆𝑅𝑗 + 𝑥𝑗−1 2
(𝑥𝑗−1 + ̅̅̅̅̅
𝑆𝑅𝑗 ). (9)

𝑥𝑗2 = 𝑥𝑗−1
2 1
+ 𝑥𝑗−1 2
𝑥𝑗−1 2
𝑆𝑅 = 𝑥𝑗−1 1
+ 𝑥𝑗−1 𝑆𝑅. (10)

Structura celulelor de selecţie va fi analizată mai în detaliu la laborator.

Temă de casă:
Pentru o structură de memorie redundantă cu 4 circuite de bază şi un circuit suplimentar (𝑚 = 4
şi 𝑠 = 1), să se deseneze logica de selecţie şi reconfigurare şi să se evalueze creşterea timpului de
acces la memorie. Se ia ca referinţă timpul de propagare printr-o poartă logică cu 2 intrări (∆).

4. Eficienţa redundanţei

Îmbunătăţirea fiabilităţii memoriei prin adăugarea a 𝑠 circuite de rezervă poate fi exprimată


destul de bine prin raportul 𝑟 dintre probabilitatea de defectare a unui singur modul din cele 𝑚 ce
compun memoria neredundantă şi probabilitatea de defectare a 𝑠 + 1 module din cele 𝑚 + 𝑠 ce
compun memoria redundantă. Acest raport arată de câte ori se reduce riscul de defectare în
varianta redundantă fată de varianta neredundantă.

Fie 𝑅 = 𝑒 −𝜆𝑡 funcţia de fiabilitate a unui singur circuit, adică probabilitatea de funcţionare
corectă a acestuia în intervalul [0, 𝑡]. Probabilitea de defectare este 𝐹 = 1 − 𝑅 = 1 − 𝑒 −𝜆𝑡 . Cu 𝜆
s-a notat rata medie de defectare a unui circuit de memorie.
Relativ la sistemul neredundant, probabilitatea de funcţionare corectă a celor 𝑚 module
componente este 𝑅𝑚 , iar probabilitatea ca unul dintre module să se defecteze este
𝑃1 = 𝑚𝑅 𝑚−1 𝐹. (11)
În ceea ce priveşte sistemul redundant, probabilitatea ca din cele 𝑚 + 𝑠 module 𝑠 + 1 să se
defecteze este
𝑠+1
𝑃𝑠+1 = 𝐶𝑚+𝑠 (1 − 𝑅)𝑠+1 𝑅 𝑚−1. (12)

6
Creşterea fiabilităţii sau scăderea probabilităţii de defectare este dată de elaţia

𝑃 𝑚𝑅 𝑚−1 (1−𝑅) 𝑚
𝑟 = 𝑃 1 = 𝐶 𝑠+1 𝑅𝑚−1 (1−𝑅)𝑠+1 = 𝐶 𝑠+1 (1−𝑅)𝑠 . (13)
𝑠+1 𝑚+𝑠 𝑚+𝑠

Să facem un calcul numeric pentru 𝑚 = 8, 𝑠 = 2, 𝜆 = 10−7 ℎ−1 . Creşterea fiabilităţii memoriei


RAM (sau, altfel spus, scăderea probabilităţii de defectare) prin adăugarea a două circuite de rezervă
este ilustrată în tabelul următor. S-au considerat diferite perioade de timp între 1 şi 10 ani.

Tabelul 1 – Creşterea fiabilităţii memoriei : 𝑚 = 8, 𝑠 = 2, 𝜆 = 10−7 ℎ−1.

Perioada 1 an 2 ani 5 ani 7 ani 10 ani

r 86952 21757 3490 1784 876

Rezultatele numerice evidenţiază faptul că eficienţa redundanţei este cu atât mai mare cu cât
fiabiliatea circuitelor componente (𝑅 în acest caz) este mai ridicată.

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