La RAM d'un PC est bien souvent réduite à la caractéristique de sa taille dans les prospectus. Pourtant, sans elle, impossible de faire démarrer un ordinateur. Plongeons avec joies dans les entrailles de la mémoire pour en savoir plus !
Rôle de la « mémoire » au sens large dans un PC
Pour faire très simple, les unités de calcul d'un processeur ont besoin d'un endroit où elles vont chercher des données et d'un endroit pour stocker les résultats. Au sein d'un PC, il y a plusieurs zones dédiées pour ce faire :- mémoires cache processeur : temps d'accès moyen de l'ordre de quelques nanosecondes, dépend de la vitesse du processeur, capacité de quelques Mo.
- mémoire RAM : temps d'accès moyen de l'ordre de quelques dizaines de nanosecondes, dépend de la vitesse de la RAM, capacité de quelques Go.
- disque dur (ou SSD) : temps d'accès moyen de l'ordre de quelques millisecondes, capacité en centaines ou en milliers de Go
Dans cet article, nous allons nous intéresser au 2 eme niveau : la RAM.
Constitution
Une barrette de RAM, c'est principalement un circuit imprimé sur lequel on retrouve un certain nombre de puces de mémoire et quelques minuscules composants électroniques . Suivant la technologie de la mémoire (SDR, DDR, DDR2, DDR3...) le nombre de pistes, la tension d'alimentation et les fréquences de fonctionnement sont différents. On trouve également sur les barrettes des détrompeurs, des petites encoches dans le PCB, qui ont pour but de ne permettre l'insertion dans les slots de la carte mère que des bonnes barrettes, et dans le bon sens. Une inversion de sens, ou une mauvaise technologie de barrette, conduirait forcement au non fonctionnement et à l'endommagement des composants électroniques.Depuis quelques années, on assiste également à l'arrivée de dissipateurs thermiques de plus en plus évolués montés directement sur les barrettes pour évacuer la chaleur produite. Cela est surtout valable pour les modèles haut de gamme dont la fréquence de fonctionnement est élevée.
Fréquence
On parle toujours de fréquence en informatique, sans vraiment toujours bien définir ce que c'est et comment cela est géré. Sur la carte mère, il y un petit composant électronique dans lequel il y a du quartz, comme dans les montres du même nom. Ce quartz vibre a une fréquence donnée. Chaque vibration est transformée en impulsion électrique, ce qui donne un signal carré très régulier.A partir de ce signal d'origine, à l'aide d'un composant électronique spécifique (une PLL), on va multiplier ou diviser cette fréquence de base pour en faire ce qu'on appelle le FSB. C'est la fréquence de référence du système. Le processeur et la RAM se basent sur ce FSB et sur un multiplicateur pour déterminer leur fréquence de fonctionnement.
L'unité de fréquence est le Hertz, défini comme étant un "évènement par seconde". 1 GHz correspondent donc à 1 Milliards d'évènements par seconde, dans notre cas, chaque évènement est un "coup d'horloge", qu'on appelle "clock". Ce « clock » dure, à cette fréquence, 1 milliardième de seconde, soit 1 nano secondes.
Timings, vous avez dit timings ?
Intéressons nous maintenant aux fameuses séries de chiffres comme "4-4-4-12" et "8-8-8-24" tels qu'on les voit dans les fiches technique. Ce sont les timings d'une barrette de RAM. Ils sont en fait liés au temps nécessaire pour accéder (en lecture ou en écriture) à une information dans la RAM. Chaque « case » de la RAM est en fait accessible par des coordonnées en "ligne / colonne", comme à la bataille navale.Pour réaliser un accès à une « case mémoire », il y a 4 opérations principales, ce qui correspond bien aux 4 chiffres toujours donnés par les constructeurs, mais il y en a aussi une une petite dizaine d'autres dont on ne parle jamais et qui n'ont que peu d'importance. Il est utile d'indiquer que ces 4 chiffres ont une unité, il s'agit de « clocks ». Les « clocks », ou « coups d'horloge » sont directement liés à la fréquence de fonctionnement. Prenons 400 MHz. Il s'agit de 400 millions de Hertz. Le Hertz est défini comme étant un "évènement par seconde". 400 MHz correspondent à 400 Millions d'évènements par seconde, dans notre cas, chaque évènement est un coup d'horloge. Ce « clock » dure, à cette fréquence, 1/400 Millionièmes de seconde, soit 2.5 nano secondes.
La barrette a donc des timings standard de 4 clocks / 4 clocks / 4 clocks / 12 clocks. Chaque timing est en fait le « temps », exprimé en multiple de clocks, que la barrette prends pour faire une opération. Il faut donc TOUJOURS mettre en relation les timings et la fréquence de fonctionnement : 4/4/4/12 à 400 MHz sont rigoureusement identiques à 8/8/8/24 à 800 MHz.
Voici donc, dans l'ordre, a quoi font référence les timings :
- CAS# Latency : Column Adress # Strobe Latency, aussi nommé tCL. C'est le nombre de clocks qui s'écoule entre le moment ou le contrôleur mémoire indique aux modules de RAM d'accéder à une colonne spécifique de la ligne actuellement active et le moment où cette donnée devient réellement disponible pour le processeur.
- RAS# to CAS# : Row Adresse Strobe to Column Adress Latency, aussi nommé tRCD. C'est le nombre de clocks qui s'écoule entre le moment ou le contrôleur mémoire indique de sélectionner une ligne spécifique et d'y réaliser une opération de lecture / écriture.
- RAS# Precharge : Aussi nommé tRP. C'est le nombre de clocks qui s'écoule entre le moment où le contrôleur demande d'activer en avance (precharge) une ligne et où celle ci devient réellement activée.
- Active to Precharge delay, aussi nommé tRAS.C'est le nombre de clocks qui s'écoule entre le moment ou le contrôleur mémoire demande d'accéder a un changement de « bank », c'est à dire de barrette, et le moment où celle ci est disponible et que le contrôleur renvoie une demande de « precharge ».
Pour être complet, précisons que CAS# et RAS# correspondent à 2 des 240 pins d'une barrette de DDR 2 (respectivement la n°74 et la n°192), les autres servant, entre autres, à l'alimentation et au transfert de données. Il y a même des broches dédiées au SPD, sur lequel on va s'attarder quelques instants.
De l'usage du SPD et du EPP/XMP
Le SPD est une petit composant de mémoire morte (128 ou 256 octets de EEPROM) qui contient les informations relatives à la constitution de la barrette de RAM. On y trouve, par exemple, le type de technologie (DDRII), la capacité globale de la barrette, la largeur de bus, etc, qui sont utilisées par le BIOS de la carte mère pour faire fonctionner la barrette et la faire communiquer avec le reste du système.Le SPD contient aussi les informations concernant des "profils" de timings, associées au fréquence et aux tensions. Normalement, dans un monde parfait, les BIOS des cartes mères seraient capables de tirer automatiquement parti de ses informations pour configurer aux mieux l'accès à la RAM. Cependant, par convention, dans un SPD, il n'y a que les timings correspondant aux normes JEDEC (Joint Electron Device Engineering Council). Les normes étant toujours en retard par rapport à ce que savent faire les constructeurs, les timings JEDEC sont lents, mais ils garantissent le fonctionnement de la barrette de RAM, peu importe la manière dont le BIOS lit la SPD. Le SPD est donc, de base, utilisé a minima. Les barrettes haut de gamme fonctionnent avec timings plus agressifs que ce que les normes JEDEC prévoient.
Les spécifications du SPD précise qu'une zone de l'EEPROM est réservée aux constructeurs, pour y mettre ce qu'il veulent. C'est ainsi que les fabricants ont défini les Enhanced Performance Profiles, les EPP. Ces 2 "profils" sont exactement constitués des mêmes informations que les 2 profils JEDEC, mais ils sont décorellés des normes. Les constructeurs peuvent donc profiter de cette zone pour y inscrire les caractéristiques de timings exactes, telles qu'elles sont présentées commercialement. Malheureusement, seuls les chipsets Nvidia et leurs BIOS sont capables d'utiliser nativement cette technologie, Nvidia ayant participé à la définition de l'EPP. Pour les autres, il faudra rentrer les paramètres à la main dans le BIOS... Intel a répondu par les XMP, les Extreme Memory Profiles, qui font exactement la même chose sur les plateformes Intel.
Double Data Rate
Notre chère mémoire est de nos jours de la DDR pour Dual Data Rate. Comme son nom le laisse penser, avant, c'était de la SDR, de la Single Data Rate.Le schéma à droite permet de mieux comprendre l'intérêt de la DDR. On voit le FSB du système, représenté en tout premier sous le nom de Fréquence d'Horloge : CLOCK. Il a une belle forme "en créneaux". Il y a des fronts montants et des fronts descendants. Les fronts montants, c'est quand l'état passe de 0 à 1, et les fronts descendants, quand il passe de 1 à 0. Pour la SDR, seuls les fronts montants sont utilisés. Pour la DDR, au lieu d'avoir un coup de clock uniquement sur le front montant, il y en a aussi sur le front descendant, ce qui constitue une nette avancée en terme de performance. Pour avoir la même performance avec de la SDR, il faudrait doubler la fréquence ! Les commerciaux ont très bien compris, puisque bien souvent, quand on parle de RAM DDR, c'est le double de la fréquence de fonctionnement réelle qui est annoncée, une sorte d'équivalence SDR. Marketing quand tu nous tiens...
Bande passante
La bande passante de la RAM en dual channel est supérieure à toute les autres bandes passantes du système...
Un autre concept important quand on parle de la RAM est la "bande passante", mauvaise traduction de «bandwidth». Le véritable terme est "débit binaire", mais il n'est jamais employé. La bande passante s'exprime soit en capacité (Mo, Go, etc) par seconde (Go/s), soit en nombre d'entrées/sorties par seconde (Gio/s). Quand on parle d'une barrette de DDR3 PC-12800, 12800 c'est la bande passante. Elle est directement liée à la fréquence de fonctionnement (1600 MHz DDR, soit 800 Mhz réels) et à la taille du tampon de prélecture, qui est de 8 bits dans le cas de la DDR3 (4 bits pour la DDR2, et 1 bit pour la DDR). 8 bits x 1600 MHz = 12800 Mbits par seconde, ce qui équivaut à 1.6 Go/s de débit binaire maximum.C'est un chiffre qui est souvent mis en avant par les «marketeux», parce qu'il est gros, et aussi parce qu'il est n'a pas un impact si important qu'on voudrait le faire croire.
Imaginez un tuyau d'arrosage. Il a un certain débit d'eau. Plus on augmente son diamètre, et plus il peut fournir un gros débit d'eau, à condition d'avoir un robinet qui fournit assez d'eau ! Si vous n'avez qu'un litre d'eau à transvaser, le tuyau peut faire 4 mètres de diamètres, ca ne changera rien au fait que vous n'avez qu'un litre.
La bande passante, c'est exactement pareil : c'est le diamètre du tuyau. La bande passant peut être de 1.6 Go/s, si le reste du système n'est pas capable de gérer autant de données simultanément, ca ne sert strictement à rien. En fait, il faut juste s'assurer que la bande passante n'est pas un facteur limitant (ie : tuyau trop petit)
Donc il faut faire attention et ne pas céder aux sirènes. Il y a aussi la notion de Dual Channel (et récemment de Triple Channel sur les Core i7), où on va accéder à une paire (ou a une triplette) de barrettes de RAM, de manière simultanée, afin combiner la bande passante de 2 (3) barrettes. Cela augmente effectivement la bande passante disponible, mais si le système n'est pas capable de saturer la bande passante d'une seule barrette, il ne pourra en aucun cas saturer celle de 2 ou de 3 barrettes.
Conclusion
La RAM a bien évolué en 20 ans, des barrettes de 1 Mo de mémoire fonctionnant à 33 MHz, on est passés aux barrettes de 4 Go fonctionnant à plus de 1600 Mhz (DDR). Le fonctionnement général de la RAM est assez facile à comprendre et n'a pas fondamentalement changé avec les différentes technologies (FPM/EDO, puis SDR, et maintenant DDR1/2/3). Performance et économie d'énergie ont été les 2 principaux axes d'amélioration , et le seront encore pour un moment.Actuellement sur le marché, on trouve des barrettes pour tous les usages. L'aspect marketing est très présent sur ce genre de produit, il faut donc être vigilant pour ne pas dépenser de l'argent inutilement. Vérifiez bien que la fréquence de fonctionnement et les timings certifiés par le constructeur pourront être atteint par votre matériel. Prenez si possible de la RAM de marque, gage d'une plus grande longévité et d'une meilleure compatibilité avec les cartes mères. Certains fournisseurs de carte mères affichent d'ailleurs une liste de modules de RAM tamponnés comme étant compatibles, qu'il peut être intéressant de consulter même si elles ne sont jamais exhaustives.
Nous vous invitons par ailleurs à lire notre test des barrettes Crucial Ballistix Tracer 2x2 Go de DDR2.
Au fait, j'ai encore de la RDRAM dans le PC de chez mes parents. Un jour, un gars dans une boutique informatique m'a dit :
« Si on était resté sur le modèle RDRAM (au lieu de la SDRAM), on aurait aujourd'hui des mémoires encore meilleures. »
C'est vrai ça ?