# LPDDR2

La LPDDR2 (pour l'anglais : « Low Power Double Data Rate 2 », littéralement, « Débit de données double à basse énergie 2 ») est la deuxième génération de type de mémoire dynamique orienté vers les appareils mobiles à très faible consommation (LPDDR). Elle est principalement utilisée dans les smartphones, les tablettes, et le matériel embarqué.
Un nouveau standard JEDEC définit une révision plus profonde de l'interface DDR basse consommation. Elle n'est pas compatible avec les formats DDR1 et DDR2, mais peut désigner soit :
* LPDDR2-S2 : mémoire de préchargement 2n (comme DDR1) ;
* LPDDR2-S4 : mémoire de préchargement 4n (comme DDR2) ;
* LPDDR2-N : mémoire non-volatile (Mémoire flash NAND).
Les états basse consommation sont similaires à ceux de la LPDDR, avec plusieurs options additionnelles de rafraîchissement partiel de la table mémoire.
Les paramètres de temps sont spécifiés de LPDDR-200 à LPDDR-1066 (fréquences d'horloge de 100 à 533 MHz).
Lorsqu'elle fonctionne à 1,2 V, la LPDDR2 multiplexe les lignes de contrôle et d'adressage sur un bus CA DDR 10-bits. Les commandes sont similaires à celles des SDRAM plus classiques, à l'exception des opcodes de réassignement de la précharge et de la fin accélérée (burst terminate) :
Encodage des commandes LPDDR2 :
| CK | CA0 (RAS) | CA1 (CAS) | CA2 (WE) | CA3 | CA4 | CA5 | CA6 | CA7 | CA8 | CA9 | Opération |
| ↑ | H | H | H | — | — | — | — | — | — | — | NOP |
| ↓ | — | — | — | — | — | — | — | — | — | — | | | NOP |
| ↑ | H | H | L | H | H | — | — | — | — | — | Precharge all banks |
| ↓ | — | — | — | — | — | — | — | — | — | — | | | Precharge all banks |
| ↑ | H | H | L | H | L | — | — | BA2 | BA1 | BA0 | Precharge one bank |
| ↓ | — | — | — | — | — | — | — | — | — | — | | | Precharge one bank |
| ↑ | H | H | L | H | A30 | A31 | A32 | BA2 | BA1 | BA0 | Preactive (LPDDR2-N only) |
| ↓ | A20 | A21 | A22 | A23 | A24 | A25 | A26 | A27 | A28 | A29 | Preactive (LPDDR2-N only) |
| ↑ | H | H | L | L | — | — | — | — | — | — | Burst terminate |
| ↓ | — | — | — | — | — | — | — | — | — | — | | | Burst terminate |
| ↑ | H | L | H | reserved | reserved | C1 | C2 | BA2 | BA1 | BA0 | Read (AP=auto-precharge) |
| ↓ | AP | C3 | C4 | C5 | C6 | C7 | C8 | C9 | C10 | C11 | Read (AP=auto-precharge) |
| ↑ | H | L | L | reserved | reserved | C1 | C2 | BA2 | BA1 | BA0 | Write (AP=auto-precharge) |
| ↓ | AP | C3 | C4 | C5 | C6 | C7 | C8 | C9 | C10 | C11 | Write (AP=auto-precharge) |
| ↑ | L | H | R8 | R9 | R10 | R11 | R12 | BA2 | BA1 | BA0 | Activate (R0–14=Row address) |
| ↓ | R0 | R1 | R2 | R3 | R4 | R5 | R6 | R7 | R13 | R14 | Activate (R0–14=Row address) |
| ↑ | L | H | A15 | A16 | A17 | A18 | A19 | BA2 | BA1 | BA0 | Activate (LPDDR2-N only) |
| ↓ | A5 | A6 | A7 | A8 | A9 | A10 | A11 | A12 | A13 | A14 | Activate (LPDDR2-N only) |
| ↑ | L | L | H | H | — | — | — | — | — | — | Refresh all banks (LPDDR2-Sx only) |
| ↓ | — | — | — | — | — | — | — | — | — | — | | | Refresh all banks (LPDDR2-Sx only) |
| ↑ | L | L | H | L | — | — | — | — | — | — | Refresh one bank (Round-robin addressing) |
| ↓ | — | — | — | — | — | — | — | — | — | — | | | Refresh one bank (Round-robin addressing) |
| ↑ | L | L | L | H | MA0 | MA1 | MA2 | MA3 | MA4 | MA5 | Mode register read (MA0–7=Address) |
| ↓ | MA6 | MA7 | — | — | — | — | — | — | — | — | | Mode register read (MA0–7=Address) |
| ↑ | L | L | L | L | MA0 | MA1 | MA2 | MA3 | MA4 | MA5 | Mode register write (OP0–7=Data) |
| ↓ | MA6 | MA7 | OP0 | OP1 | OP2 | OP3 | OP4 | OP5 | OP6 | OP7 | Mode register write (OP0–7=Data) |
Le bit C0 d'adressage de colonne n'est jamais transféré et est considéré à zéro. Les transferts accélérés commencent ainsi toujours à une adresse paire.
LPDDR2 a également une sélection de puce active-basse (Lorsqu'élevé, tout est en mode NOP) et le signal CKE d'activation d'horloge, qui opère comme la SDRAM. Les commandes envoyées lors d'un cycle, lorsque le signal CKE est émis pour la première fois, sélectionnent l'état arrêt du courant, comme dans le cas de la SDRAM également :
* Si la puce est active, il est gelé tel quel.
* Si la commande est un NOP (CS bas ou CA0–2 = HHH), la puce est en état repos.
* Si la commande est une commande de rafraîchissement (CA0–2 = LLH), la puce entre dans l'état d'auto-rafraîchissement
* Si la commande est une terminaison accélérée (CA0–2 = HHL), la puce entre dans un état d'arrêt du courant profond. Une séquence de réinitialisation complète est alors requise lorsque cet état est quitté.
Les registres de mode ont été beaucoup plus étendus que dans la SDRAM conventionnelle, avec un espace d'adressage 8 bits, et la possibilité de les relire. Bien que plus petit qu'une EEPROM de Serial Presence Detect (SPD), suffisamment d'informations sont incluses pour ne pas en nécessiter l'ajout d'une.
Les périphériques S2 plus petits que 4 Gbit et les périphériques S4 plus petits qu'un Gbit n'ont que 4 banques. Ils ignorent le signal BA2, et ne supportent pas le rafraîchissement par banque.
Les périphériques à mémoire non-volatile n'utilisent pas les commandes de rafraîchissement et réassignent la commande de précharge vers les bits de transfert d'adresse A20 et supérieurs. les bits d'ordre bas (A19 et inférieurs) sont transférés par une commande activer qui suit. Cela transfère la rangée sélectionnée de la table mémoire vers l'un des 4 ou 8 (sélectionné par les bits BA) rangées de tampon de données, où elles peuvent être lues par une commande de lecture. Contrairement à la DRAM, les bits d'adressage de banque ne font pas partie de l'adressage de la mémoire ; n'importe quelle adresse peut être transférée vers n'importe quelle rangée du tampon de données. Une rangée de tampon de données peut aller de 32 à 4 096 octets de long, en fonction du type de mémoire. Les rangées plus larges que 32 octets ignorent quelques-uns des bits d'adressage d'ordre bas dans les commandes d'activation. Les rangées plus petites que 4 096 octets ignorent quelques-uns des bits d'adressage d'ordre haut de la commande de lecture.
La mémoire non volatile ne supporte pas la commande d'écriture vers les rangées de tampon de données. À la place, une série de registres de contrôle dans une aire d'adressage spéciale acceptent les commandes de lecture et d'écriture, qui peuvent être utilisées pour effacer ou bien programmer la table mémoire.