Speicherhierarchie und Leistung
Was ist der Hauptgrund, weshalb bei L1-Caches häufig das VIPT-Verfahren (virtuell indiziert, physisch getaggt) verwendet wird?
- AWeil keine physische Adresse benötigt wird und der TLB entfallen kann
- BWeil allein anhand der virtuellen Adresse entschieden wird und der Cache bei jedem Prozesswechsel geleert werden kann
- CWeil bereits parallel mit dem Lesen des Cache-Satzes begonnen werden kann, während der TLB die Adresse umsetzt
Antwort und Erläuterung anzeigen
Antwort: C. Weil bereits parallel mit dem Lesen des Cache-Satzes begonnen werden kann, während der TLB die Adresse umsetzt
Beim VIPT-Verfahren wird der Cache-Satz mit Bits innerhalb der Seite ausgewählt, die nicht umgesetzt werden müssen; das Auslesen des Satzes kann daher gleichzeitig mit der Umsetzung in die physische Adresse durch den TLB beginnen. Da zuletzt mit dem Tag der physischen Adresse verglichen wird, kommt es nicht zu Verwechslungen, wenn ein anderer Prozess dieselbe virtuelle Adresse verwendet. Der TLB wird benötigt, um das physische Tag zu erhalten, und kann nicht entfallen. Dass der Cache bei jedem Prozesswechsel geleert werden muss, ist ein Nachteil von Verfahren mit Tags aus virtuellen Adressen.