Au cœur du CPU : Le cycle Fetch-Decode-Execute expliqué
Au cœur de chaque ordinateur, du smartphone au supercalculateur, se trouve une boucle incessante et rythmée : le cycle d'instruction. Souvent appelé cycle Fetch-Decode-Execute (recherche-décodage-exécution), ce processus est le « battement de cœur » fondamental de l'unité centrale de traitement (CPU). Voici comment les composants principaux collaborent pour transformer le code binaire en action.
Les composants principaux
- Unité de contrôle (UC) : Le « chef d'orchestre », dirigeant le trafic et le timing.
- Unité arithmétique et logique (UAL) : La « calculatrice », effectuant les opérations mathématiques et logiques.
- Registres : Stockage ultra-rapide et minuscule pour les données immédiates (ex. : compteur ordinal, registre d'instruction, accumulateur).
- Bus système : Les autoroutes (adresse, données, contrôle) reliant le CPU à la RAM.
Le cycle : étape par étape
- Fetch (Recherche) : L'UC lit l'adresse dans le compteur ordinal (PC), la place sur le bus d'adresse et récupère l'instruction depuis la RAM via le bus de données dans le registre d'instruction (RI). Le PC s'incrémente vers l'adresse suivante.
- Decode (Décodage) : L'UC interprète le binaire dans le RI. Elle divise l'instruction en un code opération (opcode) (l'opération, ex. : ADD, LOAD) et des opérandes (les données ou adresses des données).
- Récupération des opérandes (si nécessaire) : Si l'instruction requiert des données de la mémoire (ex.
ADD [Adresse]), l'UC les récupère de la RAM vers les registres. - Execute (Exécution) : L'UC signale à l'UAL d'effectuer l'opération (arithmétique, logique, décalage, branchement). Le résultat atterrit dans un registres (souvent l'accumulateur).
- Stockage/Réécriture : Si le résultat doit être sauvegardé en RAM, l'UC l'écrit via le bus de données.
- Mise à jour PC / Répétition : Sauf si une instruction de saut/branchement a modifié le PC, la boucle revient à Fetch.
Pourquoi c'est important
Ce cycle — exécuté des milliards de fois par seconde (GHz) — est la raison pour laquelle les logiciels fonctionnent. Les CPU modernes utilisent le pipelining (chevauchement des étapes), l'exécution superscalaire (plusieurs UAL) et la prédiction de branchement pour accélérer cette boucle, mais la logique fondamentale reste inchangée depuis l'architecture von Neumann.
