Taula de continguts:
Definició: què significa l'assignació de registre?
L’assignació del registre es refereix a la pràctica d’assignar variables als registres, així com a la gestió de la transferència de dades dins i fora dels registres. Es pot produir una assignació de registre:- En un bloc bàsic, conegut com assignació de registre local
- Durant tota una funció o procediment, coneguda com assignació de registre global
- Per sobre dels límits de funcions recorreguts mitjançant un gràfic de trucades, conegut com assignació de registre inter-procedimental
Techopedia explica Assignació de registre
Durant el curs de la compilació, el compilador ha de determinar la forma en què s'assignen les variables a un petit i específic registre de registres. Algunes de les variables poden no estar en ús o es diu que són "en directe" simultàniament. Això condueix a l'assignació d'alguns registres a diverses variables. No obstant això, no es poden assignar dues variables en directe simultànies al mateix registre sense corrompre el valor.
Les variables que no es poden assignar a alguns registres han de ser emmagatzemades a la memòria RAM i s’han de carregar dins i fora per a cada lectura i escriptura, respectivament, un procediment conegut com a vessament. L’accés als registres és molt més ràpid que l’accés a la memòria RAM. A més, accelera el temps d’execució del programa compilat; per tant, els compiladors eficients tenen com a objectiu assignar tantes variables als registres que puguin.
Generalment, la majoria dels assignadors de registre assignen totes les variables a la memòria principal o al registre de la unitat de processament central (CPU). La velocitat és el principal avantatge quan s’utilitza un registre. Els ordinadors presenten un rang finit de registres, el que significa que no totes les variables disponibles es poden assignar als registres. El procés de desplaçament d'una variable d'un registre a la memòria es coneix com a vessament, mentre que el procediment invers de trasllat d'una variable de memòria a un registre es coneix com a ompliment. L’assignació de registre intel·ligent és un pas crucial per a qualsevol compilador.
Hi ha dos tipus d'assignació de registre:
- Assignació de registre local: és el procés d’assignar un bloc bàsic (o hiper bloc o super bloc) alhora. L’assignació del registre local augmenta la velocitat.
- Assignació de registres globals: si l'ús de registres és pobre mitjançant l'assignació local, és important fer ús de l'assignació de registre global. En una assignació de registre global simple, els valors més actius s’assignen a cada bucle intern. L'assignació completa del registre global utilitza un procediment per identificar intervals en viu en un gràfic de flux de control, assignar intervals en viu i també dividir intervals segons sigui necessari.
