XDR DRAM - XDR DRAM
XDR DRAM tai äärimmäisen tiedonsiirtonopeuden dynaaminen hajasaantimuisti on tehokkaan RAM- rajapinnan ja Rambus RDRAM: n seuraaja, johon se perustuu, kilpailevan kilpailevien DDR2 SDRAM- ja GDDR4- tekniikoiden kanssa.
Sisällys
Yleiskatsaus
XDR on suunniteltu toimimaan pienissä, suurten kaistaleveyksien kuluttajajärjestelmissä, korkean suorituskyvyn muistisovelluksissa ja huippuluokan GPU-laitteissa . Se eliminoi epätavallisen korkeat viiveongelmat, jotka vaivanneet RDRAM: n varhaisia muotoja. Lisäksi XDR DRAM korostaa painokasta kaistanleveyttä, mikä voi hyödyttää lisäkustannusten hallintaa piirilevytuotannossa. Tämä johtuu siitä, että samalla kaistanleveydellä tarvitaan vähemmän kaistoja. Rambus omistaa oikeudet tekniikkaan. XDR käyttää Sonyn vuonna PlayStation 3 -konsolissa.
Tekniset tiedot
Esitys
- Alkuperäinen kellotaajuus 400 MHz: llä.
- Oktaalinen tiedonsiirtonopeus (ODR): Kahdeksan bittiä per kellojakso kaistaa kohti.
- Jokainen siru tarjoaa 8, 16 tai 32 ohjelmoitavaa kaistaa, tuottaen jopa 230,4 Gbit / s (28,8 GB / s) taajuudella 900 MHz (7,2 GHz tehokas).
ominaisuudet
- Kaksisuuntainen differentiaalinen Rambus-signalointitaso (DRSL)
- Tämä käyttää differentiaalista avoimen kollektorin ohjainta, jännitevaihtelu 0,2 V. Se ei ole sama kuin LVDS . [1]
- Ohjelmoitava sirun päättäminen
- Adaptiivinen impedanssin sovitus
- Kahdeksan pankkimuistiarkkitehtuuria
- Jopa neljä pankkilomistettua tapahtumaa täydellä kaistanleveydellä
- Piste-piste-data yhdistetään
- Mikropakkaus- pakkaus
- Dynaaminen pyyntöjen ajoitus
- Varhaisen lukemisen jälkeen kirjoittamisen tuki maksimaalisen tehokkuuden saavuttamiseksi
- Nolla yläpuolella päivitys
Tehovaatimukset
- 1,8 Vdd
- Ohjelmoitava erittäin matalajännitteinen DRSL 200 mV -vipu
- Pienitehoinen PLL / DLL- suunnittelu
- Katkaise itsensä päivitystuki
- Dynaaminen datan leveyden tuki dynaamisella kelloportauksella
- I / O-nastainen virta katkaistaan
- Alisivun aktivointituki
Helppo järjestelmän suunnittelu
- Per bittiä olevat FlexPhase- piirit kompensoivat 2,5 ps: n tarkkuuden
- XDR Interconnect käyttää vähimmäismäärää pin
Viive
- 1,25 / 2,0 / 2,5 / 3,33 ns pyytää paketteja
protokolla
XDR RAM-sirun nopeat signaalit ovat differentiaalinen kellotulo (kello isäntältä, CFM / CFMN), 12-bittinen yksipäinen pyyntö / komentoväylä (RQ11..0) ja kaksisuuntainen differentiaalidataväylä jopa 16: een asti. bittiä leveitä (DQ15..0 / DQN15..0). Pyyntöväylä voidaan yhdistää useisiin muistisiruihin samanaikaisesti, mutta dataväylä on pisteestä pisteeseen; siihen voidaan kytkeä vain yksi RAM-siru. Eri muistimäärien tukemiseksi kiinteän leveyden muistisäätimellä, siruilla on ohjelmoitava rajapinnan leveys. 32-bittinen DRAM-ohjain voi tukea 2 16-bittistä sirua tai olla kytkettynä 4 muistipiiriin, joista kukin toimittaa 8 bittiä dataa, tai jopa 16 siruun, jotka on konfiguroitu 2-bittisillä rajapinnoilla.
Lisäksi jokaisella sirulla on hidasta sarjaväylää, jota käytetään sen ominaisuuksien määrittämiseen ja käyttöliittymän konfigurointiin. Tämä koostuu kolmesta jaetusta tulosta: nollausriviltä (RST), sarjakomennon sisääntulosta (CMD) ja sarjankellosta (SCK) sekä sarjatiedoista tulo- / lähtölinjoilla (SDI ja SDO), jotka on koottu ketjulla yhteen ja lopulta yhdistetään muistin ohjaimen yhdelle nastalle.
Kaikki yksipäiset linjat ovat alhaalla ; vaadittua signaalia tai loogista 1 edustaa matala jännite.
Pyyntöväylä toimii kaksinkertaisella datanopeudella suhteessa kellotuloon. Kaksi peräkkäistä 12-bittistä siirtoa (CFM: n laskevasta reunasta alkaen) tekee 24-bittisen komentopaketin.
Dataväylä toimii 8x kellon nopeudella; 400 MHz: n kello tuottaa 3200 MT / s. Kaikki tiedot lukemat ja kirjoittavat toimivat 16 siirtopurskeella, jotka kestävät 2 kellosykliä.
Pyydä pakettiformaatit ovat seuraavat:
Kellon reuna |
Bitti | NOP | Sarake lukea / kirjoittaa | Kalibroi / sammutuksen | Precharge / refresh | Rivi Aktivoi | Naamioitu kirjoittaa | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Bitti | Bitti | Kuvaus | Bitti | Kuvaus | Bitti | Kuvaus | Bitti | Kuvaus | Bitti | Kuvaus | ||||||||
↓ | RQ11 | 0 | 0 | COL-koodi | 0 | COLX -koodi | 0 | ROWP-koodinumero | 0 | ROWA-koodi | 1 | COLM -koodi | ||||||
↓ | RQ10 | 0 | 0 | 0 | 0 | 1 | M3 | Kirjoita maskin pienet bitit |
||||||||||
↓ | RQ9 | 0 | 0 | 1 | 1 | R9 | Riviosoitteen korkeat bitit |
M2 | ||||||||||
↓ | RQ8 | 0 | 1 | 0 | 1 | R10 | M1 | |||||||||||
↓ | RQ7 | x | WRX | Kirjoita / lue bitti | x | varattujen | pop1 | Ennakkoviive (0–3) | R11 | M0 | ||||||||
↓ | RQ6 | x | C8 | Sarakkeen osoitteen korkeat bitit |
x | POP0 | R12 | varattujen | C8 | Sarakkeen osoitteen korkeat bitit |
||||||||
↓ | RQ5 | x | C9 | x | x | varattujen | R13 | C9 | ||||||||||
↓ | RQ4 | x | C10 | varattujen | x | x | R14 | C10 | varattujen | |||||||||
↓ | RQ3 | x | C11 | XOP3 | Subopcode | x | R15 | C11 | ||||||||||
↓ | RQ2 | x | BC2 | pankkiosoite | XOP2 | BP2 | Ennakkomaksu pankki | BA2 | pankkiosoite | BC2 | pankkiosoite | |||||||
↓ | RQ1 | x | BC1 | XOP1 | BP1 | BA1 | BC1 | |||||||||||
↓ | RQ0 | x | BC0 | XOP0 | BP0 | BA0 | BC0 | |||||||||||
↑ | RQ11 | x | DELC | Komentoviive (0–1) | x | varattujen | POP2 | Ennakkomaksu käyttöön | DELA | Komentoviive (0–1) | M7 | Kirjoita maski korkeita bittejä |
||||||
↑ | RQ10 | x | x | varattujen | x | ROP2 | Päivitä-komento | R8 | Riviosoitteen pienet bitit |
M6 | ||||||||
↑ | RQ9 | x | x | x | ROP1 | R 7 | M5 | |||||||||||
↑ | RQ8 | x | x | x | ROP0 | R6 | M4 | |||||||||||
↑ | RQ7 | x | C7 | Sarakkeen osoitteen pienet bitit |
x | DELR1 | Päivitysviive (0–3) | R5 | C7 | Sarakkeen osoitteen pienet bitit |
||||||||
↑ | RQ6 | x | C6- | x | DELR0 | R4 | C6- | |||||||||||
↑ | RQ5 | x | C5 | x | x | varattujen | R3 | C5 | ||||||||||
↑ | RQ4 | x | C4 | x | x | R2 | C4 | |||||||||||
↑ | RQ3 | x | SC3 | Alasarakkeen osoite | x | x | R1 | SC3 | Alasarakkeen osoite | |||||||||
↑ | RQ2 | x | SC2 | x | BR2 | Päivitä pankki | R0 | SC2 | ||||||||||
↑ | RQ1 | x | SC1 | x | BR1 | SR1 | Alarivin osoite | SC1 | ||||||||||
↑ | RQ0 | x | SC0 | x | BR0 | SR0 | SC0 |
Ajoitusrajoituksia on paljon, jotka antavat minimiajat, joiden on kuluttava eri komentojen välillä (katso dynaaminen hajasaantimuisti § Muistin ajoitus ); heitä lähettävän DRAM-ohjaimen on varmistettava, että ne kaikki täytetään.
Jotkut komennot sisältävät viivekentät; nämä viivästyvät komennon vaikutusta annetulla kellosyklin lukumäärällä. Tämä sallii useiden komentojen (eri pankeille) tulla voimaan samassa kellosyklissä.
Rivin aktivointikomento
Tämä toimii samalla tavalla kuin tavallinen SDRAM: n aktivointikomento, joka määrittää rivin osoitteen, joka ladataan pankin aistivahvistinryhmään. Virran säästämiseksi siru voidaan konfiguroida aktivoimaan vain osa sensiovahvistinryhmästä. Tässä tapauksessa SR1..0-bitit määrittävät aktivoitavan rivin puolen tai neljänneksen, ja seuraavien luku- / kirjoituskomentojen sarakeosoitteiden on oltava rajoitettuja siihen osaan. (Päivitä toiminnot käyttävät aina koko riviä.)
Lue / kirjoita komennot
Nämä toimivat samalla tavalla kuin tavalliset SDRAM: n luku- tai kirjoituskomennot määrittelemällä sarakeosoitteen. Tiedot toimitetaan sirulle muutama jakso kirjoituskomennon jälkeen (tyypillisesti 3), ja siru tuottaa useita jaksoja lukukomennon jälkeen (tyypillisesti 6). Kuten muissakin SDRAM-muodoissa, DRAM-ohjain on vastuussa siitä, että dataväylää ei ajoiteta käytettäväksi molempiin suuntiin samanaikaisesti. Tiedot siirretään aina 16 siirtopurskeena, jotka kestävät 2 kellosykliä. Siten × 16 -laitteelle siirretään 256 bittiä (32 tavua) pursketta kohti.
Jos siru käyttää alle 16 bitin leveää dataväylää, yhtä tai useampaa alasarakkeen osoitebittiä käytetään valitsemaan dataväylässä esitettävä sarakkeen osa. Jos dataväylä on 8 bittiä leveä, SC3: ta käytetään tunnistamaan, kumpaa puolta luetusta tiedosta käytetään; jos dataväylä on 4 bittiä leveä, käytetään SC3: ta ja SC2: ta jne.
Toisin kuin tavanomainen SDRAM, ei ole mahdollista valita järjestystä, jossa tiedot toimitetaan purskeen sisällä. Siksi ei ole mahdollista suorittaa kriittisiä sana-ensin -lukuja.
Naamioitu kirjoituskomento
Naamioitu kirjoituskomento on samanlainen kuin normaali kirjoitus, mutta komentoviive ei ole sallittu ja peitetavu toimitetaan. Tämä sallii 8-bittisten kenttien kirjoittamisen hallinnan. Tämä ei ole bittikartta, joka osoittaa, mitkä tavut kirjoitetaan; se ei olisi tarpeeksi suuri 32 tavulle kirjoituspurskeessa. Pikemminkin se on vähän kuvio, jolla DRAM-ohjain täyttää kirjoittamattomat tavut. DRAM-ohjain on vastuussa kuvion löytämisestä, jota ei esiinny muissa kirjoitettavissa tavuissa. Koska purskeessa on 256 mahdollista mallia ja vain 32 tavua, on helppo löytää yksi. Jopa silloin, kun useita laitteita on kytketty samanaikaisesti, peitetavu voidaan aina löytää, kun väylä on korkeintaan 128 bittiä leveä. (Tämä tuottaa 256 tavua pursketa kohti, mutta naamioitua kirjoituskomentoa käytetään vain, jos ainakin yhtä niistä ei kirjoiteta.)
Jokainen tavu on 8 peräkkäistä bittiä, jotka siirretään yhden tietolinjan yli tietyn kellosyklin aikana. M0 sovitetaan ensimmäiseen databittiin, joka on siirretty kellosyklin aikana, ja M7 sovitetaan viimeiseen bittiin.
Tämä käytäntö myös häiritsee kriittisten sana-ensin -lukemien suorittamista; minkä tahansa sanan tulee sisältää bittejä ainakin kahdelta ensimmäiseltä siirretyltä bitiltä.
Lataa / päivitä komento
Tämä komento on samanlainen kuin tavanomaisen SDRAM: n esilataus- ja päivityskomentojen yhdistelmä. POP x- ja BP x -bitit määrittävät esilatauksen, kun taas ROP x , DELR x ja BR x -bitit määrittävät päivitysoperaation. Jokainen voidaan ottaa käyttöön erikseen. Jos tämä on käytössä, jokaisella voi olla erilainen komentoviive ja ne on osoitettava eri pankille.
Ennakkomaksukomennot voidaan lähettää vain yhdelle pankille kerrallaan; toisin kuin tavanomainen SDRAM, komentoa "ennakkomaksu kaikille pankeille" ei ole.
Päivityskomennot ovat myös erilaisia kuin tavanomainen SDRAM. "Päivitä kaikki pankit" -komentoa ei ole, ja päivitysoperaatio on jaettu erillisiin aktivointi- ja esilatausoperaatioihin, joten muistin ohjain määrittää ajoituksen. Päivityslaskurin voi myös ohjelmoida ohjaimessa. Toiminnot ovat:
- 000: NOPR Älä suorita päivitystoimintoa
- 001: REFP Päivitä esilataus; lopeta päivitys valitulla pankilla.
- 010: REFA Refresh aktivoitu; aktivoi REFH / M / L-rekisterin ja valitun pankin valitsemasi rivi päivitystä varten.
- 011: REFI- päivitys ja lisäys; kuten REFA: lla, mutta lisää myös REFH / M / L -rekisteriä.
- 100: LRR0 Lataa päivitysrekisteri vähäinen; kopioi RQ7–0 päivityslaskurin REFL alhaisiin 8 bittiin. Ei komentoviivettä.
- 101: LRR1 Lataa päivitysrekisterin keskiosa; kopioi RQ7–0 päivityslaskurin REFM keskimmäiseen 8 bittiä. Ei komentoviivettä.
- 110: LRR2 Lataa päivitysrekisteri korkea; kopioi RQ7–0 päivityslaskurin REFH korkeisiin 8 bittiin (jos toteutettu). Ei komentoviivettä.
- 111 varattu
Kalibrointi / sammutuskomento
Tämä komento suorittaa useita sekalaisia toimintoja XOP x -kentän määrittämällä tavalla . Vaikka mahdollisuuksia on 16, tosiasiallisesti käytetään vain neljää. Kolme alikomentoa käynnistää ja lopettaa lähtöohjaimen kalibroinnin (joka on suoritettava säännöllisesti, 100 ms: n välein).
Neljäs alakäsky asettaa sirun virrankatkaisutilaan. Tässä tilassa se suorittaa sisäisen päivityksen ja jättää nopeaan tiedonsiirtolinjaan. Se on herätettävä hitaalla sarjaväylällä.
Hidas nopeus sarjaväylä
XDR-DRAM-muistit tutkitaan ja konfiguroidaan käyttämällä hidasnopeista sarjaväylää. Ohjain ohjaa RST-, SCK- ja CMD-signaaleja jokaiselle sirulle samanaikaisesti. SDI- ja SDO-rivit on koottu ketjulla, jolloin viimeinen SDO-lähtö on kytketty ohjaimeen ja ensimmäinen SDI-sisääntulo on sidottu korkeaan (logiikka 0).
Resetissä jokainen siru ajaa SDO-nastaansa alhaiseksi (1). Kun nollaus vapautetaan, siruille lähetetään sarja SCK-pulsseja. Jokainen siru ajaa SDO-tulonsa korkealla (0) yhdellä jaksolla nähtyään SDI-tulonsa korkealle (0). Lisäksi se laskee jaksojen lukumäärän, joka kuluu nollauksen palauttamisen ja sen SDI-tulon näkemisen välillä, ja kopioiden, jotka lasketaan sisäiseen sirutunnisterekisteriin. Ohjaimen lähettämät komennot CMD-rivin yli sisältävät osoitteen, jonka on vastattava sirutunnuskenttää.
Komentojen yleinen rakenne
Jokainen komento joko lukee tai kirjoittaa yhden 8-bittisen rekisterin 8-bittistä osoitetta käyttämällä. Tämä sallii jopa 256 rekisteriä, mutta vain alue 1-31 on tällä hetkellä määritetty.
Normaalisti CMD-viiva jätetään korkeaksi (logiikka 0) ja SCK-pulsseilla ei ole vaikutusta. Komennon lähettämiseksi CMD-rivit ajautetaan 32-bittinen sekvenssi:
- 4 bittiä
1100
, komennon aloitussignaali. - Luku / kirjoitusbitti. Jos 0, tämä on lukema, jos 1 tämä on kirjoitus.
- Yksi / lähetysbitti. Jos 0, valitaan vain laite, jolla on vastaava tunnus. Jos 1, kaikki laitteet suorittavat komennon.
- 6 bittiä sarjalaitetunnusta. Laitetunnukset määritetään automaattisesti nollasta alkaen 0: lla.
- 8 bittiä osoiteosoitetta
- Yksi bitti "0". Tämä antaa aikaa käsitellä lukupyyntöjä ja ottaa SDO-lähtö käyttöön, jos lukua,
- 8 bittiä dataa. Jos tämä on lukukomento, annettujen bittien on oltava 0 ja rekisterin arvo tuotetaan valitun sirun SDO-nastalle. Kaikki valittamattomat sirut yhdistävät SDI-tulonsa SDO-ulostuloihinsa, joten ohjain näkee arvon.
- Yksi bitti "0". Tämä lopettaa komennon ja antaa aikaa poistaa SDO-lähtö.