XDR DRAM - XDR DRAM

XDR DRAM

XDR DRAM sau rată de date extrem de dinamice de memorie cu acces aleator este o înaltă performanță RAM interfață și succesorul la Rambus RDRAM se bazează pe, în competiție cu rivalul DDR2 SDRAM și GDDR4 tehnologie.

Prezentare generală

XDR a fost conceput pentru a fi eficient în sisteme de consum cu lățime mare de bandă, aplicații de memorie performante și GPU - uri de înaltă performanță . Acesta elimină problemele neobișnuit de latență care au afectat formele timpurii de RDRAM. De asemenea, XDR DRAM pune un accent deosebit pe lățimea de bandă per-pin, care poate beneficia de controlul suplimentar al costurilor la producția de PCB. Acest lucru se datorează faptului că este nevoie de mai puține benzi pentru aceeași cantitate de lățime de bandă. Rambus deține drepturile asupra tehnologiei. XDR este folosit de Sony în consola PlayStation 3 .

Specificatii tehnice

Performanţă

  • Rata inițială a ceasului la 400 MHz.
  • Rata de date octale (ODR): opt biți pe ciclu de ceas pe bandă.
  • Fiecare cip oferă 8, 16 sau 32 de benzi programabile, oferind până la 230,4  Gbit / s (28,8  GB / s) la 900 MHz (efectiv 7,2 GHz).

Caracteristici

  • Niveluri de semnalizare Rambus diferențiale bidirecționale (DRSL)
  • Terminare on-cip programabilă
  • Potrivirea impedanței adaptive
  • Opt arhitectură de memorie bancară
  • Până la patru tranzacții interconectate de bancă la lățimea de bandă completă
  • Punct la punct interconectarea datelor
  • Ambalaje pe scară de cipuri
  • Planificarea dinamică a cererilor
  • Suport de citire timpurie după scriere pentru eficiență maximă
  • Reîmprospătare aeriană zero

Cerinte de putere

  • 1,8 V Vdd
  • Schimbare programabilă de înaltă tensiune DRSL de 200 mV
  • Proiectare PLL / DLL de consum redus
  • Asistență pentru auto-actualizare
  • Suport dinamic pentru lățimea datelor cu închidere dinamică a ceasului
  • Oprire I / O per-pin
  • Suport de activare sub-pagină

Ușurința proiectării sistemului

  • Circuitele FlexPhase pe biți compensează o rezoluție de 2,5 ps
  • Interconectarea XDR utilizează numărul minim de pini

Latență

  • 1.25 / 2.0 / 2.5 / 3.33 ns solicită pachete

Protocol

Semnalele de mare viteză ale unui cip XDR RAM sunt o intrare de ceas diferențial (ceas de la master, CFM / CFMN), un bus de comandă / comandă cu un singur capăt de 12 biți (RQ11..0) și un bus de date diferențial bidirecțional până la 16 biți lățimi (DQ15..0 / DQN15..0). Magistrala de solicitare poate fi conectată la mai multe cipuri de memorie în paralel, dar magistrala de date este punct la punct; poate fi conectat la un singur cip RAM. Pentru a suporta diferite cantități de memorie cu un controller de memorie cu lățime fixă, cipurile au o lățime de interfață programabilă. Un controler DRAM pe 32 de biți poate suporta 2 cipuri de 16 biți sau poate fi conectat la 4 cipuri de memorie, fiecare dintre acestea furnizând 8 biți de date sau până la 16 cipuri configurate cu interfețe pe 2 biți.

În plus, fiecare cip are un bus serial cu viteză mică, utilizat pentru a-și determina capacitățile și pentru a-i configura interfața. Aceasta constă din trei intrări partajate: o linie de resetare (RST), o intrare de comandă serială (CMD) și un ceas serial (SCK) și date seriale în linii de ieșire / ieșire (SDI și SDO), care sunt înlănțuite între ele și în cele din urmă se conectează. la un singur pin de pe controlerul de memorie.

Toate liniile cu capăt unic sunt active-joase ; un semnal afirmat sau logic 1 este reprezentat de o tensiune joasă.

