LPDDR4

4e génération de mémoire LPDDR basse consommation à destination des appareils nomades From Wikipedia, the free encyclopedia

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.

Samsung K4F8E304HB-MGCH: Mobile DRAM LPDDR4 8 GB

Historique

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

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.

Davantage d’informations Premier cycle (CS high), Second cycle (CS low) ...
Encodage des commandes LPDDR4[8]:151
Premier cycle (CS high) Second cycle (CS low) Operation
CA5CA4CA3CA2CA1CA0 CA5CA4CA3CA2CA1CA0
LLLLLL No operation
HLLLLL 0OP4OP3OP2OP11Multi-purpose command
ABHLLLL BA2BA1BA0Precharge (AB: all banks)
ABLHLLL BA2BA1BA0Refresh (AB: all banks)
HHLLL Self-refresh entry
BLLLHLL APC9BA2BA1BA0Write-1 (+CAS-2)
HLHLL Self-refresh exit
0LHHLL APC9BA2BA1BA0Masked write-1 (+CAS-2)
HHHLL Reserved
BLLLLHL APC9BA2BA1BA0Read-1 (+CAS-2)
C8HLLHL C7C6C5C4C3C2CAS-2
HLHL Reserved
OP7LLHHL MA5MA4MA3MA2MA1MA0Mode register write-1 and -2
MA: address, OP: data
OP6HLHHL OP5OP4OP3OP2OP1OP0
LHHHL MA5MA4MA3MA2MA1MA0Mode register read (+CAS-2)
HHHHL Reserved
R15R14R13R12LH R11R10R16BA2BA1BA0Activate-1 and -2
R9R8R7R6HH R5R4R3R2R1R0
Fermer

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

Voir aussi

Related Articles

Wikiwand AI