Registre de processeur

Registre de processeur

Registre (informatique)

Page d'aide sur l'homonymie Pour les articles homonymes, voir Registre.

En architecture des ordinateurs, un registre est un emplacement de mémoire interne à un processeur. Les registres se situent au sommet de la hiérarchie mémoire : il s'agit de la mémoire au meilleur temps d'accès, mais dont le coût de fabrication est le plus élevé car la place dans un microprocesseur est limitée. Leur nombre dépasse les quelques Mo 2 à 3 sur la dernière génération de processeur en cache L2 et L3 sur les dernier modèle de phenom sur Socket AM3.

Une architecture externe de processeur définit un ensemble de registres, dits architecturaux, qui sont accessibles par son jeu d'instructions. Ils constituent l'état externe (architectural) du processeur. Cependant, une réalisation donnée d'une architecture externe (microarchitecture) peut contenir un ensemble différent de registres, qui sont en général plus nombreux que les registres architecturaux. Ils stockent non seulement l'état externe du processeur, mais aussi celui de sa microarchitecture : valeurs opérandes, indicateurs, etc. Ce dernier état est utilisé exclusivement par la microarchitecture, et n'est pas visible par le jeu d'instructions (architecture)[1].

La plupart des architectures modernes sont qualifiées de load-store : les programmes transfèrent d'abord des données de la mémoire centrale vers des registres, puis effectuent des opérations sur ces registres, et enfin transfèrent le résultat en mémoire centrale.

Sommaire

Utilisation des registres

On rencontre souvent les registres suivants :

Compteur ordinal 
Indique l'emplacement de la prochaine instruction à être exécutée. Autres termes : compteur de programme, pointeur d'instruction.
Pointeur de pile 
Indique la position du prochain emplacement disponible dans la pile mémoire.
Registre d'instruction 
Contient l'instruction en cours pendant son exécution.
Accumulateur 
Dans certaines architectures, stocke les résultats des opérations arithmétiques et logiques.
Registre d'index 
Utilisé comme index lorsqu'on utilise le mode d'adressage du même nom.
Registre d'état 
Décrit l'état du processeur. Il est le plus souvent interprété bit à bit. Autre terme : drapeaux.

Certains registres sont destinés à stocker des adresses (les deux premiers dans la liste ci-dessus), d'autres des données.

Sur certaines architectures, tout ou partie des registres spécialisés sont remplacés par un ensemble de registres d'usage général interchangeables (parfois notés R0, R1, etc.). Par exemple, le Motorola 68000 dispose de 8 registres de données banalisés (D0 à D7) et de 8 registres d'adresses (A0 à A7, banalisés sauf A7 qui sert de pointeur de pile).

