Hardware Reference
In-Depth Information
Abbildung 8.1.
Zuordnung von Seiten aus den virtuellen Speicherbereichen zweier
Prozesse (links und rechts) zum physischen Speicher (Mitte)
Anwenderprogramm kann nicht auf negative Adressen zugreifen, weder lesend
noch schreibend, noch zum Ausfuhren von Code. Wird es dennoch versucht,
so lost der Prozessor einen Interrupt aus. Code von negativen Adressen kann
nur uber
TRAP
-Befehle oder nach Interrupts (dynamische
TRAP
s) ausgefuhrt
werden. An welchen negativen Adressen die Programmausfuhrung fortgesetzt
wird, steht in den Spezialregistern
rT
und
rTT
[1]. Die Inhalte dieser Regis-
ter sowie die Befehle, die nach einem
TRAP
ausgefuhrt werden, entziehen sich
aber der Kontrolle des Anwenders.
Der Anwenderspeicher bei
MMIX
ist in vier Segmente eingeteilt: Textsegment,
Datensegment, Poolsegment und Stacksegment [1]. Bei der binaren Darstel-
lung positiver Adressen konnen die beiden Bits nach dem Vorzeichenbit als
Segmentnummer interpretiert werden. Tabelle 8.1 fasst die Details zusam-
men.
Im Gegensatz zu einem Anwenderprogramm kann ein Betriebssystem auf den
kompletten physischen Speicher zugreifen.
MMIX
wurde so konzipiert, dass er
mit maximal 2
48
Byte physischem Speicher umgehen kann. Das Betriebs-
system kann uber die negativen Adressen linear auf den Speicher zugreifen,
wobei das Vorzeichenbit beim Speicherzugriff invertiert wird. Es greift also
mit der Adresse
#8000 0000 0000 0000
auf die Adresse 0 des physischen
Speichers zu usw. Uber Adressen, die großer sind als 2
48
, wird der Zugriff
auf Gerate ermoglicht. Man spricht hierbei von
Memory-Mapped I/O
.Die
Steuerregister von Hardwaregeraten, wie etwa Grafikkarten, Netzwerkkarten
und Bussystemen werden in den physischen Adressraum jenseits der Adresse
2
48
eingeblendet.