edubun
Français

Ce que fait un processeur

Un processeur à 3 GHz bat 3 milliards de fois par seconde, un battement tous les tiers de nanoseconde.

Imagine un cours d'informatique. (C'est une scène inventée.) Seize cases numérotées sont dessinées au tableau, chacune contenant huit bits. Trois élèves jouent le processeur. L'un tient une carte marquée PC, un autre une carte IR, le troisième une carte ACC. La carte PC indique 0. L'élève IR va à la case 0 et recopie son contenu, 0001 1110, et l'élève PC change sa carte en 1. La classe cherche les quatre premiers bits dans un tableau affiché au mur : 0001 veut dire LOAD. Les quatre derniers, 1110, valent 14. L'élève ACC va donc à la case 14 et recopie le 7 qu'elle y trouve. Puis tout recommence à partir de la case 1.

La case 1 indique ADD 15, donc ACC devient 7 + 5 = 12. La case 2 indique STORE 13, et l'élève ACC écrit 12 dans la case 13. La case 3 indique HALT, et tout le monde se rassoit. Douze actions en tout. Aucun des trois n'a eu besoin de savoir que le programme « additionne 7 et 5 ». Chacun a suivi une petite règle. Les cases sont la mémoire, les cartes sont des registres et le tableau au mur est le décodeur. Un vrai processeur fonctionne de la même façon, des milliards de fois par seconde, et personne à l'intérieur ne comprend le programme non plus.

La même petite boucle, des milliards de fois par seconde

Les portes savent additionner, comparer et choisir, mais il faut quelque chose pour leur dire quoi faire, dans quel ordre et avec quels nombres. C'est le rôle de l'unité centrale de traitement, le processeur (CPU). Il répète une petite boucle. Le compteur de programme (PC) contient l'adresse de la prochaine instruction. Recherche : le processeur lit la case désignée par le PC, la place dans le registre d'instruction (IR) et avance le PC d'une unité. Décodage : des circuits de commande examinent les bits du code d'opération et préparent les bons chemins, par exemple en branchant l'additionneur pour ADD. Exécution : le travail est fait. Un nombre est chargé, additionné ou stocké, ou bien le PC est modifié pour que le programme saute ailleurs. Puis la boucle recommence. Une instruction, JZ, ne saute que si l'accumulateur vaut zéro, et ce seul type de saut permet à un programme de décider et de répéter.

Chargement

Fais glisser pour tourner. Fais défiler ou pince pour zoomer.

Le programme des cases 0 à 3 additionne 7 (case 14) et 5 (case 15) et stocke 12 dans la case 13. Appuie sur Avancer pour progresser d'une phase à la fois et observe PC, IR et ACC. Quatre instructions prennent douze phases. Choisis ensuite 4 × 3, qui multiplie en ajoutant 4 trois fois grâce à une boucle, ou Compte à rebours.

La scène exécute le programme que la classe a joué. Appuie sur Avancer et PC, IR et ACC changent exactement comme les cartes : LOAD 14, puis ADD 15, STORE 13 et HALT, quatre instructions de trois phases chacune, douze phases en tout. Le programme de multiplication utilise les mêmes quelques instructions, mais ses JZ et JUMP renvoient le PC à 0 deux fois avant que le compteur de la case 15 arrive à zéro : il exécute donc 24 instructions en 72 phases. Six fois plus d'instructions que l'addition.

Le programme est dans la même mémoire que les nombres

Au tableau, les instructions et les nombres 7 et 5 se trouvaient dans la même rangée de cases. Ce n'est pas un hasard. En juin 1945, John von Neumann rédige le « First Draft of a Report on the EDVAC », qui décrit un ordinateur gardant ses instructions dans la même mémoire que ses données, et presque tous les ordinateurs depuis fonctionnent ainsi. Une instruction n'est qu'un nombre dont les bits sont découpés en champs. Dans cet ordinateur jouet, chaque case contient 8 bits. Les quatre premiers disent quoi faire, le code d'opération, et les quatre derniers quelle case utiliser, l'adresse. 0001 correspond à LOAD, donc 0001 1110 veut dire « LOAD 14 » : copier le nombre de la case 14 dans l'accumulateur, le registre de travail du processeur.

À quelle vitesse tourne la boucle

Les étapes suivent le rythme d'un signal d'horloge, une tension qui s'allume et s'éteint à cadence régulière. Une horloge à 3 GHz bat 3 000 000 000 de fois par seconde : un battement dure donc 1 ÷ 3 000 000 000 seconde, environ 0.333 nanoseconde. La lumière ne parcourt qu'environ 10 centimètres pendant ce temps. À une phase par battement, cela suffit pour exécuter le programme 7 + 5 du jouet 250 millions de fois par seconde. Les vrais processeurs ne terminent pas une instruction entière par battement de la manière simple de notre jouet. Ils font se chevaucher les phases de plusieurs instructions comme sur une chaîne de montage, ce qu'on appelle le pipeline, et les puces actuelles contiennent côte à côte plusieurs processeurs complets, appelés cœurs. Le jouet n'a rien de tout cela, et c'est justement pour cela qu'on peut le suivre à la main.

