Co to jest rejestr instrukcji?
Pod względem sprzętu komputerowego rejestr instrukcji jest elementem w centralnej jednostce przetwarzającej (CPU) komputera lub innego urządzenia, które przechowuje instrukcję programowania, która zostanie wykonana na początku następnego cyklu zegarowego, zgodnie z innymi częściami PROCESOR. Inne elementy CPU, takie jak dekoder instrukcji, polegają na rejestrze instrukcji do przechowywania tych informacji, aby można je było dekodować, rozwiązywać i ostatecznie wykonywać. W przypadku niektórych typów architektury mikroprocesorów może istnieć więcej niż jeden rejestr instrukcji, dzięki czemu można przetwarzać wiele instrukcji jednocześnie, tworząc styl logiczny na linii montażowej znany jako potok. Zasadniczo nowe instrukcje są przekazywane do rejestru instrukcji przez inną część procesora znaną jako licznik programu, który służy do bardzo podobnego celu, ale może przejść do następnej instrukcji, podczas gdy informacja przechowywana w rejestrze instrukcji jest wykonywana.
Rejestr to szereg fizycznych przełączników mikroprocesora lub płytki drukowanej, które można włączać i wyłączać, dzięki czemu każdy przełącznik jest równoważny bitowi. Gdy kilka przełączników, zwanych także zatrzaskami, jest połączonych, mogą one przechowywać dane binarne, takie jak liczby, które można przekształcić w adresy pamięci lub kody instrukcji. Wewnątrz procesora rejestr instrukcji może przechowywać adres w pamięci komputera wykonywanej instrukcji lub, dla wydajności, może przechowywać samą instrukcję. Informacje te są przekazywane do rejestru przez inny rejestr zwany licznikiem programu, który w większości przypadków przeskakuje do następnej instrukcji, która ma zostać wykonana po przekazaniu bieżącej instrukcji.
Rodzaje instrukcji przetwarzanych przez rejestry są na ogół niskopoziomowymi poleceniami języka asemblera, które ostatecznie są tłumaczone na kod maszynowy lub kod bajtowy. Różnią się one wyraźnie od instrukcji w językach programowania wyższego poziomu, ponieważ instrukcje montażu działają w bardzo małej, bezpośredniej skali. Jednym z przykładów jest linia kodu wysokiego poziomu, która dodaje dwie liczby razem i przechowuje wyniki w zmiennej, która wymaga tylko jednego wiersza kodu wysokiego poziomu do wyrażenia. Po skompilowaniu kodu można wygenerować kilkanaście instrukcji w celu wykonania zadania, przy czym każda instrukcja jest czymś prostym, na przykład tasowanie wartości między pamięcią RAM komputera a rejestrem narzędzia.
Gdy instrukcja jest odwoływana do rejestru instrukcji, jest przekazywana do dekodera instrukcji, aby instrukcja mogła zostać przekształcona w kod maszynowy. Odwołania do lokalizacji pamięci, które mogą zawierać zmienne lub inne informacje, są rozwiązywane i informacje te są czasami umieszczane w innych rejestrach. Na koniec zostanie wykonana rzeczywista instrukcja. W tym czasie licznik programu będzie zwiększany przez CPU, aby wskazać następną instrukcję, która będzie przechowywana przez rejestr instrukcji, aby proces mógł się powtarzać, aż cały program zostanie wykonany.