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