Sari la conținut

SRAM

De la Wikipedia, enciclopedia liberă
Un chip SRAM de la NES 2K X 8 bit.

SRAM (acronimul expresiei engleze Static Random Access Memory) este un tip de memorie semiconductoare, unde cuvântul „static” subliniază faptul că, spre deosebire de memoriile DRAM (Dynamic Random Access Memory), nu mai este necesar un ciclu periodic de reîmprospătare (engleză: refresh). Acest lucru este posibil deoarece memoriile SRAM folosesc circuite logice combinaționale pentru a memora fiecare bit.

Memoriile RAM

[modificare | modificare sursă]

Memoriile semiconductoare sunt referite adesea ca RAM ceea ce înseamnă Random Access Memory, sau memorii cu acces aleator. Aceasta implică faptul că orice cuvânt din memorie poate fi accesat în același timp.

O memorie este constituită dintr-o arie de dispozitive de memorare. Fiecare dispozitiv poate stoca un bit, un byte sau un cuvânt. Dimensiunile uzuale pentru lungimea cuvintelor sunt: 8, 16, 32 și 64. Un sistem digital dispune de o memorie care poate stoca un număr mare de cuvinte. Fiecare cuvânt poate fi adresat utilizând liniile de adrese ale memoriei. În plus, pe lângă liniile de date și liniile de adrese, o memorie mai dispune și de linii de validare a citirii sau scrierii cuvântului selectat. Acest tip de memorie este usor de utilizat. O locație, sau o adresă, se selectează prin plasarea pe liniile de adrese a combinației binare ce reprezintă adresa locației. Dacă urmează să aiba loc o operație de citire, este activat semnalul de citire, iar datele stocate în locație pot fi preluate de pe liniile de date. Dacă urmează să aiba loc o operație de scriere, datele ce urmează să fie scrise vor trebui plasate pe liniile de date, apoi combinația binară a adresei locației de memorie pe liniile de adrese și se activează semnalul de scriere.

Descrierea unei memorii din punctul de vedere al unui utilizator reprezintă o viziune abstractă.

Implementarea memoriilor se bazează pe două tehnologii, memorii RAM statice și memorii RAM dinamice:

  • SRAM
  • DRAM

Este important de reținut că orice dispozitiv capabil să memoreze valori binare poate fi utilizat ca memorie și indiferent ce s-ar utiliza, viziunea abstractă a utilizatorului rămâne în mare aceeași.

Termenul SRAM indică faptul că datele depuse în memorie sunt stabile. Circuitele flip-flop sunt o variantă de circuite de memorare stabile.

Un dispozitiv simplu de memorare cu această proprietate este prezentat în figura 1: Dispozitiv simplu de stocare

Dispozitivul de stocare este construit cu două porți NU; ieșirea fiecăreia este conectată la intrarea celeilalte, sau altfel spus, sunt conectate în cruce. Dacă punctul A este 1, atunci punctul B va fi 0; dacă punctul A este 0, atunci punctul B va fi 1. Dacă este posibil să fie stabilită o valoare inițială a unuia din punctele A sau B, acest dispozitiv va menține acea valoarea un timp nedefinit, presupunând că dispozitivul este alimentat tot acest timp. Considerând cele descrise, dispozitivul este un dispozitiv static.

Valoarea punctelor A și B poate fi inițializată utilizând circuitul reprezentat în figura: Dispozitiv static de memorare cu circuit de inițializare

Tranzistoarele, numite și tranzistoare de trecere, plasate pe partea dreaptă și pe partea stângă a circuitului de memorare, permit înscrierea unei stări în punctele A și B atunci când linia Read/Write este activă. Dacă linia Read/Write nu este activă, tranzistoarele de trecere nu conduc și liniile Data și Data' nu sunt conectate spre dispozitivul de memorare, ceea ce face informația plasată pe liniile de date să nu poată ajunge la punctele A și B. Pentru ca o operație de scriere să aibă loc, se plasează valoarea dorită a fi înscrisă pe linia Data și complementul acesteia pe linia Data', după care se activează linia Read/Write. Tranzistoarele de trecere intră în conducție și valorile de pe liniile Data și Data' vor fi transferate către punctele A și B.

