Il est possible de construire un oscillateur "On-chip", comprenez "sur la puce" en arrangeant les transistors dans certaines configurations. Mais pour un fabricant de processeur, il est simplement impensable de consacrer une partie de la logique du CPU à un oscillateur qui envoie une impulsion d'horloge à une fréquence fixe. Et ceci pour deux raisons : Tout d'abord, les oscillateurs, réalisés à partir des transistors sur un processeur, sont souvent sensibles aux fluctuations de la température et de tension. Or tout le monde sait que la température d'un CPU fluctue toujours un peu. Ces variations de la température visseraient vers le haut la fréquence du CPU ; synchroniser la puce avec ses propres transistors signifierait que les variations de la chaleur du CPU engendreraient des variations d'horloge (qui à leurs tours engendreraient des variations de chaleur qui,..). La deuxième raison pour ne pas mettre une source d'horloge sur le CPU est que le fabricant veut pouvoir séparer les puces de la même plaque pour les vendre à différentes vitesses. Il veut vendre les puces qui viennent de la meilleure partie du moule aux fréquences d'horloge plus élevées et à des prix plus élevés. Si la fréquence de fonctionnement de l'horloge de noyau était câblée, il serait alors dans la "m ." ,euh pardon dans le pétrin, pour pousser le CPU au dessus de sa fréquence câblée. À la lumière de ces deux problèmes, la meilleure chose à faire est d'enlever les fonctions de génération dhorloge du CPU et de les mettre sur la carte mère, où vous pouvez employer un gentil quartz très fiable pour produire vos impulsions d'horloge.
Tout ce que vous avez à faire, cest mettre cette impulsion d'horloge provenant de la carte mère dans le CPU et le tour est joué. Mais il y a alors un problème de taille, car si vous introduisez directement l'horloge du bus dans le CPU, vous serez forcé alors de faire fonctionner le CPU à la fréquence du bus système. Alors que cela ne posait pas de problème du temps des 486, actuellement une telle chose est impensable car toutes les puces opèrent beaucoup plus rapidement que le bus système. Pour venir à bout de ce problème, il faut utiliser un circuit, présent du simple téléviseur aux très sophistiqués systèmes de lancement de missile: le Phase-Locked Loop (PLL). Le PLL est un circuit qui tire profit du principe du feedback négatif. Il possède deux composants principaux : un comparateur de fréquence et un oscillateur tension-commandé (voltage-controlled oscillator ou VCO). Souvenez vous quand je vous ai parlé dun oscillateur à partir des transistors? Eh bien, c'est le VCO. Le VCO est un circuit qui prend une tension en entrée et émet une impulsion dont la fréquence est basée sur la valeur de la tension d'entrée. Lorsque vous changez la valeur de la tension d'entrée, l'impulsion de sortie devient plus rapide ou plus lente. Le principe du comparateur de fréquence est identique au VCO, mais inversé. Il prend deux impulsions en tant quentrées, et émet une tension basée sur la différence entre les fréquences de ces deux impulsions. Ainsi la tension de sortie du comparateur de fréquence change avec la différence des fréquences de ses entrées. Pour réaliser le PLL, vous utilisez l'horloge externe du bus en tant qu'une entrée dans le comparateur de fréquence, et la sortie du VCO comme autre entrée. Vous prenez alors la tension de sortie du comparateur de fréquence et vous l'employez pour contrôler le VCO. Le VCO envoie une partie de son impulsion de sortie de nouveau dans le comparateur de fréquence, pour être comparé à l'horloge externe de bus. Ce feedback verrouille la sortie du VCO à la fréquence exacte de l'horloge de bus. Si le VCO commence à dériver (probablement en raison des variations thermiques), alors le comparateur de fréquence détecte l'anomalie et la corrige en changeant la tension dentrée du VCO. Vous savez maintenant comment lhorloge du bus système parvient jusquau cur du CPU mais il reste à déterminer quel multiplicateur appliqué à cette impulsion (ou plutôt quel diviseur).
|
|