Spisu treści:
Definicja - Co oznacza przydział rejestracji?
Przydział rejestrów odnosi się do praktyki przypisywania zmiennych do rejestrów, a także obsługi przesyłania danych do i z rejestrów. Przypisanie rejestru może nastąpić:- W bloku podstawowym, zwanym alokacją rejestru lokalnego
- W ramach całej funkcji lub procedury, zwanej globalną alokacją rejestru
- Przekroczono granice funkcji za pomocą wykresu wywołań, znanego jako alokacja rejestru między procedurami
Techopedia wyjaśnia Rejestracja Alokacji
W trakcie kompilacji kompilator powinien określić sposób przydzielania zmiennych do małego, określonego zakresu rejestrów. Niektóre zmienne mogą nie być używane lub mówi się, że są jednocześnie „aktywne”. Prowadzi to do przypisania niektórych rejestrów do wielu zmiennych. Niemniej jednak nie można przydzielić dwóch równoczesnych zmiennych aktywnych do tego samego rejestru bez uszkodzenia wartości.
Zmienne, których nie można przypisać do niektórych rejestrów, muszą być przechowywane w pamięci RAM i powinny być ładowane i zapisywane odpowiednio dla każdego odczytu i zapisu, zgodnie z procedurą znaną jako rozlewanie. Dostęp do rejestrów jest znacznie szybszy niż dostęp do pamięci RAM. Ponadto przyspiesza czas wykonywania skompilowanego programu; dlatego wydajne kompilatory mają na celu przypisanie do rejestrów możliwie największej liczby zmiennych.
Zasadniczo większość osób przydzielających rejestry przypisuje każdą zmienną do pamięci głównej lub rejestru centralnej jednostki przetwarzającej (CPU). Szybkość to podstawowa zaleta przy korzystaniu z rejestru. Komputery mają ograniczony zakres rejestrów, co oznacza, że nie wszystkie dostępne zmienne można przypisać do rejestrów. Proces przenoszenia zmiennej z rejestru do pamięci jest znany jako rozlewanie, podczas gdy odwrotna procedura przenoszenia zmiennej z pamięci do rejestru jest znana jako wypełnianie. Inteligentna alokacja rejestru jest kluczowym krokiem dla każdego kompilatora.
Istnieją dwa rodzaje przydziału rejestrów:
- Przydział rejestru lokalnego: Jest to proces przydzielania jednego bloku podstawowego (lub hiper-bloku lub super-bloku) na raz. Przydział rejestru lokalnego przyspiesza.
- Globalna alokacja rejestru: jeśli wykorzystanie rejestru jest słabe przy użyciu alokacji lokalnej, ważne jest, aby skorzystać z alokacji rejestru globalnego. W prostej globalnej alokacji rejestru najbardziej aktywne wartości są przydzielane w każdej wewnętrznej pętli. Pełny globalny przydział rejestrów wykorzystuje procedurę do identyfikacji zakresów aktywnych na grafie kontrolnym, przypisania zakresów aktywnych, a także podzielenia zakresów zgodnie z wymaganiami.