Autobuzul de solicitare funcționează la o dublă rată de date în raport cu intrarea de ceas. Două transferuri consecutive pe 12 biți (începând cu marginea în scădere a CFM) fac un pachet de comenzi pe 24 de biți.

Magistrala de date funcționează cu 8x viteza ceasului; un ceas de 400 MHz generează 3200 MT / s. Toate citirile și scrierea datelor funcționează în explozii de 16 transferuri care durează 2 cicluri de ceas.

Formatele de pachete de solicitare sunt următoarele:

Formate de pachete de cerere DRAM XDR

Marginea ceasului
Pic NOP Coloana citeste / scrie Calibra / power-down Precharge / reîmprospătare Se activează rândul Scrie mascat
Pic Pic Descriere Pic Descriere Pic Descriere Pic Descriere Pic Descriere
RQ11 0 0 Cod op. COL 0 Cod de opțiune COLX 0 Opcode ROWP 0 Opcode ROWA 1 Cod de opțiune COLM
RQ10 0 0 0 0 1 M3 Scrieți
biți de mască joasă
RQ9 0 0 1 1 R9 Adresa de rânduri
biți mari
M2
RQ8 0 1 0 1 R10 M1
RQ7 X WRX Bit de scriere / citire X rezervat POP1 Întârziere de precară (0–3) R11 M0
RQ6 X C8 Adresa de coloană
biți mari
X POP0 R12 rezervat C8 Adresa de coloană
biți mari
RQ5 X C9 X X rezervat R13 C9
RQ4 X C10 rezervat X X R14 C10 rezervat
RQ3 X C11 XOP3 Subopcode X R15 C11
RQ2 X BC2 adresa băncii XOP2 BP2 Banca prealabilă BA2 adresa băncii BC2 adresa băncii
RQ1 X BC1 XOP1 BP1 BA1 BC1
RQ0 X BC0 XOP0 BP0 BA0 BC0
RQ11 X DELC Întârziere de comandă (0–1) X rezervat POP2 Activare suplimentară DELA Întârziere de comandă (0–1) M7 Scrieți
biți de mască înalte
RQ10 X X rezervat X ROP2 Actualizează comanda R8 Adresa de rânduri
biți mici
M6
RQ9 X X X ROP1 R7 M5
RQ8 X X X ROP0 R6 M4
RQ7 X C7 Adresa de coloană
biți mici
X DELR1 Întârziere de actualizare (0–3) R5 C7 Adresa de coloană
biți mici
RQ6 X C6 X DELR0 R4 C6
RQ5 X C5 X X rezervat R3 C5
RQ4 X C4 X X R2 C4
RQ3 X SC3 Adresa sub-coloanei X X R1 SC3 Adresa sub-coloanei
RQ2 X SC2 X BR2 Actualizează banca R0 SC2
RQ1 X SC1 X BR1 SR1 Adresa de sub-rând SC1
RQ0 X SC0 X BR0 SR0 SC0

Există un număr mare de constrângeri de cronometrare care oferă timpi minimi care trebuie să curgă între diverse comenzi (consultați Memoria dinamică cu acces aleatoriu § Timpul memoriei ); controlorul DRAM care le trimite trebuie să se asigure că sunt îndeplinite.

Unele comenzi conțin câmpuri de întârziere; acestea întârzie efectul acestei comenzi de numărul dat de cicluri de ceas. Aceasta permite ca mai multe comenzi (către bănci diferite) să aibă efect asupra aceluiași ciclu de ceas.

Comanda de activare pe rând

Aceasta funcționează în mod echivalent cu comanda de activare standard SDRAM, specificând o adresă de rând care trebuie încărcată în tabloul amplificatorului de sens al băncii. Pentru a economisi energie, un cip poate fi configurat pentru a activa doar o porțiune din gama de amplificatoare de sens. În acest caz, biții SR1..0 specifică jumătatea sau sfertul rândului care trebuie activat, iar următoarele adrese ale comenzilor de citire / scriere trebuie să fie limitate la acea porțiune. (Operațiile de actualizare folosesc întotdeauna rândul complet.)

