Prefetcher
Ein Mechanismus, der vorhersagt, welche Daten die CPU bald braucht, und sie vorab in den Cache lädt — bevor sie überhaupt angefordert werden. Ziel: die Speicherlatenz verstecken, sodass die Daten schon bereitliegen, wenn die Instruktion sie will, und ein Cache Miss vermieden wird.
Hardware-Prefetcher beobachten Speicherzugriffsmuster und extrapolieren. Die einfachsten erkennen sequenziellen Zugriff (wird Zeile N gelesen, wird N+1 vorab geladen), fortgeschrittenere erkennen Stride-Muster (Zugriff in festem Abstand, etwa alle 64 Byte — typisch für Schleifen über Arrays) oder sogar unregelmäßige Muster. Ist das Muster erkannt, werden künftige Zeilen im Hintergrund geladen, während die CPU weiterarbeitet.
Daneben gibt es Software-Prefetch, bei dem Compiler oder Programmierer explizite Prefetch-Instruktionen einfügen. Der Preis: Zu aggressives Prefetching verschwendet Speicherbandbreite und verdrängt aus dem Cache Daten, die nie gebraucht werden, wenn die Vorhersage danebenlag.