-
Diese Erfindung betrifft ein peripheres Speicher-Subsystem zur
Verwendung mit einem Hauptrechner mit einer arithmetischen und
logischen Einheit und einer Hauptspeichereinheit für Daten und
Programme zur Erzeugung von über mehrere Speicher- Zugriffswege
auf eine Langzeit-Datenspeichereinrichtung gerichteten
Eingabe-/Ausgabe-Befehlen, wobei das periphere Speicher-Subsystem
Zugriffsweg-Steuereinrichtungen mit einer ersten Steuereinheit
enthält, die mit einem der Speicher- Zugriffswege verbunden
werden kann, und mit einer mit einer
Langzeit-Speichereinrichtung verbundenen zweiten Steuereinrichtung, wobei das
Subsystem ferner Festkörper-Cache-Speichereinrichtungen aufweist,
die mit den Zugriffsweg-Steuereinrichtungen zum Halten solcher
Daten verbunden sind, von denen erwartet wird, daß sie
Gegenstand von Eingabe-/Ausgabe-Befehlen sind, und mit einer
dritten Steuereinheit zur Überwachung von
Eingabe-/Ausgabe-Befehlen an den Zugriffsweg-Steuereinrichtungen und zur
Bereitstellung von Befehlen zu den Zugriffsweg-Steuereinrichtungen
zur Steuerung des Datenstroms zwischen einem Speicher-
Zugriffsweg, an den die erste Steuereinheit angeschlossen ist,
und an eine Speichereinheit der
Festkörper-Cache-Speichereinrichtungen.
-
Verbesserungen von Datenverarbeitungssystemen beziehen sich im
allgemeinen entweder auf eine Verbesserung der
durchschnittlichen Zeit für die Ausführung eines gegebenen Befehls oder
auf eine Kostenreduzierung der zur Ausführung eines solchen
Befehls benötigten Ausrüstung. Ein typischer Konstruktions-
Kompromiß wird zwischen den Kosten und der Geschwindigkeit von
Speichereinheiten zur Speicherung von Daten geschlossen.
Beispielsweise sind Bandspeicher herkömmlicherweise langsamer
und kostengünstiger als Plattenspeicher. Plattenspeicher
wiederum gibt es in mehreren Ausführungen; bei der Wahl einer
der Ausführungen muß erneut ein
Kosten/Geschwindigkeits-Kompromiß geschlossen werden. Plattenspeicher sind langsamer,
aber kostengünstiger als Festkörper-Speicher, die ebenfalls in
verschiedenen Ausführungen erhältlich sind, wobei wiederum bei
der Auswahl einer Ausführung ein
Kosten/Geschwindigkeits-Kompromiß geschlossen werden muß. Daher besteht nach dem Stand
der Technik stets der Bedarf nach Bereitstellung
kostengünstigerer, schnellerer Speicher oder, falls dies nicht gelingt,
nach Verbesserung der Effizienz der gegenwärtig vorhandenen
Speichertypen. Die vorliegende Erfindung betrifft eine
Verbesserung der zweiten Art. Die Erfindung bezieht sich
insbesondere auf die Reduzierung der durchschnittlichen Zeit, die eine
zentrale Hauptrechnereinheit (CPU) mit arithmetischer und
logischer Einheit und einer Hauptspeichereinheit zum Erhalt
der gerade bearbeiteten Befehle und Daten benötigt, um Daten
zu gewinnen, die auf einer kostengünstigeren
Langzeit-Datenspeichereinrichtung, wie beispielsweise einer Magnetplatte
oder einer Bandlaufwerkeinheit gespeichert sind.
-
Verzögerungen beim Speicherzugriff treten aufgrund der
mechanischen Einschränkungen von
Langzeit-Datenspeichereinrichtungen auf. Bei einem Plattenlaufwerk drehen sich beispielsweise
im allgemeinen mehrere Platten mit einer vorgegebenen festen
Geschwindigkeit an den Lese-/Schreib-Köpfen vorbei, die
bezüglich der Platte feststehend sind oder sich radial vor- und
zurückbewegen, um die Köpfe neben die verschiedenen Abschnitte
der Plattenoberflächen zu positionieren. In beiden Fällen gibt
es eine begrenzte, durchschnittliche Zeit, (die als
"Zugriffszeit" bezeichnet wird), für die Lokalisierung eines speziellen
Datensatzes und dessen Einlesen von der Platte in die im
Hauptrechner enthaltene Speichereinheit, die typischerweise
eine schnellere Speicherform, zum Beispiel einen Festkörper-
Hauptspeicher, darstellt. Die Verzögerung kann sowohl die
"Positionierungs"-Zeit umfassen, die benötigt wird, um den
Kopf radial zu der speziellen, gewählten "Spur" zu bewegen,
als auch die "Latenz"-Zeit, die die Platte benötigt, um sich,
auf den Kopf bezogen, zu drehen, bis der Anfang des
speziellen, gesuchten Datensatzes sich zum Lesen oder Schreiben neben
dein Kopf befindet.
-
Demgemäß ist es ein Ziel der vorliegenden Erfindung, ein
Speicher-Subsystem bereitzustellen, bei dem die
durchschnittliche, zur Übertragung eines gesuchten Datensatzes zur
Hauptspeichereinheit eines Hauptrechners benötigte Zeit bedeutend
reduziert wird.
-
Bei bekannten Datenverarbeitungssystemen erfolgt die
Kommunikation vom Hauptrechner zu einem Platten- oder Bandspeicher-
Subsystem im allgemeinen über einen "Kanal", der physikalisch
einen festgelegten Satz von Signalverbindungen umfaßt, über
die sämtliche Informationen, einschließlich Daten und Befehle,
Steuersignale, Statussignale, Anforderungssignale und
dergleichen laufen müssen. Damit ein Speicher-Subsystem
vermarktet werden kann, muß es eine "Schnittstelle" aufweisen bzw.
direkt zu einem Kanal passen, der mit denjenigen identisch
ist, zu denen bekannte Speicher-Subsysteme gepaßt haben, und
damit "steckkompatibel" mit dem Hauptrechner sein.
-
Ein Ziel der vorliegenden Erfindung besteht darin, ein
Speicher-Subsystem bereitzustellen, das mit einem bekannten
Hauptrechner "steckkompatibel" ist.
-
In ähnlicher Weise ist es wünschenswert, wenn nicht sogar
kommerziell gesehen notwendig, daß durch das
Speicher-Subsystem nach dessen Anschluß keinerlei Anpassung an die
Programmbefehle des Hauptrechners oder der "Software"
erforderlich werden, d. h. daß es im Hinblick auf den Hauptrechner
"software-transparent" ist.
-
Ein Ziel der vorliegenden Erfindung ist die Bereitstellung
eines Speicher-Subsystems, das die vorher beschriebene
verbesserte Leistung liefert, dabei jedoch im Hinblick auf den
Hauptrechner software-transparent ist.
-
Damit ein Speicher-Subsystem für den Hauptrechner
softwaretransparent sein kann, muß es seine eigenen Fehlerbehebungs-
und Datenverwaltungs-Funktionen ohne Eingriff durch den
Hauptrechner oder dessen Bediener oder Programmierer unterstützen.
-
Ein Ziel der Erfindung ist die Bereitstellung eines peripheren
Speicher-Subsystems mit eigenem Datenspeicher und eigenen
Verwaltungs- und Fehlerbehebungs-Funktionen, so daß Bediener
und/oder Programmierer des Hauptrechners das Vorhandensein des
Subsystems nicht einmal zur Kenntnis zu nehmen brauchen.
-
Während des typischen Betriebs eines bekannten
Datenverarbeitungssystems erreicht ein Hauptrechner einen Punkt in einem
Programm, an dem er zusätzliche Daten benötigt, die aus einer
Langzeit-Speichereinrichtung geholt und in den Hauptspeicher
eingelesen werden müssen. An diesem Punkt wird ein
"Lese"-Befehl erzeugt und über den Kanal an das Speicher-Subsystem
weitergeleitet. In ähnlicher Weise kann es für den
Hauptrechner an einem bestimmten Punkt wünschenswert sein, die während
der Verarbeitung erzeugten Daten in ein
Langzeit-Speicher-Subsystem zu schreiben; entsprechend würde ein "Schreib"-Befehl
erzeugt und über den Kanal an das Speicher-Subsystem
weitergeleitet. Diese Lese- und Schreib-Befehle können allgemein als
System-Eingabe-/Ausgabe-Befehle oder "SIOs" bezeichnet werden.
Wie vorher erwähnt, benötigt eine typische
Langzeit-Datenspeichereinrichtung eine nennenswerte Zeit, bevor ein
gegebener Lese- oder Schreib-Befehl aufgrund der dem mechanischen
System inhärenten Latenzzeit ausgeführt werden kann. Außerdem
müssen die Kommunikationswege zwischen dem Hauptrechner und
der Langzeit-Datenspeichereinrichtung frei sein, damit die
SIO-Tätigkeit gestartet werden kann. Damit im Hauptrechner
während der Latenzzeit kein Leerlauf entsteht, geht er zu
einer anderen Aufgabe über, während eine "Warteschlange" von
SIOs erzeugt wird, wenn der erforderliche Kommunikationsweg
belegt ist. Die SIOs werden anschließend durch die Langzeit-
Speichereinrichtung abgearbeitet, sobald die
Kommunikationswege verfügbar sind. Fachleute werden anerkennen, daß eine
Warteschlange jederzeit eine große Anzahl von wartenden SIO-
Anforderungen enthalten kann, und daß derartig lange
Warteschlangen eine wesentliche Komplexität des Systems bedingen,
unter der Preis und Leistung zu leiden haben.
-
Ein Ziel der Erfindung besteht in der Reduzierung der Länge
solcher Warteschlangen, um damit den Nutzungsgrad und die
Leistung des Systems weiter zu erhöhen.
-
Ist ein Platten-Speicher-Subsystem zur Ausführung der
angeforderten Lese- oder Schreibtätigkeit bereit, können die
notwendigen Kommunikationswege in ähnlicher Weise nicht verfügbar
sein, da die vorgenannten Positionierungs- und
Latenz-Tätigkeiten tatsächlich unabhängig vom Hauptrechner durchgeführt
werden. Die gewünschten Daten, die sich an einer festen
Position auf den sich kontinuierlich drehenden Oberflächen
befinden, laufen ohne Übertragung am Kopf vorbei, wodurch eine
zusätzliche volle Drehung vor dem nächsten Zugriffsversuch
erforderlich wird. Dies wird als Zeit für "fehlende
Drehpositionsbestimmung" bezeichnet und trägt wesentlich zu der
Verzögerung bei der Verarbeitung der erforderlichen Daten bei.
Ein weiteres Ziel der vorliegenden Erfindung besteht in der
Reduzierung dieser Zeit für "fehlende
Drehpositionsbestimmung".
-
Bekannte periphere Speicher-Subsysteme wurden zum Kauf
angeboten, die die vorgenannten Probleme angeblich lösen. Zum
Beispiel bot Memorex Corporation ein Gerät zum Kauf an, das als
Disk-Cache-System Modell 3770 bekannt ist, das an eine
Steuereinrichtung angeschlossen werden muß, die den Betrieb einer
Anzahl von Plattenlaufwerken steuert. Wird eine
"Lese"-Anforderung von einem Hauptrechner empfangen, liest das
3770-Cache-System die Daten von der Platte in einen
Festkörperspeicher
ein und macht sie dem Hauptrechner anschließend
verfügbar. Mit diesem System ist die Einsparung einer gewissen Zeit
für die fehlende Drehpositionsbestimmung möglich. Das
3770-System weist jedoch bestimmte Konstruktionsmängel auf, die durch
die vorliegende Erfindung aufgehoben werden. Das 3770-System
wird beispielsweise an ein einziges "Steuermodul"
angeschlossen, daß aus speziellen Elektronikteilen besteht, die unter
einer Speichersteuerung arbeiten und eine bis acht Laufwerke
eines einzigen Typs steuern. Dies ist unerwünscht, da viele
vorhandene Datenverarbeitungssysteme mehrere Typen von
Plattenlaufwerken aufweisen, so daß die Bereitstellung eines
Cache-Speichersystems wünschenswert wäre, mit dem eine
Leistungsverbesserung eines Systems möglich ist, selbst wenn
mehrere Typen von Plattenlaufwerken im System vorhanden sind.
Daher ist es ein Ziel der vorliegenden Erfindung, ein
peripheres Speicher-Subsystem mit einem Festkörper-Cache-Speicher
bereitzustellen, der mit mehreren Typen von Plattenlaufwerken
verbunden werden kann.
-
Ein weiterer Nachteil der Konstruktion des 3770, verursacht
durch die Tatsache, daß das System "unterhalb" des einzigen
"Steuermoduls" in der Daten- Systemorganisation angeschlossen
ist, d. h. auf der anderen Seite des "Steuermoduls" der
Zentraleinheit, besteht darin, daß die zur Implementierung des
Cache erforderliche Hardware und Software an relativ wenige
Laufwerke gebunden ist (8 oder weniger). Da eine Speicher-
Steuerungseinheit in einem typischen Speicher-Subsystem bis zu
64 Laufwerke steuern kann, muß also eine Vielzahl von
Festkörper-Cache-Speichern verwendet werden, damit für alle Laufwerke
die Möglichkeit einer Pufferspeicherung besteht. Zu jeder
beliebigen Zeit befinden sich einige dieser Cache-Speicher im
Ruhezustand, während andere in Betrieb sind. Die
Gesamtausnutzung der Hardware kann damit bei diesem System ziemlich
gering ausfallen und die Kosten können aufgrund der mehrfachen
Hardware-Kopien, die zur Unterstützung aller Laufwerke
bereitgestellt werden müssen, ziemlich hoch sein.
-
Ein Ziel der vorliegenden Erfindung besteht in der
Bereitstellung eines peripheren Speicher-Subsystems mit einem
Festkörper-Cache-Speicher, der an mehrere Speicher-Steuereinheiten
angeschlossen werden kann und damit eine Verbesserung der
Effizienz bei der gleichzeitigen Verarbeitung mehrerer Lese-/-
Schreib-Befehle ermöglicht.
-
Zur Verbesserung der Verfügbarkeit der Wege wurden neue
Platten-Querverbindungssysteme entwickelt. Eines dieser Systeme
wird in der Industrie als "Dual-Port" bezeichnet und stellt
zwei alternative Verbindungswege für jedes Gerät zur
Verfügung. Eine Auslegung mit diesem System ist beim System 3770
von Memorex nicht möglich. Eine derartige Auslegung ist ein
Ziel der vorliegenden Erfindung.
-
Das Disk-Cache-System 3770 von Memorex ist im wesentlichen
beschrieben in GB-A-2 052 118 unter Bezugnahme auf die darin
enthaltenen Fig. 2 und 5, 6 und 7, die periphere Speicher-
Subsysteme des hier zu Beginn definierten Typs offenlegen.
Fig. 4 der GB-A-2 052 118 beschreibt ein verwandtes System,
bei dem die Speicher-Steuereinheiten in den Hauptrechner
eingebaut sind, und das System ansonsten die gleichen Merkmale
und sich daraus ergebenden Nachteile aufweist wie das Disk-
Cache-System 3770 von Memorex.
-
In einem Artikel mit dem Titel "Integrated Disk Cache System
with File Adaptive Control" (= Integriertes Platten-Cache-
System mit adaptiver Dateisteuerung), der in den Proceedings
of the Comp-Con Fall 80 on Distributed Computing auf den
Seiten 412 bis 416 veröffentlicht wurde, wird ein System
beschrieben, das für die ACOS-Serie von Großrechnern
entwickelt wurde. Dieses bekannte System ist mit einem
Cache-Controller
ausgestattet, der in den Eingabe-/Ausgabe-Prozessor
der Zentraleinheit des Computers eingebaut ist. Ein
Steuerprogramm für den Platten-Cache-Speicher ist in das
Hauptprogramm des Eingabe-/Ausgabe-Prozessors integriert. Der Cache-
Speicher ist ein MOS-Direktzugriffsspeicher, der an die
Systemsteuereinheit des Computers angeschlossen ist und von
allen Platten im System gemeinsam genutzt wird. Diese
Anordnung kann jedoch offensichtlich nicht so angepaßt werden, daß
sie als zusätzliches Speicher-Subsystem für einen vorhandenen
Hauptrechner verwendet werden kann.
-
GB-A-2 024 476 beschreibt eine programmierbare Steuereinheit,
die zwischen ein Datenverarbeitungssystem mit einer
Zentraleinheit und einem Hauptspeicher und ein oder mehrere
Plattenspeichersysteme zwischengeschaltet ist. Die Steuereinheit
umfaßt einen mikroprogrammierten, konfigurierbaren Datenweg
zwischen drei Ports, wobei ein erster Port an den Systembus
des Datenverarbeitungssystems angeschlossen ist, ein zweiter
Port mit dem Plattenspeicher verbunden ist, und ein dritter
Port an einen Mikroprozessor mit einem Speicher angeschlossen
ist, in dem ein Steuerprogramm für die Steuereinheit
gespeichert ist, und in dem plattenresidente Daten gespeichert
werden können. Auf einer RAM-Erweiterung des Mikroprozessors
können ebenfalls plattenresidente Daten gespeichert werden.
Der Mikroprozessor empfängt vom Datenverarbeitungssystem
Befehle, die für die Speicher-Steuereinheit des
Plattenspeicher-Subsystems bestimmt sind. Der Mikroprozessor entscheidet
dann, ob die abgerufenen Daten von der Platte in den
Datenverarbeitungsspeicher und den Cache-Speicher der Steuereinheit
oder vom Cache-Speicher eingelesen werden müssen. Der an das
Plattenspeicher-Subsystem angeschlossene Port kann auch an
einen Speicherkern-Pufferspeicher angeschlossen werden, der
als Cache-Speicher verwendet werden kann. Die Steuereinheit
bildet in Zusammenhang mit dem Plattenspeicher-Subsystem in
wirkungsvoller Weise einen Teil des Hauptrechners.
-
Andere Aspekte und Gegenstände der Erfindung werden Fachleuten
im Laufe der weiteren Erörterung ersichtlich. Insbesondere die
Anforderung nach Software-Transparenz des erfindungsgemäßen
peripheren Speicher-Subsystems für den Hauptrechner macht es
notwendig, inter alia, daß Einrichtungen bereitgestellt
werden, durch die der Cache-Speicher aus dem normalen Ablauf
herausgenommen werden kann, wenn in ihm Fehler auftreten.
Außerdem wird durch die Anforderung, den Cache-Speicher
zusammen mit mehreren verschiedenen Typen von Plattenlaufwerken
innerhalb einer besonderen Ausführung nutzen zu können, die
Möglichkeit einer effizienten Aufnahme von Datensätzen mit
wechselnder vorgegebener Größe im Cache-Speicher erforderlich.
-
Das erfindungsgemäße periphere Speicher-Subsystem ist dadurch
gekennzeichnet, daß das Subsystem mindestens eine weitere
Zugriffsweg-Steuereinrichtung mit einer ersten Steuereinheit,
die an einen anderen der Speicher-Zugriffswege angeschlossen
werden kann, und eine zweite, an eine andere
Langzeit-Speichereinrichtung angeschlossene Steuereinheit aufweist, daß die
Festkörper-Cache-Speichereinrichtung des weiteren an die
weitere oder jede weitere Zugriffwegs-Steuereinrichtung
angeschlossen ist, daß die dritte Steuereinheit so ausgelegt ist,
auch die Eingabe-/Ausgabe-Befehle an der weiteren oder jeder
weiteren Zugriffsweg-Steuereinrichtung zu überwachen und
Befehle zu der weiteren oder jeder weiteren
Zugriffsweg-Steuereinrichtung zur Steuerung des Datenflusses zwischen dem
Speicherzugriffsweg, an den die erste Steuereinheit der
bestimmten weiteren Zugriffsweg-Steuereinrichtung während des
Betriebs angeschlossen ist, der Langzeit-Speichereinrichtung,
an die die zweite Steuereinheit der bestimmten weiteren
Zugriffsweg-Steuereinrichtung angeschlossen ist, und der
Speichereinheit bereitzustellen, und daß die dritte Steuereinheit
die vom Hauptrechner angeforderten Daten prüft und bestimmt,
ob sequentiell gespeicherte Datensätze, die in einer der
Langzeit-Speichereinrichtungen gespeichert sind,
wahrscheinlich
anschließend vom Hauptrechner angefordert werden, und,
sofern die Bestimmung positiv ausfällt, die Übertragung der
Datensätze, die erwartungsgemäß Gegenstand solcher
nachfolgender Anforderungen sind, zur Speichereinheit steuert, wobei die
dritte Steuereinheit die Zugriffsweg-Steuereinrichtung so
steuert, daß jede erste einer Reihe von Anforderungen nach
einem gespeicherten Datensatz durch den Hauptrechner der
entsprechenden Langzeit-Speichereinrichtung zugewiesen wird.
-
In einer bevorzugten erfindungsgemäßen Ausführungsform umfaßt
der Festkörper-Cache-Speicher RAM-Speichereinrichtungen und
eine Cache-Speicher-Controllereinheit. Der Cache-Speicher ist
so an mehrere Platten- oder andere Langzeitspeicher-Speicher-
Anschlußsteuereinrichtungen angeschlossen, daß die
Mehrfachspeicher-Anschlußsteuereinrichtungen gleichzeitig Daten zum
Cache-Speicher leiten und sie aus dem Cache-Speicher auslesen
können. Die Speicher-Anschlußsteuereinrichtungen wiederum sind
über einzelne Speicherzugriffskanäle an den Hauptrechner
angeschlossen. Außerdem kann der Cache-Speicher an die
Plattenlaufwerke des Typs Dual-Port angeschlossen werden, die so
angeordnet sind, daß die Mehrzahl der
Speicher-Anschlußsteuereinrichtungen auf einen einzigen String von
Plattenlaufwerken zugreifen kann, so daß am gleichen String von
Plattenlaufwerken mehrere Aufgaben gleichzeitig durchgeführt
werden können. Die Bereitstellung von Management-Funktionen
für den Cache-Speicherplatz im Cache-Speicher selbst anstatt
im Hauptrechner ermöglicht die Freistellung des Hauptrechners
von Datenspeicher-Verwaltungsaufgaben (im Vergleich zu
bestimmten bekannten, nachstehend erläuterten Einrichtungen),
während der Cache-Manager dem Einsatz zusammen mit
verschiedenen Typen von Plattenlaufwerken und in verschiedenen
Systemanordnungen angepaßt werden kann und zukünftige Erweiterungen
ermöglicht. In einer bevorzugten Ausführungsform werden
Einrichtungen zur Erkennung von sequentiellen Daten
bereitgestellt, so daß kein Leistungsverlust durch nutzlose
Pufferspeicherung
von Datensätzen mit Direktzugriff entsteht. In
ähnlicher Weise werden in einer bevorzugten Ausführungsform
Einrichtungen zur Veränderung der relativen Größe der
Unterteilungen des Cache-Speicherplatzes bereitgestellt, damit sie
der Länge der Datensätze entsprechen, auf die am häufigsten
zugegriffen wird, so daß eine effizientere Nutzung des Cache-
Speicherplatzes gewährleistet wird.
-
Die Erfindung wird nachstehend anhand von Beispielen und unter
Bezugnahme auf die begleitenden Zeichnungen beschrieben, wobei
-
Fig. 1 ein Blockschaltbild eines Systems mit der Erfindung
ist;
-
Fig. 2 die Daten- und Steuerwege in einer vereinfachten
Darstellung des Systems der Fig. 1 zeigt;
-
Fig. 3 die Erweiterung der Grundversion mit zwei
Anschlußsteuereinrichtungen auf mehrere Anschlußsteuereinrichtungen,
die Datei-Schnittstelleneinheit sowie die Cache-Puffer- und
Manager-Einheiten zeigt;
-
Fig. 4 eine funktionsmäßig unterteilte Ansicht des Systems
darstellt, wobei gezeigt wird, welche Funktionen der
gepufferten Cache-Speichereinrichtung von den verschiedenen
Abschnitten des Systems ausgeführt werden;
-
Fig. 5 einen Graph der simulierten Systemleistung als
Funktion der Datenblockgröße zeigt; und
-
Fig. 6 einen Graph zeigt, der die simulierte Systemleistung
als Funktion des prozentualen Anteils der sequentiellen Daten
beschreibt, auf die zu einer bestimmten Zeit zugegriffen wird.
-
Wie bereits vorher erläutert, ist das Cache-Pufferspeicher-
Subsystem dazu ausgelegt, in Übereinstimmung mit einem
bekannten Hauptrechner so zusammenzuarbeiten, daß weder an der
Hardware noch an der Software des Hauptrechners
Modifizierungen vorgenommen werden müssen. Insbesondere sollte das
erfindungsgemäße Cache-Pufferspeicher-Subsystem über einen
herkömmlichen Speicherkanal ohne Modifizierungen an den Hauptrechner
angeschlossen werden können; das heißt, es sollte
steckkompatibel mit und software-transparent für den Hauptrechner
sein. In einer bevorzugten Ausführungsform ist das
erfindungsgemäße Cache-Speicher-Subsystem so ausgelegt, daß es mit einem
Computer der IBM Corporation (oder einem anderen, zu der
IBM-Einheit steckkompatiblen Computer) derjenigen Klasse
seinen Betrieb aufnehmen kann, für die der Kanal durch die
IBM-Veröffentlichung GA22-6974-4 mit dem Titel "I/O Interface
Channel to Control Unit" (= Kanal der Eingabe-/Ausgabe-
Schnittstelle zur Steuereinheit) definiert ist. Diese
Veröffentlichung beschreibt die technischen Daten eines Kanals
für steckkompatible Speichersysteme. In einer besonders
bevorzugten Ausführungsform ist das erfindungsgemäße
Cache-Pufferspeicher-Subsystem in einem
Plattenlaufwerks-Speicher-Subsystem des von Storage Technology Corporation früher
verkauften Typs enthalten, der für die Aufnahme eines Festkörper-
Direktzugriffsspeichers (RAM) konfiguriert ist, der
physikalisch in das Gehäuse eingebaut werden kann, das die Einheit
für die Plattenlaufwerkspeicher-Anschlußsteuereinrichtungen
enthält. Tatsächlich kann die zusätzliche Einbringung der
erfindungsgemäßen Cache-Funktion so vorgenommen werden, daß
deren Einbau vor Ort in die vorher an die Kunden verkauften
Einheiten mit minimaler zusätzlicher Komplexität und geringen
Kosten erfolgen kann, wobei wesentliche
Leistungsverbesserungen erzielt werden können.
-
Fig. 1 zeigt eine Gesamtansicht eines
Datenverarbeitungssystems mit einem wie vorher definierten Hauptrechnersystems
und einem Cache-Pufferspeicher-Subsystem. Der Hauptrechner 10
ist jeweils über die Kanäle 16 und 18 an ein Paar von
Speicher-Anschlußsteuereinrichtungen 12 und 14 angeschlossen. Die
Anschlußsteuereinrichtungen und Kanäle können in bekannter Art
und Weise noch weiter vervielfacht werden. Jede
Anschlußsteuereinrichtung weist eine Dateischnittstelle 20 auf, über
welche Daten über die allgemein mit 24 bezeichneten
Steuermodule und danach zu den allgemein mit 26 bezeichneten
Plattenlaufwerkseinheiten weitergeleitet werden. Wie in der Zeichnung
schematisch angedeutet, können die Plattenlaufwerke 26 von
unterschiedlichem Typ sein. Die Steuermodule 24, an die die
Plattenlaufwerke 26 angeschlossen sind, dienen zur
Schnittstellenbildung mit verschiedenen Typen von Plattenlaufwerken
mit Anschlußsteuereinrichtungen 12 und 14, so daß mehrere
Typen von Plattenlaufwerken 26 zusammen mit geeigneten
Steuermodulen 24 in Verbindung mit identischen (obwohl in einigen
Fällen durch Software "personalisierten")
Anschlußsteuereinrichtungen verwendet werden können. Wie bisher
beschrieben, handelt es sich bei Fig. 1 um ein herkömmliches
System. Gemäß der vorliegenden Erfindung sind die
Anschlußsteuereinrichtungen 12 und 14 so modifiziert, daß sie
zusätzlich Cache-Schnittstelleneinheiten 28 aufweisen, die zur
Schnittstellenbildung der Anschlußsteuereinrichtungen mit
einem erfindungsgemäßen Cache-Pufferspeicher-Subsystem dienen,
das, wie schematisch dargestellt, eine Puffereinheit 30 und
eine Puffer-Steuereinheit 32 aufweist. Die Hauptfunktion der
Puffereinheit 30 besteht in der Speicherung von Daten, die
"zwischengespeichert" wurden in der Erwartung, daß sie vom
Hauptrechner angefordert werden. Wenn die
zwischengespeicherten Daten abgerufen werden, können sie rasch über einen von
mehreren Cache-Port-Controllern 36 und 38, die jeweils mit den
Anschlußsteuereinrichtungen 12 und 14 kommunizieren, aus einem
Festkörper-Direktzugriffsspeicher-Array 34 (RAM), dem Herz der
Puffereinheit, ausgelesen und anschließend an den Hauptrechner
ausgegeben werden. Dies stellt im allgemeinen einen bedeutend
schnelleren Vorgang dar als das direkte Auslesen der Daten aus
einer Plattenlaufwerkseinheit 26, da mit dem Einsatz des
Direktzugriffsspeichers 34 keine Positionierungs- und
Latenzzeit verbunden ist, wie dies bei den Plattenspeichern 26 der
Fall ist.
-
Für Fachleute ist offensichtlich, daß Daten sequentieller Art,
d. h. Daten, bei denen aufeinanderfolgende Teile der gleichen
Datendatei sequentiell vom Hauptrechner abgerufen werden,
diejenigen Daten sind, die mit dem größten Nutzen im Cache
zwischengespeichert werden können, bevor sie tatsächlich vom
Hauptrechner abgerufen werden. Allerdings ist in der
bevorzugten Ausführungsform der Erfindung, die zum Betrieb in
Verbindung mit dem vorher erwähnten IBM-System ausgelegt ist,
keine Unterscheidungsmarkierung, durch die bestimmt werden
kann, daß ein bestimmter gesuchter Datensatz tatsächlich Teil
einer Abfolge solcher Datensätze ist, in den auf der
Plattenspeichereinrichtung 26 gespeicherten Daten vorhanden. Es gibt
auch keine Markierung als Teil des vom Hauptrechner
abgegebenen Signals, wenn dieser einen bestimmten Datensatz abruft. Es
ist in der Tat nicht möglich, aus irgendeiner in diesem System
vorhandenen Angabe zu bestimmen, ob ein bestimmter Datensatz
sequentiell ist, oder ob er der einzige von beispielsweise
einer bestimmten Plattenspeichereinrichtung ist, der während
der Bearbeitung eines gegebenen Programms abgerufen wird. Es
ist für das Dienstprogramm des erfindungsgemäßen
Cache-Speichers jedoch wichtig, daß eine Einrichtung zur Unterscheidung
zwischen sequentiellen und Direktzugriffs-Datensätzen
bereitgestellt wird. Da eine zusätzliche Komplexität mit dem Einsatz
des Cache-Systems unvermeidlich wird, wenn zwischen
sequentiellen und Direktzugriffs-Datensätzen keine erfolgreiche
Unterscheidung getroffen wird, leidet die Zugriffszeit im
Hinblick auf die Direktzugriffsdaten zumindest aufgrund der
zusätzlichen Komplexität. Demzufolge wird ein Mikroprozessor
40 in der Puffer-Steuereinheit 32 zur Prüfung sämtlicher
Datensätze verwendet, auf die der Hauptrechner tatsächlich
zugreift, um zu bestimmen, welche Datensätze sequentiell sind,
d. h. um diejenigen Situationen zu identifizieren und zu
signalisieren, in denen der/die folgende/n oder umgebende/n
Datensatz/sätze wahrscheinlich vom Hauptrechner abgerufen werden,
worauf ein oder mehrere der nachfolgenden Datensätze im RAM-
Array 34 zwischengespeichert werden, um die nächste
Anforderung des Hauptrechners abzuwarten. In einer bevorzugten
Ausführungsform wird die Zwischenspeicherung Spur für Spur auf
Platte vorgenommen. Der Mikroprozessor 40 kommuniziert mit den
Anschlußsteuereinrichtungen 12 und 14 über die
Anschlußsteuereinrichtungs-Schnittstellen 42 und leitet den Datenfluß
von den Plattenlaufwerken 26 über die
Anschlußsteuereinrichtungen 12 und 14 und in den RAM-Cache-Speicher
30. Die Einzelheiten des Verfahrens, mit dem der
Mikroprozessor 40 bestimmt, welche Datensätze wahrscheinlich
sequentieller Art sind, sind Gegenstand von EP-A-0 080 876.
-
Es wird anerkannt werden, daß es wahrscheinlich möglich wäre,
die Software des Betriebssystems des Hauptrechners und/oder
von dessen Kanälen zu modifizieren, um ein Signal an die
periphere Speichereinrichtung bereitzustellen, das angibt, daß
nur ein Teil eines bestimmten Datensatzes zu einer bestimmten
Zeit abgerufen wird. Ein derartiges Signal könnte zur
Steuerung des Cache-Betriebs zur Zwischenspeicherung von
aufeinanderfolgenden Datensätzen verwendet werden. Dies würde jedoch
den Gegenstand der vorgenannten Erfindung verfehlen,
insbesondere deshalb, weil der Hauptrechner und dessen Software
unverändert bleiben müssen, während gleichzeitig die zusätzliche
Aufnahme eines erfindungsgemäßen Cache-Speicher-Subsystems
ermöglicht wird. Das heißt, ein derartig modifizierter
Hauptrechner wäre nicht länger "software-transparent".
-
Fachleute werden des weiteren anerkennen, daß es
Betriebssysteme für Hauptrechner gibt, die gleichzeitig mehr als einen
Datenblock, auf den sequentiell zugegriffen wird, in den
Hauptspeicher des Hauptrechners einlesen. Solche Systeme sind
bei IBM erhältlich und werden als "Sequentially Accessed
Memory - Extended" (= Speicher mit sequentiellem Zugriff -
erweitert) oder "SAM-E" bezeichnet. Da dieses System nicht
ohne Dienstprogramm auskommt, belegt es einen großen Teil des
Platzes im Hauptspeicher zur Speicherung der zusätzlichen
Datensätze, erzeugt lange Datenübertragungszeiten auf dem
Kanal, wodurch die rechtzeitige Speicherung anderer SIOs
blockiert wird, und kann zu Unzulänglichkeiten im Betrieb
führen.
-
Die vorliegende Erfindung bezieht sich bis zu einem gewissen
Grad auch auf den Gegenstand von GB-A-2 063 532. Diese
Anmeldungen betreffen ein virtuelles Speichersystem, in dem Daten
von einem Hauptrechner in ein Speichersystem geschrieben
werden, ohne daß eine Anschlußsteuerung durch den Hauptrechner
im Hinblick darauf erfolgt, welche Art von
Langzeitspeichereinrichtung die Daten aufnehmen soll, oder an welcher Position
auf diesen Einrichtungen sie aufgenommen werden sollen. Die
bekannte Erfindung unterscheidet sich von der vorliegenden
Erfindung dadurch, daß eine beträchtliche Betriebsintelligenz
erforderlich ist, um diese Datenspeicherfunktionen durchführen
zu können. Obwohl der Hauptrechner damit von dieser Aufgabe
entbunden wird, muß er in einer bevorzugten Ausführungsform
modifiziert werden, um dies zu ermöglichen, und damit ist das
bekannte System für den Hauptrechner nicht
software-transparent. Des weiteren ist die bekannte Erfindung als
selbstständige Einheit mit beträchtlicher Komplexität konfiguriert,
die eine Hilfs-Zentraleinheit erfordert, wogegen das Cache-
Speichersystem der vorliegenden Erfindung ein relativ
kostengünstiger Zusatz zu bereits vorhandenen
Plattenspeichersystemen ist, wodurch deren Effizienz ohne wesentliche zusätzliche
Kosten verbessert werden kann.
-
Eine andere Möglichkeit, bei der die Steckkompatibilität die
Architektur des erfindungsgemäßen Cache-Speicher-Subsystems
beeinträchtigt, besteht darin, daß laut IBM-Protokoll die
Daten in Sätzen von wechselnder Länge plattengespeichert
werden, wobei jeder Datensatz einen Vorsatz mit einem Zähl-
und Schlüsselfeld und einem nachfolgenden Datenfeld enthält.
Dies steht in Widerspruch zur Praxis der Auslegung anderer
Computersysteme, bei denen eine "Festblock"-Architektur, d. h.
eine Architektur, in der alle Datensätze die gleiche Länge
aufweisen, verwendet wird. Dieser Unterschied wird beim
Entwurf eines Cache-Speicher-Subsystems insofern äußerst
bedeutend, als er für die effiziente Ausnutzung des
Direktzugriffsspeichers wichtig ist, der zur Anpassung des Cache verwendet
wird, damit die Datensätze in effizienter Weise in den Cache
"passen", d. h. ohne kostbaren Speicherplatz zu verschwenden.
Gemäß der bevorzugten Ausführungsform der Erfindung wird dies
dadurch bewerkstelligt, daß der Cache-Speicher in als
"Bereiche" bezeichnete Unterabschnitte unterteilt wird, deren Größe
so gewählt ist, daß sie gemeinsame Vielfache der Größe der am
häufigsten verwendeten Datensätze oder Spuren bilden. Die
Bezeichnung eines bestimmten Bereichs des Cache-Speichers, der
den Datensätzen oder Spuren eines bestimmten Typs zugeordnet
ist, kann in Abhängigkeit von der Häufigkeit der Verwendung,
die dieser Bereich innerhalb einer bestimmten Zeit erfährt,
verändert werden. Die Einrichtung, durch die diese
Unterteilung des Cache vorgenommen wird, ist Gegenstand der EP-A-0 080
877.
-
Fig. 2 ist eine schematische Darstellung des Datenflusses
zwischen der Dateischnittstelle und der Schnittstelle des
Hauptrechners im erfindungsgemäßen Cache-Pufferspeicher-Sub-
System. Darin wird der typische bekannte Datenweg direkt von
der Kanalschnittstelle 16 über eine Anschlußsteuereinrichtung
12 und über eine Dateischnittstelle 20 zu einem
Plattenlaufwerk 26, manchmal auch als "DASD" für "Direct Access Storage
Device" (= Direktzugriffs-Speichereinrichtung) genannt,
gezeigt. Dieser Datenweg wird erfindungsgemäß beibehalten und
wird, wie nachstehend erläutert, für alle Lese-Operationen
verwendet, wenn im Cache-Puffer ein Fehler vorliegt, des
weiteren für die erste einer erkannten Sequenz von
Lese-Operationen und während der normalen Schreib-Operationen. Bei einer
erfindungsgemäßen zwischengespeicherten Lese-Operation werden
die Daten jedoch vom DASD 26 ausgelesen, laufen von der
Dateischnittstelle 20 über die Anschlußsteuereinrichtung 12 und
anschließend, wie von der Puffer-Steuereinheit 32 geleitet,
zum Datenpuffer 30. Ruft der Hauptrechner 10 dann diejenigen
Daten ab, die ihm tatsächlich geliefert werden sollen, wird
die Position der Daten von der Puffersteuereinheit 32
bestimmt, und diese Position wird an die
Anschlußsteuereinrichtung 12 weitergegeben, die den Datenfluß aus dem
Puffer 30 über die Anschlußsteuereinrichtung 12 und über die
Kanalschnittstelle 16 zum Hauptrechner 10 steuert. Es wird
anerkannt werden, daß eine parallele Verbindung zwischen den
beiden Anschlußsteuereinrichtungen, den Kanälen, dem Puffer
und der Dateischnittstellen-Einheit bereitgestellt ist. Das
heißt, die Daten können von einer ersten
Anschlußsteuereinrichtung 12 vom Puffer 30 zur Kanalschnittstelle 16
laufen, nachdem sie vom DASD 26 zum Puffer 30 zur
Zwischenspeicherung durch eine zweite Anschlußsteuereinrichtung 12
weitergegeben wurden. Die parallele Anordnung der
Anschlußsteuereinrichtungen ermöglicht die Weiterleitung der Daten vom
Cache zum Hauptrechner auch dann, wenn die zur
Zwischenspeicherung der Daten im Cache-Speicher verwendete
Anschlußsteuereinrichtung anschließend eine andere Aufgabe aufnimmt,
bevor die Daten tatsächlich vom Hauptrechner 10 abgerufen
werden.
-
In diesem Zusammenhang wird anerkannt werden, daß die
vorliegende IBM-Kanal-Auslegung eine Sequenz von Befehlen
bereitstellt, z. B. bevor eine Auslese-Operation tatsächlich
stattfindet.
Der Hauptrechner gibt typischerweise einen "Start
I/O"-Befehl an den Kanal ab. Der Kanal gibt daraufhin eine
Reihe von Befehlen, die als Positionierungs- und
Einstellungssektor bezeichnet werden, an die Anschlußsteuereinrichtung ab,
die daraufhin die Bewegungseinrichtung für den Kopf des
Plattenlaufwerks veranlaßt, auf die entsprechende Spur der Platte
zuzugreifen und den bestimmten Abschnitt dieser Spur zu
suchen. Danach wird ein Signal an den Hauptrechner
zurückgeleitet, das angibt, daß sich der Kopfin Position befindet. Dann
wird ein Suchbefehl mit Suchparametern vom Hauptrechner
abgegeben, und die Anschlußsteuereinrichtung prüft die Zähl- und
Schlüsseldatenfelder auf diejenigen, die den betreffenden
Datensatz enthalten; wenn dieser Datensatz sich neben dem
Lese-/Schreibkopf befindet, wird der Datensatz über die
Anschlußsteuereinrichtung zur Verarbeitung in den Hauptspeicher
des Hauptrechners ausgelesen. Gemäß der vorliegenden Erfindung
erfolgt der gleiche Ablauf beim Empfang eines ersten Lese-
Befehls. Die Daten werden jedoch nochmals auf Angaben geprüft,
ob der nachfolgende Datensatz wahrscheinlich ebenfalls vom
Hauptrechner abgerufen wird. Ist dies der Fall, veranlaßt der
Puffer-Controller 32 die Anschlußsteuereinrichtung, den oder
die nachfolgenden Datensätze in den Cache-Puffer 30
aufzunehmen, so daß weitere Lese-Befehle für nachfolgende Datensätze
schneller befolgt werden können. Wie bereits vorher erwähnt,
ist die Bestimmung, welche Datensätze Anzeichen dafür
aufweisen, als erste einer Sequenz von Datensätzen vom
Hauptrechner abgerufen zu werden, Gegenstand der EP-A-0 080 876.
-
Das grundlegende Konzept dieser Offenlegung wird nachstehend
erläutert. In einer besonderen bevorzugten Ausführungsform
werden die Daten jeweils in ganzen Spuren oder in Vielfachen
einer Spur von der Platte im Puffer zwischengespeichert. Diese
Plattenspuren können typischerweise bis zu 100 Datensätze
umfassen, d. h. Blöcke von Daten, die voneinander durch
Pufferfelder getrennt und durch Index-Markierungen und ähnliches
identifiziert sind. Die 100 Datensätze können wiederum Teil
einer Plattendatei sein, die viele Spuren oder, im Falle
großer Datendateien, bis zu mehrere vollständige
Platteneinheiten belegt.
-
Wie vorher erwähnt, ist es wünschenswert, daß das
Cache-Pufferspeicher-Subsystem eine vor Ort installierbare
Modifizierung eines bereits vorhandenen Produkts darstellt, und damit
nur geringfügige zusätzliche Kosten und Komplexität
hinsichtlich eines Speicher-Subsystems verursacht, jedoch
beträchtliche Leistungsvorteile ermöglicht.
-
Fig. 3 zeigt eine Möglichkeit, bei der der Cache-Puffer unter
Einhaltung dieser Bedingungen einem bereits vorhandenen
Produkt hinzugefügt werden kann. Fig. 3 zeigt vier
Anschlußsteuereinrichtungen 44, die über jeweils einen Kanal an eine
Hauptrechner-Schnittstelle angeschlossen sind. Die
Anschlußsteuereinrichtungen 44 sind jeweils in bekannter Weise über
die Dateischnittstelle an die Steuermodule angeschlossen, die
die Befehle der Anschlußsteuereinrichtung verwenden, um den
Datenstrom so umzuwandeln, daß er zum Schreiben auf einen
bestimmten Plattentyp oder umgekehrt geeignet ist. Daher
weisen die Steuermodule eine Hardware auf, die auf die
einzelnen Typen von Plattenspeichereinrichtungen zugeschnitten ist,
an die sie angeschlossen werden sollen, während die
Anschlußsteuereinrichtungen an die Plattentypen mittels Mikrocode
angepaßt sind, wobei ihre Hardware ohne Berücksichtigung des
verwendeten Plattentyps gleich bleibt. Solche
Anschlußsteuereinrichtungen und Steuermodule sind gegenwärtig in unseren
kommerziellen Produkten zu finden, beispielsweise im Platten-
Controller des Modells 8880 von Storage Technology
Corporation. Erfindungsgemäß wird jeder Anschlußsteuereinrichtung 44
eine Cache-Schnittstelleneinheit 46 hinzugefügt, die an eine
Schnittstelle 48 und eine Bus-Steuereinheit 50 der Cache-
Puffereinheit 52 angeschlossen ist. Steuerleitungen sind
ebenfalls an die Cache-Schnittstellenleitungen angeschlossen,
die zu den Puffer-Schnittstellen 54 der Manager- oder
Steuereinheit 56 führen. Damit müssen bei der bereits vorhandenen
STC 8880-Einheit den Anschlußsteuereinrichtungen nur Cache-
Schnittstellenkarten hinzugefügt und der Cache-Puffer und die
Puffer-Manager-Einheiten eingebaut werden. Eine derartige
Installation kann bei bereits vorhandenen Einheiten innerhalb
einer angemessenen Zeit und unter angemessen bescheidenen
zusätzlichen Kosten vor Ort vorgenommen werden.
-
Aus der Betrachtung von Fig. 3 wird anerkannt werden, daß der
Cache-Puffer 52 an jede der Anschlußsteuereinrichtungen 44
parallel angeschlossen ist, ebenso wie der Puffer-Manager, der
den Datenfluß zwischen den Anschlußsteuereinrichtungen und dem
Cache-Puffer steuert. Dies stellt einen Unterschied zur
Cache-Anordnung des vorher erwähnten Modells 3770 der Memorex
Corporation dar, bei dem ein einzelner Cache je Steuermodul
zwischen Steuermodul und Anschlußsteuereinrichtung
zwischengeschaltet ist. Diese Anordnung weist mehrere Nachteile auf;
einer der Hauptnachteile besteht darin, daß mehrere Caches
erforderlich sind. Während bei einem bestimmten
Leistungsniveau solche einzelnen Steuermodul-Caches zwar etwas kleiner
gestaltet werden können, ist es aber unwahrscheinlich, daß sie
dann voll ausgenutzt werden können. Außerdem ermöglicht die
Bereitstellung eines getrennten Cache für jedes Steuermodul
bei einer Konfigurierung in Dual-Port-Weise gemäß Fig. 1
nicht, daß zwei oder mehr Anschlußsteuereinrichtungen auf
Daten zugreifen können, die in einem bestimmten Cache
zwischengespeichert wurden. Dieser Alternativweg-Zugriff ist in
einem hochaktiven System äußerst wünschenswert, um Bedingungen
mit belegten Wegen, wie vorher erwähnt, zu vermeiden. Diese
Vielseitigkeit wird durch die erfindungsgemäße, in Fig. 3
dargestellte Anordnung ermöglicht.
-
In Fig. 4 wird der funktionelle Abschnitt des
erfindungsgemäßen Cache-Pufferspeicher-Subsystems gezeigt; das heißt,
Fig. 4 stellt die Aufteilung der Daten-Management-Aufgaben
zwischen den einzelnen Komponenten dar, aus denen das
erfindungsgemäße System besteht.
-
Wie vorher erläutert, ist es in einer bevorzugten
Ausführungsform der Erfindung als Zusatz-Subsystem zu einem bereits
vorhandenen Produkt konfiguriert, nämlich unserem
Platten-Controller des Modells 8880.
-
In dieser Ausführungsform erfüllt die
Anschlußsteuereinrichtung 60 die Funktionen der Anschlußsteuereinrichtung im Modell
8880; das heißt, es bildet die Steuer- und Schnittstelle
einerseits zum Steuermodul, das die Daten in serielle Form
entschachtelt und damit eine direkte Schnittstelle zu den
Laufwerken selbst bildet, und andererseits zu den
Hauptrechnerkanälen und wandelt damit die Daten von ihrer
plattengespeicherten Form in eine Form um, auf die der Kanal ansprechen
kann. Die erfindungsgemäße Anschlußsteuereinrichtung führt die
zusätzlichen Pufferfunktionen der Übertragung der gepufferten
Daten durch und ist für die Ausführung der Operationen zur
Aufnahme in und Entnahme aus dem Zwischenspeicher zuständig,
d. h. für das Eintragen von Daten von der Platte über das
Steuermodul in den Cache-Puffer 62. Die
Anschlußsteuereinrichtung stellt des weiteren
Puffer-Fehlerbehebungssysteme bereit, die in ihrer Gesamtheit zur Umgehung des
Puffers zugunsten einer direkten Datenübertragung von der
Platte zur Kanalschnittstelle beitragen, und die
Anschlußsteuereinrichtung kommuniziert mit dem Puffer-Manager. Das
heißt, die Anschlußsteuereinrichtung führt Schaltfunktionen
durch, die die Steuerung des Datenflusses zwischen der
Dateischnittstelle, an die das Steuermodul angeschlossen ist, und
anschließend den Platteneinheiten, dem Cache-Puffer 62 und der
Kanalschnittstelle übernehmen, an die der Computer des
Hauptrechners
angeschlossen ist. Diese Schaltfunktionen werden in
Übereinstimmung mit den über eine Steuerschnittstelle 64 vom
Puffer-Manager 66 empfangenen Befehle gesteuert. Daher werden
in der bevorzugten Ausführungsform, in der das
erfindungsgemäße Speicher-Subsystem zu einem bereits vorhandenen STC
8880-Produkt hinzugefügt wird, die Steuerschnittstelle 64 des
Puffer-Managers, der Cache-Puffer 62 und die
Datenschnittstelle 68 hinzugefügt, während die Anschlußsteuereinrichtung
so gesteuert wird, daß der Datenweg in Übereinstimmung mit den
vom Puffer-Manager 66 gegebenen Befehlen geschaltet wird.
-
Wie vorher erwähnt, bestimmt der Puffer-Manager 66, ob es
wahrscheinlich ist, daß ein bestimmter Datensatz oder eine
Reihe von Datensätzen vom Hauptrechner abgerufen wird und legt
demgemäß fest, ob sie, um Zugriffszeit zu sparen, im Puffer 62
zwischengespeichert werden oder nicht, bevor sie tatsächlich
vom Hauptrechner abgerufen werden. Das spezifische Verfahren
zur Entscheidungsfindung, das vom Puffer-Manager 66 bei dieser
Bestimmung durchgeführt wird, ist Gegenstand der EP-A-0 080
876.
-
Grob gesagt umfaßt diese Entscheidung die Prüfung der
aktuellen Daten auf Befehle zum Überspringen von Spuren, Indikatoren
für Datei-Ende, Schreib-Indikatoren und ähnliches, also
Ereignisse, die wahrscheinlich nicht als Teile von sequentiellen
Datensätzen auftreten.
-
Fig. 4 zeigt des weiteren den Cache-Puffer 62 selbst, der die
Funktion der Datenspeicherung übernimmt, die bevorzugt in
Datenübertragungsblöcken organisiert ist. In einer bevorzugten
Ausführungsform ist der Cache in "Bereiche" mit einer festen
Größe unterteilt, die so gewählt ist, daß die einzelnen, den
logischen Spuren auf der Platte entsprechenden
Datenübertragungsblöcke sich so genau und vollständig wie möglich den
Bereichen anpassen.
-
Dieser Organisationsplan des Cache-Speicherplatzes ist
Gegenstand der EP-A-0 080 877. Der Cache-Puffer 62 speichert des
weiteren die Steuerinformation oder den Vorsatz, der jeden
einzelnen, längenvariablen, logischen Datenübertragungsblock
wie vorher erwähnt nach Zähl-, Schlüssel- und Datenfeldern
definiert.
-
Der Puffer-Manager 66 in der bevorzugten Ausführungsform würde
einen Mikroprozessor, beispielsweise eine Zilog Z8000-Einheit
aufweisen und führt die Management-Funktionen wie folgt durch.
Die Hauptfunktion des Puffer-Managers besteht in der
Speicherplatz-Verwaltung des Cache, das heißt, die Datenspeicherung
innerhalb des Cache-Speichers zu leiten und die Positionen
festzuhalten, an denen die spezifischen Datensätze in einem
"Datenübertragungsblock-Verzeichnis" gespeichert sind. Der
Puffer-Manager plant in ähnlicher Weise die Operationen zur
Aufnahme in und zur Entnahme aus dem Zwischenspeicher und
teilt seine Befehle der Anschlußsteuereinrichtung 60 mit. Der
Puffer-Manager führt des weiteren Fehlerverwaltungs- und
Fehlerbehebungs-Funktionen aus, die neben
Fehlerkorrektursystemen auf Paritätsbasis, wie beispielsweise in US-A-4 277 844
offengelegt, auch die Steuerung einer Modus-Umschaltung
einschließen können, um im Falle eines katastrophalen Fehlers
eine direkte Datenübertragung zwischen der Platte und der
Kanalschnittstelle vorzunehmen.
-
Fachleute werden erkennen, daß der Puffer-Manager 66 als eine
wesentliche Funktion ein Verfahren zur Korrelierung des
Beginns einer Anzahl von Daten aufweisen muß, die von der Platte
mit ihrer aktuellen Position auf der Platte im Cache
zwischengespeichert sind, so daß Befehle, die die
Anschlußsteuereinrichtung vom Hauptrechner empfängt, - und die als
Positionsangaben der Daten auf der Platte geliefert werden, -
entsprechend auf die im Cache gespeicherten Daten angewendet
werden können. In einer bevorzugten Ausführungsform werden die
Daten im Cache in minimalen Mengen von zumindest einer
Plattenspur zwischengespeichert, so daß es erforderlich ist, die
im Cache befindliche Adresse des Blockanfangs von
zwischengespeicherten Daten mit dem Anfang der Spur auf der Platte in
eine Beziehung zueinander zu setzen, die typischerweise auf
der Platte durch eine dauermagnetische Index-Markierung auf
jeder Plattenoberfläche bezeichnet ist. In einer bevorzugten
Ausführungsform der vorliegenden Erfindung wird diese
Korrelierung durch Notieren des Anfangspunkts des
Datenübertragungsprozesses zur Zwischenspeicherung durchgeführt, wobei die
empfangenen Datenbits von Null ab gezählt werden, und die
Zählung zum Zeitpunkt des Empfangs der Index-Markierung
notiert wird. Diese Zählung gibt die relativen Positionen des
Anfangspunkts und der Index-Markierung an. Danach kann eine
zweite Zählung gestartet werden. Wenn diese Zählung gleich dem
ursprünglichen Anfangspunkt ist, wurde eine volle Datenspur
gelesen. Dies ist Gegenstand der EP-A-0 080 878.
-
Diese Anmeldung enthält zusätzlich detaillierte Informationen
hinsichtlich des in den Cache-Datenübertragungsblöcken
verwendeten Vorsatzformats und erklärt, wie der Puffer-Manager
bestimmen kann, daß eine volle Plattenspur gelesen wurde.
-
Fig. 5 und 6 zeigen eine graphische Darstellung der
Leistungsverbesserungen, die durch das erfindungsgemäße Cache-
Laufwerk erzielt werden. Diese Figuren stellen Daten dar, die
per Computer-Simulation der Systemleistung erzeugt wurden. Zum
Zeitpunkt der Abfassung der vorliegenden Anmeldung waren keine
tatsächlichen Daten verfügbar. Diese Ergebnisse beziehen sich
auf eine bevorzugte Ausführungsform, bei der Daten in
Einheiten von Plattenspuren abgerufen werden, die im Konzept so
definiert sind, daß sie etwa 10-12 Datensätze enthalten.
-
Fig. 5 zeigt die durchschnittliche Ansprechzeit auf
Eingabe-/Ausgabe-Befehle im Vergleich mit der Blockgröße der Daten,
auf die zugegriffen wird. Wie vorher erwähnt, schließt die
Eingabe-/Ausgabe-Zeit zu großen Teilen die Latenzzeit mit ein,
die erforderlich ist, um einen bestimmten Abschnitt der
Platte, auf den zugegriffen werden soll, neben dem Lese-/Schreib-
Kopf zu positionieren, zusätzlich zu der Zeit, die
erforderlich ist, um den Lese-/Schreib-Kopf radial zur Platte zu
bewegen (und zwar bei solchen Plattenlaufwerken, bei denen
bewegliche Köpfe verwendet werden), zusätzlich zu der Zeit,
die aufgrund der Komponenten des E/A-Weges verlorengeht, die
zum Zeitpunkt der Verfügbarkeit der Daten selbst nicht
verfügbar sind. Während die Positionierungs- und
Latenz-Verzögerungen von der Blockgröße unabhängig sind, erhöhen sich
Eingabe-/Ausgabe-Übertragungszeit und die Zeit für fehlende
Drehpositionsbestimmung, je umfangreicher die Blockgröße ausfällt,
da der längere Block mehr Schreib- und Lese-Zeit benötigt.
Kurve A aus Fig. 5 stellt in graphischer Weise die
durchschnittliche Ansprechzeit eines bekannten Systems dar, d. h.
eines Systems, in dem kein Cache-Speicher vorhanden ist. Je
länger dort der Block ist, um so länger ist auch die
durchschnittliche Ansprechzeit. Die kürzeste für den Block
erreichte Zeit ist ungleich Null, wodurch angegeben wird, daß eine
durchschnittliche Latenz- und Zugriffszeit auch für einen
Block extrem niedriger Größe erforderlich ist.
-
Kurve B auf Fig. 5 zeigt die Verbesserung, die durch die
Zwischenspeicherung eines größeren Datenabschnitts erzielt
wurde, wobei dieser Abschnitt größer ist als derjenige, der
nach Empfang aller Eingabe-/Ausgabe-Anforderungen angefordert
wurde; d. h. es wird keinerlei Unterschied gemacht zwischen den
Anforderungen, die als wahrscheinlich sequentiell eingeschätzt
werden und denen, die direkt sind. Die Eingabe-/Ausgabe-Zeit
ist im Hinblick auf die kleineren Blockgrößen und im Vergleich
zu Kurve A deutlich verbessert, da die Latenzzeit beträchtlich
reduziert wird oder entfällt. Die Tatsache jedoch, daß
Datenmengen, d. h. Spuren, die größer sind als die angeforderten
Blöcke, ebenfalls als Reaktion auf Direktanforderungen
zwischengespeichert wurden und damit zusätzliche Kanal- und
Anschlußsteuereinrichtungs-Zeit benötigen, bedeutet, daß
aufgrund der Zwischenspeicherung von Daten, die tatsächlich
nicht sequentiell sind, die durchschnittliche
Eingabe-/Ausgabe-Zeit für grobe Blöcke höher ist als bei einem nicht mit
einem Cache-Speicher ausgestatteten Subsystem. Daher zeigt
Kurve B, daß die durchschnittliche Eingabe-/Ausgabe-Zeit bei
Anwachsen der Blockgröße höher liegt als diejenige für nicht
mit Cache-Speichern ausgerüstete Einrichtungen der Kurve A.
-
Kurve C aus Fig. 5 zeigt die Verbesserungen, die in der
bevorzugten Ausführungsform der Erfindung erzielt wurden,
wobei eine deutliche Unterscheidung zwischen den Daten
getroffen wurde, die wahrscheinlich sequentieller Art sind und
denen, die es nicht sind. Da Daten mit Direktzugriff, d. h.
Daten, die nicht als sequentiell identifiziert wurden, nicht
zwischengespeichert werden, weisen diese Daten die gleiche
bekannte Eingabe-/Ausgabe-Zugriffszeit auf wie in Kurve A
dargestellt. Die Verbesserung durch die Zwischenspeicherung
sequentieller Daten zeigt sich darin, daß Kurve C solange
unterhalb Kurve A angesiedelt ist, bis die Blocklängen
ziemlich umfangreich werden, wobei an diesem Punkt, wie vorher
erwähnt, die Latenzzeit von geringerer Bedeutung als die
tatsächlich erforderliche Lese-/Schreib-Zeit ist. In diesem
Fall können weitere Verbesserungen durch Zwischenspeichern
mehrerer Spuren erzielt werden.
-
Fig. 6 zeigt die durchschnittliche Eingabe-/Ausgabe-Zeit als
Funktion des prozentualen Anteils der vom Hauptrechner
abgerufenen sequentiellen Daten. Kurve A zeigt wiederum die Leistung
eines nicht mit Cache-Speicher ausgestatteten Plattensystems.
Zwischen sequentiellen Daten und Daten mit Direktzugriff wird
kein Unterschied gemacht, da mehrere bekannte Datenbereiche
auf jeder Platte resident sind und daher Kurve A im
wesentlichen
flach verläuft. Kurve B stellt ein Cache-System dar, in
dem alle Datenanforderungen zwischengespeichert werden. Sie
zeigt eine deutliche Abnahme der Eingabe-/Ausgabe-Zeit, wenn
sich der prozentuale Anteil der sequentiellen Daten erhöht,
d. h. wenn weniger Daten mit Direktzugriff unnötigerweise
zwischengespeichert werden, d. h. der prozentuale Anteil der
vorteilhafterweise zwischengespeicherten sequentiellen Daten
erhöht sich, die Leistung wird verbessert, was sich in der
Reduzierung der Eingabe-/Ausgabe-Zeit widerspiegelt. Kurve C
wiederum zeigt die Eingabe-/Ausgabe-Zeit eines
Cache-Speicher-Subsystems, in dem nur diejenigen Daten
zwischengespeichert werden, von denen angenommen wird, daß sie sequentiell
sind. Die dargestellte Leistungsverbesserung ist der Tatsache
zuzuschreiben, daß das Cache-System nur für sequentielle Daten
verwendet wird; die Zeit der Anschlußsteuereinrichtung wird
nicht nutzlos durch die Zwischenspeicherung von Daten mit
Direktzugriff verbraucht.
-
In einer gegenwärtigen bevorzugten Ausführungsform ist das
Festkörper-RAM-Array in seiner Form 72 Bits breit und weist
eine variable Tiefe "X" auf, wobei "X" durch die Anzahl der
installierten Speicherkarten und deren Bestückungszustand
bestimmt wird. Speicherkarten sind 24 Bits breit und daher muß
auf sie in Dreiergruppen zugegriffen werden, damit die Breite
des vorher erwähnten 72-Bit-Array erreicht wird. Der Speicher
ist in 12 Spalten unterteilt, d. h. in 12 Gruppen von 24-64K
dynamischen RAMS, und kann als solcher teilweise bestückt
werden. Die Array-Steuerungen behandeln alle Array-Zugriffe in
ineinander verschachtelter Weise, so daß sich zu jedem
Zeitpunkt immer ein anderer Array-Zyklus im Refresh-Modus
befindet. Alle Refresh-Steuerungen sind in den Array-Steuerungen
enthalten und sind daher für die Einheiten, die
Speicherbenutzung anfordern, transparent. Die verwendeten RAMS sind nur vom
Typ 64 K·1-Bit, 350 ns, 5 Volt, die in der Industrie von
heute auf einfache Weise verfügbar sind. Mit dem so
implementierten
Refresh-Plan und der angegebenen Konfiguration und den
Chip-Geschwindigkeiten kann das Array mit einer
Datenübertragungsgeschwindigkeit von 6 Megabyte arbeiten. In der
bevorzugten Ausführungsform wird die Adreßprüfung über die Parität
vorgenommen, wobei der letzte Teil dieser Prüfung direkt an
den Speicherkarten erfolgt. Wird eine Adreßparitäts-Prüfung an
den Speicherkarten erkannt, wird dadurch eine Blockierung
aller Schreib-Operationen ausgelöst, solange dieser Zustand
besteht. Damit wird gewährleistet, daß die Datenintegrität
nicht aufgrund eines Schreibvorgangs an einer fehlerhaften
Adresse beeinträchtigt wird, und damit gute Daten überlagert
werden, die das gesamte Array ungültig machen würden.
-
Es wird anerkannt werden, daß hier ein Cache-Pufferspeicher-
Subsystem beschrieben wurde, das den Bedürfnissen der Technik
und den vorgenannten Erfindungszielen gerecht wird.
Insbesondere die Bereitstellung des Cache-Speichers im Subsystem
dergestalt, daß er in betriebsfähiger Weise an mehrere
Anschlußsteuereinrichtungen angeschlossen ist anstatt zwischen
einzelne Anschlußsteuereinrichtungen und Steuermodule
zwischengeschaltet zu sein, bedeutet, daß die Vorteile des
Systems ohne die Nachteile erzielt werden, die durch das
unnötige "Blockieren" von Kanälen und Anschlußsteuereinrichtungen
verursacht werden. Etwas anders ausgedrückt, die
Bereitstellung eines für alle Anschlußsteuereinrichtungen nutzbaren
Cache bedeutet, daß mehrere Anschlußsteuereinrichtungen auf
jedes beliebige Steuermodul in einer Weise zugreifen können,
daß, selbst wenn eine erste Anschlußsteuereinrichtung Daten
von einem von mehreren Plattenlaufwerken zwischenspeichert,
die in einem String an ein Steuermodul zu einem Cache
angeschlossenen sind, eine zweite Anschlußsteuereinrichtung immer
noch auf ein anderes Laufwerk zugreifen kann, so daß die
Ansprechzeit des Systems nur minimal durch die Bereitstellung
des Cache beeinträchtigt wird. Des weiteren ermöglicht die
Bereitstellung in der bevorzugten Ausführungsform der
Einrichtung zur Bestimmung dessen, welche Daten wahrscheinlich
sequentieller Art sind, daß das System nur dann eingesetzt
wird, wenn sein Einsatz als wahrscheinlich vorteilhaft
beurteilt wird, d. h. in Fällen, in denen es sich um sequentielle
Daten und nicht um Direktzugriffsdaten handelt.
-
Fachleute werden außerdem erkennen, daß zahlreiche
Verbesserungen und Modifizierungen zum erfindungsgemäßen System
möglich sind, ohne vom Anwendungsgebiet der Erfindung
abzuweichen. Insbesondere wird anerkannt werden, daß, während das
erfindungsgemäße System weitgehend als vor Ort installierbare
Verbesserung von bereits vorhandenen Platten-Subsystemen
beschrieben wurde, die Erfindung auch auf andere Formen von
Speichern angewendet werden kann. Es gibt insbesondere
Umgebungen, in denen Bandlaufwerke vorteilhaft an das
erfindungsgemäße Cache-Speicher-Subsystem angeschlossen werden können.
-
Des weiteren sollte auch erkannt werden, daß, während die
Zwischenspeicherung weitgehend als Mittel zur
Zwischenspeicherung von Daten auf einen Festkörperspeicher aufgrund eines
erwarteten Lese-Befehls von einem Hauptrechner beschrieben
wurde, das erfindungsgemäße Cache-Speicher-Subsystem auch für
Schreib-Operationen benutzt werden könnte, wobei der
Hauptrechner die Daten direkt in den Cache-Speicher schreiben
könnte und der Cache diese Daten anschließend in einen
bestimmten Abschnitt eines Platten-Subsystems eintragen würde,
so daß für den Hauptrechner keine Verzögerungen durch
Positionierungs- und Latenzzeiten auftreten würden, bevor die Daten
direkt auf eine Platte geschrieben würden, wie dies jetzt
allgemein bekannt der Fall ist.