Architecture du CPU : les registres
Introduction : le registre
Avant tout, un registre est un emplacement mémoire de la taille d'un mot (nombre de bits qui varie selon l'architecture et plus particulièrement la largeur du bus.) dans le CPU. Si tout ce charabia ne vous dit rien, je vous propose de lire les pages précédentes sur l'architecture des ordinateurs.
Selon la politique du constructeur, le nombre de registre peut varier, influençant considérablement l'architecture du processeur. Nous nous pencherons sur les registres les plus importants.
Certains registres définis ici sont représentés dans notre exemple de micro architecture.
MPC : Micro Program Counter
Angl : Micro Program Counter.
Fr : CO, Compteur Ordinal.
Le MPC contient l'adresse en mémoire l'adresse de l'instruction à exécuter.
A la fin de chaque instruction, la valeur contenue dans le MPC est incrémentation, ce qui signifie que l'instruction à exécuter ensuite se trouve à l'adresse suivante. Dans notre exemple de micro architecture, cela correspond à l'activation des control signal17 et CS22.
Nous retrouvons donc une suite d'instructions qui s'exécute de manière parfaitement séquence.
Pour modifier la séquence, nous pouvons utiliser un jump ou un branchement. Ces opérations consistent toutes deux à substituer à la valeur contenue dans le MPC une nouvelle valeur qui correspond à l'adresse d'une instruction à exécuter.
La taille du MPC dépend du nombre d'adresses mémoire disponibles. Par exemple, avec un MPC de 16 bit, nous pouvons adresser une mémoire de 216 mots (65536 adresses).
Le programmeur ne peut pas accéder directement au MPC.
MIR : Micro Instruction Register
Angl : Micro Instruction Register.
Fr : RI, Registre d'Instruction.
Lorsque le cpu lit une instruction dans la Micro Memory, il la place dans le MIR. Dans le cas de notre exemple de micro architecture, la taille du MIR est donc de 22 bit, puisqu'il doit contrôler 22 porte logique.
Dans le cas ou le control signal18 est activé les 10 MSB (les 10 bits de valeurs plus élevées) ne contrôlent plus les portes logiques, mais correspondent à une adresse à envoyer dans le MPC. Cette adresse est celle de la prochaine instruction à exécuter.
ACC : Accumulator
L'accumulateur est un registre très important (registre A dans notre exemple). Il contient généralement un des opérande d'une opération arithmétique et/ou logique. Après le traitement effectué, le résultat retourne dans l'accumulateur, à la place de la valeur de l'opérande.
Il sert parfois de registre-tampon dans les opérations d'entrée/sorties, bien que ce soit le plus souvent le rôle du MDR.
Les tests qui permettent de réaliser des boucles ( TESTZERO, TESTNEG ) portent tous sur la valeur contenue dans le registre A.
La taille de l'accumulateur est identique à la taille des mots mémoire utilisés (16 bits dans notre exemple), mais cette taille peut être doublée dans le cas d'utilisation d'un registre supplémentaire (extension Q). Cette extension de l'accumulateur est possible dans les architectures qui possèdent un registre Q.
Le programmeur peut accéder à l'ACC, qui lui permet de traiter ses données. Dans les cas de cpu qui possèdent plusieurs accumulateurs, il est nécessaire de préciser dans l'OPCODE quel ACC doit être utilisé.
GPR : General Purpose Register
Angl : General Purpose register, ou scratchpad.
Fr : Registres Généraux, ou registres bloc-notes.
Ce sont des registre qui permettent de conçerver des données utilisées fréquemment pendant le programme, ou des résultats intermédiaires. L'utilisation de ces registres permet d'éviter des accès en Mp plus lente que la Mi.
Ces registres peuvent stocker aussi bien des adresses que des données.
XR : Index Register
Angl : Index Register.
Fr : Registre d'Indice, ou registre d'index.
Les registres d'indice peuvent être utilisés comme gpr, mais sont le plus souvent utilisés pour manipuler des adresses dans le cas d'adressage indexé.
Ce type de registre est donc particulièrement adapté lors de l'utilisation de tableaux. Les différents éléments d'un tableau sont alors accessibles grâce à un index. Certains registres d'indice sont automatiquement incrémentation ou décrémentés après chaque accès.
BR : Base Register
Angl : Base Register.
Fr : Registres de Base.
Comme pour les xr, les registres de base permettent de manipuler des adresses.
Ici, les adresses mémorisées sont des adresses de références (adressage basé) auxquelles il faut ajouter la valeur de l'adresse de l'instruction.
Ils sont donc fréquemment employés lors de relocation dynamique, et pour adresser des mémoires dont le nombre de mots dépasse la capacité du champ adresse de l'instruction type.
PSW : Program Status Word
Angl : Program Status Word.
Fr : registre d'état, vecteur d'état, ou registre condition.
Le PSW est le registre du processeur qui caractérise l'état de la routine qui est cours d'execution sur le processeur. Il contient les informations capitales qu'il faut sauvegarder lors d'une interruption.
Dans le cas d'une architecture 32 bit, la taille du PSW est de 64 bits.
Le PSW comprend des informations sur :
- l'état d'exécution : le processeur est actif ou en attente d'entrées-sorties (E/S). La transition Running-Ready (actif-attente) se fait par une instruction spéciale.
- le mode de fonctionnement : En mode maître des instructions privilégiées sont accessibles. Elles sont interdites en mode esclave pour des raisons de sécurité. D'autres modes peuvent exister comme le mode trace (ou debug), utile pour débogguer un fonctionnement.
- le masque d'interruption.
- le contexte accessible en mémoire : adresse des tables de segments du processus en cours et du suivant.
- le déroulement du processus en cours, notamment le MPC qui contient l'adresse de l'instruction qui est exécutée.
SP : Stack Pointer
Angl : SP, Stack Pointer.
Fr : registre pointeur de pile.
Registre ou variable pointant vers le haut d'une lifo. A chaque fois qu'un élément est déposé dans la pile, ce pointeur est incrémentation d'une quantité égale à la taille de ce qu'on a empilé. De cette façon, il pointera vers la zone mémoire suivante dans laquelle on pourra écrire. Quand un élément est retiré de la pile, ce pointeur est décrémenté de la même quantité.
Dans une micro architecture, le registre pointeur de pile simule une pile par une zone mémoire réservée dans la main memory.
Le fonctionnement du Stack Pointer Register est identique à celui d'un mar pour la partie pile de la mémoire RAM. Lorsqu'un mot est chargé dans la pile, son adresse est mémorisée dans le SP, ce qui fait qu'il pointe toujours vers le sommet de la pile.
Registres spécialisés
MAR : Memory Address Register
Angl : Memory Address Register.
Fr : RA, Registre Adresse de la mémoire.
Ce registre permet la communication entre le bus de données et le bus d’adresses. Il est donc possible d’utiliser des données stockées en mémoire pour adresser la mémoire.
Le MAR contient donc la valeur de l'adresse de la cellule mémoire en Main Memory avec laquelle le cpu désire travailler (lire ou écrire).
La taille du registre d'adresses est un paramètre important de l'architecture du processeur : la taille du MAR détermine la taille maximum adressable en Main Memory.
Exemple :
- pour un registre de 16 bits, 65536 emplacements mémoire peuvent être adressés (de 0 à 65535).
- Si nous retirons 4 bits pour l'OPCODE, il nous reste 12 bits pour l'adressage, soit 4096 emplacements (de 0 à 4095).
- C'est pourquoi dans notre exemple de micro architecture nous avons une taille de 4096 emplacements pour la Main Memory
MDR : Memory Data Register
Angl : Memory Data Register.
Fr : RM, Registre Mot.
Le MDR est le registre qui permet les accès en lecture ou écriture dans la Main Memory. Le positionnement dans la Main Memory se fait grâce au MAR.
Nederlandse vertaling
U hebt gevraagd om deze site in het Nederlands te bezoeken. Voor nu wordt alleen de interface vertaald, maar nog niet alle inhoud.Als je me wilt helpen met vertalingen, is je bijdrage welkom. Het enige dat u hoeft te doen, is u op de site registreren en mij een bericht sturen waarin u wordt gevraagd om u toe te voegen aan de groep vertalers, zodat u de gewenste pagina's kunt vertalen. Een link onderaan elke vertaalde pagina geeft aan dat u de vertaler bent en heeft een link naar uw profiel.
Bij voorbaat dank.
Document heeft de 09/03/2005 gemaakt, de laatste keer de 07/04/2023 gewijzigd
Bron van het afgedrukte document:https://www.gaudry.be/en/nl/cpu-registres.html
De infobrol is een persoonlijke site waarvan de inhoud uitsluitend mijn verantwoordelijkheid is. De tekst is beschikbaar onder CreativeCommons-licentie (BY-NC-SA). Meer info op de gebruiksvoorwaarden en de auteur.
- ↑ Central Processing Unit : komt overeen met « Unité centrale de traitement » en français
- ↑ Micro Program Counter : komt overeen met « registre compteur ordinal » en français
- ↑ Micro Instruction Register : komt overeen met « registre d'instruction » en français
- ↑ Accumulator : komt overeen met « accumulateur » en français
- ↑ General Purpose Register : komt overeen met « registres généraux » en français
- ↑ Base Register : komt overeen met « registre de base » en français
- ↑ Stack Pointer : komt overeen met « registre pointeur de pile » en français
- ↑ Memory Address Register : komt overeen met « registre d'adresse de la mémoire » en français
- ↑ Memory Data Register : komt overeen met « registre de mots » en français