Als Prefetching (deutsch Speichervorgriff) bezeichnet man in der Informatik das heuristische Laden von Speicherinhalten aufwärts in der Speicherhierarchie, bevor ein Bedarf evident geworden ist, um so im Falle des tatsächlich eintretenden Bedarfs eine höhere Zugriffsgeschwindigkeit zu erzielen.
Im Falle von Single Instruction, Multiple Data (SIMD) lässt sich der zukünftige Bedarf leicht hinreichend gut vorhersagen, so dass Prefetching hier mit speziellen Instruktionen veranlasst werden kann. Auch beim Pipelining kommt Prefetching zum Einsatz.
Nachteilig ist die so entstehende Ineffizienz durch eigentlich unnötige Kommunikation und durch eigentlich unnötige Belegung schnellerer Speichermedien, die einen paradoxen Effekt haben kann (d. h.: Die Zugriffszeiten steigen noch). Die erzielten Vor- und Nachteile hängen stark von der gewählten Heuristik ab.
Durch die zunehmende Verbreitung von Smartphones ergeben sich zusätzliche Probleme bei der Optimierung des Prefetch, da ein Wechsel des Mobilfunknetzes, z. B. zwischen UMTS und LTE die Datenrate beeinflusst und das Prefetching entsprechend dynamisch angepasst werden muss.
Siehe auch
- Prefetching bei DRAM
- Streaming SIMD Extensions (SSE), eine Befehlssatzerweiterung für intel-kompatible Prozessoren
- Cache
- SuperFetch, ein Verfahren, um den Zugriff auf langsame Speichermedien bei neueren Microsoft-Windows-Versionen zu verbessern
Einzelnachweise
- ↑ J. Lee, H. Kim, R. Vuduc: When Prefetching Works, When It Doesn’t, and Why. (PDF; 2 MB) Georgia Institute of Technology, 2012, S. 2–4, abgerufen am 14. Mai 2016.