Difficile de ne pas s'y perdre au moins un petit peu dans tout ça. Que l'on parle de fréquence FSB, de RAM DDR, DDR2 ou je ne sais quoi d'autre, de toute évidence rien n'est fait pour que tout cela paraisse simple et clair au commun des mortels.
A vrai dire même un "spécialiste" a vite fait de s'y perdre ou de s'y tromper. D'ailleurs ce n'est pas par hasard si j'ai eu l'idée de cet article. C'est tout simplement parce que moi-même j'ai un peu du mal, et vu que je suis sur le point de changer de matos je n'ai pas d'autre choix que de m'y (re)plonger.
En ce qui me concerne je m'étais arrêté à la DDR-SDRAM et aux processeurs comme l'AthlonXP ayant un FSB et un coefficient multiplicateur pour obtenir la fréquence de fonctionnement. A ce moment là il était convenu que RAM et FSB tournaient à la même fréquence, en-dehors du paramètre DDR, mais nous allons voir ça plus en détail.

Terminologie

Commençons par mettre au clair les différents termes utilisés ici.

RAM : Random Acces Memory - Mémoire à accès aléatoire. C'est la mémoire vive de votre PC, vive car volatile, si vous coupez le courant les données s'effacent. A différentier des mémoires type Flash ou ROM, qui conservent les données mais aux performances bien différentes.
SDRAM : Synchronous Dynamic Random Access Memory - Mémoire Dynamique Synchrone.
FSB : Front Side Bus - Bus de données Frontal. C'est le lien entre le CPU et le reste du système.
DDR : Double Data Rate - Double flux de transmission des données. Il s'agit d'un type de RAM ou de bus capable de transmettre 2 bits de données sur un coup d'horloge, plus de détail plus loin. La RAM DDR n'est rien d'autre qu'un type de SDRAM, on parle alors de DDR-SDRAM

Le point sur la RAM

Ayant remplacé la mémoire type EDO la SDRAM a pas mal évoluée ces dernières années. Avant de commencer, une petite parenthèse. Il faut savoir que la mémoire embarquée de nos cartes vidéos est aussi de la SDRAM, qu'elle soit DDR ou non (ça fait longtemps qu'elle l'est d'ailleurs). Parfois appelée GDDR (Graphic DDR) elle marche sur le même principe que celle qui fait office de mémoire centrale de nos PC. Si elle est un peu plus "avancées" et plus rapide c'est juste parce que les contraintes ne sont pas les mêmes.

A l'époque des premiers Pentium et Athlon la SDRAM tournait à 66Mhz, puis elle est passé à 100Mhz pour finir à 133Mhz. Globalement, la RAM tournait à la même vitesse que le FSB des processeurs, on parle alors de synchronisation. A cet époque ce n'était pas trop compliqué de s'en sortir, il n'y avait qu'une fréquence "possible" en terme d'indication, et cette fréquence correspondait au FSB du processeur.

Apparu d'abord sur les cartes vidéos (avec la mythique GeForce256 DDR), la DDR a fait son arrivée en temps que mémoire vive grâce aux Athlon dit Thunderbird. La conception des Athlon avec leur Bus EV6 fait que le FSB était déjà capable de travailler en mode DDR, c'est donc tout naturellement que la DDR-SDRAM s'est imposé sur cette plate-forme. A partir là tout a commencé à se compliquer, tout simplement parce que la transmission des données n'est plus la même que la fréquence d'horloge de la RAM et du FSB. Ainsi une DDR tournant à 100Mhz, transfert ses données à la fréquence de 200Mhz ... vous suivez ?
Pour l'instant c'est facile, on se contente de doubler le chiffre, mais ça provoque déjà la confusion chez certains car on parle de Bus fonctionnant tantôt à 200Mhz, tantôt à 100Mhz alors que c'est exactement la même chose. Puissance marketing oblige, on verra plus du 200Mhz sur les boites que du 100Mhz x 2. On a vite fait de confondre Fréquence d'horloge (100Mhz) et fréquence de transmission de données (200Mhz). Viendront ensuite les fréquences (par exemple sur les AthlonXP) de 133Mhz soit 266Mhz en DDR, puis 166Mhz (333), 200Mhz (400) etc.
On trouve aujourd'hui des RAM tournant à 1200Mhz! Cela a été rendu possible par l'arrivée de la DDR2, conçue pour monter plus haut en fréquence que la première DDR (au détriment des timings, c'est à dire des temps d'accès). Mais là où l'on a vite fait de se perdre c'est que le 1200Mhz n'est pas la fréquence d'horloge. La DDR2 double encore la fréquence des données par rapport à la DDR première du nom. Ainsi une DDR2 données pour 800Mhz a en fait une fréquence d'horloge de 200Mhz, simple vous avez dit ? Donc la fameuse DDR2 à 1200Mhz possède en réalité une fréquence de base de 300Mhz, et non pas 600Mhz comme pourrait le laisser penser son nom. Nous verrons la terminologie particulière de la DDR juste après.
Pour rentrer un peu plus dans les détails, avec la DDR2 on a en fait deux fréquences d'horloge. La fréquence de core (celle des chips mémoire) et la fréquence du Buffer I/O (Tampon Entrée/Sortie), qui elle est double de la fréquence des modules. Puis finalement le mode DDR qui permet de transmettre 2 bits à chaque cycle d'horloge, ce qui permet d'obtenir une fréquence de données quadruplée par rapport à la fréquence de base.

