LP-DDR(1)Edit
De oorspronkelijke low-power DDR (soms met terugwerkende kracht LPDDR1 genoemd) is een enigszins gewijzigde vorm van DDR SDRAM, met diverse wijzigingen om het totale stroomverbruik te verlagen.
Het belangrijkste is dat de voedingsspanning is verlaagd van 2,5 naar 1,8 V. Extra besparingen komen van temperatuurgecompenseerde verversing (DRAM hoeft minder vaak te worden ververst bij lage temperaturen), gedeeltelijke zelfverversing van de array en een “deep power down”-modus waarin alle geheugeninhoud wordt opgeofferd. Bovendien zijn de chips kleiner en nemen ze minder plaats in op de printplaat dan hun niet-mobiele tegenhangers. Samsung en Micron zijn twee van de belangrijkste leveranciers van deze technologie, die wordt gebruikt in tablet- en telefoonapparaten zoals de iPhone 3GS, de originele iPad, de Samsung Galaxy Tab 7.0 en de Motorola Droid X.
LP-DDR2Edit
Een nieuwe JEDEC standaard JESD209-2E definieert een drastischer herziene low-power DDR interface. Deze is niet compatibel met DDR1- of DDR2-SDRAM, maar kan worden gebruikt voor:
- LPDDR2-S2: 2n prefetch-geheugen (zoals DDR1),
- LPDDR2-S4: 4n prefetch-geheugen (zoals DDR2), of
- LPDDR2-N: niet-vluchtig (NAND-flash) geheugen.
Low-power states zijn gelijk aan die van basis-LPDDR, met enkele aanvullende opties voor gedeeltelijke array-refresh.
Timing-parameters worden gespecificeerd voor LPDDR-200 tot LPDDR-1066 (klokfrequenties van 100 tot 533 MHz).
Werkend bij 1,2 V, vermenigvuldigt LPDDR2 de besturings- en adreslijnen op een 10-bits CA-bus met dubbele datasnelheid. De commando’s zijn gelijk aan die van normale SDRAM, met uitzondering van de nieuwe toewijzing van de precharge- en burst terminate-opcodes:
CK | CA0 (RAS) |
CA1 (CAS) |
CA2 (WE) |
CA3 | CA4 | CA5 | CA6 | CA7 | CA8 | CA9 | Operation | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
H | H | – | NOP | ||||||||||
↘ | – | ||||||||||||
H | H | L | H | H | – | Laad alle banken op | |||||||
↘ | – | ||||||||||||
H | H | L | H | L | – | BA0 | BA1 | BA2 | Voorlaadt één bank | ||||
↘ | – | ||||||||||||
H | H | L | H | A30 | A31 | A32 | BA0 | BA1 | BA2 | Preactive (LPDDR2-N alleen) |
|||
↘ | A20 | A21 | A22 | A23 | A24 | A25 | A26 | A27 | A28 | A29 | |||
H | H | L | L | – | Burst terminate | ||||||||
↘ | – | ||||||||||||
H | L | H | gereserveerd | C1 | C2 | BA0 | BA1 | BA2 | Lezen (AP=auto-voorladen) |
||||
↘ | AP | C3 | C4 | C5 | C6 | C7 | C8 | C9 | C10 | C11 | |||
H | L | L | gereserveerd | C1 | C2 | BA0 | BA1 | BA2 | Write (AP=auto-voorladen) |
||||
↘ | AP | C3 | C4 | C5 | C6 | C7 | C8 | C9 | C10 | C11 | |||
L | H | R8 | R9 | R10 | R11 | R12 | BA0 | BA1 | BA2 | Activeer (R0-14=Rij adres) |
|||
↘ | R0 | R1 | R2 | R3 | R4 | R5 | R6 | R7 | R13 | R14 | |||
L | H | A15 | A16 | A17 | A18 | A19 | BA0 | BA1 | BA2 | Activate (LPDDR2-N alleen) |
|||
↘ | A5 | A6 | A7 | A8 | A9 | A10 | A11 | A12 | A13 | A14 | |||
L | L | H | H | – | Versieuw alle banken (LPDDR2-Sx alleen) |
||||||||
↘ | – | ||||||||||||
L | L | H | L | – | Refresh one bank (Round-robin adressering) |
||||||||
↘ | – | ||||||||||||
L | L | L | H | MA0 | MA1 | MA2 | MA3 | MA3 | MA4 | MA5 | Mode register gelezen (MA0-7=Adres) |
||
↘ | MA6 | MA7 | – | ||||||||||
L | L | L | L | MA0 | MA1 | MA2 | MA3 | MA4 | MA4 | MA5 | Modusregister schrijven (OP0-7=Data) |
||
↘ | MA6 | MA7 | OP0 | OP1 | OP2 | OP3 | OP4 | OP5 | OP6 | OP7 |
Kolomadres bit C0 wordt nooit overgedragen, en wordt verondersteld nul te zijn. Burst-transfers beginnen dus altijd op even adressen.
LPDDR2 heeft ook een actief-laag chip select (indien hoog, is alles een NOP) en klokvrijgave CKE signaal, die werken als SDRAM. Evenals bij SDRAM selecteert het commando dat wordt verzonden in de cyclus waarin CKE voor het eerst valt, de uitschakeltoestand:
- Als de chip actief is, bevriest hij op zijn plaats.
- Als het commando een NOP is (CS laag of CA0-2 = HHH), draait de chip niets.
- Indien het commando een refresh-commando is (CA0-2 = LLH), komt de chip in de self-refresh-state.
- Indien het commando een burst terminate is (CA0-2 = HHL), komt de chip in de diepe power-down-state. (Een volledige reset-sequentie is vereist bij het verlaten.)
De modusregisters zijn sterk uitgebreid in vergelijking met conventionele SDRAM, met een 8-bit adresruimte, en de mogelijkheid om ze terug te lezen. Hoewel kleiner dan een seriële aanwezigheidsdetectie EEPROM, is er voldoende informatie in opgenomen om de noodzaak voor een EEPROM te elimineren.
S2-apparaten kleiner dan 4 Gbit, en S4-apparaten kleiner dan 1 Gbit hebben slechts vier banken. Zij negeren het BA2 signaal, en ondersteunen geen per-bank refresh.
Niet-volatiele geheugen-apparaten gebruiken de refresh commando’s niet, en wijzen het precharge commando toe aan de overdracht van adresbits A20 en hoger. De lage-orde bits (A19 en lager) worden overgebracht door een volgend Activate-commando. Hierdoor wordt de geselecteerde rij uit de geheugenarray overgebracht naar een van de 4 of 8 (gekozen door de BA-bits) rij-databuffers, waar zij met een Read-commando kunnen worden gelezen. In tegenstelling tot DRAM maken de bankadresbits geen deel uit van het geheugenadres; elk adres kan naar elke rijdatabuffer worden overgedragen. Een rijdatabuffer kan 32 tot 4096 bytes lang zijn, afhankelijk van het type geheugen. Rijen groter dan 32 bytes negeren enkele van de lage-orde adresbits in het Activate-commando. Rijen kleiner dan 4096 bytes negeren enkele van de hogere-orde adresbits in de Read-opdracht.
Non-volatile geheugen ondersteunt de Write-opdracht naar rij-databuffers niet. In plaats daarvan ondersteunt een reeks controleregisters in een speciaal adresgebied lees- en schrijfcommando’s, die kunnen worden gebruikt om de geheugenarray te wissen en te programmeren.
LP-DDR3Edit
In mei 2012 publiceerde JEDEC de JESD209-3 Low Power Memory Device Standard. In vergelijking met LPDDR2 biedt LPDDR3 een hogere datasnelheid, een grotere bandbreedte en energie-efficiëntie, en een hogere geheugendichtheid. LPDDR3 haalt een datasnelheid van 1600 MT/s en maakt gebruik van belangrijke nieuwe technologieën: write-leveling en command/address training, optionele on-die termination (ODT), en lage-I/O-capaciteit. LPDDR3 ondersteunt zowel package-on-package (PoP) als discrete packaging types.
De commando-codering is identiek aan LPDDR2, met gebruikmaking van een 10-bit double data rate CA-bus. De standaard specificeert echter alleen 8n-prefetch DRAM, en omvat niet de flashgeheugencommando’s.
Producten die LPDDR3 gebruiken, zijn onder meer de 2013 MacBook Air, iPhone 5S, iPhone 6, Nexus 10, Samsung Galaxy S4 (GT-I9500) en Microsoft Surface Pro 3. LPDDR3 werd mainstream in 2013 en draait op 800 MHz DDR (1600 MT/s), wat een bandbreedte biedt die vergelijkbaar is met PC3-12800 notebookgeheugen in 2011 (12,8 GB/s aan bandbreedte). Om deze bandbreedte te bereiken, moet de controller dual-channel geheugen implementeren. Dit is bijvoorbeeld het geval voor de Exynos 5 Dual en de 5 Octa.
Een “verbeterde” versie van de specificatie, LPDDR3e genaamd, verhoogt de datasnelheid tot 2133 MT/s. Samsung Electronics introduceerde de eerste 4 gigabit 20 nm-klasse LPDDR3-modules die gegevens kunnen verzenden met een snelheid tot 2.133 MT/s, meer dan het dubbele van de prestaties van het oudere LPDDR2 dat slechts 800 MT/s kan. Verschillende SoC’s van verschillende fabrikanten ondersteunen ook 800 MHz LPDDR3 RAM. Daartoe behoren de Snapdragon 600 en 800 van Qualcomm, evenals sommige SoC’s uit de Exynos- en Allwinner-serie.
LP-DDR4Edit
Op 14 maart 2012 organiseerde JEDEC een conferentie om te onderzoeken hoe toekomstige eisen voor mobiele apparaten de komende normen, zoals LPDDR4, zullen aansturen. Op 30 december 2013 kondigde Samsung aan dat het de eerste 20 nm-klasse 8 gibibit (1 GiB) LPDDR4 had ontwikkeld die in staat is gegevens te verzenden met een snelheid van 3.200 MT/s, waardoor 50 procent hogere prestaties worden geleverd dan de snelste LPDDR3 en ongeveer 40 procent minder energie wordt verbruikt bij 1,1 volt.
Op 25 augustus 2014 publiceerde JEDEC de JESD209-4 LPDDR4 Low Power Memory Device Standard.
Belangrijke wijzigingen zijn onder meer:
- Verdubbeling van de interfacesnelheid, en tal van daaruit voortvloeiende elektrische wijzigingen, waaronder het veranderen van de I/O-standaard naar low-voltage swing-terminated logic (LVSTL)
- Verdubbeling van de interne prefetch-grootte, en minimale overdrachtsgrootte
- Wijziging van een 10-bit DDR commando/adres bus naar een 6-bit SDR bus
- Wijziging van één 32-bit brede bus naar twee onafhankelijke 16-bit brede bussen
- Zelf-refresh wordt ingeschakeld door speciale commando’s, in plaats van te worden gecontroleerd door de CKE lijn
De standaard definieert SDRAM pakketten die twee onafhankelijke 16-bit toegangskanalen bevatten, elk verbonden met maximaal twee matrijzen per pakket. Elk kanaal is 16 databits breed, heeft zijn eigen besturings-/adrespennen en biedt toegang tot 8 banken DRAM. Het pakket kan dus op drie manieren worden aangesloten:
- Data-lijnen en besturing parallel aangesloten op een 16-bit databus, en alleen chip selects onafhankelijk aangesloten per kanaal.
- Op twee helften van een 32-bit brede databus, en de controlelijnen parallel geschakeld, inclusief chip select.
- Op twee onafhankelijke 16-bit brede databussen
Elke dobbelsteen levert 4, 6, 8, 12 of 16 gibit geheugen, de helft voor elk kanaal. Elke bank is dus een zestiende van de apparaatgrootte. Dit is georganiseerd in het juiste aantal (16 Ki tot 64 Ki) van 16384-bit (2048-byte) rijen. Uitbreiding tot 24 en 32 gibit is gepland, maar er is nog niet besloten of dit zal gebeuren door het aantal rijen, hun breedte, of het aantal banken te vergroten.
Grote pakketten met dubbele breedte (vier kanalen) en tot vier dies per paar kanalen (8 dies totaal per pakket) zijn ook gedefinieerd.
Gegevens worden benaderd in bursts van 16 of 32 transfers (256 of 512 bits, 32 of 64 bytes, 8 of 16 cycli DDR). Bursts moeten beginnen op 64-bits grenzen.
Omdat de klokfrequentie hoger is en de minimale burst-lengte langer dan bij eerdere standaarden, kunnen besturingssignalen in sterkere mate worden gemultiplexed zonder dat de command/address-bus een knelpunt wordt. LPDDR4 vermenigvuldigt de besturings- en adreslijnen op een 6-bit single data rate CA-bus. Voor commando’s zijn twee klokcycli nodig en voor bewerkingen die een adres coderen (bijvoorbeeld rij activeren, kolom lezen of kolom schrijven) zijn twee commando’s nodig. Om bijvoorbeeld een leesopdracht te geven aan een niet actieve chip zijn vier commando’s nodig die 8 klokcycli in beslag nemen: Activate-1, Activate-2, Read, CAS-2.
De chip select-lijn (CS) is actief-hoog. De eerste cyclus van een commando wordt geïdentificeerd door chip select die hoog is; het is laag tijdens de tweede cyclus.
Eerste cyclus (CS=H) | Tweede cyclus (CS=L) | Operatie | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CA5 | CA4 | CA3 | CA2 | CA1 | CA0 | CA5 | CA4 | CA3 | CA2 | CA1 | CA0 | |||
L | L | L | L | L | – | Geen bewerking | ||||||||
H | L | L | L | L | 0 | OP4 | OP3 | OP2 | OP1 | 1 | Multi-purpose command | |||
AB | H | L | L | L | L | – | BA2 | BA1 | BA0 | Precharge (AB=alle banken) | ||||
AB | L | H | L | L | L | – | BA2 | BA1 | BA0 | Refresh (AB=Alle banken) | ||||
– | H | H | L | L | L | – | Zelf-refresh entry | |||||||
BL | L | L | H | L | L | AP | C9 | – | BA2 | BA1 | BA0 | Write-1 (+CAS-2) | ||
– | H | L | H | L | L | – | Self-refresh exit | |||||||
0 | L | H | H | L | L | AP | C9 | – | BA2 | BA1 | BA0 | Masked Write-1 (+CAS-2) | ||
– | H | H | H | L | L | – | (gereserveerd) | |||||||
BL | L | L | L | H | L | AP | C9 | – | BA2 | BA1 | BA0 | Lees-1 (+CAS-2) | ||
C8 | H | L | L | H | L | C7 | C6 | C5 | C4 | C3 | C2 | CAS-2 | ||
– | H | L | H | L | – | (gereserveerd) | ||||||||
OP7 | L | L | H | L | MA5 | MA4 | MA3 | MA2 | MA1 | MA0 | Modusregister schrijven-1 en -2 MA=Adres, OP=Data |
|||
OP6 | H | L | H | H | L | OP5 | OP4 | OP3 | OP2 | OP1 | OP0 | |||
– | L | H | H | L | MA5 | MA4 | MA3 | MA2 | MA1 | MA0 | Mode Register Lezen (+CAS-2) | |||
– | H | H | H | L | – | (gereserveerd) | ||||||||
R15 | R14 | R13 | R12 | L | H | R11 | R10 | R16 | BA2 | BA1 | BA0 | Activate-1 en -2 | ||
R9 | R8 | R7 | R6 | H | H | R5 | R4 | R3 | R2 | R1 | R0 |
Het CAS-2-commando wordt gebruikt als de tweede helft van alle commando’s die een overdracht over de databus uitvoeren, en levert lage-orde kolom adresbits:
- Leescommando’s moeten beginnen op een kolomadres dat een veelvoud is van 4; er is geen voorziening voor het doorgeven van een C0- of C1-adresbit zonder nul aan het geheugen.
- Schrijfcommando’s moeten beginnen op een kolomadres dat een veelvoud is van 16; C2 en C3 moeten nul zijn voor een schrijfcommando.
- Mode register read en sommige multi-purpose commando’s moeten ook worden gevolgd door een CAS-2 commando, maar alle kolombits moeten nul (laag) zijn.
De burst-lengte kan worden geconfigureerd als 16, 32, of dynamisch selecteerbaar door de BL bit van lees- en schrijfbewerkingen.
Een DMI (data mask/invert) signaal is geassocieerd met elke 8 datalijnen, en kan worden gebruikt om het aantal bits dat hoog wordt gedreven tijdens data-overdracht te minimaliseren. Wanneer hoog, worden de andere 8 bits aangevuld door zowel zender als ontvanger. Als een byte vijf of meer 1 bits bevat, kan het DMI-signaal hoog worden gestuurd, samen met drie of minder datalijnen. Aangezien de signaallijnen laag worden afgesloten, vermindert dit het stroomverbruik.
(Een alternatief gebruik, waarbij DMI wordt gebruikt om het aantal datalijnen dat bij elke overdracht omschakelt te beperken tot maximaal 4, minimaliseert overspraak. Dit kan worden gebruikt door de geheugencontroller tijdens schrijven, maar wordt niet ondersteund door de geheugenapparaten.)
Data bus inversion kan afzonderlijk worden ingeschakeld voor lezen en schrijven. Voor gemaskeerde schrijfopdrachten (die een aparte opdrachtcode hebben) hangt de werking van het DMI-signaal af van de vraag of schrijfinversie is ingeschakeld.
- Als DBI on writes is uitgeschakeld, geeft een hoog niveau op DMI aan dat de bijbehorende databyte moet worden genegeerd en niet geschreven
- Als DBI on writes is ingeschakeld, geeft een laag niveau op DMI, in combinatie met een databyte waarvan 5 of meer bits zijn ingesteld, aan dat een databyte moet worden genegeerd en niet geschreven.
LPDDR4 bevat ook een mechanisme voor “targeted row refresh” om corruptie als gevolg van “row hammer” op aangrenzende rijen te voorkomen. Een speciale reeks van drie activerings-/voorlaadreeksen specificeert de rij die vaker werd geactiveerd dan een door het apparaat gespecificeerde drempelwaarde (200.000 tot 700.000 per verversingscyclus). Intern ververst het apparaat fysiek aangrenzende rijen in plaats van de rij die in het activatiecommando is gespecificeerd.:153-54
LP-DDR4XEdit
Samsung Semiconductor heeft een LPDDR4-variant voorgesteld die het LPDDR4X heeft genoemd.:11 LPDDR4X is identiek aan LPDDR4, behalve dat extra stroom wordt bespaard door de I/O-spanning (Vddq) te verlagen van 1,1 V naar 0,6 V. Op 9 januari 2017 kondigde SK Hynix 8 en 16 GiB LPDDR4X-pakketten aan. JEDEC publiceerde de LPDDR4X-standaard op 8 maart 2017. Naast het lagere voltage omvatten extra verbeteringen een enkelkanaals-die-optie voor kleinere toepassingen, nieuwe MCP-, PoP- en IoT-pakketten, en extra definitie- en timingverbeteringen voor de hoogste 4266 MT/s-snelheidsgraad.
LP-DDR5Edit
Op 19 februari 2019 publiceerde JEDEC de JESD209-5, Standard for Low Power Double Data Rate 5 (LPDDR5).
Samsung kondigde aan dat het in juli 2018 werkende prototypes van LP-DDR5-chips had. LPDDR5 introduceert de volgende veranderingen:
- Data transfer rate wordt verhoogd naar 6400 MT/s.
- Differentiële klokken worden gebruikt
- Prefetch wordt niet opnieuw verdubbeld, maar blijft 16n
- Het aantal banken wordt verhoogd naar 16, verdeeld in vier DDR4-achtige bankgroepen
- Beteringen op het gebied van energiebesparing:
- Data-Copy en Write-X (all one or all zero) commando’s om data-overdracht te verminderen
- Dynamische frequentie en voltage schaling
- Een nieuwe klokarchitectuur genaamd WCK & Read Strobe (RDQS)
Intel Tiger Lake en Snapdragon 888 geheugencontroller ondersteunt LPDDR5.