# Mémoire vive à registres

Une mémoire vive à registres (ou mémoire vive à tampons ; en anglais, registered memory ou buffered memory) est un type de mémoire vive qui possède des registres mémoires entre les modules DRAM et le contrôleur mémoire.
En français, le terme anglais registered memory est tout aussi connu (voire plus) que le terme mémoire vive à registres.
Les registres permettent de réduire la charge électrique sur le contrôleur mémoire et permettent à un ordinateur d'être plus stable en cas d'ajout de mémoire vive. La mémoire vive conventionnelle (sans registres), lorsque comparée à la mémoire vive à registres, est souvent appelée unbuffered memory ou unregistred memory.
Lorsque le module mémoire comprend deux rangées de contact distinctes (Dual Inline Memory Module - DIMM), une mémoire vive à registres est appelée RDIMM alors que celle sans registre est appelée UDIMM.

## Utilisation

Étant donné qu'elle est vendue en moindre quantité et qu'elle nécessite plus de composants, la mémoire vive à registres est souvent plus chère. Par conséquent elle est habituellement utilisée uniquement pour des applications où le besoin d'extensibilité (scalability) et de robustesse l'emporte sur le prix - par exemple, dans les serveurs.

## Mémoire avec correction d'erreurs (ECC memory)

Bien que la plupart des modules de mémoire vive à registres comportent un système de correction d'erreurs (Error-Correcting Code Memory ou ECC Memory), ce n'est pas toujours le cas. De la même façon, les modules avec correction d'erreurs intégrée ne sont pas toujours pourvus de registres. Les modules de mémoire sans registres avec correction d'erreurs sont, par exemple, utilisés dans les stations de travail ou dans les cartes mères d'entrée de gamme de serveurs qui n'acceptent pas beaucoup de mémoire vive.

## Performance

Habituellement, l'utilisation de la mémoire vive à registres entraine une réduction de la performance. Chaque lecture ou écriture transite dans le registre durant un cycle d'horloge entre le bus de la mémoire et de la mémoire DRAM, de sorte qu'on peut considérer que la mémoire vive à registres a un cycle d'horloge de retard comparativement à la mémoire DRAM sans registres. Avec la mémoire SDRAM, le retard s'applique qu'au premier cycle d'une rafale.

## Compatibilité

Habituellement, la carte mère doit correspondre au type de mémoire ; en conséquence, une mémoire vive à registres ne fonctionnera pas sur une carte mère qui n'est pas conçue pour ce type de mémoire, et inversement. Certaines cartes mères de PC acceptent des modules de mémoire avec registres ou des modules de mémoire sans registres, mais les deux types de modules ne peuvent pas y coexister.

## Types de mémoire à registres

Les modules DIMM à registres (tamponnés) (R-DIMM) insèrent une mémoire tampon entre les broches des bus de commande et d’adresse sur le DIMM et les puces mémoire. Un module DIMM haute capacité peut être doté de nombreuses puces mémoire, chacune d’entre elles devant recevoir l’adresse mémoire, et leur capacité d’entrée combinée limite la vitesse à laquelle le bus de mémoire peut fonctionner. En redistribuant les signaux de commande et d’adresse au sein du R-DIMM, cela permet à davantage de puces d’être connectées au bus mémoire. Le coût est une latence mémoire (en) accrue, à la suite du cycle d’horloge supplémentaire requis pour que l’adresse traverse la mémoire tampon supplémentaire. Les premiers modules de RAM enregistrés étaient physiquement incompatibles avec les modules de RAM non enregistrés, mais les deux variantes de SDRAM R-DIMM sont mécaniquement interchangeables, et certaines cartes mères peuvent prendre en charge les deux types.
Les modules Load Reduced DIMM (LR-DIMM ou LRDIMM) sont similaires aux R-DIMM, mais ajoutent également une mémoire tampon aux lignes de données. En d’autres termes, les LR-DIMM mettent en mémoire tampon à la fois les lignes de contrôle et de données tout en conservant la nature parallèle de tous les signaux. En conséquence, les LR-DIMM offrent de grandes capacités de mémoire maximales globales, tout en évitant les problèmes de performances et de consommation d’énergie des FB-DIMM, induits par la conversion requise entre les formes de signal série et parallèle$^,$.
Les modules DIMM entièrement mis en mémoire tampon (FB-DIMM) augmentent encore plus les capacités de mémoire maximales dans les grands systèmes, en utilisant une puce tampon plus complexe pour effectuer la traduction entre le bus large des puces SDRAM standard et un bus de mémoire série étroit et haute vitesse. En d’autres termes, tous les transferts de contrôle, d’adresse et de données vers les FB-DIMM sont effectués en série, tandis que la logique supplémentaire présente sur chaque FB-DIMM transforme les entrées série en signaux parallèles nécessaires au pilotage des puces mémoire. En réduisant le nombre de broches requises par bus mémoire, les processeurs pourraient prendre en charge plus de bus mémoire, ce qui permettrait une bande passante et une capacité mémoire totales plus élevées. Malheureusement, la traduction augmentait encore la latence de la mémoire, et les puces tampons complexes à grande vitesse utilisaient beaucoup d’énergie et généraient beaucoup de chaleur.
Les FB-DIMM et LR-DIMM sont conçus principalement pour minimiser la charge qu’un module de mémoire présente sur le bus mémoire. Ils ne sont pas compatibles avec les R-DIMM, et les cartes mères qui en ont besoin n’acceptent généralement aucun autre type de module de mémoire.