Article de reference

Registre du processeur

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

Description au niveau de transfert de registre (RTL) d'un registre 8 bits avec 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 une zone de stockage rapidement accessible au processeur d'un ordinateur . Les registres sont généralement constitués d'une petite quantité de mémoire vive , bien que certains registres aient des fonctions matérielles spécifiques et puissent être en lecture seule ou en écriture seule. En 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 pour les DEC PDP-6 / PDP-10 et ICT 1900.

Presque tous les ordinateurs, qu'ils soient à architecture de type chargement/stockage ou non, chargent des données depuis une mémoire plus grande vers des registres où elles sont utilisées pour des opérations arithmétiques , des opérations bit à bit et d'autres opérations, et sont manipulées ou testées par les instructions machine . Les données manipulées sont ensuite souvent stockées 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 mémoire et offrent le moyen le plus rapide d'accéder aux données. Ce terme désigne habituellement l'ensemble des registres directement encodés dans une instruction, conformément au jeu d'instructions . Cependant, les processeurs modernes hautes performances possèdent souvent des copies de ces « registres architecturaux » afin d'améliorer les performances grâce au renommage des registres , permettant ainsi l'exécution parallèle et spéculative . L'architecture x86 moderne a intégré ces techniques vers 1995 avec la sortie des Pentium Pro , Cyrix 6x86 , Nx586 et AMD K5 .

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

bits : registre 8 bits , 32 bits , 64 bits , 128 bits , etc. Dans certains jeux d’instructions , les registres peuvent fonctionner selon différents modes, en divisant leur mémoire en sous-ensembles (un registre 32 bits en quatre sous-ensembles 8 bits, par exemple) permettant de charger et de traiter simultanément plusieurs données (vecteur ou tableau unidimensionnel ). Cette fonctionnalité est généralement implémentée en ajoutant des registres supplémentaires qui mappent leur mémoire dans un registre plus grand. Les processeurs capables d’exécuter une seule instruction sur plusieurs données sont appelés processeurs SIMD .

Types

Un processeur contient souvent plusieurs types de registres, qui peuvent être classés selon les types de valeurs qu'ils peuvent stocker ou les instructions qui opèrent sur eux :

  • Registres architecturauxle renommage des registres est effectué par le matériel sous-jacent.
  • Les registres matériels sont similaires, mais se trouvent en dehors des processeurs.

    Dans certaines architectures (comme SPARC et MIPS ), le premier ou le dernier registre du fichier de registres d'entiers est un pseudo-registre : il est configuré pour toujours renvoyer zéro à la lecture (principalement pour simplifier les modes d'indexation) et ne peut pas être modifié. Dans Alpha , ce principe s'applique également au fichier de registres à virgule flottante. De ce fait, on indique souvent que les fichiers de registres contiennent un registre de plus que le nombre réellement utilisable ; par exemple, on indique 32 registres alors que seuls 31 correspondent à la définition d'un registre.

    Exemples

    Le tableau suivant présente le nombre de registres dans plusieurs architectures de processeurs courantes. Bien que toutes les architectures listées ci-dessous diffèrent, la plupart reposent sur une configuration de base appelée architecture de von Neumann , proposée initialement par le mathématicien hungaro-américain John von Neumann . Il est également à noter que le nombre de registres sur les GPU est bien supérieur à celui des CPU.

    efficacité du code généré par les compilateurs optimisants . Le nombre de Strahler d'un arbre d'expressions indique le nombre minimal de registres requis pour évaluer cet arbre.

    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