DE69724846T2 - Mehrweg-Ein/Ausgabespeichersysteme mit Mehrweg-Ein/Ausgabeanforderungsmechanismus - Google Patents

Mehrweg-Ein/Ausgabespeichersysteme mit Mehrweg-Ein/Ausgabeanforderungsmechanismus Download PDF

Info

Publication number
DE69724846T2
DE69724846T2 DE69724846T DE69724846T DE69724846T2 DE 69724846 T2 DE69724846 T2 DE 69724846T2 DE 69724846 T DE69724846 T DE 69724846T DE 69724846 T DE69724846 T DE 69724846T DE 69724846 T2 DE69724846 T2 DE 69724846T2
Authority
DE
Germany
Prior art keywords
request
unit
control unit
mailbox
memory
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 - Lifetime
Application number
DE69724846T
Other languages
English (en)
Other versions
DE69724846D1 (de
Inventor
Paul San Jose Hodges
Michael Garwood Cupertino Hurley
Norman Kenneth San Jose Ouchi
Mien Saratoga Shih
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE69724846D1 publication Critical patent/DE69724846D1/de
Application granted granted Critical
Publication of DE69724846T2 publication Critical patent/DE69724846T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Description

  • Bereich der Technik
  • Diese Erfindung betrifft ein Datenverarbeitungssystem mit mehreren unabhängigen Pfaden zur Übertragung zwischen mehreren unabhängigen Speichersteuereinheiten und Speichereinheiten. Genauer gesagt, diese Erfindung betrifft ein Verfahren und ein Mittel zur wirkungsvollen Verwaltung der Warteschlangen in einem Speicher-Teilsystem mit mehreren unabhängigen Pfaden, bei dem die Anforderungen für den Zugriff auf die Speichereinheiten ausgeführt werden können, ohne dass die Warteschlangen synchron sein müssen.
  • Stand der Technik
  • Datenverarbeitungssysteme (Systeme) mit mehreren Eingabe/Ausgabe-(E/A-)Speicher-Teilsystemen haben im Allgemeinen mehrere unabhängige Kommunikationspfade zwischen dem Prozessor und jeder Speichereinheit in dem System. Ein typisches Datenverarbeitungssystem 100, das ein solches Merkmal aufweist, ist in 1 gezeigt. Der Host 110 umfasst im Allgemeinen ein Anwendungsprogramm 112, ein Betriebssystem 114 und eine E/A-Überwachungseinrichtung (I/O supervisor) 116, die des Weiteren eine Host-Taskwarteschlange 117 enthält, um die vom Host ausgegebenen Anforderungen zu verwalten. Der Host 110 umfasst überdies eine Vielzahl von E/A-Kanälen 118 zur Kommunikation mit der Speichersteuereinheit 120. Die Speichersteuereinheit 120 umfasst im Allgemeinen eine Vielzahl von E/A-Anschlüssen (I/O ports) 122 zur Kommunikation mit dem Host 110, einen gemeinsam benutzten Cachespeicher 124 für hohe Leistungsfähigkeit und eine Vielzahl von Steuereinheit-Pfaden 130, um auf die Speichereinheiten 140 zuzugreifen. Die Speichersteuereinheit 120 und die Speichereinheiten 140 werden im Allgemeinen als Speicher-Teilsystem bezeichnet.
  • Wenn eine vom Host 110 ausgegebene E/A-Anforderung nicht durch die Bereitstellung von Daten erfüllt werden kann, die bereits im Cachespeicher 124 abgelegt sind, greift die Speichersteuereinheit 120 im Allgemeinen über einen der verfügbaren Steuereinheit-Pfade 130 auf die entsprechende Speichereinheit zu, um die E/A-Anforderung auszuführen. Das Datenverarbeitungssystem von 1 zeichnet sich im Allgemeinen aufgrund der Redundanz des Speicher-Teilsystems, mehrerer E/A-Kanäle, mehrerer Steuereinheit-Pfade in der Speichersteuereinheit und mehrerer Kommunikationsverbindungen zwischen der Speichersteuereinheit und den Speichereinheiten durch hohe Verfügbarkeit aus.
  • Bei dieser Art von System wird eine vom Host 110 ausgegebene E/A-Anforderung typischerweise wie folgt in die Warteschlange gestellt: Die E/A-Anforderung wird vom Anwendungsprogramm 112 ausgelöst und an die E/A-Überwachungseinrichtung 116 übermittelt. Die E/A-Überwachungseinrichtung 116 empfängt die Anforderung und fügt sie zur Host-Taskwarteschlange 117 hinzu, die von der E/A-Überwachungseinrichtung verwaltet wird. Wenn eine der Kommunikationsverbindungen 150 verfügbar wird, löst die E/A-Überwachungseinrichtung 116 einen E/A-Prozess für die erste Anforderung in der Warteschlange 117 aus, für die die entsprechende Einheit verfügbar ist.
  • Da die Host-Taskwarteschlange 117 die einzige im System verfügbare Warteschlange für E/A-Operationen ist, werden bei dieser Art von System alle Operationen am Host 110 eingeleitet, und nur eine Operation kann für eine beliebige Einheit aktiv sein. Überdies muss diese Operation als abgearbeitet gemeldet werden, bevor die E/A-Überwachungseinrichtung 116 eine andere Operation für diese Einheit einleiten kann.
  • Bei dieser Art von Architektur wird durch den Ausfall von einem der Kanäle 118, einer der Kommunikationsverbindungen 150, einer der Einheiten-Kommunikationsverbindungen 160 oder einem der Steuereinheit-Pfade 130 nicht der Zugriff auf die Speichereinheiten verhindert, aber ein Ausfall, der die Host-Taskwarteschlange 117 betrifft, führt dazu, dass Anforderungen in der Host-Taskwarteschlange 117 fehlschlagen, und die Wahrscheinlichkeit ist groß, dass eines oder mehrere Programme abgebrochen werden. Eine Wiederherstellung nach einem Fehler kann zur Folge haben, dass das Programm auf demselben Host oder auf einem anderen Host-System neu ausgeführt werden muss.
  • In einem Datenverarbeitungssystem, bei dem die Speichersteuereinheit über einen Cachespeicher verfügt, ist es jedoch erwünscht, dass Operationen zwischen dem Cachespeicher 124 und den Speichereinheiten 140 gleichzeitig mit Operationen zwischen dem Cachespeicher 124 und dem Host 110 (der auch als Zentraleinheit (CPU) bezeichnet wird) ausgeführt werden. Eine Anforderung beispielsweise, Daten in die Speichereinheit 142 zu schreiben, die vom Host 110 ausgegeben wird, kann vom Host 110 als vollständig abgearbeitet betrachtet werden, wenn die Daten in den Cachespeicher 124 übertragen worden sind.
  • Anschließend können nachfolgende Operationen für die Einheit 142 aus dem Cachespeicher 124 ausgeführt werden, während die aktualisierten Daten in die Speichereinheit 142 geschrieben werden.
  • Ein Beispiel für ein Datenverarbeitungssystem, bei dem die Speichersteuereinheit über einen Cachespeicher verfügt, ist in 2 gezeigt. 2 stellt ein IBM System/390 (Host 110) dar, das mit der IBM-Speichersteuereinheit 3990 (Speichersteuereinheit 120) kommuniziert, die den Betrieb der IBM-Magnetspeichereinheiten 3390 (Speichereinheiten 140) steuert. Bei diesem System gibt es vier Kommunikationspfade (Datenpfade) zwischen der Speichersteuereinheit 120 und den Speichereinheiten 140. Jeder Datenpfad umfasst einen Steuereinheit-Pfad 130 und eine Einheiten-Kommunikationsverbindung 160 und steht zur Übertragung von Befehlen zur Verfügung, um Operationen in beliebigen der Speichereinheiten 140 auszuführen.
  • Um eine hohe Verfügbarkeit zu ermöglichen, wird die Speichersteuereinheit 120 im Allgemeinen in zwei Speicher-Teilsteuereinheiten 132 und 134 unterteilt. Die Speicher-Teilsteuereinheit 132 umfasst eine Steuereinheit-Taskwarteschlange 126 und eine Vielzahl von Steuereinheit-Pfaden 130 (in 2 sind zwei Steuereinheit-Pfade gezeigt). Die Speicher-Teilsteuereinheit 134 umfasst eine Steuereinheit-Taskwarteschlange 128 und eine Vielzahl von Steuereinheit-Pfaden 130 (in 2 sind zwei Steuereinheit-Pfade gezeigt). Die Taskwarteschlangen 126 und 128 stellen jeweils Repliken voneinander dar. Außerdem sind die beiden Speicher-Teilsteuereinheiten für verschiedene Leistungsgrenzen ausgelegt, um die Zuverlässigkeit des Gesamtsystems zu verbessern. Wenn eine der Speicher-Teilsteuereinheiten ausfiele, würde daher die andere Speicher-Teilsteuereinheit weiterhin Anforderungen aus ihrer Taskwarteschlange ausführen und dadurch eine zwar geringere, aber gleichbleibende Leistung bereitstellen.
  • Wenn man berücksichtigt, dass jede Anforderung für den Zugriff auf eine Speichereinheit, die vom Host 110 ausgegeben wird, mehrere Teilbefehle enthalten und jeder der Teilbefehle von einer Teilsteuereinheit ausgegeben und von einer anderen abgearbeitet werden kann, wird die Verwaltung der Taskwarteschlangen in der Speichersteuereinheit 120 eine äußerst ernsthafte Angelegenheit, die von zentraler Bedeutung ist. Eine E/A-Anforderung beispielsweise enthält gewöhnlich zwei Teilbefehle, 1) einen vorbereitenden Zustandsbefehl "suchen/finden" ("seek/locate") und 2) einen als "lesen/schreiben" ("read/write") bekannten zeitabhängigen Datenübertragungsbefehl. Bei dieser Art einer E/A-Anforderung kann eine von beiden Speicher-Teilsteuereinheiten zur Verfügung stehen, um beliebige der Teilbefehle zu einem bestimmten Zeitpunkt auszuführen, und sie kann auch die nächste Operation an der Warteschlange bedienen.
  • Daher muss jede Speicher-Teilsteuereinheit den Zustand der E/A-Anforderung für jede Einheit überwachen, um zu gewährleisten, dass ein Schreib-/Lesebefehl ("read/write") der richtigen E/A-Anforderung zugeordnet wird, bevor er von einer der beiden Teilsteuereinheiten ausgeführt wird. Das heißt, es muss einen Mechanismus geben, über den eine Bestätigung darüber, dass der Teilbefehl "suchen/finden" abgearbeitet wurde, von beiden Teilsteuereinheiten empfangen wird. Beispielsweise kann die Ausführung des Teilbefehls "lesen/schreiben" durch eine der Teilsteuereinheiten verzögert werden, bis beide Teilsteuereinheiten eine Bestätigung von der Speichereinheit empfangen haben. Diese Vorgehensweise würde jedoch den Zugriff auf die Speichereinheiten äußerst langsam machen und auch die Unabhängigkeit der Speicher-Teilsteuereinheiten beeinträchtigen.
  • Eine Möglichkeit, dieses Problem anzugehen, besteht darin, sicherzustellen, dass die Speicher-Teilsteuereinheiten unabhängig voneinander arbeiten, um eine hohe Verfügbarkeit zu gewährleisten, bei der Verarbeitung von Zugriffsanforderungen auf Einheiten aber dennoch sehr eng zusammenarbeiten, um die Leistungsfähigkeit zu verbessern. Eine solche Architektur ist in 2 gezeigt, in der eine Anforderung für den Zugriff auf eine Speichereinheit von jeder Speicher-Teilsteuereinheit repliziert und von jeder Teilsteuereinheit an die Einheit gesendet wird. Bei dieser Architektur sendet die erste Speicher-Teilsteuereinheit, die in den Besitz der Einheit kommt und einen Kommunikationspfad aufbaut, den Befehl "suchen/finden" an die Einheit. Der Kommunikationspfad wird dann von der Einheit getrennt, und die Speichereinheit beginnt mit der Ausführung des Teilbefehls "suchen/finden". Sobald die Operation abgeschlossen und die Einheit zur Datenübertragung bereit ist, aktiviert die Einheit einen Merker (flag) oder eine Unterbrechung, um die Speichersteuereinheit zu informieren. Sobald die Einheit einen Merker oder eine Unterbrechung aktiviert hat, kommt die erste verfügbare Teilsteuereinheit, die die Unterbrechung von der Einheit feststellt, in den Besitz der Einheit und schließt die Datenübertragung von der Einheit an den gemeinsam benutzten Cachespeicher 124 in der Speichersteuereinheit 120 ab.
  • Bei dieser Architektur arbeiten die Speicher-Teilsteuereinheiten daher unabhängig voneinander, um eine hohe Verfügbarkeit zu ermöglichen, gleichzeitig arbeiten sie jedoch sehr eng zusammen, um eine hohe Leistungsfähigkeit zu gewährleisten. Da die Kommunikationspfade durch jede Speicher-Teilsteuereinheit jedoch asynchron sind, was bedeutet, dass Anforderungen über einen Kommunikationspfad im Vergleich zu einem anderen Pfad Verzögerungen erfahren können, kann dies gut dazu führen, dass eine Speicher-Teilsteuereinheit eine Anforderung oder einen Teilbefehl ausführt, die/der bereits von der anderen Speicher-Teilsteuereinheit ausgeführt worden ist. Dies könnte leicht zu vergeudeten Operationen führen, was die gesamte Leistungsfähigkeit des Speicher-Teilsystems herabsetzt, und gleichzeitig Probleme bezüglich der Vollständigkeit und Unversehrtheit der Daten (Datenintegrität) verursachen.
  • Eine Architektur, die Nachrichten mit hoher Geschwindigkeit weiterleitet, kann in dem System von 2 zwischen den Speicher-Teilsteuereinheiten verwendet werden, um eine Teilsteuereinheit über die Operationen zu unterrichten, die von der anderen Teilsteuereinheit ausgeführt werden. Aber selbst beim Versenden von Nachrichten von einer Teilsteuereinheit an eine andere kann es zu Verzögerungen kommen, was zu doppelt ausgeführten Anforderungen und zu Problemen mit der Datenintegrität führt.
  • Da es außerdem eine Vielzahl von Kommunikationspfaden zwischen der Speichersteuereinheit 120 und den Speichereinheiten 140 gibt und ein beliebiger der verfügbaren Kommunikationspfade die nächste E/A-Anforderung von einer der beiden Taskwarteschlangen 126 und 128 bedienen kann, muss dafür gesorgt werden, dass die beiden Kopien der Warteschlangen jederzeit identisch sind, um zu verhindern, dass dieselbe E/A-Anforderung zweimal ausgeführt wird. Dies bedeutet, dass ein durchdachtes und komplexes Verriegelungsschema verwendet werden muss, um sicherzustellen, dass eine arbeitsbereite Teilsteuereinheit den exklusiven Zugriff auf beide Kopien der Warteschlangen hat und dass beide Kopien der Warteschlange aktualisiert wurden, bevor die Sperre freigegeben wird.
  • Während die beiden Speicher-Teilsteuereinheiten der Speichersteuereinheit 120 in Bezug auf Hardware-Ausfälle absichtlich unabhängig voneinander sind, ist die Kommunikation zwischen den beiden Teilsteuereinheiten daher von ganz entscheidender Bedeutung, um die Integrität der Warteschlange zu gewährleisten. Die Abhängigkeit von komplexen und komplizierten Verriegelungsschemata und Hochgeschwindigkeitsübertragungen zwischen den Teilsteuereinheiten der Speichersteuereinheit hat eine verminderte Systemleistung zur Folge und kann zu Leistungsengpässen führen.
  • Eine Möglichkeit, einen solchen Engpass und die Abhängigkeit von komplexen Verriegelungsschemata zwischen den Warteschlangen zu beseitigen, besteht darin, auf die Speichersteuereinheit 120 zu verzichten und die notwendige Funktion auf jede Speichereinheit zu verlagern. Eine solche Architektur ist in 3 gezeigt, in der eine Vielzahl von Prozessoren 210 und 212 über einen Schnittstellenbus 218 für Kleinrechner (SCSI-Bus) mit mehreren Speichereinheiten 220 kommunizieren. Bei dieser Architektur enthält jede Speichereinheit 220 eine Einheitensteuereinheit 224 und ein Speichermedium 222. Jede SCSI-Einheitensteuereinheit 224 umfasst darüber hinaus ihre eigene Einheiten-Taskwarteschlange 226.
  • Eine Warteschlange mit Arbeiten für eine Speichereinheit auf Einheitenebene selbst zu verwalten, ist vom Standpunkt des Warteschlangenbetriebs aus betrachtet effizient, aber eine solche Einheit erfordert zusätzliche Hardware und Software und muss über eine ausgereifte Einheitensteuereinheit verfügen. Es gibt zwar Einheiten, die über ausgereifte Steuereinheiten verfügen (SCSI-Einheiten), doch besteht auch der Wunsch nach einer einfachen Speichereinheit ohne Einheitensteuereinheit, die direkt mit einer Speichersteuereinheit oder einer RAID-Steuereinheit oder einem an ein Netzwerk angeschlossenen Datenserver verbunden werden kann, ohne dass dies die mit der Verwaltung von mehreren Warteschlangen an der Speichersteuereinheit verbundenen Probleme verursacht.
  • Ein Beispiel für eine Anordnung nach dem Stand der Technik findet sich in der Europäischen Patentschrift EP 0560 343 , die ein E/A-Steuersystem mit einem E/A-Prozessor offen legt, bei dem E/A-Anforderungen in einer Warteschlange gespeichert werden.
  • In einem Speicher-Teilsystem, das über eine Vielzahl von Speichereinheiten verfügt, die über eine Vielzahl von unabhängigen E/A-Kommunikations-(Daten-)Pfaden mit einer Speichersteuereinheit kommunizieren, besteht folglich ein Bedarf nach einem Verfahren und einem Mittel zur Koordination von E/A-Anforderungen, die in mehreren Taskwarteschlangen verwaltet werden, sowie zur Löschung von abgeschlossenen Operationen unter den unabhängigen Kommunikationspfaden, ohne dass die Taskwarteschlangen in der Speicher-Teilsteuereinheit vollständig synchron gehalten werden müssen, ohne dass der Status einer jeden Speichereinheit und einer jeden Anforderung fortlaufend zwischen den Speicher-Teilsteuereinheiten bereitgestellt werden muss und ohne dass zwischen den Teilsteuereinheiten bei dem Versuch, die Warteschlangen synchron zu halten, Hochgeschwindigkeitsübertragungen stattfinden müssen.
  • Auch besteht in einem Datenverarbeitungssystem, das über eine Vielzahl von unabhängigen Speichersteuereinheiten verfügt, die über eine Vielzahl von unabhängigen E/A-Kommunikations-(Daten)Pfaden mit Speichereinheiten kommunizieren, ein Bedarf nach einem Verfahren und einem Mittel zur Verarbeitung der E/A-Anforderungen, die in mehreren Taskwarteschlangen in den Steuereinheiten verwaltet werden, sowie zur Löschung von abgeschlossenen Operationen unter den unabhängigen Kommunikationspfaden, ohne dass die Taskwarteschlangen in der Steuereinheit vollständig synchron gehalten werden müssen, ohne dass der Status einer jeden Speichereinheit und einer jeden Anforderung fortlaufend zwischen den Speichersteuereinheiten bereitgestellt werden muss und ohne dass zwischen den Speichersteuereinheiten bei dem Versuch, die Warteschlangen synchron zu halten, Hochgeschwindigkeitsübertragungen stattfinden müssen.
  • Offenlegung der Erfindung
  • In einem Datenverarbeitungssystem, das über mehrere unabhängige E/A-Pfade zwischen einer Speichersteuereinheit und Speichereinheiten verfügt, wobei die Speichersteuereinheit eine Vielzahl von Speicher-Teilsteuereinheiten umfasst und wobei jede Speicher-Teilsteuereinheit eine Taskwarteschlange (Warteschlange) umfasst, werden gemäß der vorliegenden Erfindung ein Verfahren und ein Mittel offen gelegt, bei denen der Status einer jeden Warteschlange und der E/A-Anforderung (des Jobs), die abgearbeitet oder in Ausführung befindlich ist, den anderen Warteschlangen über ein Register mitgeteilt wird, das an jeder Speichereinheit verwaltet wird. Dies geschieht, indem:
    • (1) jeder E/A-Anforderung eine eindeutige Kennung zugewiesen wird, bevor die Anforderung in den Warteschlangen gespeichert wird. Die eindeutige Kennung für jede E/A-Anforderung, die in den Warteschlangen gespeichert wird, gewährleistet, dass eine E/A-Anforderung aus allen Kopien der Warteschlangen entfernt wird, wenn diese Anforderung durch eine beliebige der Speicher-Teilsteuereinheiten abgearbeitet worden ist;
    • (2) ein als "Mailbox" (elektronischer Briefkasten) bekanntes Register in jeder Speichereinheit verwaltet wird, das von jeder Teilsteuereinheit gelesen und/oder beschrieben werden kann, die einen Kommunikationspfad mit dieser Einheit aufbaut. Die Mailbox enthält die eindeutige Kennung und den Status der zuletzt ausgeführten E/A-Anforderung oder der E/A-Anforderung, die gerade von dieser Einheit ausgeführt wird; und
    • (3) jeder der Speicher-Teilsteuereinheiten gestattet wird, den Inhalt der Mailbox zu lesen und in Abhängigkeit vom Inhalt der Mailbox die geeignete Maßnahme zu ergreifen.
  • Die geeignete Maßnahme, die von einer Speicher-Teilsteuereinheit, welche die Mailbox einer Einheit liest, ergriffen wird, kann dazu führen, dass der Status der Speichereinheit geändert und der Inhalt der Mailbox aktualisiert wird, um die Änderung des Status widerzuspiegeln. Die Teilsteuereinheit, die die Mailbox liest, kann ihre Kopie der Warteschlange auf der Grundlage des soeben Gelesenen ebenfalls aktualisieren.
  • Auf der Grundlage der hier offen gelegten Erfindung sind die Kopien der Warteschlangen daher nicht unbedingt synchron. Tatsächlich könnten die Warteschlangen vollkommen unsynchron sein, ohne doppelte Arbeit und Probleme mit der Datenintegrität zu verursachen oder die Verarbeitung der E/A-Anforderungen zu verlangsamen.
  • Wenn der Host beispielsweise eine Anforderung, Daten aus der Speichereinheit A zu lesen, ausgibt, wird der Anforderung ein eindeutiger Bezeichner x von der Speichersteuereinheit zugewiesen, bevor die Anforderung in den Taskwarteschlangen gespeichert wird. Sobald die Einheit A verfügbar wird, wird die Anforderung für den Zugriff auf die Einheit A über alle verfügbaren Kommunikationspfade versendet. Wenn der Pfad 1 der erste ist, der in den Besitz der Einheit A kommt, gibt er den Befehl "suchen/finden" aus, um die Einheit auf die Datenübertragung vorzubereiten. Die Einheit A speichert dann den eindeutigen Bezeichner x in ihrer Mailbox und setzt den Zustand der E/A-Operation so, dass dieser anzeigt, dass der Befehl an die Einheit A ausgegeben wurde, um sie auf die Datenübertragung vorzubereiten. Der Pfad 1 gibt dann die Einheit A frei und führt andere Operationen aus, während die Einheit A sich auf die Datenübertragung vorbereitet. Unter der Annahme, dass der Pfad 2 der erste Pfad ist, der feststellt, dass die Einheit A zur Datenübertragung bereit ist, ist der Ablauf wie folgt: Der Pfad 2 liest die Mailbox der Einheit A und stellt fest, dass die Anforderung mit dem eindeutigen Bezeichner x in Ausführung befindlich ist, er ordnet die Datenübertragung der Anforderung mit dem Bezeichner x in seiner Taskwarteschlange zu und führt dann die Datenübertragung aus. Sobald die Datenübertragung abgeschlossen ist, wird der Zustand dieser bestimmten E/A- Anforderung an der Einheit A auf "abgeschlossen" gesetzt, um zu zeigen, dass die zu dem eindeutigen Bezeichner x gehörende Anforderung ausgeführt worden ist. Wenn man annimmt, dass der Pfad 1 nun versucht, die Mailbox der Einheit A zu lesen, wird er, sobald er sie liest, feststellen, dass die Anforderung, der der eindeutige Bezeichner x zugeordnet ist, bereits über einen anderen Pfad abgearbeitet worden ist. Folglich löscht der Pfad 1 die Anforderung, der der eindeutige Bezeichner x zugeordnet ist, aus seiner eigenen Taskwarteschlange und gibt dann die Einheit A frei.
  • Durch die Verwendung eines eindeutigen Bezeichners für jede in den Taskwarteschlangen gespeicherte E/A-Anforderung in Verbindung mit einer Mailbox an jeder Speichereinheit wird verhindert, dass dieselbe Anforderung mehr als einmal von den Speicher-Teilsteuereinheiten ausgeführt wird. Gleichzeitig können dadurch die Taskwarteschlangen asynchron aktualisiert werden, ohne die Leistungsfähigkeit eines Speichersystems zu beeinträchtigen. Verwendet man außerdem einen eindeutigen Bezeichner für jede E/A-Anforderung in Verbindung mit einer Mailbox an jeder Speichereinheit, entfällt die Notwendigkeit für komplizierte und komplexe Sperrschritt-Schemata, um sicherzustellen, dass die Taskwarteschlange in jeder Speicher-Teilsteuereinheit synchron zu den Taskwarteschlangen in den anderen Speicher-Teilsteuereinheiten ist. Durch die Verwendung der vorliegenden Erfindung entfällt auch die Notwendigkeit, eine direkte Hochgeschwindigkeitsübertragung zwischen Speicher-Teilsteuereinheiten zu ermöglichen, um den Status der Warteschlangen schnell und regelmäßig zu übertragen, da die Taskwarteschlangen nicht synchron sein müssen.
  • Kurze Beschreibung der Zeichnungen
  • Die Erfindung wird nun lediglich anhand eines Beispiels mit Bezug auf die beigefügten Zeichnungen beschrieben, in denen:
  • 1 ein Datenverarbeitungssystem nach dem Stand der Technik zeigt, dessen Host mit einem Speicher-Teilsystem kommuniziert;
  • 2 ein weiteres Datenverarbeitungssystem nach dem Stand der Technik zeigt, das über eine Vielzahl von Taskwarteschlangen an der Speichersteuereinheit verfügt;
  • 3 ein weiteres Datenverarbeitungssystem nach dem Stand der Technik zeigt, das eine Taskwarteschlange in jeder Einheit hat;
  • 4 die bevorzugte Ausführungsform der vorliegenden Erfindung zeigt;
  • 5 eine ausführliche Prinzipdarstellung der in 4 gezeigten Matrixsteuereinheit (array controller) ist;
  • 6 eine Mailbox zeigt, die in jeder Speichereinheit gespeichert wird;
  • 7 ein Flussdiagramm der Abwicklung von E/A-Anforderungen in der bevorzugten Ausführungsform der vorliegenden Erfindung ist;
  • 8 eine alternative Ausführungsform der vorliegenden Erfindung zeigt;
  • 9 eine weitere alternative Ausführungsform der vorliegenden Erfindung zeigt; und
  • 10 noch eine weitere alternative Ausführungsform der vorliegenden Erfindung zeigt.
  • Ausführliche Beschreibung der Erfindung
  • Bezug nehmend auf 4 ist die bevorzugte Ausführungsform der vorliegenden Erfindung gezeigt. Das Datenverarbeitungssystem 300 umfasst einen Host 310, der mit der Speichersteuereinheit 320 kommuniziert, wobei die Speichersteuereinheit mit der Speichermatrix 340 kommuniziert. Die Speichermatrix 340 umfasst des Weiteren eine Matrixsteuereinheit 350, die den Zugriff auf die Speichereinheiten 345 steuert. In dieser Ausführungsform werden die Speichereinheiten, die normalerweise an die Speichersteuereinheit 320 angeschlossen werden, durch die Speichermatrix 340 ersetzt. Die Speichermatrix 340 kann dann als eine logische Speichereinheit vom Typ IBM 3390 behandelt werden. Das heißt, die Speichermatrix 340 kann den Anschluss von standardmäßigen Speichereinheiten an die Speichersteuereinheit 320 ermöglichen, indem sie die zuvor vorhandenen Speichereinheiten wie zum Beispiel das Speicher-Teilsystem IBM 3390 emuliert. Außerdem kann die Matrixsteuereinheit 350 in Verbindung mit den Speichereinheiten 345 über Architekturen wie zum Beispiel zuverlässige Systeme aus mehreren Plattenlaufwerken mit automatischer Redundanz der Ablage von Informationen (RAID) eine äußerst hohe Datenverfügbarkeit bieten.
  • Nochmals Bezug nehmend auf 4 umfasst der Host 310 ein Anwendungsprogramm 312, ein Betriebssystem 314, eine E/A-Überwachungseinrichtung 316 und eine Vielzahl von E/A-Kanälen 318 zur Kommunikation mit der Speichersteuereinheit 320. Die Speichersteuereinheit 320 umfasst im Allgemeinen eine Vielzahl von E/A-Anschlüssen (I/O ports) 322 zur Kommunikation mit dem Host 310, einen gemeinsam benutzten Cachespeicher 324 für hohe Leistungsfähigkeit und zwei Speicher-Teilsteuereinheiten 331 und 332 für den Zugriff auf die Speichermatrix 340. Die Speicher-Teilsteuereinheit 331 umfasst eine Speichereinheit-Taskwarteschlange 326 und die Steuereinheit-Pfade 333 und 334. Die Speicher-Teilsteuereinheit 332 umfasst eine Steuereinheit-Taskwarteschlange 328 und die Steuereinheit-Pfade 335 und 336. Die Speichersteuereinheit 320 kommuniziert mit der Speichermatrix 340 über eine Vielzahl von Übertragungsleitungen 380.
  • 5 ist eine ausführliche Prinzipdarstellung der Matrixsteuereinheit 350, die mit den Speichereinheiten 345 und der Speichersteuereinheit 320 kommuniziert. Die Matrixsteuereinheit 350 umfasst zwei identische unabhängig voneinander arbeitende Steuereinheit-Pfade 352 und 354. Die Steuereinheit-Pfade 352 und 354 sorgen zusammen für eine verbesserte Leistungsfähigkeit und einen fehlertoleranten Betrieb. In der bevorzugten Ausführungsform kommuniziert die Matrixsteuereinheit 350 mit der Speichersteuereinheit 320 über eine Vielzahl von Kommunikationsverbindungen 380 (in diesem Beispiel sind vier gezeigt). Die Matrixsteuereinheit 350 umfasst des Weiteren eine Vielzahl von Speicherschnittstellenadaptern 400 (in diesem Beispiel sind vier gezeigt, zwei in jedem Steuereinheit-Pfad). Die Speicherschnittstellenadapter 400 empfangen Befehle (Anweisungen, Anforderungen) für den Zugriff auf die Speichereinheiten 345 von der Speichersteuereinheit 320 und stellen zunächst fest, ob eine von der Speichersteuereinheit 320 ausgegebene Anforderung entweder vom Pufferspeicher 416 oder vom Pufferspeicher 418 erfüllt werden kann. Die Pufferspeicher 416 und 418 speichern von den Einheiten und von der Speichersteuereinheit empfangene Daten. Wenn die Anforderung aus dem Inhalt von einem der beiden Pufferspeicher erfüllt werden kann, wird diese Information über einen der Speicherschnittstellenadapter 400 an die Speichersteuereinheit 320 zurückübermittelt. Für jede Anforderung, die nicht aus dem Inhalt von einem der Pufferspeicher erfüllt werden kann, erzeugt einer der Speicherschnittstellenadapter eine eindeutige Anforderungskennung (auch "Bezeichner" genannt) und sendet die Anforderung mit ihrer eindeutigen Kennung an die Matrix-Verwaltungseinrichtungen (array managers) 412 und 414. Die Matrix-Verwaltungseinrichtungen 412 und 414 fügen die Anforderung und ihren Bezeichner wiederum ihren jeweiligen Warteschlange 413 und 415 hinzu.
  • Die Matrix-Verwaltungseinrichtungen 412 und 414 sind im Allgemeinen für die Verwaltung der Datenabwicklung zwischen der Speichersteuereinheit 320 und den Speichereinheiten 345 zuständig. Darüber hinaus setzen sie das Datenformat zwischen den Speichereinheiten 345 (ursprüngliches Format) und der emulierten Einheit (das Format aus Sicht der Speichersteuereinheit 320) um. Beispielsweise könnten die Daten in den Speichereinheiten 345 als festes Blockformat (ursprüngliches Format der Einheiten) gespeichert werden.
  • Andererseits kann die Speichersteuereinheit 320 so konfiguriert sein, dass sie die Daten in einem Count-Key-Data-Format handhabt. Daher stellen die Matrix-Verwaltungseinrichtungen 412 und 414 die Umsetzungsfunktion zwischen diesen beiden verschiedenen Datenformatarten bereit. Jede Matrix-Verwaltungseinrichtung verwaltet überdies ihre eigene Taskwarteschlange. Beispielsweise verwaltet die Matrix-Verwaltungseinrichtung 412 die Matrix-Taskwarteschlange 413, und die Matrix-Verwaltungseinrichtung 414 verwaltet die Matrix-Taskwarteschlange 415. Jede Matrixverwaltungseinrichtung aktualisiert ihre eigene Matrix-Taskwarteschlange auf der Grundlage von Nachrichten, die sie von einem beliebigen der Speicherschnittstellenadapter 400 empfängt, und auf der Grundlage des Inhalts der Mailbox in jeder Speichereinheit. Die Matrix-Verwaltungseinrichtungen 412 und 414 handhaben darüber hinaus die Zuteilung von Einheitenoperationen an die Speichereinheiten 345 über die Einheitenschnittstellenadapter 440 beziehungsweise 442.
  • In der bevorzugten Ausführungsform enthält jeder Matrixsteuereinheit-Pfad 352 und 354 vier Einheitenschnittstellenadapter. Die Matrixverwaltungseinrichtungen 412 und 414 benachrichtigen überdies die Einheitenschnittstellenadapter 440 beziehungsweise 442, wenn eine Anforderung für den Zugriff auf eine Einheit oder auf Daten zur Übertragung bereit ist. Über den Übertragungsbus 410, über den sie sich über die Ereignisse benachrichtigen können, die sich gegebenenfalls auf die Operationen ihrer jeweiligen Matrixsteuereinheit-Pfade 352 und 354 auswirken, kommunizieren die Matrix-Verwaltungseinrichtungen 412 und 414 auch miteinander. Die Matrix-Verwaltungseinrichtungen 412 und 414 können des Weiteren Exklusiv-ODER-(XOR-)RAID-Funktionen enthalten, um die Parität über alle Speichereinheiten 345 hinweg aufrechtzuerhalten, so dass die redundante Aufzeichnung von Daten- und fehlertoleranten Operationen sichergestellt wird.
  • Wie vorstehend erwähnt wurde, ermöglichen die Einheitenschnittstellenadapter 440 und 442 den Zugriff auf die Einheiten 345 und die Operationen der Steuerspeichereinheiten. Die Einheitenschnittstellenadapter stellen ihrer jeweiligen Matrix-Verwaltungseinrichtung auch den Status der Operationen bereit. 5 zeigt des Weiteren eine Vielzahl von Speichereinheiten 345 (in diesem Beispiel sind 32 Einheiten gezeigt und mit SD1 bis SD32 gekennzeichnet), wobei jede Einheit über eine Mailbox 500 verfügt. In 5 sind die Speichereinheiten 345 in vier Gruppen angeordnet, wobei jede Gruppe acht Einheiten enthält. Die Matrixsteuereinheit-Pfade 352 und 354 können über ihre jeweiligen Einheitenschnittstellenadapter 440 und 442 unabhängig voneinander auf die Einheiten 345 zugreifen. Jeder Einheitenschnittstellenadapter kann auf vier Speichereinheiten, auf eine von jeder Gruppe, gleichzeitig zugreifen.
  • Bezug nehmend auf 6 ist die Mailbox 500 einer Einheit dargestellt, die in jeder der Speichereinheiten 345 verwaltet wird. In der bevorzugten Ausführungsform umfasst die Mailbox 500 ein 8-Byte-Feld zur Speicherung der eindeutigen Anforderungskennung 510 (Task-ID) und des Status 520 (Task-Status) der letzten Anforderung, die eine Speichereinheit von der Matrixsteuereinheit 350 empfangen hat. Die eindeutigen Anforderungs-(Task-)Kennungen (IDs) 510 sind im Interesse einer einfachen Handhabung und eines einfachen Ablaufs vorzugsweise, aber nicht notwendigerweise, fortlaufend. Die Mailbox 500 kann auch Informationen wie zum Beispiel die Kennung des Einheitenschnittstellenadapters enthalten, von dem die Anforderung empfangen wurde. Die Mailbox 500 kann auch Informationen wie zum Beispiel die Zugehörigkeit der Einheit enthalten.
  • Bezug nehmend auf 7 ist ein Flussdiagramm des Einheitenzugriffs und des Ablaufs der Warteschlangenverwaltung gezeigt, die von den Matrix-Verwaltungseinrichtungen 412 und 414 in der bevorzugten Ausführungsform der vorliegenden Erfindung durchgeführt wird. Der Ablauf wird mit Bezug auf die Matrix-Verwaltungseinrichtung 412 beschrieben, obgleich er genauso auf die Matrix-Verwaltungseinrichtung 414 zutrifft.
  • Die Matrix-Verwaltungseinrichtung 412 stellt zunächst fest, ob von der Matrix-Verwaltungseinrichtung 414 über den Übertragungsbus 410 (Block 705) eine Nachricht hinsichtlich des Status der Warteschlangen empfangen wurde. Die Matrix-Taskwarteschlange 413 wird entsprechend aktualisiert, wenn eine solche Nachricht empfangen wird (Block 706), andernfalls stellt die Matrix-Verwaltungseinrichtung 412 fest, ob eine Unterbrechung von einer der Einheiten 345 empfangen wurde (Block 710). Wenn eine Einheitenunterbrechung von der Einheit n empfangen wird, wird die Einheit n ausgewählt, und ihre Mailbox wird gelesen, um die Task-ID (Anforderungs-ID) und den Status der zuletzt an die Einheit n gesandten Anforderung festzustellen (Blöcke 712 und 715). Nehmen wir an, dass der Inhalt des Mailbox-Registers anzeigt, dass die Task mit der eindeutigen fortlaufenden ID "R" (die einfach als Task "R" bezeichnet wird) in Ausführung befindlich ist. Die Matrix-Verwaltungseinrichtung 412 aktualisiert dann die Matrix- Taskwarteschlange 413 und löscht alle Anforderungen, deren eindeutige fortlaufende ID kleiner "R" sind, und aktualisiert die Warteschlange 413, um zu zeigen, dass die Task "R" in Ausführung befindlich ist (Block 716). Die Matrix-Verwaltungseinrichtung 412 gibt dann an die Einheit n einen Befehl aus, die Task "R" abzuarbeiten (Block 717) und aktualisiert gleichzeitig die Mailbox in der Einheit n, um festzuhalten, dass die "Task R abgearbeitet ist" (Block 718). Die Matrix-Verwaltungseinrichtung 412 nimmt dann die Auswahl der Einheit n zurück und löscht die Task "R" aus ihrer Matrix-Taskwarteschlange 413 (Block 720).
  • Nochmals Bezug nehmend auf den Block 715 aktualisiert die Matrix-Verwaltungseinrichtung 412 die Matrix-Taskwarteschlange 413, indem sie die Task "R" und alle Anforderungen, deren eindeutige fortlaufende ID kleiner "R" sind, löscht, wenn der Inhalt des Mailbox-Registers in der Einheit n angibt, dass die Task "R" abgearbeitet worden ist (Block 725). Die MatrixVerwaltungseinrichtung 412 prüft dann die Matrix-Taskwarteschlange 413, um festzustellen, ob es noch weitere Tasks in der Warteschlange für die Einheit n gibt (Block 726); wenn nicht, kehrt die Operation zum Block 700 zurück. wenn es eine Task "S" für die Einheit n gibt, gibt die Matrix-Verwaltungseinrichtung 412 Befehle aus, um die Ausführung der Task "S" einzuleiten (Block 727), die Mailbox wird aktualisiert, um zu zeigen, dass die Task "S" in Ausführung befindlich ist (Block 728), die Auswahl der Einheit n wird zurückgenommen, und der Status der Task "S" in der Warteschlange 413 wird aktualisiert (Block 729).
  • Kehren wir nochmals zum Block 710 zurück. Wenn die Matrix-Verwaltungseinrichtung 412 keine Unterbrechung von einer Einheit empfängt, prüft sie die Warteschlange 413, um festzustellen, welches die nächste auszuführende Task ist und für welche Einheit sie ausgeführt werden soll (Block 740). Nehmen wir an, dass die nächste von der Matrixverwaltungseinrichtung 412 gemäß ihrer Warteschlange 413 auszuführende Task die Task "T" für die Einheit n ist. Die Matrix-Verwaltungseinrichtung 412 gibt dann Befehle aus, um die Einheit n auszuwählen und ihre Mailbox zu lesen, um die ID und den Status der zuletzt an die Einheit n ausgegebenen Task festzustellen (Block 742). Wenn die Task-ID in der Mailbox der Einheit n kleiner "T" ist (Block 745) und ihr Status "in Ausführung befindlich" lautet (Block 770), ist ein Fehler aufgetreten, und der Fehler wird der Matrix-Verwaltungseinrichtung 412 gemeldet (Block 775). Wenn die Task-ID in der Mailbox der Einheit n kleiner "T" ist (Block 745) und ihr Status "abgearbeitet" lautet, gibt die Matrix-Verwaltungseinrichtung Befehle aus, um die Task "T" einzuleiten, sie aktualisiert die Mailbox für die Einheit n, um zu zeigen, dass die Task "T" in Ausführung befindlich ist, und nimmt dann die Auswahl der Einheit n zurück und aktualisiert den Status der Task "T" in der Matrix-Taskwarteschlange 413 (Blöcke 771, 772 und 773).
  • Wenn die Task-ID in der Mailbox der Einheit n "U" lautet, was größer als "T" ist (Block 745), und der Status der Task "U" "abgeschlossen" lautet, löscht die Matrix-Verwaltungseinrichtung 412 die Tasks "T" und "U" aus der Warteschlange 413 (Block 755) und stellt fest, ob es noch eine weitere Task in der Warteschlange 413 für die Einheit n gibt (Block 756); wenn nicht, kehrt die Operation zum Block 700 zurück. Wenn es für die Einheit n eine Task "V" in der Warteschlange 413 gibt, gibt die Matrix-Verwaltungseinrichtung 412 Befehle aus, um die Ausführung der Task "V" einzuleiten (Block 757), die Mailbox wird aktualisiert, um zu zeigen, dass die Task "V" in Ausführung befindlich ist (Block 758), und die Auswahl der Einheit n wird zurückgenommen, und der Status der Task "V" in der Warteschlange 413 wird aktualisiert (Block 759).
  • Wenn die Task-ID in der Mailbox der Einheit n "U" lautet, was größer als "T" ist (Block 745), und der Status der Task "U" "in Ausführung befindlich" lautet, aktualisiert die Matrix-Verwaltungseinrichtung 412 die Matrix-Taskwarteschlange 413 und löscht alle Tasks (Anforderungen), deren Task-IDs kleiner "U" sind, und aktualisiert die Warteschlange 413, um zu zeigen, dass die Task "U" in Ausführung befindlich ist (Block 751). Die Matrix-Verwaltungseinrichtung 412 gibt dann einen Befehl an die Einheit n aus, die Task "U" abzuarbeiten (Block 752), und gleichzeitig aktualisiert sie die Mailbox in der Einheit n, um festzuhalten, dass die "Task U abgearbeitet ist" (Block 753). Die Matrix-Verwaltungseinrichtung 412 nimmt dann die Auswahl der Einheit n zurück und löscht die Task "U" aus ihrer Matrix-Taskwarteschlange 413 (Block 754).
  • Nun allgemein Bezug nehmend auf die 4 bis 7 werden der Betrieb der Taskwarteschlangen 413 und 415 und die Verwendung der Mailbox anhand des folgenden Beispiels näher erklärt. Nehmen wir an, dass die Taskwarteschlange 413 eindeutige fortlaufend nummerierte Anforderungen 25 und 26 für die Speichereinheit 8 (SD8) enthält. Die Anforderung 25 befindet sich ganz am Anfang der Warteschlange (was bedeutet, dass sie die nächste auszuführende Operation ist). Die Matrix-Verwaltungseinrichtung 412 gibt dann einen Befehl über den Einheitenschnittstellenadapter 440 aus, um festzustellen, ob die Speichereinheit 8 verfügbar oder beschäftigt ist. Wenn die Speichereinheit 8 beschäftigt ist, wird diese Information an die Matrix-Verwaltungseinrichtung 412 zurück übermittelt, die sich dann gegebenenfalls dafür entscheidet, Anforderungen für andere Einheiten auszuführen, bevor sie einen weiteren Versuch unternimmt, mit der Speichereinheit 8 zu kommunizieren. Wenn die Speichereinheit 8 andererseits verfügbar ist, wählt die Matrix-Verwaltungseinrichtung 412 die Einheit 8 aus und liest sofort die Mailbox 500 in der Speichereinheit 8, um den Status der letzten Anforderung festzustellen, die von der Speichereinheit 8 ausgeführt wurde. wenn die Mailbox 500 zeigt, dass die letzte Anforderung, die abgearbeitet wurde, die Anforderung Nummer 24 war, gibt die Matrix-Verwaltungseinrichtung 412 an die Speichereinheit 8 den Befehl "suchen/finden" für die Anforderung 25 aus. Sie aktualisiert dann die Mailbox, um zu zeigen, dass die Anforderung 25 in Ausführung befindlich ist. Dies geschieht, indem der Task-Status 520 auf "p" (wobei "p" für "in Ausführung befindlich" ("in progress") steht) gesetzt wird. Die Matrix-Verwaltungseinrichtung 412 nimmt dann die Auswahl der Speichereinheit 8 zurück und aktualisiert die Warteschlange 413, um zu zeigen, dass die Anforderung 25 in Ausführung befindlich ist. Die Matrix-Verwaltungseinrichtung 412 kann über den Übertragungsbus 410 auch eine Nachricht an die Matrix-Verwaltungseinrichtung 414 senden und diese darüber informieren, dass die Anforderung 25 in Ausführung befindlich ist. Die Matrix-Verwaltungseinrichtung 412 kann dann in den Ruhezustand zurückkehren oder eine Verbindung mit den anderen Einheiten aufbauen.
  • Wenn die Matrix-Verwaltungseinrichtung 412 andererseits die Speichereinheit 8 auswählt und, nachdem sie die Mailbox 500 gelesen hat, feststellt, dass der Befehl "suchen/finden" für die Anforderung 25 bereits in Ausführung befindlich ist, aktualisiert die Matrix-Verwaltungseinrichtung 412 die Warteschlange 413, um zu zeigen, dass die Anforderung 25 in Ausführung befindlich ist, sie gibt dann Befehle an die Speichereinheit 8 aus, um die Anforderung 25 abzuarbeiten, aktualisiert die Mailbox, um die Änderung des Status anzuzeigen, nimmt die Auswahl der Speichereinheit 8 zurück und löscht die Anforderung 25 aus der Warteschlange 413.
  • Wenn die Matrix-Verwaltungseinrichtung 412 alternativ dazu eine Kommunikationsverbindung mit der Speichereinheit 8 aufbaut, um die Anforderung 25 auszuführen, und, nachdem sie die Mailbox der Einheit 8 gelesen hat, feststellt, dass der Befehl "suchen/finden" für die Anforderung 26 bereits in Ausführung befindlich ist, kommt die Matrix-Verwaltungseinrichtung 412 zu dem Schluss, dass die Anforderung 25 bereits von der Matrix-Verwaltungseinrichtung 414 abgearbeitet worden ist. Die Matrix-Verwaltungseinrichtung 412 nimmt dann die Auswahl der Speichereinheit 8 zurück und löscht die Anforderung 25 aus der Warteschlange 413. Sie aktualisiert auch die Warteschlange 413, um zu zeigen, dass die Anforderung 26 in Ausführung befindlich ist, und kehrt anschließend in den Ruhezustand zurück.
  • Wenn die Matrix-Verwaltungseinrichtung 412 andererseits versucht, die Anforderung 25 für die Speichereinheit 8 auszuführen und, indem sie die Mailbox 500 liest, feststellt, dass die Anforderung 26 bereits abgearbeitet worden ist, kommt sie zu dem Schluss, dass die Anforderung 25 ebenfalls schon abgearbeitet worden ist und dass beide Anforderungen 25 und 26 von der Matrix-Verwaltungseinrichtung 414 bedient wurden. Die Matrix-Verwaltungseinrichtung 412 löscht dann beide Anforderungen 25 und 26 aus der Warteschlange 413 und durchsucht anschließend diese Warteschlange, um festzustellen, ob es in der Warteschlange 413 weitere Anforderungen für die Einheit 8 gibt. Wenn eine solche Anforderung gefunden wird, versucht sie, diese auszuführen. Wenn in der Speichereinheit 8 keine solche Anforderung gefunden wird, nimmt sie die Auswahl der Speichereinheit 8 zurück und durchsucht die Warteschlange 413 nach Anforderungen für andere Einheiten.
  • Auf der Grundlage der ausführlichen Beschreibung und der gegebenen Beispiele lässt sich daher ohne weiteres erkennen, dass die Bedienung einer Anforderung, die eine Vielzahl von Teilbefehlen (zwei, drei oder mehr Teilbefehle) hat, von einer Matrix-Verwaltungseinrichtung mit Hilfe der Informationen in ihrer eigenen jeweiligen Matrix-Taskwarteschlange eingeleitet werden kann und dass dieselbe Anforderung von einer anderen Matrix-Verwaltungseinrichtung weiter ausgeführt oder abgearbeitet werden kann. Es lässt sich ebenfalls ohne weiteres erkennen, dass mehrere Anforderungen, die in beiden Matrix-Taskwarteschlangen vorhanden sind, nur von einer der Matrix-Verwaltungseinrichtungen bedient werden können, falls die andere Matrix-Verwaltungseinrichtung nie Zeit haben sollte, an einem solchen Bedienungsvorgang teilzunehmen.
  • Wenn an jeder Speichereinheit ein Mailbox-Register verwendet wird, stellt dies jedoch eine einfache und wirkungsvolle Möglichkeit dar, jeder Matrix-Verwaltungseinrichtung in einer Matrixsteuereinheit den Status einer jeden Anforderung zur Verfügung zu stellen. Somit könnten Warteschlangen in jedem Steuereinheit-Pfad vollkommen unsynchron sein, ohne dass es Probleme mit der Datenintegrität oder die Möglichkeit gäbe, dass dieselbe Anforderung doppelt ausgeführt würde. Durch eine eindeutige Kennzeichnung der Anforderungen in Verbindung mit der Verwendung einer Mailbox an jeder Speichereinheit kann der Status einer jeden Anforderung (abgeschlossen, in Ausführung befindlich, in den Warteschlangen auf Ausführung wartend) zwischen den Matrix-Verwaltungseinrichtungen übermittelt werden, ohne dass eine getrennte Hochgeschwindigkeits-Kommunikationsverbindung oder ein komplexes Verriegelungsschema notwendig ist, um sicherzustellen, dass die Matrix-Taskwarteschlangen jederzeit synchron sind.
  • 8 zeigt eine alternative Ausführungsform der vorliegenden Erfindung. Das Datenverarbeitungssystem 800 umfasst einen Host 810, der mit der Speichersteuereinheit 820 kommuniziert, wobei die Speichersteuereinheit direkt mit den Speichereinheiten 840 kommuniziert. Im Gegensatz zu der in den 4 und 5 gezeigten bevorzugten Ausführungsform steuert die Speichersteuereinheit 820 in dieser Ausführungsform direkt den Zugriff auf die Einheiten 840. Der Host umfasst die Anwendungsprogramme 812, das Betriebssystem 814, die E/A-Überwachungseinrichtung 816 und eine Vielzahl von Übertragungskanälen 818.
  • Die Speichersteuereinheit 820 umfasst eine Vielzahl von E/A-Anschlüssen 822 zur Kommunikation mit dem Host 810, einen gemeinsam benutzten Cachespeicher 824 und zwei Speicher-Teilsteuereinheiten 831 und 832. Die Speicher-Teilsteuereinheit 831 umfasst eine Taskwarteschlange 826 und einen Steuereinheit-Pfad 829. Die Speicher-Teilsteuereinheit 832 umfasst eine Taskwarteschlange 828 und einen Steuereinheit-Pfad 830. Jeder Steuereinheit-Pfad umfasst zudem einen Prozessor und eine Speichereinheit. Die Speicher- Teilsteuereinheiten 831 und 832 kommunizieren mit den Speichereinheiten 840 über die Übertragungskanäle 846 und 847. Jede der Speichereinheiten 840 umfasst eine Mailbox, die die eindeutige ID und den Status der zuletzt von jeder der Speichereinheiten ausgeführten Anforderung speichert. Der Vorgang des Zugriffs auf die Einheiten, des Lesens der elektronischen Briefkästen und der Verwaltung der Taskwarteschlangen durch die Speicher-Teilsteuereinheiten ist ähnlich dem Vorgang bei der bevorzugten Ausführungsform der vorliegenden Erfindung. Man beachte, dass die Taskwarteschlangen 826 und 828 in dieser Ausführungsform vollkommen unsynchron sein könnten, ohne den Systembetrieb zu verlangsamen oder Probleme mit der Datenintegrität sowie doppelt ausgeführte Anforderungen zu verursachen.
  • 9 zeigt eine weitere alternative Ausführungsform der vorliegenden Erfindung, die ähnlich der in 8 gezeigten Ausführungsform ist. In dieser alternativen Ausführungsform umfasst das Datenverarbeitungssystem 900 eine Speichersteuereinheit 920, wobei die Speichersteuereinheit vier Speicher-Teilsteuereinheiten 930, 931, 932 und 933 umfasst. Jede Speicher-Teilsteuereinheit hat außerdem ihre eigene Taskwarteschlange. In dieser Ausführungsform gibt es daher vier Taskwarteschlangen in der Speichersteuereinheit, die vom Host 910 ausgegebene Anforderungen bedienen können. Bei Verwendung der hier offen gelegten Erfindung könnten die Taskwarteschlangen vollkommen unsynchron sein, ohne Probleme mit der Datenintegrität sowie doppelt ausgeführte Anforderungen auf der Einheitenebene zu verursachen oder komplizierte Verriegelungsschemata für die Warteschlangen erforderlich zu machen.
  • 10 zeigt eine weitere alternative Ausführungsform der vorliegenden Erfindung, bei der ein Host mit den Speichereinheiten über eine Vielzahl von Speichersteuereinheiten, die in einem Netzwerk miteinander verbunden sind, kommunizieren kann. In dieser alternativen Ausführungsform umfasst das Datenverarbeitungssystem 1000 einen Host 1010, eine Vielzahl von Speichersteuereinheiten 1020A, 1020B, ... und 1020N sowie die Speichereinheiten 1040. Jede Speichersteuereinheit umfasst einen Cachespeicher und kann auch eine oder mehrere Speicher-Teilsteuereinheiten umfassen, wobei jede Speicher-Teilsteuereinheit ihre eigene Taskwarteschlange hat. In dieser Ausführungsform wird daher eine Anforderung des Host 1010 an zwei oder mehrere Steuereinheiten zur Verarbeitung gesandt. Die eindeutige Task-ID der Anforderung wird vorzugsweise, aber nicht notwendigerweise, vom Host 1010 zur selben Zeit erzeugt, zu der die Anforderung erzeugt und an die Steuereinheiten gesendet wird. Wenn die Anforderung nicht anhand der bereits in den Cachespeichern abgelegten Informationen verarbeitet werden kann, wird sie in den Taskwarteschlangen gespeichert und verarbeitet, indem ähnlich wie bei der bevorzugten Ausführungsform der vorliegenden Erfindung auf die Speichereinheiten 1040 zugegriffen wird. Bei Verwendung der hier offen gelegten Erfindung könnten die Taskwarteschlangen in verschiedenen Steuereinheiten vollständig unsynchron sein, ohne Probleme mit der Datenintegrität sowie doppelt ausgeführte Anforderungen auf Einheitenebene zu verursachen oder komplizierte Verriegelungsschemata für die Warteschlangen erforderlich zu machen.
  • Mehrere Ausführungsformen der vorliegenden Erfindung wurden beschrieben. Dennoch versteht es sich, dass verschiedene Änderungen vorgenommen werden können, ohne vom Umfang der Erfindung abzuweichen. Beispielsweise kann die Anzahl der Taskwarteschlangen beliebig groß sein, ohne die hier offen gelegte Erfindung zu beschränken. Die Mailbox kann so erweitert werden, dass sie zusätzliche Informationen wie zum Beispiel den Verlauf der letzten n Anforderungen, die von einer beliebigen Einheit abgewickelt wurden, und die Angabe, welcher Pfad die Anforderungen ausgelöst oder abgearbeitet hat, festhält. Die Mailbox kann darüber hinaus Informationen wie zum Beispiel abgebrochene Anforderungen und die Angabe, ob der Zugriff auf die Einheiten auf einen bestimmten Pfad beschränkt ist, enthalten.

Claims (10)

  1. Datenverarbeitungssystem (300, 800, 1000), das Folgendes umfasst: eine Zentraleinheit (CPU) (310, 810, 1010); eine Steuereinheit (320, 820, 1010), die mit der CPU kommuniziert, wobei die Steuereinheit eine Warteschlange (326, 826) hat, wobei die Warteschlange von der CPU empfangene Anforderungen speichert, dadurch gekennzeichnet, dass jede der Anforderungen eine eindeutige Kennung hat; und wobei das Datenverarbeitungssystem (300, 800, 1000) des Weiteren Folgendes umfasst: eine Speichereinheit (340, 840, 1040), um eine Anforderung zu bedienen, die in einer beliebigen der Warteschlangen gespeichert ist, wobei die Speichereinheit über einen elektronischen Briefkasten (Mailbox) (500) verfügt, um den Status und die eindeutige Kennung der Anforderung, die bedient wird, zu speichern.
  2. Datenverarbeitungssystem (300, 800, 1000) nach Anspruch 1, das eine Vielzahl der Steuereinheiten (320, 820, 1020) umfasst, wobei jede Steuereinheit eine Warteschlange (326, 826) hat.
  3. Datenverarbeitungssystem (300, 800, 1000) nach Anspruch 1, das des weiteren Folgendes umfasst: ein Speicher-Teilsystem, das mit der CPU kommuniziert, wobei das Speicher-Teilsystem die Steuereinheit umfasst, wobei die Steuereinheit Warteschlangen hat, die von der CPU empfangene Anforderungen gleichzeitig speichern.
  4. Datenverarbeitungssystem (300, 800, 1000) nach Anspruch 1, bei dem die Speichersteuereinheit über eine Vielzahl von Speicher-Teilsteuereinheiten verfügt, wobei jede der Speicher-Teilsteuereinheiten eine Warteschlange enthält, wobei die Warteschlangen die von der CPU empfangenen Anforderungen gleichzeitig speichern.
  5. Datenverarbeitungssystem (300, 800, 1000) nach einem der Ansprüche 1 bis 4, wobei die Anforderung eine Vielzahl von Teilbefehlen umfasst.
  6. Datenverarbeitungssystem (300, 800, 1000) nach Anspruch 5, wobei die Mailbox (500) des Weiteren ein Statusfeld (520) umfasst, um den Status eines jeden Teilbefehls, der ausgeführt wird, zu speichern.
  7. Datenverarbeitungssystem (300, 800, 1000) nach Anspruch 6, wobei die Steuereinheit (320, 820, 1020) ein Mittel umfasst, um den Inhalt der Mailbox (500) zu lesen und um den Status der Anforderung, die bedient wird, in ihrer Warteschlange auf der Grundlage des Inhalts der Mailbox zu aktualisieren.
  8. Datenverarbeitungssystem (300, 800, 1000) nach Anspruch 7, wobei jede in den Warteschlangen gespeicherte Anforderung eine Vielzahl von Teilbefehlen umfasst.
  9. Datenverarbeitungssystem (300, 800, 1000) nach Anspruch 8, wobei die Mailbox (500) ein Statusfeld (520) umfasst, um den Status eines jeden Teilbefehls, der ausgeführt wird, zu speichern.
  10. Verfahren zur Verwendung in einem Datenverarbeitungssystem (300, 800, 1000), das einen Host (310, 810, 1010) und ein Speicher-Teilsystem (320, 820, 1020) umfasst, wobei das Speicher-Teilsystem eine Speichersteuereinheit und eine Speichereinheit (340, 840, 1040) enthält, um von dem Host empfangene Anforderungen zu verarbeiten, und wobei die Speichersteuereinheit eine Vielzahl von Warteschlangen (326, 826) enthält, wobei das Verfahren zur Aktualisierung des Status einer jeden der Warteschlangen die folgenden Schritte umfasst: Zuordnen einer eindeutigen Kennung zu jeder Anforderung, die gleichzeitig in den Warteschlangen gespeichert wird; Verwalten (118, 728, 753, 758, 772) einer Mailbox in der Speichereinheit, um den Status einer jeden Anforderung, die bedient wird, zu speichern; Lesen (712, 742) des Inhalts der Mailbox, um den Status der letzten Anforderung, die bedient wird, zu ermitteln; und Aktualisieren (706, 716, 720, 725, 729, 751, 754, 755, 759, 773) der Warteschlangen auf der Grundlage des Inhalts der Mailbox.
