Fonctionnement d'un ordinateur/Barrettes de mémoire

Dans nos ordinateurs, les mémoires prennent la forme de barrettes mémoires. Il s'agit de circuits imprimés auxquels on a ajouté des broches. Ces broches sont les trucs dorés situés en bas des barrettes de mémoire. Elles servent à connecter les circuits de la barrette de mémoire sur le bus.

Barrette de mémoire RAM.
Slots mémoires.

Celles-ci se fixent à la carte mère sur un connecteur standardisé, appelé slot mémoire.

Les formats de barrettes modifier

La classification des barrettes pour PC est assez compliquée, les différences entre barrettes étant nombreuses. Dans les grandes lignes, trois distinctions sont importantes.

  • La distinction la plus visible à l’œil nu est le fait que certaines barrettes ont des puces mémoire d'un seul côté alors que d'autres en ont sur les deux faces. Cela permet de distinguer les barrettes SIMM et DIMM.
  • Une autre distinction est le fait que les barrettes n'ont pas le même nombre de broches. Pour des raisons de compatibilité, les barrettes de mémoires ont un nombre de broches différent suivant la version de DDR utilisée. Le nombre de broches dépend du format utilisé pour la barrette de mémoire (il existe trois formats différents), ainsi que du type de mémoire. Certaines mémoires obsolètes (les mémoires FPM-RAM et EDO-RAM) se contentaient de 30 broches, tandis que la mémoire DDR2 utilise entre 204 et 244 broches.
  • Enfin, les barrettes n'ont pas la même taille, pas le même format. Par exemple, les barrettes de PC portable utilisent un format spécialisé incompatible avec le format des barrettes pour PC de bureau. L'existence de ce format provient des contraintes spécifiques aux PC portables : il n'y a pas beaucoup de place à l'intérieur d'un PC portable, ce qui demande de diminuer la taille des barrettes.

Barrettes SIMM (FPM et EDO) modifier

Les barrettes pour PC sont appelées des barrettes SIMM ou DIMM. Les barrettes SIMM ont des puces sur une seule face de la barrette. Les barrettes de mémoires FPM et EDO-RAM étaient des barrettes SIMM. Elles existaient en deux versions : une version 72 broches, et une version 30 broches. Pour information, la tension d'alimentation des mémoires FPM était de 5 volts. Pour les mémoires EDO, cela variait entre 5 et 3.3 volts.

 
SIMM recto.
 
SIMM verso.

SIMM 30 broches modifier

 
Barrette SIMM 30 broches, pour PC de bureau.

Pour les curieux, voici en détail à quoi servent les broches de la SIMM 30 broches. Si vous vous amusez à compter les nombre de bits pour le bus de donnée et pour le bus d'adresse, vous remarquerez que le bus d'adresse contient 12 bits et que le bus de données en fait 8. L'adresse étant envoyée en deux fois, cela fait des adresses de maximum 24 bits, soit 16 mébioctets.

Détail des broches Utilité Détail des broches Utilité
1 Tension d'alimentation 2 Signal CAS
3 Bit 0 du bus de donnée 4 Bit 0 du bus d'adresse
5 Bit 1 du bus d'adresse 6 Bit 1 du bus de données
7 Bit 2 du bus d'adresse 8 Bit 3 du bus d'adresse
9 Masse : zéro volt 10 Bit 2 du bus de données
11 Bit 4 du bus d'adresse 12 Bit 5 du bus d'adresse
13 Bit 3 du bus de données 14 Bit 6 du bus d'adresse
15 Bit 7 du bus d'adresse 16 Bit 4 du bus de données
17 Bit 8 du bus d'adresse 18 Bit 9 du bus d'adresse
19 Bit 10 du bus d'adresse 20 Bit 5 du bus de données
21 Bit R/W 22 Zéro volt : masse
23 Bit 6 du bus de données 24 Bit 11 du bus d'adresse
25 Bit 7 du bus de données 26 Bit de parité pour les données écrites
27 Signal RAS 28 Bit de parité du signal CAS
29 Bit de parité pour les données lues 30 Tension d'alimentation (en double)

