Skriv ut

xDDR4 är den senaste standarden i jakten på ständigt kompaktare och snabbare dynamiska RAM. DDR4, eller ”double data rate, fourth generation synchronous dynamic random-access memory” har precis som alla tidigare standarder för DDR- och SDR-RAM för server- och datorbranschen gränssnitt och protokoll för fysiska lager definierade av JEDEC som kan hämtas kostnadsfritt av alla via ett gratis inloggningskonto. Sök på jedec.org efter JESD79-4.

embex Ladda ner artikeln på 500 kbyte här (länk, pdf).
Fler tekniska rapporter finns på etn.se/expert

De ursprungliga specifikationerna JESD79-4 publicerades första gången 2012, men som vanligt tar det 3–4 år för nya generationer av höghastighetsminnen att bli allmänt tillgängliga till en låg kostnad. Nu är vi i början av 2016 och DDR4-minnenas tid har kommit – det börjar bli dags att lära sig mer om dem samt skaffa kunskap om hur våra konstruktioner ska utformas för den nya generationen av minnesgränssnitt.

DDR4-minnen arbetar med klockfrekvenser på mellan 1 600 MHz och 3 200 MHz istället för DDR3-minnenas hastigheter på mellan 800 MHz och 2 400 MHz. Standardminnesmodulerna är dessutom mycket kompaktare. DDR4-standarden föreskriver DIMM-moduler (Dual Inline Memory Modules) på upp till 128 GByte jämfört med maximalt 16 GByte för DDR3-DIMM. Även om dessa standardgränser är ganska höga så är de vanligaste DIMM-storlekarna fortfarande 8 GByte eller 16 GByte för DDR4, och 2 GByte till 8 GByte för DDR3. 8 GByte DIMM har när detta skrivs den lägsta kostnaden per GByte för DDR4.

Till skillnad från DDR2 (som baserades på T-anslutningar) och DDR3 (som oftast har mängder av parallellkopplingar) använder DDR4 en hybridtopologi. DDR4 har parallella längdmatchade transmissionsledare för databussanslutningarna från varje chip till värdprocessorn samt Daisy-länkade längdmatchade transmissionsledare för klocka-, adress- och kontrollbuss. Den senare typen av topologi kallas allmänt ”fly-by” då varje signals flank på adress- och kontrolledarna flyttas sekventiellt från en enhet till nästa för att termineras efter den sista enheten.

Denna anslutningsmetod eliminerar reflektioner men har nackdelen att signalfördröjningen ökar för varje efterföljande enhet i kedjan. Topologin används när utgången har möjlighet att kompensera för denna signalförskjutning med en teknik som kallas ”signal leveling” (signalutjämning).

Figur 1 visar hur en adress- och kontrolledare går till varje SDRAM-enhet på en DDR4 DIMM. Bussanslutningarnas längd från kontakt till första enhet, och från enhet till enhet måste justeras så att kommandona anländer centrerat till varje chip i relation till klockan. DDR4-specifikationen anger timingkraven för varje segment i denna adress- eller kommandoledare. Varje segment måste behandlas som en transmissionsledare. Och det är därför som segmenten benämns TL0, TL1, etc.

För att säkerställa att DDR4-modulen kommer att fungera som den ska måste man först justera längden på adress- och kontrollsignalvägarna från DIMM-kontakten till det första SDRAM-chippet. Denna väg inkluderar TL0, TL1 och TL2. Längdjustering av dessa säkerställer att alla omslag på adress- och kontrolledare ligger inom de angivna tidsgränserna så att det inte finns några tveksamheter när klocksignalen växlar. När den vägen har ställts in är det bara att fortsätta längs med kedjekopplingarna och justera signalvägarna mellan enheterna. Signalvägen från den sista enheten i kedjan till termineringen, som inkluderar TL5, behöver inte matchas mot de andra sektionerna men dess längd bör vara begränsad så att ledaren termineras korrekt.

Om enheterna på DIMM-modulen har placerats på samma avstånd från varandra, kan ledarna från enhet till enhet helt enkelt dupliceras. Men detta fungerar enbart om de ligger på samma kretskortslager. Om ledarna löper på olika lager kan ledningens karakteristik förändras så mycket att fördröjningstiderna inte överensstämmer.

Som du säkert inser är detta en mycket tråkig och tidskrävande uppgift, om längdjusteringen ska göras manuellt. Det är därför de flesta designverktyg för kretskort har funktioner som hjälper konstruktören. I ­Altium Designer kallas detta xSignals och representerar den faktiska signalvägen för en viss kedja. Till skillnad mot ett ”nät”, som är en direkt elektrisk anslutning mellan enheternas pinnar, är xSignal den totala serien anslutningar som leder en höghastighetssignal från en källa till dess slutliga last. xSignal-vägen inkluderar serietermineringar och olika anslutningspunkter längs vägen – ungefär som ett tåg som stannar vid olika stationer utefter sin linje.

Med xSignal Wizard kan konstruktörer definiera minnestopologin (DDR3, 4 etc.) och välja vilka enheter i designen som är inkluderade i den topologin. Guiden definierar sedan de xSignal-vägar mellan enheternas och anslutningarnas in/ut-gångar som behövs. Noderna kan finnas inom ett nät eller i förbundna nät som separeras av en komponent, som exempelvis en serieterminering. När definitionen är gjord kan konstruktören enkelt styra upp xSignals med olika designregler, som total längd och matchad längd (för justering). Allteftersom kortlayouten fortsätter – i detta fall med layouten för ett DDR4-DIMM – säkerställer programvaran att dessa designregler följs och att signalvägarna uppfyller specifikationerna för DDR4.

Resultatet visas i figur 2. De flesta signalledarna tar inte den kortaste vägen mellan de två SDRAM-enheterna. I stället justeras deras längder så att fördröjningarna matchas och uppfyller specifikationen för DDR4. Detta är en i princip omöjlig uppgift att utföra manuellt, men med hjälp av moderna designverktyg, som Altium Designer med xSignals, blir detta arbete betydligt enklare.