O poartă NU poate fi construită cu două tranzistoare MOS, astfel o celulă RAM statică, ce este capabilă să memoreze un bit de informație, poate să fie construită cu 6 tranzistoare MOS. În figura următoare este ilustrat un model abstract al unei celule RAM statică, model ce ascunde detaliile constructive.

Reprezentare abstractă a unei celule RAM statică

Pentru a forma o memorie pentru un cuvânt, se plasează în același rând atâtea celule de memorare cât este lungimea cuvântului. În figura următoare se arată cum este construit un dispozitiv pentru memorarea unui cuvânt de patru biți.

Dispozitiv pentru memorarea unui cuvânt de 4 biți

Se observă că prin activarea liniei R/W din stânga, toate cele patru celule sunt conectate la liniile Data si Data’.

O memorie ce corespunde necesităților reale trebuie să fie capabilă să stocheze un număr mare de cuvinte. Aceasta se realizează prin stivuirea mai multor celule de memorare a unui cuvânt, așa cum ilustrează figura următoare.

Atunci când se activează o linie R/W, valorile interne din celulele de memorare de pe rândul respectiv sunt transferate pe liniile Data si Data’ sau valorile plasate pe liniile Data și Data’ sunt transferate în celulele de memorare ale acelui rând. La un moment dat, este permis unui singur semnal R/W să fie activ. Pentru a ne asigura că un singur semnal R/W este activ, se adaugă structurii, pe partea stângă a ariei de celule, un decodor 2:4.

Memorie pentru mai multe cuvinte de 4 biți

În urma acestei modificări, primul cuvânt este selectat când la intrarea decodorului se aplică 00; valoarea aplicată la intrarea decodorului este numită adresă de memorie. Următorul cuvânt se află la adresa 01, iar cel mai de jos cuvânt se află la adresa 11.

În figura următoare este arătată reprezentarea abstractă a unei memorii de 4 cuvinte a câte 4 biți.

Reprezentarea unei memorii de 4 cuvinte a câte 4 biți

Modulul de memorie este funcțional, dar este dificil de utilizat din cauza celor patru linii de date și a complementelor acestora (sunt prea multe). Utilizatorul ar trebui să poată să scrie și să citească informație fără a mai considera și liniile negate. Cu cât memoria este mai mare pe dimensiunea verticală (crește numărul de cuvinte), inversoarele celulei de memorare vor comanda greu liniile lungi ce conectează toate celulele unei coloane. Pentru a crește viteza de lucru la memoriile mari, fiecărei coloane din structură i se adaugă un amplificator. Totodată, amplificatorul sesizează diferența dintre liniile Data și Data’. Pe lângă amplificatoare, se mai completează structura cu circuite tampon (buffer).
Dispozitivul ilustrat în figura anterioară dispune de o singură linie I/O (Input/Output - Intrare-Ieșire) pentru fiecare bit al cuvântului; bitul este citit sau scris pe aceeași linie. Există memorii care au linii separate pentru a accesa un bit în mod scriere, respectiv în mod citire. Se observă că atunci când linia R/W este activă, dispozitivul este în mod scriere, iar atunci când nu este activă, dispozitivul este în mod citire; nu există linii diferite pentru a selecta modurile scriere, citire.

Modul de funcționare

[modificare | modificare sursă]

Memoria statică SRAM funcționează complet diferit față de cea dinamică. Un bit de memorie este format din patru sau șase tranzistori interconectați și nu necesită reîmprospătare. Astfel, viteza de scriere și de citire a unei memorii statice este mult mai mare decât a celei dinamice.

O celulă SRAM cu șase tranzistori realizată în tehnologie CMOS.

O celulă SRAM are trei stări diferite în care se poate afla:

  • Standby - când circuitul este idle
  • Citire - când datele au fost cerute
  • Scriere - când se modifică conținutul

