DE69331449T2 - Hochleistungskanäle für Datenverarbeitungssysteme - Google Patents

Hochleistungskanäle für Datenverarbeitungssysteme

Info

Publication number
DE69331449T2
DE69331449T2 DE69331449T DE69331449T DE69331449T2 DE 69331449 T2 DE69331449 T2 DE 69331449T2 DE 69331449 T DE69331449 T DE 69331449T DE 69331449 T DE69331449 T DE 69331449T DE 69331449 T2 DE69331449 T2 DE 69331449T2
Authority
DE
Germany
Prior art keywords
buffer
message
producer
request
data
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
DE69331449T
Other languages
English (en)
Other versions
DE69331449D1 (de
Inventor
Niel George Bartow
Paul Joseph Brown
Robert Stanley Capowski
Thomas Anthony Cregg
Louis Thomas Fasano
Gregory Salyer
Douglas Wayne Westcott
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
Application granted granted Critical
Publication of DE69331449D1 publication Critical patent/DE69331449D1/de
Publication of DE69331449T2 publication Critical patent/DE69331449T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/122Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)
  • Multi Processors (AREA)

Description

  • Die vorliegende Erfindung befasst sich mit Kanälen für den Austausch von Nachrichten zwischen Zentralen Verarbeitungseinheiten (Central Processing Complexes = CPC) und Nachrichtenprozessoren, einschließlich Eingabe-/Ausgabe- Geräten und weiteren Central Processing Complexes und im Besonderen mit Hochleistungspuffern, die Kommunikation mit niedriger Latenz zwischen den Elementen von Datenverarbeitungssystemen mit sehr hoher Geschwindigkeit ermöglichen. Die vorliegende Erfindung ermöglicht Peer-to- Peer-Kommunikation zwischen Central Processing Complexes und implementiert eine Prozedur zur Fehlerbehebung für einzelne Operationen in einer Umgebung mit mehreren Operationen.
  • In einem konventionellen Datenverarbeitungssystem ist ein Central Processing Complex (CPC) über einen Kanalpfad mit einer Steuereinheit verbunden, mit der ein oder mehrere Direct Acces Storage Devices (DASDs), beispielsweise Plattenlaufwerke, verbunden sind. Die Steuereinheit umfasst einen Puffer zum temporären Speichern von Daten, welche vom Central Processing Complex versendet werden, um auf einem oder mehreren der DASDs geschrieben zu werden. Der Central Processing Complex und die Steuereinheit stehen in einer Master-/Slave-Beziehung zueinander. Das Senden von Daten zwischen dem Kanal des Central Processing Complex und der Steuereinheit erfordert eine Anzahl von Handshake-Nachrichten, die zwischen den beiden Elementen ausgetauscht werden, bevor mit der Übertragung der Daten begonnen werden kann. Die Zeit, die diese Handshake-Prozedur in Anspruch nimmt, verringert die Leistung des Datentransfers beträchtlich.
  • Eine Vielzahl an Techniken wurde eingesetzt, um eine leichte Verbesserung der Leistung zu erzielen. Eine dieser Techniken umfasst eine Operation "Spiegelschreiben", wobei die durch den Central Processing Complex übertragenen Daten in der Steuereinheit gepuffert, jedoch vorerst nicht in das DASD geschrieben werden. Nichtsdestotrotz wird dem Central Processing Complex durch die Steuereinheit mitgeteilt, dass die Schreiboperation stattgefunden hat, wodurch Zeit gespart wird, die normalerweise von den elektromechanischen Schreiboperationen in Anspruch genommen wird.
  • Multiprozessor (MP)-Systeme wurden zur Verbesserung des Durchsatzes entwickelt, um jene Operationen parallel auszuführen, die gleichzeitig auf separaten Prozessoren ausgeführt werden können. Bei einer solch hohen Leistung sind MP-Datenverarbeitungssysteme durch eine Vielzahl von Central Processor Units (CPUs) gekennzeichnet, die unabhängig voneinander und parallel arbeiten, jedoch gelegentlich miteinander oder mit einem Hauptspeicher (Main Storage = MS) kommunizieren, wenn Daten ausgetauscht werden müssen. Bei dem Typ von MP System, der als eng verknüpftes Multiprozessorsystem bekannt ist, bei dem jeder CPU über einen eigenen Cachespeicher verfügt, bestehen Probleme mit der Kohärenz auf den verschiedenen Ebenen des Systems. Eine Anzahl an Lösungen für dieses Problem ist den Fachleuten bekannt. Ein Ansatz umfasst eine Cross Interrogate (XI)-Technik, um sicherzustellen, dass alle CPUs nur auf die aktuellsten Daten zugreifen.
  • Kürzlich wurden massive elektronische Speichergeräte entwickelt, die die langsameren, elektromechanischen DASDs ersetzen, welche noch in älteren Systemen Anwendung gefunden hatten. Diese elektronischen Speichergeräte bieten zwar eine erhebliche Beschleunigung bei den MP-Systemen, jedoch keine Lösung der Probleme mit den Handshaking-Protokollen früherer Systeme. Dazu kommt der Cross-Interrogate (XI)-Prozess, der generell beim Speichermanagement in einem eng verknüpften MP System eingesetzt wird.
  • Es sind ebenfalls Datenverarbeitungssysteme bekannt, in denen eine Vielzahl an Central Processing Complexes (CPCs) über eine Kommunikationsverbindung verknüpft sind. Die CPCs arbeiten unabhängig voneinander, müssen jedoch miteinander kommunizieren können, wenn Daten übertragen und/oder verarbeitet werden müssen. Bei den CPCs kann es sich um große Main Frame-Computer handeln, die über einen Nachrichtenprozessor kommunizieren, oder es kann sich um eine Vielzahl an einzelnen Workstations handeln, die über ein Local Area Network (LAN) oder ein Wide Area Network (WAN), die normalerweise über einen Server verfügen, kommunizieren. In beiden Fällen wird die Kommunikation typischerweise in einer Master-/Slave-Beziehung verwaltet, auch zwischen großen Main Frame-Computern. Die-Master-/Slave-Bezeichnung ändert sich je nach Datenfluss, doch der für E/A-Geräte beschriebene Typ von Handshaking-Protokoll führt typischerweise zu Verzögerungen in der Datenübertragung.
  • EP 0029331A zeigt einen Kommunikationskanal zum Austausch von Nachrichten zwischen Sender- und Empfänger-Subsystemen über Sender- und Empfängerpuffer, verbunden durch einen Übertragungspfad.
  • Hochgeschwindigkeits-Datenverarbeitungssysteme und -elemente werden entwickelt, wobei der Kommunikationsprozess dabei in vielen Fällen den begrenzenden Faktor beim Datendurchsatz darstellt. Die Übertragungskapazitäten der Medien, vor allem Kupfer, waren der begrenzende Faktor bei der Leistung der Kommunikation. Neue Medien, etwa Glasfaserkabel, verfügen über erheblich höhere Übertragungskapazitäten als sie mit früheren Medien gegeben waren. Es besteht ein großer Bedarf an einer gesamten Leistungssteigerung bei Datenübertragungen und Datendurchsatz in Hochleistungs-Datenverarbeitungssystemen.
  • Es ist daher Ziel der vorliegenden Erfindung, einen verbesserten Kanal für Hochleistungs-Datenverarbeitungssysteme zu bieten.
  • Entsprechend der vorliegenden Erfindung wird ein Kommunikationskanal zum Austausch von Nachrichten zwischen Elementen eines Datenverarbeitungssystems geboten, wobei der genannte Kommunikationskanal in einem ersten Element einen Erzeugerpuffer, in einem zweiten Element einen Empfängerpuffer und einen Übertragungspfad zur Verbindung des genannten Erzeugerpuffers und des genannten Empfängerpuffers umfasst, dadurch gekennzeichnet, dass der genannte Erzeugerpuffer und der genannte Empfängerpuffer beide aus drei logischen Bereichen bestehen, genannt Anforderungsbereich, Antwortbereich und Datenbereich, wobei das erste Element so angelegt ist, dass es sowohl den Erzeugerpuffer als auch den Empfängerpuffer steuert, um eine Anforderungsnachricht vom Anforderungsbereich des genannten Erzeugerpuffers zum Anforderungsbereich des genannten Empfängerpuffers zu übertragen und optional Nachrichtendaten vom Datenbereich des genannten Erzeugerpuffers zum Datenbereich des genannten verbundenen Empfängerpuffers zu übertragen; und wobei das zweite Element so angelegt ist, dass es mit der Übertragung einer Antwortnachricht vom Antwortbereich des genannten Empfängerpuffers zum Antwortbereich des genannten Erzeugerpuffers reagiert und optional Nachrichtendaten von dem Datenbereich des Empfängerpuffers zum Datenbereich des Erzeugerpuffers überträgt.
  • Die Erfindung umfasst weiterhin ein Datenverarbeitungssystem mit mindestens einem ersten und zweiten Element, die durch eine Vielzahl solcher Kommunikationskanäle miteinander verbunden sind. Jeder der genannten Hochleistungskanäle unterstützt eine oder mehrere Nachrichten und umfasst einen ersten und einen zweiten Übertragungspfad. Es wird nur eine einzelne Anforderungsnachricht über den genannten Übertragungspfad übertragen und es wird nur eine einzelne Antwortnachricht über den genannten zweiten Übertragungspfad übertragen.
  • Eine Nachrichtenoperation umfasst den Austausch von bis zu vier Informationsteilen. Ein Anforderungsteil wird immer vom Erzeuger der Nachricht zum Empfänger weitergeleitet. Ein Antwortteil wird immer vom Empfänger zum Erzeuger weitergeleitet. Optionale Datenteile können vom Erzeuger zum Empfänger oder vom Empfänger zum Erzeuger weitergeleitet werden. Beide, einer oder keiner der Datenteile können Teil einer gegebenen Nachricht sein.
  • Die Kanäle des Erzeugers und des Empfängers sind physisch durch eine Verbindung verbunden. Es wird davon ausgegangen, dass durch die Verbindungsmedien, ob nun Kupfer, Glasfaserkabel oder ähnliches, Verluste entstehen können. Der Verlust eines Teils der Nachricht führt zu einer fehlerhaften Nachricht. Der Korrekturvorgang für einen Fehler besteht im Abbrechen der Nachricht, so dass eine andere Nachricht auf einem anderen Kanal gesendet werden kann, und keine Konkurrenz zwischen der fehlgeschlagenen Nachricht und der zweiten Nachricht entsteht.
  • Daraus ergibt sich, dass eine Operation abgebrochen werden muss, beispielsweise, wenn der Erzeuger keine Bestätigung über die Ausführung der Funktion erhalten hat. In einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung, wenn eine Anforderung von einem Erzeuger gesendet wurde, wird vom Sender ein Nachrichten-Timer gestartet. Wenn die normale Antwort auf die Anforderung empfangen wurde, wird der Timer zurückgesetzt. Ein Nachrichten-Timeout kann eine Vielzahl an ausgetauschten Nachrichten umfassen. Ein Beispiel sind Cross-Interrogate (XI)-Nachrichten, die generiert werden als Ergebnis der Ausführung eines Schreibbefehls an einen Nachrichtenprozessor, bei dem es sich um eine verteilte Speicherstruktur handelt. Die Cross-Interrogates werden an die Benutzer der verteilten Speicherstruktur gesendet.
  • Wenn der Nachrichten-Timer ein Timeout erkennt, entweder aufgrund einer nicht erhaltenen Antwort oder einer verspäteten Antwort, wird eine Prozedur zur Fehlerbehebung gestartet. Diese Prozedur zur Fehlerbehebung umfasst das Abbrechen der ursprünglichen Operation, etwa das Löschen des Puffers beim Empfänger und das Sicherstellen beim Erzeuger, dass dieser eine erneute Anforderung ausgeben kann, ohne dass diese von einer früheren Anforderung Operation abbrechen gelöscht wird.
  • Wenn eine Operation abgebrochen werden muss, wird ein Befehl Operation abbrechen ausgegeben. Wenn jedoch der Befehl Operation abbrechen keine Antwort erhält, sollten so lange weitere Befehle Operation abbrechen ausgegeben werden können, bis die Operation tatsächlich abgebrochen wurde. Es besteht ein Problem bei der Bestimmung, auf welchen Befehl Operation abbrechen der Empfänger antworten soll, das heisst, antwortet der Empfänger auf den ersten, den letzten oder einen Befehl zwischen mehreren Befehlen Operation abbrechen, die bereits ausgegeben wurden.
  • Wenn zusätzliche Befehle Operation abbrechen als Reaktion auf einen Fehlschlag des ersten oder nachfolgender Befehle Operation abbrechen gesendet werden, wird ein zweiter Befehl erforderlich, der sich vom Befehl Operation abbrechen unterscheidet und auf den reagiert wird, bevor die Operation als abgebrochen gekennzeichnet wird. Da die Befehle in der Reihenfolge ausgeführt werden müssen, in der sie empfangen werden, stellt eine Antwort auf den zweiten Befehl sicher, dass sich keine weiteren Befehle Operation abbrechen im Empfänger befinden, so dass nachfolgende Operationen gestartet werden können, ohne Gefahr zu laufen, ungewollt gelöscht zu werden.
  • Für ein besseres Verständnis der vorliegenden Erfindung wird im Folgenden ein bevorzugtes Ausführungsbeispiel, unter Bezugnahme auf die dazugehörigen Zeichnungen beschrieben, wobei:
  • Fig. 1 ein Blockdiagramm eines konventionellen E/A-Systems für einen Central Processing Complex zeigt;
  • Fig. 2 ein Flussdiagramm mit einem typischen Handshaking- Protokoll für das in Fig. 1 gezeigte E/A-System zeigt;
  • Fig. 3 ein Blockdiagramm eines Hochleistungskanals entsprechend der vorliegenden Erfindung zeigt;
  • Fig. 4 ein Flussdiagramm mit dem Kommunikationsprotokoll innerhalb des Hochleistungskanals aus Fig. 3 zeigt;
  • Fig. 5 ein Blockdiagramm der Nachrichtenpuffer des Hochleistungskanals für einen Nachrichtenerzeuger und einen Nachrichtenempfänger zeigt, wie sie in der Ausführung der vorliegenden Erfindung verwendet werden;
  • Fig. 6 ein Blockdiagramm mit Hochleistungskanälen mit mehreren Nachrichtenpuffern für Peer-to-Peer-Operationen zeigt;
  • Fig. 7 ein Blockdiagramm mit einer Hochleistungsverbindung zwischen einer Nachrichteneinrichtung und einem Nachrichtenprozessor entsprechend der vorliegenden Erfindung zeigt;
  • Fig. 8 ein Blockdiagramm mit den Rahmenstrukturen entsprechend dem nach einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung implementierten Hochleistungsverbindungs-Protokoll zeigt;
  • Fig. 9 ein Blockdiagramm mit konventionellen Rahmenstrukturen zeigt, wie sie in Nachrichtenprotokollen nach Stand der Technik verwendet werden;
  • Fig. 10 ein Blockdiagramm mit einem Netzwerk aus Central Processing Complexes (CPCs) zeigt, die über Hochleistungskanäle entsprechend der vorliegenden Erfindung mit einem Nachrichtenprozessor verbunden sind;
  • Fig. 11 ein Timing-Diagramm mit einer Timeout-Prozedur für eine verloren gegangene Nachrichtenantwort zeigt;
  • Fig. 12 ein Timing-Diagramm mit einer Timeout-Prozedur für eine verloren gegangene Nachrichtenantwort und keine Antwort auf eine Anforderung Operation abbrechen zeigt;
  • Fig. 13 ein Timing-Diagramm mit einer Timeout-Prozedur für eine verloren gegangene Nachrichtenantwort und eine verloren gegangene erste Anforderung Operation abbrechen zeigt;
  • Fig. 14 ein Timing-Diagramm mit einer Übersicht über die Timeout-Prozedur für eine verloren gegangene Nachrichtenantwort und eine verzögerte Ausführung von Anforderungen Operation abbrechen zeigt.
  • Fig. 1 zeigt ein Blockdiagramm eines typischen E/A-Systems 10 für einen Central Processing Complex (CPC) 12. Der CPC 12 umfasst typischerweise einen CPU (nicht gezeigt) sowie verschiedene unterstützende Puffer, Register und ähnliches, wovon keiner hier gezeigt wird, da die Struktur den Fachleuten bekannt sind. Der CPC 12 umfasst einen oder mehrere Kanalpfade 14, wovon hier aus Gründen der besseren Übersichtlichkeit nur einer gezeigt wird. Der Kanalpfad 14 verfügt über einen verbundenen Nachrichtenpuffer 16 und ist über ein Kabel 18 mit einer Steuereinheit 20 verbunden. Bei dem Kabel 18 kann es sich um ein geeignetes Medium, etwa um Kupferkabel, handeln.
  • Die Steuereinheit 20 umfasst einen Puffer 22 sowie einen Mikroprozessor (nicht gezeigt), der den Puffer 22 und die Kommunikation mit einem oder mehreren DASDs 24 und 26 steuert. Die DASDs 24 und 26 sind typischerweise Plattenlaufwerke mit rotierenden magnetischen Medien, auf denen Daten mit elektromagnetisch indizierten Lese/Schreibköpfen geschrieben sind.
  • Die Beziehung zwischen dem CPC 12 und der Steuereinheit 20 ist die einer Master-/Slave-Beziehung. Das heisst, dass Befehle vom CPC 12 an die Steuereinheit 20 ausgegeben werden, die dann diese Befehle ausführt. Der CPC 12 beispielsweise möchte nach der Verarbeitung der Daten die Ergebnisse der Berechnungen in einen der mit der Steuereinheit 20 verbundenen DASDs schreiben. Dies erfolgt entsprechend dem Protokoll, das im Flussdiagramm von Fig. 2 gezeigt wird. Zuerst gibt der CPC 12 eine Verbindungsanforderung aus, indem die Anforderung in den Puffer 16 geladen und anschließend über das Kabel 18 an den Puffer 22 geleitet wird. Da die Steuereinheit 20 den Puffer 22 steuert, muss sie zunächst den CPC 12 darüber benachrichtigen, dass der Puffer 22 zum Empfang von Daten bereit ist und darüber, wieviel Bytes gesendet werden können, bevor der CPC auf eine Bestätigung warten muss, um zusätzliche Daten (ein Dosierungswert) zu senden. Die geschieht durch Ausgabe einer Nachricht Verbindungsbestätigung zurück an den CPC 12.
  • Nachdem die Verbindung zwischen dem CPC 12 und der Steuereinheit 20 zustande gekommen ist, gibt der CPC 12 eine Anforderungsnachricht aus, die in diesem Beispiel besagt, Daten in einen der DASDs zu schreiben. Die Anforderungsnachricht ist ein Befehl, auf den die Steuereinheit 20 reagiert, indem sie sich auf das Schreiben von Daten in einen der DASDs vorbereitet. Der Anforderungsnachricht folgen ein oder mehrere Datenrahmen, die regelmäßig im Puffer 22 gespeichert werden. Jeder Datenrahmen wird von der Steuereinheit 20 bestätigt. Bestätigungen müssen für den CPC 12 empfangen werden, um zusätzliche Datenrahmen senden zu können, die den Dosierungswert überschreiten, der von der Verbindungsbestätigung angegeben wurde. In dem Protokoll, wie in Fig. 2 dargestellt, werden keine solchen separaten Bestätigungsmeldungen von der Steuereinheit 20 an den CPC 12 versendet. Es wird statt dessen davon ausgegangen, dass zum Zwecke der Darstellung die ursprüngliche Anforderungsnachricht, übertragen durch den CPC 12 an die Steuereinheit 20, ein Feld umfasst, das die Anzahl der zu übertragenden Bytes angibt.
  • Wenn der Anforderungsrahmen sowie die Datenrahmen durch die Steuereinheit 20 empfangen und erkannt wurden, werden Bestätigungen für die empfangenen und erkannten Rahmen gesendet. Die Steuereinheit 20 überträgt zunächst eine Nachricht Anforderungsbestätigung (ACK) und dann eine Nachricht Datenbestätigung an den CPC 12, wenn (1) es sich bei der Anforderungsnachricht um eine für die Steuereinheit 20 verständliche Nachricht handelte und (2) der Datenrahmen korrekt empfangen wurde. Letzterer wird typischerweise durch Cyclic Redundancy Codes (CRCs) ermittelt, die mit den Daten als Teil des Rahmens übertragen werden. Die Nachricht ACK für die Datenrahmen kann als eine separate Nachricht ACK für jeden empfangenen Datenrahmen oder als Bestätigung ACK für mehrere Datenrahmen gesendet werden, wie in Fig. 2 gezeigt.
  • Wie beschrieben kann der Prozess erweitert werden, indem eine Funktion "Schattenschreiben" in der Steuereinheit 20 eingesetzt wird, bei der Daten temporär gespeichert werden, bevor sie tatsächlich in die DASDs geschrieben werden, jedoch eine Nachricht an den CPC 12 gesendet wird, dass die Schreiboperation stattgefunden hat. Die Antwort signalisiert dem CPC 12, dass der Befehl (beispielsweise Daten schreiben) in der ursprünglichen Anforderungsnachricht erfolgreich ausgeführt wurde. Der CPC 12 gibt dann eine Antwortbestätigung ACK an die Steuereinheit 20 aus, und beendet damit die Verbindung. Wenn die Funktion Schattenschreiben implementiert wurde, wird erst nach diesem Zeitpunkt mit der tatsächlichen Operation Daten schreiben in DASD begonnen.
  • Das in Fig. 2 dargestellte Protokoll umfasst mehrere Funktionen, die den Durchsatz der Datenverarbeitungssysteme gegenüber dem konventionellen System aus Fig. 1 verbessern. Das in Fig. 2 gezeigte Protokoll beispielsweise konnte durch Ausschalten des Bedarfs an mehreren Nachrichtenbestätigungen ACK die Verzögerungen durch Handshaking-Vorgänge verringern, wie sie in älteren Systemen üblich waren. Weil darüber hinaus die Schreibzeiten in die elektromechanischen DASDs in Millisekunden berechnet wurden, während die Verzögerungen der Kommunikationszeiten über das Kupferkabel in Mikrosekunden berechnet werden, konnte eine beträchtliche Verzögerung bei der Operation zum Daten schreiben durch die Funktion "Schattenschreiben" ausgeschaltet werden.
  • Jüngste Entwicklungen im System- und Elementdesign haben diese ersten Ansätze jedoch schon überflüssig gemacht. Zunächst wurden die langsameren elektromechanischen DASDs ersetzt durch elektronische Speicherelemente, die einen großen Umfang (Hunderte von MB) an Hochgeschwindigkeits-Datenspeicher bieten. Zweitens werden Mikroprozessoren (das heisst Datenverarbeitungsgeräte) stetig verbessert, so dass sie höhere Geschwindigkeit und Durchsatz bieten können. Drittens werden Systeme mit Glasfaserkabeln immer häufiger in Datenverarbeitungssystemen eingesetzt. Übertragungszeiten bei Glasfaserkabeln werden in Gigabits pro Sekunde anstatt Zehntel Megabits pro Sekunde gemessen. Die Geschwindigkeit der Übertragungsmedien bleibt bei allen Medien relativ konstant, ungefähr 0,75 mal so schnell wie die Lichtgeschwindigkeit. In Anlehnung an diese jüngsten Entwicklungen besteht die Tendenz, komplexere Datenverarbeitungssysteme zu implementieren, deren Elemente sich geografisch gesehen weiter verteilen. Somit weisen selbst Hochgeschwindigkeitsmedien wie Glasfaserkabel verringerte Übertragungsgeschwindigkeiten auf, da die Entfernungen, über die Übertragungen stattfinden, immer noch zu großen Zeitverzögerungen im Verhältnis zur Arbeitsgeschwindigkeit der elektronischen Komponenten führen.
  • Ziel der Erfindung ist eine Lösung dieses Problems durch Implementieren eines neuen Systems mit Kommunikation mit niedriger Latenz, das die Master-/Slave-Beziehung vollständig ausschliesst, wie sie derzeit nach Stand der Technik eingesetzt wird. Ein zusätzlicher Vorteil ist es, dass das System der vorliegenden Erfindung echte Peer-to-Peer- Kommunikation zwischen Elementen in einem Datenverarbeitungssystem bietet, unabhängig davon, ob es sich bei diesen Elementen um einen CPC 12 und eine E/A-Einheit oder mehrere CPCs 12 oder eine Kombination aus beidem handelt.
  • Fig. 3 zeigt ein Blockdiagramm der grundlegenden Architektur der Erfindung, die zum besseren Vergleich dem E/A-System in Fig. 1 ähnelt. Dieses E/A-System 30, wie jenes in Fig. 1, verwendet einen CPC 32 mit einem Kanalpfad 34 und einem verbundenen Nachrichtenpuffer 36, verbunden mit einem Übertragungsmedium 38, beispielsweise einem Glasfaserkabel. Jedoch verfügt das E/A-System 30 in Fig. 3, anders als das E/A-System in Fig. 1, über ein elektronisches Element 40, das einen Puffer 42 umfasst. Um nochmals die Analogie zu Fig. 1 herzustellen, das elektronische Element 40 umfasst einen elektronischen Speicher 44, der die elektromechanischen DASDs nach Stand der Technik ersetzt.
  • Die offensichtliche Verbesserungen in der Geschwindigkeit, die sich durch den Einsatz von Glasfaserkabeln und einen elektronischen Speicher ergeben, werden nur teilweise realisiert, wenn die Master-/Slave-Beziehung und das Protokoll nach Stand der Technik im System von Fig. 3 zum Einsatz kommen. Wie in der folgenden Beschreibung näher erläutert werden wird, wird der Puffer 42 in dem elektronischen Element 40 dem CPC 32 zugeordnet. Dieser Puffer ist in drei Teile geteilt, einen Anforderungs- oder Befehlsteil, einen Datenteil und einen Antwortteil, die entsprechend mit "C" (Command), "D" (Data) und "R" (Response) bezeichnet werden. Eine Anforderungsnachricht (das heisst ein Befehl), gefolgt von Daten, wird in den Puffer 36 geladen und in dieser Reihenfolge an den Puffer 42 übertragen. Der Befehl wird in den "C" Teil des Puffers 42 geladen und umgehend entschlüsselt. Die entschlüsselte Operation (beispielsweise Daten schreiben) erwartet dann den Empfang der Daten im "D" Teil des Puffers 42, und sobald alle Daten empfangen wurden, wird der Befehl ausgeführt durch, wie in dem Beispiel beschrieben, Schreiben der Daten in den elektronischen Speicher 44. Sobald der Befehl ausgeführt wurde, überträgt das elektronische Element 40 eine Antwort an den CPC 32, die im "R" Teil des Puffers 36 empfangen wird.
  • Das neue Protokoll entsprechend der vorliegenden Erfindung wird im Flussdiagramm von Fig. 4 dargestellt. Da der Puffer 42 dem CPC 32 zugeordnet wird, besteht kein Bedarf für die Verbindungsanforderung und die Verbindungsbestätigung, wie es für das in Fig. 2 dargestellte Protokoll erforderlich war. Eine Schreiboperation für das in Fig. 4 gezeigte Protokoll wäre (1) die Anforderung und die Daten wurden umgehend durch den CPC 12 über das Glasfaserkabel 38 an den Puffer 42 übertragen und sobald der Befehl ausgeführt wurde, (2) stellt das elektronische Element 40 eine Antwort an den CPC 32 bereit. Somit ist nur eine Übertragung zur Übertragung einer Nachricht (Anforderung und Daten) erforderlich, und die zweite Übertragung bestätigt die Ausführung der Funktion. Auf ähnliche Weise folgt eine Leseoperation dem gleichen Protokoll, nur dass die Daten hier vom elektronischen Element 40 an den CPC 32 gesendet werden. Ebenfalls entstehen bei einer Operation, die Berechnungen durchführt und Daten ausgibt, Daten, die vom CPC 32 zum elektronischen Element gehen, und von dort wiederum an den CPC 32 zurückgehen. Im bevorzugten Ausführungsbeispiel der vorliegenden Erfindung ist die beschriebene Operation synchron, das heisst, der CPC 32 wartet, bis er eine Antwort vom elektronischen Element 40 erhält.
  • Bei dem elektronischen Element 40 kann es sich wiederum um einen weiteren CPC handeln. Wie im Folgenden beschrieben, wird echte Peer-to-Peer-Kommunikation durch die Erfindung unterstützt, indem jeder CPC und jedes elektronische Element im System mit komplementären Puffern ausgestattet wird. So kann das elektronische Element 40 direkt und synchron mit dem CPC 32 kommunizieren, ohne eine asynchrone Unterbrechungsprozedur einzusetzen, wie es derzeit nach Stand der Technik üblich ist.
  • Darüber hinaus ist die vorliegende Erfindung nicht auf E/A- Systeme begrenzt. Bei dem in Fig. 3 gezeigten elektronischen Element beispielsweise kann es sich um einen Großcomputer handeln, der als Co-Prozessor für einen oder mehrere CPCs verwendet wird. Der Co-Prozessor muss gelegentlich Berechnungen oder eine Serie von Berechnungen ausführen, basierend auf einer Anforderung von einem CPC, deren Ergebnisse als Ausgabedaten durch den Co-Prozessor an den anfordernden CPC gesendet werden. Das heisst, dass der CPC eine Anforderung, gefolgt von den durch den Co-Prozessor zu verarbeitenden Daten, versenden würde und der Co-Prozessor die generierten Daten als ein Ergebnis seiner Berechnungen an den CPC senden würde, gefolgt von einer Antwort unter Verwendung des gerade beschriebenen Protokolls.
  • Fig. 5 zeigt den Aufbau des Puffers für eine einzelne Nachricht in einer Hochleistungsverbindung, die die Hochleistungskanäle an beiden Enden einer Verbindung 50 umfasst. Physische Puffer sind im Hochleistungskanal an jedem Ende einer Verbindung integriert, zur Unterstützung einer einzelnen Nachricht. Die physischen Puffer an jedem Ende einer Verbindung, die zur Unterstützung der Übertragung einer einzelnen Nachricht erforderlich sind, werden Nachrichtenpuffer genannt.
  • Logisch gesehen bestehen zwei Typen von Puffer in einem CPC oder elektronischen Element. Der erste Typ, der Erzeugerpuffer genannt, wird für Nachrichtenoperationen verwendet, die von diesem CPC oder elektronischen Element stammen. Der zweite Typ, genannt der Empfängerpuffer, wird für Operationen verwendet, die vom anderen Ende der Verbindung stammen, das heisst an diesem CPC oder elektronischen Element. Ein Erzeugerpuffer 54 setzt sich zusammen aus den physischen Puffern, die für die Nachrichtenoperationen verwendet werden, die am Nachrichtenerzeuger 52 entstehen. Ein Empfängerpuffer 58 setzt sich zusammen aus den physischen Puffer, die für Operationen verwendet werden, die vom anderen Ende der Verbindung stammen. Ein Erzeugerpuffer 54 an einem Ende der Verbindung und ein Empfängerpuffer 58 am anderen Ende der Verbindung bilden einen Hochleistungskanal-Nachrichtenpuffer. Ein Hochleistungskanal-Nachrichtenpuffer ist in der Lage, alle Puffer zu bieten, die für eine einzelne Nachricht erforderlich sind, welche vom Erzeuger zum Empfänger übertragen werden soll sowie für die damit verbundene Antwort und die zurück zu sendenden Daten.
  • Sowohl die Erzeuger- als auch die Empfängerpuffer verfügen über drei logische Bereiche: (1) einen Anforderungsbereich, (2) einen Antwortbereich und (3) einen Datenbereich. Der Erzeugerpuffer 54 verfügt über einen Anforderungsbereich 541, einen Datenbereich 542 und einen Antwortbereich 543. Der Empfängerpuffer 58 wiederum umfasst einen Anforderungsbereich 581, einen Datenbereich 582 und einen Antwortbereich 583. Beim Datenbereich 542, beim Antwortbereich 543, beim Anforderungsbereich 581 sowie beim Datenbereich 582 muss es sich um physische Puffer handeln. Beim Anforderungsbereich 541 kann es sich um eine virtuelle Adresse im Speicher des Nachrichtenerzeugers 52 handeln, ebenso kann es sich beim Antwortbereich 583 um eine virtuelle Adresse im Speicher des Nachrichtenempfängers 56 handeln.
  • Die Nachrichtenpuffer eines Hochleistungskanals werden zur Verwendung auf einer Nachrichtenbasis zugeordnet. Die Informationen werden an jedem Ende der Verbindung gepuffert, um sicherzustellen, dass es einen Platz für einen empfangenen, zu platzierenden Rahmen gibt und um Geschwindigkeitsunterschiede innerhalb der Verbindung, der Erzeugereinheit und der Empfängereinheit auszugleichen.
  • Die Anforderungsinformationen für die Nachrichtenoperation werden vom Anforderungsbereich 541 des Erzeugerpuffers 54 zum Anforderungsbereich 581 des Empfängerpuffers 58 gesendet. Die Antwortinformationen werden vom Antwortbereich 583 des Empfängerpuffers 58 an den Antwortbereich 543 des Erzeugerpuffers 54 ausgegeben. Die Datenbereiche 542 und 582 des Erzeugerpuffers 54 und des Empfängerpuffers 58 werden zur Übertragung und zum Empfang zusätzlicher Informationen verwendet, die zur Befehlsausführung benötigt werden. Die Richtung des Datenflusses hängt vom ausgeführten Befehl ab. Die Daten können für eine gegebene Operation in beide Richtungen fließen. Alle Daten müssen vom Nachrichtenempfänger empfangen werden, bevor die Datenbereiche 582 und 542 für die Ergebnisdaten verwendet werden können.
  • Nachrichten, die vom Nachrichtenerzeuger an den Nachrichtenempfänger gesendet werden sollen, platzieren den auszuführenden Befehl in den Anforderungsbereich des Nachrichtenerzeugers 541 und jegliche Daten, die den Befehl begleiten, in den Datenbereich des Nachrichtenerzeugers 542. Der Inhalt des Anforderungsbereichs wird an den Anforderungsbereich des Nachrichtenempfängers 581 gesendet und der Dateninhalt wird an den Datenbereich des Nachrichtenempfängers 582 gesendet. Bei Erhalt eines Befehls in seinem Anforderungsbereich entschlüsselt der Nachrichtenempfänger umgehend den Befehl und beginnt mit der Ausführung des Befehls bis zu dem Punkt, an dem Daten erforderlich werden. Wenn die Daten empfangen werden, wird die Ausführung des Befehls beendet und das Ergebnis wird im Antwortbereich 583 platziert und sämtliche, die Antwort begleitenden Daten werden im Datenbereich 582 platziert. Der Inhalt des Datenbereichs des Nachrichtenempfängers wird an den Datenbereich des Nachrichtenerzeugers 542 gesendet und dann wird der Inhalt der Antwort des Nachrichtempfängers an den Antwortbereich des Nachrichtenerzeugers 543 gesendet und die Operation ist abgeschlossen.
  • Ein Hochleistungskanal erfordert mindestens einen Erzeugerpuffer oder einen Empfängerpuffer. Ein Hochleistungskanal kann über mehrere Erzeugerpuffer oder mehrere Empfängerpuffer verfügen. Ein Kanal kann ebenfalls sowohl Erzeuger- als auch Empfängerpuffer umfassen. Ein Hochleistungskanal muss nicht unbedingt über die gleiche Zahl an Erzeuger- und Empfängerpuffern verfügen. Fig. 6 zeigt eine Anordnung der grundlegenden Pufferstruktur, die mehrere Puffer für Peer-to-Peer-Operationen unterstützt. Diese Änderung ermöglicht das Vorhandensein mehrerer Erzeugerpuffer und Empfängerpuffer in einem einzelnen Hochleistungskanal. Es bestehen beispielsweise N + 1 Erzeugerpuffer 62 (mit den Nummern 0 bis N versehen) im CPC 64 und die entsprechenden N + 1 Empfängerpuffer 66 im CPC 68. Zusätzlich bestehen M + 1 Erzeugerpuffer 72 (mit den Zahlen 0 bis M versehen) im CPC 68 und die entsprechenden M + 1 Empfängerpuffer 74 im CPC 64. Diese Puffer sind verknüpft über eine Verbindung 76, die eine Vielzahl an Transmittern und Empfängern 77 und 79 umfasst. Die Anzahl und Organisation der Puffer an beiden Enden der Verbindung bestimmen den Umfang an gemeinsamem Zugriff, der mit dem Hochleistungskanal entsprechend der vorliegenden Erfindung erzielt werden kann.
  • Während der Initialisierung des Systems tauschen die verbundenen Kanäle Informationen aus, die die Erstellung der Nachrichtenpuffer ermöglichen. Jeder Kanal informiert sein Gegenüber auf der anderen Seite der Verbindung über seine Kapazität für Empfängerpuffer. In dem in Fig. 6 dargestellten Beispiel würde der Kanal im CPC 68 den Kanal im CPC 64 darüber informieren, dass er in der Lage ist, N + 1 Empfängerpuffer einer bestimmten Größe (der Größe der Anforderungs- und Datenbereiche) zu unterstützen, um die erforderliche Anzahl an Nachrichtenoperationen zu unterstützen. Der Kanal im CPC 64 würde beurteilen, ob N + 1 Empfängerpuffer der angegebenen Größe für die Unterstützung der Nachrichtenoperationen ausreichen. Wenn die Empfängerpuffer zur Unterstützung der Nachrichtenoperationen nicht ausreichen, erstellt der Kanal im CPC 64 keine Erzeugerpuffer und es werden keine Nachrichtenoperationen ausgeführt. Wenn die N + 1 Empfängerpuffer für den Kanal im CPC 64 ausreichen, wird die Anzahl an Erzeugerpuffern erstellt, die für die Nachrichtenoperationen erforderlich sind. Die Anzahl an Erzeugerpuffern, die in einem Kanal erstellt wurden, müssen nicht gleich der Anzahl an Empfängerpuffern sein, die im angeschlossenen Kanal erstellt wurden. Wenn beispielsweise der Kanal im CPC 68 anzeigt, dass er in der Lage ist, 10 Empfängerpuffer bereitzustellen und der Kanal im CPC 64 nur zwei Erzeugerpuffer für Nachrichtenoperationen benötigt, dann würde der Kanal im CPC 64 nur zwei Nachrichtenpuffer erstellen. Daher sind die Zahlen N + 1 für die Erzeugerpuffer in dem Kanal im CPC 64 und die Anzahl M + 1 der Erzeugerpuffer in dem Kanal im CPC 68 die maximale Anzahl an Erzeugerpuffern, die für das in Fig. 6 dargestellte System erstellt werden könnten. Es muss keine Eins-zu-Eins-Übereinstimmung zwischen der Anzahl an Erzeuger- und Empfängerpuffern herrschen, doch es muss mindestens ein Empfängerpuffer für jeden Erzeugerpuffer existieren, damit ein Nachrichtenpuffer erstellt werden kann.
  • Für jeden bestehenden Nachrichtenpuffer (das heisst ein Erzeuger-/Empfängerpuffer-Paar) kann eine Nachrichtenoperation stattfinden. Somit erlaubt die in Fig. 6 dargestellte Struktur mit mehreren Nachrichtenpuffern eine gleichzeitige Ausführung mehrerer Nachrichten. Weiterhin können diese Nachrichtenoperationen simultan in beide Richtungen auf der Verbindung 76 erfolgen. Die Nachrichten können entweder vom Kanal im CPC 64 oder vom Kanal im CPC 68 stammen.
  • Die Hochleistungsverbindung 76 besteht aus einer Reihe von Leitern mit Transmitter und Receiver-Kreisläufen an beiden Enden der Verbindung, wie detailliert in Fig. 7 dargestellt. Die Verbindung verfügt im Wesentlichen über zwei Übertragungspfade, die die Kanäle verbinden. Ein Übertragungspfad umfasst einen Satz an Leitern, die Signale vom Hochgeschwindigkeitskanal an einem Ende der Verbindung zum Hochgeschwindigkeitskanal am anderen Ende der Verbindung sendet. Der zweite Übertragungspfad besteht aus einem weiteren Satz an Leitern, die Signale in die entgegengesetzte Richtung der Verbindung senden, um so den Informationsfluss simultan und in beide Richtungen zu ermöglichen. In einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung bestehen die Leiter der Übertragungspfade aus Glasfaserkabeln, sie können jedoch auch aus Kupferdraht bestehen oder es kann sich auch um Funk- oder Infrarotsignale handeln.
  • Die Funktionen des Hochleistungskanals sind unterteilt in zwei Ebenen: Das Verbindungsebenen-Protokoll, das die Rahmen und Sequenzen definiert, die zur Verwaltung der physischen Verbindung erforderlich sind und das Nachrichtenebenen- Protokoll, das die Funktionen und Dienste der Verbindungsebene nutzt. Die Verbindungsebenen-Funktionen umfassen die Synchronisierung, Initialisierung und Konfiguration der Verbindung und signalisieren Fehler- und Offline-Bedingungen. Die Anforderungs- und Antwort-Rahmen werden in Übereinstimmung mit dem Nachrichtenebenen-Protokoll übertragen.
  • Fig. 8 zeigt die Rahmenstrukturen, durch die Informationen über eine Hochleistungsverbindung übertragen werden, wobei jeder Rahmen über einen einzelnen Übertragungspfad übertragen wird, wie in Fig. 7 dargestellt. Es bestehen zwei Arten von Datenrabmen: Ein Informationsrahmen 80 und ein Steuerrahmen 82. Der Informationsrahmen 80 besteht aus einem Kopfbereich (HEADER) 801, seinem verbundenen Cyclic Redundancy Code (CRC) 802, einem Variablenlängen-Informations- oder Datenfeld 803 und einem CRC 804, verbunden mit dem Datenfeld 803. Der Steuerrahmen enthält keine Informationen oder Daten und besteht daher nur aus einem Kopfbereich 821 und einen CRC-Wort 822. Der Kopfbereich benennt Rahmenformat, Rahmentyp, Rahmenziel und stellt Werte für die Rahmenverarbeitung bereit.
  • Nach Stand der Technik werden komplexere Rahmenstrukturen verwendet, wie in Fig. 9 gezeigt. Nochmals, es werden zwei Arten von Rahmen, ein Informationsrahmen 90 und ein Steuerrahmen 92, eingesetzt. Der Informationsrahmen 90 besteht aus einem Begrenzer (beispielsweise START) 901, einem Kopfbereich 902, einem Variablenlängen-Informations- oder Datenfeld 903, einem CRC 904 und einem Begrenzer (beispielsweise STOP) 905. Der Steuerrahmen 92 enthält keine Informationen oder Daten, enthält jedoch dennoch einen Begrenzer 921, einen Kopfbereich 922, einen CRC 923 und einen Begrenzer 924. Nicht nur die in Fig. 9 gezeigte Rahmenstruktur ist komplexer und zeitaufwendiger in der Verarbeitung als die von der vorliegenden Erfindung eingesetzte, es wird ausserdem mehr Zeit zur Formulierung und Übertragung benötigt.
  • Es kann mehr als eine Verbindung zur Verknüpfung der CPCs in verschiedenen Kombinationen innerhalb eines Multiprozessorsystems geben. Dies wird deutlich durch das Netzwerk der verknüpften CPCs, das in Fig. 10 dargestellt wird. Jeder CPC 101, 102 und 103 ist mit einem Nachrichtenprozessor 105 über Hochleistungskanäle entsprechend der vorliegenden Erfindung verbunden, wie in Fig. 6 dargestellt. Bei dem Nachrichtenprozessor kann es sich beispielsweise um ein elektronisches Element handeln, das eine Speicherfunktion wie beschrieben, beispielsweise unter Bezug auf Fig. 3 ausführt; es sollte jedoch klar sein, dass ein Speichermittel nur eine Art von Nachrichtenprozessor darstellt. Wie erwähnt, kann das elektronische Element selbst ein CPC oder ein Co-Prozessor sein, etwa ein Großcomputer. Alternativ dazu kann es sich bei dem Nachrichtenprozessor 105 um einen Server handeln, wie etwa in einem LAN oder WAN, wobei mindestens einige der CPCs 101, 102 und 103 Workstations sind. Weiterhin sollte den Fachleuten klar sein, dass das in Fig. 10 dargestellte Netzwerk als Beispiel dient. In der Praxis kann ein Datenverarbeitungssystem beispielsweise eine Vielzahl an Nachrichtenprozessoren 105 (etwa Server, Co-Prozessoren usw.) umfassen, die alle mit den CPCs 101, 102 und 103 verbunden sind.
  • Bei dem in Fig. 10 dargestellten Beispiel handelt es sich bei dem Nachrichtenprozessor 105 um ein Speichermittel, beispielsweise um ein eng verknüpftes Multiprozessor (MP)- System, wobei jeder CPC 101, 102 und 103 über einen eigenen Cachespeicher verfügt. Wie in MP-Systemen nach Stand der Technik ist eine Cross-Interrogate (XI)-Prozedur erforderlich, um Cache-Kohärenz zu erzielen. Die von der Erfindung unterstützte Peer-to-Peer-Kommunikation beschleunigt diese Prozedur erheblich. Dies wird ermöglicht durch die Fähigkeit des Nachrichtenprozessors 105, unaufgefordert eine Cross- Interrogate-Anforderung an die CPCs 101, 102 und 103 zu senden. Nach Stand der Technik würde eine Abbruch-Anforderung gesendet werden, die den Cross-Interrogate Befehl empfangen, das Cross-Interrogate ausführen und schließlich eine Antwort am Ende der Operation versenden würde.
  • Während die Hochleistungskanäle der vorliegenden Erfindung die Bearbeitung mehrerer Nachrichten gleichzeitig in einer einzelnen Hochleistungsverbindung zulassen, muss gelegentlich eine Operation rückgängig gemacht werden. Wie erwähnt, unterstützt das bevorzugte Ausführungsbeispiel der Erfindung die synchrone Operation, bei der der Nachrichtenerzeuger auf eine Antwort vom Nachrichtenempfänger wartet. Das Übertragungsmedium kann Verluste aufweisen und es kann Fälle geben, in denen die übertragene Nachricht Fehler aufweist. In diesem Falle ignoriert der Empfänger die empfangene Nachricht. Die Verbindung kann beschädigt werden und die Nachricht wird deshalb nie empfangen.
  • Zusätzlich kann die Zeitspanne für eine Nachrichtenantwort mehrere Austauschvorgänge auf der Nachrichtenebene umspannen. Ein Beispiel dafür sind Cross-Interrogate (XI)-Nachrichten, die als Ergebnis der Ausführung eines Cacheschreibbefehls durch das elektronische Element generiert werden.
  • Da synchrone Operation unterstützt wird, ist es für den Nachrichtenerzeuger notwendig, einen Timer für Nachrichten zu setzen, die an den Nachrichtenempfänger gesendet wurden. Wenn keine Antwort innerhalb der für die Antwort festgelegten Zeitspanne empfangen wird, ist für die Antwort ein Timeout erreicht worden. Wenn ein Timeout für eine einzelne Nachricht erreicht wurde, wird eine Reihe von Anforderungen und Antworten für die einzelne Hochleistungskanal-Nachricht ausgegeben, für die ein Timeout festgestellt wurde. Wenn die Anforderungen und Antworten für die Nachricht erfolgreich beendet sind, wird nur die einzelne Nachricht mit Timeout abgebrochen. Die Anforderung/Antwort Operation abbrechen und die Anforderung/Antwort Operation abbrechen beendet arbeiten auf einer Nachrichtenpuffer-Basis und richten sich an den Nachrichten-Puffer, für den ein Timeout festgestellt wurde. Wenn die Anforderung/Antwort Operation abbrechen und die Anforderung/Antwort Operation abbrechen beendet erfolgreich ausgeführt wurden, wird nur die Nachricht in dem betroffenen Nachrichtenpuffer abgebrochen und die Hochleistungskanäle können mit Operationen mit allen Nachrichtenpuffern fortfahren. Timeouts werden für den Austausch auf der Verbindungsebene und auf der Nachrichtenebene bereitgestellt.
  • Wenn ein Timeout für eine Nachricht auftritt, wird die folgende Prozedur verwendet:
  • 1. Eine Anforderung Operation abbrechen wird für die Nachrichtenoperation gesendet, für die ein Timeout festgestellt wird. Ein eine Anforderung Operation abbrechen empfangender Hochleistungskanal stellt sicher, dass keine Antwort auf die Nachrichtenanforderung mit Timeout gesendet wurde. Dies kann erfolgen, indem jeder Befehl in dem angegebenen Nachrichtenpuffer in der Ausführung vorgezogen oder zurückgesetzt wird, oder es kann eine beliebige andere Methode eingesetzt werden. Nachdem der Hochleistungskanal sichergestellt hat, dass keine Antwort für die Anforderung versendet wird, wird eine Antwort Operation abbrechen ausgeführt.
  • 2. Wenn eine Antwort Operation abbrechen ausgegeben wird, nachdem eine einzelne Anforderung Operation abbrechen ausgegeben wurde, wird eine Nachricht zu diesem Zweck an einen Kanal mit einem Status zurückgegeben, der anzeigt, dass die Nachricht fehlgeschlagen ist. Wenn eine Antwort Operation abbrechen nicht innerhalb einer Timeout-Periode für eine Antwort Operation abbrechen zurückgegeben wird, wird die Anforderung Operation abbrechen nochmals bis zu einem Schwellenwert gesendet, der Modell-abhängig ist. Wenn der Schwellenwert erreicht wurde, bleibt der Hochleistungskanal nicht länger aktiviert und es wird eine Nachricht ausgegeben, die den Fehlschlag aller Nachrichten in den aktiven Nachrichtenpuffern angibt und der Hochleistungskanal wird an den CPC oder an das elektronische Element zurückgegeben.
  • 3. Wenn für die Anforderung Operation abbrechen ein Timeout festgestellt wird, wird die nachfolgende Anforderung Operation abbrechen ausgegeben und eine Antwort Operation abbrechen wird zurückgegeben, dann muss eine Anforderung/Antwort Operation abbrechen beendet stattfinden, bevor der Kanal mit einem Status dargestellt wird, der anzeigt, dass die Nachricht für den Nachrichtenpuffer fehlgeschlagen ist.
  • 4. Wenn eine Antwort Operation abbrechen beendet zurückgegeben wird, nachdem eine einzelne Anforderung Operation abbrechen ausgegeben wurde, wird eine Nachricht an einen Kanal mit dem Status ausgegeben, der anzeigt, dass die Nachricht fehlgeschlagen ist. Wenn eine Antwort Operation abbrechen beendet nicht innerhalb einer Timeout- Periode für eine Anforderung Operation abbrechen beendet zurückgegeben wird, wird die Anforderung Operation abbrechen beendet erneut gesendet, bis zu einem, vom Modell abhängigen Schwellenwert. Wenn der Schwellenwert erreicht ist, ist der Hochleistungskanal nicht länger aktiv und es wird eine Nachricht ausgegeben, die anzeigt, dass alle Nachrichten in den aktiven Nachrichtenpuffern fehlgeschlagen sind und der Hochleistungskanal wird zum CPC oder zum elektronischen Element zurückgegeben.
  • 5. Wenn ein Timeout für die Anforderung Operation abbrechen beendet festgestellt wird, werden eine oder mehrere Anforderungen Operation abbrechen ausgegeben und eine Antwort Operation abbrechen beendet wird zurückgegeben, dann wird der Kanal mit einem Status dargestellt, der anzeigt, dass die Nachricht für den Nachrichtenpuffer fehlgeschlagen ist.
  • 6. Wenn der Hochleistungskanal aufgrund der fehlgeschlagenen Timeout-Prozedur nicht aktiv ist, werden alle empfangenen Nachrichten beendet. Nachrichten, die in einem Hochleistungskanal erzeugt wurden, werden mit einer Anzeige zurückgegeben, dass die Nachricht fehlgeschlagen ist.
  • Unter Verwendung dieser Methode der Fehlerbehebung nach einem Timeout für Nachrichten in Hochleistungskanälen können einzelne Nachrichten mit Timeout wiederhergestellt werden, ohne dass andere Operationen davon betroffen werden, die zur gleichen Zeit im gleichen Hochleistungskanal stattfinden. Nur wenn ein Hochleistungskanal auf mehrere Befehlssätze nicht reagiert, sind alle derzeit bearbeiteten Nachrichten davon betroffen.
  • In den Fig. 11 bis 14 werden Beispiele für die Timeout- Prozedur für eine verlorene Nachrichtenantwort entsprechend der vorliegenden Erfindung gezeigt. In Fig. 11 sendet der Nachrichtenerzeuger eine Anforderung zum Zeitpunkt T0 und setzt auf den gleichen Zeitpunkt den Timer fest, beispielsweise auf 150 msec. Beim Timeout des Timers sendet der Nachrichtenerzeuger eine Anforderung Operation abbrechen (AnfOpAbbr), setzt dieses Mal jedoch den Timer auf beispielsweise 15 msec. In dem in Fig. 11 gezeigten Fall antwortet der Nachrichtenempfänger auf die Anforderung Operation abbrechen mit einer Antwort Operation abbrechen (AntwOpAbbr) innerhalb des Zeitraums von 15 msec. Die Antwort signalisiert, dass der Nachrichtenempfänger sichergestellt hat, dass keine Antwort für den Nachrichtenpuffer zurückgegeben wird. Die einzelne Nachricht wird beim Nachrichtenerzeuger beendet, indem eine Nachricht an den Kanal zurückgegeben wird, mit dem Status, der anzeigt, dass die Nachricht für den Nachrichtenpuffer fehlgeschlagen ist.
  • Fig. 12 zeigt den Fall, in dem anstelle des Empfangs einer Antwort Operation abbrechen vom Nachrichtenempfänger, ein Timeout für die Anforderung Operation abbrechen auftritt. Dies bewirkt, dass der Nachrichtenempfänger eine zweite Anforderung Operation abbrechen überträgt und dabei den Timer wieder auf 15 msec setzt, wie in dem vorangegangenen Beispiel. In dem in Fig. 12 beschriebenen Beispiel initiiert das Verbindungsebenen-Protokoll eine Beendigung aller Nachrichten in der Verbindung aufgrund der Anforderung Operation abbrechen, die gesendet wurde und auf die nicht so häufig wie durch den Modell-abhängigen Schwellenwert angegebenen Zahl geantwortet wurde (2 ist der Schwellenwert in dem in Fig. 12 gezeigten Beispiel).
  • In Fig. 13 wird von einem Szenario ausgegangen, das dem in Fig. 12 ähnelt, mit dem Unterschied, dass die Antwort Operation abbrechen innerhalb des Zeitraums von 15 msec empfangen wird. Es besteht jedoch eine Vieldeutigkeit, da nicht ersichtlich ist, ob die empfangene Antwort Operation abbrechen die Antwort auf die erste oder auf die zweite Anforderung Operation abbrechen ist. Daher besteht die Gefahr, dass eine nachfolgende Anforderung vom Nachrichtenerzeuger vom Nachrichtenempfänger abgebrochen wird, als Reaktion auf eine ausstehende Anforderung Operation abbrechen. Daher sendet der Nachrichtenerzeuger als Nächstes eine Anforderung Operation abbrechen beendet (AnfOpAbbrBeend) an den Nachrichtenempfänger und setzt erneut den Timer auf 15 msec. Während dieses dritten Zeitraums von 15 msec. sendet der Nachrichtenempfänger eine Antwort Operation abbrechen beendet (AntwOpAbbrBeend) an den Nachrichtenerzeuger. Diese Antwort führt dazu, dass die einzelne Nachricht beendet wird mit dem Status, der anzeigt, dass die Nachricht für den Nachrichtenpuffer fehlgeschlagen ist.
  • In Fig. 14 wird von einem etwas komplizierteren Szenario ausgegangen, wobei wie in Fig. 13 zwei Anforderungen Operation abbrechen durch den Nachrichtenerzeuger übertragen werden und während der Timeout-Periode der zweiten Anforderung eine Antwort Operation abbrechen vom Nachrichtenempfänger empfangen wird. Im dargestellten Fall wird die Antwort als Ergebnis der ersten Anforderung Operation abbrechen empfangen, doch es gibt keine Möglichkeit für den Nachrichtenerzeuger, dies zu erkennen. Daher überträgt der Nachrichtenerzeuger eine Anforderung Operation abbrechen beendet und setzt den Timer dabei auf eine dritte 15 msec-Periode fest, wie es bereits in Fig. 13 geschehen ist. In diesem Beispiel jedoch findet beim Timer ein Timeout statt, ohne dass eine Antwort auf die Anforderung Operation abbrechen beendet empfangen wurde. Nun wird die zweite Antwort Operation abbrechen empfangen, während der Nachrichtenerzeuger eine zweite Anforderung Operation abbrechen beendet aufgrund des Timeout überträgt, wobei er den Timer auf eine vierte 15 msec-Periode festsetzt. Diese Antwort kann eine Antwort auf die erste Antwort Operation abbrechen beendet sein, wie in Fig. 14 dargestellt, und führt dazu, dass die einzelne Nachricht beim Nachrichtenerzeuger beendet wird. Die Antwort Operation abbrechen beendet signalisiert, dass der Nachrichtenempfänger alle Anforderungen Operation abbrechen vor der Anforderung Abbruch beendet ausgeführt hat und es wird keine Antwort für die Nachricht im Nachrichtenpuffer ausgegeben. Jede Antwort Abbruch beendet, die nach der ersten empfangen wird, wird entfernt, nachdem der Nachrichtenpuffer freigegeben wurde.

