tous les articles
veille techno1 min de lecture

Le voyage d'un programme à travers le CPU

Du fichier source au "Hello, World!" qui s'affiche — comprendre les étapes que franchit un programme avant son exécution.

Mathieu N.4 févr. 2026

Le processeur (CPU, Central Processing Unit) est le moteur qui anime l'ordinateur. Comprendre son fonctionnement éclaire à la fois la programmation et l'architecture matérielle. Voici une vue d'ensemble du chemin parcouru par un programme avant qu'il ne produise un résultat à l'écran.

Cet article s'inspire d'un texte de Mohit publié sur chessman7.substack.com — traduit, condensé et adapté pour des lycéens.

Les éléments-clés du CPU

Un CPU rassemble plusieurs unités spécialisées qui collaborent :

  1. Unité de contrôle (CU) — le « chef d'orchestre » : elle séquence le chargement, le décodage et l'exécution des instructions.
  2. Unité arithmétique et logique (ALU) — réalise les additions, les soustractions, les comparaisons et les opérations logiques (ET, OU, NON).
  3. Registres — petites mémoires ultra-rapides intégrées au processeur. Le compteur ordinal pointe vers la prochaine instruction, le registre d'instruction contient l'instruction en cours.
  4. Mémoire — RAM, ROM et caches. Le cache fait le pont entre la rapidité du CPU et la lenteur relative de la RAM.
  5. Logique combinatoire — réseau de portes qui transforme les signaux d'entrée en signaux de sortie pour piloter les autres composants.
schéma à produire

Schéma d'architecture CPU : CU, ALU, registres (PC, IR), mémoire cache, RAM, bus de communication

Le cycle fondamental : Fetch — Decode — Execute

Le CPU répète sans relâche un cycle en trois (parfois quatre) temps.

PhaseAction
FetchRécupérer l'instruction pointée par le compteur ordinal.
DecodeInterpréter l'instruction (opcode + opérandes).
ExecuteRéaliser l'opération via l'ALU ou un transfert mémoire.
Write backStocker le résultat dans un registre ou en mémoire.

À chaque tour, le compteur ordinal avance — sauf en cas de saut, d'appel de fonction ou de retour.

Exemple : un simple programme C

#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    return 0;
}

Entre la frappe au clavier et l'affichage à l'écran, ce code traverse plusieurs étapes invisibles :

  1. Prétraitement — résolution des #include, expansion des macros.
  2. Compilation — traduction du C vers l'assembleur.
  3. Assemblage — conversion de l'assembleur en code machine binaire.
  4. Édition de liens — assemblage des morceaux et création de l'exécutable (par exemple hello.exe ou ./hello).
  5. Chargement — l'exécutable est copié en RAM.
  6. Exécution — le CPU démarre le cycle Fetch–Decode–Execute sur les instructions chargées.
schéma à produire

Pipeline de compilation : .c → préprocesseur → compilateur → assembleur → linker → exécutable, puis loader vers la RAM

Quelques notions pour aller plus loin

  • Segments mémoire : un programme en exécution occupe plusieurs zones — le segment texte (le code), les données (variables globales), la pile (variables locales et appels de fonctions), le tas (allocation dynamique).
  • Pipeline : les CPU modernes traitent plusieurs instructions en parallèle, comme une chaîne de montage.
  • Cache : sans cache L1/L2/L3, votre processeur passerait l'essentiel de son temps à attendre la RAM.

Vous retrouverez ces notions de manière plus approfondie dans le chapitre Architectures matérielles et systèmes d'exploitation en NSI Première et Terminale.