4.2. Das Speicherspektrum

Moderne Computer benutzen tatsächlich eine Vielzahl von Speichertechnologien. Jede Technologie ist mit entsprechenden Geschwindigkeiten und Speicherkapazitäten auf eine spezielle Funktion hin ausgerichtet.

Die Technologien sind:

Hinsichtlich Leistungsvermögen und Kosten gibt es ein breites Spektrum dieser Technologien. CPU-Register zeichnet zum Beispiel folgendes aus:

Hingegen am anderen Ende des Spektrums befinden sich die Offline-Backupspeicher:

Durch die Benutzung verschiedener Technologien mit verschiedenen Leistungsfähigkeiten ist es möglich, ein Systemdesign so abzustimmen, dass die maximale Leistungsfähigkeit bei geringstmöglichem Kostenaufwand erreicht wird. Die folgenden Abschnitte befassen sich näher mit jeder Art von Technologie im Speicherspektrum.

4.2.1. CPU-Register

Jedes heutige CPU-Design beinhaltet Register für eine Vielzahl von Zwecken. Diese reichen vom Speichern der Adresse der gegenwärtig ausgeführten Instruktion bis hin zu mehr allgemeiner Datenspeicherung und Datenbearbeitung. CPU-Register laufen in der selben Geschwindigkeit ab, wie der Rest der CPU; ansonsten wären diese ein ernstzunehmender Engpass in der allgemeinen Systemleistung. Der Grund dafür ist, dass nahezu alle Abläufe der CPU auf die eine oder andere Weise auch die Register miteinbeziehen.

Die Anzahl der CPU-Register (und deren Verwendungszweck) hängen von der Architektur der CPU ab. Es ist keinesfalls möglich, die Anzahl der CPU-Register zu verändern, außer Sie wechseln zu einer CPU mit einer anderen Architektur. Aus diesen Gründen kann die Anzahl der CPU-Register als Konstante angesehen werden, da diese nur unter großem Aufwand, auch in finanzieller Hinsicht, ausgetauscht werden können.

4.2.2. Cache-Speicher

Cache-Speicher oder auch Pufferspeicher genannt, arbeiten wie ein Puffer zwischen den sehr eingeschränkten, Hochgeschwindigkeits-CPU-Registern und dem relativ langsameren und wesentlich größeren Haupt-Systemspeicher — normalerweise auch als RAM bezeichnet[1]. Cache-Speicher besitzten eine Betriebsgeschwindigkeit, die ähnlich der CPU-Betriebsgeschwindigkeit ist. Dies bedeutet, dass wenn die CPU auf Daten im Cache zugreift, muss die CPU nicht erst auf die Daten warten.

Cache-Speicher werden dahingehend konfiguriert, dass wann auch immer Daten von RAM gelesen werden sollen, die Systemhardware zuallererst überprüft, ob die gewünschten Daten sich im Cache befinden. Wenn sich die gesuchten Daten im Cache befinden, dann kann auf diese rasch zugegriffen werden und diese können von der CPU benutzt werden. Sollten sich die Daten jedoch nicht im Cache befinden, so werden die Daten direkt vom Hauptspeicher bezogen und während deren Übertragung an die CPU ebenfalls im Cache gespeichert (für den Fall, dass diese später nochmals benötigt werden). Aus der Sicht der CPU macht es grundsätzlich keinen Unterschied, ob auf Daten im Cache oder im RAM zugegriffen wird, mit Ausnahme der unterschiedlichen Zugriffsgeschwindigkeit.

In Hinsicht auf Speicherkapazität ist Cache dem RAM um einiges unterlegen. Deshalb kann nicht jeder Byte im RAM seinen eigenen einzigartigen Platz im Cache besitzen. Es ist daher notwendig Cache in Sektionen aufzugliedern, die zum Zwischenspeichern verschiedener Bereiche im RAM verwendet werden können. Ebenso wird ein spezieller Mechanismus benötigt, welcher jedem Cache-Bereich erlaubt, verschiedene Bereiche des RAM zu verschiedenen Zeiten zwischenzuspeichern. Trotz des Unterschiedes in Speicherkapazität und angesichts der sequentiellen und örtlich begrenzten Natur des Speicherzugriffs kann eine geringe Menge an Cache auf höchst effektive Art und Weise den Zugang zu einer großen Menge an RAM beträchtlich beschleunigen.

Wenn Daten von der CPU geschrieben werden, dann kann es allerdings etwas komplizierter werden. Es gibt zwei Arten der Durchführung. In beiden Fällen werden die Daten zuerst in den Cache geschrieben. Da jedoch der Hauptzweck von Cache die Funktion des sehr schnellen Kopierens von Inhalten ausgewählter Teile des RAM ist, so muss jede auch noch so geringe Datenänderung im RAM und im Cache gespeichert werden. Ansonsten würden die Daten im RAM nicht mehr länger mit den Daten im Cache übereinstimmen.

