Contrôleur de mémoire - Memory controller

Le contrôleur de mémoire est un circuit numérique qui gère le flux de données entrant et sortant de la mémoire principale de l'ordinateur . Un contrôleur de mémoire peut être une puce distincte ou intégrée dans une autre puce, par exemple en étant placée sur la même puce ou en faisant partie intégrante d'un microprocesseur ; dans ce dernier cas, il est généralement appelé contrôleur de mémoire intégré ( IMC ). Un contrôleur de mémoire est parfois également appelé contrôleur de puce mémoire ( MCC ) ou unité de contrôleur de mémoire ( MCU ).

Une forme courante de contrôleur de mémoire est l' unité de gestion de mémoire (MMU) qui, dans de nombreux systèmes d'exploitation, tels qu'Unix , implémente l'adressage virtuel .

Histoire

La plupart des microprocesseurs de bureau ou de station de travail modernes utilisent un contrôleur de mémoire intégré (IMC), y compris les microprocesseurs d' Intel , d' AMD et ceux construits autour de l' architecture ARM .

Avant K8 (vers 2003), les microprocesseurs AMD avaient un contrôleur de mémoire implémenté sur le northbridge de leur carte mère . Dans K8 et plus tard, AMD utilisait un contrôleur de mémoire intégré. De même, jusqu'à Nehalem (vers 2008), les microprocesseurs Intel utilisaient des contrôleurs de mémoire implémentés sur le northbridge de la carte mère. Nehalem et plus tard passé à un contrôleur de mémoire intégré.

D' autres exemples de microprocesseurs qui utilisent des contrôleurs de mémoire intégrés comprennent IBM « s POWER5 et Sun Microsystems » s UltraSPARC T1 .

Alors qu'un contrôleur de mémoire intégré a le potentiel d'augmenter les performances du système, par exemple en réduisant la latence de la mémoire , il verrouille le microprocesseur à un type (ou types) de mémoire spécifique, forçant une refonte afin de prendre en charge les nouvelles technologies de mémoire. Lorsque la DDR2 SDRAM a été introduite, AMD a lancé de nouveaux processeurs Athlon 64. Ces nouveaux modèles, avec un contrôleur DDR2, utilisent un socket physique différent (appelé Socket AM2 ), de sorte qu'ils ne s'adapteront qu'aux cartes mères conçues pour le nouveau type de RAM. Lorsque le contrôleur de mémoire n'est pas sur matrice, le même processeur peut être installé sur une nouvelle carte mère, avec un northbridge mis à jour .

Certains microprocesseurs des années 1990, tels que le DEC Alpha 21066 et le HP PA-7300LC , avaient des contrôleurs de mémoire intégrés ; Cependant, plutôt que pour des gains de performances, cela a été mis en œuvre pour réduire le coût des systèmes en éliminant le besoin d'un contrôleur de mémoire externe.

Certains processeurs sont conçus pour avoir leurs contrôleurs de mémoire en tant que composants externes dédiés qui ne font pas partie du chipset. Un exemple est IBM POWER8 , qui utilise des puces externes Centaur montées sur des modules DIMM et servant de tampons mémoire, de puces de cache L4 et de véritables contrôleurs de mémoire. La première version de la puce Centaur utilisait de la mémoire DDR3, mais une version mise à jour a été publiée plus tard, qui peut utiliser la DDR4.

Objectif

Les contrôleurs de mémoire contiennent la logique nécessaire pour lire et écrire dans la DRAM et pour "rafraichir" la DRAM . Sans rafraîchissements constants, la DRAM perdra les données qui y sont écrites car les condensateurs fuient leur charge en une fraction de seconde (pas plus de 64 millisecondes selon les normes JEDEC ).

La lecture et l'écriture dans la DRAM sont effectuées en sélectionnant les adresses de données de ligne et de colonne de la DRAM comme entrées du circuit multiplexeur , où le démultiplexeur sur la DRAM utilise les entrées converties pour sélectionner l'emplacement de mémoire correct et renvoyer les données, qui sont ensuite retransmis dans un multiplexeur pour consolider les données afin de réduire la largeur de bus requise pour l'opération.

