13.4 Nah gekoppelte Shared-Disk-Systeme
13.4.3 Nutzung eines Globalen Erweiterten Hauptspeichers
Der Zugriff auf erweiterte Hauptspeicher im zentralen Fall besteht lediglich aus Lese- und Schreiboperationen auf Seiten. Diese einfache Schnittstelle begrenzt jedoch die Einsatzmöglichkeiten im verteilten Fall zu sehr, vor allem hinsichtlich der Realisierung von Kommunikationsaufgaben sowie zur Ablage globaler Datenstrukturen. In [Ra93a] wurde daher die Verwendung eines Globalen Erweiterten Hauptspeichers (GEH) mit erweiterter Zugriffsschnittstelle vorgeschlagen. Die Stellung des GEH innerhalb eines Shared-Disk-Systems ist in Abb. 13-6 dargestellt.
Abb. 13-6: Einsatz eines Globalen Erweiterten Hauptspeichers (GEH)
Wie für den erweiterten Hauptspeicher im zentralen Fall kann auf den GEH über Maschineninstruktionen synchron zugegriffen werden. Neben Seitenzugriffen unterstützt der GEH jedoch noch ein weiteres Zugriffsgranulat, sogenannte Einträge, um z.B. einfache globale Datenstrukturen zu realisieren. Die Eintragsgröße kann dabei das Mehrfache eines Einheitsgranulats (z.B. ein Doppelwort) sein. Neben Lese- und Schreiboperationen auf Einträgen existiert eine Compare&Swap-Operation auf dem Einheitsgranulat, um Zugriffe mehrerer Rechner auf GEH-Datenstrukturen synchronisieren zu können. Eintragszugriffe können wesentlich schneller als Seitenzugriffe abgewickelt werden (z.B. 1-5 Mikrosekunden), da eine weit geringere Datenmenge zu transferieren ist. Trotz der erweiterten Zugriffsschnittstelle liegt keine Instruktionsadressierbarkeit auf dem GEH vor, da eine direkte Änderung von GEH-Einträgen nicht möglich ist. Stattdessen müssen Einträge wie Seiten zur Auswertung und Änderung in den Hauptspeicher gebracht werden. Aus Fehlertoleranzgründen kann der GEH nicht-flüchtig ausgelegt sein; zudem ist eine Duplizierung der Speicherinhalte in unabhängigen Partitionen möglich, um GEH-Ausfälle behandeln zu können (analog zu Spiegelplatten).
Ein solcher Speicher ist wesentlich allgemeiner nutzbar als Spezialprozessoren. Wie in [Ra93a] ausgeführt, können damit insbesondere die allgemeinen Nutzungsformen der speicherbasierten Kommunikation sowie zur E/A-Optimierung realisiert werden. Aber auch die in Kap. 13.4.1 genannten Shared-Disk-spezifischen Einsatzformen sind realisierbar, insbesondere die effiziente Synchronisation über eine globale Sperrtabelle sowie die Erstellung einer globalen Log-Datei. Das Sperrprotokoll erfordert beim doppelten Führen der Sperrinformationen weniger als 10 GEH-Zugriffe zum Setzen und Freigeben einer Sperre, so daß dafür weniger als 50 Mikrosekunden anfallen. Damit konnte ein weit besseres Leistungsverhalten als mit einem nachrichtenbasierten Protokoll erzielt werden [Ra93a, Ra93c]. Auch die Realisierung der globalen Log-Datei ist sehr einfach und effizient möglich [Ra91b].
Allerdings lassen sich mit Einträgen nur einfache Datenstrukturen mit vertretbarem Aufwand realisieren. Die fehlende Instruktionsadressierbarkeit verlangt vor allem für variabel lange Datenstrukturen, wie etwa zur Pufferverwaltung erforderlich, eine umständliche Realisierung mit einer hohen Anzahl von GEH-Zugriffen. Zudem stellt natürlich auch der GEH Spezial-Hardware dar, die zusätzliche Kosten verursacht.