Rejestr stanu maszyny - Machine state register
Rejestr stanu maszyny ( MSR ) jest jednym z trzech rejestrów sterujących procesem obecnych w PowerPC architektury procesora.
Procesory
Szczegóły implementacji rejestru stanu maszyny będą się różnić w zależności od modelu. Poniżej znajdują się dwie reprezentatywne implementacje, 32-bitowy rdzeń Freescale e200z3 PowerPC i 64-bitowy IBM PowerPC .
Rdzeń e200z3 PowerPC
Zastosowania rejestru stanu maszyny
Ten 32-bitowy rejestr kontroluje i/lub raportuje kilka ważnych stanów procesora.
Mnemoniczny | Opis |
---|---|
UCLE | Włącza/wyłącza wykonywanie instrukcji blokowania pamięci podręcznej w przestrzeni użytkownika |
SPE | Włącza/wyłącza instrukcje wektorowe |
MY | Włącza/wyłącza zarządzanie energią |
CE | Włącza/wyłącza krytyczne przerwania |
EE | Włącza/wyłącza przerwania zewnętrzne |
PR | Identyfikuje, czy procesor jest w trybie administratora czy użytkownika |
FP | Identyfikuje dostępność sprzętowej jednostki zmiennoprzecinkowej |
JA | Włącza/wyłącza przerwania sprawdzania maszyny |
FE0 | Ustawia tryb wyjątków zmiennoprzecinkowych |
DE | Włącz/wyłącz przerwania debugowania |
WF1 | Ustawia tryb wyjątków zmiennoprzecinkowych |
JEST | Ustawia przestrzeń adresową instrukcji |
DS | Ustawia przestrzeń adresową danych |
Odczytywanie i zapisywanie rejestru stanu maszyny
Zawartość rejestru mogą być odczytywane za pomocą przejście z maszyny Państwowego Rejestru ( mfmsr ) pouczenie i mogą być modyfikowane poprzez wykonanie powrotu z przerwania ( RFI , RFCI , rfdi ), wywołania systemowego ( sc ) i przenieść do maszynowego państwowego rejestru ( mtmsr ) instrukcje.
PowerPC
Zastosowania rejestru stanu maszyny
Ten 64-bitowy rejestr kontroluje i/lub zgłasza kilka ważnych stanów procesora.
Mnemoniczny | Opis |
---|---|
SF | Wybiera tryb 32-bitowy/64-bitowy |
HV | Wybiera stan hiperwizora |
EE | Włącz/wyłącz zewnętrzne przerwania |
PR | Wybiera uprzywilejowany lub problematyczny stan |
FP | Raportuje dostępność zmiennoprzecinkową |
JA | Włącza/wyłącza przerwania sprawdzania maszyny |
FE0 | Wybierz tryb wyjątku trybu zmiennoprzecinkowego |
SE | Włącza/wyłącza śledzenie jednoetapowe |
BYĆ | Włącza/wyłącza śledzenie gałęzi |
WF1 | Wybierz tryb wyjątku zmiennoprzecinkowego |
IR | Włącz/wyłącz tłumaczenie adresu instrukcji |
DR | Włącz/wyłącz translację adresów danych |
PMM | Znak monitora wydajności |
RI | Podaje, czy przerwanie jest (nie)odzyskiwalne |
LE | Wybiera tryb Little-Endian lub Big-Endian (nie G5 ) |
Odczytywanie i zapisywanie rejestru stanu maszyny
Rejestr stanu maszyny można odczytać za pomocą instrukcji mfmsr i zmodyfikować za pomocą instrukcji mtmsr[d] , rfid i hrfid .
Zamieszanie z rejestrem specyficznym dla modelu
Chociaż rejestr stanu maszyny znajdujący się w architekturze PowerPC i rejestry specyficzne dla modelu występujące w architekturach IA-32 i x86-64 spełniają podobne funkcje, a inicjalizacja „MSR” może odnosić się do obu, istnieją ważne różnice, które je odróżniają. Rejestr stanu maszyny, pojedynczy rejestr, zapewnia zgrubną kontrolę nad niewielką liczbą funkcji maszyny. W przeciwieństwie do tego, w najnowszych architekturach IA-32 i x86_64 istnieją dziesiątki do setek rejestrów specyficznych dla modelu, które zapewniają znacznie większą szczegółowość zarówno raportowania, jak i kontroli stanu maszyny. Termin „rejestr stanu maszyn” nie pojawia się w dokumentacji Intela i AMD ; podobnie „rejestr specyficzny dla modelu” nie pojawia się w dokumentacji IBM i Freescale .