Petit schéma explicatif:

Pour simplifier dans la suite de cet article, quand nous parleront de fréquence d'horloge de la DDR2, il s'agira de celle du Buffer I/O, et non celle des modules de mémoires, sinon on ne s'en sortirai vraiment plus. Moi même j'ai du m'y reprendre à plusieurs fois pour écrire cet article tellement on peu s'y perdre.

Petit mot sur la RDRAM, promu par Intel pour son Pentium4, celle-ci a "vite" été abandonnée car trop cher compte tenue des performances pas forcément en rapport envers son tarif. Elle permettait 8 transferts par cycle (en gros, le quadruple de la DDR), et tournait (pour les plus répandues) à 400Mhz, 533Mhz ou 600Mhz.

On respire un bon coup, et on y retourne.

Pour couronner le tout on parle aussi du débit de données en octets par secondes. En fait les bus de données ont une certaines largeurs. On n'envoie pas 1 bit après l'autre, ils sont regroupés en octets qui transitent en parallèle sur le bus.
Ainsi les appellations commerciales type PCxxxx représentent le débit en Mo/s du module de RAM. La DDR est une mémoire 64bits, soit 8 octets. Ainsi un module de DDR tournant à 133Mhz va offrir un débit de données de 8x2x133=2100 Mo/s, le 2 étant le facteur DDR qui double les données par cycle d'horloge. 2100Mo/s, on a donc là un module de PC2100.
Un tableau des correspondances validé par le JEDEC (groupement chargé de gérer tout cela) est disponible sur la page wikipédia de la DDR, idem pour la DDR2.

La DDR2 tourne aussi sur 8 octets, donc une DDR2 tournant à 400Mhz offre un débit de données de 6.4Go/s! (Soit 2 x 8octets x 400Mhz) C'est donc de la PC6400, ou PC2-6400 histoire de différentier la DDR2.
Quand on achète une barette de DDR (1 ou 2) on est confronté à deux terminologies: La première indique le type de module de mémoire installé sur la barrette: DDR2-800 par exemple fait état de modules DDR2 ayant une fréquence d'horloge de 200Mhz (donc 2x200Mhz = 400Mhz pour la fréquence du Buffer I/O, multiplié par 2 à cause du mode DDR ça fait bien 800Mhz) . Montés sur une barette de mémoire, ces modules donneront de la PC2-6400 (800Mhz x 8 octets = 6400Mo/s).

Un récapitulatif s'impose