Claims (21)

1. Ein Kommunikationskanal zum Austausch von Nachrichten zwischen Elementen (32, 34, 40, 44) eines Datenverarbeitungssystems, wobei der genannte Kommunikationskanal einen Erzeugerpuffer (36) in einem ersten Element (32, 34), einen Empfängerpuffer (42) in einem zweiten Element (40, 44) und einen Übertragungspfad (38) zur Verbindung des genannten Erzeugerpuffers und des genannten Empfängerpuffers umfasst, dadurch gekennzeichnet, dass
der genannte Erzeugerpuffer und der genannte Empfängerpuffer beide aus drei logischen Bereichen bestehen: einem Anforderungsbereich (Command = C), einem Antwortbereich (Response = R) und einem Datenbereich (Data = D); das genannte erste Element eingesetzt wird, um sowohl den Erzeugerpuffer als auch den Empfängerpuffer zu steuern, bei der Übertragung einer Anforderungsnachricht vom Anforderungsbereich des genannten Erzeugerpuffers zum Anforderungsbereich des genannten Empfängerpuffers und optional bei der Übertragung von Nachrichtendaten vom Datenbereich des genannten Erzeugerpuffers zum Datenbereich des genannten verbundenen Empfängerpuffers;
und dadurch gekennzeichnet, dass das genannte zweite Element eingesetzt wird, um durch Übertragen einer Antwortnachricht zu antworten, vom Antwortbereich des genannten Empfängerpuffers zum Antwortbereich des genannten Erzeugerpuffers und optional zum Übertragen von Nachrichtendaten vom Datenbereich des Empfängerpuffers zum Datenbereich des Erzeugerpuffers.
2. Ein Kanal nach Anspruch 1, wobei das genannte erste Element eine Vielzahl an Erzeugerpuffern umfasst, das genannte zweite Element eine Vielzahl von Empfängerpuffern umfasst, wobei jeder der Erzeugerpuffer eindeutig mit einem der Empfängerpuffer gepaart wird, und jedes der Paare aus Erzeuger- und Empfängerpuffer eine einzelne Nachrichtenoperation unterstützt und der genannte Kanal eine Vielzahl an gleichzeitig stattfindenden Operationen unterstützt.
3. Ein Kanal nach Anspruch 2, wobei der genannte Datenbereich und der genannte Antwortbereich der genannten Vielzahl an Erzeugerpuffern und der Datenbereich und der Anforderungsbereich der genannten Vielzahl an Empfängerpuffern physische Puffer sind.
4. Ein Kanal nach Anspruch 3, wobei die genannten Anforderungsbereiche der genannten Vielzahl an Erzeugerpuffern virtuelle Adressen im Speicher des genannten ersten Elements und die genannten Antwortbereiche der genannten Vielzahl an Empfängerpuffern virtuelle Adressen im Speicher des genannten zweiten Elements sind.
5. Ein Datenverarbeitungssystem mit mindestens einem ersten und zweiten Element, die durch eine Vielzahl an Kommunikationskanälen miteinander verbunden sind, wie sie in jedem vorangegangenen Anspruch beschrieben werden, wobei jeder der Kanäle eine oder mehrere Nachrichten unterstützt und einen ersten und zweiten Übertragungspfad umfasst, wobei nur eine einzelne Anforderungsnachricht über den genannten ersten Übertragungspfad übertragen wird und nur eine einzelne Antwortnachricht über den genannten zweiten Übertragungspfad übertragen wird.
6. Das Datenverarbeitungssystem nach Anspruch 5, weiterhin folgendes umfassend: einen Erzeugerpuffer im genannten zweiten Element und einen verbundenen, eindeutig zugeordneten Empfängerpuffer im genannten ersten Element, wobei das genannte zweite Element sowohl den Erzeugerpuffer im genannten zweiten Element als auch den genannten verbundenen, eindeutig zugeordneten Empfängerpuffer im genannten ersten Element steuert und die genannten Hochleistungskanäle echte Peer-to-Peer- Kommunikation zwischen den genannten ersten und den genannten zweiten Elementen des genannten Datenverarbeitungssystems unterstützen.
7. Das Datenverarbeitungssystem nach Anspruch 6 in Abhängigkeit von Anspruch 2, wobei es sich bei den genannten ersten und zweiten Elementen jeweils um Central Processing Complexes handelt.
8. Das Datenverarbeitungssystem nach Anspruch 6 in Abhängigkeit von Anspruch 2, wobei es sich bei den genannten ersten Element um einen Central Processing Complex und beim genannten zweiten Element um ein elektronisches Element handelt.
9. Das Datenverarbeitungssystem nach Anspruch 8, wobei es sich bei dem genannten elektronischen Element um ein elektronisches Speichergerät handelt, das im Anforderungsbereich des genannten Empfängerpuffers einen Lesebefehl in der genannten Anforderungsnachricht empfängt und Daten vom genannten elektronischen Speichergerät an den genannten Datenbereich des genannten Erzeugerpuffers mit der genannten Antwortnachricht zurückgibt und im Anforderungsbereich des genannten Empfängerpuffers einen Schreibbefehl und im Datenbereich des genannten Empfängerpuffers Daten in einer einzelnen Anforderungsnachricht empfängt und eine Antwortnachricht zum Antwortbereich des genannten Erzeugerpuffers zurückgibt, zur Bestätigung, dass die Daten in das elektronische Speichergerät geschrieben wurden.
10. Das Datenverarbeitungssystem nach Anspruch 8, wobei es sich bei dem genannten elektronischen Element um einen Co- Prozessor handelt, der Daten im Datenbereich des genannten Empfängerpuffers vom genannten Central Processing Complex in einer einzelnen Anforderungsnachricht empfängt und Daten an den Datenbereich des genannten Erzeugerpuffers in einer einzelnen Antwortnachricht zurückgibt.
11. Das Datenverarbeitungssystem nach Anspruch 6 in Abhängigkeit von Anspruch 2, weiterhin eine Vielzahl an Elementen umfassend, die untereinander durch den genannten Hochleistungskanal verbunden sind, in einem Netzwerk, das das genannte Datenverarbeitungssystem bildet, wobei jedes der Elemente mit mindestens einem anderen Element im Hochleistungskanal mit einem Erzeugerpuffer und einem verbundenen, eindeutig zugeordneten Empfängerpuffer verbunden ist.
12. Das Datenverarbeitungssystem nach Anspruch 11, wobei es sich bei dem genannten Netzwerk um ein Local Area Network oder um ein Wide Area Network handelt und mindestens eines der Elemente ein Server und die anderen Elemente Workstations sind.
13. Das Datenverarbeitungssystem nach Anspruch 11, wobei das genannte Netzwerk ein eng verknüpftes Multiprozessorsystem ist und mindestens eines der Elemente ein elektronisches Speichergerät ist und die anderen Elemente Central Processing Complexes sind, wobei das genannte elektronische Speichergerät einen Lesebefehl im Lesebereich eines Empfängerpuffers in einer Anforderungsnachricht von einem erzeugenden Central Processing Complex empfängt und Daten vom genannten elektronischen Speichergerät zum Datenbereich eines Erzeugerpuffers im genannten erzeugenden Central Processing Complex mit einer Antwortnachricht zurückgibt und einen Schreibbefehl im Anforderungsbereich sowie Daten im Datenbereich eines Empfängerpuffers in einer Anforderungsnachricht von einem erzeugenden Central Processing Complex empfängt und eine Antwort an den Antwortbereich eines Erzeugerpuffers im genannten erzeugenden Central Processing Complex zurückgibt, mit der bestätigt wird, dass die Daten in das genannte Speichergerät geschrieben wurden, wobei das genannte Speichergerät Cross-Invalidate-Nachrichten von Erzeugerpuffern im genannten elektronischen Speichergerät an verbundene, eindeutig zugeordnete Empfängerpuffer in anderen Central Processing Complexes im genannten Netzwerk ausgibt, wobei jeder der anderen genannten Central Processing Complexes darauf antwortet, indem eine Antwortnachricht vom Antwortbereich der verbundenen, eindeutig zugeordneten Empfängerpuffer zum Antwortbereich der Erzeugerpuffer im genannten elektronischen Speichergerät ausgegeben wird.
14. Das Datenverarbeitungssystem nach jedem der vorangegangenen Ansprüche 5 bis 13, weiterhin folgendes umfassend: ein Timing-Mittel im genannten ersten Element zur zeitlichen Festlegung eines erwarteten Zeitraums für die Antwort auf eine Anforderungsnachricht, während dem das erste Element auf die genannte Antwortnachricht vom genannten zweiten Element wartet, nachdem die genannte Anforderungsnachricht gesendet wurde.
15. Das Datenverarbeitungssystem nach Anspruch 14, weiterhin ein Mittel umfassend, das auf ein Timeout-Signal vom genannten Timing-Mittel reagiert, um einen Fehler in einer einzelnen Operation in einer Umgebung mit mehreren Operationen zu beheben.
16. Eine Methode zur Fehlerbehebung in einzelnen Operationen in einer Umgebung mit mehreren Operationen eines Datenverarbeitungssystems, einschließlich Kommunikationskanäle zum Austausch von Nachrichten zwischen Elementen (32, 34, 40, 42) des Datenverarbeitungssystems, wobei jeder der genannten Kanäle mehrere Nachrichten unterstützt und einen Erzeugerpuffer (36) in einem ersten Element (32, 34) und einen Empfängerpuffer (42) in einem zweiten Element (40, 44) umfasst, wobei jeder Erzeugerpuffer und jeder Empfängerpuffer aus drei logischen Bereichen besteht, die als Anforderungsbereich, Antwortbereich und Datenbereich bezeichnet werden, wobei der genannte Erzeugerpuffer und der genannte Empfängerpuffer durch ein Paar aus Übertragungspfaden (76) einer Verbindung verbunden sind, die über eine Vielzahl an Übertragungspfaden verfügt, wobei das erste Element sowohl einen verbundenen Erzeugerpuffer als auch den Empfängerpuffer steuert und nur eine Nachricht mit einer Nachrichtenanforderung vom Anforderungsbereich des genannten Erzeugerpuffers zum Anforderungsbereich des genannten Empfängerpuffers überträgt und optional Nachrichtendaten vom Datenbereich des genannten Erzeugerpuffers zum Datenbereich des genannten Empfängerpuffers überträgt und wobei das genannte zweite Element darauf reagiert, indem es nur eine Nachricht mit einer Nachrichtenantwort vom genannten Antwortbereich des genannten Empfängerpuffers zum Antwortbereich des genannten Erzeugerpuffers überträgt und optional Nachrichtendaten vom Datenbereich des Empfängerpuffers zum Datenbereich des Erzeugerpuffers überträgt, wobei die genannte Methode die folgenden Schritte umfasst: Senden einer Anforderung vom genannten Erzeugerpuffer zum genannten Empfängerpuffer und Setzen eines Timers für einen ersten erwarteten Antwortzeitraum, Verarbeiten aller Anforderungen im genannten Empfängerpuffer in der Reihenfolge, in der sie erhalten wurden, Prüfen des genannten Timers und falls der genannte erste erwartete Antwortzeitraum abgelaufen ist, Senden einer ersten Anforderung Operation abbrechen vom genannten Erzeugerpuffer zum genannten Empfängerpuffer und Setzen des genannten Timers auf einen zweiten erwarteten Antwortzeitraum, und Prüfen des genannten Timers und falls eine Antwort Operation abbrechen vom Empfängerpuffer beim Erzeugerpuffer innerhalb des genannten zweiten erwarteten Antwortzeitraums empfangen wurde, Beenden der genannten Anforderung.
17. Die Methode zur Fehlerbehebung bei einzelnen Operationen in einer Umgebung mit mehreren Operationen nach Anspruch 16, folgenden Schritt umfassend: Erstellen eines System- Schwellenwerts für eine Anzahl an Anforderungen Operation abbrechen, die für jede ursprüngliche Anforderungsnachricht übertragen werden können und wobei bei Ablauf des genannten zweiten erwarteten Antwortzeitraums die Methode die folgenden weiteren Schritte umfasst: Senden zusätzlicher Anforderungen Operation abbrechen vom genannten Erzeugerpuffer zum genannten Empfängerpuffer und für jede weitere gesendete Anforderung Operation abbrechen, Setzen des genannten Timers für einen zusätzlichen erwarteten Antwortzeitraum, Zählen der gesendeten Anforderungen Operation abbrechen, um eine Zahl zu generieren und die genannte Zahl mit dem genannten Schwellenwert zu vergleichen und Ausgeben einer Statusnachricht, die einen Fehler im Hochleistungskanal anzeigt, falls die genannte Zahl gleich dem Schwellenwert ist.
18. Die Methode zur Fehlerbehebung bei einzelnen Operationen in einer Umgebung mit mehreren Operationen nach Anspruch 16, wobei in dem Fall, dass der genannte zweite erwartete Antwortzeitraum abläuft, die genannte Methode weiterhin folgende Schritte umfasst: Senden einer zweiten Anforderung Operation abbrechen vom genannten Erzeugerpuffer zum genannten Empfängerpuffer und Setzen des genannten Timers für den genannten zweiten erwarteten Antwortzeitraum; bei Erhalt einer Antwort Operation abbrechen nach dem Versenden der genannten zweiten Anforderung Operation abbrechen, Senden einer Anforderung Operation abbrechen beendet vom genannten Erzeugerpuffer zum genannten Empfängerpuffer und Antworten auf eine Antwort Abbruch beendet vom genannten Empfängerpuffer zum genannten Erzeugerpuffer durch Beenden der genannten Anforderung.
19. Die Methode zur Fehlerbehebung bei einzelnen Operationen in einer Umgebung mit mehreren Operationen nach Anspruch 18, weiterhin folgende Schritte umfassend: Setzen des genannten Timers für den genannten zweiten erwarteten Antwortzeitraum, wenn die genannte Anforderung Abbruch beendet gesendet wurde und Prüfen des genannten Timers und wenn eine Antwort Abbruch beendet vom Empfängerpuffer durch den Erzeugerpuffer nicht innerhalb des zweiten erwarteten Antwortzeitraums empfangen wird, Senden einer zweiten Anforderung Abbruch beendet vom genannten Erzeugerpuffer zum genannten Empfängerpuffer.
20. Die Methode zur Fehlerbehebung bei einzelnen Operationen in einer Umgebung mit mehreren Operationen nach Anspruch 19, wobei beim Empfang einer Anforderung Abbruch beendet die genannte Anforderungsnachricht beendet wird.
21. Die Methode zur Fehlerbehebung bei einzelnen Operationen in einer Umgebung mit mehreren Operationen nach Anspruch 19, weiterhin folgende Schritte umfassend: Erstellen eines System-Schwellenwerts für eine Anzahl an Anforderungen Abbruch beendet, die übertragen werden können, und Setzen des genannten Timers für den genannten zweiten erwarteten Antwortzeitraum für jede gesendete Anforderung Abbruch beendet, wobei bei Ablauf des genannten zweiten erwarteten Antwortzeitraums nach Senden einer Anforderung Abbruch beendet vom genannten Erzeugerpuffer zum genannten Empfängerpuffer, die Methode weiterhin folgende Schritte umfasst: Senden zusätzlicher Anforderungen Abbruch beendet vom genannten Erzeugerpuffer zum genannten Empfängerpuffer, Zählen der genannten gesendeten Anforderungen Abbruch beendet zum Generieren einer Zahl und Vergleichen der genannten Zahl mit dem genannten Schwellenwert und Ausgeben einer Statusnachricht mit dem stattgefundenen Fehler im Hochleistungskanal, wenn die genannte Zahl den Schwellenwert erreicht hat.
DE69331449T 1992-02-20 1993-02-12 Hochleistungskanäle für Datenverarbeitungssysteme Expired - Fee Related DE69331449T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/839,652 US5412803A (en) 1992-02-20 1992-02-20 Communications system having plurality of originator and corresponding recipient buffers with each buffer having three different logical areas for transmitting messages in single transfer

