Memorie DRAM

De la Wikipedia, enciclopedia liberă
Salt la: Navigare, căutare

Dynamic random access memory (DRAM) este un tip de memorie cu acces direct care stochează fiecare bit de date într-un condensator separat, într-un circuit integrat. Deoarece condensatoarele se descarcă, informația se poate șterge în cazul în care prin semnalele de comandă nu se specifică reîncărcarea celulelor cu un anumit conținut. Această operație se numește „reîmprospătarea memoriei” (refreshing memory). Avantajul memoriei DRAM este simplitatea structurii: doar un tranzistor si un condensator sunt necesare pe bit, spre deosebire de memoria SRAM care are nevoie de șase tranzistoare. Acest lucru permite memoriei DRAM să atingă o densitate de stocare foarte înaltă. Spre deosebire de memoria flash, este o memorie volatilă, pentru că își pierde datele atunci când nu mai este alimentată. Tranzistoarele si condensatoarele folosite sunt extrem de mici astfel încat pe un singur chip de memorie pot încăpea milioane.

Principiu de operare[modificare | modificare sursă]

Principiul de operare al citirii DRAM, pentru o matrice de 4×4.
Principiul de operare al scrierii DRAM, pentru o matrice de 4×4.

DRAM este aranjat in mod obișnuit într-o matrice pătratică dintr-un condensator și un tranzistor pe celulă. Poza din dreapta arată un simplu exemplu cu 4×4 celule. (O martice DRAM modernă poate fi alcătuită din mii de celule în lățime/lungime.)

Liniile lungi care conectează fiecare linie sunt cunoscute ca linii de cuvinte. Fiecare coloană este compusă din două linii de bit, fiecare conectată la fiecare celulă din coloană. (Ilustrația din dreapta nu include acest detaliu important.) Sunt cunoscute în general ca și liniile de bit de + și -. Un amplificator de sens este o pereche de legatură - inversoare conectate între liniile de bit. Primul inversor este conectat de la linia bitul de + la linia bitului de -, și al doilea este conectat de la linia de bit de - la linia bitului de +. Acest exemplu este un feedback pozitiv, și aranjametul este stabil doar cu o linie de bit high și una de bit low.

Pentru a citi un bit dintr-o coloană, urmatoarele operații au loc:

  1. Un amplificator de direcție este închis și liniile de bit sunt preîncarcate la voltajul care se potrivește cu voltajul care este intermediar între nivelele logice high și low. Liniile de bit sunt construite simetric pentru a le păstra echilibrate cât mai precis probabil.
  2. Circuitul preîncarcat este închis . Pentru că liniile de bit sunt foarte lungi, condensatoarele lor vor ține voltajul preîncărcat pentru o scurtă perioadă de timp. Acesta este un exemplu de logică dinamică.
  3. Linia selectată de linii de cuvinte este acționată sus. Aceasta conectează un condensator de stocare la una sau doua linii de bit. Încărcarea este împărțită între celulele de stocare selectate și lina de bit apropiată, alterând puțin voltajul de pe linie. Chiar dacă se face efort pentru a păstra capacitanța celulelor de stocare mare și capacitanța liniei de bit joasă, capacitanța este proporțională cu marimea fizică, și lungimea liniei de bit înseamnă că efectul net este o perturbație foarte mică a voltajului unei linii de bit.
  4. Amplificatorul de direcție este deschis. Feedback-ul pozitiv preia controlul și amplifică diferența mică de voltaj până când o linie de bit este complet low și cealaltă este complet high. În acest punct, linia este "deschisă" și coloana poate fi selectată.
  5. Citirea datelor din DRAM este luată de la amplificatorul de direcție, selectat de coloana de adrese. Multe citiri pot avea loc cât timp linia este deschisă în acest sens.
  6. Cât timp citirea are loc, curentul curge înapoi la liniile de bit de la amplificatorul de direcție la celulele de stocare. Așa are loc refresh-ul de încărcare al celulelor de stocare. Datorită lungimii liniilor de bit, ia destul timp de dincolo de sfârșitul amplificatorului de sens, și coincide parțial cu una sau mai multe citiri de coloane.
  7. Când se sfârșește cu linia de curent, linia de cuvânt este inchisă pentru a deconecta condensatoarele de stocare (linia este "închisă"), amplificatorul de direcție este închis, și liniile de bit sunt preîncarcate iar.

