5.2. Konzepte der Speicheradressierung
Die Konfiguration von Platten, K�pfen und Zugriffsarmen macht es m�glich, den Kopf �ber jedem Teil jeder Oberfl�che jeglicher Platte im Speicherger�t zu positionieren. Dies reicht jedoch nicht aus, um die Speicherkapazit�t voll auszunutzen. Es bedarf daher einer Methode, bei der Adressen an einheitlich gro�e Teile des verf�gbaren Speichers vergeben werden k�nnen.
Hierbei ist noch einen letzter Aspekt in diesem Prozess zu beachten. Ber�cksichtigen Sie alle Tracks in den vielen Zylindern eines herk�mmlichen Massenspeicherger�tes. Da die Tracks verschiedene Durchmesser haben, variiert auch deren Umfang. Wenn daher Speicher nur auf den Tracklevel adressiert werden w�rde, so w�rde jeder Track eine andere Menge an Daten besitzen — Track #0 (nahe dem Mittelpunkt der Platte) w�rde z.B. 10 827 Bytes enthalten w�hrend Track #1 258 (nahe der Au�enkante der Platte) 15 382 Bytes enthalten w�rde.
Die L�sung ist, die Tracks in mehrere Sektoren oder Bl�cke von gleichgro�en (meistens 512 Bytes) Speichersegmenten zu unterteilen. Das Ergebnis ist eine feste Anzahl von Sektoren pro Track[1].
Ein Nebeneffekt dabei ist, dass jeder Track ungenutzten Speicherplatz enth�lt — n�mlich den Platz zwischen den Sektoren. Trotz der konstanten Anzahl der Sektoren pro Track unterscheidet sich die Gr��e des ungenutzten Speicherplatzes — relativ wenig ungenutzter Speicherplatz in den inneren Tracks und sehr viel mehr in den �u�eren Tracks. In jedem Fall ist ungenutzter Platz eine Verschwendung, da allf�llige Daten hierauf nicht gespeichert werden k�nnen.
Der Vorteil der Versetzung dieses ansonsten verschwendeten Speicherplatzes ist jedoch, dass die effektive Adressierung des Speichers auf einem Massenspeicherger�t m�glich ist. Es gibt zwei Methoden f�r die Adressierung — Geometrie-basierte Adressierung und Block-basierte Adressierung.
5.2.1. Geometrie-basierte Adressierung
Der Begriff Geometrie-basierte Adressierung bezieht sich auf die Tatsache, dass Massenspeicherger�te Daten an einem bestimmten physikalischen Ort auf dem Speichermedium speichern. Im Falle der hier beschriebenen Ger�te bezieht sich dies auf drei spezielle Dinge, die einen bestimmten Punkt auf der Platte des Ger�ts definieren:
Die folgenden Abschnitte behandeln wie eine hypothetische Adresse einen bestimmten physikalischen Ort auf dem Speichermedium beschreiben kann.
5.2.1.1. Zylinder
Wie bereits erw�hnt, bezeichnet der Zylinder eine bestimmte Position des Zugriffsarms (und dadurch der Lese/Schreib-K�pfe). In dem wir einen bestimmten Zylinder angeben, eliminieren wir alle anderen Zylinder und reduzieren somit die Suche auf einen einzigen Track f�r jede Oberfl�che im Massenspeicherger�t.
Tabelle 5-1. Speicher-Adressierung
Unter Tabelle 5-1 wurde der erste Teil einer Geometrie-basierten Adresse bereits ausgef�llt. Die beiden anderen Komponenten dieser Adresse — Kopf und Sektor — bleiben unspezifiziert.
5.2.1.2. Kopf
Auch wenn wir genaugenommen eine bestimmte Platte ausw�hlen, da jede Oberfl�che einen Lese/Schreib-Kopf zugewiesen hat, ist es einfacher, dies als Interaktion mit einem bestimmten Kopf zu betrachten. Die Elektronik des Ger�tes w�hlt in der Tat einen Kopf aus und — da alle anderen nicht ausgew�hlt sind — interagiert nur mit dem ausgew�hlten Kopf f�r die Dauer des I/O-Betriebes. Alle anderen Tracks, aus denen der aktuelle Zylinder besteht, wurden nunmehr eliminiert.
Tabelle 5-2. Speicher-Adressierung
Unter Tabelle 5-2 wurden die ersten beide Teile einer Geometrie-basierten Adresse bereits ausgef�llt. Eine letzte Komponente dieser Adresse — der Sektor — ist noch unbestimmt.
5.2.1.3. Sektor
Indem wir einen bestimmten Sektor angeben, ist die Adressierung vollst�ndig und hat den gew�nschten Datenblock eindeutig identifiziert.
Zylinder | Kopf | Sektor |
---|
1014 | 2 | 12 |
Tabelle 5-3. Speicher-Adressierung
Unter Tabelle 5-3 wurde die vollst�ndige Geometrie-basierte Adresse bereits ausgef�llt. Diese Adresse identifiziert den Ort eines bestimmten Blockes unter allen anderen Bl�cken auf diesem Ger�t.
5.2.1.4. Probleme bei Geometrie-basierter Adressierung
W�hrend Geometrie-basierte Adressierung relativ unkompliziert ist, gibt es einen mehrdeutigen Bereich, der problematisch werden kann. Die Doppeldeutigkeit liegt in der Nummerierung von Zylindern, K�pfen und Sektoren.
Es ist wahr, dass jede Geometrie-basierte Adresse einen bestimmten Datenblock eindeutig identifiziert; dies gilt jedoch nur, wenn die Nummerierung von Zylindern, K�pfen und Sektoren nicht ge�ndert wird. �ndert sich die Nummerierung (wenn sich zum Beispiel die Hardware/Software f�r das Speicherger�t �ndert), �ndert sich somit auch das Mapping zwischen Geometrie-basierten Adressen und den zugeh�rigen Datenbl�cken, was ein Zugreifen auf die gew�nschten Daten unm�glich macht.
Aufgrund dieser m�glichen Mehrdeutigkeit wurde ein anderer Ansatz f�r die Adressierung entwickelt. Der n�chste Abschnitt beschreibt dies eingehender.
5.2.2. Block-basierte Adressierung
Block-basierte Adressierung ist wesentlich unkomplizierter als Geometrie-basierte Adressierung. Bei der Block-basierten Adressierung wird jedem Block eine einzigartige Nummer gegeben. Diese Nummer wird vom Computer zum Massenspeichermedium weitergeleitet, welches dann intern die Umwandlung in eine Geometrie-basierte Adresse, die vom Schaltkreis des Ger�ts ben�tigt wird, durchf�hrt.
Da die Umwandlung in eine Geometrie-basierte Adresse immer vom Ger�t selbst durchgef�hrt wird, ist diese auch immer konsistent und eliminiert somit das Problem, das der Vergabe von Geometrie-basierten Adressen inh�rent ist.