La mémoire vive ou l`histoire d`un rêve devenu réalité

Transcription

La mémoire vive ou l`histoire d`un rêve devenu réalité
La mémoire vive ou l’histoire d’un rêve devenant réalité.
A ses débuts il y a 15 ans le Personal Computer se satisfaisait d’une mémoire riquiqui de 64
Ko ce qui ne laissait pas beaucoup de place aux rêves. Le PC actuel dispose de 1000 fois plus
de mémoire vive.
Ceci est adapté à la lourdeur actuelle des applications (Microsoft Word requière 17 Mo).
1-Notions élémentaires : les différentes mémoires :
Les traitements effectués par le processeur s’effectuent en collaboration étroite avec la
mémoire. Le processeur lit les instructions à exécuter et les données à traiter et écrit ensuite
les données résultantes en mémoire vive. Cette mémoire est appelée RAM (Random Access
Memory). Le rôle de cette mémoire est de permettre des échanges très rapides avec le
processeur ; elle pressente en revanche l’inconvénient de perdre toutes ses données à
l’extinction du PC. Ainsi nécessairement il est impératif qu’existe une mémoire qui garde les
données alors que le PC est éteint…c’est la mémoire de masse (disque dur, DVD, CD-Rom)
mais c’est aussi la mémoire morte stockée sur un Eprom. Cette mémoire morte ou ROM
(Read Only Memory) stockée sur l’Eprom, alimenté en permanence par une pile ou un
accumulateur, contient le BIOS (Basic Input Ouput System). Ce programme permet au
processeur de communiquer avec les autres éléments de la configuration (souris, clavier,
mémoire, carte d’extension, écran, disques).
La fréquence de fonctionnement des processeurs étant ces dernières années largement
supérieure à celle de la mémoire vive, pour éviter que le processeur ne perde du temps à
attendre que la mémoire soit enfin disponible, l’ordinateur fait appel à de la mémoire cache.
C’est de la mémoire vive avec une fréquence de fonctionnement très élevée égale à celle du
processeur et qui si elle est intégrée au processeur est nommée cache L1 et si elle est à
distance sur la carte mère cache L2. Le cache L1 du Pentium II est de 32ko. Cette mémoire
L1 est aidée par la mémoire cache L2 intégrée sur la mini carte qui porte le processeur
(512Ko de L2 d’une fréquence de moitié de celle du processeur). Le Céleron quand à lui
supporte sur sa mini carte 128 Ko de mémoire L2 fonctionnant à la même fréquence que le
processeur comme c’est le cas pour le processeur Xéon mais qui lui dispose de 512Ko voir
2Mo). Pour les processeurs se servant du socket 7 comme l’AMD K6, la mémoire cache L2
est sur la carte mère (512ko ou 1Mo). L’importance de cette mémoire cache est bien attestée
par l’expérience malheureuse d’Intel avec le Céleron 300. Celui ci sort sur le marché début
1998, dépourvu de cache L2. Ses performances sont désastreuses et les intégrateurs ne s’y
trompent pas en boudant le produit. Deux mois plus tard Intel rectifie le tir en
commercialisant le Céleron 300a qui intègre 128Ko de cache L2 et gagne ainsi 50% de
performances supplémentaires.
Un dernier type de mémoire mérite d’être évoqué, la mémoire virtuelle. Quand la mémoire
vive ne suffit plus pour stocker temporairement le système et/ou les applications, le système
affecte une partie du disque dur comme unité de stockage temporaire ce qui étend
considérablement la mémoire disponible mais ralentit un peu le système car le temps d’accès
moyen du disque est de plusieurs milli-secondes alors que la mémoire vive à un temps d’accès
de l’ordre de quelques nanosecondes.
Après avoir détaillé les divers types de mémoire nous allons comme c’est l’objet de cet
article, développer nos connaissances concernant la mémoire vive.
2- Histoire de la mémoire vive :
J’ai la mémoire qui flanche je me souviens plus très bien…
Toute les mémoires actuelles des PC sont de type DRAM (Dynamic Random Access
Memory) car les charges (0 ou 1) qu’elles supportent doivent être rafraîchis très
régulièrement. Elles se presentent sous deux types physiques :
La SIMM 32 bits est la plus ancienne et disparaît des PC actuels. Ces barrettes furent
successivement dans le temps de la FPM (Fast Page Memory) dont le temps d’accès est de
l’ordre de 80 nanosecondes, puis vint l’EDO (Extended Data Out) à 60 nanosecondes. Ces
mémoires ne fonctionnent que par paire de même taille. En cas de panachage EDO et FPM,
l’ensemble fonctionnera à la vitesse des barrettes les plus lentes.
La DIMM 64 bits ( ou SDRAM pour Synchronous DRAM) remplace la SIMM en 1998.
Chaque barrette se distingue de la SIMM par sa plus grande longueur, ses deux encoches de
détrompage, sa possibilité de fonctionner isolement. Son temps d’accès est de 15
nanosecondes
Lorsqu’ apparaît en 1998 les Pentium 350, 400 et 450 Mhz et le chipset Intel BX, la mémoire
exigée est alors de type SDRAM PC 100 (soit 100 Mhz) ; elle a un temps d’accès de 10
nanosecondes voir pour la Samsung GH ou la LGS 7k de 8 au grand bonheur des
overclockers.
Plusieurs cartes supportent tant de la SIMM que de la DIMM cependant comme ces mémoires
ne fonctionnent pas avec la même tension il est hautement dangereux de faire coexister de la
mémoire de chaque type sur la même carte.
En conclusion : au début de l’année 1999 la DIMM semble cependant bien lente par rapport à
la fréquence des processeurs et quatre types de mémoires fonctionnant au delà de 200Mhz
apparaissent :
la DDR SDRAM (Double Data Rate SDRAM), l’ESDRAM (Enhanced SDRAM),SLDRAM
(SyncLinkDRAM), laDRDRAM(DirectRambusDRAM)
Ces solutions répondront mieux au cahier des charges du futur FSB (Front Side Bus) de 200
Mhz et plus. Comme le géant Intel semble privilégier la solution Rambus, nous développerons
ses propriétés.
3-La mémoire Rambus :
Cette solution développée par la société Rambus fonctionne à une fréquence de 600 voir 800
Mhz (contre 100 voir 125Mhz pour la SDRAM actuelle). Sa bande passante est de 600
mégabytes/sec et exige une tension de 3,3v. Cependant le design du bus 16bits (contre 64bits
pour la SDRAM) ne permet qu’un doublement de la vitesse. Par ailleurs les fabricants actuels
ne voient pas d’un bon œil cette solution propriétaire car ils seront obligés de payer des droits
à Rambus pour l’utiliser et se transformeront en simples fondeurs.
4- De combien de mémoire doit-on idéalement disposer ?
En utilisant Windows 95 ou Windows 98, l’obésité du système d’exploitation et
d’applications comme Word 97 ou Photoshop 5 contraignent à conseiller un minimum de 32
Mo. Jusqu’à 64 Mo on observe un gain de performance du système. Au delà de 64 Mo les
performances de Windows 9X se dégradent car ces systèmes exploitent imparfaitement la
mémoire au delà de 64 Mo, ceci étant bien attesté par les tests faits avec Norton Utilities. En
revanche on installera avec un certain intérêt 128Mo voir plus si l’on utilise souvent un
scanner et que l’on traite simultanément plusieurs fichiers graphiques. Avec Windows NT 64
Mo est un bon début, mais au delà la gestion de la mémoire est sans faille.
Comment reconnaître la mémoire
vive SDRAM PC100
Qui de nous ne s’est posé la question : Ai-je bien acheté la mémoire vive la plus performante
pour mon PC ?
La réponse serait simple si chaque constructeur vendait de la mémoire avec des spécifications
standardisées, comme Intel l’avait suggéré. Cet article vise à vous éclairer sur ce qu’indique
les nombres gravés sur les barrettes de SDRAM et rassemble les liens vers les sites Web des
constructeurs afin de faciliter vos recherches vers des mémoires plus performantes.
Les spécifications :
Cela aurait été merveilleux si les spécifications PC100 avaient inclus une façon de marquer
les numéros de pièces de sorte à éviter toutes confusions possibles mais ce n'est
malheureusement pas le cas. Les manufacturiers utilisent chacun leur propre méthode et c'est
là que la confusion prend toute son ampleur.
Nous avons assisté à toutes sortes de fantaisies dans cette industrie et pendant que certains
vendeurs prétendent offrir de la mémoire de 8ns, 7ms et même 6ns, ils n'offrent en réalité que
de la 10ns et au mieux de la 8ns. La source de toute cette confusion provient de l'encodage
utilisé pour décrire la rapidité des modules de mémoire. Des codes du genre 7j,
7K,G8,GL,7K, sont ajoutés à la fin du numéro inscrit sur les puces de mémoire pour indiquer
cette valeur mais ces codes ne signifient absolument rien pour la plupart des gens. Parmi les
spécifications de conformité PC100 d'Intel, deux de ces spécifications sont qu'un module de
mémoire PC100 doit avoir comme valeur minimale un Tck égal ou inférieur à 10ns et un Tac
égal ou inférieur à 6ns. Tck signifie la période d'horloge en nanosecondes et Tac signifie le
temps d'accès en ns à partir de l'horloge.
Tel que mentionné précédemment, les fabricants utilisent tous leur propre système de
marquage pour leurs numéros de pièces. La table ci-dessous, résume les préfixes utilisés par
les principaux manufacturiers de puce de mémoire.
Classification des fabricants et leur préfixes
Fujitsu MB
Hyundai HY
LG Semicon GM
Mitsubishi M5M
NEC uPd
Samsung KM
Hitachi PDC
IBM IBM
Micron MT
Mosel Vitelic V
Oki MSM
Siemens HYB
Toshiba TC
Pour tous les fabricants, il y a plusieurs chiffres qui suivent le préfixe et ces chiffres sont en
règle générale utilisés pour décrire l'architecture de la mémoire utilisée à l'intérieur de
chacune des puces de mémoire installées sur un module. Actuellement, il n'y a pas de normes
établies quant à la façon de décrire l'arrangement interne des puces de mémoire et chaque
fabricant utilise sa propre méthode.
La majeure partie du temps, les lettres et/ou chiffres suivants le trait d'union (-)sont
l'indication de la vitesse des puces installées sur le module.
Toutefois, en ce qui concerne l'étiquette obligatoirement apposée sur un module PC100, Intel
a défini une règle précise. Tout module de mémoire réputé être de la PC100 doit comporter au
moins les informations suivantes:
PCX-ABC-DEF :
X: La fréquence d'opération en Mhz pour laquelle le module est réputé travailler. ex: 66MHz,
100MHz, 125MHz)
A: Latence CAS minimale, en période d'horloge à laquelle le module opérera lorsqu'il est
utilisé à une fréquence d'horloge spécifiée par "X" ci-dessus. Les valeurs nominales sont '2' ou
'3', pour laquelle '2' réfère à un type de SDRAM plus rapide.
B: Valeur Trcd minimale (délais de RAS vers CAS), en période d'horloge à laquelle le
module opérera lorsqu'il sera utilisé à une fréquence d'horloge spécifiée par "X" ci-dessus.
Normalement '2'.
C : Valeur Trp minimale (Précharge RAS), en période d'horloge à laquelle le module opérera
lorsqu'il sera utilisé à une fréquence d'horloge spécifiée par "X"ci-dessus. Normalement '2'.
D: Valeur Tac minimale (Access from Clock), en ns, à laquelle le module opérera lorsqu'il
sera utilisé à une fréquence d'horloge spécifiée par "X"ci-dessus. Normalement 6 ou 6.5ns
même si 7ns est aussi acceptable dans un système ou il n'y a qu'une ou deux banques de
mémoire. 6ns est la valeur optimale pour tous les systèmes. Ce champ peut comporter un ou
deux chiffres.
E: Numéro de révision SPD (Serial Presence Detect Revision number). Ceci fait référence au
fait que tout module de mémoire SDRAM comporte aussi un EEPROM (ou du moins
devrais!) qui inclus plusieurs informations opérationnelles et d'architecture concernant le
module. Cette information est normalisée mais peut varier avec le temps. Cette position
confirme que le module possède des données SPD conforme à la norme Intel 'Revision #1.2'.
Ce champ peut comporter un ou deux chiffres.
F: Ce champ est réservé, normalement il comportera la valeur '0'
En conséquence, le module suivant serait défini comme étant: PC100-322-620
Prévu pour utilisation à 100MHz
Latence CAS = 3
tRCD = 2
tRP = 2
tAC = 6ns
SPD Rev. = 1.2
Latence CAS :
Parmi les choses les plus importantes à considérer lors du choix d'un module de mémoire, il y
a sa fréquence d'opération et sa latence CAS. La période de synchronisation "Timing speed"
d'un module fait référence à la période de temps nécessaire à l'accomplissement d'une
opération complète à une fréquence donnée. Cette valeur se calcule par la formule T=1/F ou T
signifie le temps, et F signifie la fréquence. Par exemple un module de 8ns aura à une
fréquence d'opération de 125Mhz ou ns signifie nanoseconde. Une nanoseconde représente 1
millième d'un millionième de seconde. En fait, exprimé la vitesse d'un module de mémoire
par sa période de synchronisation est équivalent à l'exprimer par sa fréquence d'opération en
terme Mhz. En utilisant cette formule, nous pouvons donc calculer qu'un module de mémoire
de 7ns possède en fait une fréquence d'opération de 142.857Mhz alors qu'un module de 6ns en
est un de 166.666Mhz.Les puces de mémoire sont accédé par salve d'accès de colonne
"Column Access Strobe" (CAS) et par salve d'accès de rangées "Row Access Strobe" (RAS)
étant donné que les cellules de mémoire sont regroupées en colonnes et en rangées. La latence
CAS est un paramètre qui est utilisé pour définir la longueur du délai entre le moment pendant
lequel une commande de lecture est émise sur le coté montant de l'horloge et le moment entre
lequel les données de la commande de lecture sont disponibles à la sortie. La latence CAS est
exprimée en cycles d'horloge et peut avoir une valeur de 2 ou de 3 cycles d'horloge. La valeur
de la latence CAS est déterminée par le grade de vitesse de la puce et la fréquence d'horloge
utilisée par l'application. La latence CAS a un impact majeur sur la vitesse de travail globale.
Avec une puce de mémoire ayant un CAS de 2, nous avons besoins de 2 cycles d'horloge
avant que la première salve d'accès de colonne ne soit accompli alors qu'avec un CAS de 3
nous aurons besoins de 3 cycles d'horloge pour accomplir la même opération. Donc, un
module comportant des puces pouvant travailler avec un CAS de 2 à la fréquence de travail
désiré sera beaucoup plus rapide que si elle ne pouvait le faire qu'avec un CAS de 3.
Plusieurs modules de mémoire récent incluent maintenant la fonctions "SPD"(Serial Presence
Detect), par laquelle nul n'est besoin de sélectionner la latence CAS dans votre panneau de
configuration du BIOS. En effet, la fonction "SPD" permet grâce à l'intervention du Chipset
de déterminer automatiquement la meilleure valeur possible de la latence CAS selon ce que
peut supporter un module de mémoire donné selon une fréquence d'opération donnée en
accord avec sa capacité à le faire. Par exemple, si une personne utilise un module de mémoire
SDRAM de 125Mhz intégrant la fonction "SPD" et que cette personne choisis d'utiliser une
fréquence de bus de 112Mhz, à ce moment, le Chipset ajusterait en conséquence la latence
CAS en accord avec ce que peut supporter le module en question pour cette fréquence de
travail. Donc, assurez-vous de bien choisir vos modules de sorte à ce qu'il possède la fonction
"SPD" et vous n'aurez plus jamais à vous soucier de devoir sélectionner manuellement
cettevaleur dans votre BIOS. Bien entendus, le Chipset de votre carte maîtresse doit aussi
pouvoir supporter cette fonction ce qui est normalement le cas des Chipset Intel 440BX et
plus récent.
La plus haute fréquence utilisable :
Comment faire pour savoir quelle est la plus haute fréquence utilisable d'un module de
mémoire dites-vous? Une bonne règle de base consiste à utiliser vos modules de mémoire à
un ordre de magnitude de fréquence du bus de mémoire en dessous de la fréquence
d'opération maximale spécifiée pour le module en question. Nous appellerons cette fréquence
la "Fréquence de Travail Garantie" ou FTG. Par exemple, en supposant que nous avons un
module de 8ns, donc, sa fréquence d'opération maximale serait de 125Mhz, ainsi, si nous
voulions utiliser ce module à une fréquence de bus mémoire de 124Mhz, nous serions situées
beaucoup trop près de sa fréquence d'opération maximale. Ainsi, en choisissant 112Mhz nous
obtiendrions une marge de sécurité optimale nous assurant d'une stabilité accrue. Donc, en
utilisant toujours des modules dont la fréquence d'opération maximale est supérieure à au
moins un ordre de magnitude de fréquence du bus mémoire vous vous assurerez d'un système
beaucoup plus stable. La table suivante résume la FTG de tous les modules de mémoire
disponibles actuellement.
Fréquence Max. d'opération vs FTG
Période de synchro. Fréquence Max. d'opération FTG
15ns 66Mhz 60Mhz
12ns 83Mhz 75Mhz
10ns 100Mhz 83Mhz
8ns 125Mhz 112Mhz
7ns 143Mhz 133Mhz
comme vous pouvez le voir par les données ci-dessus, si vous souhaitez Overclocker votre
système et utiliser une fréquence de bus de 125Mhz ou de 133Mhz, vous devrez utiliser un
module de 7ns donc ayant une fréquence d'opération de 143Mhz pour vous assurer d'une
opération stable comportant une bonne marge de sécurité.
Gardez à l'esprit que les informations ci-dessus sont indiquées seulement à titre indicatif et ne
signifient en aucun cas que les modules de mémoire soient incapables d'opérer à leur
fréquence maximale. En fait, les modules de mémoire sont parfaitement capables d'êtres
utilisés à leur fréquence d'opération maximale mais dans ce cas vous n'avez aucune marge de
sécurité donc il est plus probable que dans ces conditions des instabilités occasionnelles se
produisent. Donc, les valeurs FTG qui sont suggérés plus haut , ne le sont que pour vous
permettre de mettre toutes les chances de votre coté en bâtissant un système plus équilibré
pourvu de bonnes marges de sécurité. J’espère que cet ensemble d’éclaircissements
techniques vous aidera à acheter de la mémoire SDRAM de bonne qualité car la puissance de
votre système en dépend ainsi que tout éventuel overclocking.