Architecture du CPU : les registres

Sommaire du document

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émentée, 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 CS17 et CS22.
Nous retrouvons donc une suite d'instructions qui s'exécute de manière parfaitement séquentielle.

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 bits, 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 bits, puisqu'il doit contrôler 22 portes logiques.

Dans le cas ou le CS18 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érandes 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 processeurs 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 registres 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 registres généraux, 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émentés ou décrémentés après chaque accès.

 

BR : Base Register

Angl : Base Register.
Fr : Registres de Base.

Comme pour les registres d'indice, 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 bits, 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 pile. A chaque fois qu'un élément est déposé dans la pile, ce pointeur est incrémenté 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 mémoire centrale.
Le fonctionnement du Stack Pointer Register est identique à celui d'un registre d'adresse mémoire 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 processeur 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.

 

 

Réseaux sociaux

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher les interactions avec les réseaux sociaux sur ces pages.

 

Nuage de mots clés

109 mots clés dont 101 définis manuellement (plus d'information...).

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher le nuage de mots clés.

 

Notes

  1.  Central Processing Unit : correspond à « Unité centrale de traitement” en français

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

  3.  Micro Program Counter : correspond à « registre compteur ordinal” en français

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

  5.  Micro Instruction Register : correspond à « registre d'instruction” en français

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

  7.  Accumulator : correspond à « accumulateur” en français

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

  9.  General Purpose Register : correspond à « registres généraux” en français

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

  11. a,b Index Register : correspond à « registre d'index” en français

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

  13.  Base Register : correspond à « registre de base” en français

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

  15.  Stack Pointer : correspond à « registre pointeur de pile” en français

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

  17.  Memory Address Register : correspond à « 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 : correspond à « registre de mots” en français

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

 

Historique et modifications de la page

  • Samedi 16 Janvier 2010, 07:31 : Prise en charge automatique des acronymes, mots étrangers, et recherche de table de matières.
Astuce pour imprimer les couleurs des cellules de tableaux : http://www.gaudry.be/ast-rf-450.html
Aucun commentaire pour cette page

© Ce document issu de l′infobrol est enregistré sous le certificat Cyber PrInterDeposit Digital Numbertection. Enregistrement IDDN n° 5329-260
Document créé le 09/03/05 23:08, dernière modification le Mercredi 28 Juin 2017, 14:26
Source du document imprimé : http:///www.gaudry.be/cpu-registres.html
St.Gaudry©07.01.02
Outils (masquer)
||
Recherche (afficher)
Recherche :

Utilisateur (masquer)
Apparence (afficher)
Stats (afficher)
15838 documents
455 astuces.
550 niouzes.
3107 definitions.
447 membres.
8121 messages.

Document genere en :
0,12 seconde

Mises à jour :
Mises à jour du site
Citation (masquer)
La croyance que rien ne change provient soit d’une mauvaise vue, soit d’une mauvaise foi. La première se corrige, la seconde se combat.

Friedrich Nietzsche
 
l'infobrol
Nous sommes le Mardi 12 Décembre 2017, 05:43, toutes les heures sont au format GMT+1.00 Heure, heure d'hiver