Pentru a scrie memoriei, linia este deschisă și un amplificator de direcție al unei anumite coloane este forțat temporar la starea dorită, asa că este condus la linia de bit, care incarcă condensatorul la valoarea dorită. Datorită feedback-ului pozitiv, amplificatorul il va ține stabil chiar și după ce forțarea nu mai are loc. În timpul scrierii unei anumite celule, întreaga linie este citită, o valoare schimbată, și apoi întreaga linie este scrisă înapoi, asa cum este ilustrat în poza din dreapta. De obicei, producătorii specifică că fiecarei linii trebuie să i se facă refresh la fiecare 64 de milisecunde sau mai puțin, potrivit fundației JEDEC(Foundation for developing Semiconductor Standards). Logica refresh-lui este folosită des cu DRAM-uri pentru a face refresh automat periodic. Acest lucru face circuitul mai complicat, dar acestă deficiență este de obicei prelevată de faptul că DRAM este mult mai ieftină și de capacitate mai mare decat memoria SRAM. Unele sisteme fac refresh la fiecare linie într-o mică buclă la fiecare 64 de milisecunde. Alte sisteme fac refresh pe rând la câte o linie. De exemplu, un sitem cu 213=8192 linii va avea nevoie de de o rată de refresh a unei linii la fiecare 7.8 µs. Câteva sisteme real-time fac refresh la o porțiune de memorie la un timp bazat pe un timer extern care guvernează operația restului de sistem, ca și intervalul de mascare vertical care are loc la fiecare 10-20 de milisecunde în echipamentul video. Toate metodele au nevoie de un fel de counter care să țină evindeța pentru ce linie urmează să se facă refresh. Cele mai multe chip-uri DRAM includ acel counter. Tipurile mai vechi au nevoie de refresh logic extern pentru a ține counterul. (În unele condiții, majoritatea datelor din DRAM pot fi recuperate chiar dacă DRAM-ului nu i s-a mai făcut refresh de câteva minute.)

Memorii DRAM asincrone[modificare | modificare sursă]

Aceste memorii au performanțe limitate deoarece fiecărei operații interne i se asociază un timp minim pentru a fi executată. Operația este considerată terminată doar dupa trecerea acestei perioade de timp. În cazul în care un impuls de ceas apare înainte de terminarea intervalului minim, „trebuie să apară un nou impuls de ceas înainte ca următoarea operație să poată începe”.[1]

FPM (Fast Page Mode)[modificare | modificare sursă]

Memoriile FPM sunt mai rapide decât memoriile DRAM standard deoarece ele nu necesită transmiterea adreselor de linie și de coloană pentru fiecare acces al memoriei; adresa de linie este suficientă pentru mai multe accesări ale memoriei la locații apropiate. În ciuda numelui („fast”), FPM sunt cele mai lente memorii utilizate în computerele moderne. Ele nu sunt potrivite pentru funcționarea la frecvențe mai mari de 66Mhz a magistralei de memorie și sunt recomandate numai atunci când sistemul nu permite utilizarea altor tipuri de memorii (cum ar fi sistemele bazate pe procesorul 80486).

EDO (Extended Data Out)[modificare | modificare sursă]

Memoria EDO mai este cunoscută și sub numele de HyperPage Mode deoarece este asemănătoare cu memoria FPM, dar prezintă o îmbunătățire: o operație de citire poate începe înainte de terminarea operației precedente. Creșterea performanțelor față de FPM este de aproximativ 5%, iar costul de producție este similar. Memoria EDO poate fi utilizată cu magistrale de memorie care să nu depășească 83Mhz și, la fel ca memoria FPM, nu necesită măsuri speciale de compatibilitate. Totuși, memoria EDO nu prezintă performanțe ridicate și de aceea este utilizată foarte rar în prezent.

