Memorie sincronă cu acces aleator dinamic - Synchronous dynamic random-access memory

Modul de memorie SDRAM

Memoria dinamică sincronă cu acces aleatoriu ( RAM dinamică sincronă sau SDRAM ) este orice DRAM în care funcționarea interfeței sale pin externe este coordonată de un semnal de ceas furnizat extern .

Circuitele integrate (CI) DRAM produse de la începutul anilor '70 până la începutul anilor '90 au folosit o interfață asincronă , în care semnalele de control de intrare au un efect direct asupra funcțiilor interne întârziate doar de călătorie pe căile sale semiconductoare. SDRAM are o interfață sincronă , prin care modificările intrărilor de control sunt recunoscute după o creștere a intrării sale de ceas. În familiile SDRAM standardizate de JEDEC , semnalul de ceas controlează pasul unei mașini interne cu stare finită care răspunde la comenzile primite. Aceste comenzi pot fi canalizate pentru a îmbunătăți performanța, operațiunile începute anterior se finalizează în timp ce se primesc noi comenzi. Memoria este împărțită în mai multe secțiuni egale, dar independente, numite bănci , permițând dispozitivului să funcționeze simultan pe o comandă de acces la memorie în fiecare bancă și să accelereze accesul într-un mod intercalat . Acest lucru permite SDRAM-urilor să obțină concurență mai mare și rate de transfer de date mai mari decât ar putea DRAM-urile asincrone.

Pipelining înseamnă că cipul poate accepta o nouă comandă înainte ca acesta să termine procesarea celei anterioare. Pentru o scriere în linie, comanda de scriere poate fi urmată imediat de o altă comandă fără a aștepta ca datele să fie scrise în matricea de memorie. Pentru o citire în linie, datele solicitate apar cu un număr fix de cicluri de ceas (latență) după comanda de citire, în timpul căreia pot fi trimise comenzi suplimentare.

Istorie

Opt IC-uri Hyundai SDRAM pe un pachet PC100 DIMM

Cele mai vechi DRAM-uri au fost adesea sincronizate cu ceasul CPU (cu ceas) și au fost utilizate cu procesoarele Intel timpurii. La mijlocul anilor 1970, DRAM-urile s-au mutat la designul asincron, dar în anii 1990 au revenit la funcționarea sincronă.

Primul SDRAM comercial a fost cipul de memorie Samsung KM48SL2000 , care avea o capacitate de 16 Mbit. A fost fabricat de Samsung Electronics folosind un proces de fabricație CMOS ( metal-oxid-semiconductor complementar ) în 1992 și produs în serie în 1993. Până în 2000, SDRAM înlocuise practic toate celelalte tipuri de DRAM din computerele moderne , datorită performanței sale mai mari .  

Latența SDRAM nu este inerent mai mică (mai rapidă) decât DRAM asincron. Într-adevăr, SDRAM timpuriu a fost oarecum mai lent decât spargerea contemporană EDO DRAM datorită logicii suplimentare. Beneficiile memoriei tampon interne SDRAM provin din capacitatea sa de a intercala operațiuni pe mai multe bănci de memorie, crescând astfel lățimea de bandă eficientă .

Astăzi, practic toate SDRAM sunt fabricate în conformitate cu standardele stabilite de JEDEC , o asociație a industriei electronice care adoptă standarde deschise pentru a facilita interoperabilitatea componentelor electronice. JEDEC a adoptat oficial primul său standard SDRAM în 1993 și ulterior a adoptat alte standarde SDRAM, inclusiv cele pentru DDR , DDR2 și DDR3 SDRAM .

SDRAM cu viteză de date dublă , cunoscută sub numele de DDR SDRAM , a fost demonstrată pentru prima dată de Samsung în 1997. Samsung a lansat primul cip DDR SDRAM comercial (64  Mbit) în iunie 1998, urmat la scurt timp de Hyundai Electronics (acum SK Hynix ) în același an.

SDRAM este disponibil și în varietăți înregistrate , pentru sisteme care necesită o scalabilitate mai mare, cum ar fi servere și stații de lucru .

Astăzi, cei mai mari producători de SDRAM din lume includ: Samsung Electronics , Panasonic , Micron Technology și Hynix .

Sincronizare

Există mai multe limite privind performanța DRAM. Cel mai notat este timpul ciclului de citire, timpul dintre operațiile de citire succesive până la un rând deschis. Acest timp a scăzut de la 10 ns pentru 100 MHz SDRAM (1 MHz = 1 1000 ^ 2 Hz) la 5 ns pentru DDR-400, dar a rămas relativ neschimbat prin generațiile DDR2-800 și DDR3-1600. Cu toate acestea, prin operarea circuitelor de interfață la multipli din ce în ce mai mari ai ratei fundamentale de citire, lățimea de bandă realizabilă a crescut rapid.

O altă limită este latența CAS , timpul dintre furnizarea unei adrese de coloană și primirea datelor corespunzătoare. Din nou, acest lucru a rămas relativ constant la 10-15 ns în ultimele câteva generații de DDR SDRAM.

În funcțiune, latența CAS este un număr specific de cicluri de ceas programate în registrul de mod SDRAM și așteptat de către controlerul DRAM. Orice valoare poate fi programată, dar SDRAM nu va funcționa corect dacă este prea mică. La rate de ceas mai mari, latența CAS utilă în ciclurile de ceas crește în mod natural. 10-15 ns reprezintă 2-3 cicluri (CL2-3) ale ceasului de 200 MHz al DDR-400 SDRAM, CL4-6 pentru DDR2-800 și CL8-12 pentru DDR3-1600. Ciclurile de ceas mai lente vor permite în mod natural un număr mai mic de cicluri de latență CAS.

Modulele SDRAM au propriile specificații de sincronizare, care pot fi mai lente decât cele ale cipurilor de pe modul. Când au apărut pentru prima dată cipurile SDRAM de 100 MHz, unii producători au vândut module „100 MHz” care nu puteau funcționa în mod fiabil la acel ritm de ceas. Ca răspuns, Intel a publicat standardul PC100, care prezintă cerințele și liniile directoare pentru producerea unui modul de memorie care poate funcționa în mod fiabil la 100 MHz. Acest standard a fost foarte influent, iar termenul „PC100” a devenit rapid un identificator comun pentru modulele SDRAM de 100 MHz, iar modulele sunt acum desemnate în mod obișnuit cu numere prefixate „PC” (PC66, PC100 sau PC133 - deși semnificația reală a numerelor s-a schimbat).

Semnalele de control

Toate comenzile sunt temporizate în raport cu marginea ascendentă a unui semnal de ceas. În plus față de ceas, există șase semnale de control, în mare parte active , care sunt eșantionate pe marginea ascendentă a ceasului:

  • Activarea ceasului CKE . Când acest semnal este scăzut, cipul se comportă ca și cum ceasul s-ar fi oprit. Nici o comandă nu este interpretată și timpul de latență a comenzilor nu se scurge. Starea altor linii de control nu este relevantă. Efectul acestui semnal este de fapt întârziat cu un ciclu de ceas. Adică, ciclul de ceas curent continuă ca de obicei, dar următorul ciclu de ceas este ignorat, cu excepția testării din nou a intrării CKE. Operațiunile normale se reiau pe marginea ascendentă a ceasului după cea în care CKE este eșantionat. Altfel spus, toate celelalte operații cu cip sunt temporizate în raport cu marginea ascendentă a unui ceas mascat. Ceasul mascat este AND-ul logic al ceasului de intrare și starea semnalului CKE în timpul creșterii anterioare a ceasului de intrare.
  • CS chip select. Când acest semnal este ridicat, cipul ignoră toate celelalte intrări (cu excepția CKE) și acționează ca și cum ar fi primit o comandă NOP.
  • Mască de date DQM . (Litera Q apare deoarece, urmând convențiile logice digitale, liniile de date sunt cunoscute sub numele de linii „DQ”.) Când sunt ridicate, aceste semnale suprimă I / O de date. La însoțirea datelor de scriere, datele nu sunt de fapt scrise pe DRAM. Când se afirmă ridicat cu două cicluri înainte de un ciclu de citire, datele de citire nu sunt generate de cip. Există o linie DQM la 8 biți pe un cip de memorie x16 sau DIMM.

