Numérique et Sciences Informatiques1ère

Cycle de traitement des instructions
Exercices corrigés

Comprenez le fonctionnement du processeur à travers le cycle FETCH-DECODE-EXECUTE-WRITE-BACK : étapes, registres, bus de données et mémoire.

Concepts & Exercices
\(PC \rightarrow MAR \rightarrow RAM \rightarrow MDR \rightarrow IR \rightarrow UAL\)
Chaîne de traitement
FETCH
Récupération de l'instruction
DECODE
Décodage de l'instruction
EXECUTE
Exécution de l'instruction
WRITE-BACK
Stockage du résultat
🎯
Définition : Le cycle de traitement est le processus répété par le CPU pour exécuter une instruction.
🔧
Registres clés : PC (Program Counter), MAR (Memory Address Register), MDR (Memory Data Register), IR (Instruction Register).
📊
Bus système : Lien entre CPU, mémoire et périphériques pour transférer données et instructions.
⚙️
UAL/ALU : Unité Arithmétique et Logique qui effectue les opérations sur les données.
Exercice 1
Suivre le cycle FETCH pour l'instruction à l'adresse 0x100
Exercice 2
Décoder l'instruction ADD R1, R2, R3
Exercice 3
Exécuter une instruction de chargement LOAD R1, [R2]
Exercice 4
Étudier un cycle complet avec STORE R1, [R3]
Exercice 5
Analyser un programme avec boucle et branchements
Corrigé : Exercices 1 à 3
1 Cycle FETCH
Définition :

Cycle FETCH : La première phase du cycle de traitement où le processeur récupère l'instruction à exécuter.

Étapes du cycle FETCH :
  1. Copier la valeur du registre PC dans le registre MAR
  2. Envoyer l'adresse dans MAR au bus d'adresse
  3. Signaler une lecture mémoire
  4. Récupérer les données de la mémoire dans MDR
  5. Copier les données de MDR dans IR
  6. Incrémenter le PC pour pointer sur l'instruction suivante

PCMARRAMMDRIR

Étape 1 : Chargement de l'adresse

Supposons PC = 0x100, alors MAR ← 0x100

Étape 2 : Accès mémoire

Le bus d'adresse transmet 0x100 à la RAM

Étape 3 : Lecture de l'instruction

La RAM retourne l'instruction à l'adresse 0x100 (ex: 0x1234ABCD)

Étape 4 : Stockage dans IR

MDR reçoit 0x1234ABCD, puis IR ← MDR

Étape 5 : Incrémentation du PC

PC ← PC + 4 (si instruction de 32 bits)

Réponse finale :

L'instruction à l'adresse 0x100 est maintenant dans le registre IR prête à être décodée.

Règles appliquées :

FETCH : Récupérer l'instruction pointée par le PC

Registres : MAR, MDR et IR sont utilisés pour transférer l'instruction

PC incrémentation : Le PC pointe sur la prochaine instruction

2 Cycle DECODE
Définition :

Cycle DECODE : Phase où le processeur analyse l'instruction pour comprendre ce qu'elle doit faire.

Instruction: ADD R1, R2, R3

Opcode: 0000 | Rd: R1 | Rn: R2 | Rm: R3

Étape 1 : Extraction de l'opcode

L'unité de contrôle extrait l'opcode (0000 pour ADD) de IR

Étape 2 : Identification des registres

L'unité de contrôle identifie que R1 est le registre destination

R2 et R3 sont les registres source

Étape 3 : Activation des circuits

L'unité de contrôle active les circuits nécessaires à l'addition

Étape 4 : Préparation des données

Les valeurs des registres R2 et R3 sont envoyées vers l'UAL

UAL: R2 + R3 → R1
Réponse finale :

L'instruction ADD R1, R2, R3 est prête à être exécutée : additionner R2 et R3, stocker dans R1.

Règles appliquées :

DECODE : Interpréter l'instruction stockée dans IR

Opcode : Indique le type d'opération à effectuer

Registres : Déterminer les sources et la destination

3 Cycle EXECUTE
Définition :

Cycle EXECUTE : Phase où le processeur effectue l'opération demandée par l'instruction.

Instruction: LOAD R1, [R2]

Opération: Charger la valeur de la mémoire à l'adresse contenue dans R2 dans R1

Étape 1 : Transfert de l'adresse

La valeur de R2 est transférée dans MAR (par exemple R2 = 0x200)

Étape 2 : Accès mémoire

Le processeur envoie une requête de lecture à l'adresse 0x200

Étape 3 : Récupération des données

La RAM retourne la valeur à l'adresse 0x200 (par exemple 0x1234)

Étape 4 : Stockage dans MDR

La valeur 0x1234 est placée dans MDR

Étape 5 : Transfert vers le registre

La valeur de MDR est transférée dans R1

R1 ← Valeur à l'adresse [R2]
Réponse finale :