BEDO (Burst Extended Data Out)[modificare | modificare sursă]

Acest tip de memorie combină tehnologia pipeline cu circuitele latch speciale pentru a reduce timpul de acces. BEDO permite o temporizare de 4-1-1-1 la 66Mhz și permite utilizarea unor frecvențe de până la 100Mhz a magistralei de memorie. Cu toate acestea, memoria BEDO nu este utilizată în prezent, în principal din cauza faptului că Intel nu a implementat suportul necesar pentru aceasta în seturile de circuite.

Memorii DRAM sincrone[modificare | modificare sursă]

Toate memoriile DRAM sincrone sunt cunoscute sub numele SDRAM. Aceste memorii elimină timpul de așteptare al procesorului și prezintă avantaje suplimentare. De exemplu, circuitele latch memorează adresele, datele și semnalele de control preluate de la procesor, sub controlul ceasului sistem. Acest lucru permite ca procesorul să poată executa alte operații. Informațiile din circuitul latch devin disponibile după un număr specific de cicluri de ceas, iar procesorul le poate folosi de pe liniile de ieșire. Un alt avantaj al memoriilor DRAM sincrone este acela că există un singur semnal de sincronizare, și anume ceasul sistem. Acest lucru „elimină necesitatea propagării semnalelor multiple de sincronizare. Intrările sunt de asemenea simplificate, deoarece semnalele de control, adresele și datele pot fi memorate fără temporizările de setare și menținere monitorizate de procesor. Avantaje similare se obțin și pentru operațiile de ieșire”.[2]

SDRAM[modificare | modificare sursă]

Tipul de memorie care se numește SDRAM este cel elaborat conform standardului JEDEC (Joint Electron Device Engineering Council). Modulele memoriei SDRAM au o arhitectură cu 2 sau 4 bancuri pe modul, ceea ce face posibil ca un banc să fie preîncărcat, în timp ce altele sunt citite sau scrise. Acest lucru permite ca diferite linii din fiecare banc să fie accesate simultan. Cele mai utilizate module SDRAM au 4 linii de ceas, ceea ce duce la obținerea unor timpi mai reduși de creștere și descreștere a tensiunilor.

Memoriile SDRAM conțin un circuit de memorie EEPROM care se întâlnește sub denumirea SPD (Serial Presence Detect). Acesta conține informații despre viteza și design-ul modulului. Un avantaj al utilizării circuitului EEPROM este acela că modulul SDRAM poate funcționa mai fiabil pe un număr mai mare de plăci de bază.

O altă caracteristică este aceea că „memoria SDRAM poate funcționa în mod exploziv pentru 1 bit, 2 biți, 4 biți, 8 biți, sau o pagină completă. În mod exploziv, la fiecare tranzacție cu memoria se transferă mai multe locații cu adrese consecutive. Modul exploziv este avantajos deoarece instrucțiunile și datele sunt citite în ordine secvențială în majoritatea timpului. De exemplu, atunci când este prezentă o memorie cache L2, sunt transferate blocuri de memorie de dimensiune fixă, conținând cuvinte cu adrese consecutive”. [3]

Tipuri de memorii SDRAM sunt PC100, PC133, PC150. Acestea au fost introduse de Intel ca o soluție la faptul că memoriile SDRAM originale nu erau fiabile la frecvențe mai mari de 83MHz. Prima dintre ele atinge o temporizare de 4-1-1-1, iar la o frecvență de 100MHz există 100*106 cicluri de ceas pe secundă. În fiecare ciclu se poate transfera cel mult un cuvânt (8 octeți), deci rata de transfer maximă este de 800 MB/s.

HSDRAM (High Speed SDRAM)[modificare | modificare sursă]

Această memorie a fost destinată inițial pentru sisteme cu performanțe ridicate si este compatibilă cu memoria SDRAM convențională. Memoriile HSDRAM pot funcționa la frecvențe de 133MHz, 150Mhz sau chiar 166Mhz. Circuitele de memorie HSDRAM au fost incluse și în alte arhitecturi de memorii, precum ESDRAM și DDR SDRAM.