SIMM 72 broches modifier

Les mémoires 72 broches contiennent plus de bits pour le bus de données : 32 pour être précis. Par contre le bus d'adresse ne change pas : il reste de 12 bits. D'autres bits pour ou moins importants ont été rajoutés : les bits RAS et CAS sont en plusieurs exemplaires et on trouve 4 fois plus de bits de parité (un par octet transférable sur le bus de données).

Barrettes DIMM (SDRAM et DDR) modifier

 
Barrette DIMM de type SDRAM, pour PC de bureau.
 
Barrette DIMM de type DDR, pour PC de bureau.

Contrairement aux barrettes SIMM, les barrettes DIMM ont des puces sur les deux côtés. Les barrettes de DDR ou SDR sont toutes des barrettes DIMM, les SIMM étant l'apanage des FPM et EDO-RAM. Le nombre de broches d'une barrette au format DIMM peut varier suivant le type de mémoire, entre 168 et 244. Je suppose que vous comprendrez le fait que je ne souhaite pas vraiment en faire la liste, comme je l'ai pour les mémoires FPM 30 broches, mais je vais quand même vous donner le nombre de broches par barrette en fonction du type de mémoire. Outre le nombre de broches, la position des encoches est différentes entre les barrettes de SDR, de DDR1, DDR2, etc.

Type de DDR Nombre de broches
SDRAM 168
DDR 184
DDR2 214, 240 ou 244, suivant la barrette ou la carte mère.
DDR3 204 ou 240, suivant la barrette ou la carte mère.

DDR-DIMM modifier

Les barrettes de mémoires DDR sont toutes des mémoires de type DIMM, tout comme les SDRAM. Il faut signaler que les barrettes de DDR ont une forme similaire, mais que la position de l'encoche est différente, pour des raisons de compatibilité.

 
Barrettes de DDR pour PC de bureau.

DDR SO-DIMM modifier

Les barrettes SO-DIMM, pour ordinateurs portables, sont différentes selon que la mémoire est une DDR1, une DDR2 ou une DDR3.

 
Barrettes de DDR pour PC portables.

RD-DIMM modifier

Il faut noter qu'outre les mémoires SDR et DDR, certaines mémoires alternatives conçues par Rambus ont utilisé le format DIMM. Cependant, la position des broches n'était pas la même que celle des formats DIMM normaux, sans compter que le connecteur Rambus n'était pas compatible avec les connecteurs SDR/DDR normaux. Cela fait que les barrettes de Rambus ont parfois étés appelées des mémoires RB-DIMM, mais ce sont en réalité des DIMM comme les autres, les différences étant assez spécifiques.

L'intérieur d'une barrette de mémoire modifier

Après avoir vu le format des barrettes mémoire, il est temps de voir ce qu'il y a l'intérieur. On peut voir à l’œil nu qu'elles sont composées de boîtiers noirs soudées sur un circuit imprimé. Ces boîtiers noirs, appelés des puces mémoires, contiennent une mémoire RAM. Chaque barrette combine ces puces de manière à additionner leurs capacités : on peut ainsi créer une mémoire de 8 gibioctets à partir de 8 puces d'un gibioctet, par exemple. Mais outre ces puces, les barrettes mémoires contiennent aussi des fils électriques qui connectent les puces mémoires aux bus, ainsi que d'autres circuits électroniques. Et ce sont eux que nous allons maintenant aborder.

Les bus internes à la barrette mémoire modifier

Comme dit précédemment, chaque puce est reliée aux bus de commande, d'adresse et de données. Toutes les puces sont connectées aux bus d'adresse et de commande, ce qui permet d'envoyer la même adresse/commande à toutes les puces en même temps. La manière dont ces puces sont reliées au bus de commande dépend selon la mémoire utilisée.

