Comment travaille un Processeur - Electro

actualités

Comment travaille un Processeur


Dans la partie de gauche on a le CPU et à droite la mémoire vive (Ram) avec laquelle le cpu communique. Dans la partie du processeur, en bleu on a l'unité ALU (Unité Arithmétique et Logique) qui réalise les opérations d'additions, soustractions, mais aussi les comparaisons logiques entre 2 nombres. Ses entrées sont ici (en haut à gauche) les opérandes nommée OP et A, et en sortie on a le registre accumulateur qui stocke le résultat (ici A, A2 n'étant qu'un registre intermédiaire).
En vert on a les Registres qui sont les mémoires basiques et très rapides intégrées dans le Processeur et qui lui permettent de travailler. Comme juste dit, le registre A est appelé Registre accumulateur et stocke le résultat de l'ALU, alors que les cases vertes nommées B, C, D, F sont des registres généraux, cad qui stockent momentanément des valeurs, cela dans le cadre du travail du processeur.
Quant au registre IP (Instruction Pointer) c'est le pointeur d'instruction qui contient l'adresse de la prochaine instruction à exécuter, celle-ci se trouve en RAM. On nomme aussi parfois ce registre CO comme Compteur Ordinal ou PC comme Compteur de Program. Donc il compte les instructions à exécuter et s'incrémente dans le temps.

En bas, toujours partie de gauche se trouve l'Unité de Commande qui donne les ordres. Elle contient le Registre d'Instruction nommé RI qui est le registre contenant l'instruction à exécuter. C'est dans cette unité de commande qu'elle est décodée une fois le RI rempli par son instruction (qu'on est allé récupérer en RAM à l'adresse fournie par le Registre IP cad l'Instruction Pointer) représenté dans ce registre par son code. C'est du reste par ce code que le décodeur sait de quelle opération il s'agit, et alors le Controller agit en conséquence.

Ainsi sur la video on voit comment ça fonctionne :
Déjà dans CODE SEGMENT on a 4 colonne:
- 1ère, l'adresse de l'instruction (lignes à du programme à exécuter dans l'ordre)
- 2nd le code de l'instruction qui ira en IR
- 3ème l'opérande (valeur numérique) associée à l'opération
- 4eme: le sens de l'instruction
Ainsi le processeur va ici: mettre le nbre 35 dans A, mettre 88 dans B, mettre la valeur de B dans D.

L'IR est incrémenté, l'unité de commande commence alors par aller chercher en RAM l'adresse de la 1ère instruction qui est 01, la valeur de cette instruction trouvée en RAM valant 45 revient vers le Registre d'Instruction par le Data Bus, puis elle est décodée. Elle consiste en "MOV A,C". Ensuite IR va rechercher en Ram la valeur de l'opérande associée et qui vaut 35, elle est stockée dans l'entrée A de l'ALU.
à noter qu'on voit en Rouge dans le "Ctrl. Bus" ce que fait le Controleur.

Ensuite, rebelote, l'IP envoie à son adresse chercher la prochaine instruction, elle est ramenée et stockée dans le RI, son OP-Code est 4B "mettre en B l'opérande associée". Cette opérande vaut 88 et elle est placée dans la "variable" B qui est un registre général, mais avant A est copié en A2, puis réintégré en A (on a là des petits transferts intermédiaires avec le registre accumulateur..)

Ensuite à l'adresse 05 en RAM fournie par le IP on récupère en IR l'instruction 5A (Mov D,B) qui est de mettre B dans D, et cela se fait encore une fois en passant par A qu'on a d'abord copié dans le registre intermédiaire A2, puis à la fin on restaure A.