Co to jest rejestr instrukcji?

Jeśli chodzi o sprzęt komputerowy, rejestr instrukcji to element w jednostce centralnej (CPU) komputera lub innego urządzenia, który przechowuje instrukcję programowania, która zostanie wykonana na początku następnego cyklu zegara, zgodnie z innymi częściami PROCESOR. Inne elementy procesora, takie jak dekoder instrukcji, opierają się na rejestrze instrukcji, który przechowuje te informacje, dzięki czemu można je zdekodować, rozwiązać i ostatecznie wykonać. W przypadku niektórych typów architektury mikroprocesorowej może istnieć więcej niż jeden rejestr instrukcji, dzięki czemu wiele instrukcji może być przetwarzanych w tym samym czasie, tworząc styl logiczny linii montażowej, znany jako potok. Ogólnie rzecz biorąc, nowe instrukcje są podawane do rejestru instrukcji przez inną część procesora, znaną jako licznik programu, który służy bardzo podobnemu celowi, ale może przejść do następnej instrukcji, podczas gdy informacje przechowywane w rejestrze instrukcji są wykonywane.

Rejestr to seria fizycznych przełączników na mikroprocesorze lub płytce drukowanej, które można włączać lub wyłączać, dzięki czemu każdy przełącznik jest równoważny bitowi. Gdy kilka przełączników, zwanych również zatrzaskami, jest połączonych, są one w stanie przechowywać dane binarne, takie jak liczby, które można zamienić na adresy pamięci lub kody instrukcji. Wewnątrz procesora rejestr instrukcji może przechowywać adres w pamięci komputera instrukcji, która jest wykonywana, lub, dla wydajności, może przechowywać samą instrukcję. Ta informacja jest przekazywana do rejestru przez inny rejestr zwany licznikiem programu, który w większości przypadków przeskakuje do następnej instrukcji do wykonania po przejściu bieżącej instrukcji.

Typy instrukcji przetwarzanych przez rejestry są ogólnie poleceniami języka asemblerowego niskiego poziomu, które są ostatecznie 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 asemblera działają na bardzo małą, bezpośrednią skalę. Jednym z przykładów jest wiersz kodu wysokiego poziomu, który 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 z nich jest czymś prostym, takim jak tasowanie wartości między pamięcią o dostępie swobodnym komputera (RAM) a rejestrem narzędzi.

Gdy rejestr instrukcji odwołuje się do instrukcji, jest ona przekazywana do dekodera instrukcji, dzięki czemu można ją przekształcić w kod maszynowy. Odwołania do lokalizacji w pamięci, które mogą przechowywać zmienne lub inne informacje, są rozwiązywane i informacje te są czasami umieszczane w innych rejestrach. W końcu zostanie wykonana właściwa instrukcja. W tym czasie licznik programu będzie zwiększany przez CPU, aby wskazywał następną instrukcję, która będzie przechowywana przez rejestr instrukcji, aby proces mógł się powtarzać, dopóki cały program nie zostanie wykonany.