Hardware Reference
In-Depth Information
r
ist ein Bezugspunkt fur eine Tabelle von PTE im physischen Adress-
raum Die PTE fur Segment
i
stehen ab der Adresse 2
13
(
r
+
b
i
). Die dort
vorgefundene Tabelle bezeichnet man als
Root Tables
.
n
ist wiederum die Adressraumnummer, die zu der Angabe in den PTE
passen muss.
f
gibt an, ob die Adressubersetzung durch die Hardware (
f
=0)oder
durch Software durchgefuhrt wird (
f>
0).
Ab der Adresse 2
13
(
r
+
b
i
)mussen sich also im physischen Speicher die vom
Betriebssystem zur Verfugung gestellten Page Table Entries fur Segment
i
finden. Der fur die PTE nutzbare Bereich ist beschrankt auf die Adressen
von null bis 2
40
, weil 27 Bits zur Codierung von
r
vorgesehen sind. Fur
die ersten 1024 Seiten des Segments findet man ab dieser Adresse je einen
Page Table Entry. Da PTE 8 Byte lang sind, steht der PTE fur Seite
a
i
mit
0
· a
i
.
Die Zahl 2
13
spielt hier immer eine große Rolle, weil ein Block von 1024 PTE
zu je acht Byte genau 8
·
1024 = 2
13
Byte lang ist.
Page Table Entries fur Seiten mit Nummern oberhalb 1023 werden allerdings
anders organisiert. Zum besseren Verstandnis schieben wir zunachst als Bei-
spiel die Standardkonfiguration des Meta-Simulators ein.
≤ a
i
<
1024 des Textsegments an der physischen Adresse 2
13
(
r
+0)+8
8.3
8.3 Standardkonfiguration des Meta-Simulators
Wenn man den Meta-Simulator
mmmix
startet, so ist dort der Wert
rV
=
#369c
2004 0000 0000
als Standard vorgegeben. Dies bedeutet:
b
i
+1
− b
i
=3fur alle
i
,alsokonnen maximal 1024
3
Seiten je Segment
verwaltet werden.
Fur die Seitengroße gilt
s
=20
16
=32
10
, d.h. alle Seiten haben die im-
mense Große 2
32
, also 4 GGB.
r
= 200000
16
=2
21
n
=
f
=0
Damit wissen wir, dass ab den Adressen 2
13
·
(2
21
+
b
i
)=2
34
+2
13
· b
i
Page
Table Entries fur Segment
i
zu finden sind. Der Meta-Simulator sieht in der
Standardkonfiguration aber nur eine Seite je Segment vor. Das heißt, in jedem
Block von PTE ist nur der erste Eintrag belegt. Damit kann in jedem Seg-
ment nur auf Adressen innerhalb der ersten vier Gigabyte zugegriffen werden.
Zugriff auf großere Adressen fuhrt dazu, dass leere PTE gelesen werden (aus
Speicherbereichen, die mit 0 initialisiert sind), deren Protection Bits 0 sind