Publications (2)

Publication Number Publication Date
DE69331449D1 DE69331449D1 (de) 2002-02-21
DE69331449T2 true DE69331449T2 (de) 2002-09-26

Family

ID=25280318

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69331449T Expired - Fee Related DE69331449T2 (de) 1992-02-20 1993-02-12 Hochleistungskanäle für Datenverarbeitungssysteme

Country Status (10)

Country Link
US (1) US5412803A (de)
EP (1) EP0557025B1 (de)
JP (1) JP2910962B2 (de)
KR (1) KR960016405B1 (de)
AT (1) ATE212136T1 (de)
BR (1) BR9300357A (de)
CA (1) CA2089771C (de)
DE (1) DE69331449T2 (de)
ES (1) ES2171161T3 (de)
TW (1) TW310393B (de)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537574A (en) * 1990-12-14 1996-07-16 International Business Machines Corporation Sysplex shared data coherency method
JP2566717B2 (ja) 1992-03-30 1996-12-25 インターナショナル・ビジネス・マシーンズ・コーポレイション 条件付きオペレーション提供装置及び方法
US5649096A (en) * 1993-11-22 1997-07-15 Unisys Corporation Bus request error detection
JPH08180001A (ja) * 1994-04-12 1996-07-12 Mitsubishi Electric Corp 通信方式及び通信方法及びネットワークインタフェース
US5661736A (en) * 1995-02-28 1997-08-26 Harris Corporation Multiple use timer and method for pulse width generation, echo failure detection, and receive pulse width measurement
FR2736176B1 (fr) * 1995-06-30 1997-07-25 Bull Sa Dispositif d'echange de messages entre deux machines informatiques et procede d'execution de commandes utilisant ce dispositif
US5574858A (en) * 1995-08-11 1996-11-12 Dell U.S.A., L.P. Method and apparatus for, upon receipt of data from a mouse, requiring the remainder of data needed to constitute a packet to be received within one second
US5758137A (en) * 1995-10-26 1998-05-26 International Business Machines Corporation Method and system for processing timer requests within a computer
US5781726A (en) * 1996-01-31 1998-07-14 3Com Corporation Management of polling traffic in connection oriented protocol sessions
US5887135A (en) * 1996-08-15 1999-03-23 International Business Machines Corporation System and method for management of object transitions in an external storage facility accessed by one or more processors
US5944797A (en) * 1997-05-28 1999-08-31 International Business Machines Corporation Data mover hardware controlled processing in a commanding system and in a commanded system for controlling frame communications on a link
US5961606A (en) * 1997-06-30 1999-10-05 Sun Microsystems, Inc. System and method for remote buffer allocation in exported memory segments and message passing between network nodes
US5991705A (en) * 1997-07-23 1999-11-23 Candle Distributed Solutions, Inc. End-to-end response time measurement for computer programs using starting and ending queues
US6182166B1 (en) * 1997-08-25 2001-01-30 Emc Corporation Method/apparatus for interfacing two remotely disposed devices coupled via transmission medium with first and second commands transmitted without first checking receiving device for readiness
JP3247330B2 (ja) * 1997-12-25 2002-01-15 株式会社神戸製鋼所 複数プロセッサシステム
US6615383B1 (en) * 1998-05-29 2003-09-02 Sun Microsystems, Inc. System and method for message transmission between network nodes connected by parallel links
US7013305B2 (en) 2001-10-01 2006-03-14 International Business Machines Corporation Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange
JP3606133B2 (ja) * 1999-10-15 2005-01-05 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US7349960B1 (en) * 2000-05-20 2008-03-25 Ciena Corporation Throttling distributed statistical data retrieval in a network device
US6754739B1 (en) * 2000-08-31 2004-06-22 Hewlett-Packard Development Company Computer resource management and allocation system
US6931645B2 (en) 2000-12-15 2005-08-16 Microsoft Corporation Methods and systems for canceling requests for the transmission of data
GB2378781B (en) * 2001-08-16 2005-06-01 Sun Microsystems Inc Message brokering
GB2378782B (en) * 2001-08-16 2005-04-13 Sun Microsystems Inc Message brokering
FI20012173A (fi) * 2001-11-09 2003-05-10 Nokia Corp Synkronisoiva paikallisverkko
US6898414B2 (en) * 2002-10-28 2005-05-24 Motorola, Inc. Method for acknowledging messages in a communication system
US7716397B2 (en) * 2007-07-03 2010-05-11 Lsi Corporation Methods and systems for interprocessor message exchange between devices using only write bus transactions
JP5540697B2 (ja) * 2009-12-25 2014-07-02 富士通株式会社 演算処理装置、情報処理装置および演算処理装置の制御方法
JP2023107418A (ja) * 2022-01-24 2023-08-03 キオクシア株式会社 ストレージデバイスおよびストレージシステム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5833972B2 (ja) * 1979-11-12 1983-07-23 富士通株式会社 計算機システム間通信方式
US4777595A (en) * 1982-05-07 1988-10-11 Digital Equipment Corporation Apparatus for transferring blocks of information from one node to a second node in a computer network
US4698746A (en) * 1983-05-25 1987-10-06 Ramtek Corporation Multiprocessor communication method and apparatus
JPH0744567B2 (ja) * 1986-08-27 1995-05-15 日産自動車株式会社 通信インタ−フエイス装置
US4807118A (en) * 1987-01-14 1989-02-21 Hewlett-Packard Company Method for handling slot requests over a network
JPS6450152A (en) * 1987-08-20 1989-02-27 Fujitsu Ltd Communication controller
US4930093A (en) * 1988-08-01 1990-05-29 Ncr Corporation Method of measuring message response time performance of a data processing system including data terminals
US5167035A (en) * 1988-09-08 1992-11-24 Digital Equipment Corporation Transferring messages between nodes in a network
US4947317A (en) * 1988-10-12 1990-08-07 Pitney Bowes Inc. Communication protocol for a three nodes system having dedicated connections and bit indicating function of exchanged message
US5222219A (en) * 1988-10-25 1993-06-22 Hewlett-Packard Company Pipeline computer system having write order preservation
US5175730A (en) * 1988-11-10 1992-12-29 Ricoh Company, Ltd. Communication control unit
JPH02196355A (ja) * 1989-01-26 1990-08-02 Nec Corp 記憶処理システム
US5146564A (en) * 1989-02-03 1992-09-08 Digital Equipment Corporation Interface between a system control unit and a service processing unit of a digital computer
US5261051A (en) * 1989-08-14 1993-11-09 Microsoft Corporation Method and system for open file caching in a networked computer system
US5247163A (en) * 1990-04-20 1993-09-21 Mitsubishi Denki Kabushiki Kaisha IC card having a monitor timer and a reset signal discrimination circuit
US5297143A (en) * 1990-12-03 1994-03-22 Echelon Systems, Corp. Network communication protocol including a reliable multicasting technique
US5261060A (en) * 1991-03-13 1993-11-09 Traveling Software, Inc. Eight-bit parallel communications method and apparatus

