66 - 12.1.7 Adressraumkonzepte: TLB und virtueller Adressraum [ID:27048]
50 von 116 angezeigt

Nun eine ganz wichtige Komponente bei diesen Abbildungsvorgängen im Zusammenhang mit logischen

Adressreihen, so sei es jetzt nun halt seitennummerierte Adressen, die wir abbilden müssen auf reale

Adressen oder segmentierte Adressen, die dann halt abzubilden sind, ist der Übersetzungspuffer,

der TLB, Translation Look-Aside Buffer. Wir müssen einfach hinter den Hinterkopfbalken,

dass ja jede dieser Art von die Referenzierung, die wir gerade besprochen haben, in indirekten

Zugriff über eine oder mehrere Tabellen im Hauptspeicher geht. Und wenn man jetzt,

da man ja ein Objekt überhaupt im Hauptspeicher adressieren muss, dazu denn noch mal über mehrere

Tabellen im Hauptspeicher laufen muss, bei jeder einzelnen Adresse würde man enorme Zugriffslatenzen

bekommen, die unsere Programmausführung enorm langsam werden lässt. Das ist also nicht praktisch,

das heißt man muss halt eine Vorkehrung treffen, um diese Latenzen, die man denn bekommt, wenn man

die Tabellen praktisch selektiert, wenn man die Diskriptoren aus den Tabellen halt auslesen

möchte, um diese Latenzen halt verbergen zu können. Und dazu gehen diese Pufferungstechnik. Das ist

ein Cache, ein Zwischenspeicher für das Übersetzungsergebnis. Also das ist nicht so ein Daten-

oder Instruction-Cache, wie wir den normalerweise bei den Prozessoren halt haben, sondern hier wird

sozusagen ein Übersetzungsergebnis von einer logischen zu einer realen Adresse halt zwischengespeichert,

sodass man denn, wenn diese Übersetzung noch mal durchgeführt werden muss, nicht über die Tabellen

gehen muss, sondern man direkt in diesem Cache, in diesem TLB sozusagen das Ergebnis findet. Das ist

ein Adressenatürtivspeicher, der relativ klein ist, wo man denn sowas wie Segment- und Seitenindex der

Adresse, logisch virtuellen Adresse eben als einen Suchschlüssel typischerweise vorzuliegen hat.

Nun, der Cache ist klein, der TLB ist klein, viel kleiner als die Tabellen ausmachen, dem zur Folge

wird es Umsetzungsfehler gehen, wie man das typischerweise bei solchen Caches halt hat.

Das ist ja sogar ein Lookup-Miss, der halt auftreten kann, wo man hofft, dass er nicht so häufig

auftritt, aber er wird immer auftreten und die Folge dieses Umsetzungsfehlers ist denn eine

Tabellenwanderung, nämlich über die Seitensegment-Tabellen, um denn diese Abbildung

durchführen zu können und dann das Abbildungsergebnis, wenn man die Abbildungen

durchführen kann, im Cache zu speichern. Nun, da kann man diese Wanderung in der

Hardware ablaufen lassen, das sind die sogenannten Hardware-geführten TLBs, denn es ist so, dass die

CPU dann praktisch tatsächlich diese Tabellen, die Seitensegment-Tabellen, abläuft und man denn

nur den Trepp von der CPU bekommt, wenn die Tabellenwanderung erfolglos war. Das heißt also,

man konnte die Abbildung nicht durchführen. Das ist praktisch eine in Hardware implementierte

Management-Unit, die man so beim Intel-Prozessor kennt oder Power-PCs halt etwa kennt. Die andere

Variante ist, dass man diese Tabellenwanderung softwaregeführt durchführt, dann ist es

Betriebssystem, was de facto diese Tabellen abläuft. Das heißt also, man würde denn diesen

Lookup-Miss, diesen Umsetzungsfehler als einen unmittelbaren Trepp der CPU verstehen, also wenn

man also nichts im TLB findet für die entsprechende logische virtuelle Adresse, die jetzt hier

referenziert werden würde, gibt es sofort den Trepp und der Trepp wird im Betriebssystem behandelt

und das Betriebssystem würde demzufolge denn die Seiten- oder Segment-Tabellen, je nach Adressraum

Modell, was man da implementiert, denn ablaufen ist ein sogenannter in Software implementierte

Management-Unit, die man dann halt dort eigentlich einführt. Prozessoren wie MIPS und Alpha-Prozessoren,

die verwenden so eine Variante. Da hat man natürlich halt den Vorteil des Software geführt,

dass man sich eigentlich beliebige Memory-Management-Units und Konzepte der

Abbildung denn letztendlich zusammenbauen kann im Betriebssystem und dann so eine

Abbildungsvorgänge sehr speziell auf das Adressraum Modell, das man implementieren möchte,

zuschneidern kann im Endeffekt. Nun, die haben alle ihre Vor- und Nachteile. Wir würden eben eine

höhere Auffüllzeit des TLBs haben, wenn wir praktisch diese Tabellenwanderung Software geführt

durchführen. Dafür haben wir dafür eine höhere Flexibilität. Hier wird diese Auffüllzeit

erheblich kürzer liegen, weil sie ja nicht in Software durchgeführt wird, sondern die CPU

selbst läuft diese Tabellen eben ab. Aber gleichwohl muss sie natürlich teure Speicherzugriffe

denn ausüben, um an die Diskretoren in diesen Tabellen reinzukommen. In beiden Fällen möchte

man diese Umsetzungsfehler eigentlich nicht haben. Man möchte eigentlich immer die ideale Sicht haben,

Teil eines Kapitels:
12.1 Adressraumkonzepte

Zugänglich über

Offener Zugang

Dauer

00:12:24 Min

Aufnahmedatum

2020-12-21

Hochgeladen am

2020-12-22 00:49:30

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen