DE3280428T2 - Datenspeichersystem fuer einen arbeitsrechner. - Google Patents

Datenspeichersystem fuer einen arbeitsrechner.

Info

Publication number
DE3280428T2
DE3280428T2 DE8282306312T DE3280428T DE3280428T2 DE 3280428 T2 DE3280428 T2 DE 3280428T2 DE 8282306312 T DE8282306312 T DE 8282306312T DE 3280428 T DE3280428 T DE 3280428T DE 3280428 T2 DE3280428 T2 DE 3280428T2
Authority
DE
Germany
Prior art keywords
data
memory
access path
long
cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE8282306312T
Other languages
English (en)
Other versions
DE3280428D1 (de
Inventor
David P Dodd
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Storage Technology Corp
Original Assignee
Storage Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Storage Technology Corp filed Critical Storage Technology Corp
Application granted granted Critical
Publication of DE3280428D1 publication Critical patent/DE3280428D1/de
Publication of DE3280428T2 publication Critical patent/DE3280428T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

  • 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.

Claims (4)

1. Peripheres Speicher-Subsystem zur Verwendung mit einem Hauptrechner (10) mit einer arithmetischen und logischen Einheit und einer Hauptspeichereinheit für Daten und Programme zur Erzeugung von über mehrere Speicher- Zugriffswege (16, 18) einer Langzeit-Datenspeichereinrichtung gerichteten Eingabe/Ausgabe-Befehlen, wobei das periphere Speichersubsystem Zugriffsweg- Steuereinrichtungen (12, 24) mit einer ersten Steuereinheit (12) enthält, die mit einem (16) der Speicher- Zugriffswege verbunden werden kann, und mit einer mit einer Langzeit-Speichereinrichtung (26) verbundenen zweiten Steuereinheit (24), wobei das Subsystem ferner Festkörper-Cache-Speichereinrichtungen (30, 32) aufweist, die mit den Zugriffsweg-Steuereinrichtungen (12, 24) zum Halten solcher Daten verbunden ist, von denen erwartet wird, daß sie Gegenstand von Eingabe/- Ausgabe-Befehlen sind, und mit einer dritten Steuereinheit (32) zur Überwachung von Eingabe/Ausgabe- Befehlen an den Zugriffsweg-Steuereinrichtungen (12, 24) und zur Bereitstellung von Instruktionen zu den Zugriffsweg-Steuereinrichtungen (12, 24) zur Steuerung des Datenstroms zwischen einem Speicher-Zugriffsweg (16), an den die erste Steuereinheit (12) angeschlossen ist, an die Langzeit-Speichereinrichtung (26), an die die zweite Steuereinheit (24) angeschlossen ist, und an eine Speichereinheit (30) der Festkörper-Cache- Speichereinrichtungen (30, 32), dadurch gekennzeichnet, daß das Subsystem wenigstens eine weitere Zugriffsweg-Steuereinrichtung (14, 24) mit einer ersten Steuereinheit (14), die an einen anderen (18) der Speicher-Zugriffswege angeschlossen werden kann, und eine zweite, an eine andere Langzeit-Speichereinrichtung (26) angeschlossene Steuereinheit (24) aufweist, daß die Festkörper-Cache-Speichereinrichtungen (30, 32) ferner an die weitere oder jede weitere Zugriffsweg-Steuereinrichtung(en) (14, 24) angeschlossen ist, daß die dritte Steuereinheit (32) geeignet ist, auch die Eingabe/Ausgabe-Befehle an der oder den weiteren Zugriffsweg-Steuereinrichtung(en) (14, 24) zu überwachen und Befehle für die weitere(n) Zugriffsweg-Steuereinrichtung(en) (14, 24) zur Steuerung des Datenflusses zwischen dem Speicher-Zugriffsweg (18), an die die erste Steuereinheit (14) der bestimmten weiteren zugriffsweg-Steuereinrichtung(en) (14, 24) im Betrieb angeschlossen ist, der Langzeit-Speichereinrichtung (26), an die die zweite Steuereinheit (24) der bestimmten weiteren zugriffsweg-Steuereinrichtung(en) (14, 24) angeschlossen ist, und der Speichereinheit (30) zu erzeugen, und daß die dritte Steuereinheit (32) vom Hauptrechner (10) angeforderte Daten prüft und bestimmt, ob sequentiell gespeicherte Datenaufzeichnungen, die in einer der Langzeit-Speichereinrichtungen (26) gespeichert sind, wahrscheinlich anschließend vom Hauptrechner (10) angefordert werden, und, wenn die Bestimmung positiv ist, die Übertragung von Datenaufzeichnungen zur Speichereinheit (30) steuert, die erwartungsgemäß Gegenstand einer solchen nachfolgenden Anforderung sind, so daß die dritte Steuereinheit (32) die Zugriffsweg-Steuereinrichtungen (12, 24; 14, 24) so steuert, daß jede erste einer Reihe von Anforderungen nach gespeicherten Datenaufzeichnungen durch den Hauptrechner (10) zur geeigneten Langzeit-Steuereinrichtung (26) ausgeführt wird.
2. Peripheres Speichersubsystem nach Anspruch 1, dadurch gekennzeichnet, daß jede Zugriffsweg-Steuereinrichtung mehrere zweite Steuereinheiten (24) aufweist und jede zweite Steuereinheit (24) jeder Zugriffsweg-Steuereinrichtung an eine unterschiedliche Langzeit-Speichereinrichtung (26) angeschlossen ist.
3. Peripheres Speichersubsystem nach Anspruch 2, dadurch gekennzeichnet, daß jede Langzeit-Speichereinrichtung wenigstens einen Plattenantrieb (26) mit zwei Anschlüssen aufweist, dessen zwei Anschlüsse an zweite Steuereinheiten (24) unterschiedlicher Zugriffsweg- Steuereinrichtungen (12, 24; 14, 24) angeschlossen sind.
4. Peripheres Speichersubsystem nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß jede Langzeit-Speichereinrichtung (26) einen bestimmten Typ von Langzeit- Speichereinrichtung aufweist, wobei die Vielzahl von Langzeit-Speichereinrichtungen mehrere unterschiedliche Typen von Langzeit-Speichereinrichtungen umfaßt, und daß jede zweite Steuereinheit (24) so aufgebaut ist, daß sie den bestimmten Typ der an sie angeschlossenen Langzeit-Speichereinrichtungen steuert.
DE8282306312T 1981-11-27 1982-11-26 Datenspeichersystem fuer einen arbeitsrechner. Expired - Fee Related DE3280428T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/325,346 US4476526A (en) 1981-11-27 1981-11-27 Cache buffered memory subsystem

Publications (2)

Publication Number Publication Date
DE3280428D1 DE3280428D1 (de) 1993-03-11
DE3280428T2 true DE3280428T2 (de) 1993-08-26

Family

ID=23267505

Family Applications (1)

Application Number Title Priority Date Filing Date
DE8282306312T Expired - Fee Related DE3280428T2 (de) 1981-11-27 1982-11-26 Datenspeichersystem fuer einen arbeitsrechner.

Country Status (5)

Country Link
US (1) US4476526A (de)
EP (1) EP0080875B1 (de)
JP (1) JPS58161059A (de)
CA (1) CA1181179A (de)
DE (1) DE3280428T2 (de)

Families Citing this family (121)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4503501A (en) * 1981-11-27 1985-03-05 Storage Technology Corporation Adaptive domain partitioning of cache memory space
US4780808A (en) * 1981-11-27 1988-10-25 Storage Technology Corporation Control of cache buffer for memory subsystem
JPS58147879A (ja) * 1982-02-26 1983-09-02 Toshiba Corp キヤツシユメモリ制御方式
JPS59100964A (ja) * 1982-12-01 1984-06-11 Hitachi Ltd ディスク制御システム及びその並列データ転送方法
US4811280A (en) * 1983-06-16 1989-03-07 American Telephone And Telegraph Company Dual mode disk controller
US4724518A (en) * 1983-07-29 1988-02-09 Hewlett-Packard Company Odd/even storage in cache memory
US4604687A (en) * 1983-08-11 1986-08-05 Lucasfilm Ltd. Method and system for storing and retrieving multiple channel sampled data
US4633393A (en) * 1983-10-21 1986-12-30 Storage Technology Partners Ii Generic key for indexing and searching user data in a digital information storage and retrieval device
US4669043A (en) * 1984-02-17 1987-05-26 Signetics Corporation Memory access controller
JPS617967A (ja) * 1984-06-15 1986-01-14 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション I/oコントロ−ラ
US4637024A (en) * 1984-11-02 1987-01-13 International Business Machines Corporation Redundant page identification for a catalogued memory
US4697232A (en) * 1984-11-30 1987-09-29 Storage Technology Corporation I/O device reconnection in a multiple-CPU, dynamic path allocation environment
JPS61223942A (ja) * 1985-03-29 1986-10-04 Hitachi Ltd 情報検索制御方式
US4875155A (en) * 1985-06-28 1989-10-17 International Business Machines Corporation Peripheral subsystem having read/write cache with record access
US4747047A (en) * 1985-12-06 1988-05-24 Unisys Corporation Data transfer system using two peripheral controllers to access dual-ported data storage units
JPH0711789B2 (ja) * 1985-12-28 1995-02-08 株式会社日立製作所 同時デ−タ転送制御装置
JPS641047A (en) * 1987-02-13 1989-01-05 Internatl Business Mach Corp <Ibm> Data processing system
JPS6414648A (en) * 1987-07-08 1989-01-18 Mitsubishi Electric Corp Arithmetic processor
US4977495A (en) * 1988-02-29 1990-12-11 Unisys Corporation System and method for accessing a cache memory which is located in the main memory of a large data processing system
US5060142A (en) * 1988-05-20 1991-10-22 Menon Moothedath J System which matches a received sequence of channel commands to sequence defining rules for predictively optimizing peripheral subsystem operations
US5218691A (en) 1988-07-26 1993-06-08 Disk Emulation Systems, Inc. Disk emulation system
US4912630A (en) * 1988-07-29 1990-03-27 Ncr Corporation Cache address comparator with sram having burst addressing control
US5283791A (en) * 1988-08-02 1994-02-01 Cray Research Systems, Inc. Error recovery method and apparatus for high performance disk drives
US5218689A (en) * 1988-08-16 1993-06-08 Cray Research, Inc. Single disk emulation interface for an array of asynchronously operating disk drives
FR2635599B1 (fr) * 1988-08-17 1994-02-18 Finger Ulrich Systeme d'extension de memoire pour au moins un ensemble de traitement de donnees
US5088058A (en) * 1988-08-26 1992-02-11 Unisys Corporation Apparatus and method for evaluating and predicting computer I/O performance using I/O workload snapshots for model input
JP2637788B2 (ja) * 1988-09-02 1997-08-06 株式会社日立製作所 ディスクキャッシュ制御方式および情報処理システム
US5065354A (en) * 1988-09-16 1991-11-12 Compaq Computer Corporation Queued posted-write disk write method with improved error handling
JP2776841B2 (ja) * 1988-09-28 1998-07-16 株式会社日立製作所 ディスク制御装置におけるディスクアクセス制御方法
US6038641A (en) * 1988-12-30 2000-03-14 Packard Bell Nec Two stage cache memory system and method
US5287482A (en) * 1989-01-13 1994-02-15 International Business Machines Corporation Input/output cache
US5689670A (en) * 1989-03-17 1997-11-18 Luk; Fong Data transferring system with multiple port bus connecting the low speed data storage unit and the high speed data storage unit and the method for transferring data
EP0389151A3 (de) * 1989-03-22 1992-06-03 International Business Machines Corporation System und Verfahren für die Verwaltung eines verteilten Cache-Speichers
EP0398523A3 (de) * 1989-05-19 1991-08-21 Hitachi, Ltd. Dateneingabe-/-ausgabevorrichtung und Ausführungsunterstützung in digitalen Prozessoren
US5131089A (en) * 1989-06-12 1992-07-14 Grid Systems Corporation Solid state disk drive emulation
US5247618A (en) * 1989-06-30 1993-09-21 Digital Equipment Corporation Transferring data in a digital data processing system
EP0405859B1 (de) * 1989-06-30 1997-09-17 Digital Equipment Corporation Verfahren und Anordnung zur Steuerung von Schattenspeichern
US5210865A (en) * 1989-06-30 1993-05-11 Digital Equipment Corporation Transferring data between storage media while maintaining host processor access for I/O operations
US5239637A (en) * 1989-06-30 1993-08-24 Digital Equipment Corporation Digital data management system for maintaining consistency of data in a shadow set
JPH03100718A (ja) * 1989-09-13 1991-04-25 Hitachi Ltd バッファ付きディスク装置の入出力処理方法
JP2780821B2 (ja) * 1989-09-22 1998-07-30 株式会社日立製作所 オンライン中のダンプ方式およびディスクサブシステム
FR2655464B1 (fr) * 1989-12-01 1993-03-05 Bull Sa Unite de memoire de masse electronique securisee.
FR2656441B1 (fr) * 1989-12-22 1993-12-10 Bull Sa Procede securise d'ecriture rapide d'informations pour dispositif de memoire de masse.
US5680574A (en) 1990-02-26 1997-10-21 Hitachi, Ltd. Data distribution utilizing a master disk unit for fetching and for writing to remaining disk units
US6728832B2 (en) * 1990-02-26 2004-04-27 Hitachi, Ltd. Distribution of I/O requests across multiple disk units
US5247638A (en) * 1990-06-18 1993-09-21 Storage Technology Corporation Apparatus for compressing data in a dynamically mapped virtual data storage subsystem
JPH04233642A (ja) * 1990-07-27 1992-08-21 Dell Usa Corp キャッシュアクセスと並列的にメモリアクセスを行なうプロセッサ及びそれに用いられる方法
CA2131627A1 (en) * 1992-03-09 1993-09-16 Yu-Ping Cheng High-performance non-volatile ram protected write cache accelerator system
US5628014A (en) * 1992-03-20 1997-05-06 Paranode, Inc. Methods and apparatus for node caching at the file level
US5420998A (en) * 1992-04-10 1995-05-30 Fujitsu Limited Dual memory disk drive
AU4229293A (en) * 1992-05-13 1993-12-13 Southwestern Bell Technology Resources, Inc. Open architecture interface storage controller
US5448719A (en) * 1992-06-05 1995-09-05 Compaq Computer Corp. Method and apparatus for maintaining and retrieving live data in a posted write cache in case of power failure
DE69327981T2 (de) * 1993-01-21 2000-10-05 Advanced Micro Devices Inc Kombinierte Speicheranordnung mit einem Vorausholungspuffer und einem Cachespeicher und Verfahren zur Befehlenversorgung für eine Prozessoreinheit, das diese Anordnung benutzt.
US5649162A (en) * 1993-05-24 1997-07-15 Micron Electronics, Inc. Local bus interface
JPH06348597A (ja) * 1993-06-08 1994-12-22 Hitachi Ltd キャッシュ制御方法および回転形記憶装置
US5664217A (en) * 1993-08-03 1997-09-02 Bmc Software, Inc. Method of avoiding physical I/O via caching with prioritized LRU management
JPH07191899A (ja) * 1993-12-27 1995-07-28 Hitachi Ltd ファイル転送方法、データアクセス方法およびデータ書き込み方法
US5915129A (en) 1994-06-27 1999-06-22 Microsoft Corporation Method and system for storing uncompressed data in a memory cache that is destined for a compressed file system
US5991835A (en) * 1994-11-22 1999-11-23 Teac Corporation Peripheral data storage device in which time interval used for data transfer from relatively fast buffer memory to relatively slower main memory is selected in view of average of time intervals during which data blocks were recently received from host
JP2766216B2 (ja) * 1995-05-08 1998-06-18 甲府日本電気株式会社 情報処理装置
US6978342B1 (en) 1995-07-31 2005-12-20 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US5845313A (en) 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US8171203B2 (en) 1995-07-31 2012-05-01 Micron Technology, Inc. Faster write operations to nonvolatile memory using FSInfo sector manipulation
US6728851B1 (en) 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US5742789A (en) * 1995-12-28 1998-04-21 Emc Corporation Dynamically adaptive data retrieval for a disk drive storage system
US5838631A (en) 1996-04-19 1998-11-17 Integrated Device Technology, Inc. Fully synchronous pipelined ram
US6065100A (en) * 1996-11-12 2000-05-16 Micro-Design International Caching apparatus and method for enhancing retrieval of data from an optical storage device
US6061755A (en) * 1997-04-14 2000-05-09 International Business Machines Corporation Method of layering cache and architectural specific functions to promote operation symmetry
US5937172A (en) * 1997-04-14 1999-08-10 International Business Machines Corporation Apparatus and method of layering cache and architectural specific functions to permit generic interface definition
US6061762A (en) * 1997-04-14 2000-05-09 International Business Machines Corporation Apparatus and method for separately layering cache and architectural specific functions in different operational controllers
US6115320A (en) 1998-02-23 2000-09-05 Integrated Device Technology, Inc. Separate byte control on fully synchronous pipelined SRAM
JP3657428B2 (ja) * 1998-04-27 2005-06-08 株式会社日立製作所 記憶制御装置
JP3946873B2 (ja) * 1998-06-19 2007-07-18 株式会社日立製作所 ディスクアレイ制御装置
JP4392877B2 (ja) * 1998-09-18 2010-01-06 株式会社日立製作所 ディスクアレイ制御装置
US6389494B1 (en) * 1998-12-30 2002-05-14 Emc Corporation System for interfacing a data storage system to a host utilizing a plurality of busses for carrying end-user data and a separate bus for carrying interface state data
US7117275B1 (en) 1999-01-04 2006-10-03 Emc Corporation Data storage system having separate data transfer section and message network
US7069406B2 (en) 1999-07-02 2006-06-27 Integrated Device Technology, Inc. Double data rate synchronous SRAM with 100% bus utilization
US7102671B1 (en) 2000-02-08 2006-09-05 Lexar Media, Inc. Enhanced compact flash memory card
US7003601B1 (en) 2000-03-31 2006-02-21 Emc Corporation Data storage system having separate data transfer section and message network with plural directions on a common printed circuit board
US6993621B1 (en) * 2000-03-31 2006-01-31 Emc Corporation Data storage system having separate data transfer section and message network with plural directors on a common printed circuit board and redundant switching networks
US7010575B1 (en) 2000-03-31 2006-03-07 Emc Corporation Data storage system having separate data transfer section and message network having bus arbitration
US7007194B1 (en) 2000-06-29 2006-02-28 Emc Corporation Data storage system having point-to-point configuration
US6640284B1 (en) * 2000-05-12 2003-10-28 Nortel Networks Limited System and method of dynamic online session caching
US7167944B1 (en) 2000-07-21 2007-01-23 Lexar Media, Inc. Block management for mass storage
GB0123410D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Memory system for data storage and retrieval
GB0123421D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Power management system
GB0123419D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Data handling system
GB0123416D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
GB0123417D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Improved data processing
GB0123415D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Method of writing data to non-volatile memory
US6957295B1 (en) 2002-01-18 2005-10-18 Lexar Media, Inc. File management of one-time-programmable nonvolatile memory devices
US6950918B1 (en) 2002-01-18 2005-09-27 Lexar Media, Inc. File management of one-time-programmable nonvolatile memory devices
US7231643B1 (en) 2002-02-22 2007-06-12 Lexar Media, Inc. Image rescue system including direct communication between an application program and a device driver
US6944702B1 (en) * 2002-06-26 2005-09-13 Emc Corporation Data storage system
US6914784B1 (en) 2002-06-26 2005-07-05 Emc Corporation Data storage system cabinet
JP4330889B2 (ja) * 2003-01-20 2009-09-16 株式会社日立製作所 記憶デバイス制御装置にソフトウエアをインストールする方法、記憶デバイス制御装置の制御方法、及び記憶デバイス制御装置
US6973519B1 (en) 2003-06-03 2005-12-06 Lexar Media, Inc. Card identification compatibility
JP2007515024A (ja) 2003-12-17 2007-06-07 レクサー メディア, インコーポレイテッド 盗難を避けるための電子装置の販売場所におけるアクティブ化
US20050138238A1 (en) * 2003-12-22 2005-06-23 James Tierney Flow control interface
US7725628B1 (en) 2004-04-20 2010-05-25 Lexar Media, Inc. Direct secondary device interface by a host
US7200718B2 (en) 2004-04-26 2007-04-03 Broadband Royalty Corporation Cache memory for a scalable information distribution system
US7370166B1 (en) 2004-04-30 2008-05-06 Lexar Media, Inc. Secure portable storage device
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7464306B1 (en) 2004-08-27 2008-12-09 Lexar Media, Inc. Status of overall health of nonvolatile memory
US7594063B1 (en) 2004-08-27 2009-09-22 Lexar Media, Inc. Storage capacity status
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
US8032650B2 (en) * 2006-03-15 2011-10-04 Arris Group, Inc. Media stream distribution system
US8631203B2 (en) 2007-12-10 2014-01-14 Microsoft Corporation Management of external memory functioning as virtual cache
US8621154B1 (en) 2008-04-18 2013-12-31 Netapp, Inc. Flow based reply cache
US8161236B1 (en) 2008-04-23 2012-04-17 Netapp, Inc. Persistent reply cache integrated with file system
US8032707B2 (en) 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
US8171227B1 (en) 2009-03-11 2012-05-01 Netapp, Inc. System and method for managing a flow based reply cache
US8732396B2 (en) * 2009-06-08 2014-05-20 Lsi Corporation Method and apparatus for protecting the integrity of cached data in a direct-attached storage (DAS) system
US10698613B1 (en) * 2019-04-19 2020-06-30 EMC IP Holding Company LLC Host processing of I/O operations
US11151063B2 (en) 2019-04-19 2021-10-19 EMC IP Holding Company LLC Host system directly connected to internal switching fabric of storage system
US10698844B1 (en) 2019-04-19 2020-06-30 EMC IP Holding Company LLC Intelligent external storage system interface
US11500549B2 (en) 2019-04-19 2022-11-15 EMC IP Holding Company LLC Secure host access to storage system resources via storage system interface and internal switching fabric
US10740259B1 (en) 2019-04-19 2020-08-11 EMC IP Holding Company LLC Host mapping logical storage devices to physical storage devices

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3566358A (en) * 1968-03-19 1971-02-23 Bevier Hasbrouck Integrated multi-computer system
US3735360A (en) * 1971-08-25 1973-05-22 Ibm High speed buffer operation in a multi-processing system
US4096567A (en) * 1976-08-13 1978-06-20 Millard William H Information storage facility with multiple level processors
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4075686A (en) * 1976-12-30 1978-02-21 Honeywell Information Systems Inc. Input/output cache system including bypass capability
US4080651A (en) * 1977-02-17 1978-03-21 Xerox Corporation Memory control processor
US4296465A (en) * 1977-11-03 1981-10-20 Honeywell Information Systems Inc. Data mover
US4161024A (en) * 1977-12-22 1979-07-10 Honeywell Information Systems Inc. Private cache-to-CPU interface in a bus oriented data processing system
US4399503A (en) * 1978-06-30 1983-08-16 Bunker Ramo Corporation Dynamic disk buffer control unit
US4228503A (en) * 1978-10-02 1980-10-14 Sperry Corporation Multiplexed directory for dedicated cache memory system
JPS55157052A (en) * 1979-05-25 1980-12-06 Nec Corp Disc cash control system
GB2052118A (en) * 1979-06-04 1981-01-21 Memorex Corp Disc Cache Subsystem
JPS564857A (en) * 1979-06-25 1981-01-19 Hitachi Ltd Access system for memory unit
US4271519A (en) * 1979-07-26 1981-06-02 Storage Technology Corporation Address mark generation and decoding method
US4277844A (en) * 1979-07-26 1981-07-07 Storage Technology Corporation Method of detecting and correcting errors in digital data storage systems
NL8004884A (nl) * 1979-10-18 1981-04-22 Storage Technology Corp Virtueel stelsel en werkwijze voor het opslaan van gegevens.

Also Published As

Publication number Publication date
EP0080875A2 (de) 1983-06-08
JPS58161059A (ja) 1983-09-24
EP0080875A3 (en) 1985-07-03
US4476526A (en) 1984-10-09
EP0080875B1 (de) 1993-01-27
CA1181179A (en) 1985-01-15
JPH0427580B2 (de) 1992-05-12
DE3280428D1 (de) 1993-03-11

Similar Documents

Publication Publication Date Title
DE3280428T2 (de) Datenspeichersystem fuer einen arbeitsrechner.
DE3851730T2 (de) Cachespeicherverwaltung für ein peripheres Ratenspeichersubsystem.
DE3588009T2 (de) Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung.
DE112010003788B4 (de) Datenspeicherung
DE69626569T2 (de) Datenkompressionsverfahren und Struktur für eine Speichereinheit mit direktem Zugriff
DE602005000926T2 (de) Speichersystem und Speicherauszugs-Erstellungsverfahren eines Speichersystems
DE10055603B4 (de) Verfahren zum Zugriff auf eine Datei in einer Vielzahl von Datenspeicherbibliotheken und Datenspeicherbibliothek-System
DE112013001284B4 (de) Adaptive Cachespeicher-Umstufungen in einem Caching-System mit zwei Stufen
DE112012002615B4 (de) Vorabladen von Datenspuren und Paritätsdaten zur Verwendung zum Auslagern aktualisierter Spuren
DE69631749T2 (de) Speichergerät und Verfahren zur gemeinsamen Benutzung von Daten
DE69021143T2 (de) Verfahren zur wirksamen Verwendung von auswechselbaren Aufzeichnungsmedien für Daten.
DE3932474C2 (de) Plattenzugriff-Steuerverfahren
DE10348326A1 (de) Permanentspeichervorrichtung, die an eine Kommunikationsverbindung angeschlossen ist
DE3934145C2 (de) Platteneinheit-Steuerungsvorrichtung und Informationsverarbeitungssystem, das dieselbe enthält
DE3586299T2 (de) Ein-/ausgabesteuereinheit fuer mehrfache verschiedenartige serielle speicher mit einem cache-speicher.
DE19961499A1 (de) Caching von Objekten in Platten-gestützten Datenbanken
DE202010017613U1 (de) Datenspeichervorrichtung mit host-gesteuerter Speicherbereinigung
DE112005001050T5 (de) Liefern eines alternativen Cachespeicherungsschemas auf der Speicherbereichnetzwerkebene
DE60008148T2 (de) System und verfahren zum abrollen von schleifen in einem trace-cache
DE69819853T2 (de) Speichersystem mit einer Mehrzahl von sich an mehrere Datenformate anpassenden Schnittstellen
DE112012002452T5 (de) Anpassungsfähiges Zwischenspeichern von Datensätzen für Halbleiterplatten
DE3021227A1 (de) Plattenspeicher-notizblock-teilsystem
DE10050171A1 (de) Verfahren zur Steuerung von Cache-Speichern, Computersystem, Festplattenlaufwerk und Festplatten-Steuereinheit
DE4029980A1 (de) On-line-umspeichersystem und platten-untersystem
DE19945993B4 (de) Plattenschreibvollendungssystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee