Qu'est-ce qu'un registre de processeur?
L'accès le plus rapide à la mémoire stockable sur une unité de traitement d'ordinateur (CPU) est un registre de processeur. Les architectures informatiques conçoivent la capacité de la mémoire de registre du processeur dans une mémoire cache de la CPU afin que les valeurs auxquelles accèdent régulièrement les processus informatiques puissent y être stockées. Les processus peuvent accéder et s'exécuter rapidement en fonction de ces valeurs stockées. Étant donné que les registres du processeur sont stockés dans la CPU, ils sont considérés comme le sommet de la hiérarchie de la mémoire de stockage et l’allocation est généralement déterminée par des variables. Une fois les données traitées, elles sont restaurées dans la mémoire cache, la mémoire vive (RAM) ou le stockage sur disque dur.
Les processeurs informatiques possèdent des registres de types différents, en fonction d'instructions ou de tests les concernant, ou en fonction de leur contenu spécifique. Les registres de données, d'adresses et d'usage général contiennent des valeurs mathématiques et des adresses pour le stockage en mémoire. Il existe des registres conditionnels avec des valeurs de vérité pour les instructions d'opérations logiques, des registres de constante avec des valeurs en lecture seule telles que pi et zéro et des registres à usage spécial qui conservent un compteur de programme, un registre d'état et des pointeurs de pile pour l'utilisation de la mémoire de pile. Les registres de contrôle contiennent des instructions provenant d'un jeu d'instructions intégré à l'architecture de la CPU; et il en existe plusieurs qui extraient de la RAM et des circuits de la CPU qui accèdent aux mémoires tampons, aux données de la mémoire, aux plages de types de mémoire et aux adresses. Les variables non affectées à un registre de processeur sont stockées dans la RAM et chargées en entrée et en sortie pour les opérations de lecture et d'écriture, mais leur traitement est plus lent.
Connaissant la différence de vitesse entre le traitement dans les registres et la RAM, les développeurs de programmes informatiques du compilateur conçoivent généralement leurs programmes de manière à fonctionner le plus possible dans la mémoire de registres du processeur afin de permettre l’exécution rapide des fonctions. Pour les programmes de compilateur juste à temps, une technique d'allocation de registres connue sous le nom d'allocation de balayage linéaire permet de suivre les opérations de registre et de libérer rapidement la puissance de calcul des registres pour le programme. Les techniques d'attribution de registre tentent d'obtenir le plus grand nombre possible de variables du programme attribuées à des registres et dans un flux d'opérations qui maximise le plus petit nombre de registres pour une compilation rapide.
Comme de nombreux registres de processeurs sont destinés au stockage temporaire de variables et de jeux d'instructions, toutes les opérations destinées à être utilisées par le programme peuvent être stockées pour être manipulées par la CPU. En cours de fonctionnement, la CPU recherche d’abord dans le cache de la CPU des registres une copie de toutes les données à traiter en lecture, écriture ou déplacement, avant de rechercher la mémoire vive et le stockage secondaire sur les disques durs. Depuis 2011, la plupart des processeurs conservent trois caches individuels. Les caches d'instructions concernent les extractions d'exécution par instruction, un tampon de ressemblance de traduction accélère la traduction d'adresse d'adresses virtuelles à physiques, et un cache de données contient un stockage hiérarchique à plusieurs niveaux de données à manipuler par un jeu d'instructions de registres de processeurs.