Die beiden verschiedenen Arten unterscheiden sich in deren Durchführung. Eine Art, auch als Write-Through-Caching bekannt, schreibt die modifizierten Daten umgehend in den RAM-Speicher. Write-Back-Caching verzögert jedoch das Schreiben der modifizierten Daten in RAM. Hauptgrund dafür ist die Reduktion der Häufigkeit des RAM-Speichervorganges im Falle von häufig modifizieren Daten.

Ein Write-Through-Cache ist ein wenig einfacher zu implementieren; aus diesem Grund auch häufiger anzutreffen. Write-Back-Cache ist ein wenig schwieriger zu implementieren; zusätzlich zum Speichern der aktuellen Daten ist es notwendig, eine Art Mechanismus aufrecht zu erhalten, der die Daten im Cache als 'clean' flagged (Daten im Cache entsprechen genau den Daten im RAM) oder auch als 'dirty' (Daten im Cache wurden modifiziert, was bedeutet, dass die Daten im Hauptspeicher nicht mehr länger aktuell sind). Es ist ebenso notwendig einen Ablauf zu implementieren, der garantiert, dass in bestimmten Abständen 'dirty' Cache-Einträge zum Hauptspeicher zurück-"geflushed" werden.

4.2.2.1. Cache-Levels

Cache-Subsysteme können in modernen Computerarchitekturen auch multi-level sein; was soviel bedeutet, als dass es auch mehr als ein Cache-Set zwischen der CPU und dem Hauptspeicher geben kann. Die Cache-Level sind oft nummeriert, wobei die niedrigeren Nummern meist näher an der CPU sind. Viele Systeme besitzen zwei Cache-Level:

  • Der L1-Cache befindet sich oft direkt auf dem CPU-Chip und besitzt die selbe Geschwindigkeit als die CPU

  • Der L2-Cache ist oft ein Teil des CPU-Moduls, läuft mit CPU-Geschwindigkeit ab (oder beinahe) und ist für gewöhnlich ein wenig größer und langsamer als der L1-Cache.

Einige Systeme (normalerweise Hochleistungsserver) besitzen auch einen L3-Cache, welcher normalerweise ein Teil der System-Hauptplatine ist. Wie höchstwahrscheinlich angenommen wird, würde der L3-Cache größer (und höchstwahrscheinlich langsamer) als der L2-Cache sein.

In jedem Fall ist die Zielsetzung aller Cache-Subsysteme — egal ob Einzel- oder Multi-Level-System — die durchschnittliche Zugriffszeit auf den Hauptspeicher zu reduzieren.

4.2.3. Hauptspeicher — RAM

RAM (Random Access Memory/Speicher mit beliebigem Zugriff) macht den Großteil an elektronischem Speicher in heutigen Computern aus. RAM wird als Speicher für sowohl Daten, als auch Programme benutzt, während diese Daten und Programme benutzt werden. Die RAM-Geschwindigkeit liegt heutzutage bei den meisten Computern irgendwo zwischen der Cache- und Festplatten-Geschwindigkeit, jedoch etwas näher an der Cache-Geschwindigkeit.

Der grundsätzliche Betrieb von RAM ist eigentlich ziemlich einfach. An unterster Stufe gibt es die sogenannten RAM-Chips (Chip-Bausteine) — integrierte Schaltkreise, welche für das eigentliche "Erinnern" zuständig sind. Diese Chips besitzen vier Arten von Verbindungen zur Außenwelt.

Hier sind die notwendigen Schritte, um Daten im RAM zu speichern:

  1. Die zu speichernden Daten werden den Datenverbindungen vorgelegt.

  2. Die Adresse, an der die Daten gespeichert werden sollen wird den Adressenverbindungen vorgelegt.

  3. Die Lese-/Schreibverbindung ist auf Schreibmodus gesetzt.

Das Abrufen von Daten läuft genauso einfach ab:

  1. Die Adresse der gewünschten Daten wird den Adressenverbindungen vorgelegt.

  2. Die Lese-/Schreibverbindung ist auf Lesemodus gesetzt.

  3. Die gewünschten Daten werden von den Datenverbindungen gelesen.

Während diese Schritte simpel erscheinen, finden diese in sehr hohen Geschwindigkeiten statt, wobei die Zeit jeden Schrittes in Nanosekunden gemessen wird.

Beinahe alle RAM-Chips, die heutzutage erzeugt werden, werden als Module zusammengefasst. Jedes Modul besteht aus einer Anzahl von individuellen RAM-Chips, die an einer kleinen Platine angebracht sind. Die mechanische und elektrische Anordnung der Module hält verschiedenste Industrie-Standards ein und macht es daher möglich, Speicher von verschiedensten Herstellern zu beziehen.

AnmerkungAnmerkung
 

