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.