📄

Memorii RAM

Intermediate 1 min read 0 words

SRAM (celula cu 6 tranzistoare, exemplu HM6264A), DRAM (celula cu 1 tranzistor, refresh, multiplexarea adreselor RAS/CAS), comparație SRAM vs DRAM.

Memorii RAM

Memoriile RAM (Random Access Memory) sunt circuite integrate care permit atât citirea, cât și scrierea informației la orice adresă, în timpul funcționării. Denumirea mai corectă ar fi RWM (Read-Write Memory), deoarece și memoriile ROM permit acces aleator. Memoriile RAM sunt volatile — conținutul se pierde la deconectarea alimentării.

Clasificare

RAM (Read-Write Memory)
├── SRAM (Static RAM)   — celulă cu bistabil (6 tranzistoare), rapidă, nu necesită refresh
└── DRAM (Dynamic RAM)  — celulă cu 1 tranzistor + 1 condensator, densitate mare, necesită refresh

Memoria SRAM (Static RAM)

Celula elementară

Celula SRAM memorează un bit folosind un bistabil (latch) realizat din 6 tranzistoare MOS. Cele 4 tranzistoare centrale formează bistabilul propriu-zis (două perechi cross-coupled), iar cele 2 tranzistoare de acces conectează bistabilul la liniile de bit.

Avantaj fundamental: informația se menține stabil cât timp există alimentare, fără a necesita operații de împrospătare (refresh).

Funcționare

  • Citire: se selectează celula prin linia de cuvânt (Wi = 1); bufferul de ieșire transmite conținutul bistabilului la Dout. Intrarea nWE = 1 (nu se scrie).
  • Scriere: se selectează celula (Wi = 1); cu nWE = 0, datele de pe linia de intrare se transferă în bistabil.
  • Memorare (Hold): nCS = 1 — celula nu este selectată, conținutul se păstrează, ieșirile în HiZ.

Exemplu: Memoria SRAM HM6264A (Hitachi)

Parametru Valoare
Capacitate 64 kbiți (8K × 8 biți)
Capsulă DIP 28 pini
Timp de acces 100 ns (varianta -10)
Putere disipată standby 100 μW
Putere funcționare 15 mW/MHz
Selectare circuit Două semnale: nCS1 (activ LOW) și CS2 (activ HIGH)
Intrări/ieșiri 8 I/O trei-stări comune

Selectarea cu două semnale (nCS1 și CS2) este utilă la extinderea capacității de memorare. Durata minimă a ciclului de citire t_RC = 100 ns; nu există o valoare maximă — ciclul poate fi oricât de lung (memoria este statică).

Diagrama de citire HM6264A

  1. Se aplică adresa pe A0–A12 (durata ciclului de citire t_RC ≥ 100 ns)
  2. Se activează selectarea: nCS1 = 0, CS2 = 1
  3. După t_ACC = 100 ns, datele sunt valide la ieșire
  4. Se activează nOE = 0 (validare ieșire), t_OE ≤ 50 ns
  5. La terminarea citirii, datele rămân valide minim t_OH = 10 ns după schimbarea adresei

Memoria DRAM (Dynamic RAM)

Celula elementară

Celula DRAM memorează un bit folosind un singur tranzistor MOS (de comutație) și un condensator de valoare foarte mică (Cm). Stocarea se face prin prezența (1 logic) sau absența (0 logic) sarcinii pe condensator.

Avantaj: densitate de integrare mult mai mare decât SRAM (1 tranzistor/bit vs 6 tranzistoare/bit).

Operații fundamentale

Scrierea:

  • Linia de bit (LB) se pune la nivelul dorit (UH pentru 1, UL pentru 0)
  • Se aplică un impuls pe linia de cuvânt Wi = 1, punând tranzistorul T în conducție
  • Condensatorul Cm se încarcă (1 logic) sau se descarcă (0 logic)

Citirea:

  • Se preîncarcă linia de bit la U/2
  • Se aplică impuls pe linia de cuvânt Wi = 1, conectând Cm la linia de bit
  • Comparatorul K detectează variația de tensiune: dacă tensiunea crește (Cm era încărcat) → 1, dacă scade → 0
  • Citirea este distructivă — după fiecare citire, bitul trebuie rescris (reîmprospătat)

