Virtuelle Adresse
Virtuelle Adresse
Da jedes Programm seinen eigenen Adressraum hat, heißt es, dass 2 verschidene Programme die gleiche virtuelle Adresse haben können, die sich auf verschiedene Physikalische Adressen abbilden, oder? In der Vorlesung wird das nur erwähnt, aber wird der Fall betrachtet, wenn die virtuelle Adressen einzigartig für das ganze System sind. Habe ich es richtig verstanden?
Re: Virtuelle Adresse
CPU erzeugt immer "gleiche" virtuelle Adressen. Virtuelle Seitennummer entspricht dabei einem Index der Seitentabelle. Mit Offset erfolgt sich die Navigation in der Seite. Die Frage ist jetzt, woher weiss CPU, dass er auf die richtige Seitentabelle zugreifft (gibt's ja mehrere). Antwort: es gibt ein Seitentabellenregister, der vom BS an den Anfang einer aktuellen Seitentabelle gesetzt wird als der Prozess zu einem aktiven wechselt.
Re: Virtuelle Adresse
Das ist mir klar. Aber stell dir vor, wenn du 2 Prozesse hast und jeder seine eigene Seitentabelle hat. Dann hast du noch ein TLB. 2 Prozesse haben die gleiche virtuelle Adressen, die eigene Seitentabellen geben anhand der virtuellen Adress die physikalische Adressen, die natürlich unterschidlich sind. Jetzt kommt die Frage - was wird in der TLB gespeichert? 

- Tigger
- Kernelcompilierer
- Beiträge: 404
- Registriert: 26. Okt 2007 17:35
- Wohnort: Hofheim
- Kontaktdaten:
Re: Virtuelle Adresse
Im tlb werden die zuletzt benutzen virtuellen und realen Speicheradressen zwischengespeichert. Der TLB ist quasi ein Cache für die Seitentabelle. Interessant ist allerdings was passiert, wenn ein Prozesswechsel stattfindet. So wie ich das sehe muss der TLB dann reseted werden, damit er nicht noch Zuweisungen des alten Prozesses enthält.
Re: Virtuelle Adresse
in den folien steht, der "TLB wird mit der virtuellen Seitennummer adressiert.". Stimmt das überhaupt?
Nichts ist wie es scheint!
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Zuletzt geändert von xAx am 14. Mär 2009 16:17, insgesamt 99-mal geändert.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Zuletzt geändert von xAx am 14. Mär 2009 16:17, insgesamt 99-mal geändert.
Re: Virtuelle Adresse
On a task switch, some TLB entries can become invalid, since for example the previously running process had access to a page, but the process to run has not. The simplest strategy to deal with this is to completely flush the TLB. Newer CPUs have more efficient strategies; for example in the Alpha EV6, each TLB entry is tagged with an "address space number" (ASN), and only TLB entries with an ASN matching the current task are considered valid.
Re: Virtuelle Adresse
Eigentlich ja, es werden aber nicht alle Bits für den Index benötigt. Es sieht wie ein Direct Mapped Cache. Siehe Kap 4, Teil 2, Folie 30.xAx hat geschrieben:in den folien steht, der "TLB wird mit der virtuellen Seitennummer adressiert.". Stimmt das überhaupt?
Re: Virtuelle Adresse
widerspruch dazu, dass ein tlb voll assoziativ ist?
Nichts ist wie es scheint!
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Zuletzt geändert von xAx am 14. Mär 2009 16:17, insgesamt 99-mal geändert.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Zuletzt geändert von xAx am 14. Mär 2009 16:17, insgesamt 99-mal geändert.
Re: Virtuelle Adresse
Ach, sorry, habs übersehen. Es soll doch vollassoziativ sein. Wahrscheinlich ist mit "adressiert" gemeint, dass man anhand der virt. Seitennummer den entsprechenden Eintrag findet (durch Vergleich, wie es beim Vollassoziativen Caches gemacht wird).
Re: Virtuelle Adresse
In den Folien steht zwar klar, dass der TLB vollaossiziativ ist (Folie 33 in Kapitel 4 Teil 2), andererseits steht dort auch, dass der Tag nur einen Teil der virtuellen Seitennummer enthält (Folie 29 ebda). Das passt meines Erachtens nicht zusammen: Für einen vollassoziativen Cache müsste ich doch bei jedem Eintrag die gesamte vituelle Seitennummer vergleichen, um den passenden Eintrag zu finden, oder?
Re: Virtuelle Adresse
Im Buch steht, dass der TLB vollassoziativ ist.