Le SAP-1 (ordinateur Simple Assembly Program, un ordinateur hypothétique souvent utilisé dans les cours d'introduction à l'architecture informatique) exécute les instructions dans un cycle de récupération-décodage-exécution. Voici une répartition :
1. Récupérer : L'adresse de l'instruction (contenue dans le compteur de programme, PC) est envoyée à la mémoire. La mémoire récupère l'instruction à partir de cette adresse et la place dans le registre d'instructions (IR). Le PC est ensuite incrémenté pour pointer vers l'instruction suivante.
2. Décoder : L'unité de contrôle décode l'instruction dans l'IR. Cela implique d'identifier l'opcode (la partie de l'instruction qui spécifie l'opération à effectuer) et les opérandes (les données sur lesquelles l'opération agira). Les opérandes peuvent être des valeurs immédiates (incorporées dans l'instruction elle-même), des adresses d'emplacements mémoire ou des numéros de registre.
3. Exécuter : Sur la base de l'opcode décodé, l'unité de contrôle dirige les actions appropriées :
* Opérations arithmétiques/logiques : Si l'instruction est une opération arithmétique (ADD, SUB, etc.) ou une opération logique (AND, OR, etc.), les opérandes (extraits de la mémoire ou des registres comme spécifié) sont envoyés à l'unité arithmétique et logique (ALU). L'ALU effectue l'opération et stocke le résultat dans un registre ou un emplacement mémoire spécifié.
* Opérations de transfert de données : Des instructions telles que LOAD et STORE déplacent les données entre la mémoire et les registres. LOAD déplace les données d'un emplacement mémoire vers un registre ; STORE déplace les données d'un registre vers un emplacement mémoire.
* Instructions de flux de contrôle : Ces instructions modifient l'ordre d'exécution des instructions.
* SAUT : Le PC est chargé avec une nouvelle adresse spécifiée dans l'instruction, ce qui entraîne le déplacement du programme vers un emplacement différent.
* BRANCHE (saut conditionnel) : Le PC est chargé avec une nouvelle adresse uniquement si une condition spécifiée (par exemple, la valeur d'un registre est zéro) est remplie. Sinon, l'exécution continue avec l'instruction suivante.
* ARRÊT : Le processeur arrête l'exécution.
Exemple :
Disons que nous avons une instruction `ADD R1, R2` (Ajoutez le contenu du registre R1 au registre R2 et stockez le résultat dans R2).
1. Récupérer : Le PC pointe vers l'emplacement mémoire contenant « ADD R1, R2 ». Cette instruction est récupérée et chargée dans l'IR. Le PC est incrémenté.
2. Décoder : L'unité de contrôle reconnaît "ADD" comme opcode et identifie R1 et R2 comme opérandes (registres).
3. Exécuter : L'unité de contrôle commande les actions suivantes :
* Le contenu de R1 est récupéré.
* Le contenu de R2 est récupéré.
* L'ALU additionne les deux valeurs.
* Le résultat est stocké dans R2.
Le cycle se répète ensuite avec l'instruction suivante indiquée par le PC. Les détails spécifiques de l'utilisation des registres, des modes d'adressage de la mémoire et des formats d'instructions varient légèrement en fonction de l'implémentation SAP-1 particulière décrite dans un manuel ou un cours. Cependant, le cycle fondamental de récupération, décodage et exécution reste constant.
|