Acasă Dezvoltare Ce este alocarea registrului? - definiție din techopedia

Ce este alocarea registrului? - definiție din techopedia

Cuprins:

Anonim

Definiție - Ce înseamnă alocare de înregistrare?

Alocarea registrelor se referă la practica de a atribui variabile la registre, precum și la gestionarea transferului de date în și în afara acestora. Se poate produce alocarea registrului:

  • Pe un bloc de bază, cunoscut sub numele de alocare de registru local
  • Pe o întreagă funcție sau procedură, cunoscută sub numele de alocare de registru global
  • Peste granițele funcțiilor traversate cu ajutorul unui grafic de apeluri, cunoscut sub denumirea de alocare a registrului inter-procedural

Techopedia explică alocarea registrului

Pe parcursul compilării, compilatorul ar trebui să determine modul în care variabilele sunt alocate unui interval mic, specific de registre. Unele dintre variabile pot să nu fie utilizate sau se spune că sunt „live” simultan. Acest lucru duce la alocarea unor registre la mai multe variabile. Cu toate acestea, nu pot fi alocate două variabile directe simultane în același registru fără a strică valoarea.


Variabilele care nu pot fi alocate unor registre trebuie să fie stocate în memoria RAM și ar trebui să fie încărcate în și în fiecare pentru citire și scriere, respectiv, o procedură cunoscută sub numele de vărsare. Accesarea registrelor este mult mai rapidă decât accesarea memoriei RAM. În plus, grăbește timpul de execuție al programului compilat; prin urmare, compilatoare eficiente urmăresc să aloce cât mai multe variabile registrelor.


În general, majoritatea alocatorilor de registre alocă fiecare variabilă memoriei principale sau unui registru de procesare centrală (CPU). Viteza este avantajul esențial atunci când utilizați un registru. Calculatoarele au o gamă finită de registre, ceea ce înseamnă că nu toate variabilele disponibile pot fi alocate registrelor. Procesul de mutare a unei variabile dintr-un registru în memorie este cunoscut sub numele de vărsare, în timp ce procedura inversă a mutării unei variabile dintr-o memorie într-un registru este cunoscută sub numele de umplere. Alocarea inteligentă a registrelor este un pas crucial pentru orice compilatoare.


Există două tipuri de alocare a registrelor:

  • Alocare registru local: Acesta este un proces de alocare a unui bloc de bază (sau a unui hiper bloc sau super bloc) simultan. Alocarea registrelor locale crește viteza.
  • Alocarea registrului global: Dacă utilizarea registrului este slabă folosind alocarea locală, este important să se utilizeze alocarea registrului global. În alocarea simplă a registrului global, valorile cele mai active sunt alocate în fiecare buclă interioară. Alocarea completă a registrelor globale folosește o procedură pentru a identifica intervalele live într-un grafic de flux, pentru a atribui game live și, de asemenea, pentru a diviza intervalele, după cum este necesar.
Ce este alocarea registrului? - definiție din techopedia