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:
Sehr schnell (Zugriffszeiten von einigen Nanosekunden)
Niedrige Kapazit�t (gew�hnlich weniger als 200 Bytes)
Sehr eingeschr�nktes Erweiterungsverm�gen (eine Ver�nderung in der CPU-Architektur w�re notwendig)
Teuer (mehr als ein Dollar/Byte)
Hingegen am anderen Ende des Spektrums befinden sich die Offline-Backupspeicher:
Sehr langsam (Zugriffszeiten werden eventuell in Tagen gemessen, falls das Speichermedium �ber weite Entfernungen versandt werden muss)
Sehr hohe Kapazit�t (1/10 - 1/100 eines Gigabyte)
Im Wesentlichen ein grenzenloses Erweiterungsverm�gen (lediglich durch die R�umlichkeiten begrenzt, die zum Aufbewahren des Backup-Mediums selbst notwendig sind)
Sehr kosteng�nstig (Bruchteile von Cents/Byte)
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.
Stromanschluss (um die Schaltung innerhalb des Chip zu betreiben)
Datenverbindungen (um den Datentransfer in oder aus dem Chip zu erm�glichen)
Schreib-/Lesezugriffe (um zu kontrollieren, ob Daten entweder im Chip gespeichert werden sollen oder von dort wieder abgerufen)
Adressenverbindungen (um festzustellen, wo im Chip die Daten gelesen/geschrieben werden sollten)
Hier sind die notwendigen Schritte, um Daten im RAM zu speichern:
Die zu speichernden Daten werden den Datenverbindungen vorgelegt.
Die Adresse, an der die Daten gespeichert werden sollen wird den Adressenverbindungen vorgelegt.
Die Lese-/Schreibverbindung ist auf Schreibmodus gesetzt.
Das Abrufen von Daten l�uft genauso einfach ab:
Die Adresse der gew�nschten Daten wird den Adressenverbindungen vorgelegt.
Die Lese-/Schreibverbindung ist auf Lesemodus gesetzt.
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.
| Anmerkung |
---|
| 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:
Zugriffs-Positionierzeit (5,5 Millisekunden)
Plattendrehzahl (0,1 Millisekunden)
Datenbearbeitung durch Lese-/Schreibk�pfe (0,00014 Millisekunden)
Daten�bernahme und/oder Daten�bertragung von/zur Elektronik der Festplatte (0,003 Millisekunden)
Lediglich die letzte Phase ist unabh�ngig von irgendeinem mechanischen Verfahren.
| Anmerkung |
---|
| 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.