Information Technology Reference
In-Depth Information
Bei eingeschalteter Speicherverwaltung (siehe Spezialregister
status
), wird jede vir-
tuelle Befehls- und Datenadresse mit Hilfe der TLBs in eine reale Adresse übersetzt.
Kommt es zu einem Fehler, z.B. weil sich der entsprechende Eintrag nicht in einem
der TLBs befindet, wird nach dem deaktivieren der Speicherverwaltungseinheit die
virtuelle Zugriffsadresse sowie Adressraumkennung in die lesbaren und schreibba-
ren Spezialregister
tlb.req.vaddr
bzw.
tlb.req.asi
übergetragen. Die zur potentiellen
Umsetzung einer virtuellen Adresse belegten Einträge der TLBs, sind über den Spe-
zialregistersatz
tlb.cur
n
zugreifbar. Neben der tatsächlichen virtuellen Adresse und
Adressraumkennung in
tlb.cur
n
.vaddr
bzw.
tlb.cur
n
.asi
können die realen Adressen
und die Attribute der verwalteten Seiten über die jedem TLB zugeordneten Spezial-
register
tlb.cur
n
.paddr
eingesehen werden. Durch einen Schreibzugriff darauf lässt
sich zur virtuellen Adresse in
tlb.req.vaddr
und der Adressraumkennung in
tlb.req.asi
ein vorhandener Eintrag verändern oder löschen.
Auf den Spezialregistersatz
tlb
kann man vom Abstraktionsgrad abhängig entweder
im Supervisor- und PAL-Modus oder nur im PAL-Modus zugreifen. Nach dem
Reset sind nur die konstanten Spezialregister
tlb.info
,
tlb.pgsz
und
tlb.sz
initialisiert.
Insbesondere sind die TLBs undefiniert. Bevor man die Speicherverwaltung akti-
viert, müssen daher alle Einträge als ungültig gekennzeichnet werden, indem die
virtuelle Adresse in
tlb.req.vaddr
für jeden TLB in einer Schleife inkrementiert und
dabei
tlb.cur
n
.paddr
jeweils mit 0 beschrieben wird. Die Anzahl der Scheifendurch-
läufe ist dem Register
tlb.szn
zu entnehmen.
31
6
5
4
3
2
0
tlb.info
undefiniert
u
inst
data
tlb.pgsz
n
undefiniert
pgsz
tlb.sz
n
undefiniert
sz
tlb.req.vaddr
vaddr
undefiniert
i/d
tlb.req.asi
undefiniert
asi
tlb.cur
n
.vaddr
vaddr
undefiniert
tlb.cur
n
.asi
undefiniert
asi
tlb.cur
n
.paddr
paddr
pol
v
a
d
r w x
5432
pr
hit
31
9
8
7
6
1
0
tlb.info.inst:
Instruction-TLB-Count
. Enthält die Anzahl der für Befehlszugriffe benutzten TLBs.
tlb.info.data:
Data-TLB-Count
. Enthält die Anzahl der für Datenzugriffe benutzten TLBs.
tlb.info.u:
Unified
. Zeigt an, dass die TLBs für Befehls- und Datenzugriffe getrennt (
u
= 0) oder
nicht getrennt sind (
u
= 1).
tlb.pgsz
n
:
Page-Size
. Enthält die als Zweierpotenz (2
pgsz
) codierte Seitengröße des TLBs.
tlb.req.vaddr:
Requested
-
Virtual-Address
. Enthält die virtuelle Adresse mit der auf die Speicherver-
waltungseinheit zugegriffen werden kann, um einen Eintrag auszulesen bzw. neu
anzulegen. Bei Auftreten einer
Page-Fault-Exception
ist hier die fehlerverursachende
virtuelle Adresse gespeichert.
tlb.req.asi:
Requested-Address-Space-Identifier
. Enthält die Adressraumkennung mit der auf die
Speicherverwaltungseinheit zugegriffen werden kann, um einen Eintrag auszulesen
bzw. neu anzulegen. Bei Auftreten einer
Page-Fault-Exception
ist hier die Kennung
des dabei angesprochenen Adressraums gespeichert.
Search WWH ::
Custom Search