ESDRAM (Enhanced SDRAM)[modificare | modificare sursă]

Memoria ESDRAM a fost dezvoltată de firma Enhanced Memory Systems în anul 1997. Ea este formată dintr-o memorie SDRAM și o memorie cache de linie cu mapare directă, care păstrează conținutul liniei active. În acest fel, matricea de memorie DRAM se eliberează și poate accesa o altă linie în timp ce conținutul liniei precedente este transferat în bufferele de ieșire. ESDRAM folosește operația de „auto-preîncărcare ascunsă” prin care suprapune transferul în mod exploziv al datelor din memoria cache de linie în bufferele de ieșire.

Memoriile ESRAM utilizează tehnica pipeline și conțin circuite de memorie cu performanțe ridicate (HSDRAM), ceea ce permit funcționarea în mod exploziv la frecvențe de 166Mhz sau 200MHz. Din acest motiv, costul memoriei este ridicat, iar producția este limitată. Totuși, firma Enhanced Memory Systems a dezvoltat și o versiune mai ieftină, numită ESDRAM-lite. „În această arhitectură mai simplă, mai multe linii ale matricei de memorie DRAM partajează aceeași memorie cache de linie, utilizând multiplexarea în timp. Memoria cache de linie este plasată central, ceea ce necesită numai rearanjarea matricei de memorie DRAM în cadrul capsulei pentru a face loc memoriei cache de linie. Creșterea spațiului ocupat în cadrul capsulei față de memoria SDRAM convențională a fost calculată la aproximativ 1,4%, creșterea performanței fiind în jur de 12%”.[4]

Memoriile ESDRAM sunt compatibile atât cu memoriile SDRAM convenționale, cât și cu cele DDR și DDR II.

DDR SDRAM (Double Data Rate SDRAM)[modificare | modificare sursă]

Acest tip de memorie crește semnificativ eficiența magistralei de memorie prin faptul că datele sunt transferate atât pe frontul crescător, cât și pe cel descrescător al semnalului de ceas. DDR SDRAM dublează unitatea minimă de date care poate fi transferată întrucât pe fiecare ciclu de ceas pot fi scrise sau citite câte două cuvinte. DDR lucrează cu două două semnale de ceas. Frontul crescător al semnalului de ceas reprezintă, de fapt, intersecția dintre frontul crescător al primului semnal cu frontul descrescător al celui de-al doilea semnal. La fiecare front crescător sunt memorate semnalele de adresă și control.

„Accesurile de citire și scriere se efectuează în mod exploziv. Ele încep de la o locație selectată și continuă pentru un număr programabil de locații. Lungimea transferului exploziv poate fi programată la 2, 4 sau 8 locații. Accesurile încep cu memorarea unei comenzi de activare (Active), urmată apoi de o comandă de citire (Read) sau scriere (Write). Biții de adresă memorați cu o comandă de activare sunt utilizați pentru a selecta bancul și linia care va fi accesată. Biții de adresă memorați cu o comandă de citire sau scriere sunt utilizați pentru a selecta bancul și coloana de început pentru accesul în mod exploziv. Poate fi validată o funcție de preîncărcare automată (Auto Precharge) pentru preîncărcarea liniei, inițiată la sfârșitul accesului în mod exploziv”.[5]

Din cauza vitezei de transfer ridicate, DDR a înlocuit interfața TTL pentru bufferele de I/E cu o interfață SSTL_2 (Stub-Series Terminated Logic). Puterea consumată de această memorie a fost redusă cu 25%, astfel încât ea funcționează la 2,5V în loc de 3,3V. Frecvențele de ceas tipice pentru DDR SDRAM sunt 133Mhz, 166MHz și 200MHz, prima dintre ele oferind o rată de transfer de vârf de 2100MB/s.

