Vous êtes sur la page 1sur 4

Registre (informatique) 1

Registre (informatique)
Pour les articles homonymes, voir Registre.

Cet article est une ébauche concernant l’informatique.


Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

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 de niveau 2 et 3
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.

Utilisation des registres


On rencontre souvent les registres suivants :
• compteur ordinal : indique l'emplacement de la prochaine instruction à être exécutée (synonymes : 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 (synonyme : 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.
Registre (informatique) 2

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


Cet article ou cette section doit être recyclé.
Une réorganisation et une clarification du contenu sont nécessaires. Discutez des points à améliorer en page de discussion.

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).
Registre (informatique) 3

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.

Voir aussi

Articles connexes
• Banc de registres
• Fenêtre de registres
• Processeur
• Microprocesseur
• Microcontrôleur
• Registre à décalage

• Portail de l’informatique
Sources et contributeurs de l’article 4

Sources et contributeurs de l’article


Registre (informatique)  Source: http://fr.wikipedia.org/w/index.php?oldid=58365698  Contributeurs: Badmood, Bollzy, Ce`dric, ChrisJ, Dake, Deul, Emirix, Franck Dernoncourt, Gdgourou,
Goban, Greudin, Grimlock, Ivanoff, Kyro, Lmaltier, MetalGearLiquid, Metalheart, Mig, MisterMatt, Nikita-Alias, Nono64, Orthogaffe, Oz, Perdupan, Poil, Pulsar, Romanc19s, Roudoule, Sam
Hocevar, Sebleouf, Shados, Stanlekub, Stefp, T, Xmlizer, Zetud, 13 modifications anonymes

Source des images, licences et contributeurs


Image:Disambig colour.svg  Source: http://fr.wikipedia.org/w/index.php?title=Fichier:Disambig_colour.svg  Licence: Public Domain  Contributeurs: User:Bub's
Image: Crystal mycomputer.png  Source: http://fr.wikipedia.org/w/index.php?title=Fichier:Crystal_mycomputer.png  Licence: inconnu  Contributeurs: Dake, Rocket000
Fichier:Recycle002.svg  Source: http://fr.wikipedia.org/w/index.php?title=Fichier:Recycle002.svg  Licence: GNU Free Documentation License  Contributeurs: user:bayo
Fichier:Crystal mycomputer.png  Source: http://fr.wikipedia.org/w/index.php?title=Fichier:Crystal_mycomputer.png  Licence: inconnu  Contributeurs: Dake, Rocket000

Licence
Creative Commons Attribution-Share Alike 3.0 Unported
http:/ / creativecommons. org/ licenses/ by-sa/ 3. 0/

Vous aimerez peut-être aussi