La largeur du bus est le nombre de lignes parallèles disponibles pour communiquer avec la cellule mémoire. Les largeurs de bus des contrôleurs de mémoire vont de 8 bits dans les systèmes antérieurs à 512 bits dans les systèmes et les cartes vidéo plus complexes (généralement implémentées sous la forme de quatre contrôleurs de mémoire simultanés de 64 bits fonctionnant en parallèle, bien que certains soient conçus pour fonctionner en "mode gang". " où deux contrôleurs de mémoire 64 bits peuvent être utilisés pour accéder à un périphérique de mémoire 128 bits ).

Certains contrôleurs de mémoire, tels que celui intégré aux processeurs PowerQUICC II, incluent du matériel de détection et de correction des erreurs .

Sécurité

Quelques contrôleurs de mémoire expérimentaux (principalement destinés au marché des serveurs où la protection des données est légalement requise) contiennent un deuxième niveau de traduction d'adresses, en plus du premier niveau de traduction d'adresses effectué par l'unité de gestion de mémoire du CPU .

Les contrôleurs de mémoire intégrés à certains processeurs Intel Core fournissent également un brouillage de mémoire en tant que fonctionnalité qui transforme les données utilisateur écrites dans la mémoire principale en modèles pseudo-aléatoires .

Le brouillage de la mémoire (dans la théorie cryptographique) est censé empêcher l' analyse médico - légale et d' ingénierie inverse basée sur la rémanence des données DRAM en rendant efficacement divers types d' attaques de démarrage à froid inefficaces. Dans la pratique actuelle, cela n'a pas été atteint.

Cependant, le brouillage de mémoire n'a été conçu que pour résoudre les problèmes électriques liés à la DRAM. Les normes de brouillage de mémoire de la fin des années 2010 ne résolvent ni n'empêchent les problèmes de sécurité. Les normes de brouillage de mémoire des années 2010 ne sont pas sécurisées du point de vue cryptographique, ni nécessairement open source ou ouvertes à la révision ou à l'analyse publique.

ASUS et Intel ont leurs propres normes de brouillage de mémoire. Actuellement, les cartes mères ASUS permettent à l'utilisateur de choisir les normes de brouillage de mémoire à utiliser [ASUS ou Intel] ou de désactiver complètement la fonctionnalité.

Variantes

Mémoire à double débit

Les contrôleurs de mémoire à double débit de données (DDR) sont utilisés pour piloter la SDRAM DDR , où les données sont transférées sur les fronts montants et descendants de l'horloge mémoire du système. Les contrôleurs de mémoire DDR sont nettement plus compliqués que les contrôleurs à débit de données unique, mais ils permettent de transférer deux fois plus de données sans augmenter la fréquence d'horloge de la cellule mémoire ou la largeur du bus.

Mémoire multicanal

Les contrôleurs de mémoire multicanaux sont des contrôleurs de mémoire où les périphériques DRAM sont séparés sur plusieurs bus différents pour permettre au(x) contrôleur(s) de mémoire d'y accéder en parallèle. Cela augmente la quantité théorique de bande passante du bus d'un facteur du nombre de canaux. Alors qu'un canal pour chaque cellule DRAM serait la solution idéale, l'ajout de canaux supplémentaires est très difficile en raison du nombre de fils, de la capacité de ligne et de la nécessité pour les lignes d'accès parallèles d'avoir des longueurs identiques.

Mémoire entièrement tamponnée

Les systèmes de mémoire entièrement tamponnés placent un dispositif de mémoire tampon sur chaque module de mémoire (appelé FB-DIMM lorsque la RAM entièrement tamponnée est utilisée), qui, contrairement aux dispositifs de contrôleur de mémoire traditionnels, utilisent une liaison de données série vers le contrôleur de mémoire au lieu de la liaison parallèle utilisée dans conceptions de RAM précédentes. Cela diminue le nombre de fils nécessaires pour placer les périphériques de mémoire sur une carte mère (permettant d'utiliser un plus petit nombre de couches, ce qui signifie que plus de périphériques de mémoire peuvent être placés sur une seule carte), au détriment d'une latence croissante (le temps nécessaire pour accéder à un emplacement mémoire). Cette augmentation est due au temps nécessaire pour convertir les informations parallèles lues à partir de la cellule DRAM au format série utilisé par le contrôleur FB-DIMM, et de nouveau à une forme parallèle dans le contrôleur de mémoire sur la carte mère.

En théorie, le dispositif de mémoire tampon du FB-DIMM pourrait être conçu pour accéder à toutes les cellules DRAM, permettant une conception de contrôleur de mémoire indépendante des cellules mémoire, mais cela n'a pas été démontré, car la technologie en est à ses balbutiements.

Contrôleur de mémoire flash

De nombreux dispositifs de mémoire flash , tels que les clés USB, incluent un contrôleur de mémoire flash sur puce. La mémoire flash est intrinsèquement plus lente d'accès que la RAM et devient souvent inutilisable après quelques millions de cycles d'écriture, ce qui la rend généralement inadaptée aux applications RAM.

Voir également

Les références

Liens externes