XDR DRAM - XDR DRAM
XDR DRAM nebo dynamická paměť s náhodným přístupem s extrémním datovým tokem je vysoce výkonné rozhraní RAM a nástupce Rambus RDRAM, na kterém je založena, konkurující konkurenční technologii DDR2 SDRAM a GDDR4 .
Obsah
Přehled
XDR byl navržen tak, aby byl efektivní v malých spotřebitelských systémech s velkou šířkou pásma, aplikacích s vysoce výkonnou pamětí a špičkových grafických procesorech . Eliminuje neobvykle vysoké latenční problémy, které trápily rané formy RDRAM. XDR DRAM také klade velký důraz na šířku pásma podle pinů, což může těžit z další kontroly nákladů na výrobu desek plošných spojů. Je to proto, že pro stejnou šířku pásma je potřeba méně jízdních pruhů. Rambus vlastní práva na tuto technologii. XDR používá Sony v konzole PlayStation 3 .
Technické specifikace
Výkon
- Počáteční taktovací frekvence na 400 MHz.
- Osmičková rychlost přenosu dat (ODR): Osm bitů na taktovací cyklus na jízdní pruh.
- Každý čip poskytuje 8, 16 nebo 32 programovatelných linek a poskytuje až 230,4 Gbit / s (28,8 GB / s) při 900 MHz (7,2 GHz efektivní).
Funkce
- Obousměrný diferenciální úrovně signalizace Rambus (DRSL)
- Toto využívá diferenciální budič s otevřeným kolektorem , kolísání napětí 0,2V. Není to totéž jako LVDS . [1]
- Programovatelné ukončení na čipu
- Adaptivní přizpůsobení impedance
- Osm architektura bankovní paměti
- Až čtyři bankovní prokládané transakce s plnou šířkou pásma
- Datové propojení point-to-point
- Balení obalu v měřítku třísek
- Dynamické plánování požadavků
- Podpora včasného čtení a zápisu pro maximální efektivitu
- Nulová režijní obnova
Požadavky na napájení
- 1,8 V Vdd
- Programovatelný výkyv DRSL 200 mV s velmi nízkým napětím
- Nízkoenergetický design PLL / DLL
- Podpora automatického obnovení napájení po vypnutí
- Podpora dynamické šířky dat s dynamickým hradlováním hodin
- Vypnutí I / O na pin
- Podpora aktivace podstránky
Snadnost návrhu systému
- Per-bit FlexPhase obvody vyrovnání s rozlišením 2,5 ps
- XDR Interconnect používá minimální počet pinů
Latence
- Pakety požadavku 1,25 / 2,0 / 2,5 / 3,33 ns
Protokol
Vysokorychlostní signály čipu XDR RAM jsou vstup diferenciálních hodin (hodiny z hlavního, CFM / CFMN), 12bitová jednostranná sběrnice s požadavkem / příkazem (RQ11..0) a obousměrná diferenciální datová sběrnice až 16 bity široké (DQ15..0 / DQN15..0). Sběrnice požadavku může být připojena k několika paměťovým čipům paralelně, ale datová sběrnice je bod k bodu; k němu může být připojen pouze jeden čip RAM. Pro podporu různých velikostí paměti s řadičem paměti s pevnou šířkou mají čipy programovatelnou šířku rozhraní. Řadič DRAM o šířce 32 bitů může podporovat 2 16bitové čipy nebo může být připojen ke 4 paměťovým čipům, z nichž každý dodává 8 bitů dat, nebo až 16 čipů nakonfigurovaných s 2bitovými rozhraními.
Kromě toho má každý čip nízkorychlostní sériovou sběrnici používanou k určení jeho schopností a konfiguraci jeho rozhraní. Skládá se ze tří sdílených vstupů: resetovací linka (RST), sériový příkazový vstup (CMD) a sériové hodiny (SCK) a sériová data na / z linek (SDI a SDO), které jsou vzájemně propojeny a případně připojeny na jeden pin na řadiči paměti.
Všechny řádky s jedním koncem jsou aktivní - nízké ; prosazovaný signál nebo logická 1 je reprezentována nízkým napětím.
Sběrnice požadavku pracuje s dvojnásobnou rychlostí dat vzhledem k hodinovému vstupu. Dva po sobě jdoucí 12bitové převody (počínaje sestupnou hranou CFM) vytvářejí 24bitový příkazový paket.
Datová sběrnice pracuje 8krát rychleji než hodiny; hodiny 400 MHz generují 3200 MT / s. Všechna čtení a zápisy dat fungují v 16 přenosových dávkách trvajících 2 hodiny.
Formáty požadavku na pakety jsou následující:
Hodinová hrana |
Bit | NOP | Sloupec pro čtení / zápis | Kalibrace / vypnutí | Dobijte / obnovte | Aktivovat řádek | Maskovaný zápis | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Bit | Bit | Popis | Bit | Popis | Bit | Popis | Bit | Popis | Bit | Popis | ||||||||
↓ | RQ11 | 0 | 0 | COL opcode | 0 | COLX operační kód | 0 | Operační kód ROWP | 0 | Operační kód ROWA | 1 | COLM operační kód | ||||||
↓ | RQ10 | 0 | 0 | 0 | 0 | 1 | M3 | Pište nízké bity masky |
||||||||||
↓ | RQ9 | 0 | 0 | 1 | 1 | R9 | Adresa řádku vysoké bity |
M2 | ||||||||||
↓ | RQ8 | 0 | 1 | 0 | 1 | R10 | M1 | |||||||||||
↓ | RQ7 | X | WRX | Bit pro zápis / čtení | X | Rezervováno | POP1 | Zpoždění nabíjení (0–3) | R11 | M0 | ||||||||
↓ | RQ6 | X | C8 | Vysoké bity adresy sloupce |
X | POP0 | R12 | Rezervováno | C8 | Vysoké bity adresy sloupce |
||||||||
↓ | RQ5 | X | C9 | X | X | Rezervováno | R13 | C9 | ||||||||||
↓ | RQ4 | X | C10 | Rezervováno | X | X | R14 | C10 | Rezervováno | |||||||||
↓ | RQ3 | X | C11 | XOP3 | Subopcode | X | R15 | C11 | ||||||||||
↓ | RQ2 | X | BC2 | adresa banky | XOP2 | BP2 | Předplacená banka | BA2 | adresa banky | BC2 | adresa banky | |||||||
↓ | RQ1 | X | BC1 | XOP1 | BP1 | BA1 | BC1 | |||||||||||
↓ | RQ0 | X | BC0 | XOP0 | BP0 | BA0 | BC0 | |||||||||||
↑ | RQ11 | X | DELC | Zpoždění příkazu (0–1) | X | Rezervováno | POP2 | Povolení předplatného | DELA | Zpoždění příkazu (0–1) | M7 | Pište vysoké bity masky |
||||||
↑ | RQ10 | X | X | Rezervováno | X | ROP2 | Obnovit příkaz | R8 | Adresa řádku je nízká |
M6 | ||||||||
↑ | RQ9 | X | X | X | ROP1 | R7 | M5 | |||||||||||
↑ | RQ8 | X | X | X | ROP0 | R6 | M4 | |||||||||||
↑ | RQ7 | X | C7 | Nízké bity adresy sloupce |
X | DELR1 | Zpoždění obnovy (0–3) | R5 | C7 | Nízké bity adresy sloupce |
||||||||
↑ | RQ6 | X | C6 | X | DELR0 | R4 | C6 | |||||||||||
↑ | RQ5 | X | C5 | X | X | Rezervováno | R3 | C5 | ||||||||||
↑ | RQ4 | X | C4 | X | X | R2 | C4 | |||||||||||
↑ | RQ3 | X | SC3 | Adresa dílčího sloupce | X | X | R1 | SC3 | Adresa dílčího sloupce | |||||||||
↑ | RQ2 | X | SC2 | X | BR2 | Obnovit banku | R0 | SC2 | ||||||||||
↑ | RQ1 | X | SC1 | X | BR1 | SR1 | Adresa podřádku | SC1 | ||||||||||
↑ | RQ0 | X | SC0 | X | BR0 | SR0 | SC0 |
Existuje velké množství časovacích omezení poskytujících minimální časy, které musí uplynout mezi různými příkazy (viz Dynamická paměť s náhodným přístupem § Časování paměti ); řadič DRAM, který je posílá, musí zajistit, aby byly všechny splněny.
Některé příkazy obsahují pole zpoždění; tyto zpožďují účinek tohoto příkazu o daný počet hodinových cyklů. To umožňuje, aby se více příkazů (do různých bank) projevilo ve stejném hodinovém cyklu.
Příkaz aktivovat řádek
Funguje to rovnocenně se standardním příkazem SDRAM Activate, zadáním adresy řádku, který se má načíst do pole sense zesilovače banky. Pro úsporu energie může být čip nakonfigurován tak, aby aktivoval pouze část pole snímacího zesilovače. V tomto případě bity SR1..0 určují polovinu nebo čtvrtinu řádku, které se mají aktivovat, a následující adresy sloupců příkazů pro čtení / zápis musí být omezeny na tuto část. (Obnovovací operace vždy používají celý řádek.)
Příkazy pro čtení / zápis
Ty fungují analogicky se standardními příkazy SDRAM pro čtení nebo zápis a určují adresu sloupce. Data jsou čipu poskytována několik cyklů po příkazu k zápisu (obvykle 3) a čip je vydává několik cyklů po příkazu pro čtení (obvykle 6). Stejně jako u jiných forem SDRAM je řadič DRAM zodpovědný za zajištění toho, že datová sběrnice není naplánována pro použití v obou směrech současně. Data jsou vždy přenášena v 16 přenosových dávkách, které trvají 2 cykly hodin. U zařízení × 16 se tedy na shluk přenáší 256 bitů (32 bajtů).
Pokud čip používá datovou sběrnici o šířce menší než 16 bitů, jeden nebo více adresních bitů sub-sloupce se použije k výběru části sloupce, která má být uvedena na datové sběrnici. Pokud je datová sběrnice široká 8 bitů, použije se SC3 k identifikaci, ke které polovině načtených dat má přístup; pokud je datová sběrnice široká 4 bity, používají se SC3 a SC2 atd.
Na rozdíl od konvenčních SDRAM neexistuje žádné ustanovení pro výběr pořadí, ve kterém jsou data dodávána v sérii. Není tedy možné provádět čtení s kritickým slovem jako prvním.
Maskovaný příkaz pro zápis
Příkaz maskovaného zápisu je podobný normálnímu zápisu, ale není povoleno žádné zpoždění příkazu a je zadán bajt masky. To umožňuje řídit, která 8bitová pole se zapisují. Toto není bitmapa označující, které bajty mají být zapsány; to by nebylo dost velké pro 32 bytů v sérii zápisu. Jedná se spíše o bitový vzor, kterým řadič DRAM vyplňuje nepsané bajty. Řadič DRAM je zodpovědný za nalezení vzoru, který se neobjeví v ostatních bajtech, které mají být zapsány. Protože v sérii je 256 možných vzorů a pouze 32 bajtů, je snadné jeden najít. I když je paralelně připojeno více zařízení, lze vždy najít bajt masky, když je sběrnice široká maximálně 128 bitů. (To by vyprodukovalo 256 bajtů na dávku, ale maskovaný příkaz pro zápis se používá pouze v případě, že alespoň jeden z nich nemá být zapsán.)
Každý bajt je 8 po sobě jdoucích bitů přenesených přes jednu datovou linku během konkrétního hodinového cyklu. M0 se shoduje s prvním datovým bitem přeneseným během hodinového cyklu a M7 se shoduje s posledním bitem.
Tato konvence také narušuje provádění čtení kritických slov od prvního; jakékoli slovo musí obsahovat bity alespoň z prvních 8 přenesených bitů.
Příkaz Precharge / refresh
Tento příkaz je podobný kombinaci konvenčních příkazů preload a refresh běžného SDRAM. Bity POP x a BP x specifikují operaci předběžného nabití , zatímco bity ROP x , DELR x a BR x specifikují operaci obnovení. Každý může být samostatně povolen. Pokud je povoleno, může mít každý jiné zpoždění příkazu a musí být adresováno jiné bance.
Příkazy předběžného nabíjení lze odesílat pouze do jedné banky současně; na rozdíl od konvenčního SDRAM neexistuje příkaz „precharge all bank“.
Příkazy pro aktualizaci se také liší od běžných SDRAM. Neexistuje žádný příkaz „obnovit všechny banky“ a obnovovací operace je rozdělena na samostatné operace aktivace a předbíjení, takže časování určuje řadič paměti. Kontrolní počítadlo je také programovatelné. Operace jsou:
- 000: NOPR Provádět žádnou operaci obnovení
- 001: REFP Obnovit předplacení ; ukončit operaci obnovení ve vybrané bance.
- 010: REFA Refresh aktivován; aktivujte řádek vybraný registrem REFH / M / L a vybranou bankou pro obnovení.
- 011: REFI Refresh & increment; jako u REFA, ale také zvýší registr REFH / M / L.
- 100: LRR0 Načíst obnovovací registr nízký; zkopírujte RQ7-0 na spodních 8 bitů obnovovacího čítače REFL. Žádné zpoždění příkazu.
- 101: LRR1 Načíst obnovovací registr uprostřed; zkopírujte RQ7-0 do prostředních 8 bitů obnovovacího čítače REFM. Žádné zpoždění příkazu.
- 110: LRR2 Load refresh register high; zkopírujte RQ7-0 do vysokých 8 bitů obnovovacího čítače REFH (pokud je implementován). Žádné zpoždění příkazu.
- 111 vyhrazeno
Příkaz Calibrate / powerdown
Tento příkaz provádí řadu různých funkcí, jak je určeno polem XOP x . Ačkoli existuje 16 možností, ve skutečnosti se používají pouze 4. Tři dílčí příkazy spouštějí a zastavují kalibraci výstupního ovladače (musí se provádět pravidelně každých 100 ms).
Čtvrtý dílčí příkaz uvede čip do režimu vypnutí. V tomto režimu provádí interní aktualizaci a ignoruje vysokorychlostní datové linky. Musí se probudit pomocí nízkorychlostní sériové sběrnice.
Nízkorychlostní sériová sběrnice
XDR DRAM jsou snímány a konfigurovány pomocí nízkorychlostní sériové sběrnice. Signály RST, SCK a CMD jsou řadičem vedeny paralelně ke každému čipu. Řádky SDI a SDO jsou vzájemně propojeny, přičemž poslední výstup SDO je připojen k řadiči a první vstup SDI je svázán vysoko (logika 0).
Při resetu je u každého čipu nízký pin SDO (1). Po uvolnění resetu se na čipy odešle řada pulzů SCK. Každý čip řídí svůj výstup SDO vysoko (0) jeden cyklus poté, co viděl svůj vstup SDI vysoko (0). Dále počítá počet cyklů, které uplynou mezi uvolněním resetu a vysokým vstupem SDI, a počet kopií, které se počítají do interního registru ID čipu. Příkazy odeslané kontrolérem po řádku CMD obsahují adresu, která se musí shodovat s polem ID čipu.
Obecná struktura příkazů
Každý příkaz čte nebo zapisuje jeden 8bitový registr pomocí 8bitové adresy. To umožňuje až 256 registrů, ale aktuálně je přiřazen pouze rozsah 1–31.
Normálně je řádek CMD ponechán vysoko (logika 0) a impulzy SCK nemají žádný účinek. Chcete-li odeslat příkaz, je na řádcích CMD taktována sekvence 32 bitů:
- 4 bity
1100
, signál spuštění příkazu. - Bit pro čtení / zápis. Pokud 0, jedná se o čtení, pokud 1 je to zápis.
- Jeden / vysílací bit. Pokud je 0, je vybráno pouze zařízení se shodným ID. Pokud 1, příkaz provede všechna zařízení.
- 6 bitů ID sériového zařízení. ID zařízení se při resetu zařízení přiřadí automaticky od 0.
- 8 bitů adresy registru
- Jeden bit „0“. To poskytuje čas na zpracování požadavků na čtení a povolení výstupu SDO v případě čtení,
- 8 bitů dat. Pokud se jedná o příkaz pro čtení, poskytované bity musí být 0 a hodnota registru se vytvoří na pinu SDO vybraného čipu. Všechny nevybrané čipy připojují své vstupy SDI k jejich výstupům SDO, takže ovladač uvidí hodnotu.
- Jeden bit „0“. Tím se příkaz ukončí a poskytne se čas pro deaktivaci výstupu SDO.