La RAM : Fonctionnement détaillé et revue de detail technique
Samuel D. - //2001-07-06
Sommaire:


Introduction

 

I ) Historique

SDRAM, DDR-SDRAM, Rambus,.... Les formats de memoire vives se suivent mais ne se ressemble pas. Vu le nombre et la diversité des differents types et formats de RAM, j'ai pensé qu'il serait profitable a beaucoup de personnes de proposer un recapitulatif general. Je vais donc proposer par le biais de cet article ( long ) une description tres precise ( on est sur x86-secret , non ? :) et technique de tout les differents types de memoires vives.
En effet, beaucoup d'aprioris regne encore sur les caracteristiques techniques des differentes sortes de RAM. Ainsi, saviez-vous que de la RAM EDO pouvait se trouver sur des barettes au formats 168 broches ( c'est a dire identique a la SDRAM classique ) ?
Afin de mieux comprendre l'univers impitoyable de la RAM, voyons d'abord un apercu du fonctionnement general de la mémoire :

Depuis la naissance de l'informatique moderne, La RAM a toujours été un composant primordial. En effet, comme le processeur ou le disque dur, la taille et la rapidité de la RAM servent a établir la capacité et la rapidité de traitement d'un micro-ordinateur. Ainsi on peut constater l'evolution exponentielle de la taille de la mémoire utilisée en moyenne dans les ordinateurs depuis 1985 dans le graphe ci-dessous :

 

II ) Fonctionnement

Apres ce bref apercu, revenons au fonctionnement de la mémoire. Les données stockées en RAM sont bien entendu de type binaire ( 0 ou 1...eh oui ! ). RAM signifie "Random Access Memory". Random puisque, comme les données contenues dans la mémoire sont organisées en matrice ( tableaux ), on peut acceder a chacune d'elle de facon aleatoire en obtenant toujours le meme temps de reponse.
Je m'explique, un chip de ram de, par exemple, 64 bits peut etre symbolisé comme une matrice de 8 bits sur 8. Ainsi, il suffit que le CPU envoie au controleur de mémoire la "ligne" (RAS) et la "colonne" (CAS) ou ce trouve la donnée qu'il demande pour que celui-ci la lui renvoie. Un petit schema pour mieux comprendre :

Ici, on voit bien la repartition en rangées et colonnes de la mémoire.

On voit aussi que chaque bit est constitué d'un transistor et d'un Condensateur. Ce condensateur sert principalement a maintenir l'etat du transitor mais bien entendu, celui ci fini par ce decharger avec le temps. C'est pour quoi le fonctionnement de la RAM inclus un cycle de "rafraichissement".
Ce Cycle de rafraichissement agit a interval regulier en lisant l'etat de chaque bit de données et en le réécrivant ensuite a l'identique pour maintenir son etat.

Apres cet apercu sur le fonctionnement de la mémoire, nous allons maintenant pouvoir expliquer exactement a quoi corresponde les acronymes CAS / RAS ...etc si important au yeux des amateurs d'overclocking :)

  • CAS (Column Adresse Strobe) Latency : C'est le temps minimum pour lire la premiere donnée dans un cycle. Ainsi une memoire fonctionnant en "3-2-2" mettra 3T pour lire la premiere donnée et 2T pour les suivantes
  • CAS To RAS (Raw Adresse Strobe) Latency : C'est le temps minimum entre l'acces a une colonne et l'acces a une ligne ( voir schema ci dessus )
  • RAS Precharge Time : C'est le temps minimum qui doit séparer deux signaux RAS

Nous verrons tout ca en details dans les descriptions des differents types de mémoires. Il est a noter que le BIOS d'une machine detecte automatiquement ces parametres grace au SPD ( Serial Presence Detect ) qui est en fait une minuscule EEPROM contenue dans la barette de mémoire et qui contient les parametres constructeurs a utiliser.

III ) Detections et Corrections d'erreurs

Les composants mémoires, comme tout les composants éléctroniques, peuvent etre sujet a probleme suite a une perturbation electro-magnetique qui peut entrainer une corruption des données. Actuellement, les composants mémoires ont atteints une fiabilité telle que les dispositifs de controle et de correction d'erreurs ne sont plus utilisés que dans des applications ou la moindre erreur peut avoir de grave consequences ( Serveurs Reseaux, applications de traitements scientifiques.... ).
Deux systemes distincts existe : le systeme dit de "parité" et le systeme ECC.

  • Parité

le systeme de "parité" consiste a rajouter un bit de controle afin de detecter si la valeur stockée en mémoire est fiable ou pas.

Exemple :
0 0 0 0 0 0 0 0 Parité 0 => OK
0 0 0 0 0 0 0 1 Parité 1 => OK
0 0 0 0 0 0 0 1 Parité 0 => Erreur !

Dans le cas ou une erreur survient, le microprocesseur est avertis par l'emission d'une NMI ( Non maskable interrupt ) qui provoque l'extinction de la machine sous Windows ou la fermeture de l'application et de l'espace mémoire qu'elle occupait sous Unix.

  • ECC (Error Control Correction )

L'ECC a depuis largement remplacé le systeme de parité car en plus de detecter l'erreur, la mémoire ECC est capable de corrriger cette erreur grace a un composant spécialisé qui applique un algorithme sur chaque bloque de données afin de verifier l'integrité des données et de corriger les eventuelles erreurs.
Inutile de preciser que ces barrettes coutent beaucoup plus cher que les barettes normales...
A noter que du a la presence de l'agorithme, les barettes ECC sont 2% a 3% moins rapide que les barettes normales. Neanmoins, ces barettes sont d'une fiabilité quasi absolue et sont facilement 50% plus chere que les mémoires standards...



Fermer