TLB
Abkürzung von Translation Lookaside Buffer.
TLB: die Speicheradress-Abkürzung der CPU.
Ein Translation Lookaside Buffer ist ein kleiner, schneller Zwischenspeicher, der sich in oder sehr nah bei einem Prozessorkern befindet und speichert aktuelle Übersetzungen von virtuellen in physische Speicheradressen. Wenn Software auf einer CPU Daten unter einer virtuellen Speicheradresse anfordert, muss die MMU (Memory Management Unit) normalerweise die Page Table im RAM konsultieren, um die entsprechende physische Adresse zu finden. Dieser Zugriff ist langsam. Der TLB fängt diese Anfragen ab und gibt eine gecachte Übersetzung in einem Zyklus zurück, wenn das Adressenpaar kürzlich verwendet wurde, und umgeht die Page Table komplett.
Die TLB-Kapazität wird in Einträgen gemessen, typischerweise zwischen 16 und 512 je nach Prozessorauslegung und Cache-Ebene. Ein moderner x86-64-Prozessor könnte separate TLBs für Befehle und Daten haben, jede mit mehreren Ebenen: ein L1-TLB, das winzig und sehr schnell ist, und ein L2-TLB, das größer aber etwas langsamer ist. Wenn eine virtuelle Adresse nicht im TLB gefunden wird, tritt ein TLB-Miss auf und der Prozessor muss die Page Table durchlaufen, eine teure Operation, die die Ausführung um hunderte Zyklen blockieren kann.
Leistung und Systemverhalten
Die TLB-Effizienz wird kritisch in Workloads, die große Speicherbereiche berühren oder schlechte Lokalität haben. Ein Prozess, der Gigabytes an Daten durchsucht, kann häufige Misses erfahren, wenn die Seitengröße festgelegt ist (üblicherweise 4 kB unter Linux x86) und der TLB keine Übersetzungen für das Workingset halten kann. Viele Systeme unterstützen jetzt mehrere Seitengrößen: zusätzlich zu 4-kB-Seiten reduzieren 2-MB- oder 1-GB-Huge-Pages die Anzahl der benötigten Übersetzungen, verbrauchen aber mehr Speicher und sind schwerer zu verwalten.
Wenn ein Prozesskontext wechselt, wird der TLB typischerweise ungültig, weil die virtuellen Adressen des neuen Prozesses auf unterschiedliche physische Speicherbereiche abbilden. Die meisten modernen CPUs kennzeichnen TLB-Einträge mit einer Prozesskennung (ASID oder Process Context ID), um vollständige Löschungen zu vermeiden, obwohl einige ältere Systeme den gesamten TLB bei jedem Wechsel leeren müssen. Fachleute, die Echtzeit-Steuerungssysteme oder Hochfrequenz-Handelssysteme optimieren, profilieren TLB-Miss-Raten oft mit Performance-Countern und stimmen Seitengröße und Prozessaffinität ab, um Cache-Hit-Raten zu maximieren.
Der Begriff Lookaside Buffer spiegelt die Architektur wider: Der TLB sitzt neben dem Hauptausführungspfad und wird parallel mit anderer Adressübersetzungslogik konsultiert. Er ist eine von mehreren unsichtbaren, aber leistungskritischen Strukturen, die die wahrgenommene Speichergeschwindigkeit von echter RAM-Latenz trennen, zusammen mit L1-, L2- und L3-Befehls- und Datencaches.