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 .

Bibliografia