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