Definition
Eine mehrschichtige Organisation von Speicher- und Cache-Ressourcen (Register, mehrere Cache-Ebenen, Hauptspeicher, Sekundärspeicher, Archivstufen), die so angeordnet ist, dass Kapazität, Latenz, Bandbreite und Kosten ausbalanciert werden und häufige Zugriffe von der schnellsten verfügbaren Ebene bedient werden.
Prinzip
Prinzip
Nutze Lokalität der Referenzen und Kosten/Latenz-Kompromisse, indem Speicherstufen so angeordnet werden, dass kleinere, schnellere und teurere Ebenen Teilmengen der Daten halten, um die durchschnittliche Zugriffszeit und die Gesamtkosten zu reduzieren.
Demonstration
Demonstration
Ein Prozessor, der Code ausführt, der wiederholt auf eine kleine Arbeitsmenge zugreift: Werte werden zuerst in Registern oder L1-Cache gefunden, andernfalls in L2/L3-Caches, dann im DRAM und schließlich auf SSD/HDD, falls nicht vorhanden. Illustratives Szenario: Eine Beschleunigung einer Anwendung, wenn heiße Daten in L1/L2-Caches passen im Gegensatz zu Stalls auf dem DRAM oder I/O.
Fehlanwendung
Fehlanwendung
Die Annahme einer einheitlichen Zugriffskosten über alle Ebenen hinweg und die Entwicklung von Algorithmen, die zu häufigem Cache-Thrashing führen, oder die Missachtung der Cache-Kohärenz in Multicore-Systemen, was zu schlechterer Leistung führt.
Konsequenz
Konsequenz
Richtige Schichtung reduziert mittlere Latenz und Energie pro Zugriff, ermöglicht vorhersehbare Leistungsprofile und beeinflusst Entwurf von Algorithmen und Datenstrukturen (z. B. Blocking, Prefetching) zur Ausnutzung schneller Ebenen.
Umkehrung
Umkehrung
Ein flaches Speichermodell mit einheitlichen Zugriffskosten oder direktem Zugriff auf einen einzigen Speicherpool (unter Ignorierung der geschichteten Caches), das Software zwingt, Lokalität explizit zu verwalten und oft die durchschnittlichen Zugriffszeiten erhöht.
Abgrenzung
Abgrenzung
Bezieht sich auf hardware- und niedrigschwellige softwareverwaltete Caches sowie Speicherstufen und deren Kompromisse; schließt hochstufige Anwendungscaches, virtuelle Speicherabstraktionen, die die Hierarchie verbergen, aber nicht beseitigen, und verteilte Speichernetzwerke aus, sofern diese nicht als identifizierbare Hierarchiestufen fungieren.
Semantische Spannung
Semantische Spannung
Spannung zwischen Speicherhierarchie und gestuften Speichersystemen: Beides hat Ebenen, aber die Speicherhierarchie betont Latenz und hardwareverwaltete Caches, während gestufte Speicherung Kapazität und Management-Policies über längere Zeiträume in den Vordergrund stellt.
Synthese
Synthese
Die Speicherhierarchie ist das konzipierte Stapeln von Speicherebenen, das Geschwindigkeit, Kapazität und Kosten austauscht, um typische Zugriffe von der schnellstmöglichen Ebene zu bedienen und die Softwaregestaltung auf lokalitätsbewusste Muster zu lenken.