Code d'opérationNomEffet
0000HALTArrêt
0001LOAD aACC = case a
0010ADD aACC = ACC + case a
0011SUB aACC = ACC − case a
0100STORE acase a = ACC
0101JUMP aPC = a
0110JZ asi ACC = 0, PC = a
Erreurs fréquentes
  • « Le PC compte combien d'instructions ont été exécutées. » Le PC contient l'adresse de la prochaine instruction. Dans le programme 4 × 3, il est renvoyé à 0 deux fois, alors que le nombre d'instructions terminées continue de grimper jusqu'à 24.
  • « Le processeur lit un programme comme nous le lisons. » Il lit 8 bits, les sépare en code d'opération et adresse, et suit un câblage fixe pour ce code. Comme les élèves avec leurs cartes, il ne sait jamais que le programme additionne 7 et 5.
  • « Plus le nombre de GHz est élevé, plus l'ordinateur est rapide. » L'horloge fixe la fréquence à laquelle une étape peut se produire, pas la quantité de travail faite à chaque battement. Les vraies puces font se chevaucher les phases des instructions et ont plusieurs cœurs : deux puces à la même fréquence en GHz peuvent donc accomplir des quantités de travail très différentes.
Note du professeurFaites jouer la scène avant de la montrer. Dessinez seize cases, distribuez trois cartes (PC, IR, ACC) et exécutez le programme 7 + 5 une phase à la fois, la classe annonçant chaque phase. Les élèves se perdent au moment où le PC avance pendant la recherche : quand une instruction s'exécute, le PC désigne déjà la suivante. Arrêtez-vous après la première recherche et demandez ce qu'indique le PC. JUMP et JZ prennent alors leur sens : « écrire un nouveau nombre sur la carte PC ». Une fois le jeu de rôle réussi, le bouton Avancer de la scène paraît familier.
  1. Range les phases du cycle d'instruction dans l'ordre.
  2. Le processeur va chercher l'instruction à l'adresse 3. Que vaut le PC juste après la recherche ?
  3. Dans l'ordinateur jouet, que signifie 0010 1111 ?
    • ADD 15
    • LOAD 15
    • STORE 2
    • ADD 7
  4. Écris LOAD 14 sur 8 bits.
  5. Une horloge fonctionne à 3 GHz. Combien dure un battement, en nanosecondes ? (trois décimales)
  6. Combien d'instructions exécute le programme 7 + 5, HALT compris ?
  7. Chaque instruction prend trois phases. Combien de phases prend le programme 7 + 5 ?
  8. Que fait STORE 13 ?
    • Elle copie l'accumulateur dans la case 13
    • Elle copie la case 13 dans l'accumulateur
    • Elle saute à l'adresse 13
    • Elle ajoute 13 à l'accumulateur
  9. Quelle instruction permet à un programme de répéter une boucle jusqu'à ce qu'un compteur arrive à zéro ?
    • JZ (saut si zéro)
    • STORE
    • HALT
    • LOAD
  10. En quelle année von Neumann a-t-il rédigé le First Draft of a Report on the EDVAC ?
L'essentiel
  • Les programmes sont stockés sous forme de nombres dans la même mémoire que les données (von Neumann, 1945).
  • Le processeur répète recherche, décodage, exécution ; le PC désigne la prochaine instruction.
  • Les bits d'une instruction se divisent en code d'opération et adresse.
  • L'horloge donne le rythme : 3 GHz, c'est un battement toutes les 0.333 ns.
Sources de ce cours (9)
  • (checked 2026-10-17; reordered 2026-10-19: standards first, then official documentation, then the teaching model and calculations, history sources last)
  • Standards: NIST, "Prefixes for binary multiples" (physics.nist.gov/cuu/Units/binary.html: IEC approved kibi, mebi, gibi in December 1998; 1 B = 8 bit; 1 MiB = 1 048 576 B; 1 MB = 1 000 000 B; 1 GiB = 1 073 741 824 B; historical note: memory makers usually mean 2²⁰ bytes by megabyte, storage makers 1 000 000, and the "1.44 MB" diskette uses a megabyte of 1 024 000 bytes)
  • IETF RFC 20 "ASCII format for Network Interchange" (1969, 7-bit codes, A = 65, a = 97, 0 = 48)
  • IETF RFC 3629 "UTF-8, a transformation format of ISO 10646" (2003: 1 to 4 octets per character, ASCII unchanged, code points up to U+10FFFF, U+0800 to U+FFFF take three octets, "the first octet of a multi-octet sequence indicates the number of octets", example U+D55C U+AD6D U+C5B4 = ED 95 9C EA B5 AD EC 96 B4)
  • Official documentation: MDN Web Docs, "<color>" (hexadecimal colour notation #RRGGBB)
  • Intel, "Intel Chips" timeline poster (2012: Intel 4004 of 1971 with 2,300 transistors; 2nd generation Core 2010 with 1.16 billion)
  • Claude E. Shannon, "A Symbolic Analysis of Relay and Switching Circuits", Transactions of the AIEE vol. 57 (1938)
  • abstract of his MIT master's thesis. Computer History Museum, The Silicon Engine, "1947: Invention of the Point-Contact Transistor" (Bardeen and Brattain, December 1947, germanium)
  • John von Neumann, "First Draft of a Report on the EDVAC" (30 June 1945, Moore School, reprinted in IEEE Annals of the History of Computing 15:4, 1993).

Consulté le: 2026-10-17