Dan NICULA
ELECTRONIC
˘
A DIGITAL
˘
A
Carte de ˆınat¸˘atur˘a 2.0
Editura Universit˘at¸ii TRANSILVANIA din Bra¸sov
ISBN 978-606-19-0563-8
2015
Lect¸ia 18
Memorii
18.1 Not¸iuni teoretice
Memoria ROM (Engl. ”Read Only Memory”) este o memorie accesibil˘a doar ˆın citire (ˆın timpul funct¸ion˘arii nor-
male). Aceasta este un circuit combinat¸ional a arui funct¸ie de transfer este descris˘a sub forma unui tabel adres˘a/dat˘a.
Memoria RAM (Engl. ”Random Acces Memory”) este o memorie accesat˘a ˆın mod normal atˆat pentru scrierea
at ¸si pentru citirea datelor. Memoria RAM are structura unui circuit secvent¸ial, cont¸inˆand elemente de memorare a
datelor.
ˆ
In funct¸ie de modul de stocare a informat¸iei, memoriile RAM se clasific˘a dup˘a cum urmeaz˘a:
Memoria SRAM (Engl. ”Static RAM”) stocheaz˘a informat¸ia ˆıntr-o celul˘a de memorie cu o structur˘a bazat˘a
pe un latch (dou˘a inversoare conectate ˆın bucl˘a). Celula de memorie (figura 18.1-a) se nume¸ste static˘a deoarece
cele dou˘a inversoare active sunt capabile a ˆı¸si astreze starea atˆata timp at circuitul este alimentat.
Simbolul bloc al unei memorii SRAM (figura 18.1-b) prezint˘a bus-uri de date de intrare ¸si de ie¸sire, bus-ul de
adrese ¸si semnale de control care comand˘a validarea chip-ului (CS - Chip Select) ¸si scrierea datelor (WR - Write).
a) b)
Figura 18.1 Memoria SRAM: a) celula de memorie, b) simbolul bloc al unei memorii SRAM generice, 2
k
× n.
Memoria DRAM (Engl. ”Dynamic RAM”), stocheaz˘a informat¸ia sub forma de sarcin˘a electric˘a ˆıntr-o celul˘a
de memorie cu o structur˘a bazat˘a pe un capacitor. Celula de memorie (figura 18.2-a) se nume¸ste dinamic˘a
deoarece sarcina capacitiv˘a stocat˘a se diminueaz˘a ˆın timp datorit˘a pierderilor capacitorului. Din acest motiv,
244 LECT¸ IA 18. Memorii
memoriile DRAM necesit˘a periodic o act¸iune de ˆımprosp˘atare” (Engl. ”refresh”) a sarcinii electrice stocate
pentru refacerea periodic˘a a informat¸iei ˆınscrise ˆın memorie. Aceasta este un dezavantaj al memoriilor DRAM
fat¸˘a de cele SRAM.
ˆ
Ins˘a, memoriile DRAM au avantajul unor celule de memorie de dimensiune mult mai mic˘a
care determin˘a posibilitatea realiz˘arii unor memorii de dimeniuni mult mai mari ˆıntr-o capsul˘a. Dimensiunea
mare a matricii de memorie integrate pe un chip ar determina atˆat un num˘ar mare de pini, at ¸si necesitatea
realiz˘arii act¸iunii de refresh la multe locat¸iiˆıntr-un interval de timp. Reducerea num˘arului de porturi ale memoriei
DRAM ¸si realizarea act¸iunii de ˆımprosp˘atare la mai multe locat¸ii de adres˘a simultan, a determinat modificarea
matricii de memorie prin ˆınlocuirea acces˘arii liniare pe baz˘a de adres˘a cu o accesare bidimensional˘a, secvent¸ial˘a
de tipul and ¸si coloan˘a. Bus-ul de adres˘a are semnificat¸ia de ”rˆand” dac˘a este activat semnalul RAS - Row
Address Strobe ¸si semnificat¸ia de ”coloan˘a” dac˘a este activat semnalul CAS - Column Address Strobe.
Simbolul bloc al unei memorii DRAM (figura 18.2-b) prezint˘a un bus de date bidirect¸ional (intrare ¸si ie¸sire),
bus-ul de adrese ¸si semnale de control care comand˘a validarea chip-ului, semnificat¸ia adresei, scrierea datelor,
act¸iuni de init¸ializare ¸si ˆımprosp˘atare a memoriei. Se remarc˘a faptul a la memoria DRAM o adres˘a de locat¸ie
este ˆımp˘art¸it˘a ˆın dou˘a art¸i (rˆand ¸si coloan˘a) ¸si este prezentat˘a secvent¸ial pe acela¸si port de adrese (avˆand
at¸imea jum˘atatea din at¸imea busului de adrese la o memorie SRAM de dimensiune identic˘a).
a) b)
Figura 18.2 Memoria DRAM: a) celula de memorie, b) simbolul bloc al unei memorii DRAM generice, 2
k
× n.
18.2 Pentru cei ce vor doar a promoveze examenul
1. Ce este o ”poart˘a logic˘a ˆın 3 st˘ari”? La ce se utilizeaz˘a?
Solut¸ie
Poarta logic˘a ˆın 3 st˘ari prezint˘a, pe ang˘a cele dou˘a st˘ari binare (0 ¸si 1), o stare caracterizat˘a printr-o impedant¸˘a
de ie¸sire mare, ideal infinit˘a. Ie¸sirea port¸ii logice ˆın stare de ˆınalt˘a impedant¸˘a, simbolizat˘a HiZ (Engl. ”High
Z”) poate conectat˘a la ie¸sirea altei port¸i logice, ar˘a a afecta funct¸ionalitatea acesteia. Poarta ˆın 3 st˘ari are
dou˘a intr˘ari: o intrare de date ¸si o intrare de validare.
ˆ
In funct¸ie de st˘arile active ale celor dou˘a intr˘ari, exist˘a 4
tipuri de port¸i ˆın 3 st˘ari, ale aror simboluri ¸si tabele de funct¸ionare sunt prezentate ˆın figura 18.3.
Port¸ile ˆın 3 st˘ari sunt utilizate ˆın aplicat¸ii care necesit˘a conectarea mai multor ie¸siri de circuite logice ˆımpreun˘a:
port¸i pentru magistrale (semnalele de validare a mai multor port¸i sunt controlate astfel ˆıncˆat, la un moment
dat, o singur˘a poart˘a a determine starea logic˘a a magistralei, restul fiind ˆın stare de ˆınalt˘a impedant¸˘a);
circuite de interfat¸are cu porturi bidirect¸ionale (poarta ˆın 3 st˘ari este ˆın stare de ˆınalt˘a impendant¸˘a and
datele intr˘a ˆın circuit ¸si se activeaz˘a doar and circuitul respectiv trimite date spre exterior);
extinderea capacit˘at¸ii memoriilor dinamice (conectarea mai multor chip-uri de memorie pentru a realiza un
modul de memorie de dimensiune mai mare).
18.3. Pentru cei ce vor a ˆınvet¸e 245
Figura 18.3 Port¸i ˆın 3 st˘ari (simboluri ¸si tabele de funct¸ionare).
2. Ce capacitate de memorie (exprimat˘a ˆın bit¸i) are o memorie RAM 1K × 16? Dar o memorie de 48KB?
Solut¸ie
1K × 16 = 1024 × 16 = 16.384 bit¸i.
3. De ce memoria RAM dinamic˘a are nevoie de o act¸iune periodic˘a de reˆımprosp˘atare a informat¸iei (Engl. ”refresh”)
iar memoriile statice RAM nu necesit˘a acest lucru?
4. Care este simbolul generic a unei memorii DRAM 1M × 8?
5. Care este simbolul generic al unei memorii stiv˘a de dimensiune 1M × 8?
6. Proiectat¸i un modul de memorie DRAM de dimensiune 1 M × 8 utilizˆand chip-uri de memorie 32K × 8. at¸i bit¸i
de adres˘a are modulul de memorie? at¸i bit¸i de adres˘a sunt conectat¸i la toate chip-urile ¸si at¸i se decodific˘a?
Dac˘a perioada de refresh este de 64 ms, care este intervalul de timp ˆıntre dou˘a comenzi de refresh, ˆın cazul unor
act¸iuni uniform distribuite ˆın timp?
18.3 Pentru cei ce vor a ˆınvet¸e
1. Care este num˘arul exact de bit¸i dintr-o memorie de capacitate:
2Kb, 4KB, 32Kb, 32KB, 256M b, 1MB, 8Mb, 16GB, 500GB, 1T B?
Solut¸ie
2Kb = 2 × 2
10
= 2
11
= 2.048 bit¸i
=
2 × 10
3
bit¸i
4KB = 2
2
× 2
10
× 2
3
= 2
15
= 32.768 bit¸i
=
4 × 10
3
bytes
32Kb = 2
5
× 2
10
= 2
15
= 32.768 bit¸i
=
32 × 10
3
bit¸i
32KB = 2
5
× 2
10
× 2
3
= 2
18
= 262.144 bit¸i
=
32 × 10
3
bytes
256Mb = 2
8
× 2
20
= 2
28
= 268.435.456 bit¸i
=
256 × 10
6
bit¸i
1MB = 2
20
× 2
3
= 2
23
= 8.388.608 bit¸i
=
10
6
bytes
8Mb = 2
3
× 2
20
= 2
23
= 8.388.608 bit¸i
=
8 × 10
6
bit¸i
16GB = 2
4
× 2
30
× 2
3
= 2
37
= 137.438.953.472 bit¸i
=
16 × 10
9
bytes
500GB = 500 × 2
30
× 2
3
= 500 × 2
33
= 4.294.967.296.000 bit¸i
=
500 × 10
9
bytes
1T B = 2
40
× 2
3
= 2
43
= 8.796.093.022.208 bit¸i
=
10
12
bytes
2. Justificat¸i valoarea de adev˘ar a fiec˘arei afirmat¸ii:
a) O memorie DRAM 1M × 8 are 10 porturi de adres˘a.
b) O memorie SRAM 1K × 8 cont¸ine 8000 de bit¸i de date.
c) Pentru a realiza un modul de memorie de 1GB sunt necesare 8 chip-uri de 128MB.
246 LECT¸ IA 18. Memorii
3. Implementarea unui bit de paritate pentru fiecare byte la o memorie de 2K × 8 determin˘a cre¸sterea dimensiunii
memoriei cu:
a) 1.25%
b) 10%
c) 12.5%
d) 20%
4. Explicat¸i diferent¸ele dintre not¸iunile SRAM, DRAM ¸si SDRAM.
5. La o memorie de 1MB se dore¸ste implementarea unui bit de paritate la fiecare byte. Cu ate procente cre¸ste
dimensiunea memoriei?
6. Precizat¸i num˘arul de bit¸i de adrese ¸si num˘arul de bit¸i de date pentru memoriile de dimensiune:
a) 4K × 16, b) 256M × 8, c) 8G × 64, d) 1K × 8, e) 32 × 32.
Calculat¸i cu precizie num˘arul de bit¸i stocat¸i ˆın memoriile de dimensiuni precizate anterior.
7. Proiectat¸i un modul de memorie SRAM de dimensiune 4K × 16 utilizˆand chip-uri de memorie 1K × 8.
Solut¸ie
Simbolul chip-ului de memorie 1K × 8 este prezentat ˆın figura 18.4-a, iar cel al modulului de memorie 4K × 16
este prezentat ˆın figura 18.4-b.
a) b)
Figura 18.4 Simboluri: a) chip de memorie 1K × 8, b) modul de memorie 4 K × 16.
Pentru a determina num˘arul chip-urilor de memorie necesare pentru implementarea modulului se ˆımparte di-
mensiunea modulului la dimensiunea chip-ului:
4K\1K = 4 anduri, 16\8 = 2 coloane.
Din cei 12 bit¸i de adres˘a ai modulului, cei mai put¸in semnificativi 10 bit¸i se conecteaz˘a pe intr˘arile de adrese
ale tuturor chip-urilor. Cei mai semnificativi 2 bit¸i de adres˘a se decodific˘a ¸si se obt¸in 4 semnale de select¸ie, ate
unul pentru fiecare and de chip-uri. Decodificarea se realizeaz˘a cu un demultiplexor a arui intrare de select¸ie
provine de la intrarea de select¸ie a modulului de memorie.
Semnalele de date se aplic˘a ate 8 bit¸i ˆın comun fiec˘arei coloane de chip-uri.
Ie¸sirile de date ale chip-urilor de pe o coloan˘a se conecteaz˘a ˆımpreun˘a (ie¸sirile chip-urilor de memorie fiind ie¸siri
de tip tri-state). Cele dou˘a grupuri de 8 bit¸i de ie¸sire se concateneaz˘a ¸si formeaz˘a bus-ul de date de ie¸sire de 16
bit¸i.
Semnalul de scriere se aplic˘a ˆın comun tuturor chip-urilor din matricea de memorie. Schema de conectare a
chip-urilor pentru realizarea modulului de memorie este reprezentat˘a ˆın figura 18.5.
18.4 Pentru cei ce vor a devin˘a profesioni¸sti
1. Se dore¸ste realizarea unui modul de memorie 2K × 8 folosind chip-uri de memorie RAM 128 × 8.
a) ate chip-uri sunt necesare?
b) ate linii de adres˘a sunt necesare pentru a adresa modulul de memorie?
c) ate linii de adres˘a trebuie conectate ˆımpreun˘a la toate chip-urile?
18.4. Pentru cei ce vor a devin˘a profesioni¸sti 247
Figura 18.5 Implementarea modulului de memorie 4K × 16 cu chip-uri de memorie 1K × 8.
d) ate linii de adres˘a trebuie deco date pentru intr˘arile de select¸ie ale chip-urilor?
e) Ce dimensiune are decodificatorul necesar?
Solut¸ie
a) Num˘arul de chip-uri se determin˘a ˆımp˘art¸ind dimensiunea modulului la dimensiunea chip-ului:
2K/128 = 2
11
/2
7
= 2
4
= 16 anduri
8/8 = 1 coloan˘a
Total = 16 anduri × 1 coloan˘a = 16 chip-uri.
b)
Num˘arul de linii de adres˘a se determin˘a din ecuat¸ia:
2
num˘ar linii adres˘a
= adˆancime memorie
Rezult˘a 11 linii de adres˘a (2
11
= 2K).
c) O parte a liniilor de adres˘a ale modulului se conecteaz˘a ˆımpreun˘a la porturile de adres˘a ale tuturor chip-urilor,
iar o alt˘a parte se decodific˘a pentru a genera semnale de validare pentru chip-uri. Num˘arul linilor de adres˘a ce
se conecteaz˘a ˆımpreun˘a la toate chip-urile este egal cu num˘arul de bit¸i de adres˘a ai chip-ului.
ˆ
In acest caz sunt
7 bit¸i de adres˘a (2
7
= 128).
d) Se decodific˘a un num˘ar de bit¸i de adres˘a egal cu diferent¸a dintre num˘arul de bit¸i ai adresei modulului ¸si
num˘arul de bit¸i ai adresei chip-ului.
ˆ
In acest caz trebuie decodificat¸i 4 bit¸i (11 7 = 4).
e) Pentru decodificarea adresei este necesar un decodificator de 4 bit¸i, rezultˆand 16 semnale de validare, ate
248 LECT¸ IA 18. Memorii
unul pentru fiecare and al matricii de chip-uri care implementeaz˘a modulul.