DE69724846T 1996-02-05 1997-01-23 Mehrweg-Ein/Ausgabespeichersysteme mit Mehrweg-Ein/Ausgabeanforderungsmechanismus Expired - Lifetime DE69724846T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US597092 1996-02-05
US08/597,092 US5787304A (en) 1996-02-05 1996-02-05 Multipath I/O storage systems with multipath I/O request mechanisms

Publications (2)

Publication Number Publication Date
DE69724846D1 DE69724846D1 (de) 2003-10-23
DE69724846T2 true DE69724846T2 (de) 2004-07-08

Family

ID=24390065

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69724846T Expired - Lifetime DE69724846T2 (de) 1996-02-05 1997-01-23 Mehrweg-Ein/Ausgabespeichersysteme mit Mehrweg-Ein/Ausgabeanforderungsmechanismus

Country Status (5)

Country Link
US (2) US5787304A (de)
EP (1) EP0788055B1 (de)
JP (2) JP3364572B2 (de)
KR (1) KR100194295B1 (de)
DE (1) DE69724846T2 (de)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6029242A (en) * 1995-08-16 2000-02-22 Sharp Electronics Corporation Data processing system using a shared register bank and a plurality of processors
US6108684A (en) * 1996-12-23 2000-08-22 Lsi Logic Corporation Methods and apparatus for balancing loads on a storage subsystem among a plurality of controllers
US6073218A (en) * 1996-12-23 2000-06-06 Lsi Logic Corp. Methods and apparatus for coordinating shared multiple raid controller access to common storage devices
US5933824A (en) * 1996-12-23 1999-08-03 Lsi Logic Corporation Methods and apparatus for locking files within a clustered storage environment
US5944838A (en) * 1997-03-31 1999-08-31 Lsi Logic Corporation Method for fast queue restart after redundant I/O path failover
US6055603A (en) * 1997-09-18 2000-04-25 Emc Corporation Method and apparatus for performing pre-request operations in a cached disk array storage system
US6230219B1 (en) * 1997-11-10 2001-05-08 International Business Machines Corporation High performance multichannel DMA controller for a PCI host bridge with a built-in cache
US6098114A (en) * 1997-11-14 2000-08-01 3Ware Disk array system for processing and tracking the completion of I/O requests
US6134630A (en) 1997-11-14 2000-10-17 3Ware High-performance bus architecture for disk array system
FI105757B (fi) * 1997-12-16 2000-09-29 Nokia Networks Oy Tapahtumien esikäsittely raportin muodostamiseksi
US6292856B1 (en) * 1999-01-29 2001-09-18 International Business Machines Corporation System and method for application influence of I/O service order post I/O request
JP3716126B2 (ja) * 1999-03-17 2005-11-16 株式会社日立製作所 ディスクアレイ制御装置及びディスクアレイ
WO2001063424A1 (fr) * 2000-02-24 2001-08-30 Fujitsu Limited Controleur d'entree/sortie, procede d'identification de dispositif, et procede de commande des entrees/sorties
US6801954B1 (en) * 2000-02-25 2004-10-05 Hewlett-Packard Development Company, L.P. Method and apparatus to concurrently operate on multiple data movement transactions in a disk array subsystem
EP1285318B1 (de) * 2000-04-17 2005-08-03 Shawn E. Wiederin Online-verzeichnis-unterstützungssystem
US6757767B1 (en) * 2000-05-31 2004-06-29 Advanced Digital Information Corporation Method for acceleration of storage devices by returning slightly early write status
JP4039794B2 (ja) * 2000-08-18 2008-01-30 富士通株式会社 マルチパス計算機システム
US7386610B1 (en) 2000-09-18 2008-06-10 Hewlett-Packard Development Company, L.P. Internet protocol data mirroring
US6977927B1 (en) 2000-09-18 2005-12-20 Hewlett-Packard Development Company, L.P. Method and system of allocating storage resources in a storage area network
US6804819B1 (en) 2000-09-18 2004-10-12 Hewlett-Packard Development Company, L.P. Method, system, and computer program product for a data propagation platform and applications of same
US7237011B1 (en) * 2000-11-01 2007-06-26 Sun Microsystems, Inc. System and method for a priority messaging protocol for a shared display device
US7401161B2 (en) * 2000-12-18 2008-07-15 Sun Microsystems, Inc. High performance storage array interconnection fabric using multiple independent paths
US7177912B1 (en) * 2000-12-22 2007-02-13 Datacore Software Corporation SCSI transport protocol via TCP/IP using existing network hardware and software
US7072976B2 (en) * 2001-01-04 2006-07-04 Sun Microsystems, Inc. Scalable routing scheme for a multi-path interconnection fabric
US7225242B2 (en) 2001-01-26 2007-05-29 Dell Products L.P. System and method for matching storage device queue depth to server command queue depth
US6606690B2 (en) 2001-02-20 2003-08-12 Hewlett-Packard Development Company, L.P. System and method for accessing a storage area network as network attached storage
US6883108B2 (en) * 2001-05-07 2005-04-19 Sun Microsystems, Inc. Fault-tolerant routing scheme for a multi-path interconnection fabric in a storage network
US7007189B2 (en) * 2001-05-07 2006-02-28 Sun Microsystems, Inc. Routing scheme using preferred paths in a multi-path interconnection fabric in a storage network
US7249193B1 (en) * 2001-08-28 2007-07-24 Emc Corporation SRDF assist
US7480909B2 (en) * 2002-02-25 2009-01-20 International Business Machines Corporation Method and apparatus for cooperative distributed task management in a storage subsystem with multiple controllers using cache locking
US7133972B2 (en) 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US7117316B2 (en) 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
US6820181B2 (en) 2002-08-29 2004-11-16 Micron Technology, Inc. Method and system for controlling memory accesses to memory modules having a memory hub architecture
US6901463B2 (en) * 2003-03-05 2005-05-31 Sun Microsystems, Inc. Method and device for linking work requests with completion queue entries
US7120727B2 (en) 2003-06-19 2006-10-10 Micron Technology, Inc. Reconfigurable memory module and method
US7107415B2 (en) 2003-06-20 2006-09-12 Micron Technology, Inc. Posted write buffers and methods of posting write requests in memory modules
US7260685B2 (en) 2003-06-20 2007-08-21 Micron Technology, Inc. Memory hub and access method having internal prefetch buffers
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7574482B2 (en) * 2003-10-31 2009-08-11 Agere Systems Inc. Internal memory controller providing configurable access of processor clients to memory instances
US7127545B1 (en) 2003-11-19 2006-10-24 Veritas Operating Corporation System and method for dynamically loadable storage device I/O policy modules
US7330992B2 (en) 2003-12-29 2008-02-12 Micron Technology, Inc. System and method for read synchronization of memory modules
US7191260B2 (en) * 2004-01-15 2007-03-13 International Business Machines Corporation Multiple connection management system
US7188219B2 (en) * 2004-01-30 2007-03-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
US7213082B2 (en) * 2004-03-29 2007-05-01 Micron Technology, Inc. Memory hub and method for providing memory sequencing hints
JP2005318073A (ja) * 2004-04-27 2005-11-10 Hitachi Ltd 通信装置、その動作プログラム、及び通信方法
US7162567B2 (en) 2004-05-14 2007-01-09 Micron Technology, Inc. Memory hub and method for memory sequencing
US7519788B2 (en) * 2004-06-04 2009-04-14 Micron Technology, Inc. System and method for an asynchronous data buffer having buffer write and read pointers
US8862813B2 (en) 2005-12-29 2014-10-14 Datacore Software Corporation Method, computer program product and appartus for accelerating responses to requests for transactions involving data operations
US7752386B1 (en) 2005-12-29 2010-07-06 Datacore Software Corporation Application performance acceleration
US7562163B2 (en) * 2006-08-18 2009-07-14 International Business Machines Corporation Apparatus and method to locate a storage device disposed in a data storage system
US20080208863A1 (en) * 2007-02-28 2008-08-28 Microsoft Corporation Compound Item Locking Technologies
US8156415B1 (en) * 2007-12-26 2012-04-10 Marvell International Ltd. Method and system for command queuing in disk drives
US8370717B1 (en) 2008-04-08 2013-02-05 Marvell International Ltd. Method and apparatus for flexible buffers in an XOR engine
JP2009266119A (ja) 2008-04-28 2009-11-12 Hitachi Ltd ストレージ装置及びデータ転送方法
JP2010009442A (ja) * 2008-06-30 2010-01-14 Fujitsu Ltd ディスクアレイシステム、ディスク制御装置及びその再構築処理方法
US20130073708A1 (en) * 2011-09-20 2013-03-21 Cloudbyte, Inc. Techniques for achieving unlimited parallel scalability, storage capacity, and/or storage performance in a multi-tenant storage cloud environment
CN107885594B (zh) * 2016-09-30 2020-06-12 腾讯科技(深圳)有限公司 分布式资源调度方法、调度节点及接入节点
US10496486B1 (en) 2018-06-29 2019-12-03 International Business Machines Corporation Protecting data integrity in a multiple path input/output environment
US11151063B2 (en) * 2019-04-19 2021-10-19 EMC IP Holding Company LLC Host system directly connected to internal switching fabric of storage system
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

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3500333A (en) * 1964-05-04 1970-03-10 Gen Electric Data processing unit for providing memory storage of communication status of external apparatus
US4187538A (en) * 1977-06-13 1980-02-05 Honeywell Inc. Read request selection system for redundant storage
US4707781A (en) * 1979-01-09 1987-11-17 Chopp Computer Corp. Shared memory computer method and apparatus
US4484262A (en) * 1979-01-09 1984-11-20 Sullivan Herbert W Shared memory computer method and apparatus
US4577272A (en) * 1983-06-27 1986-03-18 E-Systems, Inc. Fault tolerant and load sharing processing system
US4920538A (en) * 1985-06-28 1990-04-24 International Business Machines Corporation Method of checking the execution of microcode sequences
US5335324A (en) * 1985-08-30 1994-08-02 Hitachi, Ltd. Distributed processing system and method for job execution using a plurality of processors and including identification of replicated data
US5072368A (en) * 1985-10-31 1991-12-10 International Business Machines Corporation Immediate duplication of I/O requests on a record by record basis by a computer operating system
US5230048A (en) * 1986-09-03 1993-07-20 Wang Laboratories, Inc. Data processing system with tree and list data structure
US4888691A (en) * 1988-03-09 1989-12-19 Prime Computer, Inc. Method for disk I/O transfer
JPH01303543A (ja) * 1988-05-31 1989-12-07 Fujitsu Ltd メモリアクセス制御装置
US5038275A (en) * 1988-10-07 1991-08-06 Advanced Micro Devices, Inc. Status transfer structure within a data processing system with status read indication
EP0375909B1 (de) * 1988-12-30 1995-08-30 International Business Machines Corporation Vielfacher Ein-/Ausgabe-Kanal
US5339449A (en) * 1989-06-30 1994-08-16 Digital Equipment Corporation System and method for reducing storage channels in disk systems
US5325536A (en) * 1989-12-07 1994-06-28 Motorola, Inc. Linking microprocessor interrupts arranged by processing requirements into separate queues into one interrupt processing routine for execution as one routine
US5325510A (en) * 1990-05-25 1994-06-28 Texas Instruments Incorporated Multiprocessor system and architecture with a computation system for minimizing duplicate read requests
US5201053A (en) * 1990-08-31 1993-04-06 International Business Machines Corporation Dynamic polling of devices for nonsynchronous channel connection
US5226150A (en) * 1990-10-01 1993-07-06 Digital Equipment Corporation Apparatus for suppressing an error report from an address for which an error has already been reported
JP3516344B2 (ja) * 1990-10-22 2004-04-05 株式会社日立製作所 分散処理システムの多重データ処理方法
US5333301A (en) * 1990-12-14 1994-07-26 International Business Machines Corporation Data transfer bus system and method serving multiple parallel asynchronous units
US5276861A (en) * 1991-03-18 1994-01-04 Bull Hn Information Systems Inc. Guaranteed message delivery from a data handling computer to management computer by monitoring the management computer with the data handling computer and other management computer
US5530740A (en) * 1991-10-28 1996-06-25 Contigram Communications Corporation System and method for integrating voice, facsimile and electronic mail data through a personal computer
US5640596A (en) * 1992-03-10 1997-06-17 Hitachi, Ltd. Input output control system for transferring control programs collectively as one transfer unit designated by plurality of input output requests to be executed
US5455934A (en) * 1993-03-23 1995-10-03 Eclipse Technologies, Inc. Fault tolerant hard disk array controller
US5574863A (en) * 1994-10-25 1996-11-12 Hewlett-Packard Company System for using mirrored memory as a robust communication path between dual disk storage controllers

