📄

Memorii ROM

Intermediate 1 min read 0 words

Clasificarea memoriilor nevolatile: ROM mask-programmed, PROM, EPROM (exemplu 2764A), EEPROM, organizare internă, semnale de control și diagrame de timp.

Memorii ROM

Memoriile ROM (Read Only Memory) sunt circuite integrate care stochează informația în mod nevolatil — conținutul se păstrează și după deconectarea alimentării. În funcționare normală, aceste memorii pot fi doar citite; înscrierea informației se realizează anterior utilizării, printr-o procedură numită programare.

Clasificarea memoriilor ROM

ROM (Read Only Memory)
├── ROM programate prin mască    — programate la fabricant, nemodificabile
├── PROM (Programmable ROM)      — programabile o singură dată de utilizator
├── EPROM (Erasable PROM)        — ștergere prin radiații UV, reprogramabile
├── OTP (One Time Programmable)  — varianta EPROM fără fereastră de cuarț
├── EEPROM (Electrically EPROM)  — ștergere electrică, pe byte
└── Flash                        — ștergere electrică pe sector/bloc

Organizare internă ROM

O memorie ROM poate fi modelată ca interconectarea unui decodificator (DCD) cu un codificator (CD):

  • A0 … An-1 — liniile de adresă, specifică cuvântul ce va fi citit
  • W0 … Wm-1 — cele m = 2^n linii de cuvânt (ieșirile DCD); selectează intern cuvântul adresat
  • D0 … Dk-1 — cele k linii de date, k fiind lățimea cuvântului memorat

La aplicarea unei adrese pe liniile A0–An-1, decodificatorul activează o singură linie Wi. La ieșirea codificatorului se obține codul pe k biți — informația stocată la locația corespunzătoare adresei selectate.

Capacitatea memoriei se exprimă ca: C = m × k unde m = numărul de cuvinte adresabile, k = lățimea cuvântului (biți).

ROM programate prin mască

Memoria este programată la fabricant, utilizând o mască specifică cerințelor utilizatorului în ultima etapă de fabricație. Grilele tranzistoarelor MOS sunt conectate selectiv la liniile de cuvânt: o grilă conectată produce 1 logic la activarea liniei de cuvânt, o grilă neconectată produce 0 logic. Sunt ieftine la serii mari (peste 10.000 bucăți), dar nu pot fi modificate ulterior.

Memorii PROM

Memoriile PROM (Programmable ROM) pot fi programate de utilizator, dar o singură dată. Programarea se bazează pe întreruperea ireversibilă a unor fuzibile prin impulsuri de curent. Un bit neprogramat este pe 1 logic (fuzibil intact); un bit programat este pe 0 logic (fuzibil ars). Un bit trecut în 0 nu mai poate fi readus la 1.

Memorii EPROM

Memoriile EPROM (Erasable PROM) utilizează tranzistoare MOS cu grilă flotantă. Programarea se realizează electric (impulsuri de 12–12,5 V), iar ștergerea prin expunere la radiații ultraviolete (λ = 2537 Å, durată 15–20 minute). Ștergerea nu este selectivă — după expunere la UV, întreaga memorie este ștearsă (toți biții pe 1 logic).

Exemplu: Memoria EPROM 2764A

Parametru Valoare
Capacitate 64 kbiți (8K × 8 biți)
Capsulă DIP cu 28 pini, fereastră de cuarț
Timp de acces 180 ns
Curent funcționare 75 mA
Tensiune programare V_PP 12 V
Număr garantat de cicluri > 100
Durată menținere informație minim 10 ani

Semnale de control

  • nCS (Chip Select): pentru nCS = 1, circuitul este în mod standby (ieșiri în HiZ, consum redus)
  • nOE (Output Enable): controlează bufferele de ieșire; nOE = 0 validează ieșirea datelor

Motivația existenței a două semnale de control: într-un sistem cu microprocesor, nCS este comandat de decodificatorul de adrese (selectând memoria), iar nOE este conectat la semnalul nRD al microprocesorului (validând datele la momentul corect). Această abordare previne conflictele pe magistrala de date.

Diagrama de timp la citire

  1. Se aplică adresa pe liniile A0–A12
  2. Se activează nCS = 0 (selectare circuit)
  3. Se activează nOE = 0 (validare ieșire)
  4. După intervalul t_ACC (timp de acces), datele devin valide la ieșire
  5. La terminarea citirii, nOE și nCS revin pe 1, iar ieșirile trec în HiZ

