LPDDR4

La LPDDR4 (en anglais : « Low Power Double Data Rate 4 », littéralement : « débit de données double basse consommation 4») est un format de mémoire pour périphérique basse consommation, évolution des normes LPDDR, LPDDR2 et LPDDR3, dont les spécifications ont été officialisées le par le JEDEC sous la norme JESD209-4 LPDDR4[1]. Ce format évolua ensuite en LPDDR5.
Historique
[modifier | modifier le code]Le , Samsung Electronics annonce avoir développé la première puce LPDDR4 de 8 gigabits (1 Gio) en classe 20 nm (soit entre 20 et 29 nm), capable de transmettre des données à un taux de 3 200 Mbit/s, fournissant ainsi des performances 50 % plus élevées que la plus rapide des mémoires LPDDR3, tout en consommant 40 % d'énergie en moins à une tension de 1,1 volt[2].
Samsung a introduit ensuite une évolution nommée LPDDR4X[3]:11, identique à la LPDDR4, mais avec une tension d'entrée-sortie (Vddq) réduite à 0,6 V. Le 6 janvier 2017, SK Hynix a annoncé des boîtiers LPDDR4X de 8 et 16 Go[4],[5]. Le JEDEC a publié la norme LPDDR4X le 8 mars 2017[6]. En plus de la tension plus basse, d'autres améliorations supplémentaires comprennent une option de puce à canal unique pour des applications de petite taille, de nouveaux boîtiers MCP, PoP et IoT, et des améliorations de définition plus précise et de timing pour la vitesse la plus élevée de 4266 MT/s.
Description
[modifier | modifier le code]Parmi les changements[7] :
- Passage de 1,2 V à 1,1 V
- Taux de transfert accru, compris entre 3 200 et 4 266 MT/s (LPDDR4X)
- Doublement de la vitesse de l’interface, avec les nombreux changements électriques qui en ont découlé, dont le changement de la norme d’E/S en logique low-voltage swing-terminated logic (LVSTL)
- Doublement de la taille de la mémoire tampon de prélecture (16n) et de la taille minimale de transfert
- Passage d’un bus de commandes/adresses DDR 10 bits à un bus SDR 6 bits
- Passage d’un bus de 32 bits à deux bus indépendants de 16 bits
- L’auto-rafraîchissement est activé par des commandes dédiées, plutôt que contrôlé par la ligne CKE
- Des canaux séparés sont créés sur chaque côté des puces afin de réduire le chemin parcouru par le courant, et d’accroître ainsi la vitesse de transmission des données.
La norme définit des boîtiers SDRAM contenant deux canaux d’accès indépendants de 16 bits, chacun connecté à jusqu’à deux puces par boîtier. Chaque canal a une large de 16 bits de données, possède ses propres broches de contrôle/adresse, et permet l’accès à 8 banques de DRAM. Ainsi, le boîtier peut être connecté de trois manières :
- les lignes de données et de contrôle sont connectées en parallèle à un bus de données 16 bits, seules les sélections de puce (chip select) sont connectées indépendamment par canal ;
- à deux moitiés d’un bus de données large de 32 bits, et aux lignes de contrôle en parallèle, dont la sélection de puce (chip select) ;
- À deux bus de données indépendants de 16 bits de large.
Chaque puce fournit 4, 6, 8, 12 ou 16 gigabits de mémoire, la moitié pour chaque canal. Ainsi, chaque banque représente un seizième de la taille de la puce. Celle-ci est organisée en un nombre approprié (16 K à 64 K) de rangées de 16384 bits (2048 octets). L’extension à 24 et 32 gigabits est prévue, mais il n’est pas encore décidé si cela se fera en augmentant le nombre de lignes, leur largeur ou le nombre de banques.
Des boîtiers plus grands offrant la double largeur (quatre canaux) et jusqu’à quatre puces par paire de canaux (8 puces au total par boîtier) sont également définis.
Les données sont accédées en rafales de 16 ou 32 transferts (256 ou 512 bits, 32 ou 64 octets, 8 ou 16 cycles DDR). Les rafales doivent commencer sur des limites de 64 bits.
Comme la fréquence d’horloge est plus élevée et la durée minimale de la rafale plus longue que les normes précédentes, les signaux de contrôle peuvent être multiplexés plus fortement sans que le bus de commande/adresse ne devienne un goulot d’étranglement. La LPDDR4 multiplexe les lignes de contrôle et d’adressage sur un bus CA SDR de 6 bits. Les commandes nécessitent 2 cycles d’horloge, et les opérations encodant une adresse (par exemple, activer une ligne, lire ou écrire une colonne) nécessitent deux commandes. Par exemple, pour demander une lecture à partir d’une puce inactive, il faut enchaîner quatre commandes prenant 8 cycles d’horloge : Activer-1, Activer-2, Lire, CAS-2.
La ligne de sélection de puce (CS) est active à l'état haut. Le premier cycle d’une commande est identifié par le CS à l'état haut ; elle est à l'état bas pendant le deuxième cycle.
| Premier cycle (CS high) | Second cycle (CS low) | Operation | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CA5 | CA4 | CA3 | CA2 | CA1 | CA0 | CA5 | CA4 | CA3 | CA2 | CA1 | CA0 | |||
| L | L | L | L | L | L | — | No operation | |||||||
| H | L | L | L | L | L | 0 | OP4 | OP3 | OP2 | OP1 | 1 | Multi-purpose command | ||
| AB | H | L | L | L | L | — | BA2 | BA1 | BA0 | Precharge (AB: all banks) | ||||
| AB | L | H | L | L | L | — | BA2 | BA1 | BA0 | Refresh (AB: all banks) | ||||
| — | 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 | — | Reserved | |||||||
| 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 | — | Reserved | ||||||||
| OP7 | L | L | H | H | L | MA5 | MA4 | MA3 | MA2 | MA1 | MA0 | Mode register write-1 and -2 MA: address, 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 | — | Reserved | |||||||
| R15 | R14 | R13 | R12 | L | H | R11 | R10 | R16 | BA2 | BA1 | BA0 | Activate-1 and -2 | ||
| R9 | R8 | R7 | R6 | H | H | R5 | R4 | R3 | R2 | R1 | R0 | |||
La commande CAS-2 est utilisée comme seconde moitié de toutes les commandes effectuant un transfert à travers le bus de données, et fournit des bits d’adresse de colonne de poids faible :
- Les commandes de lecture doivent commencer sur une adresse de colonne qui est un multiple de 4 ; il n’existe aucune disposition pour communiquer des bits d’adresse C0 ou C1 non nuls à la mémoire.
- Les commandes d’écriture doivent commencer sur une adresse de colonne qui est un multiple de 16 ; les bits d'adresse C2 et C3 doivent être nuls pour une commande d’écriture.
- La lecture des registres de mode et certaines commandes multifonctions doivent également être suivies d’une commande CAS-2, cependant tous les bits de colonne doivent être à zéro (état bas).
La longueur de la rafale peut être configurée pour être 16, 32, ou sélectionnable dynamiquement par le bit BL des opérations de lecture et d’écriture.
Un signal DMI (data mask/invert, masque/inversion des données) est associé à chaque groupe de 8 lignes de données, et peut être utilisé pour minimiser le nombre de bits basculant à l'état haut lors des transferts de données. Lorsqu’il est haut, les 8 autres bits sont complémentés à la fois par l’émetteur et le récepteur. Si un octet contient cinq bits à 1 ou plus, le signal DMI peut être positionné haut, ainsi que trois lignes de données ou moins. Comme les lignes de signal sont terminées à l'état bas, cela réduit la consommation d’énergie. Une autre utilisation, où le DMI est utilisé pour limiter le nombre de lignes de données basculant à chaque transfert à un maximum de 4, minimise la diaphonie. Cela pourrait être utilisé par le contrôleur mémoire lors des écritures, mais n’est pas pris en charge par les composants mémoire.
L’inversion du bus de données peut être activée séparément pour les lectures et écritures. Pour les écritures masquées (qui ont un code de commande séparé), le fonctionnement du signal DMI dépend de l’activation de l’inversion d’écriture :
- si le DBI lors des écritures est désactivé, un niveau haut sur DMI indique que l’octet de données correspondant doit être ignoré et non écrit ;
- si le DBI lors des écritures est activé, un niveau bas sur DMI combiné à un octet de données avec 5 bits ou plus à 1, indique un octet de données à ignorer et à ne pas écrire.
La LPDDR4 inclut également un mécanisme de « rafraîchissement de ligne ciblé » afin d’éviter la corruption des données due au « martèlement de rangée » sur les rangées adjacentes. Une séquence spéciale de trois séquences d’activation/précharge spécifie la rangée qui a été activée plus souvent qu’un seuil spécifié par le composant (200 000 à 700 000 par cycle de rafraîchissement). En interne, le composant rafraîchit les lignes physiquement adjacentes plutôt que celle spécifiée dans la commande activer[9],[8]:153–54.
Notes et références
[modifier | modifier le code]- ↑ (en) « JEDEC Releases LPDDR4 Standard for Low Power Memory Devices », sur JEDEC, (consulté le )
- ↑ (en) « Samsung Develops Industry’s First 8Gb LPDDR4 Mobile DRAM », Samsung
- ↑ (en) Ashiq Reza « "Memory Need" Gives Birth To "New Memory" » () (lire en ligne)
—Qualcomm 3G LTE Summit - ↑ (en-US) Anton Shilov, « SK Hynix Announces 8 GB LPDDR4X-4266 DRAM Packages (archivé depuis l'original) », sur Anantech, (consulté le )
- ↑ (ko) « SK하이닉스 세계 최대 용량의 초저전력 모바일 D램 출시 », sur Skhynix (consulté le )
- ↑ (en-US) « JEDEC Updates Standards for Low Power Memory Devices », sur JEDEC (consulté le )
- ↑ « Le JEDEC ratifie la LPDDR4 », HardWare.fr, (consulté le )
- (en-US) « JEDEC Standard: Low Power Double Data Rate 4 (LPDDR4) », JEDEC Solid State Technology Association, (consulté le ) Username and password "cypherpunks" will allow download.
- ↑ (en-US) « Row hammer refresh command », Patents (consulté le )
Voir aussi
[modifier | modifier le code]Liens externes
[modifier | modifier le code]- (en-US) « spécifications JESD209-4 LPDDR4 (besoin de s'enregistrer) », sur Jedec.