Documente Academic
Documente Profesional
Documente Cultură
Memorii
LUCRAREA nr. 13
Memorii
1. Memorii de tip FIFO (First In First Out) O astfel de memorie este caracterizat prin faptul c primul cuvnt nscris, va fi primul cuvnt ce va aprea la ieire la o operaie de citire. Pentru a realiza o astfel de memorie, sunt necesare RD. ntru-ct aplicaiile cele mai utilizate folosesc cuvinte de 8 bii, vom prezenta o memorie de 8 bii: Capacitatea unei astfel de memorii este dat de lungimea RD (de numrul celulelor RD). Se utilizeaz pentru memorarea temporar a datelor ce intr ntr-un sistem (circuit tampon). Dup recepionarea unui bloc de date (memoria este plin), se transfer coninutul n sistem. Astfel nu se ntrerupe funcionarea (bucla principal de program) la recepionarea fiecrui cuvnt, nlturnduse timpii pierdui pentru tratarea operaiilor de ntrerupere. De exemplu conectarea unui convertor A/D la un sistem cu microprocesor se face prin intermediul unei astfel de memorii.
D0 tact SIS-D CK
RD0
SOS-D
Q0
D1
SIS-D CK
RD1
SOS-D
Q1
D7
SIS-D CK
RD7
Figura 1
SOS-D
Q7
a) memorii de tip LIFO (Last In First Out) Aceasta este o memorie de tip stiv: ultimul cuvnt nscris va fi primul cuvnt citit. Realizarea unei memorii LIFO se face cu registre universale, ca n figura urmtoare. Lungimea cuvntului ce poate fi memorat fixeaz numrul de RU necesare, iar capacitatea maxim a memoriei stabilete
77
Circuite Numerice
Memorii
LUCRAREA nr. 13
D0 tact SIS-D CK SOD-S Q0
RU0
A0 A1 SOD-S Q1
D1
SIS-D CK
RU1
A0 A1
D7
SIS-D CK
SOD-S
Q7
RU7
A0 A1 A1 A0
Figura 2 lungimea fiecrui RU. Tabelele urmtoare ilustreaz funcionarea memoriei LIFO de 4 cuvinte. Pe intrrile SIS-D se aplic cuvntul de memorat. Modul de funcionare al RU este selectat de deplasare stnga-dreapta prin A0=A1=0. Fiecare impuls de tact va nscrie cuvntul aflat la D0-7 n registre. La tactul urmtor, primul cuvnt se deplaseaz n celulele urmtoare, iar noul cuvnt aflat pe intrri se memoreaz n primele celule din fiecare RU, .a.m.d. Cnd se dorete citirea din memorie, se stabilete A0=1 i A1=0, fiecare tact realiznd citirea informaiei existente n primele celule, i deplasarea coninutului din registre spre stnga.
A0=0, A1=0nscriere registru (deplasare S-D)
RU0 RU1 RU2 RU3 RU4 RU5 RU6 RU7
Q0 Q1 Q2 Q3
x0
x1
x2
x3
x4
x5
x6
x7
Q0 Q1 Q2 Q3
y0 x0
y1 x1
y2 x2
y3 x3
78
y4 x4
y5 x5
y6 x6
y7 x7
Circuite Numerice
Memorii
LUCRAREA nr. 13
A0=1, A1=0nscrie registru (deplasare S-D)
RU0 RU1 RU2 RU3 RU4 RU5 RU6 RU7
Q0 Q1 Q2 Q3
z0 y0 x0
z1 y1 x1
z2 y2 x2
z3 y3 x3
z4 y4 x4
z5 y5 x5
z6 y6 x6
z7 y7 x7
Q0 Q1 Q2 Q3
y0 x0
y1 x1
y2 x2
y3 x3
y4 x4
y5 x5
y6 x6
y7 x7
Acest tip de memorie se utilizeaz la memorarea adreselor, de la care se abandoneaz programul, pentru executarea unor subrutine de tratare a cererilor de ntrerupere, pentru ca programul s tie unde s revin. In cazul n care a aprut o cerere de ntrerupere, sistemul a salvat adresa instruciunii la care ajunsese programul x7x6...x1x0, dup care ncepe execuia subprogramului de tratare a ntreruperii. n acest timp survine o alt ntrerupere, care determin suspendarea activitii i saltul la alt adres. Se salveaz n memorie adresa curent y7y6...y1y0 i se execut o alt subrutin. i aceasta este ntrerupt la rndul ei. Se salveaz n memoria LIFO noua adres curent z7z6...z1z0 i se sare la adresa subrutinei de ntrerupere asociate noii ntreruperi. Terminare tratrii acestei ntreruperi, duce la revenirea n program, la adresa z7z6...z1z0 i execuia pn la capt a subrutinei abandonate. La terminarea ei se va relua subrutina anterioar de la adresa y7y6...y1y0, i n final se va reveni n bucla principal de program, la adresa x7x6...x1x0. 5. Lucrri de efectuat n laborator Se completeaz fia de laborator disponibil la adresa: http://www.ee.tuiasi.ro/~demm/Digital_Circuits/FiaLab13.DOC
79
Circuite Numerice
Memorii
2. Se realizeaz un registru universal cu N=4 n MaxPlus II i se construiete apoi o memorie LIFO de 8 bii. Se nscriu 3 cuvinte n memorie i apoi se extrag. Formele de und rezultate se copie mai jos. Se noteaz timpii de ntrziere i valorile logice pe formele de und. Se compar rezultatele cu tabelul de adevr.
Ck A0 A1 D[7..0] Q0[7..0] Q1[7..0] Q2[7..0] Q3[7..0]
80