Dacă linia cuvântului nu este folosită, tranzistorii de acces M5 și M6 deconectează celula de la liniile de biți. Cele două invertoare legate în stea, formate de M1-M4 vor continua să se reîncarce reciproc cât timp sunt conectați la sursa de curent.

Presupunem că în memorie este stocată valoarea 1 în dreptul Q. Ciclul de citire este inițiat preîncărcând ambele linii de biți cu 1 logic, apoi activând linia de cuvânt WL, activând ambii tranzistori de acces. Al doilea pas are loc atunci când valorile stocate in Q și Q sunt transferate la liniile de biți lăsând BL la valoarea preîncărcată și descărcând BL prin M1 și M5 la 0 logic. Pe partea BL, tranzistorii M4 și M6 leagă linia de bit cu VDD, 1 logic. În cazul în care conținutul de memorie ar fi fost un 0 logic, ar fi avut loc contrariul și BL ar fi fost legat cu 1 logic, iar BL cu 0 logic. Apoi, intre liniile BL și BL va apărea o mică diferență de tensiune delta. Aceste linii vor fi conectate la un amplificator care va sesiza care linie are o tensiune mai mare, astfel aflând dacă a fost 1 sau 0 stocat în celula de memorie. Cu cât acest amplificator are o viteză mai mare, cu atât va fi mai mare viteza de citire din memorie.

Ciclul de scriere este început prin aplicarea valorilor la liniile de biți. Dacă dorim sa scriem 0, vom aplica un 0 la liniile de biți, și anume vom aplica 1 la BL și 0 la BL. Acest lucru este similar cu aplicarea unui puls de reset la un SR-latch, ceea ce conduce la schimbarea stării circuitului flip-flop. Un 1 logic este scris inversând valorile liniilor de biți. WL este apoi activat și valoarea ce va fi scrisă este memorată. A se nota că motivul pentru care acest ciclu are loc, este faptul ca driverele liniilor de intrare sunt mult mai puternice decât tranzistorii relativ slabi din interiorul celulei. Astfel se suprascrie ușor starea precedentă a invertoarelor legate in stea. Pentru a se asigura funcționarea corectă a memoriilor SRAM, este necesară o dimensionare atentă a tranzistoarelor.

Caracteristici

[modificare | modificare sursă]

Memoria SRAM este mai scumpă, ocupă mai mult spațiu datorită mulțimilor de tranzistori din care este făcută, dar în schimb este mai rapidă și cu un consum de curent mult redus față de memoria DRAM. Din aceaste cauze este folosită în aplicații ce necesită un consum mic de curent, o lățime de bandă mare sau ambele. Memoria SRAM este, de asemenea, și mai ușor de controlat și, în general, se apropie mai mult de conceptul de acces aleator decât DRAM. Datorită unei structuri interne mult mai complexe, SRAM este mai puțin densă decât DRAM și, în consecință, nu se folosește în aplicații ce necesită capacități mari și prețuri mici, cum ar fi memoria principală din PC-uri.

Frecvența de tact și Puterea

[modificare | modificare sursă]

Consumul de putere în cazul memoriilor SRAM depinde în mare parte de cât de des este aceasta accesată; la frecvențe mari poate fi la fel de consumatoare de curent ca RAM-ul dinamic și unele Controllere de Interfață pot consuma foarte mult la capacitate maximă. Pe de altă parte, SRAM-ul folosit la frecvențe mai mici, cum ar fi în aplicații cu microprocesoare mai lente, consumă foarte puțin, putând ajunge chiar foarte aproape de consum zero în modul idle - consum de ordinul microWatt.
SRAM-ul se găsește de obicei în:

  • aplicații de uz general
    • cu interfață asincronă, cum ar fi cip-urile 32Kx8 cu 28 de pini (de obicei denumite XXC256) și produsele similare de până la 16Mb
    • cu interfață sincronă, de obicei folosite în aplicații ce necesită viteze de transfer foarte mari, cum ar fi memoriile cache, de până la 18Mb (256Kx72)
  • integrate în cip-uri
    • ca RAM sau memorie cache în microcontrollere (de obicei între 32B și 128KB)
    • ca memorie cache primară în microprocesoare puternice, cum ar fi familia x86 și multe altele (de la 8 kB pînă la mai mulți MB)
    • ca memorie de stocare a regiștrilor în unele microprocesoare
    • pe unele circuite integrate (de obicei de ordinul KB)
    • în FPGA-uri și CPLD-uri (de obicei de câțiva KB sau chiar mai puțin)

