Information Technology Reference
In-Depth Information
(siehe Bild A.2). Ein Zugriff bezieht sich jeweils auf die über grm.glb.bank selek-
tierte Registerbank, wobei Registerbank 1 für den Benutzermodus, Registerbank 2
für den Supervisor-Modus, Registerbank 3 für den PAL-Modus und die Register-
bänke 4 bis 7 zur Bearbeitung von Unterbrechungen der Prioritäten 1 bis 3 bzw. der
nicht maskierbaren Unterbrechung (NMI, non maskable interrupt) reserviert sind.
Falls versucht wird eine nicht vorhandene Registerbank durch explizites Setzen des
Registers grm.glb.bank zu aktivieren, kommt es zu einer Global-Registerbank-
Undefined-Exception . Dabei wird automatisch die für diesen Zweck reservierte
Registerbank 0 aktiviert.
grm.glb.v = 0
grm.glb.v = 1
r0
r0
Lokal
Lokal
r8
r8
grm.glb.bank
Global
r14
r14
a
b
Bild A.2. Unterteilung des Registerspeichers a in nur lokale Register ( grm.glb.v = 0) und b in
lokale und globale Register ( grm.glb.v = 1)
A.2 Spezialregister
Spezialregister dienen der Statusabfrage und Steuerung von Prozessoren mit Neme-
sis-Architektur. Ein expliziter Zugriff darauf ist mit Hilfe der Befehle rd und wr
möglich. Mit Ausnahme des Bedingungsregisters ccr sind Spezialregister abhängig
vom Abstraktionsgrad entweder im Supervisor- und PAL-Modus oder nur im PAL-
Modus ansprechbar, wobei im Normalfall der Zugriff auf die Prozessorabstraktions-
schicht eingeschränkt ist. Da ein Betriebssystem oder eine Anwendung im Supervi-
sor- oder Benutzermodus läuft, ist es i.Allg. nicht möglich, Spezialregister direkt zu
lesen oder zu verändern, weshalb diese in einem Prozessor mit Nemesis-Architektur
auch auf andere Weise realisiert sein dürfen als im Folgenden dargelegt (natürlich
mit Ausnahme des Bedingungsregisters ccr).
Bei einem erlaubten Lesezugriff auf ein Spezialregister sind die Inhalte von Feldern,
denen keine Funktionen zugeordnet sind, nicht definiert. Um spätere Erweiterungen
zu vereinfachen, darf schreibend nur mit einer 0 darauf zugegriffen werden. Gege-
benenfalls wird eine Compatability-Violation-Exception ausgelöst. Ein Zugriff auf
ein Spezialregister mit nicht ausreichenden Benutzerrechten löst eine Privilege-Vio-
lation-Exception aus, ohne dabei den Inhalt des adressierten Spezialregisters zu ver-
ändern. Des Weiteren führt ein Schreibzugriff auf nur lesbare Spezialregister zu
einer Illicit-Special-Register-Write-Access-Exception und der Zugriff auf ein nicht
definiertes Spezialregister zu einer Special-Register-Undefined-Exception .
Während mit dem Befehl wr das jeweilige Spezialregister explizit adressiert wird,
greifen viele Befehle implizit auf Spezialregister zu. Im Einzelnen sind dies: show ,
hide , alloc , free , allocshow , allochide , retx , retxr, retp, retpr und alle bedingungsre-
gisterauswertenden oder -verändernden Befehle. Darüber hinaus werden Spezialre-
gister auch bei Unterbrechungen, Ausnahmeanforderungen oder PAL-Aufrufen
automatisch modifiziert. Implizite Veränderungen sind mit dem jeweils nächsten
Search WWH ::




Custom Search