7.1 Speicherarchitektur - Cache, RAM und Massenspeicher
Computersysteme verwenden eine Speicherhierarchie, weil kein einzelner Speichertyp gleichzeitig minimale Latenz, maximale Bandbreite, hohe Kapazität, dauerhafte Datenhaltung und geringe Kosten bietet. Register und Caches halten besonders dringend benötigte Daten nahe an den Rechenkernen, DRAM bildet den Arbeitsspeicher, und nichtflüchtige Massenspeicher bewahren Betriebssystem, Programme und Dateien dauerhaft auf. Betriebssystem, Hardware und Anwendungen verschieben Daten fortlaufend zwischen diesen Ebenen.
Warum eine Speicherhierarchie notwendig ist
Speicher unterscheiden sich in Zugriffszeit, Bandbreite, Kapazität, Preis, Energiebedarf, Schreibfestigkeit und Datenhaltung ohne Strom. Je näher eine Ebene an den Ausführungseinheiten liegt, desto kleiner und schneller ist sie typischerweise. Je weiter sie entfernt liegt, desto größer und günstiger wird die Kapazität, aber desto länger dauert ein Zugriff.
Die alte Zweiteilung in Primär- und Sekundärspeicher bleibt als Grundmodell nützlich, ist für moderne Systeme aber zu grob. Zwischen Registern und lokalem Massenspeicher liegen mehrere Cache- und DRAM-Ebenen; darunter können externe, netzwerkgebundene oder archivierende Speicher folgen. Persistent Memory, Speichererweiterungen und beschleunigernahe Speicher können zusätzliche Zwischenstufen bilden.
Primär-, Sekundär- und Tertiärspeicher
„Sekundärspeicher“ bedeutet nicht zwingend extern außerhalb des Gehäuses. Eine interne NVMe-SSD ist ebenfalls Sekundärspeicher. Der Prozessor greift über Speicher- und I/O-Controller, Treiber sowie das Betriebssystem darauf zu. Daten werden typischerweise in Blöcken übertragen und durch Dateisysteme, Datenbanken oder andere Speicherschichten organisiert.
| Ebene | Kennzeichen | Beispiele |
|---|---|---|
| Register und Cache | Direkt im Prozessorkern oder Package, flüchtig, sehr geringe Latenz | Register, L1-, L2- und L3-/Last-Level-Cache |
| Hauptspeicher | Vom Speichercontroller adressierbarer flüchtiger Arbeitsspeicher | DDR4-/DDR5-DRAM, LPDDR, Server-DIMMs |
| Nichtflüchtiger Haupt- oder Erweiterungsspeicher | Plattform- und produktabhängige Zwischenebene | Bestimmte NVDIMM- oder CXL-Speicherlösungen |
| Sekundärspeicher / Massenspeicher | Nichtflüchtig, block- oder geräteorientiert, über Controller und I/O angebunden | NVMe-SSD, SATA-SSD, HDD, Speicherkarte |
| Tertiär- und Archivspeicher | Hohe Kapazität, häufig längere Zugriffszeit oder externe Bereitstellung | Magnetbandbibliothek, optisches Archiv, Object Storage, Offline-Medium |
Lokalität, Cache-Lines und Cache-Treffer
Caches nutzen zeitliche Lokalität - kürzlich verwendete Daten werden wahrscheinlich erneut benötigt - und räumliche Lokalität - benachbarte Adressen werden häufig gemeinsam genutzt. Deshalb wird nicht nur ein einzelnes Byte, sondern eine ganze Cache-Line übertragen. Hardware-Prefetcher versuchen zukünftige Zugriffe zu erkennen. Unregelmäßige Zugriffsmuster, große Arbeitssätze und zufällige Abhängigkeiten können diese Mechanismen jedoch aushebeln.
Ein Cache-Hit liefert Daten aus der betrachteten Cache-Ebene. Bei einem Miss wird die nächste Ebene angefragt; die Wartezeit kann die Ausführung deutlich bremsen. Out-of-Order-Ausführung und mehrere Hardwarethreads können manche Latenzen überdecken, nicht aber unbegrenzt. Speicherbandbreite und -latenz haben deshalb sehr wohl großen Einfluss auf Datenbanken, virtuelle Maschinen, Kompilierung, Spiele, KI und wissenschaftliche Anwendungen.
| Begriff | Bedeutung |
|---|---|
| Cache-Line | Kleinste gemeinsam übertragene und kohärent verwaltete Dateneinheit einer Cache-Hierarchie. |
| Hit | Angefragte Daten liegen in der betrachteten Ebene vor. |
| Miss | Daten müssen aus einer weiter entfernten Ebene geholt werden. |
| Hit Rate | Anteil der Zugriffe, die in einer Cache-Ebene getroffen werden. |
| Latenz | Zeit vom Anfordern bis zur Verfügbarkeit der Daten. |
| Bandbreite | Datenmenge, die pro Zeit übertragen werden kann. |
| Prefetch | Vorausschauendes Laden erwarteter Daten vor der eigentlichen Anforderung. |
L1-, L2- und L3-Cache
L1 ist meist der kleinste und schnellste Cache und häufig in Befehls- und Datencache getrennt. L2 ist größer und oft einem Kern zugeordnet. L3 beziehungsweise Last-Level-Cache ist nochmals größer und kann von mehreren Kernen geteilt oder in Slices organisiert sein. Einige Prozessoren verwenden zusätzliche Ebenen oder gestapelten Cache. Feste Größenbereiche sind nicht allgemeingültig; das Datenblatt der konkreten Mikroarchitektur entscheidet.
L3 ist sowohl Datencache als auch Teil der Kommunikation und Kohärenz zwischen Kernen. Die Aussage, L3 diene „weniger als Cache“, ist deshalb irreführend. Ein größerer Cache kann bestimmte Arbeitssätze aufnehmen und RAM-Zugriffe vermeiden, garantiert aber keinen pauschalen Vorteil. Latenz, Assoziativität, Aufteilung, Softwarezugriffe und Speicherbandbreite wirken zusammen.
| Ebene | Typische Organisation | Schwerpunkt |
|---|---|---|
| L1-I | Pro Kern, Befehle | Sehr schneller Nachschub für das Frontend. |
| L1-D | Pro Kern, Daten | Sehr schnelle Load-/Store-Zugriffe. |
| L2 | Häufig pro Kern oder Kerncluster | Größerer lokaler Arbeitssatz bei moderater Latenz. |
| L3 / LLC | Häufig geteilt oder verteilt | Großer gemeinsamer Cache, Datenaustausch und Kohärenzunterstützung. |
| Zusatzcache | Produktabhängig, teils gestapelt | Kapazität für besonders cacheabhängige Arbeitslasten. |
Inklusiv, exklusiv und nicht inklusiv
Die Begriffe beschreiben die Beziehung zwischen Cache-Ebenen, nicht einfach die Zuordnung eines Caches zu einem Kern. Bei einer inklusiven Hierarchie muss eine Line aus einer näheren Ebene auch in der übergeordneten Ebene vorhanden sein. Eine exklusive Hierarchie versucht, eine Line nur in einer der betrachteten Ebenen zu halten und erhöht damit die effektiv nutzbare Gesamtkapazität. Nicht inklusive beziehungsweise non-inclusive Hierarchien erzwingen keine vollständige Mengenbeziehung.
Konkrete Prozessoren können Mischformen verwenden. Cache-Kohärenz sorgt unabhängig davon dafür, dass Kerne bei gemeinsam verwendeten Speicheradressen ein zulässiges und konsistentes Verhalten sehen. Dafür werden Zustände, Verzeichnisse und Kohärenznachrichten verwendet. Kohärenz bedeutet nicht, dass jede Cache-Line ständig vollständig in alle Kerne kopiert wird.
Write-through, Write-back und Write-allocate
Diese Strategien sind Eigenschaften der Cache-Mikroarchitektur beziehungsweise bestimmter Speicherbereiche und keine allgemeine BIOS-Option, die Anwender für den CPU-Cache einschalten. Betriebssystem und Software besitzen bei speziellen Architekturen Befehle zum Spülen, Invalidieren oder nicht-temporären Schreiben, müssen dabei aber Kohärenz- und Persistenzregeln beachten.
| Strategie | Korrekte Bedeutung | Auswirkung |
|---|---|---|
| Write-through | Ein Schreibzugriff aktualisiert Cache und die nächste Speicherebene unmittelbar. | Einfachere Sichtbarkeit, aber mehr Schreibverkehr. |
| Write-back | Zunächst wird nur die Cache-Line geändert und als „dirty“ markiert; Rückschreiben erfolgt später beim Verdrängen oder durch eine explizite Operation. | Weniger externer Schreibverkehr, aber aufwendigere Verwaltung. |
| Write-allocate | Bei einem Write-Miss wird die zugehörige Line zuerst in den Cache geholt und dort geändert. | Vorteilhaft, wenn weitere Zugriffe auf dieselbe Line folgen. |
| No-write-allocate | Bei einem Write-Miss wird ohne vorherige Cache-Zuweisung in die nächste Ebene geschrieben. | Kann Streaming-Schreibvorgänge entlasten. |
Arbeitsspeicher: DRAM und Speichermodule
Dynamic RAM speichert Bits als Ladungszustände in Speicherzellen und muss regelmäßig aufgefrischt werden. Der Speicherinhalt geht ohne Energieversorgung verloren. DRAM bietet wesentlich mehr Kapazität pro Fläche als SRAM und eignet sich deshalb als Hauptspeicher; SRAM wird unter anderem für Caches verwendet. Random Access bedeutet, dass adressierbare Speicherstellen ohne serielles Durchlaufen vorheriger Daten erreicht werden können - nicht, dass jeder Zugriff exakt gleich lange dauert.
Desktop- und Serversysteme verwenden meist DIMMs, kompakte Systeme häufig SO-DIMMs oder verlöteten Speicher. DDR steht für Double Data Rate. DDR4 und DDR5 sind elektrisch und mechanisch nicht austauschbar. DDR5-DIMMs besitzen zwei unabhängige Subchannels und zusätzliche Funktionen; On-Die-ECC innerhalb der DRAM-Chips ist nicht gleichbedeutend mit einem systemweiten ECC-DIMM, das Übertragungs- und Modulfehler gegenüber dem Speichercontroller absichert.
| Modul/Funktion | Einordnung |
|---|---|
| UDIMM | Ungepuffertes Modul, typisch im Desktopbereich. |
| SO-DIMM | Kompakter Modulformfaktor, häufig in Notebooks und Mini-PCs. |
| RDIMM | Registriertes Modul für Serverplattformen; nicht mit normalen UDIMMs austauschbar. |
| ECC | Zusätzliche Fehlererkennung und -korrektur auf Systemebene; CPU, Mainboard und Modul müssen zusammenpassen. |
| SPD | Serial Presence Detect enthält standardisierte Modul- und Timinginformationen für die Initialisierung. |
| XMP / EXPO | Optionale Übertaktungsprofile; kein garantierter JEDEC-Standardbetrieb und abhängig von Plattformfreigabe. |
Speichercontroller, Kanäle und Bestückung
Der Speichercontroller koordiniert Befehle, Adressen, Datenübertragung, Refresh und Timings. Bei aktuellen PC- und Serverprozessoren ist er meist in die CPU beziehungsweise das Prozessor-Package integriert. Beim Start führt die Firmware Memory Training durch, liest SPD-Daten und ermittelt stabile Parameter. Das ist mehr als ein einfaches Übernehmen eines einzelnen Taktes.
Mehrere Speicherkanäle erhöhen die mögliche Bandbreite, wenn sie passend bestückt und von der Arbeitslast genutzt werden. Anzahl der DIMMs pro Kanal, Modulranks, Kapazität, Signalqualität und CPU-Spezifikation beeinflussen den erreichbaren Takt. Mehr Module können zu niedrigeren freigegebenen Datenraten führen. Die Steckreihenfolge aus dem Mainboardhandbuch ist verbindlich.
- DDR-Generation, Modulform, ECC-/Registered-Unterstützung und maximale Kapazität prüfen.
- Empfohlene Steckplätze für ein oder zwei Module verwenden.
- Kanäle möglichst symmetrisch bestücken, wenn Bandbreite wichtig ist.
- JEDEC-Betrieb von optionalen XMP-/EXPO-Profilen unterscheiden.
- Bei Instabilität zuerst Standardwerte, aktuelle Firmware und einzeln geprüfte Module verwenden.
- Qualified Vendor Lists sind getestete Stichproben, keine vollständige Liste jedes kompatiblen Moduls.
Virtueller Speicher ist mehr als eine Auslagerungsdatei
Jeder Prozess arbeitet mit virtuellen Adressen. MMU und Betriebssystem übersetzen diese über Seitentabellen in physische RAM-Adressen. Virtuelle Adressräume trennen Prozesse, erlauben Schutzrechte, gemeinsam genutzte Bereiche, speicherabgebildete Dateien und flexible Platzierung. Diese Adressübersetzung wird auch verwendet, wenn genügend physischer RAM vorhanden ist.
Paging beziehungsweise Swapping kann selten verwendete Speicherseiten in eine Auslagerungsdatei oder Swap-Partition verschieben. Wird intensiv zwischen RAM und Massenspeicher gewechselt, entsteht Thrashing und das System wird stark langsamer. Eine SSD macht ausgelagerten Speicher nicht so schnell wie RAM. Die Größe des virtuellen Adressraums, die Commit-Grenze und der aktuell im RAM liegende Working Set sind unterschiedliche Größen.
| Begriff | Bedeutung |
|---|---|
| Virtueller Adressraum | Private logische Adressen eines Prozesses. |
| Physischer Speicher | Tatsächlich vorhandene RAM-Seitenrahmen. |
| Working Set | Teil der Prozessseiten, der aktuell im RAM liegt. |
| Pagefile / Swap | Nichtflüchtiger Speicherbereich für ausgelagerte Seiten und Systemfunktionen. |
| Page Fault | Zugriff auf eine Seite, die neu zugeordnet oder von einer anderen Ebene geladen werden muss. |
| Thrashing | Übermäßiges Ein- und Auslagern mit starkem Leistungsverlust. |
32-Bit-Grenze, PAE und Memory Remapping
Ein 32-Bit-Prozess besitzt grundsätzlich höchstens 2³² virtuelle Adressen, also 4 GiB. Historische 32-Bit-Windows-Konfigurationen teilten diesen Bereich typischerweise in Benutzer- und Kernelbereich, oft 2 GiB zu 2 GiB. Large-Address-Aware und spezielle Systeme konnten andere Aufteilungen verwenden. Diese Prozessgrenze ist von der insgesamt nutzbaren physischen RAM-Menge zu unterscheiden.
PAE erweitert bei x86 die physischen Adressen auf mehr als 32 Bit, vergrößert aber nicht den virtuellen 4-GiB-Adressraum eines einzelnen 32-Bit-Prozesses. Client-Windows-Versionen begrenzten die nutzbare RAM-Menge aus Kompatibilitätsgründen unterschiedlich. Memory-Mapped I/O reserviert physische Adressbereiche für Geräte; Firmware kann über Memory Remapping überlagerte RAM-Bereiche oberhalb von 4 GiB verfügbar machen. Auf heutigen 64-Bit-PCs sind die konkreten Grenzen durch CPU, Mainboard, Firmware und Betriebssystemedition festgelegt.
Halbleiterspeicher nach Zugriff und Datenhaltung
Die ältere Einteilung „permanent“ und „semi-permanent“ kann Speicherprinzipien grob beschreiben, ist aber missverständlich: Flash, EEPROM und andere nichtflüchtige Speicher sind wiederbeschreibbar, behalten Daten ohne Strom und besitzen unterschiedliche Löschgranularität sowie Schreibfestigkeit. Flash hat EPROM in vielen Anwendungen ersetzt, EEPROM bleibt für kleine Konfigurationsdaten weiterhin relevant.
| Art | Zugriff / Datenhaltung | Heutige Beispiele und Einordnung |
|---|---|---|
| Schieberegister / serieller Speicher | Daten werden schrittweise weitergereicht | Logik, Signalverarbeitung und spezialisierte Puffer. |
| RAM | Wahlfreier Schreib-/Lesezugriff; Oberbegriff | SRAM für Cache, DRAM für Hauptspeicher. |
| CAM | Suche nach Inhalt statt nur nach Adresse | TLBs, Netzwerk- und Lookup-Strukturen; häufig spezialisierte Varianten. |
| Masken-ROM / OTP / PROM | Nicht oder nur einmal programmierbar | Feste Konfigurationen, kleine Serien und eingebettete Systeme. |
| EEPROM | Elektrisch löschbar, nichtflüchtig, meist byte-/seitenorientiert | Konfiguration, kleine Datenmengen, SPD-Speicher. |
| NAND-Flash | Nichtflüchtig, blockweise gelöscht, begrenzte Schreibzyklen | SSDs, Speicherkarten und USB-Sticks. |
| NOR-Flash | Nichtflüchtig, gut für Direktzugriff auf Code | Firmware- und Bootspeicher. |
| FRAM / MRAM / ReRAM / PCM | Alternative nichtflüchtige Speicherprinzipien | Spezial- und Embedded-Anwendungen; Verfügbarkeit und Eigenschaften produktabhängig. |
Nichtflüchtige Massenspeicher
SSDs kombinieren NAND-Flash mit Controller, Fehlerkorrektur, Mappingtabellen, Wear Leveling, Garbage Collection und häufig Cache. Sie sind heute Standard für Betriebssysteme und Anwendungen, besitzen aber begrenzte Schreibfestigkeit und benötigen funktionierende Firmware sowie ausreichende Reserveblöcke. HDDs bieten weiterhin günstige große Kapazitäten, Magnetband hohe Archivkapazität und niedrige Kosten pro gespeichertem Byte. Optische Medien bleiben für bestimmte Verteilung, Offline- und Archivzwecke relevant.
Lochkarten, Lochstreifen, Disketten und ZIP-Laufwerke sind historisch beziehungsweise Legacy. Sie bleiben als Entwicklungsschritte erhalten, sind aber keine aktuellen allgemeinen Speicherempfehlungen. Die Behauptung, fast alle Sekundärspeicher seien magnetisch oder optisch, ist überholt: Flash-basierte SSDs, Speicherkarten und USB-Speicher sind weit verbreitet. Cloud- oder Netzwerkspeicher bezeichnet einen Bereitstellungsort und ein Protokoll, nicht ein eigenes physikalisches Speicherprinzip.
| Medium | Stärke | Grenze |
|---|---|---|
| NVMe-SSD | Geringe Latenz, hohe Parallelität und Bandbreite | Kosten, thermische Drosselung und Schreibfestigkeit modellabhängig. |
| SATA-SSD | Breite Kompatibilität und keine Mechanik | Durch SATA-Protokoll und -Schnittstelle begrenzt. |
| HDD | Hohe Kapazität zu geringen Kosten | Mechanische Latenz, Stoßempfindlichkeit und begrenzte IOPS. |
| Magnetband | Sehr günstig für große Offline-Archive | Sequentieller Zugriff und zusätzlicher Laufwerks-/Bibliotheksaufwand. |
| Optischer Speicher | Offline, transportabel und je nach Medium schreibgeschützt | Kapazität, Laufwerksverfügbarkeit und Schreibgeschwindigkeit. |
| Netzwerk-/Object Storage | Gemeinsame, skalierbare Bereitstellung | Latenz, Netzwerk, Dienstverfügbarkeit und Kostenmodell. |
Speicherleistung richtig beurteilen
- Latenz und Bandbreite getrennt messen; hohe sequenzielle MB/s ersetzen keine niedrige Zufallslatenz.
- IOPS immer zusammen mit Blockgröße, Warteschlangentiefe, Lese-/Schreibanteil und Parallelität angeben.
- Cacheeffekte und Betriebssystempuffer bei Messungen dokumentieren.
- RAM-Kapazität nach realem Working Set, virtuellen Maschinen und Spitzenlast dimensionieren.
- Bei SSDs Dauerleistung nach erschöpftem Schreibcache, Temperatur und Füllstand berücksichtigen.
- Persistenz, Backup, Redundanz und Archivierung nicht mit hoher Verfügbarkeit oder Cache verwechseln.
Quellen zur fachlichen Prüfung
- Microsoft: virtueller Speicher, RAM, Pagefile und 32-Bit-Adressräume
- Microsoft: virtuelle Adressräume und physischer Speicher
- Microsoft: Physical Address Extension (PAE)
- Intel: Cache Line Write Back und Dirty Cache Lines
- Intel: Beispiel einer Write-back- und Write-allocate-Cacheimplementierung
- Micron: DDR5 - Architektur, Subchannels und Burst Length
- SNIA: Speicherhierarchie von SRAM und DRAM bis SSD und HDD
PDF-Download nach Anmeldung
Zum Schutz der Unterrichtsunterlagen steht der PDF-Download ausschließlich angemeldeten Nutzern zur Verfügung.
