Hjem Udvikling Hvad er registerallokering? - definition fra techopedia

Hvad er registerallokering? - definition fra techopedia

Indholdsfortegnelse:

Anonim

Definition - Hvad betyder Registreringstildeling?

Registreringstildeling henviser til praksis med at tildele variabler til registre samt håndtere overførsel af data ind og ud af registre. Registreringstildeling kan forekomme:

  • På en grundlæggende blok, kendt som lokal registerallokering
  • Over en hel funktion eller procedure, kendt som global registerallokering
  • Over funktionsgrænser gennemgået ved hjælp af en opkaldsgraf, kendt som inter-procedurel registerallokering

Techopedia forklarer Register Tildeling

Under kompilationsforløbet skal kompilatoren bestemme, hvordan variabler tildeles til et lille, specifikt område af registre. Nogle af variablerne er muligvis ikke i brug eller siges at være "live" samtidig. Dette fører til at tildele nogle registre til flere variabler. Ikke desto mindre kan ingen to samtidige live-variabler tildeles til det nøjagtige samme register uden at ødelægge værdien.


Variabler, der ikke kan tildeles til nogle registre, skal gemmes i RAM og skal indlæses og ud for hver læsning og skrivning henholdsvis en procedure, der kaldes spilling. Adgang til registre er meget hurtigere end adgang til RAM. Derudover fremskynder det udførelsestiden for det kompilerede program; Derfor sigter effektive samlere mod at tildele så mange variabler til registre, som de kan.


Generelt tildeler de fleste registerallokatorer hver variabel til hovedhukommelsen eller et centralt behandlingsenhedsregister (CPU). Hastighed er den vigtigste fordel ved brug af et register. Computere har en begrænset række registre, hvilket betyder, at ikke alle de tilgængelige variabler kan tildeles registre. Processen med at skifte en variabel fra et register til hukommelsen kaldes spilling, medens den omvendte procedure med at flytte en variabel fra hukommelse til et register kaldes udfyldning. Intelligent tildeling af register er et vigtigt trin for enhver kompilator.


Der er to typer registerfordeling:

  • Lokal registerallokering: Dette er en proces med tildeling af en basisblok (eller hyperblok eller superblok) ad gangen. Lokal registerallokering øger hastigheden.
  • Global registerallokering: Hvis registerudnyttelsen er dårlig ved hjælp af lokal allokering, er det vigtigt at gøre brug af global registerallokering. Ved simpelt global registerallokering tildeles de mest aktive værdier i hver indre sløjfe. Fuld global registerallokering bruger en procedure til at identificere liveintervaller i en kontrolflowgraf, tildele liveintervaller og også opdele intervaller efter behov.
Hvad er registerallokering? - definition fra techopedia