Innholdsfortegnelse:
Definisjon - Hva betyr registreringstildeling?
Registerfordeling refererer til praksisen med å tilordne variabler til registre samt håndtere overføring av data inn og ut av registre. Registreringstildeling kan skje:- På en grunnleggende blokk, kjent som lokal registerfordeling
- Over en hel funksjon eller prosedyre, kjent som global registerallokering
- Over funksjonsgrenser krysset ved hjelp av en samtalegraf, kjent som inter-prosessuell registerallokering
Techopedia forklarer Registerallokering
I løpet av samlingen skal kompilatoren bestemme måten variabler skal tildeles til et lite, spesifikt utvalg av registre. Noen av variablene er kanskje ikke i bruk eller sies å være "live" samtidig. Dette fører til å tilordne noen registre til flere variabler. Ikke desto mindre kan ikke to samtidig levende variabler tildeles nøyaktig samme register uten å ødelegge verdien.
Variabler som ikke kan tildeles til noen registre, må lagres i RAM og bør lastes inn og ut for hver henholdsvis lese- og skriveprosedyre, en prosedyre kjent som søl. Å få tilgang til registre er mye raskere enn tilgang til RAM. I tillegg fremskynder det utførelsestiden for det kompilerte programmet; Derfor tar effektive kompilatorer sikte på å tilordne så mange variabler til registre som de kan.
Generelt tilordner de fleste registerallokatorer hver variabel til hovedminne eller et sentralt prosesseringsenhetsregister (CPU). Hastighet er den viktigste fordelen når du bruker et register. Datamaskiner har et begrenset utvalg av registre, noe som betyr at ikke alle tilgjengelige variabler kan tildeles registre. Prosessen med å flytte en variabel fra et register til minnet er kjent som søl, mens den omvendte prosedyren for å flytte en variabel fra minne til et register er kjent som fylling. Intelligent tildeling av register er et viktig skritt for alle kompilatorer.
Det er to typer registerfordeling:
- Lokal registerallokering: Dette er en prosess med tildeling av en grunnblokk (eller hyperblokk eller superblokk) om gangen. Lokal registerfordeling øker hastigheten.
- Global registerallokering: Hvis registerutnyttelsen er dårlig ved bruk av lokal tildeling, er det viktig å benytte seg av global registerallokering. I enkel global registerallokering tildeles de mest aktive verdiene i hver indre sløyfe. Full global registerallokering bruker en prosedyre for å identifisere liveområder i en kontrollflytgraf, tilordne liveområder og også dele områder etter behov.
