LP-DDR(1)Edit
Oryginalny low-power DDR (czasami retroaktywnie nazywany LPDDR1) jest lekko zmodyfikowaną formą DDR SDRAM, z kilkoma zmianami w celu zmniejszenia ogólnego zużycia energii.
Najważniejsze, napięcie zasilania jest zmniejszone z 2,5 do 1,8 V. Dodatkowe oszczędności wynikają z odświeżania skompensowanego temperaturą (DRAM wymaga odświeżania rzadziej w niskich temperaturach), częściowego samoodświeżania matrycy oraz trybu „głębokiego wyłączenia”, w którym poświęcana jest cała zawartość pamięci. Dodatkowo, chipy są mniejsze, dzięki czemu zajmują mniej miejsca na płytce drukowanej niż ich niemobilne odpowiedniki. Samsung i Micron są dwoma głównymi dostawcami tej technologii, która jest stosowana w urządzeniach typu tablet i telefon, takich jak iPhone 3GS, oryginalny iPad, Samsung Galaxy Tab 7.0 i Motorola Droid X.
LP-DDR2Edit
Nowy standard JEDEC JESD209-2E definiuje bardziej radykalnie zmieniony interfejs low-power DDR. Nie jest on zgodny ani z DDR1, ani z DDR2 SDRAM, ale może obsługiwać:
- LPDDR2-S2: 2n prefetch memory (jak DDR1),
- LPDDR2-S4: 4n prefetch memory (jak DDR2), lub
- LPDDR2-N: Non-volatile (NAND flash) memory.
Stany niskiego poboru mocy są podobne do podstawowych LPDDR, z kilkoma dodatkowymi opcjami częściowego odświeżania tablicy.
Parametry taktowania są określone dla LPDDR-200 do LPDDR-1066 (częstotliwości zegara od 100 do 533 MHz).
Pracując przy napięciu 1,2 V, LPDDR2 multipleksuje linie sterujące i adresowe na 10-bitowej magistrali CA o podwójnej szybkości transmisji danych. Polecenia są podobne do tych z normalnej pamięci SDRAM, z wyjątkiem zmiany przypisania kodów operacyjnych precharge i burst terminate:
CK | CA0 (RAS) |
CA1 (CAS) |
CA2 (WE) |
CA3 | CA4 | CA5 | CA6 | CA7 | CA8 | CA9 | Operacja | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
H | H | H | – | NOP | |||||||||
↘ | – | ||||||||||||
H | H | L | H | H | – | Przeładowanie wszystkich banków | |||||||
↘ | – | ||||||||||||
H | H | L | H | L | – | BA0 | BA1 | BA2 | Przeładowanie jednego banku | ||||
↘ | – | ||||||||||||
H | H | L | H | A30 | A31 | A32 | BA0 | BA1 | BA2 | Preactive (LPDDR2-N only) |
|||
↘ | A20 | A21 | A22 | A23 | A24 | A25 | A26 | A27 | A28 | A29 | |||
H | H | L | L | – | Burst terminate | ||||||||
↘ | – | ||||||||||||
H | H | L | H | reserved | C1 | C2 | BA0 | BA1 | BA2 | Read (AP=auto-precharge) |
|||
↘ | AP | C3 | C4 | C5 | C6 | C7 | C8 | C9 | C10 | C11 | |||
H | L | reserved | C1 | C2 | BA0 | BA1 | BA2 | Write (AP=auto-precharge) |
|||||
↘ | AP | C3 | C4 | C5 | C6 | C7 | C8 | C9 | C10 | C11 | |||
L | H | R8 | R9 | R10 | R11 | R12 | BA0 | BA1 | BA2 | Activate (R0-14=Adres wiersza address) |
|||
↘ | R0 | R1 | R2 | R3 | R4 | R5 | R6 | R7 | R13 | R14 | |||
L | H | A15 | A16 | A17 | A18 | A19 | BA0 | BA1 | BA2 | Activate (LPDDR2-.N only) |
|||
↘ | A5 | A6 | A7 | A8 | A9 | A10 | A11 | A12 | A13 | A14 | |||
L | L | H | H | – | Odśwież wszystkie banki (LPDDR2-Sx only) |
||||||||
↘ | – | ||||||||||||
L | L | H | L | – | Refresh one bank (Round-robin addressing) |
||||||||
↘ | – | ||||||||||||
L | L | L | L | H | MA0 | MA1 | MA2 | MA3 | MA3 | MA4 | MA5 | Odczyt rejestru trybu pracy (MA0-7=Adres) |
|
↘ | ↘ | MA6 | MA7 | – | |||||||||
L | L | L | L | L | MA0 | MA1 | MA2 | MA3 | MA4 | MA4 | MA5 | Zapis rejestru trybu pracy (OP0-7=Data) |
|
↘ | MA6 | MA6 | MA7 | OP0 | OP1 | OP2 | OP3 | OP4 | OP5 | OP6 | OP7 |
Bit adresu kolumny C0 nigdy nie jest przesyłany, i jest przyjmowany jako zero. Dzięki temu transfery Burst zawsze rozpoczynają się od adresów parzystych.
LPDDR2 posiada również aktywny-niski sygnał chip select (w stanie wysokim wszystko jest NOP) i clock enable CKE, które działają jak SDRAM. Podobnie jak w przypadku SDRAM, komenda wysyłana w cyklu, w którym CKE pada po raz pierwszy, wybiera stan wyłączenia:
- Jeżeli układ jest aktywny, zamraża się w miejscu.
- Jeżeli komenda jest NOP (CS niski lub CA0-2 = HHH), układ pracuje bezczynnie.
- Jeżeli polecenie jest poleceniem odświeżania (CA0-2 = LLH), układ wchodzi w stan samoodświeżania.
- Jeżeli polecenie jest zakończeniem burstu (CA0-2 = HHL), układ wchodzi w stan głębokiego wyłączenia. (Przy wyjściu wymagana jest sekwencja pełnego resetu.)
Rejestry trybu zostały znacznie rozszerzone w porównaniu z konwencjonalną pamięcią SDRAM, z 8-bitową przestrzenią adresową i możliwością odczytu zwrotnego. Chociaż są mniejsze niż szeregowa pamięć EEPROM, zawierają wystarczająco dużo informacji, aby wyeliminować potrzebę jej stosowania.
Urządzenia S2 mniejsze niż 4 Gbit i urządzenia S4 mniejsze niż 1 Gbit mają tylko cztery banki. Ignorują one sygnał BA2 i nie obsługują odświeżania per-bank.
Urządzenia z pamięcią nieulotną nie używają komend odświeżania i ponownie przypisują komendę precharge do przesyłania bitów adresu A20 i wyższych. Bity niskiego rzędu (A19 i niżej) są przenoszone przez następującą komendę Activate. Powoduje to przeniesienie wybranego wiersza z tablicy pamięci do jednego z 4 lub 8 (wybieranych przez bity BA) buforów danych wiersza, gdzie mogą być one odczytane komendą Read. W przeciwieństwie do DRAM, bity adresu banku nie są częścią adresu pamięci; dowolny adres może być przeniesiony do dowolnego bufora danych wiersza. Bufor danych wiersza może mieć długość od 32 do 4096 bajtów, w zależności od typu pamięci. Wiersze większe niż 32 bajty ignorują niektóre bity adresowe niskiego rzędu w poleceniu Activate. Wiersze mniejsze niż 4096 bajtów ignorują niektóre bity adresowe wysokiego rzędu w poleceniu Read.
Pamięć nieulotna nie obsługuje polecenia Write do buforów danych wiersza. Zamiast tego seria rejestrów kontrolnych w specjalnym regionie adresowym obsługuje polecenia Read i Write, które mogą być używane do wymazywania i programowania tablicy pamięci.
LP-DDR3Edit
W maju 2012 roku JEDEC opublikował standard JESD209-3 Low Power Memory Device Standard. W porównaniu do LPDDR2, LPDDR3 oferuje wyższą prędkość przesyłu danych, większą przepustowość i efektywność energetyczną oraz większą gęstość pamięci. LPDDR3 osiąga prędkość 1600 MT/s i wykorzystuje nowe kluczowe technologie: write-leveling i trenowanie komend/adresów, opcjonalne zakończenie ODT (on-die termination) oraz niską pojemność we/wy. LPDDR3 obsługuje zarówno opakowania typu package-on-package (PoP), jak i dyskretne.
Kodowanie poleceń jest identyczne jak w LPDDR2, wykorzystując 10-bitową magistralę CA o podwójnej szybkości transmisji danych. Jednak standard określa tylko 8n-prefetch DRAM, a nie obejmuje komend pamięci flash.
Produkty wykorzystujące LPDDR3 obejmują 2013 MacBook Air, iPhone 5S, iPhone 6, Nexus 10, Samsung Galaxy S4 (GT-I9500) i Microsoft Surface Pro 3. LPDDR3 weszła do głównego nurtu w 2013 roku, pracując z częstotliwością 800 MHz DDR (1600 MT/s), oferując przepustowość porównywalną z pamięcią PC3-12800 dla notebooków w 2011 roku (12,8 GB/s przepustowości). Aby osiągnąć taką przepustowość, kontroler musi zaimplementować pamięć dwukanałową. Na przykład, tak jest w przypadku Exynos 5 Dual i 5 Octa.
„Ulepszona” wersja specyfikacji o nazwie LPDDR3e zwiększa szybkość transmisji danych do 2133 MT/s. Samsung Electronics wprowadził pierwsze 4-gigabitowe moduły LPDDR3 klasy 20 nm zdolne do przesyłania danych z prędkością do 2133 MT/s, czyli ponad dwukrotnie większą niż starsze LPDDR2, które są zdolne tylko do 800 MT/s. Różne układy SoC od różnych producentów również natywnie obsługują 800 MHz LPDDR3 RAM. Takie obejmują Snapdragon 600 i 800 od Qualcomm, jak również niektóre SoC z serii Exynos i Allwinner.
LP-DDR4Edit
W dniu 14 marca 2012 r., JEDEC gościł konferencję w celu zbadania, w jaki sposób przyszłe wymagania urządzeń mobilnych będą napędzać nadchodzące standardy, takie jak LPDDR4. W dniu 30 grudnia 2013 roku firma Samsung ogłosiła, że opracowała pierwszą 20 nm klasę 8 gibitów (1 GiB) LPDDR4 zdolną do przesyłania danych z prędkością 3200 MT/s, zapewniając tym samym o 50 procent wyższą wydajność niż najszybsze LPDDR3 i zużywając około 40 procent mniej energii przy napięciu 1,1 V.
W dniu 25 sierpnia 2014 roku JEDEC opublikował standard JESD209-4 LPDDR4 Low Power Memory Device Standard.
Ważne zmiany obejmują:
- Podwojenie prędkości interfejsu oraz liczne wynikające z tego zmiany elektryczne, w tym zmianę standardu I/O na low-voltage swing-terminated logic (LVSTL)
- Podwojenie rozmiaru wewnętrznego prefetch, i minimalny rozmiar transferu
- Zmiana z 10-bitowej magistrali komend/adresów DDR na 6-bitową magistralę SDR
- Zmiana z jednej magistrali o szerokości 32 bitów na dwie niezależne magistrale o szerokości 16 bitów
- Samoodświeżanie jest włączane przez dedykowane komendy, a nie kontrolowane przez linię CKE
Standard definiuje pakiety SDRAM zawierające dwa niezależne 16-bitowe kanały dostępu, każdy podłączony do maksymalnie dwóch matryc na pakiet. Każdy kanał ma szerokość 16 bitów danych, posiada własne piny sterujące/adresowe i umożliwia dostęp do 8 banków pamięci DRAM. Pakiet może być więc podłączony na trzy sposoby:
- Linie danych i sterowanie podłączone równolegle do 16-bitowej szyny danych, a tylko układy wyboru chipów podłączone niezależnie na kanał.
- Do dwóch połówek magistrali danych o szerokości 32 bitów, a linie sterujące równolegle, w tym selektory układów scalonych.
- Do dwóch niezależnych magistral danych o szerokości 16 bitów
Każda kość zapewnia 4, 6, 8, 12 lub 16 gibitów pamięci, po połowie na każdy kanał. Tak więc, każdy bank jest jedną szesnastą wielkości urządzenia. Jest ona zorganizowana w odpowiednią liczbę (od 16 Ki do 64 Ki) 16384-bitowych (2048-bajtowych) rzędów. Planowane jest rozszerzenie do 24 i 32 gibibitów, ale nie jest jeszcze zdecydowane, czy zostanie to wykonane przez zwiększenie liczby rzędów, ich szerokości, czy liczby banków.
Większe pakiety zapewniające podwójną szerokość (cztery kanały) i do czterech matryc na parę kanałów (8 matryc łącznie na pakiet) są również zdefiniowane.
Dane są dostępne w burstach 16 lub 32 transferów (256 lub 512 bitów, 32 lub 64 bajty, 8 lub 16 cykli DDR). Bursts muszą zaczynać się na 64-bitowych granicach.
Ponieważ częstotliwość zegara jest wyższa, a minimalna długość burstu dłuższa niż we wcześniejszych standardach, sygnały sterujące mogą być bardziej zmultipleksowane bez szyny komend/adresu stającej się wąskim gardłem. LPDDR4 multipleksuje linie sterujące i adresowe na 6-bitowej magistrali CA o pojedynczej szybkości transmisji danych. Komendy wymagają 2 cykli zegara, a operacje kodujące adres (np. aktywacja wiersza, odczyt lub zapis kolumny) wymagają dwóch komend. Na przykład, żądanie odczytu z bezczynnego układu wymaga czterech komend zajmujących 8 cykli zegara: Activate-1, Activate-2, Read, CAS-2.
Linia wyboru układu scalonego (CS) ma stan aktywny-wysoki. Pierwszy cykl komendy jest identyfikowany przez stan wysoki chip select; podczas drugiego cyklu jest on w stanie niskim.
Pierwszy cykl (CS=H) | Drugi cykl (CS=L) | Operacja | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CA5 | CA4 | CA3 | CA2 | CA1 | CA0 | CA5 | CA4 | CA3 | CA2 | CA1 | CA0 | CA0 | ||
L | L | L | L | L | – | Brak działania | ||||||||
H | L | L | L | L | L | 0 | OP4 | OP3 | OP2 | OP1 | 1 | Komenda wielofunkcyjnapolecenie | ||
AB | H | L | L | L | – | BA2 | BA1 | BA0 | Precharge (AB=wszystkie banki) | |||||
AB | L | H | L | L | L | – | BA2 | BA1 | BA0 | Odśwież (AB=Wszystkie banki) | ||||
– | H | H | L | L | – | Samodzielnieodśwież wpis | ||||||||
BL | L | L | H | L | L | AP | C9 | – | BA2 | BA1 | BA0 | Zapis-1 (+CAS-2) | ||
– | H | L | H | L | – | Samodzielnieodświeżanie wyjście | ||||||||
0 | L | H | H | L | L | AP | C9 | – | BA2 | BA1 | BA0 | Zamaskowany zapis-1 (+CAS-2) | ||
– | H | H | H | L | L | – | (zarezerwowane) | |||||||
BL | L | – | (zarezerwowane) | |||||||||||
BL | L | L | L | H | L | AP | C9 | – | BA2 | BA1 | BA0 | Read-1 (+CAS-2) | ||
C8 | H | L | L | H | L | C7 | C6 | C5 | C4 | C3 | C2 | CAS-2 | ||
– | H | L | H | L | – | (zastrzeżony) | ||||||||
OP7 | L | L | H | H | L | MA5 | MA4 | MA3 | MA2 | MA1 | MA0 | Rejestr trybów pracy Zapisz-.1 i -2 MA=Adres, OP=Data |
||
OP6 | H | L | H | H | H | L | OP5 | OP4 | OP3 | OP2 | OP1 | OP0 | ||
– | L | H | H | H | L | MA5 | MA5 | MA4 | MA3 | MA2 | MA1 | MA0 | Odczyt rejestru trybu pracy (+CAS-2) | |
– | H | H | H | H | L | – | (zarezerwowane) | |||||||
R15 | R14 | R13 | R12 | L | H | R11 | R10 | R16 | BA2 | BA1 | BA0 | Aktywacja-.1 i -.2 | ||
R9 | R8 | R7 | R6 | H | H | R5 | R4 | R3 | R2 | R1 | R0 |
Komenda CAS-.2 jest używane jako druga połowa wszystkich poleceń, które wykonują transfer przez magistralę danych, i zapewnia bity adresu kolumny niskiego rzędu:
- Rozkazy odczytu muszą zaczynać się na adresie kolumny, który jest wielokrotnością 4; nie przewidziano przekazywania do pamięci niezerowego bitu adresu C0 lub C1.
- Rozkazy zapisu muszą zaczynać się na adresie kolumny, który jest wielokrotnością 16; C2 i C3 muszą być zerowe dla rozkazu zapisu.
- Po odczycie rejestru trybu i niektórych rozkazach wielozadaniowych musi również następować rozkaz CAS-2, jednak wszystkie bity kolumny muszą być zerowe (niskie).
Długość burstu może być skonfigurowana na 16, 32, lub dynamicznie wybierana przez bit BL operacji odczytu i zapisu.
Jeden sygnał DMI (data mask/invert) jest związany z każdymi 8 liniami danych i może być użyty do zminimalizowania liczby bitów wysterowanych w stan wysoki podczas transmisji danych. W stanie wysokim, pozostałe 8 bitów jest uzupełniane zarówno przez nadajnik jak i odbiornik. Jeśli bajt zawiera pięć lub więcej bitów 1, sygnał DMI może być wysterowany w stan wysoki, wraz z trzema lub mniejszą liczbą linii danych. Ponieważ linie sygnałowe są zakończone nisko, zmniejsza to zużycie energii.
(Alternatywne zastosowanie, w którym DMI jest używany do ograniczenia liczby linii danych, które przełączają się przy każdym transferze do co najwyżej 4, minimalizuje przesłuch. Może to być wykorzystywane przez kontroler pamięci podczas zapisów, ale nie jest obsługiwane przez urządzenia pamięciowe.)
Odwrócenie szyny danych może być oddzielnie włączone dla odczytów i zapisów. W przypadku maskowanych zapisów (które mają oddzielny kod rozkazu), działanie sygnału DMI zależy od tego, czy włączona jest inwersja zapisu.
- Jeśli DBI przy zapisach jest wyłączone, wysoki poziom na DMI wskazuje, że odpowiedni bajt danych ma być ignorowany i nie zapisywany
- Jeśli DBI przy zapisach jest włączone, niski poziom na DMI, w połączeniu z bajtem danych z ustawionymi 5 lub więcej bitami, wskazuje bajt danych, który ma być ignorowany i nie zapisywany.
LPDDR4 zawiera również mechanizm „ukierunkowanego odświeżania wierszy” w celu uniknięcia uszkodzeń spowodowanych przez „row hammer” w sąsiednich wierszach. Specjalna sekwencja trzech sekwencji aktywacji/przeładowania określa rząd, który był aktywowany częściej niż określony przez urządzenie próg (200,000 do 700,000 na cykl odświeżania). Wewnętrznie urządzenie odświeża fizycznie sąsiednie rzędy, a nie ten określony w poleceniu activate.:153-54
LP-DDR4XEdit
Samsung Semiconductor zaproponował wariant LPDDR4, który nazwał LPDDR4X.:11 LPDDR4X jest identyczny z LPDDR4, z wyjątkiem dodatkowej oszczędności energii poprzez obniżenie napięcia wejścia/wyjścia (Vddq) do 0,6 V z 1,1 V. W dniu 9 stycznia 2017 roku firma SK Hynix ogłosiła pakiety LPDDR4X o pojemności 8 i 16 GiB. JEDEC opublikował standard LPDDR4X w dniu 8 marca 2017 roku. Oprócz niższego napięcia, dodatkowe ulepszenia obejmują opcję jednokanałowej matrycy dla mniejszych aplikacji, nowe pakiety MCP, PoP i IoT, a także dodatkowe ulepszenia definicji i timingu dla najwyższej klasy prędkości 4266 MT/s.
LP-DDR5Edit
W dniu 19 lutego 2019 roku JEDEC opublikował normę JESD209-5, Standard for Low Power Double Data Rate 5 (LPDDR5).
Samsung ogłosił, że posiada działające prototypowe układy LP-DDR5 w lipcu 2018 roku. LPDDR5 wprowadza następujące zmiany:
- Prędkość transferu danych została zwiększona do 6400 MT/s.
- Używane są zegary różnicowe
- Prefetch nie jest ponownie podwajany, ale pozostaje 16n
- Liczba banków zostaje zwiększona do 16, podzielonych na cztery grupy banków podobne do DDR4
- Ulepszenia w zakresie oszczędzania energii:
- Komendy Data-Copy i Write-X (wszystkie jedynki lub wszystkie zera) zmniejszające transfer danych
- Dynamiczne skalowanie częstotliwości i napięcia
- Nowa architektura taktowania o nazwie WCK & Read Strobe (RDQS)
Kontroler pamięci Intela Tiger Lake i Snapdragona 888 obsługuje LPDDR5.