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.

Contents Haut

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.

Contents Haut

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é.

Contents Haut

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.

Contents Haut

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.

Contents Haut

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.

Contents Haut

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.

Contents Haut

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.

Contents Haut

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 ;-)

Contents Haut

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.

English translation

You have asked to visit this site in English. For now, only the interface is translated, but not all the content yet.

If you want to help me in translations, your contribution is welcome. All you need to do is register on the site, and send me a message asking me to add you to the group of translators, which will give you the opportunity to translate the pages you want. A link at the bottom of each translated page indicates that you are the translator, and has a link to your profile.

Thank you in advance.

Document created the 09/03/2005, last modified the 07/04/2023
Source of the printed document:https://www.gaudry.be/en/cpu-registres.html

The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.

Notes
  1.  Central Processing Unit : corresponds to « Unité centrale de traitement » en français

  2.  CPU : “Central Processing Unit” (en français, « Unité centrale de traitement »)

  3.  Micro Program Counter : corresponds to « registre compteur ordinal » en français

  4.  MPC : “Micro Program Counter” (en français, « registre compteur ordinal »)

  5.  Micro Instruction Register : corresponds to « registre d'instruction » en français

  6.  MIR : “Micro Instruction Register” (en français, « registre d'instruction »)

  7.  Accumulator : corresponds to « accumulateur » en français

  8.  ACC : “Accumulator” (en français, « accumulateur »)

  9.  General Purpose Register : corresponds to « registres généraux » en français

  10.  GPR : “General Purpose Register” (en français, « registres généraux »)

  11. a,b Index Register : corresponds to « registre d'index » en français

  12. a,b XR : “Index Register” (en français, « registre d'index »)

  13.  Base Register : corresponds to « registre de base » en français

  14.  BR : “Base Register” (en français, « registre de base »)

  15.  Stack Pointer : corresponds to « registre pointeur de pile » en français

  16.  SP : “Stack Pointer” (en français, « registre pointeur de pile »)

  17.  Memory Address Register : corresponds to « registre d'adresse de la mémoire » en français

  18.  MAR : “Memory Address Register” (en français, « registre d'adresse de la mémoire »)

  19.  Memory Data Register : corresponds to « registre de mots » en français

  20.  MDR : “Memory Data Register” (en français, « registre de mots »)

Contents Haut