En gros les modules de mémoire sont représentés par leurs fréquences de fonctionnement, là où les barrettes sont nommés via le débit de données en octets par secondes. Vous achèterez donc de la PC2-xxxx contenant des modules de DDR2-yyy où xxx = débit en données et yyy = fréquence des données en Mhz (et non pas fréquence d'horloge).

Pour de la SDRAM, la fréquence des données est la même que la fréquence d'horloge. Là on nommait encore les barrettes avec leur fréquence. De la PC133 était donc bel et bien de la RAM ayant une fréquence d'horloge de 133Mhz, c'était beau, simple, évident, facile, le bon vieux temps ...

Pour la DDR-SDRAM, la fréquence des données est doublé par rapport à la fréquence d'horloge. Un module de DDR tournant à 100Mhz enverra ses données à la fréquence de 200Mhz, ce sera de la DDR-200. Les barrettes de DDR-SDRAM utilisent alors une dénomination basé sur le débits des données en octets par secondes. De par son bus de 8 octets de large, celle-ci transmet donc 8 x XXX Mhz où XXX est la fréquence des données, soit deux fois la fréquence d'horloge. Le résultat en Mo/s donnera le type de barette qui utilise la terminologie PC-xxxx, avec xxxx le débit en Mo/s de la barette de mémoire
Ainsi de la DDR-400 sera montée sur une barette de PC-3200 car 400Mhz x 8 octets = 3200Mo/s.

Si on a compris le principe pour la DDR, on applique le même pour la DDR2.
Interrogation écrite! Si j'achète un module de PC2-5300 quelle type de RAM ais-je ? Et quelle est la fréquence d'horloge de cette RAM ?

tic tac tic tac tic tac ....

J'espère pour vous que vous avez trouvé, sinon il va vous falloir vous retaper la lecture de tout ce qui précède... dommage pour vous!
Donc de la PC2-5300 est bien composée de module de DDR2-667. 667Mhz x 8 octets = 5336 Mo/s (ah ben oui, y'avait un piège... on fait dans l'arrondi). Et cette RAM tourne à une fréquence réelle de 333.33Mhz, j'en veux pour preuve: 333.333... x 2 = 666.666.... en arrondissant sauvagement ça fait bien 333 x 2 = 667Mhz. Et pour compléter le truc, cela nous donne des modules ayant une fréquence d'horloge de 166.666 Mhz.

Bon laissons la RAM un peu de coté (mais pas trop longtemps), et intéressons nous au cas du processeur avec son FSB.

FSB : tuyau d'alimentation du processeur.

Le FSB c'est le bus de données qui relie le CPU au chipset de la carte mère et donc à l'ensemble du système. C'est par lui que transitent absolument toutes les données que le processeur va devoir traiter, et c'est via ce bus que le CPU lit et écrit les données de la RAM. Le contrôleur mémoire étant alors situé dans le chipset, plus précisément dans ce qu'on appel le Northbridge (le Southbridge s'occupant en général des liaisons "périphériques" type USB, carte son intégré etc).
Cela est valable pour tous les processeurs, sauf les processeurs AMD basés sur l'architecture K8: l'Athlon64 et ses dérivés. Là le contrôleur mémoire est intégré au processeur. Le FSB existe toujours, il sera le lien interne entre ce contrôleur et la partie CPU à proprement parlé, mais la liaison entre processeur et système se fait via un autre Bus appelé Hypertransport.

La fréquence d'horloge du FSB va être déterminante pour la fréquence de notre CPU, car cette dernière n'est rien d'autre qu'une multiplication appliquée à la fréquence du FSB. Ainsi (pour faire simple) un CPU ayant une fréquence de 1Ghz et un FSB de 100Mhz utilise un coefficient multiplicateur de 10. On voit donc clairement le lien entre FSB et CPU.
On pourrait se dire qu'il est facile de faire du CPU qui tartine à tout va, il suffirait d'appliquer un super maxi-gros coefficient multiplicateur. Ainsi même avec un FSB de 100Mhz on pourrai avoir du CPU à 3Ghz en collant un coefficient de 30. Mais l'intérêt est proche du néant absolu. En effet le FSB servant à alimenter le CPU en données à traiter, à quoi bon faire tourner le CPU à une fréquence très élevé s'il doit passer son temps à attendre que les données arrivent. C'est pourquoi l'augmentation régulière des fréquences mais surtout des performances des CPU s'accompagne de l'augmentation des fréquences du FSB. Augmentation de la fréquence d'horloge mais aussi, et surtout, augmentation de la fréquence de données par des bus DDR ou QDR.

Après le DDR, le QDR.

Le Pentium4 aura vu l'avènement du bus Quad Pumped, là on ne se contente pas de doubler la transmission des données, on les quadruples! Ainsi un bus QDR tournant à 200 Mhz fera transiter ses données à la fréquence de 800Mhz. Là ça (re)commence à se (re)compliquer, car pour la même fréquence de base (mettons 200Mhz) on peut, selon la plate-forme avoir un bus où les données transitent à 400Mhz (DDR) ou à 800Mhz (QDR).
L'actuel fleuron de Intel, le Core 2 Duo reprend le bus Quad Pumped du Pentium4, les données circulent donc à une fréquence quadruple de la fréquence d'horloge.
La majeur partie des Core 2 Duo actuels ont une fréquence de Bus de 266Mhz soit 1067Mhz, un passage au bus de 333Mhz est déjà prévu pour le prochain semestre. Mais on trouve aussi des versions ayant un bus de 800Mhz, c'est à dire 4 x 200Mhz.