Identificare inteligentă (Electronic Signature)

Memoriile EPROM moderne dispun de un mecanism de identificare automată. Cu A9 = 12 V și celelalte adrese pe 0: A0 = 0 dă codul producătorului, A0 = 1 dă codul circuitului. Echipamentul de programare citește automat aceste informații și selectează algoritmul de programare potrivit.

Memorii EEPROM

Memoriile EEPROM (Electrically Erasable PROM) permit ștergerea și programarea electrică fără expunere UV. Ștergerea poate fi făcută selectiv, pe byte, spre deosebire de EPROM unde ștergerea este globală.

Exemplu: Memoria EEPROM 2864B

Parametru Valoare
Capacitate 64 kbiți (8K × 8 biți)
Timp de acces 150 ns
Curent standby 1 μA
Cicluri ștergere/reprogramare minim 10^5
Durată menținere informație minim 10 ani

Memoria EEPROM are 3 semnale de control: nCE (chip enable), nOE (output enable), nWE (write enable). Scrierea se face cu nCE = 0, nOE = 1, nWE = 0.

Puncte cheie pentru examen

  • ROM mask — programată la fabricant, nemodificabilă, ieftină la serii mari
  • PROM — programabilă o singură dată prin arderea fuzibilelor; biții trecuți în 0 nu mai pot reveni la 1
  • EPROM — folosește tranzistoare cu grilă flotantă; programare electrică, ștergere UV (globală, 15–20 min)
  • EEPROM — ștergere electrică selectivă pe byte; minim 10^5 cicluri
  • Semnalele de control tipice: nCS/nCE (selectare circuit) și nOE (validare ieșire)
  • Capacitatea se calculează: C = m × k (m cuvinte × k biți/cuvânt)
  • Memoria 2764A: 8K × 8, DIP 28 pini, t_ACC = 180 ns, V_PP = 12 V
  • Două semnale de control (nCS + nOE) previn conflictele pe magistrala de date în sisteme multi-memorie

Exemple practice suplimentare

Exemplu 1: Calcul capacitate și numărare pini

O memorie ROM are 13 linii de adresă (A0–A12) și 8 linii de date (D0–D7).

Număr de cuvinte: m = 2¹³ = 8192 = 8K cuvinte
Lățimea cuvântului: k = 8 biți
Capacitate totală: C = m × k = 8192 × 8 = 65536 biți = 64 Kbiți = 8 KOcteți

Exprimare: 8K × 8 sau 64 Kbiți sau 8 KB.

Exemplu 2: Determinarea numărului de linii de adresă

Se cere o memorie de 256K cuvinte × 16 biți.

Linii de adresă: n = log₂(256K) = log₂(256 · 1024) = log₂(262144) = 18 linii

Verificare: 2¹⁸ = 262144 = 256 × 1024Linii de date: 16

Capacitate: 256K × 16 = 4 Mbiți = 512 KB

Pini minimi (fără alimentare/control):
  Adrese: 18
  Date: 16
  Control: nCS, nOE (minim 2)
  Total minim: 18 + 16 + 2 = 36 pini
  Cu alimentare (Vcc, GND): 38 pini → capsulă DIP 40

Exemplu 3: ROM ca generator de funcții logice

O memorie ROM poate implementa orice funcție logică combinațională. Exemplu: implementarea unui convertor BCD-to-7-segment.

Intrare: 4 biți BCD (0-9)  → 4 linii de adresă
Ieșire: 7 segmente (a-g)   → 7 linii de date

Capacitate necesară: 2⁴ × 7 = 16 × 7 = 112 biți

Tabel ROM parțial:
Adresă (BCD)  Date (a b c d e f g)
  0000         1 1 1 1 1 1 0    (cifra 0)
  0001         0 1 1 0 0 0 0    (cifra 1)
  0010         1 1 0 1 1 0 1    (cifra 2)
  0011         1 1 1 1 0 0 1    (cifra 3)
  0100         0 1 1 0 0 1 1    (cifra 4)
  0101         1 0 1 1 0 1 1    (cifra 5)
  0110         1 0 1 1 1 1 1    (cifra 6)
  0111         1 1 1 0 0 0 0    (cifra 7)
  1000         1 1 1 1 1 1 1    (cifra 8)
  1001         1 1 1 1 0 1 1    (cifra 9)
  10101111    Don't care (invalid BCD)

Avantaj: implementare flexibilă, modificarea funcției necesită doar reprogramarea memoriei, nu modificarea circuitului.