Il est possible de faire correspondre les registres avec des adresses mémoire, typiquement à partir de 0 (c’est-à-dire que les cases mémoire d'adresse 0 à 31 pourront correspondre aux registres R0 — R31). C'est par exemple le cas des 16 registres du PDP-10. Les programmeurs astucieux désirant optimiser le temps d'exécution d'une boucle de code avaient donc la possibilité de la stocker dans les registres. Cette méthode évidemment marginale et dépendante de l'architecture de l'ordinateur montre la versatilité des registres généraux.

Réalisation physique

Divers procédés ont été retenus pour la réalisation des registres, notamment de la RAM statique, d'abord sous forme de bascules individuelles, puis plus récemment sous forme de bancs de registres.

Exemple de l'architecture x86/IA-32

Le 8088 comporte quatre registres généraux de 16 bits appelés AX, BX, CX, DX. Cependant, son jeu d'instructions comportes quelques spécialisations[2] :

  • BX est utilisé comme registre d'index (adressage dit de base) ;
  • CX sert à contrôler des boucles introduites par l'instruction LOOP ;
  • DX est utilisé pour certaines divisions.

Il comporte également quatre registres de segment appelés :

  • CS (Code Segment) : sera utilisé chaque fois qu'il s'agit d'une adresse du « code » (du programme), c’est-à-dire de IP.
  • DS (Data Segment) : sera utilisé chaque fois qu'il s'agit d'une adresse de « données », c'est-à-dire des variable du programme, autrement dit, tous les « registres de données » (AX, BX,CX, DX) et également SI pour les « instructions de string » (voir « ES » ci-dessous).
  • SS (Stack Segment) : utilisé avec les registres SP et BP. La pile sert par exemple à garder en mémoire les contenus des registres CS et IP lors de l'exécution d'instructions call ou des interruptions.
  • ES : utilisé essentiellement avec le registre DI pour les « instructions de string » (« string primitive instructions ») qui permettent des transferts d'emplacements en mémoire contigus (« en chaîne »).

Autres registres

Certains de ces registres peuvent se trouver dans le microprogramme du processeur. Sur architecture x86, pour le mode protégé :

  • GDTR où est stockée l'adresse de la table globale de descripteurs ( GDT )
  • LDTR où est stockée l'adresse de la table locale de descripteurs ( LDT ) du processus courant (voir (en) Local Descriptor Table)
  • IDTR où est stockée l'adresse et la taille de l'IDT (Interrupt Descriptor Table).
  • TR où est stockée l'adresse du TSS du processus courant.
  • CR0 (Control Register 0 ou MSWR pour Machine Status Word Register) où sont stockés des indicateurs pour l'ensemble du système (activation de la segmentation et de la pagination entre autres).
  • CR3 (Control Register 3 ou PDBR pour Page Directory Base Register) où est stockée l'adresse du Page Directory courant (pagination).

Voir aussi

Notes et références

  1. B. Shriver et B. Smith, The Anatomy of a High-Performance Microprocessor : A Systems Perspective. The IEEE Computer Society, 1998, p. 88.
  2. Programmer en langage machine sur PC, Hölger Schäkel, Micro Application, 1991. Chapitre 2.

Articles connexes

  • Portail de l’informatique Portail de l’informatique
Ce document provient de « Registre (informatique) ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Registre de processeur de Wikipédia en français (auteurs)

Игры ⚽ Поможем сделать НИР

Regardez d'autres dictionnaires:

  • Processeur central — Processeur « CPU » redirige ici. Pour les autres significations, voir CPU (homonymie) …   Wikipédia en Français

  • Registre a decalage — Registre à décalage En électronique et en informatique, un registre à décalage est un registre de taille fixe dans lequel les bits sont décalés à chaque coup d horloge (dans le cas d un système synchrone sur l horloge). Un registre à décalage est …   Wikipédia en Français

  • Processeur — « CPU » redirige ici. Pour les autres significations, voir CPU (homonymie). La puce d un microprocesseur Intel 80486DX2 dans son boîtier (taille réelle : 12 × 6,75 mm) …   Wikipédia en Français

  • Registre (informatique) — Pour les articles homonymes, voir Registre. Un registre est un emplacement de mémoire interne à un processeur. Les registres se situent au sommet de la hiérarchie mémoire : il s agit de la mémoire au meilleur temps d accès, mais dont le coût …   Wikipédia en Français

  • Processeur de signal numérique — Un DSP (de l anglais « Digital Signal Processor », qu on pourrait traduire par « processeur de signal numérique ») est un microprocesseur optimisé pour les calculs. Son application principale est le traitement numérique du… …   Wikipédia en Français

  • Registre d'index — Un registre d index est un des registres d un processeur d ordinateur : il participe à la modification de l adresse d un opérande durant l exécution d un programme, par exemple pour faire des opérations répétitives sur plusieurs éléments d… …   Wikipédia en Français

  • Registre multiplicateur-quotient — Un registre multiplicateur quotient est un registre dans lequel est placé le multiplicateur avant l exécution d une multiplication et où se trouve le quotient après l exécution d une instruction de division. Portail de l’informatique Catégorie  …   Wikipédia en Français

  • registre — ● n. m. ● 1. ►PUCE Anciennement appelé accumulateur. Emplacement mémoire interne au processeur et où l on place les données à traiter ainsi que les instructions, et où l on trouve quelques millionnièmes de seconde plus tard les résultats des… …   Dictionnaire d'informatique francophone

  • Micro-processeur — Microprocesseur Un microprocesseur est un processeur dont les composants ont été suffisamment miniaturisés pour être regroupés dans un unique circuit intégré. Fonctionnellement, le processeur est la partie d’un ordinateur qui exécute les… …   Wikipédia en Français

  • Μ-processeur — Microprocesseur Un microprocesseur est un processeur dont les composants ont été suffisamment miniaturisés pour être regroupés dans un unique circuit intégré. Fonctionnellement, le processeur est la partie d’un ordinateur qui exécute les… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”