Donc jusqu'à présent les processeurs Intel tournent tous sur le principe simple du FSB et du coefficient multiplicateur. Il se dit qu'Intel aurait dans ses tablettes un processeur dont le contrôleur mémoire y est intégré : révolution à venir ? Que nenni, vu que ça existe depuis septembre 2003 en la présence de l'Athlon64 et de toutes ses évolutions et autres dérivés.
Effectivement, point de FSB unique avec les Athlon64. De fait ces processeurs utilisent un bus spécial nommé Hypertransport, permettant la liaison entre son contrôleur mémoire (donc intégré) et le reste du système. Dans ce cas les échanges de données entre CPU et système sont dépendant non seulement de la fréquence du FSB mais aussi du bus Hypertransport. En pratique, en dehors de toute volonté d'overclocking, l'hypertransport saura se faire petit et on en oubli vite son existence. Dans le cas de l'overclocking l'Hypertransport sera un facteur limitant, sauf à jouer sur son coefficient. Car la fréquence du HTT (son petit nom) est proportionnel à celle du FSB via un coefficient (encore un).

Au final le processeur dispose toujours d'un FSB ; même intégré le contrôleur mémoire doit bien alimenter le CPU avec ses données ; et d'un coefficient multiplicateur pour arriver a sa fréquence de fonctionnement.

Faire le lien entre FSB et RAM

Nous avons donc d'un coté de la RAM qui par sa diversité est capable de nous donner des maux de têtes parmi les plus carabinés, et de l'autre coté des processeurs avec leur FSB qui doivent communiquer avec cette même RAM. Alors au final : quel lien entre du FSB QDR et de la RAM DDR2 ? Qui fait quoi et comment ? Le Grand-père de Snoopy était-il un labrador ou un caniche ?

Synchro ...

