LP-DDR(1)Editar
O DDR original de baixa potência (às vezes chamado retroativamente de LPDDR1) é uma forma ligeiramente modificada de DDR SDRAM, com várias mudanças para reduzir o consumo geral de energia.
Mais significativa, a tensão de alimentação é reduzida de 2,5 para 1,8 V. Economia adicional vem da atualização compensada por temperatura (DRAM requer atualização com menos freqüência a baixas temperaturas), atualização parcial da matriz e um modo “deep power down” que sacrifica todo o conteúdo da memória. Além disso, os chips são menores, usando menos espaço de placa do que seus equivalentes não móveis. Samsung e Micron são dois dos principais fornecedores desta tecnologia, que é utilizada em dispositivos tablet e telefone, como o iPhone 3GS, iPad original, Samsung Galaxy Tab 7.0 e Motorola Droid X.
LP-DDR2Edit
Um novo padrão JEDEC JESD209-2E define uma interface DDR de baixa potência mais drasticamente revista. Ela não é compatível com SDRAM DDR1 ou DDR2, mas pode acomodar:
- LPDDR2-S2: 2n de memória prefetch (como DDR1),
- LPDDR2-S4: 4n de memória prefetch (como DDR2), ou
- LPDDR2-N: Memória não volátil (NAND flash).
Estados de baixa potência são similares ao LPDDR básico, com algumas opções adicionais de atualização parcial da matriz.
Parâmetros de temporização são especificados para LPDDR-200 a LPDDR-1066 (freqüências de clock de 100 a 533 MHz).
Trabalhar a 1,2 V, LPDDR2 multiplexa as linhas de controle e endereço em um barramento CA de taxa dupla de dados de 10 bits. Os comandos são similares aos do SDRAM normal, exceto pela reatribuição dos opcodes de pré-carga e terminação de ruptura:
CK | CA0 (RAS) |
CA1 (CAS) |
CA2 (WE) |
CA3 | CA4 | CA5 | CA6 | CA7 | CA8 | CA9 | Operação | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
H | H | H | H | – | NOP | ||||||||
↘ | – | ||||||||||||
H | H | L | H | H | – | Precarregar todos os bancos | |||||||
↘ | – | ||||||||||||
H | H | L | H | L | – | BA0 | BA1 | BA2 | Preencher um banco | ||||
↘ | – | ||||||||||||
H | H | L | H | A30 | A31 | A32 | BA0 | BA1 | BA2 | Preactivo (LPDDR2-N apenas) |
|||
↘ | A20 | A21 | A22 | A23 | A24 | A25 | A26 | A27 | A28 | A29 | |||
H | H | L | L | – | Término de ruptura | ||||||||
↘ | – | ||||||||||||
H | L | H | reservado | C1 | C2 | BA0 | BA1 | BA2 | Ler (AP=auto-pré-carga) |
||||
↘ | AP | C3 | C4 | C5 | C6 | C7 | C8 | C9 | C10>C10 | C11 | |||
H | L | L | reservado | C1 | C2 | BA0 | BA1 | BA2 | Escrever (AP=auto-pré-carga) |
||||
↘ | AP | C3 | C4 | C5 | C6 | C7 | C8 | C9 | C10>C10 | C11 | |||
> | L | H | R8 | R9 | R10 | R11 | R12 | BA0 | BA1 | BA2 | Activate (R0-14=Row endereço) |
||
↘ | R0 | R1 | R2 | R3 | R4 | R5 | R6 | R7>R7 | R13 | R14 | |||
> | L | H | A15 | A16 | A17 | A18 | A19 | BA0 | BA1 | BA2 | Activate (LPDDR2-N apenas) |
||
↘ | A5 | A6 | A7 | A8 | A9 | A10 | A11 | A12 | A13 | A14 | |||
L | L | H | H | – | Refrescar todos os bancos (LPDDR2-Apenas Sx) |
||||||||
↘ | – | ||||||||||||
L | L | H | L | – | Refrescar um banco (Arredondar-endereçamento robin) |
||||||||
↘ | – | ||||||||||||
L | L | L | H | MA0 | MA1 | MA2 | MA3 | MA4 | MA5 | Registo do modo ler (MA0-7=Endereço) |
|||
↘ | MA6 | MA7 | – | ||||||||||
L | L | L | L | MA0 | MA1 | MA2 | MA3 | MA4 | MA5 | Registo de modo de escrita (OP0-7=Data) |
|||
↘ | MA6 | MA7 | OP0 | OP1 | OP2 | OP3 | OP4 | OP5 | OP6 | OP7 |
Endereço de coluna bit C0 nunca é transferido, e presume-se que seja zero. Assim, as transferências de explosão sempre começam em endereços pares.
LPDDR2 também tem uma seleção de chip ativo-baixo (quando alto, tudo é um NOP) e o relógio ativa o sinal CKE, que opera como SDRAM. Também como o SDRAM, o comando enviado no ciclo que o CKE é descartado primeiro seleciona o estado de desligamento:
- Se o chip estiver ativo, ele congela no lugar.
- Se o comando for um NOP (CS baixo ou CA0-2 = HHH), o chip fica ocioso.
- Se o comando for um comando de atualização (CA0-2 = LLH), o chip entra no estado de auto-refrescamento.
- Se o comando for um comando de término de explosão (CA0-2 = HHL), o chip entra no estado de desligamento profundo. (Uma sequência de reset completa é necessária ao sair.)
Os registros de modo foram grandemente expandidos em comparação com SDRAM convencional, com um espaço de endereço de 8 bits, e a capacidade de lê-los de volta. Embora menor que uma presença serial detecte EEPROM, informação suficiente é incluída para eliminar a necessidade de um.
S2 dispositivos menores que 4 Gbit, e dispositivos S4 menores que 1 Gbit têm apenas quatro bancos. Eles ignoram o sinal BA2, e não suportam atualização por banco.
Dispositivos de memória não volátil não usam os comandos de atualização, e reatribuem o comando de pré-carga para transferir bits de endereço A20 e superiores. Os bits de baixa ordem (A19 e para baixo) são transferidos por um seguinte comando Activate. Isto transfere a linha selecionada da matriz de memória para um dos buffers de dados da linha 4 ou 8 (selecionados pelos bits BA), onde eles podem ser lidos por um comando de leitura. Ao contrário da DRAM, os bits de endereço do banco não fazem parte do endereço da memória; qualquer endereço pode ser transferido para qualquer linha do buffer de dados. Um buffer de dados de linha pode ter de 32 a 4096 bytes de comprimento, dependendo do tipo de memória. Linhas maiores que 32 bytes ignoram alguns dos bits de endereço de baixa ordem no comando Activate. Linhas menores que 4096 bytes ignoram alguns dos bits de endereço de alta ordem no comando Ler.
Memória não volátil não suporta o comando Escrever em buffer de dados de linha. Ao invés disso, uma série de registros de controle em uma região de endereço especial suporta comandos Read and Write, que podem ser usados para apagar e programar a matriz de memória.
LP-DDR3Edit
Em maio de 2012, o JEDEC publicou o JESD209-3 Low Power Memory Device Standard. Em comparação com o LPDDR2, o LPDDR3 oferece uma maior taxa de dados, maior largura de banda e eficiência energética, e maior densidade de memória. O LPDDR3 atinge uma taxa de dados de 1600 MT/s e utiliza novas tecnologias chave: treino de nível de escrita e comando/endereço, terminação opcional on-die (ODT), e baixa capacitância de I/O. LPDDR3 suporta tanto pacotes em pacotes (PoP) quanto tipos de pacotes discretos.
O comando de codificação é idêntico ao LPDDR2, usando um barramento CA de taxa de dados dupla de 10 bits. Entretanto, o padrão especifica apenas DRAM 8n-prefetch, e não inclui os comandos de memória flash.
Produtos usando LPDDR3 incluem o MacBook Air 2013, iPhone 5S, iPhone 6, Nexus 10, Samsung Galaxy S4 (GT-I9500) e Microsoft Surface Pro 3. LPDDR3 foi lançado em 2013, funcionando a 800 MHz DDR (1600 MT/s), oferecendo largura de banda comparável à memória do notebook PC3-12800 em 2011 (12,8 GB/s de largura de banda). Para alcançar esta largura de banda, o controlador deve implementar memória de canal duplo. Por exemplo, este é o caso do Exynos 5 Dual e dos 5 Octa.
Uma versão “melhorada” da especificação chamada LPDDR3e aumenta a taxa de dados para 2133 MT/s. A Samsung Electronics introduziu os primeiros módulos LPDDR3 de 4 gigabit de classe 20 nm capazes de transmitir dados a até 2.133 MT/s, mais do dobro do desempenho do LPDDR2 mais antigo, que só é capaz de 800 MT/s. Vários SoCs de vários fabricantes também suportam nativamente a RAM LPDDR3 de 800 MHz. Tais incluem o Snapdragon 600 e 800 da Qualcomm, bem como alguns SoCs da série Exynos e Allwinner.
LP-DDR4Edit
Em 14 de março de 2012, a JEDEC organizou uma conferência para explorar como os futuros requisitos de dispositivos móveis conduzirão os próximos padrões como o LPDDR4. Em 30 de Dezembro de 2013, a Samsung anunciou que tinha desenvolvido o primeiro LPDDR4 de 20 nm classe 8 gibibit (1 GiB) capaz de transmitir dados a 3.200 MT/s, proporcionando assim um desempenho 50% superior ao do LPDDR3 mais rápido e consumindo cerca de 40% menos energia a 1.1 volts.
Em 25 de Agosto de 2014, o JEDEC publicou o JESD209-4 LPDDR4 Low Power Memory Device Standard.
Alterações significativas incluem:
- Desdobramento da velocidade da interface, e numerosas alterações eléctricas consequentes, incluindo a alteração do padrão de E/S para lógica de terminação de baixa tensão (LVSTL)
- Desdobramento do tamanho do pré-fetch interno, e tamanho mínimo de transferência
- Mudança de um barramento de comando/endereço DDR de 10 bits para um barramento SDR de 6 bits
- Mudança de um barramento de 32 bits de largura para dois barramentos independentes de 16 bits de largura
- Auto-refresco é ativado por comandos dedicados, ao invés de ser controlado pela linha CKE
O padrão define pacotes SDRAM contendo dois canais de acesso independentes de 16 bits, cada um conectado a até dois matrizes por pacote. Cada canal tem 16 bits de largura, tem seus próprios pinos de controle/endereço, e permite o acesso a 8 bancos de DRAM. Assim, o pacote pode ser conectado de três maneiras:
- Linhas de dados e controle conectados em paralelo a um barramento de dados de 16 bits, e somente o chip seleciona conectado independentemente por canal.
- Para duas metades de um bus de dados de 32 bits de largura, e as linhas de controlo em paralelo, incluindo a selecção do chip.
- Para dois buses de dados independentes de 16 bits de largura
Cada matriz fornece 4, 6, 8, 12 ou 16 gibibit de memória, metade para cada canal. Assim, cada banco é um décimo sexto do tamanho do dispositivo. Isto é organizado no número apropriado (16 Ki a 64 Ki) de linhas de 16384 bits (2048 byte). A extensão para 24 e 32 gibibit está planejada, mas ainda não está decidido se isto será feito aumentando o número de linhas, sua largura, ou o número de bancos.
Pacotes maiores fornecendo largura dupla (quatro canais) e até quatro matrizes por par de canais (total de 8 matrizes por pacote) também estão definidos.
Dados são acessados em rajadas de 16 ou 32 transferências (256 ou 512 bits, 32 ou 64 bytes, 8 ou 16 ciclos DDR). As rajadas devem começar em limites de 64 bits.
Desde que a frequência do relógio seja maior e o comprimento mínimo de rajada maior que os padrões anteriores, os sinais de controle podem ser mais altamente multiplexados sem que o barramento de comando/endereço se torne um gargalo de estrangulamento. LPDDR4 multiplexa as linhas de controle e endereço em um barramento CA de taxa única de dados de 6 bits. Comandos requerem 2 ciclos de relógio, e operações que codificam um endereço (por exemplo, ativar linha, ler ou escrever coluna) requerem dois comandos. Por exemplo, para solicitar uma leitura de um chip ocioso são necessários quatro comandos com 8 ciclos de clock: Activate-1, Activate-2, Read, CAS-2.
A linha de selecção do chip (CS) está activa-elevada. O primeiro ciclo de um comando é identificado pelo chip select sendo alto; ele é baixo durante o segundo ciclo.
Primeiro ciclo (CS=H) | Segundo ciclo (CS=L) | Operação | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CA5 | CA4 | CA3 | CA2 | CA1 | CA0 | CA5 | CA4 | CA3 | CA2 | CA1>CA1 | CA0 | |||
L | L | L | L | L | L | – | Sem operação | |||||||
H | L | L | L | L | L | 0 | OP4 | OP3 | OP2 | OP1 | 1 | 1 | Multi-comando de propósito | |
AB | H | L | L | L | L | L | – | BA2 | BA1 | BA0 | Precharge (AB=todos os bancos) | |||
AB | L | H | L | L | L | – | BA2 | BA1 | BA0 | Refresh (AB=Todos os bancos) | ||||
– | H | H | L | L | L | – | Self…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 | – | (reservado) | |||||||
BL | L | L | L | H | L | AP | C9 | – | BA2 | BA1 | BA0 | BA0 | Leitura-1 (+CAS-2) | |
C8 | H | L | L | H | L | C7 | C6 | C5 | C4 | C3 | C2 | CAS-2 | ||
– | H | L | H | L | – | (reservado) | ||||||||
OP7 | L | L | H | H | L | MA5 | MA4 | MA3 | MA2 | MA1 | MA0 | Modo de Registo Escrever-1 e -2 MA=Endereço, OP=Data |
||
OP6 | H | L | H | H | L | OP5 | OP4 | OP3 | OP2 | OP1 | OP0 | |||
– | L | H | H | H | L | MA5 | MA4 | MA3 | MA2 | MA1 | MA0 | Mode Register Read (+CAS-2) | ||
– | H | H | H | H | L | – | (reservado) | |||||||
R15 | R14 | R13 | R12 | L | H | R11 | R10 | R16 | BA2 | BA1 | BA0 | Activate-1 e -2 | ||
R9 | R8 | R7 | R6 | H | H | R5 | R4 | R3 | R2 | R1 | R0 |
O CAS-2 é usado como a segunda metade de todos os comandos que realizam uma transferência através do barramento de dados, e fornece bits de endereço de coluna de baixa ordem:
- Ler comandos deve começar em um endereço de coluna que é um múltiplo de 4; não há provisão para comunicar um bit de endereço C0 ou C1 diferente de zero à memória.
- Comandos de leitura devem começar em um endereço de coluna que é um múltiplo de 16; C2 e C3 devem ser zero para um comando de gravação.
- Registro de modo de leitura e alguns comandos multiuso também devem ser seguidos por um comando CAS-2, entretanto todos os bits de coluna devem ser zero (baixo).
O comprimento de ruptura pode ser configurado para ser 16, 32, ou dinamicamente selecionável pelo bit BL das operações de leitura e escrita.
Um sinal DMI (máscara de dados/invertido) é associado a cada 8 linhas de dados, e pode ser usado para minimizar o número de bits impulsionados alto durante as transferências de dados. Quando alto, os outros 8 bits são complementados tanto pelo transmissor como pelo receptor. Se um byte contiver cinco ou mais 1 bits, o sinal DMI pode ser acionado em altura, juntamente com três ou menos linhas de dados. Como as linhas de sinal são terminadas baixas, isso reduz o consumo de energia.
(Um uso alternativo, onde DMI é usado para limitar o número de linhas de dados que alternam em cada transferência para no máximo 4, minimiza o crosstalk. Isto pode ser usado pelo controlador de memória durante as gravações, mas não é suportado pelos dispositivos de memória.)
A inversão do barramento de dados pode ser habilitada separadamente para leituras e gravações. Para escritas mascaradas (que têm um código de comando separado), a operação do sinal DMI depende se a inversão de escrita está ativada.
- Se DBI em escritas está desativada, um nível alto na DMI indica que o byte de dados correspondente deve ser ignorado e não escrito
- Se DBI em escritas está ativado, um nível baixo na DMI, combinado com um byte de dados com 5 ou mais bits definidos, indica um byte de dados a ser ignorado e não escrito.
LPDDR4 também inclui um mecanismo de “atualização de linha alvo” para evitar corrupção devido ao “martelo de linha” nas linhas adjacentes. Uma seqüência especial de três seqüências de ativação/pre-carga especifica a linha que foi ativada mais frequentemente do que um limite especificado pelo dispositivo (200.000 a 700.000 por ciclo de atualização). Internamente, o dispositivo atualiza linhas fisicamente adjacentes ao invés da especificada no comando de ativação.:153-54
LP-DDR4XEdit
Samsung Semiconductor propôs uma variante LPDDR4 que chamou de LPDDR4X.:11 LPDDR4X é idêntico ao LPDDR4, exceto que a energia adicional é economizada reduzindo a tensão de E/S (Vddq) para 0,6 V de 1,1 V. Em 9 de Janeiro de 2017, a SK Hynix anunciou pacotes LPDDR4X 8 e 16 GiB. O JEDEC publicou o padrão LPDDR4X em 8 de Março de 2017. Além da voltagem mais baixa, melhorias adicionais incluem uma opção de matriz de canal único para aplicações menores, novos pacotes MCP, PoP e IoT, e melhorias adicionais de definição e temporização para o grau de velocidade mais alto de 4266 MT/s.
LP-DDR5Edit
Em 19 de Fevereiro de 2019, JEDEC publicou o JESD209-5, Standard for Low Power Double Data Rate 5 (LPDDR5).
Samsung anunciou que tinha chips LP-DDR5 protótipos em funcionamento em Julho de 2018. LPDDR5 introduz as seguintes alterações:
- A taxa de transferência de dados é aumentada para 6400 MT/s.
- Relógios diferenciais são usados
- Prefetch não é duplicado novamente, mas permanece 16n
- O número de bancos é aumentado para 16, dividido em quatro grupos de bancos do tipo DDR4
- Aprimoramentos na economia de energia:
- Data-Copy e Write-X (todos os comandos um ou zero) para diminuir a transferência de dados
- Frequência dinâmica e escala de tensão
- Uma nova arquitectura de relógio chamada WCK & Ler Strobe (RDQS)
Intel Tiger Lake e controlador de memória Snapdragon 888 suporta LPDDR5.