I registri ombra MIPS vengono utilizzati per ridurre il carico del registro/memorizzare l'overhead nella gestione degli interrupt. Un interrupt a cui è assegnato un set di registri di ombre non ha bisogno di salvare alcun contesto esistente per fornire registri liberi o caricare tutti i dati specifici di interrupt memorizzati nei registri ombra alla voce del gestore di interrupt; all'uscita dal gestore di interrupt non è necessario salvare il contesto del gestore di interrupt o ripristinare il contesto precedente.
ARM offre una funzionalità simile a quella che chiama registri a pila. (Per ARM, solo alcuni dei GPR sono replicati.)
L'estensione specifica dell'applicazione multithreading MIPS estende l'utilizzo dei set di registri shadow per diventare contesti del thread. (I registri shadow supportano in effetti una forma molto limitata di multithreading switch-on-event dove i thread aggiuntivi sono concettualmente limitati agli interrupt handler e agli eventi agli interrupt.)
fonte
2015-07-15 11:12:10
I registri ombra sono visibili al programmatore o sono strettamente usato dall'hardware? – flashburn
@flashburn Sono visibili al software privilegiato (ovviamente il gestore di interrupt deve sapere che non deve salvare lo stato GPR); anche "Il software privilegiato potrebbe dover fare riferimento a tutti i GPR nel file di registro, anche a specifici registri ombra che non sono visibili nella modalità corrente.Le istruzioni RDPGPR e WRPGPR sono utilizzate a questo scopo." (Sezione 7.1 Introduzione ai Shadow Set, Architettura MIPS per i programmatori Volume III: Architettura delle risorse privilegiate MIPS64/microMIPS64, Rev. 6.00). –