L'instruction LOAD R1, [R2] a chargé la valeur de la mémoire à l'adresse R2 dans le registre R1.

Règles appliquées :

EXECUTE : Effectuer l'opération indiquée par l'instruction

Accès mémoire : Utiliser MAR pour spécifier l'adresse, MDR pour les données

Transferts : Les données circulent entre registres et mémoire

Corrigé : Exercices 4 à 5
4 Cycle WRITE-BACK
Définition :

Cycle WRITE-BACK : Phase finale où le résultat est stocké dans le registre ou la mémoire cible.

Instruction: STORE R1, [R3]

Opération: Sauvegarder la valeur de R1 à l'adresse mémoire pointée par R3

Étape 1 : Transfert de l'adresse

La valeur de R3 est transférée dans MAR (par exemple R3 = 0x300)

Étape 2 : Transfert des données

La valeur de R1 est transférée dans MDR (par exemple R1 = 0xABCD)

Étape 3 : Signalement écriture

Le processeur envoie un signal d'écriture à la RAM

Étape 4 : Stockage en mémoire

La valeur 0xABCD est écrite à l'adresse 0x300 dans la RAM

[R3] ← R1
Réponse finale :

L'instruction STORE R1, [R3] a sauvegardé la valeur de R1 à l'adresse mémoire pointée par R3.

Règles appliquées :

WRITE-BACK : Stocker le résultat final dans la destination appropriée

Écriture mémoire : MAR pour l'adresse, MDR pour les données

Finalité : Compléter le cycle de traitement d'une instruction

5 Programme complet
Définition :

Programme complet : Suite d'instructions exécutées en boucle, avec gestion des branchements.

Programme: Boucle d'incrémentation

0x100: LOAD R1, [0x200]    ; Charger compteur
0x104: ADD R1, R1, #1      ; Incrémenter
0x108: STORE R1, [0x200]   ; Sauver compteur
0x10C: CMP R1, #10         ; Comparer à 10
0x110: BNE 0x100           ; Boucler si ≠ 10
Étape 1 : Analyse du programme

Ce programme charge un compteur, l'incrémente, le sauvegarde, et boucle jusqu'à 10.

Étape 2 : Cycle de la première instruction

FETCH: PC=0x100 → IR contient LOAD R1, [0x200]

DECODE: Opcode LOAD, source [0x200], destination R1

EXECUTE: Charger valeur à 0x200 dans R1

WRITE-BACK: R1 mis à jour

Étape 3 : Gestion des branchements

Quand BNE est exécuté, si condition vraie, PC ← 0x100 (retour boucle)

Étape 4 : Répétition du cycle

Le cycle FETCH-DECODE-EXECUTE-WRITE-BACK recommence avec la nouvelle adresse

PC modifié → Nouvelle instruction → Nouveau cycle
Réponse finale :

Le processeur exécute chaque instruction selon le cycle, avec gestion spéciale des branchements qui modifient le PC.

Règles appliquées :

Boucles : Branchements conditionnels modifient le flux d'exécution

PC dynamique : Peut être modifié par les instructions de branchement

Contrôle : Le processeur suit le cycle mais peut changer d'instruction

Cours bien détaillé
\(FETCH \rightarrow DECODE \rightarrow EXECUTE \rightarrow WRITE-BACK\)
Cycle de traitement
🎯
Définition : Le cycle de traitement est la séquence d'étapes que suit le CPU pour exécuter une instruction.
🔧
Registres : PC, MAR, MDR, IR, ACC, SP sont des composants essentiels du cycle.
📊
Bus : Ensemble de connexions permettant le transfert de données entre composants.
⚙️
UAL/ALU : Unité Arithmétique et Logique effectuant les opérations de base.
💡
Conseil : Visualisez le flux de données entre les composants à chaque étape
🔍
Attention : Le PC pointe toujours sur l'instruction suivante à exécuter
Astuce : Dessinez un schéma pour suivre les transferts de données
📋
Méthode : Suivez le cycle pas à pas pour chaque instruction
Vérification : Assurez-vous que chaque étape est complète avant de passer à la suivante
Étapes détaillées du cycle :
  • FETCH : Récupérer l'instruction de la mémoire à l'adresse PC
  • DECODE : Analyser l'instruction et identifier les opérations
  • EXECUTE : Effectuer l'opération (calcul, accès mémoire, branchement)
  • WRITE-BACK : Stocker le résultat dans le registre ou la mémoire
Règles importantes :
  • Chaque instruction suit le même cycle de base
  • Le PC est incrémenté après le FETCH (sauf pour les branchements)
  • Les branchements modifient le PC pour changer le flux d'exécution
  • Les données transitent par les registres MAR, MDR et IR
  • Le cycle s'exécute continuellement tant que le processeur est actif

Architecture simplifiée d'un processeur

CPUPCMARRAMMDRIR

UALRegistresUnité de Contrôle

Cycle de traitement des instructions Architecture des ordinateurs