Kiedy przeczytałem o architekturze MIPS, natrafiłem na rejestry cieni, które są kopiami rejestrów ogólnego przeznaczenia.Co to są rejestry cienia w MIPS i jak są używane?
Nie mogłem zrozumieć: Kiedy używane są rejestry cienia?
Kiedy przeczytałem o architekturze MIPS, natrafiłem na rejestry cieni, które są kopiami rejestrów ogólnego przeznaczenia.Co to są rejestry cienia w MIPS i jak są używane?
Nie mogłem zrozumieć: Kiedy używane są rejestry cienia?
Rejestry cienia MIPS służą do zmniejszenia obciążenia rejestru/magazynu w obsłudze przerwań. Przerwanie, do którego przypisany jest zestaw rejestrów cieni, nie wymaga zapisania żadnego z istniejącego kontekstu w celu zapewnienia wolnych rejestrów lub załadowania danych specyficznych dla przerwania, przechowywanych w rejestrach cienia przy wejściu do procedury obsługi przerwania; przy wyjściu obsługi przerwań nie jest konieczne zapisywanie kontekstu obsługi przerwań ani przywracanie poprzedniego kontekstu.
ARM zapewnia podobną funkcjonalność, jak nazywane rejestry bankowe. (W przypadku ARM replikowane są tylko niektóre z GPR.)
Rozszerzenie specyficzne dla aplikacji MIPS o wielowątkowości rozszerza wykorzystanie zestawów rejestrów cienia, aby stać się kontekstami wątków. (Zestawy rejestru cienia w efekcie obsługują bardzo ograniczoną formę wielowątkowości przy włączaniu zdarzeń, w której dodatkowe wątki są koncepcyjnie ograniczone do procedur obsługi przerwań i zdarzeń do przerwań).
Czy rejestratory cienia są widoczne dla programisty lub są ściśle używane przez sprzęt? – flashburn
@flashburn Są widoczne dla uprzywilejowanego oprogramowania (oczywiście program obsługi przerwań musi wiedzieć, że nie musi zapisywać stanu GPR); również "Uprzywilejowane oprogramowanie może potrzebować odniesienia do wszystkich GPR w pliku rejestru, nawet określonych rejestrów cienia, które nie są widoczne w bieżącym trybie." W tym celu używane są instrukcje RDPGPR i WRPGPR. " (Sekcja 7.1 Wprowadzenie do zestawów cieni, architektura MIPS dla programistów Volume III: MIPS64/microMIPS64 Privileged Resource Architecture, Rev. 6.00). –