Co to jest rejestr procesorów?

Najszybszy dostęp do pamięci możliwej do zapisania w jednostce przetwarzania komputera (CPU) to rejestr procesora. Procesor projektowy architektury komputerowej rejestruje pojemność pamięci w pamięci podręcznej procesora, dzięki czemu wartości, do których regularnie uzyskują dostęp procesy komputerowe, mogą być tam przechowywane. Procesy mogą szybko uzyskiwać dostęp i wykonywać się na podstawie tych przechowywanych wartości. Ponieważ rejestry procesora są przechowywane w procesorze, są uważane za szczyt hierarchii pamięci, a ich alokacja jest zwykle określana przez zmienne. Po przetworzeniu dane są następnie przywracane do pamięci podręcznej, pamięci o dostępie swobodnym (RAM) lub dysku twardego.

Procesory komputerowe mają rejestry różnych typów, zgodnie z instrukcjami lub testami, które na nich działają lub zgodnie z ich określoną zawartością. Rejestry danych, adresów i ogólnego przeznaczenia zawierają wartości matematyczne i adresy do przechowywania w pamięci. Istnieją rejestry warunkowe z wartościami prawdy dla instrukcji operacji logicznych, rejestry stałe z wartościami tylko do odczytu, takimi jak pi i zero, oraz rejestry specjalnego przeznaczenia, które przechowują licznik programu, rejestr stanu i wskaźniki stosu do wykorzystania pamięci stosu. Rejestry kontrolne zawierają instrukcje z zestawu instrukcji wbudowanego w architekturę procesora; i jest kilka, które pobierają z pamięci RAM i obwodów procesora, które uzyskują dostęp do buforów pamięci, danych pamięci, zakresów typów pamięci i adresów. Zmienne nieprzypisane do rejestru procesora są przechowywane w pamięci RAM i ładowane do i z operacji odczytu i zapisu, jednak ich przetwarzanie jest wolniejsze.

Znając różnicę szybkości między przetwarzaniem w rejestrach a pamięcią RAM, twórcy programów komputerowych kompilatorów zwykle projektują swoje programy tak, aby działały jak najwięcej w pamięci rejestrów procesora w celu szybkiego działania funkcji. W przypadku programów kompilatora just-in-time, technika alokacji rejestrów znana jako alokacja skanowania liniowego śledzi operacje rejestrów i szybko uwalnia moc obliczeniową rejestrów z powrotem do programu. Techniki alokacji rejestrów próbują uzyskać jak najwięcej zmiennych programu przypisanych do rejestrów oraz w przepływie operacji, który maksymalizuje najmniejszą liczbę rejestrów w celu szybkiej kompilacji.

Ponieważ wiele rejestrów procesora służy do tymczasowego przechowywania zmiennych i zestawów instrukcji, wszystkie operacje używane przez program mogą być przechowywane do manipulacji przez procesor. Podczas pracy procesor najpierw szuka w pamięci podręcznej rejestrów procesora kopii danych do przetworzenia w operacjach odczytu, zapisu lub przenoszenia, zanim spojrzy na pamięć RAM i dodatkową pamięć na dyskach twardych. Od 2011 r. większość procesorów przechowuje trzy indywidualne pamięci podręczne. Pamięć podręczna instrukcji zajmuje się pobieraniem wykonania według instrukcji, bufor podobny do translacji przyspiesza translację adresów dla adresów wirtualnych na fizyczne, a pamięć podręczna danych przechowuje wielopoziomowe hierarchiczne przechowywanie danych, którymi manipuluje zestaw instrukcji rejestru procesora.