Der TLB (Translation Lookaside Buffer, deutsch: „Seitenpuffer") ist ein kleiner, extrem schneller Cache in der CPU, der Übersetzungen virtueller Speicheradressen in physische Adressen zwischenspeichert. Er ist das Herz der Adress-Übersetzung und entscheidet maßgeblich über die Geschwindigkeit jedes Speicherzugriffs.
Warum braucht es den TLB?
Moderne Betriebssysteme arbeiten mit virtuellem Speicher: Jedes Programm sieht einen eigenen, zusammenhängenden Adressraum, den das Kernel in gleich große Seiten (typisch 4 KiB) aufteilt. Die Hardware-Einheit MMU (Memory Management Unit) übersetzt bei jedem Zugriff die virtuelle in die physische Adresse. Diese Übersetzung steht in einer Seitentabelle im Hauptspeicher — doch jeder Zugriff dorthin kostet zusätzliche Speicherzyklen, die den Betrieb massiv verlangsamen würden.
So funktioniert der TLB
Der TLB ist wie ein Cache-Speicher nur für Adress-Übersetzungen: Er merkt sich die zuletzt verwendeten Zuordnungen „virtuelle Seite → physischer Rahmen".
- TLB-Hit: Die Übersetzung ist im Puffer — die CPU erhält die physische Adresse in einem Takt.
- TLB-Miss: Die Übersetzung fehlt; die MMU durchläuft die Seitentabelle im Speicher (Page Table Walk), lädt den Eintrag in den TLB und der Zugriff wird wiederholt.
Ein TLB-Miss kostet mehrere Dutzend Takte. Deshalb haben moderne Prozessoren zwei Stufen: ein winziger L1-TLB (32–64 Einträge, ein Takt) und ein größerer L2-TLB (512–1500 Einträge). Viele Kerne trennen zusätzlich I-TLB (für Befehlsadressen) und D-TLB (für Datenadressen) — analog zur Harvard-Trennung bei Pipelining.
Kontextwechsel und Mehrkern-Systeme
Bei einem Kontextwechsel müssen TLB-Einträge des alten Prozesses ungültig sein. Moderne CPUs nutzen dafür die ASID (Address Space Identifier): Jeder Prozess bekommt eine Nummer, Einträge verschiedener ASIDs koexistieren im TLB, ohne dass der Puffer komplett geleert werden muss. Auf Mehrkern-Systemen muss ein Kern, der eine Seitentabelle ändert, die betroffenen TLB-Einträge aller anderen Kerne invalidieren — das sogenannte TLB-Shootdown.
Abgrenzung
Der TLB ist kein Daten-Cache: Der Cache-Speicher hält Inhalte (Befehle und Daten), der TLB hält ausschließlich Adress-Übersetzungen. Er gehört zur Mikroarchitektur der CPU und arbeitet hinter der Register-Bank bei jedem Laden und Speichern. Fehlt dem System Arbeitsspeicher für eine Seite, löst der Zugriff einen Page Fault aus — der Kernel lädt die Seite dann von der Festplatte nach.
Verwandte Grundlagen: Opcode, Instruktionssatz.