Împrospătarea (Refresh):

  • Sarcina de pe Cm se descarcă exponențial datorită curenților de pierdere
  • Împrospătarea trebuie făcută la fiecare 2–4 ms (depinde de circuit)
  • Se face pe linii de cuvânt întregi simultan, nu bit cu bit

Multiplexarea adreselor (RAS/CAS)

Pentru a reduce numărul de pini, DRAM utilizează multiplexarea adreselor: adresa completă este transmisă în două faze pe aceleași pini:

  1. Prima jumătate (adresa de linie) este memorată la activarea semnalului nRAS (Row Address Strobe)
  2. A doua jumătate (adresa de coloană) este memorată la activarea semnalului nCAS (Column Address Strobe)

Exemplu: o memorie de 1 Mbit (2^20 locații) necesită 20 linii de adresă, dar prin multiplexare are doar 10 pini de adresă + 2 semnale (nRAS, nCAS). Economia este de 10 terminale.

Exemplu calcul refresh

Pentru o memorie DRAM de 64 kbiți cu matrice pătrată (256 × 256):

  • Timpul mediu pentru o împrospătare: 0,3 μs
  • Timp total: 256 × 0,3 μs = 76,8 μs
  • Din cele 4 ms disponibile, refresh-ul ocupă doar ~2%, lăsând 98% pentru operații utile

Comparație SRAM vs DRAM

Criteriu SRAM DRAM
Celula elementară 6 tranzistoare (bistabil) 1 tranzistor + 1 condensator
Densitate Redusă Foarte mare
Viteză (t_ACC) Rapidă (~100 ns, modern <10 ns) Mai lentă (~45–150 ns)
Refresh Nu necesită Obligatoriu (la 2–4 ms)
Consum Mai mare per bit Mai mic per bit
Cost per bit Ridicat Scăzut
Complexitate interfațare Simplă Complexă (RAS/CAS, refresh)
Utilizări tipice Cache, registre, memorie mică Memoria principală (RAM PC)

Puncte cheie pentru examen

  • SRAM: celulă cu 6 tranzistoare (bistabil), nu necesită refresh, rapidă dar scumpă și cu densitate redusă
  • DRAM: celulă cu 1 tranzistor + 1 condensator, necesită refresh la 2–4 ms, densitate mare, cost redus
  • Citirea DRAM este distructivă — informația trebuie rescrisă după fiecare citire
  • Multiplexarea adreselor (nRAS/nCAS) reduce la jumătate numărul de pini de adresă
  • Memoria HM6264A (SRAM): 8K × 8, t_ACC = 100 ns, două semnale de selecție (nCS1, CS2)
  • SRAM se folosește ca memorie cache (viteză), DRAM ca memorie principală (capacitate)
  • Refresh-ul DRAM se face pe linii de cuvânt întregi, ocupând ~2% din timp

Exemple practice suplimentare

Exemplu 1: Calculul lățimii de bandă a memoriei

O memorie SRAM cu timp de acces t_ACC = 15 ns și lățimea cuvântului de 32 biți.

Rata maximă de transfer:
  f_max = 1 / t_ACC = 1 / (15 × 10⁻⁹) = 66.67 MHz

Lățime de bandă:
  BW = f_max × lățime = 66.67 × 10⁶ × 32 biți = 2.133 Gbiți/s
     = 2.133 / 8 = 266.67 MB/s

Exemplu 2: Comparare SRAM vs DRAM

Parametru SRAM DRAM
Celulă de bază 6 tranzistoare (bistabil) 1 tranzistor + 1 condensator
Timp de acces tipic 5-20 ns 50-70 ns
Densitate Mică (celulă mare) Mare (celulă mică)
Refresh necesar? Nu Da (fiecare 64 ms)
Consum Mai mare (static) Mai mic (dar + refresh)
Utilizare tipică Cache L1/L2 Memorie principală
Cost/bit Ridicat Scăzut

Exemplu 3: Ciclul de refresh DRAM

O memorie DRAM de 64K × 1 bit necesită refresh-ul tuturor celor 256 de rânduri în 4 ms.

Perioada de refresh per rând:
  T_refresh = 4 ms / 256 = 15.625 μs

Dacă un ciclu de refresh durează 200 ns:
  Timp total refresh per perioadă: 256 × 200 ns = 51.2 μs

Overhead:
  51.2 μs / 4000 μs = 1.28%

Doar 1.28% din timpul total este ocupat de refresh — impactul asupra performanței este minim.