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.
Search WWH ::




Custom Search