1. Du programme à l’instruction
Nous avons vu qu’un programme est constitué d’instructions stockées dans la mémoire centrale.
Nous avons également vu que le processeur est capable de manipuler des groupes de bits appelés mots.
Mais stocker des instructions en mémoire ne suffit pas pour qu’un programme s’exécute.
Le processeur doit retrouver les instructions, comprendre l’opération demandée puis la réaliser.
2. De petites mémoires dans le processeur
Pour exécuter les instructions, le processeur doit conserver temporairement certaines informations dont il a besoin immédiatement.
Il dispose pour cela de petites mémoires très rapides appelées registres.
Certains registres jouent un rôle particulier dans l’exécution des instructions.
Le compteur de programme
Pour aller chercher une instruction en mémoire, le processeur doit connaître son adresse.
Le compteur de programme, souvent noté PC pour Program Counter, contient l’adresse de la prochaine instruction à exécuter.
Le registre d’instruction
Une fois récupérée en mémoire, l’instruction en cours de traitement est placée dans le registre d’instruction.
3. L’unité de commande et l’UAL
Une fois l’instruction récupérée, le processeur doit déterminer ce qu’elle lui demande de faire, puis réaliser l’opération.
Deux parties du processeur jouent alors un rôle essentiel.
L’unité de commande
L’unité de commande organise et coordonne l’exécution des instructions.
Elle interprète l’instruction en cours et détermine les opérations nécessaires à son exécution.
L’unité arithmétique et logique
L’UAL, ou unité arithmétique et logique, réalise notamment les opérations arithmétiques et logiques demandées par les instructions :
- addition ;
- soustraction ;
- comparaison ;
- opérations logiques.
4. Chercher, décoder, exécuter
Pour traiter une instruction, le processeur réalise successivement plusieurs opérations.
Étape 1 : chercher l’instruction
Le processeur consulte le compteur de programme.
L’adresse qu’il contient permet de retrouver la prochaine instruction dans la mémoire centrale.
Cette instruction est alors transférée vers le registre d’instruction.
Étape 2 : décoder l’instruction
L’unité de commande analyse l’instruction placée dans le registre d’instruction.
Elle détermine quelle opération doit être réalisée et quelles informations sont nécessaires.
Étape 3 : exécuter l’instruction
Le processeur réalise l’opération demandée.
Il peut s’agir d’un calcul, d’une comparaison, d’un déplacement de données ou d’une autre opération élémentaire.
Préparer l’instruction suivante
Le compteur de programme est mis à jour afin d’indiquer l’adresse de la prochaine instruction à exécuter.
Le processeur peut alors recommencer le même processus.
chercher → décoder → exécuter
Ce cycle est répété au cours de l’exécution du programme.5. Un fonctionnement rythmé par une horloge
Les différentes opérations réalisées par le processeur doivent être coordonnées.
Cette coordination repose notamment sur une horloge qui produit un signal régulier.
La fréquence de cette horloge indique le nombre de cycles d’horloge réalisés par seconde. Elle s’exprime en hertz.
6. Un langage compris par le processeur
Le processeur ne comprend pas directement un programme écrit en Python ou dans un autre langage de haut niveau.
Il exécute des instructions appartenant à son langage machine.
Une instruction machine est représentée sous forme binaire et indique au processeur une opération élémentaire à réaliser.
L’ensemble des instructions qu’un processeur est capable d’exécuter dépend de son architecture.
Et le langage assembleur ?
Lire et écrire directement de longues suites de bits serait particulièrement difficile pour un humain.
Le langage assembleur permet de représenter les instructions machine à l’aide de noms plus faciles à lire, appelés mnémoniques.
Une instruction d’addition
pourra par exemple
être représentée
par un mot comme
ADD,
plutôt que directement
par son codage binaire.
7. Suivre une instruction simple
Imaginons qu’une instruction demande d’additionner deux valeurs.
- le compteur de programme contient l’adresse de l’instruction à exécuter ;
- l’instruction est récupérée dans la mémoire ;
- elle est placée dans le registre d’instruction ;
- l’unité de commande décode l’instruction et identifie l’opération demandée ;
- les informations nécessaires à l’opération sont mises à disposition du processeur ;
- l’UAL réalise l’addition ;
- le résultat est conservé à l’endroit prévu par l’instruction ;
- le compteur de programme permet de déterminer la prochaine instruction à exécuter.
chercher → décoder → exécuter
8. Synthèse
- les instructions sont stockées dans la mémoire centrale ;
- le compteur de programme contient l’adresse de la prochaine instruction à exécuter ;
- le registre d’instruction contient l’instruction en cours de traitement ;
- l’unité de commande décode l’instruction et organise son exécution ;
- l’UAL réalise notamment les opérations arithmétiques et logiques ;
- le compteur de programme est mis à jour pour déterminer la prochaine instruction ;
- le processeur répète le cycle chercher → décoder → exécuter ;
- les instructions directement exécutables par le processeur appartiennent au langage machine.
9. Et les ordinateurs modernes ?
Le cycle que nous venons d’étudier constitue un modèle simple permettant de comprendre le principe général de l’exécution d’un programme.
Mais exécuter les instructions strictement les unes après les autres peut limiter les performances.
Les ordinateurs actuels utilisent donc différentes techniques pour accélérer les traitements et réaliser davantage d’opérations dans un même temps.