Virtuelle Adresse

Benutzeravatar
itportal2
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 236
Registriert: 25. Jan 2008 15:34
Wohnort: Darmstadt

Virtuelle Adresse

Beitrag von itportal2 »

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?

levitin
Kernelcompilierer
Kernelcompilierer
Beiträge: 435
Registriert: 7. Okt 2007 15:36
Wohnort: Darmstadt

Re: Virtuelle Adresse

Beitrag von levitin »

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.

Benutzeravatar
itportal2
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 236
Registriert: 25. Jan 2008 15:34
Wohnort: Darmstadt

Re: Virtuelle Adresse

Beitrag von itportal2 »

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? :)

Benutzeravatar
Tigger
Kernelcompilierer
Kernelcompilierer
Beiträge: 404
Registriert: 26. Okt 2007 17:35
Wohnort: Hofheim
Kontaktdaten:

Re: Virtuelle Adresse

Beitrag von Tigger »

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.

xAx
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 157
Registriert: 6. Mär 2008 17:20

Re: Virtuelle Adresse

Beitrag von xAx »

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.

Benutzeravatar
itportal2
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 236
Registriert: 25. Jan 2008 15:34
Wohnort: Darmstadt

Re: Virtuelle Adresse

Beitrag von itportal2 »

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.

Benutzeravatar
itportal2
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 236
Registriert: 25. Jan 2008 15:34
Wohnort: Darmstadt

Re: Virtuelle Adresse

Beitrag von itportal2 »

xAx hat geschrieben:in den folien steht, der "TLB wird mit der virtuellen Seitennummer adressiert.". Stimmt das überhaupt?
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
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 157
Registriert: 6. Mär 2008 17:20

Re: Virtuelle Adresse

Beitrag von xAx »

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.

Benutzeravatar
itportal2
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 236
Registriert: 25. Jan 2008 15:34
Wohnort: Darmstadt

Re: Virtuelle Adresse

Beitrag von itportal2 »

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).

Steven
Kernelcompilierer
Kernelcompilierer
Beiträge: 425
Registriert: 2. Sep 2008 10:00
Wohnort: Frankfurt am Main

Re: Virtuelle Adresse

Beitrag von Steven »

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?

Benutzeravatar
itportal2
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 236
Registriert: 25. Jan 2008 15:34
Wohnort: Darmstadt

Re: Virtuelle Adresse

Beitrag von itportal2 »

Im Buch steht, dass der TLB vollassoziativ ist.

Antworten

Zurück zu „Archiv“