Semnalele de comandă

  • RAS , stroboscop de adresă de rând. În ciuda numelui, acesta nu esteun stroboscop, ci mai degrabă pur și simplu un bit de comandă. Împreună cu CAS și WE , aceasta selectează una dintre cele opt comenzi.
  • CAS , stroboscop adresa coloanei. Acesta nu este, de asemenea, un stroboscop, ci un bit de comandă. Împreună cu RAS și WE , aceasta selectează una dintre cele opt comenzi.
  • NOI , activează scrierea. Împreună cu RAS și CAS , aceasta selectează una dintre cele opt comenzi. În general, distinge comenzile de tip citire de comenzile de tip scris.

Selectarea băncii (BAn)

Dispozitivele SDRAM sunt împărțite intern în două, patru sau opt bănci de date interne independente. Una până la trei intrări de adresă bancară (BA0, BA1 și BA2) sunt utilizate pentru a selecta către ce bancă este direcționată o comandă.

Adresare (A10 / An)

Multe comenzi folosesc, de asemenea, o adresă prezentată pe pinii de introducere a adresei. Unele comenzi, care fie nu utilizează o adresă, fie prezintă o adresă de coloană, folosesc și A10 pentru a selecta variante.

Comenzi

Comenzile SDR SDRAM sunt definite după cum urmează:

CS RAS CAS NOI BA n A10 A n Comanda
H X X X X X X Inhibare comandă (fără operație)
L H H H X X X Fără operație
L H H L X X X Terminare rafală: opriți o citire în rafală sau o scriere în rafală în curs
L H L H bancă L coloană Citiți: citiți o rafală de date din rândul activ în prezent
L H L H bancă H coloană Citiți cu preîncărcare automată: ca mai sus și preîncărcați (închideți rândul) când ați terminat
L H L L bancă L coloană Scrie: scrie o rafală de date pe rândul activ curent
L H L L bancă H coloană Scrieți cu preîncărcare automată: ca mai sus și preîncărcați (închideți rândul) când ați terminat
L L H H bancă rând Activ (activate): deschideți un rând pentru comenzile de citire și scriere
L L H L bancă L X Preîncărcare: dezactivați (închideți) rândul curent al băncii selectate
L L H L X H X Preîncărcați toate: dezactivați (închideți) rândul curent al tuturor băncilor
L L L H X X X Reîmprospătare automată: reîmprospătați un rând din fiecare bancă, utilizând un contor intern. Toate băncile trebuie să fie preîncărcate.
L L L L 0 0 modul Înregistrare mod încărcare: A0 până la A9 sunt încărcate pentru a configura cipul DRAM.
Cele mai semnificative setări sunt latența CAS (2 sau 3 cicluri) și lungimea de rafală (1, 2, 4 sau 8 cicluri)

Toate generațiile SDRAM (SDR și DDRx) folosesc în esență aceleași comenzi, modificările fiind:

  • Biți de adresă suplimentari pentru a susține dispozitive mai mari
  • Biți suplimentari de selectare a băncii
  • Registre de mod mai larg (DDR2 și versiunile superioare utilizează 13 biți, A0 – A12)
  • Registre suplimentare de mod extins (selectate de biții de adresă bancară)
  • DDR2 șterge comanda de terminare a rafalei; DDR3 îl reatribuie ca „calibrare ZQ”
  • DDR3 și DDR4 folosesc A12 în timpul comenzii de citire și scriere pentru a indica „burst chop”, transfer de date pe jumătate
  • DDR4 modifică codarea comenzii de activare. Un nou semnal ACT îl controlează, timp în care celelalte linii de control sunt utilizate ca biți de adresă de rând 16, 15 și 14. Când ACT este ridicat, alte comenzi sunt aceleași ca mai sus.

Construcție și exploatare

Modul de memorie SDRAM, mărit

