Der CPU-Cache wird von welcher Softwarekomponente verwaltet?

9

CPU-Caches werden durch Ausnutzung der zeitlichen und räumlichen Lokalität verwendet. Meine Frage ist, wer für die Verwaltung dieser Caches verantwortlich ist. Ist dies ein Betriebssystem, das ein bestimmtes Zugriffsmuster identifiziert und dann den Cache mithilfe von Betriebssystemfunktionsaufrufen auf niedriger Ebene verwaltet (dh speichert)?

gpuguy
quelle
Wenn Caches von Software verwaltet würden, würden CPUs zeitlich nichts erledigen. Wäre das nicht ein Haken 22?
Raphael

Antworten:

8

Der CPU-Cache verarbeitet jeden Zugriff auf den Speicher, der einfach zu schnell ist, um von der Software gesteuert zu werden. Es ist vollständig in die Hardware integriert, entweder auf dem CPU-Chip selbst oder auf dem Motherboard.

vonbrand
quelle
12

Die CPU-Caches sind ab dem Moment betriebsbereit, in dem die CPU eingeschaltet wird. Weder das BIOS noch ein Betriebssystem sind streng genommen "notwendig", um die Caches zu steuern. Das BIOS und das Betriebssystem können die Cache-Konfigurationseinstellungen in der CPU ändern, steuern jedoch nicht den normalen Betrieb. Dies ist alles in die CPU selbst integriert.

uli
quelle
Bei einigen Prozessoren ist das Caching standardmäßig aktiviert. Einige haben es standardmäßig deaktiviert. Wenn ein Cache aktiviert ist, kann sich ein Prozessor möglicherweise etwas kontrolliert verhalten, selbst wenn kein RAM vorhanden ist (z. B. kann der Prozessor den Lautsprecher einige Male piepen). Wenn es zunächst deaktiviert wird, muss es nicht mehr deaktiviert werden, bevor Speicherkonfigurationsoptionen geändert werden.
Supercat
3

Dies hängt vollständig von Ihrer Hardwareplattform ab (zum Beispiel bietet Nios® II einige Anweisungen zum Verwalten von Caches). Sie sollten die Anleitung und die Assemblersprache lesen . Einige Prozessoren bieten Anweisungen zum Verwalten des Caches auf einer bestimmten Ebene. WBINVD bietet beispielsweise interne Caches zum Zurückschreiben und Löschen . Starten Sie das Zurückschreiben und Löschen externer Caches (oder INVD ).

Reza
quelle