Que fait réellement un processeur, des milliards de fois par seconde ?
Une puce à 4 GHz répète la même routine en trois étapes quatre milliards de fois par seconde, et cette routine est tout le secret de ce qu'un ordinateur « fait ».
▶ Lancer l'histoireUn processeur ne réfléchit pas vraiment. Il répète une petite routine, encore et encore, depuis son démarrage jusqu'à son arrêt : chercher une instruction, la décoder, l'exécuter. Cette boucle en trois étapes s'appelle le cycle d'instruction, et c'est, au fond, ce qu'un ordinateur fait vraiment.
Chercher veut dire que le processeur regarde un registre appelé compteur de programme, qui contient l'adresse de la prochaine instruction, et va la chercher en mémoire. Décoder veut dire que l'unité de contrôle détermine ce que demande l'instruction et prépare les bons composants, comme l'unité arithmétique et logique construite à partir d'additionneurs. Exécuter veut dire que ces composants réalisent vraiment l'action : une addition se produit, une valeur se déplace, un branchement est pris. Seule cette dernière étape t'est utile ; le reste n'est que la préparation qui la rend possible.
Étape 1: Recherche
Récupérer la prochaine instruction à l'adresse du compteur de programme
Étape 2: Décodage
L'unité de contrôle détermine ce dont l'instruction a besoin
Étape 3: Exécution
L'ALU ou une autre unité la réalise vraiment
Étape 4: Répétition
Le compteur de programme avance, et le cycle recommence
Une horloge cadence tout ça, battant à une fréquence mesurée en gigahertz. Après chaque battement, les signaux internes du processeur ont besoin d'un instant pour se stabiliser avant le battement suivant, sinon le résultat est faux. Dans les processeurs simples, les trois étapes de chaque instruction se déroulent entièrement avant que la suivante ne commence. Les processeurs modernes les font plutôt se chevaucher dans un pipeline, en commençant à chercher l'instruction suivante pendant que l'instruction en cours est encore décodée ou exécutée, si bien qu'une instruction peut se terminer à presque chaque battement d'horloge au lieu de tous les trois.
Ce chevauchement n'est pas gratuit. Si un programme saute soudainement ailleurs, comme à un test conditionnel, le pipeline doit parfois jeter les instructions qu'il avait déjà commencé à traiter et recommencer : c'est un blocage. Certains processeurs poussent leurs pipelines à dix, voire vingt étages pour gratter de la vitesse, acceptant davantage de ces blocages en échange. Pour en éviter la plupart, les processeurs parient : un prédicteur de branchement mise sur la direction du saut et s'engage sur ce chemin à l'avance. Pari gagnant, aucun temps perdu. Pari perdu, le travail est jeté.
Quiz
0/3
Récap
Recherche récupère l'instruction, décodage comprend ce qu'elle veut dire, exécution la fait vraiment : seule l'exécution t'est utile, et le pipelining fait chevaucher ces étapes entre instructions, au prix de blocages occasionnels.
Le fait surprenant · Un processeur à 4 GHz exécute ce cycle en trois étapes environ quatre milliards de fois par seconde, et les puces modernes chevauchent de nombreuses instructions à la fois dans un pipeline pour tenir ce rythme.
Liens
- 🗄️ Pourquoi les programmes vivent-ils dans la même mémoire que les données qu'ils traitent ?
- 📈 Pourquoi la puissance des puces a-t-elle doublé tous les deux ans, et jusqu'à quand ?
- ➕ Comment une poignée d'interrupteurs peut-elle additionner deux nombres ?
- 🗃️ Pourquoi un processeur garde-t-il une toute petite mémoire juste à côté de lui ?
- 👻 Comment l'habitude d'un processeur de deviner la suite peut-elle divulguer tes secrets ?
Sources (4)
Pas de source, pas d'affirmation. Chacun des 18 faits de cette leçon renvoie à au moins une de ces sources.