Les DDR1 et 2 utilisent ce qu'on appelle une topologie en T, illustrée ci-dessous. On voit que le bus de commande forme une sorte d'arbre, dont chaque extrémité est connectée à une puce. La topologie en T permet d'égaliser le délai de transmission des commandes à travers le bus : la commande transmise arrive en même temps sur toutes les puces. Mais elle a de nombreux défauts, à savoir qu'elle fonctionne mal à haute fréquence et qu'elle est aussi difficile à router parce que les nombreuses connexions posent problèmes.

 
Organisation des bus de commandes sur les DDR1-2, nommée topologie en T.

En comparaison, les DDR3 utilisent une topologie fly-by, où les puces sont connectées en série sur le bus de commande/adresse. La topologie fly-by n'a pas les problèmes de la topologie en T : elle est simple à router et fonctionne très bien à haute fréquence.

 
Organisation des bus de commandes sur les DDR3 - topologie fly-by

Le Serial Presence Detect modifier

 
Localisation du SPD sur une barrette de SDRAM.

Toute barrette de mémoire assez récente contient une petite mémoire ROM qui stocke les différentes informations sur la mémoire : délais mémoire, capacité, marque, etc. Cette mémoire s'appelle le Serial Presence Detect, aussi communément appelé le SPD. Ce SPD contient non seulement les timings de la mémoire RAM, mais aussi diverses informations, comme le numéro de série de la barrette, sa marque, et diverses informations. Cette mémoire ROM est lue au démarrage de l'ordinateur par le BIOS, afin de pourvoir configurer ce qu'il faut. Le contenu de ce fameux SPD est standardisé par un organisme nommé le JEDEC, qui s'est chargé de standardiser le contenu de cette mémoire, ainsi que les fréquences, timings, tensions et autres paramètres des mémoires SDRAM et DDR. Pour les curieux, vous pouvez lire la page wikipédia sur le SPD, qui donne son contenu pour les mémoires SDR et DDR : Serial Presence Detect.

La connexion au bus mémoire modifier

Dans le cas le plus fréquent, toutes les barrettes d'un PC sont reliées au même bus mémoire, comme indiqué dans le schéma ci-dessous. Cela pose quelques problèmes lors de l'utilisation d'un grand nombre de barrettes. Les puces mémoires sont reliées directement au bus mémoire, sans autres intermédiaires que des fils électriques. Mais cela limite le nombre de barrettes qui peuvent être placées sur la carte mère, pour diverses raisons techniques. Disons simplement que plus on connecte de barrettes sur un même bus, plus la qualité du signal électrique transmis est mauvaise. Mais diverses solutions ont été trouvées pour limiter ce désagrément, et il est intéressant de les connaître.

 
Bus mémoire

Les barrettes tamponnées (à registres) modifier

Pour résoudre le problème précédent, certaines barrettes intègrent un registre, qui fait l'interface entre le bus et la barrette de RAM. Le registre découple les barrettes du bus mémoire, ce dernier ne communiquant qu'avec un registre et non avec les puces mémoires. Le fait est que le registre ne perturbe pas le signal transmis sur le bus, ou du moins pas autant qu'en son absence. Ces barrettes ont un temps de latence est plus important que celui des barrettes normales, du fait de la latence du registre. Les barrettes de ce genre sont appelées des barrettes RIMM. Il en existe deux types :

  • Avec les barrettes RDIMM, le registre fait l'interface pour le bus d'adresse et le bus de commande, mais pas pour le bus de données.
  • Avec les barrettes LRDIMM (Load Reduced DIMMs), le registre fait tampon pour tous les bus, y compris le bus de données.
 
Organisation des bus de commandes sur les RDIMM.

Les mémoires FB-DIMM modifier

À l'opposé, les barrettes FB-DIMM ne sont pas connectées avec un bus. À la place, les barrettes FB-DIMM sont reliées entre elles par une sorte de guirlande, dont chaque point est une barrette. Les données/adresses circulent d'une barrette à l'autre, jusqu’à atteindre la barrette de destination. Chaque barrette est reliée au bus par une sorte de mémoire tampon couplée à des circuits de contrôle : l'Advanced Memory Buffer.

 
Bus mémoire pour les barrettes FB-DIMM, schéma détaillé.