Utilizarea în sisteme embedded

[modificare | modificare sursă]

Majoritatea sistemelor înglobate, subsistemelor industriale și științifice, a electronicelor din domeniul auto etc., conțin memorie SRAM. Memorii SRAM de capacități mici sunt integrate în aproape orice sistem care are o interfață electronică cu utilizatorul. Capacități chiar de câțiva MB pot fi folosite în aplicații complexe, cum ar fi camerele foto digitale, telefoanele mobile, sintetizatoarele etc.

Utilizarea în PC-uri

[modificare | modificare sursă]

În computere, memoria SRAM este întâlnită în memoria cache a CPU-urilor, în bufferele hard disk-urilor, ale routerelor etc. Monitoarele LCD și imprimantele folosesc și ele memorie SRAM pentru a reține imaginea ce urmează a fi afișată, respectiv imprimată.

Alte utilizari

[modificare | modificare sursă]

Pasionații preferă de obicei să folosească memorii SRAM pentru ușurința interfațării cu aceasta. Este mult mai ușor de lucrat cu SRAM-ul deoarece nu sunt necesare ciclurile de refresh și magistralele de adrese și de date sunt accesibile direct, nu multiplexat. Pe lângă conexiunile pentru magistrale și pentru alimentare, memoriile SRAM mai au de obicei trei conexiuni: Chip Enable (CE), Write Enable (WE) și Output Enable (OE). În varianta SRAM sincron, mai există și o conexiune Clock (CLK).

Tipuri de memorie SRAM

[modificare | modificare sursă]

SRAM non-volatil

[modificare | modificare sursă]

SRAM-ul non volatil (nvSRAM) are aceeași funcționalitate ca și cel standard, doar că salvează datele cand sunt deconectate de la sursa de curent. Acestea sunt folosite în aplicații unde păstrarea datelor este necesară și bateriile ar fi nepractice - în medicină, aeronautică, rețelistică.

SRAM asincron

[modificare | modificare sursă]

SRAM-ul asincron are capacități cuprinse între 4Kb și 32Mb. Timpul de acces foarte mic al SRAM-ului, face SRAM-ul asincron pretabil folosirii ca memorie principală în microcontrollere mici fără memorie cache.

Clasificare după tipul de tranzistori folosiți

[modificare | modificare sursă]
  • Tranzistori bipolar (folosiți în TTL și ECL) - foarte rapide, dar consumă mult curent
  • MOSFET (folosiți în CMOS) - sunt mai lente, timpul de acces fiind cuprins între 100 - 500 ns, consumă puțin și sunt foarte folosiți în ziua de azi

Clasificare după funcționare

[modificare | modificare sursă]
  • Asincrone - independente de frecvența de tact; intrarea și ieșirea de date sunt controlate de tranziția adreselor
  • Sincrone - adresele, intrarea și ieșirea de date și alte semnale de control sunt asociate cu semnalele ceasului

Clasificare după facilități

[modificare | modificare sursă]
  • ZBT (Zero Bus Turnaround) - latența cauzată de schimbarea din modul scriere în modul citire și invers în cazul ZBT SRAM este zero
  • syncBurst (syncronus-burst) - crește viteza de scriere
  • DDR SRAM - SRAM sincron, cu un singur port de citire/scriere, rată dublă de date IO
  • Quad Data Rate SRAM - SRAM sincron, porturi separate pentru citire/scriere, rată cvadruplă de date IO

Legături externe

[modificare | modificare sursă]
Commons
Commons
Wikimedia Commons conține materiale multimedia legate de SRAM