Was ist ein Übersetzungs-Lookaside-Puffer?
Die Zentraleinheit (CPU) eines Computers verfügt über ein Cache-System, den so genannten Translation Lookaside Buffer (TLB), der für die Übersetzung des physischen Speichers in den virtuellen Speicher zuständig ist. Dies ist ein separates Cache-System, da die CPU diesen Cache schneller nach Speicheradressen durchsucht, als ihn im regulären Cache abzulegen. Zum Speichern von Speicheradressen verwendet der TLB Seitentabelleneinträge, die eine Zuordnung zwischen virtuellen und physischen Speicheradressen bilden. Wenn der Übersetzungs-Lookaside-Puffer verwendet wird, kann es entweder zu einem TLB-Treffer oder -Fehltreffer kommen, was bedeutet, dass der Speicher gefunden wurde oder unbekannt ist. Computer können mit mehreren verschiedenen TLB-Ebenen geliefert werden, um mehr Speicheradressinformationen zu speichern.
Wenn aus physischem Speicher virtueller Speicher wird, kann der Computer durch Erstellen eines Cache-Speichers die tatsächliche Speicherposition leicht ermitteln. Diese Informationen können im Haupt-CPU-Cache abgelegt werden, was jedoch zu mehreren Problemen führt. Um diese Daten zu speichern, müssen verschiedene Zugriffsebenen verwendet werden, was den gesamten Prozess verlangsamt. Ein Übersetzungs-Lookaside-Puffer durchsucht diese Ebenen und hilft der CPU, den richtigen Speicherplatz zu finden, damit die Daten geöffnet werden können.
Der Übersetzungs-Lookaside-Puffer verwendet ein Seitentabellensystem, das die Übersetzungsbereiche des virtuellen Speichers kategorisiert. Wenn aus dem physischen Speicher ein virtueller Speicher wird, z. B. wenn ein Dokument gespeichert oder ein Programm verwendet wird, speichert der TLB diese Übersetzung. Der TLB speichert nicht die Informationen selbst, sondern den Speicherort, wodurch der Speicher effizienter wird.
Um eine Datei oder irgendetwas in der Speicherarchitektur zu finden, durchsucht die CPU den Computer. Der erste Schritt der CPU ist die Verwendung des Übersetzungs-Lookaside-Puffers, um festzustellen, ob der Speicher zwischengespeichert wurde. Dies erzeugt entweder einen Treffer oder einen Fehler. Ein TLB-Treffer bedeutet, dass der physische Speicher zwischengespeichert wird und schnell gefunden werden kann. Ein TLB-Fehler bedeutet, dass der physische Speicher nicht zwischengespeichert wird und die CPU alle Seitentabellen durchsuchen muss, um den Speicher zu finden. Dieser Vorgang ist ineffizient und benötigt zusätzliche Zeit.
Die meisten Computer werden mit mehreren übersetzungsseitigen Pufferebenen geliefert. Die unterste Ebene enthält die geringste Menge an Informationen, ist aber auch die schnellste. Wenn die erste Ebene zu viele Informationen enthält, werden diese in die höheren Ebenen übertragen. Diese Ebenen sind nicht so schnell, aber dennoch schneller als die CPU, die alle Seitentabellen nach der physikalischen Speicheradresse durchsucht.