Der Hauptvorteil eines Systems, welches industriestandardisierte RAM-Module benutzt, ist der niedrige Kostenfaktor, da Module von mehr als einem Hersteller und nicht nur dem Systemhersteller selbst bezogen werden können.

Obwohl die meisten Computer Industrie-standardisierte RAM-Module verwenden, gibt es noch Ausnahmen. Am meisten sind dabei Laptops (und sogar hier tritt bereits eine Art Standardisierung ein) und High-End-Server zu beachten. Jedoch ist es auch unter diesen Umständen höchstwahrscheinlich möglich, RAM-Module von anderen Herstellern zu bekommen, wenn es sich dabei um ein relativ populäres System und nicht ein komplett neues Design handelt.

4.2.4. Festplatten

Sämtliche bisher behandelten Technologien sind von Natur aus volatil. In anderen Worten gehen Daten, die in volatilen Speichern vorhanden sind, beim Ausschalten des PCs verloren.

Festplatten sind jedoch nicht-volatil — Die Daten, welche diese enthalten gehen nicht beim Ausschalten des PCs oder bei einer Unterbrechung der Stromzufuhr verloren. Deshalb nehmen Festplatten einen ganz speziellen Platz im Speicher-Spektrum ein. Deren nicht-volatile Eigenschaft macht diese zum idealen Medium, um Programme und Daten für den Langzeitgebrauch zu speichern. Ein anderer und auch einzigartiger Aspekt von Festplatten ist die Tatsache, dass Programme nicht wie bei RAM und Cache direkt ausgeführt werden können. Stattdessen müssen diese zuerst in den Hauptspeicher eingelesen werden.

Auch unterscheidet sich die Geschwindigkeit der Datenablage und -abfrage im Vergleich zu RAM und Cache; Festplatten sind mindestens eine Größenordnung langsamer, als die vollelektronischen Technologien, die für RAM und Cache verwendet werden. Der Unterschied in Geschwindigkeit liegt hauptsächlich in deren elektro-mechanischer Natur. Es gibt vier eindeutige Phasen, die während jedes Datentransfers von oder zu derFestplatte durchlaufen werden. Die folgende Auflistung veranschaulicht diese Phasen, gemeinsam mit der Zeit, die von jedertypischen Hochleistungsplatte benötigt werden würde, um jede einzelne dieser Phasen zu durchlaufen:

Lediglich die letzte Phase ist unabhängig von irgendeinem mechanischen Verfahren.

AnmerkungAnmerkung
 

Obwohl es noch viel mehr über Festplatten zu lernen gibt, werden Festplattenspeichertechnologien genauer in Kapitel 5 behandelt. Einstweilen ist es nur notwendig den hohen Geschwindigkeitsunterschied zwischen RAM und Festplatten-basierten Speichern im Gedächtnis zu behalten und dass deren Speicherkapazität die von RAM für gewöhnlich um mindestens das Zehnfache und oft auch um das Hunderfache und mehr übersteigt.

4.2.5. Offline-Datensicherungsspeicher (Offline-Backup-Speicher)

Offline-Datensicherungsspeicher besitzen eine höhere Kapazität, sind jedoch langsamer. Hierbei ist die Kapazität lediglich durch das Vorhandensein von Lagerplätzen für die entfernbaren Speichermedien eingeschränkt.

Die tatsächlichen Technologien, welche in den Geräten verwendet werden variieren sehr stark. Hier finden Sie die gängigsten Typen:

Logischerweise sind die Zugriffszeiten bei entfernbaren Speichermedien höher. Dies ist vor allem dann der Fall, wenn die gewünschten Daten sich auf einem Datenträger befinden, der zu diesem Zeitpunkt noch nicht in das Speichergerät geladen worden ist. Diese Situation wird durch die Benutzung von Device-Robotern erleichtert, welche das automatische Laden und Entladen von Medien durchführen können, wobei die Speicherkapazitäten solcher Geräte noch immer begrenzt sind. Selbst im besten Fall werden Zugriffszeiten in Sekunden bemessen, welche vergleichsweise wesentlich höher sind als die relativ langsamen in Multi-Millisekunden gemessenen Zugriffszeiten, welche typisch für eine Hochleistungs-Festplatte sind.

Da wir nunmehr kurz die verschiedenen Speichertechnologien, die heutzutage verwendet werden, duchgegangen sind, widmen wir uns nun den grundlegenden Konzepten von virtuellem Speicher.

Fußnoten

[1]

Während "RAM" ein Akronym ist für "Random Access Memory" und eine Bezeichnung die nahezu auf jede Speichertechnologie zutreffen könnte, die nicht-sequentiellen Zugriff auf gespeicherte Daten ermöglicht. Wenn Systemadministratoren jedoch von RAM sprechen, dann meinen diese ausnahmslos den Haupt-Systemspeicher.