Blatt 0xA, Aufgabe 5

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Blatt 0xA, Aufgabe 5
Der TLB nimmt doch neben der virtuellen Adresse als Index und der physikalischen Adresse auch die Flags Write-enabled usw. auf. Werden die Flags nach wie vor in den letzten 12 Bits gespeichert?
In der Übung haben wir gesagt, dass das Present-Bit der Page-Table im TLB entfallen kann, da eine nicht existierende physikalische Adresse keinen Zweck im TLB hat oder der Eintrag sowieso durch das Valid-Bit als ungültig erklärt wird. Wird das Present-Bit dann von den Flag-Bits subtrahiert oder einfach ignoriert?


Nach meinem Wissen befindet sich in den letzten 12 Bits der Offset und die Flags sind explizit nochmal eigene Bits (man hat dann also mehr als die 32). Damit hätte sich dann auch das mit deiner 2. Frage erledigt bzw. dann würde das Present-Bit eben einfach ignoriert werden.
(alle Angaben ohne Gewähr)

Ich habe auch eine Frage:
Ist bei der 5a) der zusätzl. Satz „Ignorieren Sie dabei die Ersetzungsstrategie!“ so zu verstehen, dass ja eh klar ist welcher TLB-Eintrag ersetzt wird oder, dass es zu keiner Ersetzung kommt? Also normal hätte ich gesagt es ist offensichtlich welcher Eintrag ersetzt wird, aber der Satz verwirrt/verunsichert mich.


Die Offset Bits mit im TLB zu speichern ist aber nicht wirklich sinnvoll, weil man sie einfach von der gesuchten virtuellen Adresse kopieren kann.
Für die Aufgabe habe ich jetzt die Flags für die im TLB gespeicherten physikalische Adressen 1:1 kopiert.

So wie ich das verstehe brauchst du keine in den TLB eingefügten Einträge entfernen, wenn ein neuer hinzukommt. Der TLB stellt Platz für vier Einträge zur Verfügung, bei vier Zugriffen musst du also nichts rausschmeißen.


Also den Offset habe ich auch nicht gespeichert.
Bei den Flags bin ich schon ziemlich sicher, dass das Present-Bit ignoriert werden kann. Würde ja wenig Sinn machen, einen Eintrag, den man erst vom Auslagerungspeicher holen muss als validen Eintrag im Cache zu haben.

Habe ich genauso, Ich schmeiße nichts raus.


Aso ja ne hab mich bei deiner Frage iwi verlesen, sry. Ja - also im TLB is der Tag, ein Teil der phy. Adresse und die Flags. Aber die eigentliche Antwort auf deine Frage bleibt gleich - die sind imo nicht in den letzten 12 Bits mit dabei, sondern explizit noch.

Ja, aber man kann doch nich mehrere Einträge mit dem selbem Tag in den TLB speichern, oder? Wie soll er dann noch unterscheiden?


Das ist doch toll wenn man schon einen Hit hat. Bei einem Hit würde ich keinen Eintrag ergänzen (höchstens irgendeine Statusinformation setzten für Ersetzungsstrategien wie Last frequently/recently used, aber das dürfen wir in der Aufgabe ja vernachlässigen).


Oh, stimmt … facepalm haha :smiley:


Prinzipiell wird nur gespeichert, was nötig ist, oder architekturbedingt sinnvoller.

Deswegen 32 Bit-Adressen (Flags werden als Teil der Adresse codiert, nicht extra gespeichert!) in den Page-Tabellen, aber im TLB nur 20 Bit Adressen und die Flags (ohne Present) extra.

(bei 4KiB Pages, 32-Bit-Arch.)