Also Published As

Publication number Publication date
KR970062924A (ko) 1997-09-12
JP2003015825A (ja) 2003-01-17
EP0788055B1 (de) 2003-09-17
DE69724846D1 (de) 2003-10-23
JP3364572B2 (ja) 2003-01-08
EP0788055A3 (de) 2002-06-05
US6157962A (en) 2000-12-05
EP0788055A2 (de) 1997-08-06
KR100194295B1 (ko) 1999-06-15
JPH09222956A (ja) 1997-08-26
US5787304A (en) 1998-07-28
JP3694273B2 (ja) 2005-09-14

Similar Documents

Publication Publication Date Title
DE69724846T2 (de) Mehrweg-Ein/Ausgabespeichersysteme mit Mehrweg-Ein/Ausgabeanforderungsmechanismus
DE69410671T2 (de) Datensicherung in einer Datenverarbeitungsanlage
DE69632424T2 (de) Server für kontinuierliche Daten und Datentransferschema für mehrfache gleichzeitige Datenzugriffe
DE69615611T2 (de) Externes Speichersystem mit redundanten Speichersteuerungen
DE69608641T2 (de) Ausfallbeseitigung für Steuergerät für eine Ein-/Ausgabevorrichtung
DE2856483C2 (de)
DE69327679T2 (de) Nachrichtenübertragung zwischen Prozessoren und einer Koppeleinrichtung
DE69730449T2 (de) Erzeugung einer spiegeldatenkopie (bild) unter verwendung von referenzetiketten
DE69831944T2 (de) Vorrichtung und verfahren zur sicherung eines plattenspeichersystem
DE69506155T2 (de) Asynchrones Datenfernkopieren
DE3851928T2 (de) Steuerung von asynchron arbeitenden Peripheriegeräten.
DE69415855T2 (de) Einrichtung und Verfahren zum Speichern dauerhafter und nicht dauerhafter Warteschlangendaten
DE69311952T2 (de) Verfahren und System zur inkrementalen Datensicherung
DE69636663T2 (de) System und Verfahren zur Zugriffsverteilung von Mehrfachspeichermatrixen zwischen Mehrfachwirtrechnersystemen
DE69127433T2 (de) Eingang-ausgangsteuerungseinrichtung
DE69131728T2 (de) Speicherungssystem für binäre rechner mit hoher geschwindigkeit, hoher kapazität, fehlertoleranz und fehlerkorrektur
DE112011100112B4 (de) Pufferspeicher-platte in blitzkopie-kaskade
DE69631106T2 (de) On-line-Rekonfiguration einer Speicherplattenanordnung
DE60001460T2 (de) Datenfernkopieren unter verwendung von potentiellen aufhebungsbefehlen
DE10297430T5 (de) Datenspiegelung unter Anwendung von shared Bussen
DE602005004508T2 (de) Speichersystem und Speichersteuerverfahren
DE69330924T2 (de) Plattennetzwerk programmierbares Steuerungsgerät
DE102005006176A1 (de) Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden
DE2912738A1 (de) System mit direkter uebertragung zwischen subsystemen
DE10297284T5 (de) Modulare Architektur für einen Netzwerk-Speicher Controller

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7