Comenzi de citire / scriere

Acestea funcționează în mod analog comenzilor de citire sau scriere standard ale SDRAM, specificând o adresă de coloană. Datele sunt furnizate cipului la câteva cicluri după o comandă de scriere (de obicei 3) și sunt transmise de cip mai multe cicluri după o comandă de citire (de obicei 6). La fel ca în cazul altor forme de SDRAM, controlerul DRAM este responsabil să se asigure că magistrala de date nu este programată pentru utilizare în ambele direcții în același timp. Datele sunt întotdeauna transferate în explozii de 16 transferuri, care durează 2 cicluri de ceas. Astfel, pentru un dispozitiv × 16, 256 biți (32 octeți) sunt transferați pe rotație.

Dacă cip-ul folosește un bus de date cu o lățime mai mică de 16 biți, unul sau mai mulți biți de adresă sub-coloană sunt folosiți pentru a selecta porțiunea coloanei care va fi prezentată pe magistrala de date. Dacă magistrala de date are o latime de 8 biți, SC3 este utilizat pentru a identifica ce jumătate din datele citite să acceseze; dacă magistrala de date are o latime de 4 biți, se folosesc SC3 și SC2 etc.

Spre deosebire de SDRAM convențional, nu există nicio prevedere pentru alegerea ordinii în care datele sunt furnizate în cadrul unei explozii. Astfel, nu este posibil să se efectueze prima citire a cuvântului critic.

Comandă de scriere mascată

Comanda de scriere mascată este similară cu o scriere normală, dar nu este permisă întârzierea comenzii și este furnizat un octet de mască. Acest lucru permite controlul care câmpuri pe 8 biți sunt scrise. Aceasta nu este o hartă de biți care să indice ce octeți trebuie să fie scrise; nu ar fi suficient de mare pentru cei 32 de octeți dintr-o explozie de scriere. Mai degrabă, este un model de biți cu care controlerul DRAM umple octeți nescriși. Controlerul DRAM este responsabil pentru găsirea unui model care nu apare în celelalte octeți care urmează să fie scrise. Deoarece există 256 tipare posibile și doar 32 de octeți în explozie, este simplu să găsiți unul. Chiar și când mai multe dispozitive sunt conectate în paralel, un octet de mască poate fi întotdeauna găsit atunci când autobuzul are cel mult 128 de biți lățime. (Aceasta ar produce 256 de octeți pe explozie, dar o comandă de scriere mascată este utilizată numai dacă cel puțin unul dintre ei nu trebuie să fie scris.)

Fiecare octet este cel de 8 biți consecutiv transferați pe o linie de date în timpul unui anumit ciclu de ceas. M0 este adaptat la primul bit de date transferat în timpul unui ciclu de ceas, iar M7 este adaptat la ultimul bit.

Această convenție interferează, de asemenea, cu efectuarea primelor lecturi de cuvinte critice; orice cuvânt trebuie să includă biți din cel puțin primii 8 biți transferați.

Comanda Precharge / actualizare

Această comandă este similară cu o combinație a comenzilor de preîncărcare și actualizare SDRAM convenționale. Biții POP x și BP x specifică o operație de preîncărcare, în timp ce biții ROP x , DELR x și BR x specifică o operație de actualizare. Fiecare poate fi activat separat. Dacă este activat, fiecare poate avea o întârziere de comandă diferită și trebuie adresată unei bănci diferite.

Comenzile de precarizare pot fi trimise la o bancă la un moment dat; spre deosebire de SDRAM convențional, nu există o comandă „preîncărcarea tuturor băncilor”.