Also Published As

Publication number Publication date
EP0557025A1 (de) 1993-08-25
JP2910962B2 (ja) 1999-06-23
US5412803A (en) 1995-05-02
KR960016405B1 (en) 1996-12-11
ES2171161T3 (es) 2002-09-01
BR9300357A (pt) 1993-08-24
CA2089771A1 (en) 1993-08-21
TW310393B (de) 1997-07-11
EP0557025B1 (de) 2002-01-16
ATE212136T1 (de) 2002-02-15
CA2089771C (en) 1996-10-01
JPH0685877A (ja) 1994-03-25
DE69331449D1 (de) 2002-02-21

Similar Documents

Publication Publication Date Title
DE69331449T2 (de) Hochleistungskanäle für Datenverarbeitungssysteme
DE3280451T2 (de) Verfahren zur Initialisierung eines Datenverarbeitungssystems.
DE69505871T2 (de) Taktfehlererkennungsschaltung
DE3750680T2 (de) Multiprozessor-Busprotokoll.
DE68918837T2 (de) Verfahren zur unterbrechungsfreien Rückgewinnungsversorgung in einem Übertragungssystem.
DE68927214T2 (de) Verfahren zur Datenübertragung zwischen einem Medienzugriffskontroller und einem Pufferspeicher in einem Tokenring-Netz
DE60212626T2 (de) Endknotenunterteilung mittels lokaler identifikatoren
DE68926725T2 (de) Atomare Sequenz für Phasenübergänge
DE60035882T2 (de) Protokoll einer zerteilten transaktion für ein bussystem
DE3851111T2 (de) Netzwerksystem mit Tokenprinzip-Zugriffsverfahren.
DE2854485C2 (de) Datenverarbeitungsanlage
DE19900245B4 (de) Vorrichtung und Verfahren zum Senden von Daten von einem USB-Endpunkt an einen USB-Host
DE69228960T2 (de) Vermittlungsnetz für Prozessoren
DE69922693T2 (de) Systemem und verfahren für netzwerkvorrichtung und ein-ausgabegerätetreiber
DE3820544C2 (de) Ortsbereichsnetzsystem mit einem hiermit gekoppelten Mehrcomputersystem und Verfahren zur Steuerung hiervon
DE19900345A9 (de) Vorrichtung und Verfahren für die Bereitstellung einer Schnittstelle für eine Verbundsteuereinheit eines Universellen Seriellen Buses
DE69223304T2 (de) Arbitrierungsverriegelungverfahren und -vorrichtung für einen entfernten Bus
DE69129960T2 (de) System zur Gestaltung eines geteilten Speichers
DE4003759C2 (de) Verfahren und Anordnung zur Übertragung von Daten über einen Bus zwischen selektiv ankoppelbaren Stationen
DE69021186T2 (de) "Master-Slave" industrielles Netzwerk mit Tokenübergabe.
DE69620070T2 (de) Vielfachknoten-Datenverarbeitungssystem und Verfahren zur Übertragung von Nachrichten in diesem Vielfachknoten-Datenverarbeitungssystem
DE19900369A1 (de) Vorrichtung und Verfahren zur Ausführung einer Steuerübertragung auf einem Universal Serial Bus
DE19900369A9 (de) Vorrichtung und Verfahren zur Ausführung einer Steuerübertragung auf einem Universal Serial Bus
DE4142756A1 (de) Datenweg-einrichtung zur kopplung zweier busse
WO1996003695A1 (de) Datenreduktion für buskoppler

Legal Events

Date Code Title Description
8339 Ceased/non-payment of the annual fee