Cycle FETCH : La première phase du cycle de traitement où le processeur récupère l'instruction à exécuter.
- Copier la valeur du registre PC dans le registre MAR
- Envoyer l'adresse dans MAR au bus d'adresse
- Signaler une lecture mémoire
- Récupérer les données de la mémoire dans MDR
- Copier les données de MDR dans IR
- Incrémenter le PC pour pointer sur l'instruction suivante
PC → MAR → RAM → MDR → IR
Supposons PC = 0x100, alors MAR ← 0x100
Le bus d'adresse transmet 0x100 à la RAM
La RAM retourne l'instruction à l'adresse 0x100 (ex: 0x1234ABCD)
MDR reçoit 0x1234ABCD, puis IR ← MDR
PC ← PC + 4 (si instruction de 32 bits)
L'instruction à l'adresse 0x100 est maintenant dans le registre IR prête à être décodée.
• 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
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
L'unité de contrôle extrait l'opcode (0000 pour ADD) de IR
L'unité de contrôle identifie que R1 est le registre destination
R2 et R3 sont les registres source
L'unité de contrôle active les circuits nécessaires à l'addition
Les valeurs des registres R2 et R3 sont envoyées vers l'UAL
L'instruction ADD R1, R2, R3 est prête à être exécutée : additionner R2 et R3, stocker dans R1.
• 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
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
La valeur de R2 est transférée dans MAR (par exemple R2 = 0x200)
Le processeur envoie une requête de lecture à l'adresse 0x200
La RAM retourne la valeur à l'adresse 0x200 (par exemple 0x1234)
La valeur 0x1234 est placée dans MDR
La valeur de MDR est transférée dans R1
L'instruction LOAD R1, [R2] a chargé la valeur de la mémoire à l'adresse R2 dans le registre R1.
• 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
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
La valeur de R3 est transférée dans MAR (par exemple R3 = 0x300)
La valeur de R1 est transférée dans MDR (par exemple R1 = 0xABCD)
Le processeur envoie un signal d'écriture à la RAM
La valeur 0xABCD est écrite à l'adresse 0x300 dans la RAM
L'instruction STORE R1, [R3] a sauvegardé la valeur de R1 à l'adresse mémoire pointée par R3.
• 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
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
Ce programme charge un compteur, l'incrémente, le sauvegarde, et boucle jusqu'à 10.
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
Quand BNE est exécuté, si condition vraie, PC ← 0x100 (retour boucle)
Le cycle FETCH-DECODE-EXECUTE-WRITE-BACK recommence avec la nouvelle adresse
Le processeur exécute chaque instruction selon le cycle, avec gestion spéciale des branchements qui modifient le PC.
• 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
- 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
- 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
CPU ↔ PC ↔ MAR ↔ RAM ↔ MDR ↔ IR
UAL ↔ Registres ↔ Unité de Contrôle