Comenzile de actualizare sunt, de asemenea, diferite de un SDRAM convențional. Nu există nicio comandă „reîmprospătați toate băncile”, iar operația de reîmprospătare este împărțită în operații separate de activare și preîncărcare, astfel încât sincronizarea este determinată de controlorul de memorie. Contorul de actualizare este programabil și de controler. Operațiunile sunt:

  • 000: NOPR Nu efectuați nicio operație de actualizare
  • 001: REFP Reîncărcare reîncărcare ; încheiați operația de actualizare pe banca selectată.
  • 010: REFA actualizare activă; activează rândul selectat de registrul REFH / M / L și banca selectată pentru actualizare.
  • 011: REFI Actualizare & increment; în ceea ce privește REFA, dar, de asemenea, crește registrul REFH / M / L.
  • 100: LRR0 Registru de actualizare a încărcării scăzut; copiați RQ7–0 pe cele 8 biți mici ale contorului de actualizare REFL. Fără întârziere de comandă.
  • 101: LRR1 Mijloc de actualizare a registrului de încărcare; copiați RQ7–0 pe mijlocul 8 biți ai contorului de actualizare REFM. Fără întârziere de comandă.
  • 110: LRR2 Registru de actualizare a încărcării ridicat; copiați RQ7–0 pe cei 8 biți mari ai contorului de actualizare REFH (dacă este implementat). Fără întârziere de comandă.
  • 111 rezervat

Comandă calibrare / pornire

Această comandă îndeplinește o serie de funcții diverse, determinate de câmpul XOP x . Deși există 16 posibilități, doar 4 sunt utilizate efectiv. Trei subcomanduri pornesc și opresc calibrarea driverului de ieșire (care trebuie efectuată periodic, la fiecare 100 ms).

A patra subcomandă plasează cipul în modul de oprire. În acest mod, efectuează actualizare internă și ignoră liniile de date de mare viteză. Trebuie să fie trezit folosind magistrala serială de viteză mică.

Autobuz serial cu viteză mică

DRAM-urile XDR sunt sondate și configurate cu ajutorul unui autobuz serial de viteză mică. Semnalele RST, SCK și CMD sunt conduse de controler către fiecare cip în paralel. Liniile SDI și SDO sunt înlănțuite între margini, cu ultima ieșire SDO conectată la controler, iar prima intrare SDI este ridicată (logica 0).

La resetare, fiecare cip își conduce pinul SDO jos (1). Când resetarea este eliberată, o serie de impulsuri SCK sunt trimise cipurilor. Fiecare cip conduce ieșirea sa SDO (0) la un ciclu, după ce a văzut intrarea SDI ridicată (0). Mai mult, el contează numărul de cicluri care se scurs între eliberarea resetării și a vedea intrarea SDI ridicată, și copiile care contează la un registru de identificare internă a cipurilor. Comenzile trimise de controler peste linia CMD includ o adresă care trebuie să corespundă câmpului ID-ul cipului.

Structura generală a comenzilor

Fiecare comandă citește sau scrie un singur registru pe 8 biți, folosind o adresă de 8 biți. Aceasta permite până la 256 de registre, dar doar intervalul 1-31 este în prezent atribuit.

În mod normal, linia CMD este lăsată înaltă (logica 0), iar impulsurile SCK nu au efect. Pentru a trimite o comandă, o secvență de 32 de biți este contorizată pe liniile CMD:

  • 4 biți de 1100, un semnal de pornire a comenzii.
  • Un bit de citire / scriere. Dacă 0, aceasta este o citire, dacă 1 aceasta este o scriere.
  • Un singur bit / transmisie. Dacă 0, este selectat numai dispozitivul cu ID-ul corespunzător. Dacă 1, toate dispozitivele execută comanda.
  • 6 biți ID dispozitiv serial. ID-urile dispozitivului sunt alocate automat, începând cu 0, la resetarea dispozitivului.
  • 8 biți de adresă de registru
  • Un singur bit de „0”. Aceasta oferă timp pentru procesarea cererilor de citire și permite ieșirea SDO în cazul unei lecturi,
  • 8 biți de date. Dacă aceasta este o comandă de citire, biții furnizați trebuie să fie 0, iar valoarea registrului este produsă pe pinul SDO al cipului selectat. Toate jetoanele ne-selectate conectează intrările SDI la ieșirile lor SDO, astfel încât controlerul va vedea valoarea.
  • Un singur bit de „0”. Aceasta încheie comanda și oferă timp pentru a dezactiva ieșirea SDO.

Vezi si

Referințe

linkuri externe