L'idéal en théorie et dans la pratique c'est d'avoir une synchronisation entre fréquence du FSB et fréquence RAM. Maintenant reste à savoir qu'est-ce qu'on synchronise, la fréquence d'horloge ou la fréquence des données ?
Quand on parle de synchronisation sur un Intel Core 2 Duo (pour l'exemple) ça veut dire que la RAM tourne à la même fréquence que le FSB du processeur. Prenons un Core 2 Duo E6x00, son FSB est de 1066 Mhz. Étant donné le Bus QDR ça nous fait une fréquence d'horloge sur le FSB de 266Mhz (toujours en arrondissant vous l'aurez compris). Donc pour synchroniser tout ce monde avec la RAM qui est de la DDR2, il faut que celle-ci tourne aussi a cette fréquence, et on parle bien de la fréquence du Buffer I/O. La DDR2-533 semble toute indiquée pour satisfaire à ces conditions, vu que sa fréquence de Buffer I/O est de 266Mhz.
Et c'est bel et bien la mémoire qu'on va utiliser pour une configuration de base utilisant ce type de processeur (il suffit d'aller voir le site d'un constructeur/assembleur de PC).

Pas synchro ...

Si on synchronise c'est qu'il est possible de désynchroniser, et d'avoir une fréquence FSB différente de la fréquence RAM, en plus ou en moins. Avant de parler overclocking (surcadençage du processeur) on peut parfaitement faire tourner la RAM plus vite que le FSB. Pour cela on applique un ratio entre les deux fréquences, ce qui permet par exemple d'avoir une DDR2-667 dans un PC à base de core 2 Duo E6x00. Quid de l'intérêt de faire tourner la RAM plus vite ? Après tout on pourrait se dire que cela ne sert à rien vu que le CPU ne pourra de toutes façons pas lire et écrire à cette vitesse dans la RAM. Oui mais ... le CPU n'est pas le seul à accéder à la RAM, la carte vidéo, les périphériques de stockages (Disques durs, lecteurs DVD etc) sont capable depuis longtemps de bipasser le CPU pour lire ou écrire des données en RAM. Mais bon ne nous leurrons pas cela ne représente pas beaucoup à coté des besoins du CPU. Sauf peut-être dans le cas de la carte vidéo lors d'une application gourmande (Jeux vidéos etc), ou avec les modèles qui exploitent la mémoire centrale pour leurs propres besoins (extension de la mémoire embarquée).
Il est un autre facteur à prendre en compte dans les performances de la mémoire: les timings, ou temps d'accès. Sans entrer trop dans les détails, l'accès à une données en RAM n'est pas instantanée et suivant les performances de celle-ci il y aura des temps d'attentes plus ou moins long. En augmentant la fréquence de la RAM, on réduit l'influence des timings. Pour comprendre ce paramètre une petite analogie s'impose.
Imaginez que vous devez monter au sixième étage d'un immeuble, vous avez le choix entre l'ascenseur et l'escalier. En théorie avec l'ascenseur vous mettrez moins de temps pour monter à l'étage souhaité. Mais dans la pratique, si vous devez attendre 15min avant que l'ascenseur soit disponible, il est évident que l'escalier aurez été plus judicieux car vous n'avez aucun temps d'attente pour ce dernier... et surtout j'ose espérer qu'il ne vous faut pas plus de 15min pour monter six étages, sinon il faudra arrêter de fumer et reprendre sérieusement le sport!
Pour la RAM c'est pareil, le temps de montée au sixième étage représente la fréquence de fonctionnement (la vitesse de transmission des données), le temps d'attente correspond quant à lui aux timings (l'accès aux données à transmettre)

Rappelez vous l'arrivée du format AM2 pour les processeurs AMD. Ce socket était accompagné par l'usage de la DDR2 pour les machines à base de processeurs Athlon64, X2 et FX. Tous les tests l'ont démontré, cette plate-forme ne donnait le meilleur d'elle-même qu'avec les DDR2 les plus rapides (DDR2-800 à ce moment là). Pourtant les Athlon 64 ont tous un FSB de 200Mhz en mode DDR, c'est largement inférieur aux 400Mhz DDR de la DDR2-800. Ceci s'explique par le contrôleur mémoire intégré des Athlon64, très sensible aux timings, le fait que la DDR2 dispose de timing bien plus élevés que la DDR1 devait être compensé par une augmentation sensible de la fréquence.
Par ailleurs, avant l'arrivée du Core 2 Duo, l'usage de la DDR2 ne se justifiait vraiment qu'avec des modules rapides, toujours à cause de ces timings. Le Core 2 Duo a changé la donne car sa conception fait qu'il est moins sensible aux latences mémoires, on peut donc aisément profiter de ce processeur sans pour autant se ruiner sur la RAM (pour info: à fréquence de Buffer I/O égale la DDR2 est moins performante que la DDR1).

... qu'importe!

Il fut un temps où le fait de synchroniser était quasiment crucial pour les performances. Du temps des AthlonXP sur chipset nForce2 une désynchronisation était synonyme de pertes de performances assez sensibles. Avec un Core 2 Duo là aussi la donne a changé, de part sa moindre sensibilité à se sujet.

En pratique la différence de performance se juge en quelques pourcent en applications spécifiques, autant dire que pour une usage courant bien doué celui qui serait apte à sentir la différence. Bien sûr dans l'absolue il vaudra mieux éviter une désynchronisation vers le bas, tant qu'à faire. Le prix de la DDR2 "rapide" a tout de même sensiblement baissé, et vu que n'importe quelle carte mère digne de ce nom supporte sans broncher une DDR2-800 ce serait dommage de s'en priver, d'autant plus que ça laisse envisager des possibilités d'overclocking intéressantes. Surtout avec le Core 2 Duo qui fait figure de champion toutes catégories à ce petit jeu là. Kit à envisager l'overclocking se serait dommage de le faire en désynchronisant vers le bas (RAM plus lente), surtout qu'il faut que la carte mère le permette, car certaines championnes de l'overclocking basé sur certains chipset plus anciens ne peuvent que désynchroniser la RAM vers le haut. Un conseil : si vous comptez monter une machine à base de Core 2 Duo pour l'overclocker, choisissez bien le couple carte-mère - RAM en fonction de cela (et de votre budget bien sûr), histoire de ne pas limiter la montée en fréquence possible par un mauvais choix de composants (RAM trop lente, et carte-mère incapable de désynchroniser vers le bas).

Il reste de l'aspirine?

Bon, maintenant qu'on a fini la plaquette d'aspirines on va pouvoir s'arrêter là, histoire d'essayer d'assimiler tout ça tranquillement.
J'espère que tous ces calculs et ces séries de fréquences ne vous auront pas trop déroutés (moi, si...), surtout que j'ai volontairement insisté sur certains points avec une certaine récurrence.
Le but de cet article était d'essayer de clarifier le sujet, mais je me suis rendu compte au fur et à mesure que je l'écrivais que c'est très difficile d'avoir quelque chose d'évident en première lecture de part l'accumulation de nombres et de notions de fréquences différentes qui s'empilent. Au moins aurais-je essayé.
De toute façon ça aura permit à au moins une personne d'y comprendre quelque chose: Moi-même. Donc si certains éléments méritent d'être détaillés, n'hésitez pas, je devrais pouvoir m'en charger maintenant.