De exemplu, un „512 MB” SDRAM DIMM (care conține 512 MB, ar putea fi format din opt sau nouă cipuri SDRAM, fiecare conținând 512 Mbit de stocare și fiecare contribuind cu 8 biți la lățimea DIMM pe 64 sau 72 de biți. Un cip SDRAM tipic de 512 Mbit conține intern patru bănci de memorie independente de 16 MB. Fiecare bancă este o matrice de 8.192 rânduri de 16.384 biți fiecare. (2048 coloane de 8 biți). O bancă este fie inactivă, activă sau se schimbă de la una la alte.

Comanda activă activează un banc inactiv. Prezintă o adresă de bancă de doi biți (BA0 – BA1) și o adresă de rând de 13 biți (A0 – A12) și provoacă o citire a acelui rând în matricea băncii a tuturor celor 16 384 de amplificatoare de sens coloane. Acest lucru este, de asemenea, cunoscut sub numele de „deschiderea” rândului. Această operație are ca efect secundar reîmprospătarea celulelor de stocare dinamice (capacitive) a memoriei din acel rând.

Odată ce rândul a fost activat sau „deschis”, comenzile de citire și scriere sunt posibile pentru acel rând. Activarea necesită o perioadă minimă de timp, numită întârziere de la rând la coloană, sau t RCD înainte ca citirea sau scrierea să poată apărea. De această dată, rotunjit la următorul multiplu al perioadei de ceas, specifică numărul minim de cicluri de așteptare între o comandă activă și o comandă de citire sau scriere . În timpul acestor cicluri de așteptare, comenzi suplimentare pot fi trimise către alte bănci; deoarece fiecare bancă funcționează complet independent.

Ambele comenzi de citire și scriere necesită o adresă de coloană. Deoarece fiecare cip accesează opt biți de date la un moment dat, există 2.048 posibile adrese de coloană necesitând astfel doar 11 linii de adrese (A0 – A9, A11).

Când este emisă o comandă de citire , SDRAM va produce datele de ieșire corespunzătoare pe liniile DQ la timp pentru marginea ascendentă a ceasului câteva cicluri de ceas mai târziu, în funcție de latența CAS configurată. Cuvintele ulterioare ale exploziei vor fi produse la timp pentru creșterile ulterioare ale ceasului.

O comandă de scriere este însoțită de datele care urmează să fie scrise conduse pe liniile DQ în timpul aceleiași margini de ceas în creștere. Este de datoria controlerului de memorie să se asigure că SDRAM nu conduce date citite pe liniile DQ în același timp în care trebuie să conducă date de scriere pe acele linii. Acest lucru se poate face prin așteptarea până la terminarea unei rafale de citire, prin terminarea unei rafale de citire sau prin utilizarea liniei de control DQM.

Când controlerul de memorie trebuie să acceseze un rând diferit, acesta trebuie mai întâi să readucă amplificatoarele de sens ale băncii respective într-o stare inactivă, gata să sesizeze rândul următor. Aceasta este cunoscută sub numele de operație de „preîncărcare” sau „închiderea” rândului. O preîncărcare poate fi comandată în mod explicit sau poate fi efectuată automat la încheierea unei operații de citire sau scriere. Din nou, există un timp minim, întârzierea de preîncărcare a rândului, t RP , care trebuie să treacă înainte ca acel rând să fie complet „închis” și astfel banca este inactivă pentru a primi o altă comandă de activare pe acea bancă.

Deși reîmprospătarea unui rând este un efect secundar automat al activării acestuia, există un timp minim pentru a se întâmpla acest lucru, care necesită un timp minim de acces la rând t întârziere RAS între o comandă activă care deschide un rând și comanda corespunzătoare de preîncărcare care o închide. Această limită este de obicei diminuată de comenzile de citire și scriere dorite pe rând, astfel încât valoarea sa are un efect redus asupra performanței tipice.

Interacțiuni de comandă

Comanda fără operație este întotdeauna permisă, în timp ce comanda de înregistrare a modului de încărcare necesită ca toate băncile să fie inactive și o întârziere ulterioară pentru ca modificările să aibă efect. Comanda de reîmprospătare automată necesită, de asemenea, ca toate băncile să fie inactive și durează un ciclu de reîmprospătare t RFC pentru a readuce cipul în starea de inactivitate. (Acest timp este de obicei egal cu t RCD + t RP .) Singura altă comandă care este permisă pe un banc inactiv este comanda activă. Acest lucru necesită, după cum sa menționat mai sus, t RCD înainte ca rândul să fie complet deschis și să accepte comenzi de citire și scriere.

Când o bancă este deschisă, sunt permise patru comenzi: citire, scriere, terminare rafală și preîncărcare. Citirea și scrierea comenzilor încep rafale, care pot fi întrerupte prin urmarea comenzilor.

Întreruperea unei explozii de citire

O comandă de citire, terminare rafală sau preîncărcare poate fi emisă în orice moment după o comandă de citire și va întrerupe rafala de citire după latența CAS configurată. Deci, dacă o comandă de citire este emisă în ciclul 0, o altă comandă de citire este emisă în ciclul 2, iar latența CAS este 3, atunci prima comandă de citire va începe să explodeze datele în timpul ciclurilor 3 și 4, apoi rezultatele din a doua citire comanda va apărea începând cu ciclul 5.

Dacă comanda emisă în ciclul 2 ar fi terminată în rafală sau o preîncărcare a băncii active, atunci nu s-ar genera nicio ieșire în timpul ciclului 5.

Deși citirea de întrerupere poate fi pentru orice bancă activă, o comandă de preîncărcare va întrerupe explozia de citire numai dacă este pentru aceeași bancă sau pentru toate băncile; o comandă de preîncărcare către o altă bancă nu va întrerupe o explozie de citire.

Este posibilă întreruperea unei rafale de citire printr-o comandă de scriere, dar mai dificilă. Se poate face dacă semnalul DQM este utilizat pentru a suprima ieșirea din SDRAM, astfel încât controlerul de memorie să poată conduce date pe liniile DQ către SDRAM la timp pentru operația de scriere. Deoarece efectele DQM asupra datelor citite sunt întârziate cu două cicluri, dar efectele DQM asupra datelor de scriere sunt imediate, DQM trebuie crescut (pentru a masca datele citite) începând cu cel puțin două cicluri înainte de comanda de scriere, dar trebuie redus pentru ciclul comenzii de scriere (presupunând că comanda de scriere este destinată să aibă efect).

Pentru a face acest lucru în doar două cicluri de ceas, este necesară o coordonare atentă între timpul pe care SDRAM îl ia pentru a opri ieșirea pe o margine de ceas și timpul în care datele trebuie furnizate ca intrare în SDRAM pentru scrierea de pe următoarea margine de ceas. Dacă frecvența ceasului este prea mare pentru a permite suficient timp, pot fi necesare trei cicluri.

Dacă comanda de citire include preîncărcarea automată, preîncărcarea începe același ciclu ca și comanda de întrerupere.

Comandă în rafală

Un microprocesor modern cu un cache va accesa în general memoria în unități de linii cache . Pentru a transfera o linie cache de 64 de octeți este nevoie de opt accesuri consecutive la un DIMM pe 64 de biți, care poate fi declanșat de o singură comandă de citire sau scriere prin configurarea cipurilor SDRAM, utilizând registrul de moduri, pentru a efectua rafale de opt cuvinte . O preluare a liniei cache este de obicei declanșată de o citire de la o anumită adresă, iar SDRAM permite transferul mai întâi al „cuvântului critic” al liniei cache. („Cuvântul” se referă aici la lățimea cipului SDRAM sau DIMM, care este de 64 de biți pentru un DIMM tipic.) Cipurile SDRAM acceptă două convenții posibile pentru ordonarea cuvintelor rămase în linia cache.

Rafalele accesează întotdeauna un bloc aliniat de cuvinte consecutive BL începând cu un multiplu de BL. Deci, de exemplu, un acces în rafală de patru cuvinte la orice adresă de coloană de la patru la șapte va returna cuvintele de la patru la șapte. Cu toate acestea, comanda depinde de adresa solicitată și de opțiunea de tip rafală configurată: secvențială sau intercalată. De obicei, un controler de memorie va necesita unul sau altul. Când lungimea rafalei este una sau două, tipul rafalei nu contează. Pentru o lungime de rafală de unul, cuvântul solicitat este singurul cuvânt accesat. Pentru o lungime de rafală de două, cuvântul solicitat este accesat mai întâi, iar celălalt cuvânt din blocul aliniat este accesat în al doilea rând. Acesta este următorul cuvânt dacă a fost specificată o adresă pară și cuvântul anterior dacă a fost specificată o adresă impară.

Pentru modul de rafală secvențială , cuvintele ulterioare sunt accesate în ordine crescândă a adreselor, înfășurându-se înapoi la începutul blocului când se ajunge la sfârșit. De exemplu, pentru o lungime de rafală de patru și o adresă de coloană solicitată de cinci, cuvintele ar fi accesate în ordinea 5-6-7-4. Dacă lungimea rafalei ar fi opt, ordinea de acces ar fi 5-6-7-0-1-2-3-4. Acest lucru se face prin adăugarea unui contor la adresa coloanei și ignorarea trece de lungimea rafalei. Modul de rafală intercalat calculează adresa utilizând o operațiune exclusivă sau între contor și adresă. Folosind aceeași adresă de pornire de cinci, o rafală de patru cuvinte ar returna cuvinte în ordinea 5-4-7-6. O explozie de opt cuvinte ar fi 5-4-7-6-1-0-3-2. Deși este mai confuz pentru oameni, acest lucru poate fi mai ușor de implementat în hardware și este preferat de Intel pentru microprocesoarele sale.

Dacă adresa coloanei solicitate este la începutul unui bloc, ambele moduri de rafală (secvențiale și intercalate) returnează date în aceeași secvență secvențială 0-1-2-3-4-5-6-7. Diferența contează numai dacă preluați o linie cache din memorie în ordinea critic-cuvânt-întâi.

Registru mod

SDRAM cu o singură rată de date are un singur registru de mod programabil pe 10 biți. Mai târziu, standardele SDRAM cu rată dublă de date adaugă registre de moduri suplimentare, adresate cu ajutorul pinilor de adresă bancară. Pentru SDR SDRAM, pinii de adresă bancară și liniile de adresă A10 și mai sus sunt ignorate, dar ar trebui să fie zero în timpul unei înregistrări de mod de scriere.

Biții sunt de la M9 la M0, prezentați pe liniile de adresă A9 până la A0 în timpul unui ciclu de înregistrare a modului de încărcare.

  • M9: Scrieți modul rafală. Dacă 0, scrierea utilizează modul și lungimea rafalei citite. Dacă este 1, toate scrierile sunt non-rafale (locație unică).
  • M8, M7: Mod de operare. Rezervat și trebuie să fie 00.
  • M6, M5, M4: latență CAS. În general, numai 010 (CL2) și 011 (CL3) sunt legale. Specifică numărul de cicluri dintre o comandă de citire și ieșirea datelor de pe cip. Cipul are o limită fundamentală asupra acestei valori în nanosecunde; în timpul inițializării, controlerul de memorie trebuie să își folosească cunoștințele despre frecvența ceasului pentru a traduce această limită în cicluri.
  • M3: tip rafală. 0 - solicită ordonare de rafală secvențială, în timp ce 1 solicită ordonare de rafală intercalată.
  • M2, M1, M0: Lungime rafală. Valorile 000, 001, 010 și 011 specifică o dimensiune de rafală de 1, 2, 4 sau 8 cuvinte, respectiv. Fiecare citire (și scriere, dacă M9 este 0) va efectua atâtea accesări, cu excepția cazului în care este întreruptă de o oprire de rafală sau altă comandă. O valoare de 111 specifică o rafală pe întregul rând. Explozia va continua până la întrerupere. Rafalările de rând complet sunt permise numai cu tipul de rafală secvențială.

Mai târziu (rata de date dublă) standardele SDRAM utilizează mai mulți biți de registre de mod și oferă registre de moduri suplimentare numite „registre de mod extins”. Numărul de registru este codat pe pinii adresei bancare în timpul comenzii de înregistrare a modului de încărcare. De exemplu, DDR2 SDRAM are un registru de mod de 13 biți, un registru de mod extins nr. 1 pe 13 biți (EMR1) și un registru de mod extins nr. 2 pe 5 biți (EMR2).

Reîmprospătare automată

Este posibil să reîmprospătați un cip RAM deschizând și închizând (activând și preîncărcând) fiecare rând din fiecare bancă. Cu toate acestea, pentru a simplifica controlerul de memorie, cipurile SDRAM acceptă o comandă de „reîmprospătare automată”, care efectuează aceste operații la un rând în fiecare bancă simultan. SDRAM menține, de asemenea, un contor intern, care repetă toate rândurile posibile. Controlerul de memorie trebuie să emită pur și simplu un număr suficient de comenzi de reîmprospătare automată (una pe rând, 8192 în exemplul pe care l-am folosit) la fiecare interval de reîmprospătare (t REF = 64 ms este o valoare comună). Toate băncile trebuie să fie inactive (închise, preîncărcate) atunci când este emisă această comandă.

Moduri de putere redusă

După cum sa menționat, intrarea de activare a ceasului (CKE) poate fi utilizată pentru a opri efectiv ceasul pe o SDRAM. Intrarea CKE este eșantionată la fiecare margine ascendentă a ceasului și, dacă este scăzută, următoarea margine ascendentă a ceasului este ignorată în toate scopurile, altele decât verificarea CKE. Atâta timp cât CKE este scăzut, este permisă modificarea ratei de ceas sau chiar oprirea completă a ceasului.

Dacă CKE este coborât în ​​timp ce SDRAM efectuează operațiuni, pur și simplu „îngheață” în loc până când CKE este ridicat din nou.

Dacă SDRAM este inactiv (toate băncile preîncărcate, nu există comenzi în curs) când CKE este coborât, SDRAM intră automat în modul de oprire, consumând energie minimă până când CKE este ridicat din nou. Aceasta nu trebuie să dureze mai mult decât intervalul maxim de reîmprospătare t REF , sau se poate pierde conținutul memoriei. Este legal să opriți ceasul în întregime în acest timp pentru economii suplimentare de energie.

În cele din urmă, dacă CKE este coborât în ​​același timp cu trimiterea unei comenzi de reîmprospătare automată către SDRAM, acesta intră în modul de reîmprospătare automată. Aceasta este ca oprirea, dar SDRAM utilizează un temporizator on-chip pentru a genera cicluri de reîmprospătare interne, după cum este necesar. Ceasul poate fi oprit în acest timp. În timp ce modul de auto-reîmprospătare consumă puțin mai multă energie decât modul de oprire, acesta permite ca controlerul de memorie să fie dezactivat în totalitate, ceea ce de obicei face mai mult decât să facă diferența.

SDRAM proiectat pentru dispozitive alimentate cu baterii oferă câteva opțiuni suplimentare de economisire a energiei. Una este reîmprospătarea dependentă de temperatură; un senzor de temperatură pe cip reduce rata de reîmprospătare la temperaturi mai scăzute, mai degrabă decât să-l ruleze întotdeauna la cel mai rău caz. O alta este reîmprospătarea selectivă, care limitează reîmprospătarea automată la o porțiune a matricei DRAM. Fracția care este reîmprospătată este configurată utilizând un registru de mod extins. Al treilea, implementat în Mobile DDR (LPDDR) și LPDDR2 este modul „deep power down”, care invalidează memoria și necesită o reinitializare completă pentru a ieși din. Aceasta este activată prin trimiterea unei comenzi „terminare rafală” în timp ce coborâți CKE.

Arhitectură de preluare DDR SDRAM

DDR SDRAM folosește arhitectura de preluare pentru a permite accesul rapid și ușor la mai multe cuvinte de date situate pe un rând fizic comun din memorie.

Arhitectura prefetch profită de caracteristicile specifice accesului la memorie la DRAM. Operațiunile de memorie DRAM tipice implică trei faze: bitline preîncărcare, acces rând, accesul pe coloană. Accesul pe rând este inima unei operații de citire, deoarece implică detectarea atentă a semnalelor minuscule din celulele de memorie DRAM; este cea mai lentă fază a operației de memorie. Cu toate acestea, odată ce un rând este citit, accesul ulterior al coloanei la același rând poate fi foarte rapid, deoarece amplificatoarele de sens acționează și ca blocări. Pentru referință, un rând al unui dispozitiv DDR3 de 1 Gbit are o lățime de 2.048 biți , astfel încât în ​​interior 2.048 biți sunt citiți în 2.048 amplificatoare de sens separate în timpul fazei de acces la rând. Accesele pe rând pot dura 50 ns , în funcție de viteza DRAM, în timp ce accesele pe coloane dintr-un rând deschis sunt mai mici de 10 ns.

Arhitecturile tradiționale DRAM au susținut mult timp accesul rapid al coloanei la biți pe un rând deschis. Pentru un cip de memorie de 8 biți cu un rând de 2.048 biți, accesul la oricare dintre cele 256 de cuvinte de date (2048/8) de pe rând poate fi foarte rapid, cu condiția să nu apară accesuri la alte rânduri.

Dezavantajul metodei mai vechi de acces rapid la coloană era că trebuia trimisă o nouă adresă de coloană pentru fiecare cuvânt de date suplimentar de pe rând. Autobuzul de adrese trebuia să funcționeze la aceeași frecvență ca și autobuzul de date. Arhitectura Prefetch simplifică acest proces, permițând unei singure solicitări de adresă să conducă la mai multe cuvinte de date.

Într-o arhitectură tampon prefetch, atunci când are loc un acces de memorie pe un rând, bufferul apucă un set de cuvinte de date adiacente pe rând și le citește (le „sparg”) în secvență de declanșare rapidă pe pinii IO, fără a fi nevoie de solicitări individuale de adresă a coloanei. Aceasta presupune că procesorul dorește cuvinte de date adiacente în memorie, ceea ce în practică este foarte des cazul. De exemplu, în DDR1, două cuvinte de date adiacente vor fi citite de pe fiecare cip în același ciclu de ceas și plasate în tamponul de pre-preluare. Fiecare cuvânt va fi apoi transmis pe margini consecutive crescătoare și descendente ale ciclului ceasului. În mod similar, în DDR2 cu un tampon de pre-preluare de 4n, patru cuvinte de date consecutive sunt citite și plasate în tampon în timp ce un ceas, care este de două ori mai rapid decât ceasul intern al DDR, transmite fiecare cuvânt în marginea crescătoare și descendentă consecutivă a ceas extern mai rapid

Adâncimea tamponului de preluare poate fi, de asemenea, considerată ca fiind raportul dintre frecvența memoriei de bază și frecvența IO. Într-o arhitectură de preluare de 8n (cum ar fi DDR3 ), IO-urile vor funcționa de 8 ori mai repede decât nucleul de memorie (fiecare acces la memorie are ca rezultat o explozie de 8 parole de date pe IO-uri). Astfel, un nucleu de memorie de 200 MHz este combinat cu IO-uri care operează fiecare de opt ori mai repede (1600 megabiți pe secundă). Dacă memoria are 16 IO-uri, lățimea de bandă totală de citire ar fi de 200 MHz x 8 parole de date / acces x 16 IO-uri = 25,6 gigați pe secundă (Gbit / s) sau 3,2 gigaocteți pe secundă (GB / s). Modulele cu mai multe cipuri DRAM pot oferi o lățime de bandă corespunzător mai mare.

Fiecare generație de SDRAM are o dimensiune diferită a bufferului de preluare:

  • Dimensiunea bufferului de preluare anticipată a DDR SDRAM este 2n (două parole de date pe acces la memorie)
  • Dimensiunea bufferului de preluare anticipată a DDR2 SDRAM este de 4n (patru cuvinte de date pe acces la memorie)
  • Dimensiunea bufferului de preluare anticipată a DDR3 SDRAM este 8n (opt parole de date pe acces la memorie)
  • Dimensiunea bufferului de preluare anticipată a DDR4 SDRAM este 8n (opt parole de date pe acces la memorie)
  • Dimensiunea bufferului de preluare anticipată a DDR5 SDRAM este 8n; există un mod suplimentar 16n

Generații

Harta caracteristicilor SDRAM
Tip Modificări ale funcției
SDRAM
DDR1
DDR2 Accesul este ≥4 cuvinte
„Burst terminate” eliminat
4 unități utilizate în paralel
1,25 - 5 ns pe ciclu
Operațiile interne sunt la jumătate din viteza de ceas.
Semnal: SSTL_18 (1,8V)
DDR3 Accesul este de ≥8 cuvinte
Semnal: SSTL_15 (1,5V) Latențe
CAS mult mai lungi
DDR4 V cc ≤ 1,2 V punct-la-punct (modul unic pe canal)

DST

Cei 64 MB de memorie de sunet de pe Pro Sound Blaster X-Fi Fatalitate placa de sunet este construit din două Micron cipuri 48LC32M8A2 SDRAM. Acestea rulează la 133 MHz (7,5 ns perioadă de ceas) și au magistrale de date pe 8 biți.

Numit inițial simplu SDRAM , SDRAM cu o singură rată de date poate accepta o comandă și poate transfera un cuvânt de date pe ciclu de ceas. Cipurile sunt realizate cu o varietate de dimensiuni ale magistralei de date (cel mai frecvent 4, 8 sau 16 biți), dar cipurile sunt în general asamblate în 168-pin DIMM - uri care citesc sau scriu 64 (non-ECC) sau 72 ( ECC ) biți la un moment dat .

Utilizarea magistralei de date este complicată și, prin urmare, necesită un circuit complex de controler DRAM. Acest lucru se datorează faptului că datele scrise în DRAM trebuie să fie prezentate în același ciclu cu comanda de scriere, dar citirile produc ieșire 2 sau 3 cicluri după comanda de citire. Controlerul DRAM trebuie să se asigure că magistrala de date nu este necesară niciodată pentru o citire și o scriere în același timp.

Viteza de ceas tipică SDR SDRAM este de 66, 100 și 133 MHz (perioade de 15, 10 și 7,5 ns), respectiv PC66, PC100 și PC133. Au fost disponibile rate de ceas de până la 200 MHz. Funcționează la o tensiune de 3,3 V.

Acest tip de SDRAM este mai lent decât variantele DDR, deoarece este transmis un singur cuvânt de date pe ciclu de ceas (viteză de date unică). Dar acest tip este, de asemenea, mai rapid decât predecesorii săi de date extinse DRAM (EDO-RAM) și modul de pagină rapidă DRAM (FPM-RAM), care au necesitat în mod normal două sau trei ceasuri pentru a transfera un cuvânt de date.

PC66

PC66 se referă la standardul intern de memorie de calculator detașabil definit de JEDEC . PC66 este DRAM sincron care funcționează la o frecvență de ceas de 66,66 MHz, pe o magistrală pe 64 de biți, la o tensiune de 3,3 V. PC66 este disponibil în 168-pini DIMM și 144-pini SO-DIMM factori de formă. Lățimea de bandă teoretică este de 533 MB / s. (1 MB / s = un milion de octeți pe secundă)

Acest standard a fost utilizat de computerele Intel Pentium și AMD K6 . De asemenea, este disponibil în modelele Beige Power Mac G3 , iBooks timpurii și PowerBook G3 . Este, de asemenea, utilizat în multe sisteme Intel Celeron timpurii cu un FSB de 66 MHz . A fost înlocuit de standardele PC100 și PC133.

PC100

DIMM: 168 pini și două crestături

PC100 este un standard pentru memoria internă cu acces aleatoriu a computerului amovibil , definit de JEDEC . PC100 se referă la DRAM sincron care funcționează la o frecvență de ceas de 100 MHz, pe o magistrală pe 64 de biți, la o tensiune de 3,3 V. PC100 este disponibil în 168-pini DIMM și 144-pini SO-DIMM factori de formă . PC100 este compatibil cu PC66 și a fost înlocuit de standardul PC133.

Un modul construit din cipuri SDRAM de 100 MHz nu este neapărat capabil să funcționeze la 100 MHz. Standardul PC100 specifică capacitățile modulului de memorie ca întreg. PC100 este utilizat în multe computere mai vechi; Computerele de la sfârșitul anilor 1990 erau cele mai comune computere cu memorie PC100.

PC133

PC133 este un standard de memorie pentru computer definit de JEDEC . PC133 se referă la SDR SDRAM care funcționează la o frecvență de ceas de 133 MHz, pe o magistrală pe 64 de biți, la o tensiune de 3,3 V. PC133 este disponibil în 168-pini DIMM și 144-pini SO-DIMM factori de formă. PC133 este cel mai rapid și final standard SDRAM SDRAM aprobat vreodată de JEDEC și oferă o lățime de bandă de 1,066 GB pe secundă ([133,33 MHz * 64/8] = 1,066 GB / s). (1 GB / s = un miliard de octeți pe secundă) PC133 este compatibil cu PC100 și PC66.

DDR

În timp ce latența de acces a DRAM este fundamental limitată de matricea DRAM, DRAM are o lățime de bandă potențială foarte mare, deoarece fiecare citire internă este de fapt un rând de multe mii de biți. Pentru a face mai largă această lățime de bandă disponibilă utilizatorilor, a fost dezvoltată o interfață dublă pentru rata de date . Aceasta folosește aceleași comenzi, acceptate o dată pe ciclu, dar citește sau scrie două cuvinte de date pe ciclu de ceas. Interfața DDR realizează acest lucru citind și scriind date atât pe marginile ascendente cât și descendente ale semnalului de ceas. În plus, unele modificări minore la sincronizarea interfeței SDR au fost făcute în retrospectivă, iar tensiunea de alimentare a fost redusă de la 3,3 la 2,5 V. Ca urmare, DDR SDRAM nu este compatibilă cu SDRAM SDRAM.

DDR SDRAM (uneori numită DDR1 pentru o mai mare claritate) dublează unitatea minimă de citire sau scriere; fiecare acces se referă la cel puțin două cuvinte consecutive.

Viteza de ceas tipică DDR SDRAM este de 133, 166 și 200 MHz (7,5, 6 și 5 ns / ciclu), în general descrise ca DDR-266, DDR-333 și DDR-400 (3,75, 3 și 2,5 ns pe ritm). DIMM-urile corespunzătoare cu 184 pini sunt cunoscute sub numele de PC-2100, PC-2700 și PC-3200. Sunt disponibile performanțe până la DDR-550 (PC-4400).

DDR2

DDR2 SDRAM este foarte asemănător cu DDR SDRAM, dar dublează din nou unitatea minimă de citire sau scriere, la patru cuvinte consecutive. Protocolul de magistrală a fost, de asemenea, simplificat pentru a permite o funcționare mai bună. (În special, comanda „terminare rafală” este ștearsă.) Aceasta permite dublarea ratei de magistrală a SDRAM fără a crește rata de ceas a operațiilor RAM interne; în schimb, operațiile interne sunt efectuate în unități de patru ori mai mari decât SDRAM. De asemenea, a fost adăugat un PIN suplimentar pentru adresă bancară (BA2) pentru a permite opt bănci pe cipuri RAM mari.

Rata de ceas tipică DDR2 SDRAM este de 200, 266, 333 sau 400 MHz (perioade de 5, 3,75, 3 și 2,5 ns), descrise în general ca DDR2-400, DDR2-533, DDR2-667 și DDR2-800 (perioade de 2,5, 1,875, 1,5 și 1,25 ns). DIMM-urile corespunzătoare de 240 de pini sunt cunoscute sub numele de PC2-3200 până la PC2-6400. DDR2 SDRAM este acum disponibil la o rată de ceas de 533 MHz descrisă în general ca DDR2-1066, iar DIMM-urile corespunzătoare sunt cunoscute sub numele de PC2-8500 (numit și PC2-8600 în funcție de producător). Sunt disponibile performanțe până la DDR2-1250 (PC2-10000).

Rețineți că, deoarece operațiunile interne sunt la jumătate din rata de ceas, memoria DDR2-400 (rata de ceas internă de 100 MHz) are o latență ceva mai mare decât DDR-400 (rata de ceas internă de 200 MHz).

DDR3

DDR3 continuă tendința, dublând unitatea minimă de citire sau scriere la opt cuvinte consecutive. Acest lucru permite o altă dublare a lățimii de bandă și a ratei magistralei externe fără a fi nevoie să modificați rata de ceas a operațiilor interne, doar lățimea. Pentru a menține 800–1600 M de transferuri / s (ambele margini ale unui ceas de 400–800 MHz), matricea RAM internă trebuie să efectueze 100–200 M de preluări pe secundă.

Din nou, cu fiecare dublare, dezavantajul este latența crescută . Ca și în toate generațiile DDR SDRAM, comenzile sunt încă restricționate la o margine de ceas și latențele comenzilor sunt date în termeni de cicluri de ceas, care reprezintă jumătate din viteza ratei de transfer citată de obicei (o latență CAS de 8 cu DDR3-800 este 8 / (400 MHz) = 20 ns, exact aceeași latență a CAS2 pe PC100 SDR SDRAM).

Cipurile de memorie DDR3 sunt fabricate comercial, iar sistemele informatice care le utilizează au fost disponibile din a doua jumătate a anului 2007, cu o utilizare semnificativă începând cu 2008. Vitezele inițiale de ceas erau de 400 și 533 MHz, care sunt descrise ca DDR3-800 și DDR3-1066 (module PC3-6400 și PC3-8500), dar 667 și 800 MHz, descrise ca DDR3-1333 și DDR3-1600 (PC3-10600 și modulele PC3-12800) sunt acum comune. Sunt disponibile performanțe până la DDR3-2800 (module PC3 22400).

DDR4

DDR4 SDRAM este succesorul DDR3 SDRAM . Acesta a fost dezvăluit la Forumul dezvoltatorilor Intel din San Francisco în 2008 și urma să fie lansat pe piață în 2011. Momentul a variat considerabil în timpul dezvoltării sale - inițial era de așteptat să fie lansat în 2012, iar mai târziu (în 2010) se aștepta care va fi lansat în 2015, înainte ca eșantioanele să fie anunțate la începutul anului 2011 și producătorii au început să anunțe că producția comercială și lansarea pe piață erau anticipate în 2012. DDR4 a ajuns la adoptarea pe piață în masă în jurul anului 2015, ceea ce este comparabil cu cei aproximativ cinci ani luați pentru DDR3 la realizarea tranziției pe piața de masă peste DDR2.

Cipurile DDR4 rulează la 1,2  V sau mai puțin, comparativ cu 1,5 V ale cipurilor DDR3 și au peste 2 miliarde de transferuri de date pe secundă. Se aștepta ca acestea să fie introduse la rate de frecvență de 2133 MHz, estimate să crească la un potențial de 4266 MHz și să scadă tensiunea de 1,05 V până în 2013.

DDR4 nu a dublat din nou lățimea de preluare internă, dar folosește aceeași preluare de 8 n ca DDR3. Astfel, va fi necesar să intercalăm citiri de la mai multe bănci pentru a menține autobuzul de date ocupat.

În februarie 2009, Samsung a validat cipurile DRAM de 40 nm, considerate un „pas semnificativ” către dezvoltarea DDR4, deoarece, începând din 2009, cipurile DRAM actuale începeau doar să migreze către un proces de 50 nm. În ianuarie 2011, Samsung a anunțat finalizarea și lansarea pentru testarea unui modul DRAM de 30 nm 2048 MB DDR4. Are o lățime de bandă maximă de 2,13  Gbit / s la 1,2 V, folosește tehnologie de scurgere pseudo deschisă și consumă cu 40% mai puțină energie decât un modul DDR3 echivalent.

DDR5

În martie 2017, JEDEC a anunțat că un standard DDR5 este în curs de dezvoltare, dar nu a furnizat detalii, cu excepția obiectivelor de dublare a lățimii de bandă a DDR4, reducerea consumului de energie și publicarea standardului în 2018. Standardul a fost lansat pe 14 iulie 2020.

Succesori eșuați

În plus față de DDR, au existat alte câteva tehnologii de memorie propuse pentru a reuși SDR SDRAM.

Rambus DRAM (RDRAM)

RDRAM era o tehnologie proprietară care concura împotriva DDR. Prețul său relativ ridicat și performanțele dezamăgitoare (rezultate din latențe ridicate și un canal de date îngust pe 16 biți față de canalul DDR pe 64 biți) i-au făcut să piardă cursa pentru a reuși SDR DRAM.

DRAM cu legătură sincronă (SLDRAM)

SLDRAM s-a lăudat cu performanțe mai ridicate și a concurat împotriva RDRAM. A fost dezvoltat la sfârșitul anilor 1990 de către consorțiul SLDRAM. Consorțiul SLDRAM era format din aproximativ 20 de mari producători de DRAM și industria computerelor. (Consorțiul SLDRAM a devenit constituit ca SLDRAM Inc. și apoi și-a schimbat numele în Advanced Memory International, Inc.). SLDRAM era un standard deschis și nu necesita taxe de licențiere. Specificațiile solicitau o magistrală pe 64 de biți care rulează la o frecvență de ceas de 200, 300 sau 400 MHz. Acest lucru se realizează prin faptul că toate semnalele sunt pe aceeași linie și evită astfel timpul de sincronizare a mai multor linii. La fel ca DDR SDRAM , SLDRAM utilizează un autobuz cu pompă dublă, oferindu-i o viteză efectivă de 400, 600 sau 800  MT / s . (1 MT / s = 1000 ^ 2 transferuri pe secundă)

SLDRAM a folosit o magistrală de comandă de 11 biți (10 biți de comandă CA9: 0 plus o linie FLAG la începutul comenzii) pentru a transmite pachete de comandă de 40 de biți pe 4 muchii consecutive ale unui ceas de comandă diferențial (CCLK / CCLK #). Spre deosebire de SDRAM, nu existau semnale selectate pe cip; fiecărui cip i s-a atribuit un ID la resetare, iar comanda conținea ID-ul cipului care ar trebui să-l proceseze. Datele au fost transferate în rafale de 4 sau 8 cuvinte pe o magistrală de date de 18 biți (pe cip), utilizând unul dintre cele două ceasuri de date diferențiale (DCLK0 / DCLK0 # și DCLK1 / DCLK1 #). Spre deosebire de SDRAM standard, ceasul a fost generat de sursa de date (cipul SLDRAM în cazul unei operații de citire) și transmis în aceeași direcție ca datele, reducând mult distorsiunea datelor. Pentru a evita necesitatea unei pauze la modificarea sursei DCLK, fiecare comandă a specificat ce pereche DCLK ar folosi.

Comanda de bază citire / scriere consta din (începând cu CA9 din primul cuvânt):

SLDRAM Citiți, scrieți sau înregistrați pachetul de solicitare op
STEAG CA9 CA8 CA7 CA6 CA5 CA4 CA3 CA2 CA1 CA0
1 ID8 Identificatorul dispozitivului ID0 CMD5
0 Cod de comandă CMD0 bancă Rând
0 Rând (continuare) 0
0 0 0 0 Coloană
  • 9 biți de ID dispozitiv
  • 6 biți de comandă
  • 3 biți de adresă bancară
  • 10 sau 11 biți de adresă de rând
  • 5 sau 4 biți de rezervă pentru extinderea rândurilor sau coloanelor
  • 7 biți de adresă a coloanei

Dispozitivele individuale aveau ID-uri pe 8 biți. Cel de-al 9-lea bit al ID-ului trimis în comenzi a fost folosit pentru a adresa mai multe dispozitive. Orice grup aliniat de putere de 2 dimensiuni ar putea fi abordat. Dacă msbitul transmis a fost setat, toți biții cel mai puțin semnificativi până la și incluzând cel mai puțin semnificativ 0 bit din adresa transmisă au fost ignorați pentru „mi se adresează asta?” scopuri. (Dacă bitul ID8 este considerat de fapt mai puțin semnificativ decât ID0, potrivirea adresei unicast devine un caz special al acestui model.)

O comandă de citire / scriere avea msbit clar:

  • CMD5 = 0
  • CMD4 = 1 pentru a deschide (activa) rândul specificat; CMD4 = 0 pentru a utiliza rândul deschis în prezent
  • CMD3 = 1 pentru a transfera o rafală de 8 cuvinte; CMD3 = 0 pentru o explozie de 4 cuvinte
  • CMD2 = 1 pentru o scriere, CMD2 = 0 pentru o citire
  • CMD1 = 1 pentru a închide rândul după acest acces; CMD1 = 0 pentru a-l lăsa deschis
  • CMD0 selectează perechea DCLK de utilizat (DCLK1 sau DCLK0)

O omisiune notabilă din specificație a fost activarea scrierii pe octet; a fost proiectat pentru sisteme cu cache și memorie ECC , care scriu întotdeauna în multipli ai unei linii cache.

Comenzi suplimentare (cu setul CMD5) au deschis și închis rânduri fără transfer de date, au efectuat operațiuni de reîmprospătare, au citit sau au scris registre de configurație și au efectuat alte operații de întreținere. Majoritatea acestor comenzi au acceptat un sub-ID suplimentar pe 4 biți (trimis ca 5 biți, utilizând aceeași codificare cu destinație multiplă ca ID-ul primar) care ar putea fi folosit pentru a distinge dispozitivele cărora li s-a atribuit același ID primar, deoarece au fost conectate în paralel și întotdeauna citit / scris în același timp.

Au existat mai multe registre de control pe 8 biți și registre de stare pe 32 de biți pentru a controla diferiți parametri de sincronizare a dispozitivului.

Memorie de canal virtual (VCM) SDRAM

VCM a fost un tip propriu de SDRAM care a fost proiectat de NEC , dar lansat ca un standard deschis, fără taxe de licențiere. Este compatibil cu pinul cu SDRAM standard, dar comenzile sunt diferite. Tehnologia a fost un potențial concurent al RDRAM, deoarece VCM nu era la fel de scumpă ca RDRAM. Un modul Virtual Channel Memory (VCM) este compatibil mecanic și electric cu SDRAM standard, astfel încât suportul pentru ambele depinde doar de capacitățile controlerului de memorie . La sfârșitul anilor 1990, o serie de chipset-uri Northbridge pentru PC (cum ar fi popularele VIA KX133 și KT133 ) includeau suport VCSDRAM.

VCM inserează o memorie cache SRAM de 16 buffere „de canal”, fiecare „segment” de 1/4 rând, între rândurile amplificatorului de sens al băncilor DRAM și pinii I / O de date. Comenzile „Prefetch” și „restore”, unice pentru VCSDRAM, copiază datele între rândul amplificatorului de sens al DRAM și bufferele de canal, în timp ce echivalentul comenzilor de citire și scriere ale SDRAM specifică un număr de canal pentru a accesa. Citirile și scrierile pot fi astfel efectuate independent de starea activă actuală a matricei DRAM, echivalentul a patru rânduri DRAM complete fiind „deschise” pentru acces la un moment dat. Aceasta este o îmbunătățire față de cele două rânduri deschise posibile într-un SDRAM standard cu două bănci. (De fapt, există un al 17-lea „canal fictiv” utilizat pentru unele operații.)

Pentru a citi din VCSDRAM, după comanda activă, este necesară o comandă „prefetch” pentru a copia datele din matricea amplificatorului de sens în canalul SDRAM. Această comandă specifică o bancă, doi biți de adresă a coloanei (pentru a selecta segmentul rândului) și patru biți de număr de canal. Odată ce acest lucru este realizat, matricea DRAM poate fi preîncărcată în timp ce comenzile citite în memoria tampon de canal continuă. Pentru a scrie, mai întâi datele sunt scrise într-un buffer de canal (de obicei inițializat anterior folosind o comandă Prefetch), apoi o comandă de restaurare, cu aceiași parametri ca și comanda prefetch, copiază un segment de date de pe canal în matricea amplificatorului de sens.

Spre deosebire de o scriere SDRAM normală, care trebuie efectuată pe un rând activ (deschis), banca VCSDRAM trebuie să fie preîncărcată (închisă) atunci când este emisă comanda de restaurare. O comandă activă imediat după comanda de restaurare specifică rândul DRAM finalizează scrierea în matricea DRAM. Există, în plus, un al 17-lea „canal fictiv” care permite scrierea pe rândul deschis în prezent. Poate că nu poate fi citit din, dar poate fi preluat în, scris în și restabilit în matricea amplificatorului de sens.

Deși în mod normal un segment este restabilit la aceeași adresă de memorie de la care a fost preluat, bufferele de canal pot fi folosite și pentru copierea sau ștergerea foarte eficientă a blocurilor de memorie mari și aliniate. (Utilizarea segmentelor de sfert de rând este determinată de faptul că celulele DRAM sunt mai înguste decât celulele SRAM. Biții SRAM sunt proiectați să aibă o lățime de patru biți DRAM și sunt conectați convenabil la unul dintre cei patru biți DRAM pe care îi parcurg.) comenzile preinstalează o pereche de segmente la o pereche de canale, iar o comandă opțională combină prefetch, citire și preîncărcare pentru a reduce cheltuielile de citire aleatorii.

Cele de mai sus sunt comenzile standardizate JEDEC. Cipurile anterioare nu suportau canalul fictiv sau pre-preluarea perechii și utilizează o codificare diferită pentru preîncărcare.

O magistrală de adrese de 13 biți, așa cum este ilustrat aici, este potrivită pentru un dispozitiv de până la 128 Mbit. Are două bănci, fiecare conținând 8.192 de rânduri și 8.192 de coloane. Astfel, adresele de rând sunt de 13 biți, adresele de segment sunt de doi biți, iar opt biți de adresă de coloană sunt necesari pentru a selecta un octet din cei 2.048 de biți (256 de octeți) dintr-un segment.

RAM grafic sincron (SGRAM)

RAM grafic sincron (SGRAM) este o formă specializată de SDRAM pentru adaptoare grafice. Este conceput pentru sarcini legate de grafică, cum ar fi memoria texturii și framebuffers , găsite pe plăcile video . Acesta adaugă funcții precum mascare de biți (scrierea pe un plan de biți specificat fără a-i afecta pe ceilalți) și blocarea scrierii (umplerea unui bloc de memorie cu o singură culoare). Spre deosebire de VRAM și WRAM , SGRAM este cu un singur port. Cu toate acestea, poate deschide două pagini de memorie simultan, ceea ce simulează caracterul dual-port al altor tehnologii RAM video.

Cea mai veche memorie SGRAM cunoscute sunt 8  cipuri Mbit care datează din 1994: a Hitachi HM5283206, introdus în noiembrie 1994, iar NEC μPD481850, introdus în decembrie 1994. Cel mai vechi dispozitiv comercial cunoscut pentru utilizarea SGRAM este Sony „s PlayStation (PS) videoclip consolă de jocuri , începând cu modelul japonez SCPH-5000 lansat în decembrie 1995, folosind cipul NEC μPD481850.

Grafică dublă viteză date SDRAM (GDDR SDRAM)

SDRAM cu viteză de date dublă grafică ( GDDR SDRAM ) este un tip de SDRAM DDR specializat conceput pentru a fi folosit ca memorie principală a unităților de procesare grafică (GPU-uri). GDDR SDRAM este distinctă de tipurile de mărfuri de DDR SDRAM, cum ar fi DDR3, deși împărtășesc unele tehnologii de bază. Caracteristicile lor principale sunt frecvențe de ceas mai mari atât pentru nucleul DRAM, cât și pentru interfața I / O, care oferă o lățime de bandă de memorie mai mare pentru GPU-uri. Începând cu 2018, există șase generații succesive de GDDR: GDDR2 , GDDR3 , GDDR4 , GDDR5 și GDDR5X , GDDR6 .

GDDR a fost inițial cunoscut sub numele de DDR SGRAM. A fost introdus comercial ca un cip de memorie de 16 Mbit de către Samsung Electronics în 1998.  

Memorie cu lățime de bandă mare (HBM)

High Bandwidth Memory (HBM) este o interfață RAM de înaltă performanță pentru SDRAM 3D-stacked de la Samsung , AMD și SK Hynix . Este proiectat pentru a fi utilizat împreună cu acceleratoare grafice performante și dispozitive de rețea. Primul cip de memorie HBM a fost produs de SK Hynix în 2013.

Cronologie

SDRAM

Memorie sincronă cu acces aleator dinamic (SDRAM)
Data introducerii Numele cipului Capacitate ( biți ) Tip SDRAM Producător (i) Proces MOSFET Zonă Ref
1992 KM48SL2000 16 Mbit DST Samsung ? CMOS ?
1996 MSM5718C50 18 Mbit RDRAM Oki ? CMOS 325 mm 2
N64 RDRAM 36 Mbit RDRAM NEC ? CMOS ?
? 1024 Mbit DST Mitsubishi 150 nm CMOS ?
1997 ? 1024 Mbit DST Hyundai ? SOI ?
1998 MD5764802 64 Mbit RDRAM Oki ? CMOS 325 mm 2
Martie 1998 RDRAM direct 72 Mbit RDRAM Rambus ? CMOS ?
Iunie 1998 ? 64 Mbit DDR Samsung ? CMOS ?
1998 ? 64 Mbit DDR Hyundai ? CMOS ?
128 Mbit DST Samsung ? CMOS ?
1999 ? 128 Mbit DDR Samsung ? CMOS ?
1024 Mbit DDR Samsung 140 nm CMOS ?
2000 GS eDRAM 32 Mbit eDRAM Sony , Toshiba 180 nm CMOS 279 mm 2
2001 ? 288 Mbit RDRAM Hynix ? CMOS ?
? DDR2 Samsung 100 nm CMOS ?
2002 ? 256 Mbit DST Hynix ? CMOS ?
2003 EE + GS eDRAM 32 Mbit eDRAM Sony, Toshiba 90 nm CMOS 86 mm 2
? 72 Mbit DDR3 Samsung 90 nm CMOS ?
512 Mbit DDR2 Hynix ? CMOS ?
Elpida 110 nm CMOS ?
1024 Mbit DDR2 Hynix ? CMOS ?
2004 ? 2048 Mbit DDR2 Samsung 80 nm CMOS ?
2005 EE + GS eDRAM 32 Mbit eDRAM Sony, Toshiba 65 nm CMOS 86 mm 2
Xenos eDRAM 80 Mbit eDRAM NEC 90 nm CMOS ?
? 512 Mbit DDR3 Samsung 80 nm CMOS ?
2006 ? 1024 Mbit DDR2 Hynix 60 nm CMOS ?
2008 ? ? LPDDR2 Hynix ?
Aprilie 2008 ? 8192 Mbit DDR3 Samsung 50 nm CMOS ?
2008 ? 16384 Mbit DDR3 Samsung 50 nm CMOS ?
2009 ? ? DDR3 Hynix 44 nm CMOS ?
2048 Mbit DDR3 Hynix 40 nm
2011 ? 16384 Mbit DDR3 Hynix 40 nm CMOS ?
2048 Mbit DDR4 Hynix 30 nm CMOS ?
2013 ? ? LPDDR4 Samsung 20 nm CMOS ?
2014 ? 8192 Mbit LPDDR4 Samsung 20 nm CMOS ?
2015 ? 12 Gbit LPDDR4 Samsung 20 nm CMOS ?
2018 ? 8192 Mbit LPDDR5 Samsung 10 nm FinFET ?
128 Gbit DDR4 Samsung 10 nm FinFET ?

SGRAM și HBM

Memorie grafică sincronă cu acces aleatoriu (SGRAM) și memorie cu lățime de bandă mare (HBM)
Data introducerii Numele cipului Capacitate ( biți ) Tip SDRAM Producător (i) Proces MOSFET Zonă Ref
Noiembrie 1994 HM5283206 8 Mbit SGRAM ( SDR ) Hitachi 350 nm CMOS 58 mm 2
Decembrie 1994 μPD481850 8 Mbit SGRAM (SDR) NEC ? CMOS 280 mm 2
1997 μPD4811650 16 Mbit SGRAM (SDR) NEC 350 nm CMOS 280 mm 2
Septembrie 1998 ? 16 Mbit SGRAM ( GDDR ) Samsung ? CMOS ?
1999 KM4132G112 32 Mbit SGRAM (SDR) Samsung ? CMOS ?
2002 ? 128 Mbit SGRAM ( GDDR2 ) Samsung ? CMOS ?
2003 ? 256 Mbit SGRAM (GDDR2) Samsung ? CMOS ?
SGRAM ( GDDR3 )
Martie 2005 K4D553238F 256 Mbit SGRAM (GDDR) Samsung ? CMOS 77 mm 2
Octombrie 2005 ? 256 Mbit SGRAM ( GDDR4 ) Samsung ? CMOS ?
2005 ? 512 Mbit SGRAM (GDDR4) Hynix ? CMOS ?
2007 ? 1024 Mbit SGRAM ( GDDR5 ) Hynix 60 nm
2009 ? 2048 Mbit SGRAM (GDDR5) Hynix 40 nm
2010 K4W1G1646G 1024 Mbit SGRAM (GDDR3) Samsung ? CMOS 100 mm 2
2012 ? 4096 Mbit SGRAM (GDDR3) SK Hynix ? CMOS ?
2013 ? ? HBM
Martie 2016 MT58K256M32JA 8 Gbit SGRAM ( GDDR5X ) Micron 20 nm CMOS 140 mm 2
Iunie 2016 ? 32 Gbit HBM2 Samsung 20 nm CMOS ?
2017 ? 64 Gbit HBM2 Samsung 20 nm CMOS ?
Ianuarie 2018 K4ZAF325BM 16 Gbit SGRAM ( GDDR6 ) Samsung 10 nm FinFET ?

Vezi si

Note

Referințe

linkuri externe