Article de reference

Registre du processeur

Une description du niveau de transfert de registre (RTL) d'un registre 8 bits avec une implémentation détaillée, montrant comment 8 bits de données peuvent être stockés à l'aide...

Une description du niveau de transfert de registre (RTL) d'un registre 8 bits avec une implémentation détaillée, montrant comment 8 bits de données peuvent être stockés à l'aide de bascules .

Un registre de processeur est un emplacement rapidement accessible disponible pour le processeur d'un ordinateur . Les registres se composent généralement d'une petite quantité de stockage rapide , bien que certains registres aient des fonctions matérielles spécifiques et puissent être en lecture seule ou en écriture seule. Dans l'architecture informatique , les registres sont généralement adressés par des mécanismes autres que la mémoire principale , mais peuvent dans certains cas se voir attribuer une adresse mémoire , par exemple DEC PDP-10 , ICT 1900. [

Presque tous les ordinateurs, qu'ils soient dotés ou non d'une architecture de chargement/stockage , chargent des éléments de données d'une mémoire plus grande dans des registres où ils sont utilisés pour des opérations arithmétiques , des opérations binaires et d'autres opérations, et sont manipulés ou testés par des instructions machine . Les éléments manipulés sont ensuite souvent stockés dans la mémoire principale, soit par la même instruction, soit par une instruction ultérieure. Les processeurs modernes utilisent une mémoire vive (RAM) statique ou dynamique comme mémoire principale, cette dernière étant généralement accessible via un ou plusieurs niveaux de cache .

Les registres du processeur se situent généralement au sommet de la hiérarchie de la mémoire et constituent le moyen le plus rapide d'accéder aux données. Le terme désigne normalement uniquement le groupe de registres directement codés dans le cadre d'une instruction, comme défini par le jeu d'instructions . Cependant, les processeurs modernes à hautes performances ont souvent des doublons de ces « registres architecturaux » afin d'améliorer les performances via le renommage des registres , ce qui permet une exécution parallèle et spéculative . La conception x86 moderne a acquis ces techniques vers 1995 avec les sorties des Pentium Pro , Cyrix 6x86 , Nx586 et AMD K5 .

Lorsqu'un programme informatique accède aux mêmes données de manière répétée, on parle de localité de référence . Le stockage des valeurs fréquemment utilisées dans des registres peut être essentiel aux performances d'un programme. L'allocation des registres est effectuée soit par un compilateur lors de la phase de génération de code , soit manuellement par un programmeur en langage assembleur .

Taille

Les registres sont normalement mesurés par le nombre de bits qu'ils peuvent contenir, par exemple, un registre 8 bits , un registre 32 bits , un registre 64 bits , un registre 128 bits ou plus. Dans certains jeux d'instructions , les registres peuvent fonctionner selon différents modes, décomposant leur mémoire de stockage en parties plus petites (32 bits en quatre parties de 8 bits, par exemple) dans lesquelles plusieurs données (vecteur ou tableau unidimensionnel de données) peuvent être chargées et traitées en même temps. En général, cela est mis en œuvre en ajoutant des registres supplémentaires qui mappent leur mémoire dans un registre plus grand. Les processeurs qui ont la capacité d'exécuter des instructions uniques sur plusieurs données sont appelés processeurs vectoriels .

Types

Un processeur contient souvent plusieurs types de registres, qui peuvent être classés en fonction des types de valeurs qu'ils peuvent stocker ou des instructions qui fonctionnent sur eux :

  • Les registres accessibles à l'utilisateur peuvent être lus ou écrits par des instructions machine. La division la plus courante des registres accessibles à l'utilisateur est une division en registres de données et registres d'adresses.
  • Les registres internes ne sont pas accessibles par les instructions et sont utilisés en interne pour les opérations du processeur.
  • Registres d'architecturesont les registres visibles par le logiciel et sont définis par une architecture. Ils peuvent ne pas correspondre au matériel physique si le renommage des registres est effectué par le matériel sous-jacent.

Les registres matériels sont similaires, mais se produisent en dehors des processeurs.

Dans certaines architectures (telles que SPARC et MIPS ), le premier ou le dernier registre du fichier de registres entiers est un pseudo-registre dans la mesure où il est programmé pour toujours renvoyer zéro lors de la lecture (principalement pour simplifier les modes d'indexation), et il ne peut pas être écrasé. Dans Alpha , cela est également fait pour le fichier de registres à virgule flottante. En conséquence, les fichiers de registres sont généralement cités comme ayant un registre de plus que le nombre d'entre eux réellement utilisables ; par exemple, 32 registres sont cités alors que seulement 31 d'entre eux correspondent à la définition ci-dessus d'un registre.

Exemples

Le tableau suivant indique le nombre de registres dans plusieurs architectures de processeurs classiques. Notez que dans les processeurs compatibles x86 , le pointeur de pile ( ESP) est compté comme un registre entier, même s'il existe un nombre limité d'instructions pouvant être utilisées pour opérer sur son contenu. Des mises en garde similaires s'appliquent à la plupart des architectures.

Bien que toutes les architectures listées ci-dessous soient différentes, presque toutes sont dans une configuration de base connue sous le nom d' architecture von Neumann , proposée pour la première fois par le mathématicien américano-hongrois John von Neumann . Il convient également de noter que le nombre de registres sur les GPU est bien plus élevé que sur les CPU.

Usage

Le nombre de registres disponibles sur un processeur et les opérations qui peuvent être effectuées à l'aide de ces registres ont un impact significatif sur l' efficacité du code généré par les compilateurs optimisants . Le nombre de Strahler d'un arbre d'expression donne le nombre minimum de registres requis pour évaluer cet arbre d'expression.

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index