Comparatif : DDR400 ECC Registered | ||||||
By Samuel D. - 22/12/2003 | ||||||
ECC Registered : Les détails
Comme nous l'avions déjà dit dans un article précédent, l'Athlon 64 FX-51 n'est en fait ni plus ni moins qu'un Opteron 148 remarqué. Fonctionnant à 2.2 Ghz, la vitrine technologique posséde tout de même comme principal avantage face au Pentium 4 EE d'Intel d'être disponible sans trop de difficulté malgré son prix pharaonique. Athlon 64 FX comme Opteron ne fonctionne qu'avec de la mémoire ECC Registered. Inutile d'essayer un autre type de mémoire (Standard, ECC seule, Registered seule), elle ne permettra meme pas le boot du PC. Nous allons donc voir ici qu'est ce que le côté "Registered" d'un module avant de s'interesser au côté "ECC".
Avant de commencer ces explications, il est important de noter que les termes "Registered" et "ECC" n'ont strictement aucun rapport entre eux. Ainsi, si "ECC" est plutot une fonctionnalité supplémentaire qui peut être rajoutée sur n'importe quel type de module, "Registered" indique une architecture totalement différente dans le fonctionnement du module. Avant de se lancer dans les explications, voyons tout de suite les différences physiques qui existent entre un module standard (Unregistered / Unbuffered) et un module de type "Registered" :
Comme on le voit, la différence principale entre un module standard et un module Registered est la présente de registres (comme son nom l'indique) ainsi que d'un PLL. Un registre est une sorte de buffer chargé d'effectuer une translation d'adresse. Le PLL sert quant à lui à générer un signal d'horloge. Avant de voir le pourquoi, voyons d'abord le comment. Dans un système fonctionnant de façon classique, c'est
le chipset qui gère en direct l'intégralité des puces
mémoires qui sont sur les modules. Les commandes sont envoyées
directement du Northbridge aux puces mémoires et gérées
telles qu'elles. Dans un systèmes qui emploie de la mémoire
"Registered", le schéma est un peu plus complexe. Les
informations partent normalement du northbridge et arrive dans les registres
des barrettes de mémoires. Ces registres se chargent ensuite de
ré-adresser les signaux d'adresses et de commandes vers les chips
mémoires. Chaque banks physiquement présent sur le module
nécessite un registre dédiés. C'est pour cela qu'on
en trouve deux sur une grande partie des modules "Registered"
et jusqu'a quatre pour les modules stackés. Le PLL quant à
lui sert à re-générer un signal d'horloge synchrone
entre le signal Northbridge <-> Registre et Registre <-> Chip
mémoire. Voyons ici un schéma que nous avons dessiné :
Ceci est le schéma classique d'un module classique. Le Northbridge est en communication directe avec tout les chips de mémoires. Nous avons ici affaire à un module double face classique composé de 8 chips sur chaque face. Voyons maintenant un module Registered :
Comme on le voit, le Northbridge ne communique plus ici directement avec les chips mémoires, mais avec les registres pour les signaux de commande et avec le PLL pour le signal d'horloge. Ces deux composants s'occupent ensuite de l'accès aux modules de DRAM. Voici donc le fonctionnement d'un module Registered. Dans le cas d'un Opteron ou d'un Athlon 64 FX, le processeur ne pourra jamais fonctionner avec de la mémoire standard puisque son contrôleur mémoire intégré est incapable de gérer les chips mémoires directement. Il n'est prévu que pour fonctionner avec des registres et des PLL. Mais quel est donc l'intérêt de ce type de fonctionnement ? En fait, il est double. Premièrement, le northbridge ne peut gérer qu'un nombre limité de chips mémoires (64 sur la quasi-totalité des chipsets grands publics actuels, 32 sur les anciens i845), c'est a dire quatre modules double face (2 pour l'i845). Cette limitation existe a cause des contraintes électriques qui existent a ce niveau. Le load de plus de 64 chips de DRAM serait beaucoup trop important pour le northbridge et la fiabilité des échanges s'en ressentirait. Par contre, le load électriques de modules Registered est bien plus faible. Prenons le cas de quatre modules comportant chacune 18 chips (2x8 + 2 ECC). Le Northbridge devra gérer 72 chips simultanément. Par contre, avec 4 modules Registered, seul huit registres et quatre PLL seront nécessaire d'être adressés. Beaucoup plus simples pour le chipset qui peut donc gérer non seulement un bien plus grand nombre de barrettes mémoires, mais aussi un nombre de chips par barrette bien plus élevé, et donc des modules de plus forte capacité. Vous l'aurez compris, l'intérêt des modules "Registered"
est de pouvoir gérer plus de barrettes et/ou des barrettes de plus
grande capacités (un module stackés peut employer 36 chips
de DRAM pour une capacité de 2 Go) ainsi que de fiabiliser les
échanges avec le northbridge grâce a sa fonction de "répéteur"
des signaux électriques. La contrepartie est la perte d'un cycle
d'horloge en latence, à cause de la translation effectuée
par le registre. Une perte de performance d'environ 2-3%.
Aprés la partie registre qui devrait maintenant être plus claire, voyons la partie ECC. Le fonctionnement de l'ECC est assez simple a comprendre. Un module classique de DDR fonctionne sur 64 bits. Le but est ici de rajouter 8 bits qui serviront de checksum aux 64 bits précédents. On obtient donc un fonctionnement sur 72 bits au lieu de 64 bits, mais la possibilité de detecter et meme de corriger à la volée les erreurs qui peuvent survenir. Physiquement parlant, on obtient l'ECC en ajoutant un chips mémoire. Ainsi, un module non-ECC contient généralement 8 chips par face alors qu'un module ECC en contiendra 9 :
De même, si le fonctionnement sur un seul canal se fait en 72 bits, le fonctionnement en double canal comme pour l'i875P ou l'Athlon 64-FX se fera sur 144 bits (2*64 bits + 2*8 bits pour l'ECC). Voici la raison pour laquelle l'Opteron et l'Athlon 64-FX ne fonctionne qu'avec de la mémoire ECC : Son bus de donnée est de 72 ou 144 bits et pas de 64 bits ou 128 bits. Concernant le fonctionnement de l'ECC, c'est également assez simple et proche du RAID 5 qu'on connaît pour les disques durs. Fortement dérivé du concept de parité qui a existé longtemps, l'ECC est un checksum sur 8 bits qui permet une détection et une correction des erreurs. Selon plusieurs études scientifiques, un PC allumé 24H/24 rencontre entre une erreur par mois et deux erreurs par an au niveau de la mémoire. Certes, c'est très peu, dans le cas d'un serveur critique fonctionnant 365j/an, ceci peut être important. La technologie ECC classique peut détecter et corriger des erreurs affectant un seul bit par bank de 64 bits. Il peut également détecter une erreur affectant deux bits, mais ne pourra pas la corriger. C'est pour cette raison qu'un nouveau type de checksum se superposant à l'ECC existe depuis quelques années : le ChipKill. Exploitant un meilleur algorithme que l'ECC classique, il est capable de corriger des erreurs affectant plusieurs bits. Le chipkill fonctionne en fait par 4 blocs de 16 bits entrelacés. Un petit schéma pour mieux comprendre la différence entre ECC et Chipkill :
|
||||||
Fermer |