2016-12-26 3 views
0

Wie wir Referenzort haben, auf welcher Grundlage diese Daten in den Cache kopiert werden, aber wer dafür verantwortlich ist.Wer legt die Daten in den Cache?

Gibt es irgendwelche h/w oder gibt es irgendwelche s/f, die diese Aktion ausführen?

Antwort

1

Die CPU liest/schreibt Daten in den Cache, wenn ein Befehl ausgeführt wird, der auf den Speicher zugreift.
So ist es ein On-Demand-Service, Daten werden auf Anfrage verschoben.
Versuchen Sie dann, die Daten im Cache as long as possible zu halten, bis kein Speicherplatz mehr vorhanden ist, und replacement policy wird verwendet, um eine Zeile zugunsten neuer Daten zu verwerfen.
Die minimale Einheit der übertragenen Daten heißt line und ist normalerweise größer als die Registergröße (um die Lokalität zu verbessern).

Einige CPUs haben eine prefetcher, die bei Erkennung von bestimmten Speicherzugriffsmuster, versuchen Sie es tatsächlich von dem Programm angefordert wird, um automatisch Daten in den Cache vor zu bewegen.

Einige Architektur haben Anweisungen, die als Hinweise für die CPU ausführt, um Daten von einer bestimmten Adresse vorab abzurufen.
Dies ermöglicht der Software eine minimale Kontrolle über die Prefetch-Schaltung. Wenn die Software jedoch nur Daten in den Cache verschieben will, muss sie nur die Daten lesen (die CPU speichert sie zwischen, wenn Caching in dieser Region aktiviert ist).