Firmele Micron Technology și Infineon Technologies au propus memoria de tip RLDRAM (Reduced Latency DRAM), o variantă a memoriei DDR SDRAM la care s-au adus îmbunătățiri: rata de transfer susținută este mai ridicată, latența inițială a fost redusă la jumătate, s-au introdus un număr mai mare de bancuri (8 în loc de 4) și sporit gradul de utilizare a magistralei.

DDR II SDRAM[modificare | modificare sursă]

Această memorie este foarte asemănătoare cu DDR SDRAM, dar dublează unitatea minimă de date care poate fi scrisă sau citită la 4 cuvinte consecutive. DDR II conține 4 bancuri, setul de comenzi caracteristic este un superset al comenzilor DDR I, iar numărul de pini a crescut de la 184 (câți are DDR) la 240. Puterea consumată a scăzut, memoria funcționând la 1,8V, ceea ce face DDR II potrivită pentru utilizarea la calculatoarele portabile sau telefoane mobile.

Frecvențe de ceas tipice pentru DDR II SDRAM sunt 200, 266, 333 și 400Mhz. Este de menționat faptul că, din moment ce operațiile interne ale memoriei DDR II funcționează la o frecvență de ceas de două ori mai mică decât cea a memoriei DDR, memoriile DDR II au o latență mai mare decât DDR atunci când ambele funcționează la aceeași frecvență de ceas a datelor externe. De exemplu, memoria DDR2-400 (frecvența de ceas internă 100MHz) are o latență mai mare decât DDR-400 (frecvența de ceas internă 200MHz).

DDR III SDRAM[modificare | modificare sursă]

Memoria DDR III mărește, la rândul ei, unitatea minimă care poate fi scrisă sau citită la 8 cuvinte consecutive, dar cu această modificare crește și latența. Frecvențele de ceas inițiale au fost de 400Mhz și 533 MHz, descrise ca DDR3-800 și DDR3-1066 (modulele PC3-6400 și PC3-8500), dar acum sunt comune frecvențele de 667MHz și 800MHz, descrise ca DDR3-1333 și DDR3-1600 (modulele PC3-10600 și PC3-12800). DDR III funcționează la 1,5 V.

DDR IV SDRAM[modificare | modificare sursă]

Memoria DDR IV va fi succesoarea memoriei DDR III, ea fiind încă în faza de proiectare. Este preconizat ca lansarea noii memorii să aibă loc în anul 2012 și este probabil ca memoria DDR IV să consume 1,2 V sau chiar mai puțin.

Memorii DRAM bazate pe protocoale[modificare | modificare sursă]

Aceste tipuri de memorii nu au linii separate de date, adrese și control, ci implementeză aceste semnale pe aceeași magistrală.Din această categorie de memorii DRAM, cele mai cunoscute sunt:

DRDRAM (Direct Rambus DRAM)[modificare | modificare sursă]

Intel a susținut firma Rambus pentru a dezvolta RDRAM, creată pentru jocul Nintendo Ultra-64, astfel încât ea să poată fi folosită și pentru calculatoarele personale. Nouă memorie poartă numele de DRDRAM. Aceasta are frecvența de ceas de 400MHz, iar rata de transfer cel mult de 1,6 GB/s. Magistrala de memorie DRDRAM este de 16 biți, față de magistralele actuale de memorie care sunt de 64 de biți. Acest lucru, dar și latența mare și prețul ridicat au împiedicat DRDRAM să devină principala tehnologie de memorie.[6]

SLDRAM (SyncLink DRAM)[modificare | modificare sursă]

Această memorie a fost dezvoltată la sfârșit anilor `90 de Consorțiul SLDRAM, formată din 20 de producători de calculatoare. Specificațiile inițiale ale acestei memorii menționau o magistrală de memorie de 64 de biți și de o frecvență de ceas de 200MHz. La fel ca memoria DDR SDRAM, SLDRAM poate funcționa la o frecvență dublă (400MHz), ceea ce înseamnă o rată de transfer de 3,2 GB/s, de două ori mai mare decât cea a memoriei DRDRAM. SLDRAM este un standard deschis și nu sunt necesare taxe de licență.[7]

Referințe[modificare | modificare sursă]