Gibt es einen Unterschied zwischen TLB und Cache?


Antwort 1:

Alles der Reihe nach. Der CPU-Cache ist ein schneller Speicher, mit dem die Latenz beim Abrufen von Informationen aus dem Hauptspeicher (RAM) in die CPU-Register verbessert wird. Der CPU-Cache befindet sich also zwischen Hauptspeicher und CPU. In diesem Cache werden Informationen vorübergehend gespeichert, sodass der nächste Zugriff auf dieselben Informationen schneller erfolgt. Ein CPU-Cache, in dem ausführbare Anweisungen gespeichert wurden, heißt Instruction Cache (I-Cache). Ein CPU-Cache, der zum Speichern von Daten verwendet wird, wird als Datencache (D-Cache) bezeichnet. I-Cache und D-Cache beschleunigen also das Abrufen der Zeit für Anweisungen bzw. Daten. Ein moderner Prozessor enthält sowohl I-Cache als auch D-Cache. Lassen Sie uns der Vollständigkeit halber auch die D-Cache-Hierarchie diskutieren. D-Cache ist normalerweise in einer Hierarchie organisiert, dh Datencache der Ebene 1, Datencache der Ebene 2 usw. Es ist zu beachten, dass der L1-D-Cache im Vergleich zum L2-D-Cache schneller / kleiner / teurer ist. Die Grundidee des 'CPU-Cache' besteht jedoch darin, die Befehls- / Datenabrufzeit vom Hauptspeicher zur CPU zu beschleunigen.

Der Lookaside-Puffer für die Übersetzung (dh TLB) ist nur erforderlich, wenn der virtuelle Speicher von einem Prozessor verwendet wird. Kurz gesagt, TLB beschleunigt die Übersetzung der virtuellen Adresse in eine physische Adresse, indem die Seitentabelle in einem schnelleren Speicher gespeichert wird. Tatsächlich befindet sich TLB auch zwischen CPU und Hauptspeicher. Genau genommen wird TLB von der MMU verwendet, wenn die physische Adresse in eine virtuelle Adresse übersetzt werden muss. Durch die Speicherung dieser Zuordnung von virtuell-physischen Adressen in einem schnellen Speicher wird der Zugriff auf die Seitentabelle verbessert. Es ist zu beachten, dass die Seitentabelle (die selbst im RAM gespeichert ist) verfolgt, wo virtuelle Seiten im physischen Speicher gespeichert sind. In diesem Sinne kann TLB auch als Cache der Seitentabelle betrachtet werden.

Der Funktionsumfang für TLB und CPU-Cache ist jedoch unterschiedlich. Bei TLB geht es darum, die Adressübersetzung für den virtuellen Speicher zu beschleunigen, damit nicht für jede Adresse auf die Seitentabelle zugegriffen werden muss. Beim CPU-Cache geht es darum, die Latenz für den Hauptspeicherzugriff zu beschleunigen, damit die CPU nicht immer auf den RAM zugreift. Der TLB-Betrieb erfolgt zum Zeitpunkt der Adressumsetzung durch die MMU, während der CPU-Cache-Betrieb zum Zeitpunkt des Speicherzugriffs durch die CPU erfolgt. Tatsächlich setzt jeder moderne Prozessor den gesamten I-Cache, L1 & L2 D-Cache und TLB ein.


Antwort 2:

Ja, TLB ist eine Art Cache für die Speicherverwaltungseinheit. Wenn eine Adressübersetzung vom virtuellen Speicher in den physischen Speicher erfolgt, muss die Übersetzung über die MMU-Einheit erfolgen. Für jede virtuelle Adresse wird eine physische Adresse zugeordnet. Diese Zuordnung wird in der anderen Einheit namens TLB gespeichert. Wenn dies also das nächste Mal der Fall ist Bei einer Übersetzung für dieselbe virtuelle Adresse vor dem Aufrufen der MMU wird TLB überprüft, ob ein Eintrag vorhanden ist. Wir können direkt auf diese physische Adresse zugreifen. Normal ist Cache für Daten und Anweisungen