-
Datenkompressionsverfahren
und Struktur für
eine Speichereinheit mit direktem Zugriff
-
Gebiet der Erfindung
-
Die vorliegende Erfindung bezieht
sich auf ein Verfahren und eine Struktur zur Datenkomprimierung
für einen
Direktzugriffsspeicher (DASD), der eine Architektur mit fester Blocklänge (FBA)
verwendet.
-
Beschreibung
des Stands der Technik
-
Computer beinhalten häufig Hilfsspeichereinheiten
mit Medien, auf die Daten geschrieben und von denen Daten gelesen
werden können.
Laufwerkeinheiten oder DASDs, die häufig stapelförmig angeordnete,
sich gemeinsam drehende feste Magnetplatten beinhalten, dienen zur
magnetischen Speicherung von Daten auf den Plattenoberflächen. Die Daten
werden in radial angeordneten Datenspuren auf den Oberflächen der
Platten aufgezeichnet. Wandlerköpfe,
die auf einem Pfad zur und von der Laufwerkachse bewegt werden,
schreiben Daten auf die Platten und lesen Daten von den Platten.
Ein Datenzylinder besteht aus einer Gruppe von zusammen gehörenden Datenspuren
auf dem Stapel der Plattenoberflächen.
Bei einem DASD des Typs, der eine Architektur mit fester Blocklänge aufweist,
sind die Datenspuren in gleich große Segmente bzw. Sektoren unterteilt.
Jedem Sektor ist eine Zahl bzw. logische Blockadresse (LBA) zugeordnet. Üblicherweise erfolgt
das Schreiben und Lesen einer Datei unter Verwendung aufeinanderfolgender
LBAs , wobei ausgehend von der Start-LBA den Datenspuren auf aufeinanderfolgenden
logischen Datenoberflächen gefolgt
wird. Zur Fragmentierung kommt es, wenn Datenblöcke der Datei in freie, nicht
zusammenhängende
Sektoren an verschiedenen Speicherstellen des DASD geschrieben werden.
-
Um die vergleichsweise begrenzte
verfügbare
DASD-Speicherkapazität zu nutzen,
können
die Daten unter Verwendung einer Komprimierungsmethode gespeichert
werden. Damit DASDs wirksam genutzt werden können, sollte die Antwortzeit
jedoch sowohl vorhersagbar als auch kurz sein. Die Konsistenz der
Antwortzeit ist von äußerster
Wichtigkeit. Bei hoher Arbeitslast muss die Antwortzeit zumindest vorhersagbar
sein. Bei Stapeloperationen sind Unternehmen in der Regel auf bestimmte
Zeitfenster mit geringer Systemauslastung angewiesen, um Hintergrundanwendungen
auszuführen.
Wenn die Zeitanforderungen dieser Anwendungen nicht konsistent und
vorhersagbar sind, lässt
sich der Arbeitsablauf nur schwer zeitlich einplanen, was zu Zeitfenstern führen kann,
in denen das System stark überlastet ist.
-
Die Betriebsmerkmale von DASDs, die
keine Datenkomprimierung verwenden, stellen einen Maßstab für die Messung
von Konsistenz und Vorhersagbarkeit des Betriebs dar. Bei kommerziellen
Systemen mit Komprimierung sollte die Konsistenz der Antwortzeit ähnlich sein
wie bei einem DASD-Teilsystem ohne Datenkomprimierung.
-
Die Anwendung von DRSD-Datenkomprimierungsmethoden
auf ein System mit festen Seitenlängen führt zu komprimierten Seiten
mit einer variablen Länge,
deren Länge
sich ändern
kann, wenn sie im Verlauf der Zeit immer wieder aktualisiert werden.
Wenn diese komprimierten Seiten auf einem DASD des Typs gespeichert
werden, der eine Architektur mit fester Blocklänge (FBA) oder eine feste Sektorgröße aufweist,
muss ein Mechanismus vorgesehen werden, der diese Längenvariation
verarbeiten kann. Derzeitige Methoden verschieben die Daten üblicherweise
in einen nicht zusammenhängenden
Bereich des DASD, wenn der Fall eintritt, dass nacheinander aktualisierte
komprimierte Daten bis zu dem Punkt angewachsen sind, an dem der
ursprüngliche
Speicherplatz nicht mehr ausreicht. Dies führt zu einer Fragmentierung,
bei der die aktualisierte komprimierte Seite Teil eines größeren sequenziellen Datenblocks
ist. Die Fragmentierung kann zu großen Leistungsschwankungen führen, da
der Zugriff auf die Daten sequenziell und nacheinander erfolgt.
Das Ergebnis der zusätzlichen
Suchzeiten kann eine Leistungsminderung sein, die auftritt, wenn
sich der Zugriffsarm bewegt, um auf Seiten zuzugreifen, die sich
auf verschiedenen, nicht zusammenhängenden Spuren befinden. Dieses
Merkmal komprimierter Daten stellte bis heute einen bedeutenden
Hemmschuh für
die Verwendung der Datenkomprimierung bei hochleistungsfähigen Computersystemen
wie beispielsweise dem kommerziellen IBM AS/400-System dar.
-
Es ist daher äußerst wünschenswert, ein verbessertes
Datenkomprimierungsverfahren und eine Datenkomprimierungsstruktur
für einen
Direktzugriffsspeicher (DASD) mit einer Leistung und Konsistenz
der Antwortzeit bereitzustellen, die derjenigen eines DASD-Teilsystems
ohne Komprimierung ähnelt.
-
Die Europäische Patentanmeldung EP-A-O 587
437 (IBM Corporation) mit dem Titel „Data compression/decompression
and storage of compressed and uncompressed data on a single data
storage volume" beschreibt eine Datei mit einer Vielzahl von Datenblöcken, die
sich aus einer oder mehreren Übertragungseinheiten
von Datenblöcken
zusammensetzen. Vor der Datenspeicherung durchläuft jede Übertragungseinheit aus Datenblöcken ihren
eigenen Datenkomprimierungszyklus, um so eine Gruppe von komprimierten
Datenblöcken
zu erzeugen. Die Größe der Datenübertragungseinheit
in Bytes wird so ausgewählt,
dass sie das einfache Adressieren und Abrufen einzelner gespeicherter Gruppen
von komprimierten Datenblöcken
gestattet und gleichzeitig für
eine gute Kanalausnutzung und Leistungsfähigkeit der Komprimierung sorgt.
Die Auswahl der Größe der Datenübertragungseinheit erfolgt
teilweise auch unter dem Gesichtspunkt einer leistungsfähigen Datenspeicherung,
d. h., bei der Speicherung der komprimierten Daten sollten möglichst
viele adressierbare Datenspeicherbereiche belegt werden. Nach der
Speicherung einer jeden Gruppe von komprimierten Datenbytes wird
ein Eintrag in ein Dateiverzeichnis vorgenommen, um so die Adressierung
der gespeicherten, komprimierten Datenblöcke zu ermöglichen.
-
Die Internationale Patentanmeldung
WO 91 20076 A (Storage Technology Corporation) mit dem Titel „Apparatus
for compressing data in a dynamic mapped virtual data storage Subsystem)
beschreibt ein dynamisch abgebildetes virtuelles Speichersystem
für die
Speicherung von Daten, bei dem jeder Datensatz lediglich den physischen
Speicherplatz belegt, der für
die Daten erforderlich ist. Des Weiteren verwaltet das Datenspeicherteilsystem
die Zuordnung des physischen Speicherplatzes auf den Plattenlaufwerken
und ist nicht von der Dateierweiterung abhängig, wie sie im Datenstrom
des CKD- Formats
(Count, Key, Data) definiert ist. Der Mechanismus für die Datenkomprimierung
dient dazu, die Lücken,
die im Datenstrom der vom Hostprozessor empfangenen CKD-Datensätze enthalten
sind, zu schließen.
Im Anschluss daran wird ein Datenkomprimierungsalgorithmus verwendet,
um die empfangenen Daten in ein komprimiertes Format zu komprimieren,
so dass sie auf den Plattenlaufwerken gespeichert werden können. Die
komprimierten Daten werden schließlich auf den Plattenlaufwerken
gespeichert. Außerdem
wird jeder vom Hostprozessor empfangene Datensatz, in dessen Benutzerdatenfeld
keine Daten vorhanden sind, in dem Abbild des virtuellen Speichers
ganz einfach als Nullfeld aufgelistet und belegt so keinen physischen
Platz auf den Plattenlaufwerken. Anhand ihrer Abbildungsfunktion speichert
die Datenspeicherungssteuerung die eigentlichen Daten so, dass sie
einen minimalen physischen Speicherplatz belegen, und überwindet
somit durch die Verwendung von Datensätzen im CKD-Format die für Plattenlaufwerke mit großem Formfaktor geltenden
Einschränkungen.
Das Datenspeicherteilsystem gibt diese gespeicherten Daten jedoch über einen
Prozess für
die Datensatz-Neuformatierung im CKD-Format an den Hostprozessor
zurück,
sobald die gespeicherten, komprimierten Daten für den Zugriff durch den Hostprozessor
an den Cachespeicher übergeben
werden. Der Betrieb des Datenspeicherteilsystems läuft zwar
unabhängig
vom Hostprozessor, funktioniert aber dessen ungeachtet so, als würde es sich
um ein standardmäßiges, funktional
abhängiges
Plattensubsystem mit großem
Formfaktor handeln.
-
Die Internationale Patentanmeldung
WO 91 19255 A (Maxtor Corporation) mit dem Titel „Apparatus
and method for efficient organization of compressed data on a hard
disk" beschreibt einen Mechanismus und ein Verfahren für die wirksame
Speicherung komprimierter Daten auf einer Platte, wobei eine logische
Blocklänge
zum Einsatz kommt, die kleiner als die physisch formatierte Blocklänge ist. Ein
eingebettetes Steuersystem, das einen Mikroprozessor, einen Coprozessor
für die
Komprimierung/Dekomprimierung und eine LBA/HCS-Tabelle umfasst,
wählt eine
Blocklänge
aus und geht dabei von einem vom Benutzer ausgewählten Komprimierungsverhältnis aus,
das die größte Wahrscheinlichkeit
aufweist. Die komprimierten Daten werden in einem logischen Block
gespeichert, während
in der LBA/HCS-Tabelle Daten zu Länge und Speicherstelle der
komprimierten Daten gespeichert werden. Wenn ein Block mit komprimierten
Daten zu groß für einen
einzigen logischen Block ist, tritt ein Überlaufzustand ein. Die Überlaufdaten
werden in anderen physischen Blöcken
in einer Reservepartition der Platte gespeichert; die dabei verwendeten
Blöcke können auch
nichtsequenziell sein. In der LBA/HCS-Tabelle sind Daten gespeichert,
welche die Blöcke
miteinander verknüpfen,
die verwandte Daten eines komprimierten Datenblocks enthalten.
-
Zusammenfassung
der Erfindung
-
Die Erfindung ist gemäß Anspruch
1 definiert. Wichtige Aufgaben der vorliegenden Erfindung bestehen
in der Bereitstellung eines verbesserten Datenkomprimierungsverfahrens
und einer Datenkomprimierungsstruktur für einen Direktzugriffsspeicher
(DASD) und in der Bereitstellung eines derartigen Verfahrens und
einer Struktur, mit dem/der viele der Nachteile von Anordnungen
nach dem Stand der Technik überwunden
werden.
-
Kurz ausgedrückt, es werden ein Datenkomprimierungsverfahren
und eine Datenkomprimierungsstruktur für einen Direktzugriffsspeicher (DASD)
bereitgestellt. Der DASD ist in eine Vielzahl von Komprimierungsgruppen
unterteilt. Jede der Komprimierungsgruppen verfügt über eine feste logische Größe. In jede
der Komprimierungsgruppen wird eine Verzeichnistabelle geschrieben.
Jede Komprimierungsgruppe hat mindestens einen Bereich mit komprimierten
Daten, in den komprimierte Daten geschrieben werden können, sowie
einen Ausnahmenbereich, in den komprimierte Datenausnahmen geschrieben
werden können.
Die komprimierten Datenausnahmen beinhalten aktualisierte komprimierte Daten,
die einen ursprünglichen
Speicherplatz für entsprechende
ursprüngliche
komprimierte Daten überschreiten.
-
Kurze Beschreibung
der Zeichnungen
-
Die vorliegende Erfindung mit den
oben genannten und anderen Aufgaben und Vorteilen wird am deutlichsten
aus der folgenden ausführlichen
Beschreibung der bevorzugten Ausführungsformen der Erfindung,
wie sie in den Zeichnungen dargestellt sind, wobei:
-
1 eine
Darstellung eines System ist, das eine Speichersteuereinheit für die Umsetzung
der Komprimierung eines integrierten Direktzugriffsspeichers (DASD)
und eine Datenkomprimierungsstruktur gemäß der vorliegenden Erfindung
verwendet;
-
2 eine
Darstellung einer Datenkomprimierungsstruktur gemäß der vorliegenden
Erfindung ist;
-
3 bis 5 Ablaufdiagramme der logischen Schritte
sind, die von einer Speichersteuereinheit des DASD-Komprimierungssystems
aus 1 gemäß der vorliegenden
Erfindung ausgeführt
werden.
-
Ausführliche
Beschreibung der bevorzugten Ausführungsformen
-
Mit Bezug auf die Zeichnungen zeigt FIG. 1 eine Darstellung eines beispielhaften
Systems, das mit der Ziffer 10 gekennzeichnet ist und das
zur Durchführung
eines Datenkomprimierungsverfahrens der Erfindung dient. Wie abgebildet,
beinhaltet das beispielhafte System 10 ein Datenverarbeitungs- oder
Hostsystem, das mit der Ziffer 12 gekennzeichnet ist. Das
Hostsystem 12 beinhaltet ein Anwendungsbetriebssystem 14,
ein Dateisystem 16 und eine Verwaltungsfunktion 18 für die Datenspeicherung
in einem Direktzugriffsspeicher (DASD), mit der Daten in mindestens
einem DASD 36 gespeichert werden. Die DASD-Speicherverwaltungsfunktion 18 beinhaltet
ein logisches Verzeichnis 20, das die logischen Blockadressen
speichert, an denen die Daten in dem/den zugehörigen DASD bzw. DASDs 36 abgelegt
werden.
-
Der Zugriff auf die Daten in dem
DASD 36 erfolgt über
eine Speichersteuereinheit, die mit der Ziffer 22 gekennzeichnet
ist und die Daten komprimiert, wenn sie in den DASD geschrieben
werden, und Daten dekomprimiert, wenn sie aus dem DASD gelesen werden.
Die Speichersteuereinheit 22 beinhaltet einen Funktionsblock 24 für die Komprimierung
und Dekomprimierung, einen Datenpuffer 26 für die Speicherung
von Daten, einen logischen Block 28 für die Komprimierungsverwaltung,
mit dem die Adressumsetzung erfolgt, und einen physischen Verzeichnis-Cachespeicher 30,
der zur Speicherung von Cachespeicher-Verzeichniselementen des DASD-Verzeichnisses dient,
die von der Speichersteuereinheit 22 erzeugt wurden. Die
Speichersteuereinheit 22 empfängt Datenseiten von dem Hostsystem 12,
komprimiert sie und erzeugt komprimierte Datenseiten, die in Sektoren
gespeichert werden, wobei Komprimierungskopfzeilen hinzugefügt werden,
welche die Wiederherstellung der Verzeichnisse ermöglichen. Nachdem
die physische Speicherstelle der Daten in dem DASD durch die Logik 28 für die Komprimierungsverwaltung
ermittelt wurde, werden die komprimierten Daten über eine Gerätebusschnittstelle 32 an
den DASD 36 weitergeleitet oder von ihm empfangen.
-
Der DASD 36 beinhaltet eine
Vielzahl von Komprimierungsgruppen 38 verschiedener Größe, wobei
jede Komprimierungsgruppe für
die Speicherung verwandter Daten des Hostsystems verwendet wird.
Jede Komprimierungsgruppe beinhaltet einen Bereich 40 mit
komprimierten Daten für
die Speicherung ursprünglicher
und aktualisierter komprimierter Daten, einen Ausnahmenbereich 42 für die Speicherung
aktualisierter komprimierter Seiten, die größer sind als der ihnen ursprünglich zugewiesene
Speicherplatz, und ein Verzeichnis bzw. eine Mikrotabelle 44 für die Lokalisierung
der Daten in der Komprimierungsgruppe. Der Bereich 40 mit
komprimierten Daten besteht aus mehreren Komprimierungsbereichen 50.
Ein Merkmal der Erfindung besteht darin, dass die komprimierten
Daten in dem DASD 36 so angeordnet sind, dass die räumlichen
Beziehungen verwandter Daten innerhalb einer jeden Komprimierungsgruppe 38 zusammen
mit den erforderlichen Parametern für die Speicherplatzverwaltung
erhalten bleiben. Die sich daraus ergebende Struktur der komprimierten
Daten sorgt für
eine konsistente Leistung in einer kommerziellen Umgebung und verringert
die Leistungseinbuße
als Folge einer Datenkomprimierung auf ein Mindestmaß.
-
2 zeigt
die Datenkomprimierungsstruktur. Die Segmentierung der Daten in
dem DASD liegt in Form einer endlichen Anzahl (CG 0 bis CG N) von Blöcken oder
Komprimierungsgruppen 38 vor. Jede Komprimierungsgruppe 38 wird
als eine ganzzahlige Einheit verwaltet, wobei der darin enthaltene
Speicherplatz gemäß einer
zu der Erfindung gehörigen Hierarchie
für komprimierte
Daten flexibel zugeordnet wird. Die Daten innerhalb einer jeden
Komprimierungsgruppe 38 bilden vom Standpunkt des Hostsystems 12 aus
betrachtet einen festen logischen Adressbereich, wobei Schwankungen
der physischen Größe von den
Komprimierungsmerkmalen der gespeicherten Daten abhängig sind.
Eine Komprimierungsgruppe 38 ist nicht auf eine bestimmte Größe beschränkt; die
Leistungsfähigkeit
der Datenspeicherung ist jedoch am größten, wenn die Größe der Komprimierungsgruppe
so gewählt
wird, dass sie gleich groß oder
größer als
die überwiegende
Zahl der Datenblöcke
ist, die das Hostsystem 12 zuweist. Auch in Bezug auf die
Seitenlänge
des Systems sollte sie verhältnismäßig groß sein.
Die Größe der Komprimierungsgruppe
wird so gewählt,
dass sie im Wesentlichen mit den vom Dateisystem vorgegebenen Strukturen
für Speicherverwaltungszuordnung
und -zugriff übereinstimmt.
Bei einem IBM AS/400-Computersystem 12 wurde eine Komprimierungsgruppengröße von 1
MB mit einer Systemseitenlänge
von 4 K gewählt.
Innerhalb der Komprimierungsgruppe 38 werden die Daten
sequenziell in der Reihenfolge gespeichert, die von dem Adressierungsmodell
des Systems vorgegeben ist. Jede Systemdatenseite wird innerhalb
der Gruppe einzeln komprimiert und an dem physischen Speicherplatz
gespeichert, der ihrer komprimierten Größe entspricht. Die Komprimierungsgruppen 38 müssen dabei
keine räumlichen Beziehungen
zueinander aufrechterhalten.
-
Jede Komprimierungsgruppe 38 besteht
aus einer variablen Anzahl von Komprimierungsbereichen 50 und
kann somit eine variable physische Größe aufweisen. Wie gezeigt,
umfasst eine jede Komprimierungsgruppe 38 in physischer
Hinsicht eine ganzzahlige Anzahl von Komprimierungsbereichen 50 (CR
0 bis CR M). Die Komprimierungsbereiche 50 dienen dazu,
eine ausreichend feine Unterteilung für die Verwaltung des Plattenspeicherplatzes
bereitzustellen. Obwohl eine beliebige Größe – einschließlich eines Sektors, des funktional
nicht weiter teilbaren, kleinsten adressierbaren Datenbereichs des
DASD 36 – verwendet
werden könnte,
ist es vorteilhaft, die Größe des Komprimierungsbereichs 50 so
auszuwählen,
dass sie auf die Plattengeometrie abgestimmt ist und z. B. eine
Spurgröße oder
eine andere ausführungsabhängige Größe beträgt. Die
Verwendung von Komprimierungsbereichen 50 ist optional, trägt jedoch
dazu bei, dass sich leistungsfähige
Ausführungen
realisieren lassen.
-
In FIG. 2 beinhaltet
der Ausnahmen- und Verwaltungsbereich (Exception and Administration Region,
EXCP) den Ausnahmenbereich 42 und das Mikrotabellenverzeichnis 44.
Der EXCP-Bereich ist ein vordefinierter Speicherplatz innerhalb
der Komprimierungsgruppe 38 für komprimierte Seiten, die nicht
mehr in den Speicherplatz passen, der ihnen und den Verzeichnisdaten
zu dem betreffenden Zeitpunkt zugeordnet ist. Der EXCP-Bereich besteht
aus einer ganzzahligen Anzahl von Komprimierungsgruppen 50.
Obwohl sich der EXCP-Bereich auf die sequenzielle Speicherung der
Daten innerhalb einer Komprimierungsgruppe 38 auswirkt,
stellt der Ausnahmenbereich 42 sicher, dass aktualisierte
Daten nicht weit von ihrem ursprünglichen
Speicherplatz und von benachbarten Dateidaten entfernt gespeichert
werden. In vielen Fällen
gestattet die Verwendung der SCSI (Small Computer System Interface)-Befehle „Skip Read"
und „Skip
Write", dass die im Ausnahmenbereich gespeicherten Daten gemeinsam
mit ihren benachbarten Seiten in einer einzigen Operation erfasst
werden können.
Die SCSI-Befehle „Skip Read"
und „Skip
Write" arbeiten mit einer Leermaske, mit der ausgewählte Sektoren
so gesetzt werden können,
dass aus ihnen gelesen bzw. in sie geschrieben wird, während andere
Sektoren auf Null gesetzt werden und damit keine Operation für sie durchgeführt wird.
Auch wenn dies nicht möglich
ist, lässt
sich eine langwierige Suche aufgrund der Nähe zum EXCP-Bereich vermeiden.
Die Verzeichnisdaten zum Speicherplatz der Daten innerhalb eines
jeden Blocks befinden sich gemeinsam mit den Daten in jeder Komprimierungsgruppe 38.
Entsprechend verkürzt
die räumliche
Nähe der
Verzeichnisdaten zu ihren verwandten Daten die DASD-Suchzeiten auf
ein Mindestmaß,
wenn auf das Verzeichnis zugegriffen werden muss. Tatsächlich werden
die Verzeichnisdaten auch in der Speichersteuereinheit 22 zwischengespeichert,
so dass Aktualisierungen der Verzeichnisdaten im Mikrotabellenverzeichnis 44 der
Komprimierungsgruppe auf ein Mindestmaß verringert werden.
-
Jeder Komprimierungsbereich 50 beinhaltet mehrere
Komprimierungsseiten 52 (CP 1 bis CP J). Die Länge der
Komprimierungsseite 52 wird bevorzugt so gewählt, dass
sie gleich der Länge
einer Systemseite ist. Auf diese Weise kann darauf verzichtet werden,
dass die DASD-Teilsystemsteuereinheit 22 die
Operationen „Bereit", „Ändern" oder „Schreiben" für eine komprimierte
Seite ausführt,
auf der nur ein Teil der Daten vom Hostsystem 12 modifiziert
wurde. Der Komprimierungsbereich 50 besteht aus einer festen
Anzahl physischer Sektoren 54, die eine variable Anzahl
Komprimierungsseiten 52 enthalten. Abhängig von dem betreffenden Komprimierungsverhältnis beläuft sich
die physische Länge
der Komprimierungsseite 52 auf 1 bis n physische Sektoren 54 (PS
0 bis PS i). Die Komprimierungsseiten 52 können innerhalb
einer Komprimierungsgruppe 38 mehrere Komprimierungsbereiche 50 umspannen.
-
Der physische Sektor 54 beinhaltet
die komprimierten Daten 56 und eine optionale Kopfzeile 58 für den physischen
Sektor, die Steuerdaten enthält.
-
FIG. 3 zeigt
ein Ablaufdiagramm mit sequenziellen Operationen für eine Lesesequenz
mit Beginn bei Block 300. Wie aus Block 302 hervorgeht,
wird zunächst
von der Speichersteuereinheit 22 ein Lesebefehl vom Hostcomputer 12 empfangen.
Wie aus Block 304 hervorgeht, legt die Speichersteuereinheit 22 eine
Komprimierungsgruppe 38 fest und verwendet dabei die höchstwertigen
Bits aus der logischen Blockadresse (LBA) des Hosts. Wie aus Block 306 hervorgeht,
lokalisiert die Speichersteuereinheit 22 das Komprimierungsgruppenverzeichnis
gegebenenfalls im physischen Verzeichnis-Cachespeicher 30 oder
aber direkt im DASD 36.
-
Daraufhin ermittelt die Speichersteuereinheit 22 den
physischen Versatz und die Länge
der zu lesenden Zielseite bzw. Zielseiten. Wie aus Block 308 hervorgeht,
berechnet die Speichersteuereinheit 22 unter Verwendung
des Komprimierungsgruppenverzeichnisses und niedrigstwertiger Bits
aus der logischen Blockadresse des Hosts die logische Blockadresse
des DASD beispielsweise als einen Index und berechnet die Blockanzahl,
wobei das Komprimierungsgruppenverzeichnis herangezogen wird. Bei
einer Leseoperation einer einzigen oder auch mehrerer Seiten mit
Ausnahmen berechnet die Speichersteuereinheit 22 anschließend unter
Verwendung des Komprimierungsgruppenverzeichnisses und niedrigstwertiger
Bits aus der logischen Blockadresse des Hosts die LBA des Ausnahmenbereichs 42 beispielsweise
als einen Index und berechnet unter Verwendung des Komprimierungsgruppenverzeichnisses
die Blockanzahl im DASD-Ausnahmenbereich,
wie aus Block 310 hervorgeht. Danach erzeugt die Speichersteuereinheit 22 die
DASD-Operation bzw. – Operationen
und verwendet dabei die berechnete logische DASD-Blockadresse, die DASD-Blockanzahl,
die logische Blockadresse des DASD-Ausnahmenbereichs sowie die Blockanzahl
im DASD-Ausnahmenbereich,
wie aus Block 312 hervorgeht. Wenn die Leseoperation Ausnahmen
beinhaltet und die Ausnahmen innerhalb der Spanne einer SCSI-Leeroperation
liegen, erzeugt die Speichersteuereinheit 22 den Befehl „Skip Read"
für diese Operation.
Wenn die Ausnahmen nicht innerhalb der Spanne einer SCSI-Leeroperation
liegen, erzeugt die Steuereinheit zwei Operationen. Die Speichersteuereinheit 22 sendet
die Befehle oder Operationen an den DASD 36 und empfängt und
dekomprimiert die Daten, wie aus Block 314 hervorgeht.
Damit ist die Lesesequenz abgeschlossen.
-
FIG. 4 zeigt
die sequenziellen Operationen für
eine Schreibsequenz mit Beginn bei Block 400. Zunächst empfängt die
Speichersteuereinheit 22 einen Schreibbefehl vom Hostcomputer 12,
wie aus Block 402 hervorgeht. Die Speichersteuereinheit 22 komprimiert
die zu schreibenden Daten und legt die komprimierte Länge fest,
wie aus Block 404 hervorgeht. Danach bestimmt die Speichersteuereinheit 22 unter
Verwendung der höchstwertigen
Bits aus der logischen Blockadresse des Hosts die Komprimierungsgruppe 38,
wie aus Block 406 hervorgeht. Wie aus Block 408 hervorgeht,
lokalisiert die Speichersteuereinheit 22 die Komprimierungsgruppe
in Verzeichnis 30. Die Speichersteuereinheit 22 berechnet unter
Verwendung des Komprimierungsgruppenverzeichnisses 30 und
der niedrigstwertigen Bits aus der logischen Blockadresse des Hosts
die physische Startadresse oder die logische Blockadresse des DASD
beispielsweise als einen Index und berechnet unter Verwendung des
Komprimierungsgruppenverzeichnisses und der Länge der komprimierten Daten die
Blockanzahl, wie aus Block 410 hervorgeht. Wenn die komprimierten
Hostseiten nicht in den verfügbaren
physischen Speicherplatz passen, berechnet die Speichersteuereinheit 22 unter
Verwendung des Komprimierungsgruppenverzeichnisses und der niedrigstwertigen
Bits aus der logischen Blockadresse des Hosts die logische Blockadresse
des Ausnahmenbereichs beispielsweise als einen Index. Die Speichersteuereinheit 22 berechnet
unter Verwendung des Komprimierungsgruppenverzeichnisses 30 und
der Länge
der komprimierten Daten die Blockanzahl im DASD-Ausnahmenbereich,
wie aus Block 412 hervorgeht.
-
Die Speichersteuereinheit 22 erzeugt
die DASD-Operation bzw. – Operationen
unter Verwendung der berechneten Werte für die logische DASD-Blockadresse,
der DASD-Blockanzahl, der logischen Blockadresse des DASD-Ausnahmenbereichs
und der Blockanzahl im DASD-Ausnahmenbereich, wie aus Block 414 hervorgeht.
Daraufhin aktualisiert die Speichersteuereinheit
22 das
Komprimierungsgruppenverzeichnis 30, wie aus Block 416 hervorgeht.
Die Speichersteuereinheit 22 sendet die Befehle oder Operationen
an den DASD 36 und stellt die komprimierten Daten bereit,
wie aus Block 418 hervorgeht. Damit ist die Schreibsequenz
abgeschlossen.
-
Innerhalb einer Komprimierungsgruppe 38 kann
in gewissem Umfang eine räumlich
begrenzte Fragmentierung auftreten. Eine globale Fragmentierung
ist jedoch ausgeschlossen, da verwandte Daten physisch innerhalb
einer Komprimierungsgruppe 38 gespeichert werden. Eine
eventuell vorhandene räumlich
begrenzte Fragmentierung innerhalb der Komprimierungsgruppe 38 wird
in erwünschten
Intervallen behoben. Die Durchlauf-Sequenz: stellt im Hintergrund
ablaufende Operationen bereit, die für die periodische Behebung
einer räumlich
begrenzten Fragmentierung erforderlich sind.
-
FIG. 5 zeigt
ein Ablaufdiagramm mit sequenziellen Schritten für eine im Hintergrund ausgeführte Durchlauf-Operation,
die ausgelöst
wird, um eine räumlich
begrenzte Fragmentierung der gespeicherten, komprimierten Daten
zu beheben. Zunächst
ermittelt die Speichersteuereinheit 22 unter Verwendung
des Komprimierungsgruppenverzeichnisses 30 den physischen
DASD-Speicherplatz,
der für
die Aufnahme einer bestimmten Komprimierungsgruppe 38 benötigt wird,
wie aus Block 502 hervorgeht. Die Speichersteuereinheit 22 weist
dieser Komprimierungsgruppe 38 physischen Speicherplatz
in dem DASD 36 zu, wie aus Block 504 hervorgeht.
Wie aus Block 506 hervorgeht, erzeugt die Speichersteuereinheit 22 daraufhin
ein. neues Komprimierungsgruppenverzeichnis, in dem alle komprimierten
Daten in aufsteigender Reihenfolge der logischen Blockadresse des
Hosts neu sortiert werden und wobei der Ausnahmenbereich 42 leer
ist. Die Speichersteuereinheit 22 verwendet das ursprüngliche
Komprimierungsgruppenverzeichnis 30 zur Erzeugung von Leseoperationen,
um alle Daten in der ursprünglichen
Komprimierungsgruppe zu erfassen, wie aus Block 508 hervorgeht.
Danach verwendet die Speichersteuereinheit 22 das neue
Komprimierungsgruppenverzeichnis 38, um alle Daten in der
neuen Komprimierungsgruppe 510 zu speichern, wie aus Block 510 hervorgeht.
Die Speichersteuereinheit 22 sendet die Operationen an
den DASD 36 und empfängt
die komprimierten Daten, wie aus Block 512 hervorgeht.
Die Speichersteuereinheit 22 sendet die Operationen an den
DASD 36 und stellt die komprimierten Daten zur Verfügung, wie
aus Block 514 hervorgeht. Die Speichersteuereinheit 22 hebt
die Zuweisung des physischen Speicherplatzes der ursprünglichen
Komprimierungsgruppe im DASD 36 auf und aktualisiert das DASD-Verzeichnis der komprimierten
Daten, wie aus Block 516 hervorgeht. Damit ist die Durchlauf-Operation
abgeschlossen.