DE69331311T2 - Datenkommunikationssystem und Verfahren - Google Patents

Datenkommunikationssystem und Verfahren

Info

Publication number
DE69331311T2
DE69331311T2 DE69331311T DE69331311T DE69331311T2 DE 69331311 T2 DE69331311 T2 DE 69331311T2 DE 69331311 T DE69331311 T DE 69331311T DE 69331311 T DE69331311 T DE 69331311T DE 69331311 T2 DE69331311 T2 DE 69331311T2
Authority
DE
Germany
Prior art keywords
data
communication
memory
transmission
dummy
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
DE69331311T
Other languages
English (en)
Other versions
DE69331311D1 (de
Inventor
Masami Dewa
Masayuki Ikeda
Ken-Ichi Ishizaka
Kazushige Kobayakawa
Shigeru Nagasawa
Naoki Shinjo
Haruhiko Ueno
Teruo Utsumi
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of DE69331311D1 publication Critical patent/DE69331311D1/de
Application granted granted Critical
Publication of DE69331311T2 publication Critical patent/DE69331311T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf ein Datenkommunikationssystem und -verfahren zum Kommunizieren oder Übertragen verarbeiteter Daten zwischen Prozessorelementen, die über ein Datenkommunikationsnetzwerk miteinander gekoppelt sind. Insbesondere befaßt sich diese Erfindung mit einem Datenkommunikationssystem und -verfahren, das die Übertragung verarbeiteter Daten zwischen Prozessorelementen garantiert, die eine parallel verarbeitende Maschine bilden.
  • Auf dem Gebiet von Computern zielt die Einführung der Technik einer Parallelverarbeitung auf eine außergewöhnliche Verbesserung im Durchsatz. In einem als parallel verarbeitende Maschine arbeitenden Computer sind mehrere Verarbeitungselemente über ein Datenkommunikationsnetzwerk wie z. B. ein Kommunikationspuffer enthaltendes Crossbar-Netzwerk miteinander gekoppelt. Nicht verarbeitete und verarbeitete Daten werden zwischen Prozessorelementen übertragen. Zu dieser Zeit wird eine synchrone Steuerung ausgeführt, um die Beendigung einer Datenübertragung zwischen den Prozessorelementen zu bestätigen und zur nächsten Parallelverarbeitung weiterzugehen. Die synchrone Steuerung macht es notwendig zu bestätigen, daß Übertragungsdaten eine Empfangsstation erreicht haben. Es ist daher unerläßlich für eine Verbesserung der Leistungsfähigkeit einer parallel verarbeitenden Maschine, eine Datenkommunikation mit einer einfachen Hardwarekonfiguration bei hoher Geschwindigkeit zu garantieren.
  • In einem Datenkommunikationssystem zum Übertragen von Daten über ein Datenkommunikationsnetzwerk wie z. B. ein Crossbar-Netzwerk, das mehrere Puffer enthält, wurde die Kommunikationspufferlänge oder eine maximale Kommunikationspufferlänge zum Übertragen von Daten von einem Sender zu einen Empfänger auf einer festgelegten Basis bestimmt; die Übertragungszeit ist aber nicht immer festgelegt. Der Grund, warum die Übertragungszeit nicht auf einer festgelegten Basis bestimmt ist, besteht darin, daß, selbst wenn ein Empfänger über ein Datenkommunikationsnetzwerk mit einem Sender gekoppelt ist, er Daten nicht empfangen kann, falls der Empfänger belegt ist. Wenn ein Datenkommunikationsnetzwerk ein aus Crossbar-Schaltern aufgebautes Netzwerk ist, nähern sich die Daten von spezifischen Sendern dem Empfänger in der spezifizierten Prioritätsreihenfolge, falls mehrere Sender Daten an den selben Empfänger senden. Zu einem gewissen Zeitpunkt geht die Datenübertragung nur für die Daten von einem Sender gemäß einer definierten Reihenfolge von Prioritäten weiter, und die anderen Sender sind gezwungen, auf den Abschluß der Datenübertragung zu warten. Wie oben erwähnt wurde, muß, wenn eine Kommunikationspufferlänge festgelegt ist, eine Übertragungszeit aber nicht festgelegt ist, garantiert werden, daß Daten von einem Sender einen Empfänger erreicht haben. Bei einem herkömmlichen Verfahren zum Liefern dieser Garantie verwendet der Empfänger eine Vorgriffsleitung, um ein Empfangsendsignal an den Sender zurückzuleiten, oder der Empfänger verwendet ein Datenkommunikationsnetzwerk, um ein Empfangsendsignal an den Sender zurückzuleiten.
  • Bei dem Verfahren, bei dem ein Empfänger eine Vorgriffssteuerleitung verwendet, um ein Empfangsendsignal an einen Sender zurückzuleiten, ist jedoch mehr Hardware erforderlich, um ein Empfangsendsignal zurückzuleiten. Bei dem Verfahren, bei dem ein Empfänger ein Datenkommunikationsnetzwerk verwendet, um ein Empfangsendsignal zurückzuleiten, müssen an einem Empfangsende rückleitbare Daten erzeugt werden, die eine Empfangsbeendigung repräsentieren. Wenn Hardware verwendet wird, um die rückleitbaren Daten zu erzeugen, werden Schaltungen kompliziert und in den Abmessungen groß. Wenn eine Software verwendet wird, um die rückleitbaren Daten zu erzeugen, wird eine verlängerte Zeitspanne einer Verarbeitungszeit notwendig. Bei jedem der Verfahren tritt eine Zeitverzögerung auf, nachdem ein Empfänger einen Datenempfang abgeschlossen hat, bis ein Sender über eine Beendigung des Empfangs informiert ist. Dies beschränkt die Leistungsfähigkeit einer parallel verarbeitenden Maschine mit zahlreichen Prozessorelementen.
  • EP-A-0472879 offenbart ein Verfahren und Gerät zum Leiten eines Prozessor-Speicher-Datenverkehrs in einem Multiprozessorcomputersystem mit gemeinsam genutztem Speicher, das ein Zusammenschaltungsnetzwerk verwendet, das zwei gepufferte mehrstufige Schaltnetzwerke enthält, von denen jedes genutzt werden kann, um die Daten von irgendeinem Verarbeitungselement zu einem Speicherelement zu leiten. In Abhängigkeit von der Art des Prozessor-Speicher-Verkehrs können zwei verschiedene Leitschemata verwendet werden, um den Verkehr unter den beiden Netzwerken zu verteilen. Das Leitverfahren wird gemäß den aktuellen Verkehrsbedingungen gewählt.
  • US-A-3824551 offenbart ein Pufferspeicher-Freigabesystem für einen automatischen Datenprozessor, das einen Pufferspeicher enthält, der zwischen einer Eingabe/Ausgabe-Vorrichtung wie z. B. einer Schreibmaschine und einem Massendatenspeichermittel angeordnet ist, welcher Pufferspeicher und welches Massenspeichermittel jeweils angepaßt sind, um Datenblöcke zu speichern, die aus einer Mehrzahl von Zeichen bestehen, von denen gewöhnlich weniger als alle sinnvoll sind - d. h. Daten tragende Zeichen. Im Schreibmodus werden die sinnvollen Zeichen eines Datenblockes aus dem Pufferspeicher in das Massenspeichermittel geleert, gefolgt vom Schreiben von Nullen, die die nicht verwendeten Zeichen in dem Puffer repräsentieren, und es sind Mittel vorgesehen, um den Pufferspeicher für eingegebene neue Daten von der Schreibmaschine verfügbar zu machen, sobald das Schreiben von Nullen beginnt. Im Lesemodus sind Mittel vorgesehen, um Zeichen von einem Datenblock auszudrucken, unmittelbar nachdem alle sinnvollen Zeichen in diesem Datenblock von dem Massenspeichermittel in den Pufferspeicher übertragen worden sind, ohne zu warten, bis die aufgezeichneten Nullen, die den sinnvollen Zeichen folgten, ausgelesen sind.
  • WO-A-8806760 offenbart einen Prozessor zur Verwendung in einem Digitaldatenverarbeitungssystem, das einen Hauptspeicher und einen Schreibpuffer enthält, um Schreibdaten und zugeordnete Adressen vom Puffer für eine Speicherung in den Speicherstellen zu puffern, die durch die zugeordneten Adressen im Hauptspeicher identifiziert werden. Als Antwort auf Auswahlereignisse wie z. B. eine Aufgabenumschaltung, die nicht außerhalb des Prozessors detektiert werden können, steuert der Prozessor ein Signal an, das dem Schreibpuffer ermöglicht, seine gesamten Inhalte in den Hauptspeicher zu übertragen. Der Schreibpuffer wiederum sperrt den Prozessor, während er Daten zum Hauptspeicher überträgt.
  • Die vorliegende Erfindung ist in den beigefügten unabhängigen Ansprüchen definiert, auf die nun verwiesen werden soll. Bevorzugte Merkmale kann man ferner in den dort hinzugefügten Unteransprüchen finden.
  • Die vorliegende Erfindung schafft ein Datenkommunikationssystem und -verfahren, so daß, wenn die Kommunikationsdatenlänge in einem Kommunikationsdatennetzwerk festgelegt ist, die Übertragungszeit aber nicht festgelegt ist, ohne Zeitverzögerung, aber mit einer geringen Anzahl von Hardwarevorrichtungen garantiert werden kann, daß Übertragungsdaten von einem Sender einen Empfänger erreicht haben.
  • Gemäß einem ersten Gesichtspunkt der vorliegenden Erfindung wird ein Datenkommunikationssystem geschaffen, aufweisend:
  • Datenkommunikationsnetzwerkmittel mit einer vorbestimmten Kommunikationspufferlänge;
  • Übertragungsmittel zum Übertragen verarbeiteter Daten;
  • Empfangsmittel zum Empfangen von Daten von dem Übertragungsmittel; und
  • zumindest ein Kommunikationsgarantie-Mittel, das betrieben werden kann, um Leerdaten, die länger als die Kommunikationspufferlänge sind, an das selbe Empfangsmittel wie dasjenige zu übertragen, an das vorhergehende verarbeitete Daten übertragen worden sind, unmittelbar nachdem das Übertragungsmittel die vorhergehenden verarbeiteten Daten übertragen hat;
  • wodurch die Ankunft der vorhergehenden, von dem Übertragungsmittel gesendeten verarbeiteten Daten beim Empfangsmittel garantiert wird.
  • Gemäß einem zweiten Gesichtspunkt der Erfindung wird ein Datenkommunikationsverfahren geschaffen, in welchem eine Mehrzahl von Verarbeitungseinheiten, von denen jede ein Hauptspeichermittel und ein Anweisungsverarbeitungsmittel aufweist und eine parallele Verarbeitung ausführt, über ein Datenkommunikationsnetzwerkmittel miteinander kommuniziert, das eine Mehrzahl von Kommunikationspuffern enthält und eine definierte Kommunikationspufferlänge hat, aufweisend:
  • einen Schritt zum Übertragen verarbeiteter Daten, bei dem eine erste Verarbeitungseinheit mit einem Übertragungsmittel verarbeitete Daten zu irgendeiner anderen Verarbeitungseinheit überträgt, die als Empfangsstation bestimmt ist; und
  • ein eine Kommunikation garantierender Schritt zum Übertragen von Leerdaten, die länger als die Kommunikationspufferlänge in dem Datenkommunikationsnetzwerkmittel sind, zur bestimmten Empfangsstation, unmittelbar nachdem die verarbeiteten Daten bei dem Schritt zum Übertragen verarbeiteter Daten übertragen werden;
  • wodurch die Ankunft von von der ersten Verarbeitungseinheit gesendeten verarbeiteten Daten an der Empfangsstation garantiert wird.
  • Gemäß einem dritten Gesichtspunkt der vorliegenden Erfindung wird ein Datensystem geschaffen, aufweisend:
  • eine Mehrzahl von Verarbeitungseinheiten, von denen jede ein Hauptspeichermittel und ein Anweisungsverarbeitungsmittel aufweist und welche Mehrzahl dafür eingerichtet ist, eine Parallelverarbeitung auszuführen;
  • ein Datenkommunikationsnetzwerkmittel, das dafür eingerichtet ist, beliebige zwei der Mehrzahl von Verarbeitungseinheiten über eine Mehrzahl von Kommunikationspuffern zu koppeln, und eine vorbestimmte Kommunikationspufferlänge hat;
  • wobei jedes Verarbeitungsmittel ein Übertragungsmittel aufweist, das dafür eingerichtet ist, verarbeitete Daten zu irgendeiner anderen Verarbeitungseinheit zu übertragen, die als Empfangsstation dient;
  • wobei jedes Verarbeitungsmittel ferner ein Empfangsmittel aufweist, das dafür eingerichtet ist, Daten von irgendeiner anderen Verarbeitungseinheit zu empfangen; und
  • ein Kommunikationsgarantie-Mittel, das dafür eingerichtet ist, Leerdaten mit einer größeren Datenlänge als die vorbestimmte Kommunikationspufferlänge zur Empfangsstation zu übertragen, unmittelbar nachdem ein Übertragungsmittel die verarbeiteten Daten übertragen hat;
  • wodurch die Ankunft der verarbeiteten Daten an einer als Empfangsstation dienenden Verarbeitungseinheit garantiert wird.
  • Die vorliegende Erfindung befaßt sich folglich mit einer parallel verarbeitenden Maschine, die mehrere Verarbeitungselemente (Verarbeitungseinheiten) zum Ausführen einer Verarbeitung auf paralleler Basis aufweist, ein Datenkommunikationsnetzwerk, über das zwei der mehreren Prozessorelemente mit mehreren Kommunikationspuffern zwischen ihnen miteinander gekoppelt sind und welches eine vorbestimmte festgelegte Kommunikationspufferlänge hat, und ein Barrieren-Netzwerk (barrier network) zum Synchronisieren einer Parallelverarbeitung, die von mehreren Prozessorelementen durchgeführt wird. In der parallel verarbeitenden Maschine gemäß der vorliegenden Erfindung enthält jedes der mehreren Verarbeitungselemente eine Übertragungs- oder Sendeeinheit, die andere Verarbeitungselemente als Empfangsstation bestimmt und verarbeitete Daten, welche in einem Hauptspeicher gespeichert sind, zur Empfangsstation überträgt, eine Empfangseinheit, die Übertragungsdaten von einer Übertragungseinheit in einem spezifischen Prozessorelement empfängt, und eine Kommunikationsgarantie- Einheit zum Übertragen von Leerdaten, welche länger als die festgelegte Kommunikationspufferlänge sind, zur gleichen Empfangsstation, unmittelbar nachdem eine Übertragungseinheit verarbeitete Daten überträgt. Ein als Sendestation dienendes Prozessorelement garantiert somit, daß verarbeitete Daten ein als Empfangsstation dienendes Prozessorelement erreicht haben.
  • Irgendein Prozessorelement kann ein aus einem Header und einem Rumpf bestehendes Paket erzeugen und übertragen. Die Kommunikationsgarantie-Einheit überträgt Leerdaten, die als aus einem Header und einem Rumpf bestehendes Paket geschaffen sind, wobei die Datenlänge in dem Paket größer als die Kommunikationspufferlänge in dem Datenkommunikationsnetzwerk ausgebildet ist. Ein als Sendestation dienendes Prozessorelement garantiert somit, daß vorhergehende verarbeitete Daten eine Empfangseinheit in einem als Empfangsstation dienenden Prozessorelement erreicht haben. Da Leerdaten übertragen werden, wobei die Datenlänge ihres Rumpfes länger als die Kommunikationspufferlänge in dem Datenkommunikationsnetzwerk ausgebildet ist, kann ein als Sendestation dienendes Prozessorelement garantieren, wie vorhergehende verarbeitete Daten und der Header von Leerdaten auf eine Empfangseinheit in einem als Empfangsstation dienenden Prozessorelement wirken. Zu diesem Zweck bettet die Kommunikationsgarantie-Einheit Steuerdaten, welche eine von einem als Empfangsstation dienenden Prozessorelement an den vorhergehenden verarbeiteten Daten aufzuführende Operation bezeichnen, im Header von Leerdaten ein und überträgt dann die Leerdaten.
  • Insbesondere stellt die Kommunikationsgarantie-Einheit die Datenlänge LD&sub0; eines Rumpfes in Leerdaten auf eine Datenlänge LD&sub1; + LD&sub2; ein; d. h. eine Summe der Kommunikationspufferlänge LD&sub1; in dem Datenkommunikationsnetzwerk und einer Übertragungsdatenlänge LD&sub2;, die der Zeit entspricht, die für den Stopp eines Datenempfangs erforderlich ist, der verhinderte daß eine Übertragung eines Leerpaketes endet, bis eine Verarbeitungseinheit, die als Empfangsstation dient, Steuerdaten im Header von Leerdaten interpretiert und eine bestimmte Operation ausführt und vor einem Empfang durch den Rumpf von Leerdaten beendet. Die Übertragungsdatenlänge LD&sub2; beispielsweise entspricht der Verarbeitungszeit, die erforderlich ist, bis ein als Empfangsstation dienendes Prozessorelement einen Datenempfang stoppt, um eine bestimmte Operation nach einem Interpretieren von Steuerdaten in einem Header zu beginnen. Dadurch kann ein als Sendestation dienendes Prozessorelement die Ankunft verarbeiteter Daten beim als Empfangsstation dienenden Prozessorelement, die Ankunft des Headers von Leerdaten und den Stopp einer Datenübertragung zum Durchführen von in Steuerdaten im Header bestimmten Operationen garantieren.
  • Insbesondere enthält jedes der Prozessorelemente, welches als eine parallel verarbeitende Maschine dient, einen Cache- Speicher, der in einer Anweisungsverarbeitungseinheit installiert ist und die gleichen Verarbeitungsdaten wie die in einen Hauptspeicher geschriebenen speichert: eine Speicherkonsistenz-Steuereinheit, die, wenn in den Hauptspeicher verarbeitete Daten geschrieben werden, die verarbeiteten Daten mit einer im Cache-Speicher schon registrierten Adresse vergleicht, die, wenn die Daten mit der Adresse übereinstimmen, die Adresse als eine Annullierungsadresse zur Verwendung beim Annullieren der alten Daten in dem Cache-Speicher in einer Warteschlange anordnet, die solche Adressen sequentiell aus der Warteschlange nimmt und dann eine Cache-Annullierung ausführt, um die Konsistenz zwischen den Inhalten des Hauptspeichers und des Cache-Speichers aufrechtzuerhalten; eine Cache- Annullierungs-Warteeinheit, die den Datenempfang für den Hauptspeicher stoppt, wenn die Speicherkonsistenz-Steuereinheit eine Cache-Annullierung ausführt; und eine Steuerdaten-Empfangseinheit, die, wenn der Header empfangener Daten als Anweisung zum Warten auf eine Cache-Annullierung interpretiert wird, die Cache-Annullierungs-Warteeinheit betätigt, um den Datenempfang zu stoppen, und der Speicherkonsistenz- Steuereinheit erlaubt, eine Cache-Annullierung auszuführen.
  • Die Kommunikationsgarantie-Einheit bettet Steuerdaten, die ein Abwarten einer Cache-Annullierung für ein als Empfangsstation dienendes Prozessorelement repräsentieren, in einem Header von Leerdaten ein und stellt die Datenlänge LD&sub0; eines Rumpfes der Leerdaten auf eine Datenlänge LD&sub1; + LD&sub2; ein; d. h. eine Summe der Kommunikationspufferlänge LD&sub1; in einem Datenkommunikationsnetzwerk und einer Übertragungsdatenlänge LD&sub2;, die der Verarbeitungszeit entspricht, die erforderlich ist, bis ein als Empfangsstation dienendes Prozessorelement die Steuerdaten in dem Header interpretiert und einen Datenempfang zum Abwarten einer Puffer-Annullierung stoppt. Folglich kann jede Übertragungseinheit garantieren:
  • I. die Ankunft verarbeiteter Daten an einem als Empfangsstation dienenden Prozessorelement;
  • II, die Ankunft des Headers von Leerdaten; und
  • III. das Schreiben in einen Hauptspeicher und die Beendigung einer Cache-Annullierung, welche Operationen sind, die in dem Header bestimmt sind, um an vorhergehenden Übertragungsdaten durchgeführt zu werden.
  • Jedes Prozessorelement enthält eine Übertragungsende- Meldeeinheit, die die Beendigung einer Übertragung von Leerdaten detektiert und eine Übertragungsende-Meldung an ein Barrieren-Netzwerk ausgibt. Wenn Übertragungsende-Meldungen von allen Prozessorelementen empfangen werden, die eine Parallelverarbeitung ausgeführt haben, dehnt das Barrieren- Netzwerk eine Steuerung aus, die eine synchrone Steuerung einschließt, worin eine Steuerung zum nächsten Schritt einer Parallelverarbeitung weitergeleitet wird.
  • Jedes der Prozessorelemente, die als Parallelverarbeitungsmaschine dienen, enthält einen Hauptspeicher, eine Hauptsteuereinheit, eine Skalareinheit, die eine zentrale Verarbeitungseinheit zum Ausführen einer skalaren Berechnung und einen Cache-Speicher enthält, eine Vektoreinheit zum Ausführen einer Vektorberechnung, eine Datenübertragungseinheit (Datenübertragungsprozessor) zum Übertragen von Daten an ein oder von einem Datenkommunikationsnetzwerk, eine synchrone Verarbeitungseinheit (Barrieren-Verarbeitungseinheit) zum Ausdehnen einer Synchronsteuerung über ein Barrieren-Netzwerk und eine Eingabe/Ausgabe-Einheit zum Eingeben oder Ausgeben von Daten in ein externes oder von einem externen Gerät. Nötigenfalls kann ein Prozessorelement die Vektoreinheit und/oder Eingabe/Ausgabe-Einheit nicht enthalten. Das Datenkommunikationsnetzwerk zum Koppeln mehrerer Prozessorelemente auf einer Eins-zu-Eins-Basis ist ein Pufferspeicher enthaltendes Crossbar-Netzwerk.
  • Gemäß dem vorhergehenden Datenkommunikationssystem der vorliegenden Erfindung kann, wenn ein Übertragungsende die Beendigung einer Übertragung von Leerdaten detektiert, die länger als die Kommunikationsdatenlänge in dem Kommunikationsnetzwerk sind, garantiert werden, daß alle vorher übertragenen Daten an einer Empfangsstation angekommen sind. Ein Paket, das aus einem verschiedene Arten von Steuerinformationen für die Empfangsstation enthaltenden Header und einem verarbeitete Daten selbst enthaltenden Rumpf besteht, wird insbesondere erzeugt und dann als Übertragungsdaten für eine Kommunikationssitzung übertragen. Die Datenlänge in dem Rumpf von Leerdaten ist größer als die Kommunikationspufferlänge, wodurch, wenn ein Übertragungsende eine Übertragung von Leerdaten beendet, garantiert werden kann, daß die vorhergehenden Speicherdaten und der Header der Leerdaten an der Empfangsstation angekommen sind. Wenn Steuerdaten, die eine von einer Empfangseinheit in einer Empfangsstation auszuführende bestimmte Operation repräsentieren, in dem Header von Leerdaten eingebettet sind, kann daher, falls die Datenlänge in dem Rumpf von Leerdaten, die als Paket gebildet sind, eine Summe: Kommunikationspufferlänge + Übertragungsdatenlänge entsprechend der Zeit ist, die erforderlich ist, bis die Steuerdaten in dem Header von Leerdaten interpretiert sind und eine bestimmte Operation gestartet wird, bei Beendigung einer Übertragung von Leerdaten an einem Übertragungsende ein Empfangsende die Beendigung aller Operationen garantieren, die für vorhergehende Übertragungsdaten benötigt werden, und die Steuerung an die nächste Verarbeitung weitergibt.
  • In dem vorher erwähnten Datenkommunikationssystem gemäß der vorliegenden Erfindung werden ein Speicherzugriff auf einen Hauptspeicher für zur Empfangsstation übertragene Daten und eine Cache-Annulllierung für einen Cache-Speicher ausgeführt, um die Konsistenz zwischen den Inhalten des Hauptspeichers und des Cache-Speichers aufrechtzuerhalten, so daß eine Sendestation die Verarbeitung einer Empfangsstation garantieren kann, Um genauer zu sein, führt ein Prozessorelement, das Übertragungsdaten empfangen hat, einen Speicherzugriff durch, um die Übertragungsdaten in einen Hauptspeicher zu schreiben, und führt eine Cache-Annullierung aus, um alte, im Cache- Speicher vorhandene Daten zu annullieren. Die Cache-Annullierung wird als Puffer-Annullierung (BI) bezeichnet. Die Puffer-Annullierung wird von einer Speicherkonsistenz-Steuerschaltung in einer Hauptsteuereinheit (MCU) ausgeführt, die in einem Prozessorelement enthalten ist. Die Speicherkonsistenz-Steuerschaltung enthält einen Speicher, der als zweites Etikettfeld TAG2 bezeichnet ist, um registrierte Adressen des Cache-Speichers zu speichern. Eine Speicheradresse wird mit einer Cache-Adresse verglichen, die in dem zweiten Etikettfeld TAG2 enthalten ist. Wenn die Adressen miteinander übereinstimmen, wird eine Cache-Annullierungs-Adresse (BI-Adresse) erzeugt. Im Gegensatz dazu umfaßt ein in einer zentralen Verarbeitungseinheit installierter Cache-Speicher ein erstes Etikettfeld TAG1, in welchem registrierte Cache-Adressen gespeichert sind, und einen Datenteil. Eine Registrierungsadresse in dem ersten Etikettfeld TAG1, die der von der Hauptsteuereinheit erzeugten Cache-Annullierungs-Adresse entspricht, wird annulliert. Nachdem der Hauptspeicher neu beschrieben ist, wird ein Zugriff auf alte Daten in dem Cache- Speicher gesperrt. Folglich werden die Inhalte des Hauptspeichers und des Cache-Speichers zueinander konsistent.
  • Eine Annullierung des ersten Etikettfeldes TAG1 gemäß von der Hauptsteuereinheit erzeugten Cache-Annullierungs-Adressen wird nicht sofort ausgeführt, sondern vorübergehend in einem Stapelspeicher plaziert, der als BI-Warteschlange (Bi-Adressier-Warteschlange) bezeichnet wird. Bevor die BI-Warteschlange voll wird, wird ein Datenempfang als Teil eines Speicherzugriffs gestoppt, und Cache-Annullierungs-Adressen werden sequentiell von der BI-Warteschlange abgerufen. Eine Annullierung des ersten Etiketts TAG1 wird dann ausgeführt. Diese Art von Steuerung zum Anpassen der Inhalte des Hauptspeichers und Cache-Speichers wird ebenfalls durchgeführt, wenn von einem anderen Prozessorelement Speicherdaten empfangen werden.
  • Das Datenkommunikationssystem gemäß der vorliegenden Erfindung kann garantieren, daß, wenn ein Übertragungsende einer Übertragung von Leerdaten beendet, ein als Empfangsende dienendes Prozessorelement die Cache-Annullierung für eine Speicherkonsistenz-Steuerung beendet. Für diese Garantie werden Steuerdaten, die ein Abwarten einer Cache-Annullierung am Übertragungsende repräsentieren, in dem Kopf von Leerdaten eingebettet, und die Leerdaten werden übertragen. Die Steuerdaten in dem Header, die ein Abwarten einer Cache-Annullierung repräsentieren, werden durch eine Steuerdaten empfangende Einheit interpretiert. Eine Einheit zum Abwarten einer Cache-Annullierung wird dann aktiviert. Die Einheit zum Abwarten einer Cache-Annullierung stoppt einen Empfang von Speicherdaten, um eine Cache-Annullierung auszuführen, wartet darauf, daß eine Puffer-Annullierung endet, und startet dann einen Datenempfang erneut.
  • Mit dem Arbeitsvorgang eines Abwartens einer Cache- Annullierung, der von einer Empfangsstation durchgeführt wird, wird die Zeit, die erforderlich ist, bis ein Datenempfang begonnen wird, garantiert, indem ein Datenempfang gestoppt wird, bis eine Empfangseinheit eine Cache-Annullierung beendet. Wenn eine Übertragung von Leerdaten endet, führt die Empfangsstation ein Abwarten einer Puffer-Annullierung aus, um eine Datenübertragung vorübergehend zu stoppen. Alle Cache-Annullierungs-Adressen, die vorherige Speicherdaten anzeigen, werden dann sequentiell aus einer BI-Warteschlange gelesen. Eine Cache-Annullierung wird dann ausgeführt, um die Adressen in dem ersten Etikettfeld TAG1 zu annullieren. Die BI-Warteschlange wird geleert. Eine Cache-Annullierung endet (die Konsistenz zwischen den Inhalten des Hauptspeichers und des Cache-Speichers ist erreicht). Danach wird ein Abwarten einer Cache-Annullierung freigegeben, um einen Datenempfang erneut zu starten.
  • Daten können auf zahlreiche Prozessorelemente verteilt und einer Parallelverarbeitung unterzogen werden. In diesem Fall kann, wenn ein Übertragungsende bestätigt, daß eine Übertragung von Leerdaten unmittelbar nach Übertragung verarbeiteter Daten geendet hat, garantiert werden, daß eine Empfangsstation den Speicherzugriff für einen Hauptspeicher und eine Cache-Annullierung beendet hat. Verwendet man die Beendigung der Übertragung von Leerdaten durch alle Prozessorelemente als synchrone Information, kann eine Steuerung zur parallelen Verarbeitung beim nächsten Schritt mit hoher Geschwindigkeit weitergeleitet werden.
  • Für ein besseres Verständnis der Erfindung, und um zu zeigen, wie selbige in die Praxis umgesetzt werden kann, wird nun rein beispielhaft auf die beiliegenden Zeichnungen verwiesen, in welchen:
  • Fig. 1 ein Blockdiagramm einer parallel verarbeitenden Maschine ist, in der ein Datenkommunikationssystem der vorliegenden Erfindung implementiert ist;
  • Fig. 2 ein schematisches erläuterndes Diagramm des Datenkommunikationsnetzwerks in Fig. 1 ist;
  • Fig. 3 ein Blockdiagramm ist, das eine Ausführungsform eines Prozessorelements in Fig. 1 zeigt;
  • Fig. 4 ein Blockdiagramm ist, das eine andere Ausführungsform eines Prozessorelements in Fig. 1 zeigt;
  • Fig. 5 ein erläuterndes Diagramm ist, das einen Globalspeicher in dem parallel verarbeitenden Element in Fig. 1 und eine Parallelverarbeitung zeigt;
  • Fig. 6 ein Blockdiagramm ist, das eine Ausführungsform einer Hauptsteuereinheit zeigt, die in einem Prozessorelement installiert ist;
  • Fig. 7 ein Blockdiagramm ist, das die Details der Skalareinheit in Fig. 6 zeigt;
  • Fig. 8 ein erläuterndes Diagramm ist, das einen Zustand einer Kommunikation zwischen Elementen gemäß der vorliegenden Erfindung zeigt;
  • Fig. 9 ein erläuterndes Diagramm ist, das einen Zustand zeigt, in welchem für die Kommunikation in Fig. 8 verwendete Leerdaten in einem Hauptspeicher gespeichert sind;
  • Fig. 10 ein Zeitdiagramm ist, das eine Datenkommunikation zwischen den Elementen in Fig. 8 zeigt; und
  • Fig. 11 ein Zeitdiagramm ist, das eine fundamentale Datenübertragung unter Verwendung von Leerdaten gemäß der vorliegenden Erfindung zeigt.
  • Fig. 1 zeigt schematisch eine parallel verarbeitende Maschine, in der ein Datenkommunikationssystem der vorliegenden Erfindung implementiert ist. In dieser parallel verarbeitenden Maschine sind n Einheiten von Prozessorelementen 10-1, 10-2 etc. und 10-n über ein Datenkommunikationsnetzwerk 12 wie z. B. ein Crossbar-Netzwerk, das aus mehreren Kommunikationspuffern besteht, so miteinander verbunden, daß sie auf einer Eins-zu-Eins-Basis miteinander gekoppelt sind. Die parallel verarbeitende Maschine enthält ferner ein Barrieren-Netzwerk 14 zum Synchronisieren einer parallelen Verarbeitung, die von den Prozessorelementen 10-1 bis 10-n durchgeführt wird. Bis zu n = 222 Einheiten Prozessorelemente können als Prozessorelemente 10-1 bis 10-n enthalten sein. Wenn z. B. der Durchsatz eines Prozessorelements 1,6 Giga-FLOPS beträgt, liefern die Prozessorelemente 10-1 bis 10-n einen Spitzendurchsatz von insgesamt 355,2 Giga-FLOPS.
  • In Fig. 2 ist die schematische Konfiguration des Datenkommunikationsnetzwerk 12 in Fig. 1 unter der Annahme dargestellt, daß fünf Einheiten Prozessorelemente 10-1 bis 10-5 installiert sind. In Fig. 2 wird eine Datenkommunikation von vier Prozessorelementen 10-1 bis 10-4 zu einem Prozessorelement 10-5 ausgeführt. Das Datenkommunikationsnetzwerk 12 hat eine hierarchische Struktur, in der das Prozessorelement 10- 5, das als eine gemeinsam genutzte Empfangsstation dient, eine höhere Rangordnung als die vier, als Sendestationen dienenden Prozessorelemente 10-1 bis 10-4. In der hierarchischen Struktur, die Übertragungspuffer 16-1 bis 16-7 dieser in Fig. 2 gezeigten Ausführungsform nutzt, wurde ein Kommunikationsweg zwischen den Prozessorelementen 10-1 bis 10-5 eingerichtet. Eine von den anderen Prozessorelementen 10-2 bis 10-4 angeforderte Datenübertragung wird zwischenzeitlich in den Wartezustand versetzt. Konkret hat das Prozessorelement 10-1 auf die Puffer 16-1, 16-5 und 16-7 zugegriffen, um einen zum Prozessorelement 10-5 führenden Kommunikationsweg einzurichten, und führt gerade eine Datenübertragung aus. Im Gegensatz dazu folgt das Prozessorelement 10-2 mit einem Zugreifen auf den Puffer 16-2 nach, scheitert aber beim Zugreifen auf den Puffer 16-5 wegen einer Prioritätssteuerung. Nachdem Daten zum Puffer 16-2 übertragen sind, wird das Prozessorelement 10-2 in den Wartezustand versetzt. Das Prozessorelement 10-3 folgt mit einem Zugreifen auf den Übertragungspuffer 16-3, scheitert aber beim Zugreifen auf den Übertragungspuffer 16-6 wegen der Prioritätssteuerung durch das Prozessorelement 10- 4. Das Prozessorelement 10-3 hat eine Datenübertragung nach einer Übertragung von Daten bis zum Übertragungspuffer 16-3 gestoppt. Das Prozessorelement 10-4 folgt mit einem Zugreifen auf den Übertragungspuffer 16-6, scheitert aber beim Zugreifen auf den Übertragungspuffer 16-7 in der letzten Stufe, weil durch das Prozessorelement 10-1 schon auf den Übertragungspuffer 16-7 zugegriffen worden ist. Das Prozessorelement 10-4 wird somit in den Wartezustand versetzt.
  • In einer Datenkommunikation zwischen Prozessorelementen über das Datenkommunikationsnetzwerk, welches aus in Fig. 2 dargestellten Übertragungspuffern besteht, ist die Kommunikationsdatenlänge in dem Datenkommunikationsnetzwerk auf einer festgelegten Basis in Abhängigkeit von der Anzahl verwendeter Übertragungspuffer bestimmt. Die Übertragungszeit ist wegen der aus einer Prioritätssteuerung von Puffern resultierenden Latenzzeit jedoch nicht auf einer festgelegten Basis bestimmt.
  • Fig. 3 zeigt eine interne Konfiguration von jedem der in Fig. 1 gezeigten Prozessorelemente 10-1 bis 10-n. Ein Prozessorelement 10 umfaßt eine Hauptsteuereinheit (MCU) 18, einen Hauptspeicher (MSU) 20, eine Skalareinheit 22, eine Vektoreinheit 24, einen Datenübertragungsprozessor 26 zum Übertragen von Daten über ein Datenkommunikationsnetzwerk 12, eine Barrieren-Verarbeitungseinheit 28 zum Ausdehnen einer Synchronsteuerung auf ein Barrieren-Netzwerk 14 und ein Eingabe/Ausgabe-Teilsystem 30 zum Ausdehnen einer Eingabe/Ausgabe- Steuerung auf externe Speicher. Die Skalareinheit 22 enthält eine CPU 32 und einen Cache-Speicher 34. Der Cache-Speicher 34 besteht aus einem Datenteil 38, in welchem die gleichen Daten wie die im Hauptspeicher 20 vorhandenen gespeichert sind, und einem ersten Etikettfeld TAG1 36, in welchem Speicheradressen von in dem Datenteil 38 gespeicherten Daten enthalten sind. Die Hauptsteuereinheit 18 enthält ein zweites Etikettfeld TAG2 40 und eine Puffer-Annullierungs-Warteschlange (BI-Warteschlange), in der Puffer-Annullierungs- Adressen in einer Warteschlange angeordnet sind. Das zweite Etikettfeld 40 in der Hauptsteuereinheit 18 enthält Adressen, die die im ersten Etikettfeld 36 in dem in der Skalareinheit 22 installierten Cache-Speicher 34 vorhandenen Adressen einschließt. Beispielsweise enthält das erste Etikettfeld 36 Adressen für z. B. vier Blöcke unter der Annahme, daß ein Block aus sechzehn Bytes besteht. Im Gegensatz dazu enthält das zweite Etikettfeld 40 Blockadressen als Cache-Adressen unter der Annahme, daß ein Block aus 256 Bytes oder einem vierfachen Wert der Anzahl Bytes in einem Block des ersten Etikett-Feldes 36 besteht.
  • Wenn eine andere Verarbeitungseinheit als die CPU 32 einen Speicherzugriff auf den Hauptspeicher 20 durchführt, nimmt die Hauptsteuereinheit 16 Bezug auf das zweite Etikettfeld 40 für eine Speicheradresse. Falls eine übereinstimmende oder konsistente Adresse vorhanden ist, wird die Adresse als Puffer-Annullierungs-Adresse (BI-Adresse) in die Puffer- Annullierungs-Warteschlange 42 eingereiht. In der Puffer- Annullierungs-Warteschlange 42 eingereihte Annullierungs- Adressen werden an die CPU 32 gemäß dem bestimmten Zeitpunkt gesendet, zu dem die Warteschlange voll wird. Falls konsistente Adressen in dem ersten Etikettfeld 36 in dem Cache- Speicher 34 vorhanden sind, werden die konsistenten Adressen annulliert. Wenn eine Puffer-Annullierung für den Cache- Speicher 34 ausgeführt wird, indem Puffer-Annullierungs- Adressen aus der Puffer-Annullierungs-Warteschlange 42 genommen werden, wird der Empfang von Speicherdaten für die Hauptsteuereinheit 18 in den gestoppten Zustand versetzt.
  • Falls der Hauptspeicher 20 ein gemeinsam genutzter Speicher ist, der auch von einer in einer anderen Hauptsteuereinheit installierten Skalareinheit genutzt wird, wird gleichzeitig mit einer Puffer-Annullierung für den Cache-Speicher 34 eine Serialisierung durchgeführt. Während der Serialisierung werden von der Puffer-Annullierungs-Warteschlange 42 abgerufene Puffer-Annullierungs-Adressen zu einer in einer anderen Hauptsteuereinheit installierten Puffer-Annullierungs- Warteschlange übertragen. Eine Puffer-Annullierung wird auf jedem Cache-Speicher durchgeführt, der mit einer CPU verbunden ist, die mit der obigen anderen Hauptsteuereinheit verbunden ist. Die Inhalte des Hauptspeichers 20 und des Cache- Speichers 34 werden somit miteinander konsistent.
  • Fig. 4 zeigt eine andere Ausführungsform eines in Fig. 1 gezeigten Prozessorelements. Diese Ausführungsform enthält nicht die Vektoreinheit 24 und das Eingabe/Ausgabe-Teilsystem 30, in Fig. 3 dargestellt sind. Das Prozessorelement 10 mit der in Fig. 4 gezeigten Konfiguration kann als eines von Prozessorelementen verwendet werden, die eine parallel verarbeitende Maschine bilden. Sogar in dem Prozessorelement 10 in Fig. 4 besteht der Cache-Speicher 34 in der Skalareinheit 22 aus dem ersten Etikettfeld (TAG1) 36 und einem Datenteil 38. Die Hauptsteuereinheit 18 enthält das zweite Etikettfeld (TAG2) 40 und eine Puffer-Annullierungs-Warteschlange (BI- Warteschlange) 42.
  • Fig. 5 zeigt eine Konfiguration eines Speichers, der aus Hauptspeichern 20-1 bis 20-n besteht, die in Prozessorelementen 10-1 bis 10-n installiert sind, die eine parallel verarbeitende Maschine in Fig. 1 bilden. Die Hauptspeicher 20-1 bis 20-n, die in den Prozessorelementen 10-1 bis 10-n installiert sind, werden als lokale Hauptspeicher in den jeweiligen Prozessorelementen verwendet. Teile der Hauptspeicher 20-1 bis 20-n, die in Fig. 5 schraffiert sind, sind als gemeinsam genutzte Speicherbereiche 44-1 bis 44-n zugewiesen. Die gemeinsam genutzten Speicherbereiche 44-1 bis 44-n werden unter Verwendung logischer Adressen verwaltet, die in Einheiten von mehreren physikalischen Adressen gemeinsam genutzter Speicherbereiche definiert sind, was folglich einen globalen Speicher 46 schafft, der von allen Prozessorelementen 10-1 bis 10-n gemeinsam genutzt werden soll. Der globale Speicher 46 besteht aus den mehreren Prozessorelementen 10-1 bis 10-n. Dank dieser Konfiguration wird, nachdem von dem globalen Speicher 46 gelesene Daten auf die Prozessorelemente 10-1 bis 10-n verteilt sind, eine Parallelverarbeitung ausgeführt, wenn die Ergebnisse der Verarbeitung an einer bestimmten physikalischen Adresse in dem globalen Speicher 46 gespeichert sind. Während einer Parallelverarbeitung unter Verwendung des globalen Speichers 46 wird über das Datenkommunikationsnetzwerk eine Datenübertragung zwischen Prozessoren durchgeführt.
  • Nimmt man an, daß fünf Prozessorelemente eine DO-Schleife DO (0, 100) als parallele Verarbeitung ausführen, wird jedem der fünf Prozessorelenmente die parallele Verarbeitung der DO-Schleife zugeordnet, die in I = 20 Niveaus ineinander geschaltet ist. Daten, die für die DO-Schleife bei einem Niveau benötigt werden, werden aus gemeinsam genutzten Speicherbereich in einem spezifischen Prozessorelement gelesen und über das Datenkommunikationsnetzwerk 12 dem betreffenden Prozessorelement zugeordnet. Die fünf Prozessorelemente führen somit eine DO-Schleife aus, indem 20 ineinander geschachtelte DO-Schleifen auf paralleler Basis verarbeitet werden. Wenn jedes Prozessorelement mit der zugeordneten DO-Schleife fertig ist, werden verwendete Daten zu den gemeinsam genutzten Speicherbereichen in den spezifischen Prozessorelementen, in denen die Daten vorher lagen, übertragen und in diese geschrieben. Das Barrieren-Netzwerk 14 prüft eine Beendigung des Schreibens. Eine Steuerung wird dann an die parallele Verarbeitung einer nachfolgenden DO-Schleife weitergegeben. Wie oben erwähnt wurde, wird eine parallele Verarbeitung ausgeführt, indem Daten von spezifischen Bereichen in dem globalen Speicher 46 auf die mehreren Prozessorelemente 10-1 bis 10-n verteilt werden. Diese Anordnung einer parallelen Verarbeitung erfordert eine Datenkommunikation der Art, daß verarbeitete Daten zu den Bereichen in dem globalen Speicher 46, in denen die Daten vorher lagen, übertragen und in diese geschrieben werden und gleichzeitig der Abschluß der Speicherkonsistenz-Steuerung garantiert wird, die die Konsistenz zwischen den Inhalten des globalen Speichers 46 und jedem der Cache-Speicher durch Ausführen einer Annullierung auf den Cache-Speichern erreicht.
  • Fig. 6 zeigt die Details einer in einem Prozessorelement der vorliegenden Erfindung eingebauten Hauptsteuereinheit. Die Hauptsteuereinheit 18 hat Vektoreinheitszugriffs-Pipelines 60-1, 60-2, 60-3 und 60-4, die zu der Vektoreinheit 24 führen. In dieser Ausführungsform führt die Vektoreinheit 24 vier Operationen einer Pipelineverarbeitung für eine Masken- Pipeline, eine Multiplikations-Pipeline, eine Addition/Logik- Berechnungs-Pipeline und eine Divisions-Pipeline aus. Die vier Vektoreinheitszugriffs-Pipelines 60-1 bis 60-n sind daher vier Operationen einer Pipelineverarbeitung zugeordnet. Speicherkonsistenz-Steuereinheiten 64-1 bis 64-4 sind in Verbindung mit den Vektoreinheitszugriffs-Pipelines 60-1 bis 60- 4 enthalten. Jede der Speicherkonsistenz-Steuereinheiten 64-1 bis 64-4, z. B. die Speicherkonsistenz-Steuereinheit 64-1, enthält ein zweites Etikettfeld 70-1 und eine Puffer-Annullierungs-Warteschlange 72-1.
  • Eine Skalareinheitszugriffs-Pipeline 62 und eine Speicherkonsistenz-Steuereinheit 66 sind enthalten, um mit einem Speicherzugriff zurechtzukommen, zu dem die Skalareinheit 22 und der Datenübertragungsprozessor 26 von anderen Prozessorelementen aufgefordert werden, die über das Datenkommunikationsnetzwerk 12 gekoppelt sind. Die Speicherkonsistenz-Steuereinheit 66 hat ein zweites Etikettfeld 40 in Verbindung mit dem ersten Etikettfeld 36 in dem Cache-Speicher 34 in der Skalareinheit 22. Die Speicherkonsistenz-Steuereinheit 66 enthält ferner eine Puffer-Annullierungs-Warteschlange 42, so daß, wenn eine Speicherzugriffsadresse oder eine Adresse, bei der ein Speicherzugriff angefordert wird, mit einer Adresse in dem zweiten Etikettfeld 40 übereinstimmt, die Adresse als Puffer-Annullierungs-Adresse in die Warteschlange angeordnet wird.
  • Jede der Vektoreinheitszugriffs-Pipelines 60-1 bis 60-4, die Skalareinheitszugriffs-Pipeline 62 und Speicherkonsistenz-Steuereinheiten 64-1 bis 64-4 und 66 empfängt eine Speicherzugriffsanforderung über eine Prioritätsreihenfolge- Schaltung 50. Die Prioritätsreihenfolge-Schaltung 50 ist über eine Schnittstelle 48 mit vier von der Vektoreinheit 24 ausgehenden Zugriffswegen gekoppelt. Die Prioritätsreihenfolge- Schaltung 50 gibt eine Speicherzugriffsanforderung von der Skalareinheit 22 über eine Schnittstelle 52, die von einem Selektor 56 ausgewählt wird, oder von irgendeinem anderen Prozessorelement durch den Datenübertragungsprozessor 26 über eine Schnittstelle 52 ein. Irgendeine der durch die Speicherkonsistenz-Steuereinheit 66 in der Skalareinheit und durch die Speicherkonsistenz-Steuereinheiten 64-1 bis 64-4 in der Vektoreinheit gelieferten Puffer-Annullierungs-Adressen wird von einem Selektor 68 ausgewählt und in die CPU 32 in der Skalareinheit 22 eingespeist. Basierend auf den ausgewählten Adressen wird eine Puffer-Annullierung an dem Cache-Speicher 30 durchgeführt; d. h. Adressen in dem ersten Etikettenfeld 36 werden annulliert.
  • Fig. 7 zeigt die Details der Skalareinheitszugriffs- Pipeline 62 und Speicherkonsistenz-Steuereinheit 66, die in Fig. 6 gezeigt sind. Die Skalareinheitszugriffs-Pipeline 62 umfaßt mehrere Register von einem Register 74 bis zu einem Register 84 in der letzten Stufe, worin die mehreren Register durch eine Mehrstufenverbindung miteinander gekoppelt sind. Von dem Register 74 in der ersten Stufe zum Register 84 in der letzten Stufe werden z. B. Zugriffsdaten in einem 15-Takt- Zyklus übertragen. Während der Übertragung von dem Register 80 zum Register 82, das sich in der Mitte der Pipeline befindet, wird ein Speicherzugriff oder Ladezugriff für den Hauptspeicher 20 ausgeführt. In der Speicherkonsistenz-Steuereinheit 66 wird die Ausgabe eines Registers 86 in Register 88 und 90 verzweigt. Das zweite Etikettfeld 40 ist in einer dem Register 88 folgenden Stufe installiert. In dem zweiten Etikettfeld 40 werden Adreßdaten als Blockadressen für Blöcke, die jeweils aus z. B. 256 Bytes bestehen, durch Speicherzugriff gespeichert. Von dem zweiten Etikettfeld 40 werden Adressen in ein Register 92 synchron mit der Übertragung von Daten für einen Speicherzugriff auf ein Register 94 abgerufen. Ein Komparator 96 bestimmt, ob die Daten mit den Adressen übereinstimmen oder nicht. Falls die Adressen für einen Speicherzugriff mit den Adressen übereinstimmen, die in dem zweiten Etikettfeld 40 vorhanden sind, weist der Komparator 96 die Puffer-Annullierungs-Warteschlange 42 an, eine Speichersteuerung auszuführen. Die Speicheradressen in dem Register 94 werden als Puffer-Annullierungs-Adressen in der Puffer-Annullierungs-Warteschlange 42 in einer Warteschlange angeordnet.
  • Der Zustand eines Vergleichs zum Bestimmen einer Puffer- Annullierungs-Adresse, die in der Puffer-Annullierungs-Warteschlange 42 eingereiht werden soll, wird von einer Cache- Annullierungs-Steuereinheit 98 überwacht. Wenn eine bestimmte Anzahl Adressen, die Zahl von Adressen, die die Puffer- Annullierungs-Warteschlange 42 nicht gefüllt haben, in der Puffer-Annullierungs-Warteschlange 42 gestapelt worden ist, gibt die Cache-Annullierungs-Steuereinheit 98 an die CPU 32 ein Puffer-Annullierungs-Signal ab. Zur gleichen Zeit aktiviert die Cache-Annullierungs-Steuereinheit 98 eine Cache- Annullierungs-Warteeinheit 100. Die Cache-Annullierungs- Warteeinheit 100 gibt ein Sperrsignal an die Schnittstellen 52 und 54 in Fig. 6 aus, was so den Datenempfang von der Skalareinheit 22 oder irgendeinem anderen Prozessorelement für den Hauptspeicher 18 stoppt.
  • Wie oben erwähnt wurde, stoppt die Cache-Annullierungs- Steuereinheit 98 einen Empfang von Speicherdaten und ruft dann Puffer-Annullierungs-Adressen sequentiell aus der Puffer-Annullierungs-Warteschlange 42 ab. Die Cache-Annullierungs-Steuereinheit 98 überträgt dann über ein Register 104 die Adressen zu dem Selektor 68 und zu der CPU 32. Folglich wird eine Puffer-Annullierung auf dem Cache-Speicher 34 durchgeführt; d. h. Adressen in dem ersten Etikettfeld 36 werden annulliert. In dem Register 104 vorhandene Puffer- Annullierungs-Adressen werden von einem Decodierer 106 interpretiert. Der Decodierer 106 erzeugt Serialisierungssignale zu anderen Hauptsteuereinheiten.
  • In dieser Ausführungsform ist für den Hauptspeicher 20 nur eine Hauptspeichereinheit installiert. Eine Serialisierung, die erforderlich ist, wenn mehrere Hauptsteuereinheiten auf einen einzigen Hauptspeicher zugreifen, muß daher nicht ausgeführt werden. Jedoch besteht eine Möglichkeit, daß ein einziger Hauptspeicher 20 von mehreren Hauptsteuereinheiten 18, die in einem einzigen Prozessorelement installiert sind, gemeinsam genutzt werden kann. Daher wird vorher Hardware installiert, um den Decodierer 106 beim Abgeben von Serialisierungssignalen an andere Hauptsteuereinheiten zu unterstützen.
  • Fig. 8 ist ein erläuterndes Diagramm, das die Prozessorelemente 10-1 bis 10-n zeigt, um die Einrichtungen aufzuzeigen, die für ein Datenkommunikationsnetzwerk der vorliegenden Erfindung erforderlich sind, worin Daten von dem Prozessorelement 10-1 zum Prozessorelement 10-n übertragen werden. Die Einrichtungen einer Kommunikationsgarantie-Steuereinheit 108 und einer Übertragungsende-Meldeeinheit 110 werden für eine Hauptsteuereinheit 18-1 in dem als Übertragungsende dienenden Prozessorelement 10-1 verifiziert. Auf der anderen Seite werden für eine Hauptsteuereinheit 18-n in dem als Empfangsende dienenden Prozessorelement 10-n die Einrichtungen einer Steuerdaten-Empfangseinheit 102, einer Speicherkonsistenz-Steuereinheit 66 und einer Zugriffspipeline 62 verifiziert. Das Datenkommunikationsnetzwerk 12 führt eine Datenübertragung innerhalb einer durch die Übertragungspuffer 16-1 bis 16-n definierten Kommunikationspufferlänge aus.
  • Fig. 9 zeigt die Hauptsteuereinheiten 20-1 und 20-n in den Prozessorelementen 10-1 und 10-n im Zustand einer Datenkommunikation. Während einer Datenkommunikation gemäß der vorliegenden Erfindung erzeugt das als Übertragungsende dienende Prozessorelement 10-1 ein Paket, das aus einem Header und einem Rumpf aufgebaut ist, und überträgt dann Speicherdaten an das als Empfangsstation dienende Prozessorelement 10- n. Gemäß der vorliegenden Erfindung folgt der Übertragung von Speicherdaten die Übertragung eines Pakets von Leerdaten zur Verwendung beim Garantieren der Operation eines Empfangsendes, wobei die Verarbeitung von einem Übertragungsende allein durchgeführt wird. Ein Paket Leerdaten besteht ähnlich einem Paket von normalen Daten aus einem Header und einem Rumpf. Die Datenlänge in dem Rumpf ist als Summe der Kommunikationspufferlänge in dem Datenkommunikationsnetzwerk 12 und der Übertragungsdatenlänge entsprechend der Verarbeitungszeit vorgesehen, die erforderlich ist, bis die Steuerdaten- Empfangseinheit 102 in dem als Empfangsstation dienenden Prozessorelement 12-n den Header des Pakets Leerdaten interpretiert und die Einheit zum Abwarten einer Puffer-Annullierung einen Datenempfang stoppt. Der Rumpf eines Pakets Leerdaten, die verwendet werden, um die Operation des als Empfangsstation dienenden Prozessorelements 10-n zu garantieren, die mit der Beendigung einer Puffer-Annullierung für alle Speicherdaten enden, wird vorher in jedem der Leerdaten-Speicherbereiche 114-1 und 114-n in den Hauptspeichern 20-1 und 20-n gespeichert. Daten, die im Rumpf von Leerdaten eingebettet und in den Leerdaten-Speicherbereichen 114-1 und 114-n gespeichert sind, sind sogenannter Müll, d. h. für jede Verarbeitung in den jeweiligen Prozessorelementen bedeutungslos. Die Datenlänge des Mülls ist signifikant beim Garantieren einer Zeitspanne, die erforderlich ist, um die Operationen einer Empfangsstation abzuschließen, die mit einer Puffer- Annullierung enden. Wenn die Kommunikationspufferlänge in dem Datenkommunikationsnetzwerk 12 mit einem als Empfangsende dienenden Prozessorelement variiert, muß die Datenlänge sogenannten Mülls, der in jedem der Leerdaten-Speicherbereiche 114-1 und 114-n gespeichert ist, geändert werden. Konkret werden in den Leerdaten-Speicherbereichen 114-1 und 114-n Daten gespeichert, die eine verschiedene Datenlänge aufweisen und einen Adreßzeiger enthalten, um die Stelle einer Empfangsstation anzugeben.
  • Fig. 10 ist ein Zeitdiagramm, das den zeitlichen Übergang einer Datenkommunikation von dem Prozessorelement 10-1 zum Prozessorelement 10-n zeigt, die in Fig. 8 und 9 dargestellt sind. Zum Zeitpunkt t&sub1; sind Speicherdaten 120, die von dem als Übertragungsende dienenden Prozessorelement 10-1 verarbeitet worden sind, in der Form eines Pakets verfügbar, das ein Header 122 und einen Rumpf 124 aufweist. Gleichzeitig stehen auch Leerdaten 130 in der Form eines Pakets mit einem Header 132 und einem Rumpf 134 zur Verfügung und folgen den Speicherdaten 120 nach. Der Header 132 der Leerdaten 130 enthält die Steuerdaten zum Abwarten einer Puffer-Annullierung, die an die Speicherkonsistenz-Steuereinheit in der Hauptsteuereinheit 18-n im als Empfangsende dienenden Prozessorelement 10-n gesendet werden sollen. Die Datenlänge DL&sub0; in dem Rumpf 134 der Leerdaten 130 ist als Summe der Datenlänge DL&sub1; in dem Datenkommunikationsnetzwerk 12 und der Übertragungsdatenlänge DL&sub2; entsprechend der Zeit vorgesehen, die erforderlich ist, bis das als Empfangsende dienende Prozessorelement 10-n den Header 132 der Leerdaten 130 empfängt und interpretiert und die Einheit zum Abwarten einer Puffer-Annullierung einen Datenempfang stoppt, d. h.
  • DL&sub0; = DL&sub1; + DL&sub2;.
  • Zum Zeitpunkt t&sub2; in Fig. 10 beginnt eine Datenübertragung der vorhergehenden Speicherdaten 120, und der Header 122 erreicht den Eingang des als Empfangsende dienenden Prozessorelements 10-n. In dieser Erläuterung endet die Übertragung des Rumpfes 124 der vorhergehenden Speicherdaten 120 zum Datenkommunikationsnetzwerk 12 zur gleichen Zeit. Zum Zeitpunkt t&sub2; in Fig. 10 werden, wenn die Übertragung der vorhergehenden Speicherdaten 120 zum Datenkommunikationsnetzwerk 12 endet, die Leerdaten 130 sofort mit dem belegten Kommunikationsweg des Datenkommunikationsnetzwerks 12 übertragen.
  • Zum Zeitpunkt t&sub3; erreicht das vordere Ende der unmittelbar nach den Speicherdaten 120 übertragenen Leerdaten 130 das Prozessorelement 10-n, das als Empfangseinheit dient. In diesem Zustand wurde der Header der vorhergehenden Speicherdaten 120 interpretiert, wurden Adressen für einen Speicherzugriff für einen Hauptspeicher und für eine Puffer-Annullierung erzeugt, und konsistente Adressen wurden in der Puffer- Annullierungs-Warteschlange gestapelt.
  • Zum Zeitpunkt t&sub4; endet eine Übertragung der Leerdaten 130 zum Datenkommunikationsnetzwerk 12. In dem als Empfangsende dienenden Prozessorelement 10-n werden die im Header 132 der Leerdaten 130 enthaltenen Steuerdaten zum Abwarten einer Puffer-Annullierung durch z. B. die Steuerdaten-Empfangseinheit 102 in der Speicherkonsistenz-Steuereinheit 66 in Fig. 7 interpretiert. Ein Steuersignal wird an die Einheit 100 zum Abwarten einer Cache-Annullierung gemäß den interpretierten Steuerdaten zum Abwarten einer Puffer-Annullierung abgegeben. Als Antwort auf das von der Steuerdaten-Empfangseinheit 102 gesendete Cache-Annullierungs-Steuersignal gibt die Einheit 100 zum Abwarten einer Cache-Annullierung ein Sperrsignal an z. B. jede der Schnittstellen 52 und 54 aus, die in Fig. 6 dargestellt sind, und stoppt den Datenempfang von der Skalareinheit 22 und dem Datenübertragungsprozessor 26. In dem zum Zeitpunkt t&sub4; der Fig. 10 erreichten Zustand stoppt eine Datenübertragung der Leerdaten 130 zum Prozessorelement 10-n. Synchron mit einer Stoppsteuerung des Datenempfangs weist die in Fig. 7 gezeigte Einheit 100 zum Abwarten einer Cache- Annullierung die Cache-Annullierungs-Steuereinheit 98 an, eine Annullierung zu aktivieren. Die Cache-Annullierungs- Steuereinheit 98 ist nicht an die Bedingungen für eine Aktivierung gebunden, welche von der Anzahl von Adressen abhängen, die normalerweise in der Puffer-Annullierungs-Warteschlange 42 eingereiht sind, sondern gibt an die CPU 32 ein Puffer-Annullierungs-Signal ab, um eine Cache-Annullierungs- Steuerung anzufordern. Zur gleichen Zeit liest die Cache- Annullierungs-Steuereinheit 98 Puffer-Annullierungs-Adressen sequentiell aus der Cache-Annullierungs-Warteschlange 42, liefert die gelesenen Adressen an die CPU 32 und führt dann die Annullierung des Cache-Speichers 32 aus; d. h. annulliert Adressen in dem ersten Etikettfeld 36. Wenn das Entnehmen aller Cache-Annullierungs-Adressen aus der Puffer-Annullierungs-Warteschlange 42 abgeschlossen wird, meldet die Cache- Annullierungs-Steuereinheit 98 eine Beendigung der Verarbeitung an die Einheit 100 zum Abwarten einer Cache-Annullierung. Als Antwort auf die Meldung gibt die Einheit 100 zum Abwarten einer Cache-Annullierung die an die in Fig. 6 gezeigten Schnittstellen 52 und 54 gesendeten Sperrsignale frei. Folglich wird eine Übertragung von Leerdaten von dem als Übertragungsende dienenden Prozessorelement 10-1 über den Datenübertragungsprozessor 26 erneut gestartet, der im gestoppten Zustand gewesen ist.
  • Zum Zeitpunkt t&sub4; in Fig. 10 wird eine Beendigung der Übertragung der Leerdaten 130 von dem als übertragungsende dienenden Prozessorelement 10-1 an das Datenkommunikationsnetzwerk 12 durch die Übertragungs-Steuereinheit 108 in der Hauptsteuereinheit 18-1 in dem als übertragungsende in Fig. 8 dienenden Prozessorelement 10-1 detektiert. Die ein Übertragungsende meldende Einheit 110 meldet das Ende einer Übertragung von Leerdaten an die Barrieren-Verarbeitungseinheit 28- 1. Als Antwort auf die Meldung einer Beendigung gibt die Barrieren-Verarbeitungseinheit 28-1 ein Synchronisierungs- Anforderungssignal an das Barrieren-Netzwerk 14 aus, so daß eine Steuerung beim nächsten Schritt zur parallelen Verarbeitung weitergeleitet wird.
  • Eine Datenkommunikation von dem Prozessorelement 10-1 zum Prozessorelement 10-n, die in Fig. 10 dargestellt ist, wird ebenfalls zwischen anderen Prozessorelementen durchgeführt. Wenn eine Beendigung der Übertragung von Leerdaten detektiert wird, gibt jedes Prozessorelement ein Synchronisierungs- Anforderungssignal an das Barrieren-Netzwerk 14 ab. Mit dem Eingang von Synchronisierungs-Anforderungssignalen, die von allen Prozessorelementen 10-1 bis 10-n gesendet wurden, erkennt das Barrieren-Netzwerk 14, daß eine parallele Verarbeitung, die auf die Prozessorelemente verteilt worden ist, geendet hat und daß die Bedingungen für einen Übergang zu der nächsten parallelen Verarbeitung, die in den den globalen Speicher bildenden Hauptspeichern gespeichert sind, eingerichtet worden ist. Das Barrieren-Netzwerk 14 führt dann eine synchrone Steuerung aus, um die nächste parallele Verarbeitung den Prozessorelementen zuzuordnen.
  • Nachdem ein Datenempfang zum Zeitpunkt t&sub4; stoppt, werden, wenn der Datenempfang mit dem Abschluß einer Puffer-Annullierung erneut startet, die empfangenen Leerdaten 130, d. h. der Rumpf 134 der Leerdaten 130, als Müll in dem Leerdaten- Speicherbereich 114-n in dem Hauptspeicher 20-n im als Empfangsende dienenden Prozessorelement 10-n gespeichert, wie in Fig. 9 gezeigt ist.
  • Fig. 11 ist ein Zeitdiagramm, das die Operationen einer Kommunikation zeigt, die vorzunehmen sind, wenn ein Datenkommunikationssystem der vorliegenden Erfindung weiter vereinfacht wird. In den oben erwähnten Ausführungsformen findet ein Datenkommunikationssystem der vorliegenden Erfindung Anwendung auf eine Datenübertragung innerhalb einer parallel verarbeitenden Maschine. Die vorliegende Erfindung ist nicht auf diese Datenübertragung beschränkt. Wenn eine Datenübertragung zwischen zwei Datenverarbeitungseinheiten über Übertragungspuffer mit einer festgelegten Datenlänge, aber nicht festgelegten Übertragungszeit durchgeführt wird, kann ein Empfang von Übertragungsdaten durch ein Empfangsende mit der Verarbeitung garantiert werden, die von einem Übertragungsende allein durchgeführt wird.
  • In Fig. 11 werden Speicherdaten 120 von einem übertragenden Prozessorelement über das Datenkommunikationsnetzwerk 12 zu einem empfangenden Prozessorelement übertragen. Zum Zeitpunkt t&sub1; werden die Leerdaten 130, deren Datenlängen gleich der Datenlänge DL&sub1; in dem Datenkommunikationsnetzwerk 12 sind, verfügbar gemacht. Zuerst werden zum Zeitpunkt t&sub2; die Speicherdaten 120 übertragen. Wenn die Übertragung der Speicherdaten 120 endet, werden sofort die Leerdaten 130 übertragen. In dem Zustand, der zum Zeitpunkt t&sub3; erreicht ist, zu dem die Übertragung der Leerdaten 130 endet, wird, da die Datenlänge DL&sub0; in den Leerdaten 130 gleich der Datenlänge DL&sub1; in dem Datenkommunikationsnetzwerk 12 ist, wenn ein Übertragungsende die Beendigung der übertragung der Leerdaten 130 detektiert, garantiert, daß die vorhergehenden Speicherdaten 120 das empfangende Prozessorelement ohne Störung erreicht haben. In dem Datenkommunikationssystem gemäß der vorliegenden Erfindung wird allein gefordert, die Leerdaten 130, in denen die Datenlänge DL&sub0; länger als die Datenlänge DL&sub1; in dem Datenkommunikationsnetzwerk 12 ist, sofort nach den vorhergehenden Übertragungsdaten zu übertragen.
  • Wie soweit beschrieben wurde, können gemäß der vorliegenden Erfindung die Ankunft übertragener Daten an einem Empfangsende und das Ausführen bestimmter Operationen an empfangenen Daten mit der Detektion einer Beendigung einer Übertragung von Leerdaten durch ein Übertragungsende garantiert werden. Vom Beginn einer Datenübertragung an wird nur eine begrenzte Zeitspanne benötigt, um den Abschluß einer Datenübertragung zu einem Empfangsende zu lernen und die Verarbeitung zu aktivieren, die mit der Beendigung einer Datenübertragung gefordert wird. Um die obige Garantie zu liefern, ist erforderlich, daß ein Übertragungsende Leerdaten überträgt. Daher ist nur erforderlich, daß zusätzlich eine begrenzte Anzahl Hardwarevorrichtungen installiert wird. Überdies können Steuerdaten, die die Operationen repräsentieren, die von einem Empfangsende durchgeführt werden sollen, an das Präfix von Leerdaten angehängt werden. Dies hat eine neue Funktion zur Folge, daß nicht nur einen Abschluß einer Datenkommunikation, sondern auch nachfolgende Operationen, die empfangene Daten betreffen, wie z. B. eine Puffer-Annullierungs-Steuerung zum Erreichen der Konsistenz zwischen den Inhalten eines Hauptspeichers und eines Pufferspeichers, mit dem Abschluß einer Übertragung von Leerdaten durch ein Übertragungsende garantiert werden können.
  • Die in das Präfix oder den Header von Leerdaten eingebetteten Steuerdaten sind nicht auf in den vorhergehenden Ausführungsformen beschriebene Puffer-Annullierungs-Steuerdaten beschränkt, sondern können beliebige Steuerdaten sein, die dabei hilfreich sind, zu garantieren, daß die erforderlichen Operationen von einem als Empfangsende dienenden Verarbeitungselement mit dem Empfang der vorhergehenden Speicherdaten durchgeführt werden.
  • In den oben erwähnten Ausführungsformen wird eine Datenübertragung durchgeführt, um auf einen globalen Bereich zuzugreifen. Die vorliegende Erfindung findet ferner Anwendung auf alle anderen Arten einer Datenübertragung zwischen Prozessorelementen. Außerdem kann die vorliegende Erfindung auf verschiedene Arten modifiziert werden und ist daher nicht auf die in den Ausführungsformen angegebenen numerischen Werte beschränkt.

Claims (21)

1. Datenkommunikationssystem, aufweisend:
ein Übertragungsmittel (26) zum Übertragen verarbeiteter Daten;
ein Empfangsmittel (26) zum Empfangen von Daten von dem Übertragungsmittel; und
ein Datenkommunkationsnetzwerkmittel (12) zum Verbinden eines Kommunikationsweges zwischen dem Übertragungsmittel und dem Empfangsmittel über einen oder mehrere Kommunikationspuffer (16);
dadurch gekennzeichnet, daß eine Ankunft der übertragenen Daten an einer Empfangsstation bei einer Übertragungsstation garantiert wird;
worin das Gerät ferner ein für das Übertragungsmittel vorgesehenes Kommunikationsgarantie-Mittel (108) aufweist, um Leerdaten mit einer Länge, die gleich einer Datenlänge des einen oder mehrerer Kommunikationspuffer oder länger ist, die in dem durch das Datenkommunikationsnetzwerk gebildeten Kommunikationsweg zu der selben Empfangsstation enthalten sind, nach den verarbeiteten Daten seriell zu übertragen, die von dem Übertragungsmittel übertragen werden, und um bei einem Endpunkt, wenn die Leerdaten in das Datenkommunikationsnetzwerkmittel übertragen sind, die verarbeiteten Daten, die vom Datenkommunikationsnetzwerkmittel schon übertragen worden sind, durch die Leerdaten herauszuschieben, wodurch die Ankunft an der Empfangsstation garantiert wird.
2. Datenkommunikationssystem nach Anspruch 1, worin das Übertragungsmittel ein Übertragungsende-Meldemittel enthält, das die Beendigung einer Übertragung von Leerdaten detektiert und sie an andere Verarbeitungseinheiten meldet.
3. Datenkommunikationsverfahren, in welchem eine Mehrzahl von Verarbeitungseinheiten, von denen jede ein Hauptspeichermittel und ein Anweisungsverarbeitungsmittel aufweist und eine Parallelverarbeitung ausführt, über ein Datenkommunikationsnetzwerkmittel miteinander kommuniziert, das eine Mehrzahl von Kommunikationspuffern enthält und eine festgelegte Kommunikationspufferlänge hat, aufweisend:
einen Schritt zum Übertragen verarbeiteter Daten, bei dem eine erste Verarbeitungseinheit mit einem Übertragungsmittel verarbeitete Daten zu irgendeiner anderen Verarbeitungseinheit überträgt, die als Empfangsstation bestimmt ist;
welches Verfahren gekennzeichnet ist, indem es ferner aufweist:
einen Kommunikationsgarantie-Schritt zum Übertragen von Leerdaten, welche länger als die festgelegte Kommunikationspufferlänge sind, zur bestimmten Empfangsstation, unmittelbar nachdem die verarbeiteten Daten in dem Schritt zum Übertragen verarbeiteter Daten übertragen sind;
wodurch die Ankunft verarbeiteter Daten, die von der ersten Verarbeitungseinheit gesendet wurden, an der Empfangsstation garantiert ist.
4. Datenkommunikationsverfahren nach Anspruch 3, worin die bei dem Kommunikationsgarantie-Schritt zu übertragenden Leerdaten ein Paket sind, das aus einem Header und einem Rumpf besteht, und mit der Datenlänge in dem Paket übertragen werden, die länger als die festgelegte Kommunikationspufferlänge gemacht ist.
5. Datenkommunikationsverfahren nach Anspruch 3, worin beim Kommunikationsgarantie-Schritt die Leerdaten mit in deren Header eingebettete Steuerdaten übertragen werden, welche Operationen bestimmen, die durch die Empfangsstation an vorhergehenden verarbeiteten Daten durchgeführt werden sollen.
6. Datenkommunikationsverfahren nach Anspruch 5, worin beim Kommunikationsgarantie-Schritt die Datenlänge (DL&sub0;) des Rumpfes von Leerdaten auf eine Datenlänge eingestellt wird, die eine Summe der Kommunikationspufferlänge (DL&sub1;) in dem Datenkommunikationsnetzwerkmittel und der Übertragungsdatenlänge (DL&sub2;) entsprechend der Zeit ist, die für den Stopp eines Datenempfangs erforderlich ist, der verhindert, daß eine Übertragung von Leerdaten endet, bis die Empfangsstation Steuerdaten in dem Header von Leerdaten interpretiert, und bestimmte Operationen ausführt und beendet, bevor der Rumpf von Leerdaten empfangen wird; und die Ankunft verarbeiteter Daten an der Empfangsstation, die Ankunft des Headers von Leerdaten und der Stopp eines Datenempfangs, die in Steuerdaten in dem Header bestimmt sind, durch die erste Verarbeitungseinheit garantiert werden.
7. Datenkommunikationsverfahren nach einem der Ansprüche 3 bis 6, worin jede der Verarbeitungseinheiten umfaßt:
einen Cache-Speicher, der in einem Anweisungsverarbeitungsmittel installiert ist und die gleichen verarbeiteten Daten wie die in einen Hauptspeicher geschriebenen speichert;
ein Speicherkonsistenz-Steuermittel, das betreibbar ist, wenn verarbeitete Daten in dem Hauptspeicher geschrieben werden, um die verarbeiteten Daten mit einer registrierten Adresse des Cache-Speichers zu vergleichen, wenn die verarbeiteten Daten mit der registrierten Adresse übereinstimmen, um die Adresse als Annullierungsadresse zur Verwendung beim Annullieren alter Daten in dem Cache-Speicher in eine Warteschlange einzureihen und solche Adressen sequentiell aus der Warteschlange zu nehmen und dann eine Cache-Annullierung auszuführen, um die Konsistenz zwischen den Inhalten des Hauptspeichermittels und des Cache-Speichers aufrechtzuerhalten;
ein Mittel zum Abwarten einer Cache-Annullierung, das betreibbar ist, während das Speicherkonsistenz-Steuereinheit eine Cache-Annullierung ausführt, um den Datenempfang für das Hauptspeichermittel zu stoppen; und
ein Steuerdaten-Empfangsmittel, das dafür eingerichtet ist, wenn der Kopf empfangener Daten als Anweisung zum Abwarten einer Cache-Annullierung interpretiert wird, das Mittel zum Abwarten einer Cache-Annullierung zu betätigen, um einen Datenempfang zu stoppen und um zu ermöglichen, daß das Speicherkonsistenz-Steuermittel eine Cache-Annullierung ausführt;
beim Kommunikationsgarantie-Schritt die Leerdaten zur Empfangsstation mit ein Abwarten einer Cache-Annullierung repräsentierenden Steuerdaten übertragen werden, die in deren Header eingebettet sind; die Datenlänge (LD&sub0;) des Rumpfes von Leerdaten als Summe der Kommunikationspufferlänge (LD&sub1;) in dem Datenkommunikationsnetzwerkmittel und der Übertragungsdatenlänge (DL&sub2;) entsprechend der Verarbeitungszeit vorgesehen ist, die erforderlich ist, bis die als Empfangsstation dienende Verarbeitungseinheit die Steuerdaten in dem Header von Leerdaten interpretiert und einen Datenempfang während eines Abwartens einer Puffer-Annullierung stoppt; und
wodurch die Ankunft verarbeiteter Daten an der Empfangsstation, die Ankunft des Headers von Leerdaten und das Schreiben in das Hauptspeichermittel und die Beendigung einer Cache-Annullierung, welche in dem Header als an vorhergehenden Übertragungsdaten auszuführende Operationen bestimmt sind, beim erneuten Start eines Datenempfangs garantiert sind.
8. Datenkommunikationsverfahren nach einem der Ansprüche 3 bis 7, ferner enthaltend einen ein Übertragungsende meldenden Schritt zum Detektieren einer Beendigung der Übertragung von Leerdaten, die beim Kommunikationsgarantie-Schritt ausgeführt wird, und Ausgeben einer Übertragungsende-Meldung an ein Barrieren-Netzwerkmittel; welches Barrieren-Netzwerkmittel eine Steuerung an die parallele Verarbeitung beim nächsten Schritt weitergibt, wenn Übertragungsende-Meldungen über all den Verarbeitungseinheiten empfangen werden, die eine Parallelverarbeitung ausgeführt haben.
9. Datenkommunikationsverfahren nach einem der Ansprüche 3 bis 8, worin die Verarbeitungseinheit einen Leerdaten- Speicherbereich, der sinnlose Daten mit einer bestimmten Datenlänge zur Verwendung als die Datenlänge in dem Rumpf von Leerdaten speichert, in dessen Hauptspeichermittel aufweist; und beim Kommunikationsgarantie-Schritt eine Datenübertragung unter Verwendung einer Speicheradresse des Leerdaten-Speicherbereichs durchgeführt wird.
10. Datenkommunikationsverfahren nach einem der Ansprüche 3 bis 9, worin Teile des in der Mehrzahl von Verarbeitungseinheiten installierten Hauptspeichermittels als globaler Speicher zugewiesen sind; und all die Verarbeitungseinheiten auf den aus dem Hauptspeichermittel bestehenden Globalspeicher zugreifen, um eine Parallelverarbeitung auszuführen.
11. Datenkommunikationssystem nach Anspruch 1, ferner aufweisend:
eine Mehrzahl von Verarbeitungseinheiten (10), von denen jede einen Hauptspeicher (20) und eine Anweisungsverarbeitungseinheit (18) aufweist und eine Parallelverarbeitung ausführt; worin das Datenkommunikationsnetzwerkmittel beliebige zwei der Mehrzahl von Verarbeitungseinheiten über den einen oder die Mehrzahl von Kommunikationspuffern koppelt, dadurch einen Kommunikationsweg einrichtend;
und worin das Übertragungsmittel für jede der Mehrzahl von Verarbeitungseinheiten vorgesehen ist, um verarbeitete Daten an irgendeine andere, als Empfangsstation dienende Verarbeitungseinheit zu übertragen; und
das Empfangsmittel für jede der Mehrzahl von Verarbeitungseinheiten vorgesehen ist, um Übertragungsdaten von irgendeiner anderen Verarbeitungseinheit zu empfangen.
12. Datenkommunikationssystem nach Anspruch 1 oder Anspruch 11, worin durch das Kommunikationsgarantie-Mittel zu übertragende Leerdaten ein aus einem Header und einem Rumpf bestehendes Paket sind und übertragen werden, wobei die Datenlänge in dem Paket länger als die vorbestimmte Kommunikationspufferlänge gemacht ist; und wodurch die Ankunft zumindest einer der vorhergehenden verarbeiteten Daten und des Headers von Leerdaten an der als Empfangsstation dienenden Verarbeitungseinheit durch die als Sendestation dienende Verarbeitungseinheit garantiert ist.
13. Datenkommunikationssystem nach einem der Ansprüche 1, 2, 11 oder 12, wodurch das Kommunikationsgarantie-Mittel die Leerdaten mit in deren Header eingebetteten Steuerdaten überträgt, welche Operationen bestimmen, die durch die Empfangsstation an vorhergehenden verarbeiteten Daten durchgeführt werden sollen.
14. Datenkommunikationssystem nach einem der Ansprüche 1, 2, 11, 12 oder 13, worin das Kommunikationsgarantie-Mittel dafür eingerichtet ist, die Datenlänge (LD&sub0;) des Rumpfes der Leerdaten auf eine Datenlänge einzustellen, die eine Summe der vorbestimmten Kommunikationspufferlänge (LD&sub1;) und der Übertragungsdatenlänge (LD&sub2;) entsprechend der Zeit ist, die für das Stoppen eines Datenempfangs erforderlich ist, das verhindert, daß eine Übertragung von Leerdaten endet, bis die Empfangsstation Steuerdaten in dem Header von Leerdaten interpretiert hat und bestimmte Operationen ausgeführt und beendet hat, bevor der Rumpf von Leerdaten empfangen wird; und wodurch die Ankunft verarbeiteter Daten an der Empfangsstation, die Ankunft des Headers von Leerdaten und das Stoppen des Datenempfangs, die in den Steuerdaten in dem Header bestimmt sind, durch die als Sendestation dienende Verarbeitungseinheit garantiert sind.
15. Datenkommunikationssystem nach einem der Ansprüche 1, 2 oder 11 bis 14,
worin jede der Verarbeitungseinheiten umfaßt:
einen Cache-Speicher, der in einem Anweisungsverarbeitungsmittel installiert ist und die gleichen verarbeiteten Daten wie die in einen Hauptspeicher geschriebenen speichert;
ein Speicherkonsistenz-Steuermittel, das, wenn verarbeitete Daten in dem Hauptspeichermittel geschrieben werden, die verarbeiteten Daten mit einer registrierten Adresse des Cache-Speichers vergleicht, die, wenn die verarbeiteten Daten mit der registrierten Adresse übereinstimmen, die Adresse als Annullierungsadresse zur Verwendung beim Annullieren alter Daten in dem Cache-Speicher in eine Warteschlange einreiht und die solche Adressen sequentiell aus der Warteschlange nimmt und dann eine Cache-Annullierung ausführt, um die Konsistenz zwischen den Inhalten des Hauptspeichermittels und des Cache-Speichers aufrechtzuerhalten;
ein Mittel zum Abwarten einer Cache-Annullierung, das, während das Speicherkonsistenz-Steuermittel eine Cache- Annullierung ausführt, den Datenempfang für das Hauptspeichermittel stoppt; und
ein Steuerdaten-Empfangsmittel, das, wenn der Header empfangene Daten als Steuerdaten interpretiert wird, die ein Abwarten einer Cache-Annullierung repräsentieren, das Cache- Annullierungs-Mittel betätigt, um einen Datenempfang zu stoppen und zu erlauben, daß das Speicherkonsistenz-Steuermittel eine Cache-Annullierung ausführt;
das Kommunikationsgarantie-Mittel Steuerdaten, die ein Abwarten einer Cache-Annullierung für eine als Empfangsstation dienende Verarbeitungseinheit repräsentieren, in den Header der Leerdaten einbettet und die Datenlänge (LD&sub0;) des Rumpfes von Leerdaten auf eine Datenlänge einstellt, die als eine Summe der Kommunikationspufferlänge (LD&sub1;) in dem Datenkommunikationsnetzwerkmittel und der Übertragungsdatenlänge (LD&sub2;) entsprechend der Verarbeitungszeit vorgesehen wird, die erforderlich ist, bis die als Empfangsstation dienende Verarbeitungseinheit Steuerdaten in dem Header von Leerdaten interpretiert und einen Datenempfang für ein Abwarten einer Puffer-Annullierung stoppt; und
die Ankunft verarbeiteter Daten an der Empfangsstation, die Ankunft des Headers von Leerdaten und das Schreiben in das Hauptspeichermittel und die Beendigung einer Cache- Annullierung, die in dem Header als an vorhergehenden Übertragungsdaten durchzuführende Operationen bestimmt sind, beim erneuten Start eines Datenempfangs garantiert sind.
16. Datenkommunikationssystem nach einem der Ansprüche 1 oder 11 bis 15, worin zumindest eine Verarbeitungseinheit ein Übertragungsende-Meldemittel enthält, das dafür eingerichtet ist, eine Beendigung einer Übertragung von Leerdaten zu detektieren und dann eine Übertragungsende-Meldung an ein Barrieren-Netzwerkmittel auszugeben; und das Barrieren-Netzwerkmittel dafür eingerichtet ist, eine Steuerung zur Parallelverarbeitung beim nächsten Schritt weiterzugeben, wenn Übertragungsende-Meldungen von allen Verarbeitungseinheiten empfangen werden, die eine Parallelverarbeitung ausgeführt haben.
17. Datenkommunikationssystem nach einem der Ansprüche 1, 2 oder 11 bis 16, worin zumindest eine Verarbeitungseinheit einen Leerdaten-Speicherbereich, der dafür eingerichtet ist, sinnlose Daten mit einer bestimmten Datenlänge zu speichern, um die Länge von Daten im Rumpf von Leerdaten bereitzustellen, in deren Hauptspeichermittel aufweist; und eine Datenübertragung unter Verwendung einer Speicheradresse des Leerdaten-Speicherbereichs durchgeführt wird.
18. Datenkommunikationssystem nach einem der Ansprüche 1, 2 oder 11 bis 17, und worin Teile des in der Mehrzahl von Verarbeitungseinheiten installierten Hauptspeichermittels als globaler Speicher zugewiesen sind; und alle Verarbeitungseinheiten dafür eingerichtet sind, auf den aus dem Hauptspeichermittel bestehenden globalen Speicher zuzugreifen, um eine parallele Verarbeitung auszuführen.
19. Datenkommunikationssystem nach einem der Ansprüche 1, 2 oder 11 bis 18, worin jede der Mehrzahl von Verarbeitungseinheiten einen Hauptspeicher, eine Hauptsteuereinheit, eine Skalareinheit, die eine zentrale Verarbeitungseinheit zum Ausführen einer Skalarberechnung und einen Cache-Speicher enthält, eine Datenübertragungseinheit zum Übertragen von Daten zu oder von dem Datenkommunikationsnetzwerkmittel, eine Synchronverarbeitungseinheit zum Ausdehnen einer synchronen Steuerung über ein Barrieren-Netzwerkmittel und eine Eingabe/Ausgabe-Einheit zum Eingeben oder Ausgeben von Daten in ein oder aus einem externen Gerät aufweist.
20. Datenkommunikationssystem nach Anspruch 19, worin jede der Mehrzahl von Verarbeitugseinheiten ferner eine Vektoreinheit zum Ausführen einer Vektorberechnung enthält.
21. Datenkommunikationssystem nach einem der Ansprüche 1, 2 oder 11 bis 20, worin das Datenkommunikationsnetzwerkmittel ein Pufferspeicher enthaltendes Crossbar-Netzwerk ist.
DE69331311T 1992-11-27 1993-08-27 Datenkommunikationssystem und Verfahren Expired - Fee Related DE69331311T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31821292A JP3451103B2 (ja) 1992-11-27 1992-11-27 データ通信装置及び方法

Publications (2)

Publication Number Publication Date
DE69331311D1 DE69331311D1 (de) 2002-01-24
DE69331311T2 true DE69331311T2 (de) 2002-06-13

Family

ID=18096685

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69331311T Expired - Fee Related DE69331311T2 (de) 1992-11-27 1993-08-27 Datenkommunikationssystem und Verfahren

Country Status (4)

Country Link
US (1) US5592628A (de)
EP (1) EP0599449B1 (de)
JP (1) JP3451103B2 (de)
DE (1) DE69331311T2 (de)

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5948060A (en) * 1997-01-24 1999-09-07 International Business Machines Corporation Speeding-up communication rates on links transferring data structures by a method of handing scatter/gather of storage blocks in commanded computer systems
JP3602293B2 (ja) * 1997-04-22 2004-12-15 株式会社ソニー・コンピュータエンタテインメント データ転送方法及び装置
US6260119B1 (en) * 1998-07-06 2001-07-10 Intel Corporation Memory cache management for isochronous memory access
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
US6928073B2 (en) * 1999-10-01 2005-08-09 Stmicroelectronics Ltd. Integrated circuit implementing packet transmission
US6826191B1 (en) 1999-10-01 2004-11-30 Stmicroelectronics Ltd. Packets containing transaction attributes
SE0000908L (sv) 2000-03-20 2001-09-21 Ericsson Telefon Ab L M Load regulation
JP4306997B2 (ja) 2000-05-12 2009-08-05 富士通株式会社 データ制御装置及びatm制御装置
US6968447B1 (en) * 2001-04-13 2005-11-22 The United States Of America As Represented By The Secretary Of The Navy System and method for data forwarding in a programmable multiple network processor environment
KR100434055B1 (ko) * 2002-04-27 2004-06-04 엘지전자 주식회사 이동통신 시스템의 캐시 일관성 유지 방법
EP1434133A1 (de) * 2002-12-23 2004-06-30 Alcatel Software-Verkehrsgenerator/Analysator
US7861060B1 (en) * 2005-12-15 2010-12-28 Nvidia Corporation Parallel data processing systems and methods using cooperative thread arrays and thread identifier values to determine processing behavior
JP4208895B2 (ja) * 2006-05-30 2009-01-14 株式会社東芝 キャッシュメモリ装置および処理方法
US8108625B1 (en) 2006-10-30 2012-01-31 Nvidia Corporation Shared memory with parallel access and access conflict resolution mechanism
US8176265B2 (en) 2006-10-30 2012-05-08 Nvidia Corporation Shared single-access memory with management of multiple parallel requests
US7680988B1 (en) 2006-10-30 2010-03-16 Nvidia Corporation Single interconnect providing read and write access to a memory shared by concurrent threads
US8972638B2 (en) * 2007-09-18 2015-03-03 Kowa Company, Ltd. Serial data communication system and serial data communication method
US8352537B2 (en) * 2008-09-08 2013-01-08 Futurewei Technologies, Inc. Object modeling scheme for next generation network wavelength division multiplexing
US9325517B2 (en) * 2008-10-27 2016-04-26 Lennox Industries Inc. Device abstraction system and method for a distributed-architecture heating, ventilation and air conditioning system
US8994539B2 (en) * 2008-10-27 2015-03-31 Lennox Industries, Inc. Alarm and diagnostics system and method for a distributed-architecture heating, ventilation and air conditioning network
US20100107072A1 (en) * 2008-10-27 2010-04-29 Lennox Industries Inc. System and method of use for a user interface dashboard of a heating, ventilation and air conditioning network
US8855825B2 (en) 2008-10-27 2014-10-07 Lennox Industries Inc. Device abstraction system and method for a distributed-architecture heating, ventilation and air conditioning system
US8977794B2 (en) * 2008-10-27 2015-03-10 Lennox Industries, Inc. Communication protocol system and method for a distributed-architecture heating, ventilation and air conditioning network
US8437878B2 (en) * 2008-10-27 2013-05-07 Lennox Industries Inc. Alarm and diagnostics system and method for a distributed architecture heating, ventilation and air conditioning network
US9632490B2 (en) 2008-10-27 2017-04-25 Lennox Industries Inc. System and method for zoning a distributed architecture heating, ventilation and air conditioning network
US8600559B2 (en) * 2008-10-27 2013-12-03 Lennox Industries Inc. Method of controlling equipment in a heating, ventilation and air conditioning network
US8802981B2 (en) 2008-10-27 2014-08-12 Lennox Industries Inc. Flush wall mount thermostat and in-set mounting plate for a heating, ventilation and air conditioning system
US8615326B2 (en) * 2008-10-27 2013-12-24 Lennox Industries Inc. System and method of use for a user interface dashboard of a heating, ventilation and air conditioning network
US20100106957A1 (en) * 2008-10-27 2010-04-29 Lennox Industries Inc. Programming and configuration in a heating, ventilation and air conditioning network
US8798796B2 (en) * 2008-10-27 2014-08-05 Lennox Industries Inc. General control techniques in a heating, ventilation and air conditioning network
US9377768B2 (en) * 2008-10-27 2016-06-28 Lennox Industries Inc. Memory recovery scheme and data structure in a heating, ventilation and air conditioning network
US8655491B2 (en) * 2008-10-27 2014-02-18 Lennox Industries Inc. Alarm and diagnostics system and method for a distributed architecture heating, ventilation and air conditioning network
US8564400B2 (en) * 2008-10-27 2013-10-22 Lennox Industries, Inc. Communication protocol system and method for a distributed-architecture heating, ventilation and air conditioning network
US8892797B2 (en) * 2008-10-27 2014-11-18 Lennox Industries Inc. Communication protocol system and method for a distributed-architecture heating, ventilation and air conditioning network
US8874815B2 (en) * 2008-10-27 2014-10-28 Lennox Industries, Inc. Communication protocol system and method for a distributed architecture heating, ventilation and air conditioning network
US8352081B2 (en) 2008-10-27 2013-01-08 Lennox Industries Inc. Communication protocol system and method for a distributed-architecture heating, ventilation and air conditioning network
US9678486B2 (en) * 2008-10-27 2017-06-13 Lennox Industries Inc. Device abstraction system and method for a distributed-architecture heating, ventilation and air conditioning system
US8433446B2 (en) * 2008-10-27 2013-04-30 Lennox Industries, Inc. Alarm and diagnostics system and method for a distributed-architecture heating, ventilation and air conditioning network
US8560125B2 (en) * 2008-10-27 2013-10-15 Lennox Industries Communication protocol system and method for a distributed-architecture heating, ventilation and air conditioning network
US8452456B2 (en) * 2008-10-27 2013-05-28 Lennox Industries Inc. System and method of use for a user interface dashboard of a heating, ventilation and air conditioning network
US8295981B2 (en) 2008-10-27 2012-10-23 Lennox Industries Inc. Device commissioning in a heating, ventilation and air conditioning network
US8442693B2 (en) 2008-10-27 2013-05-14 Lennox Industries, Inc. System and method of use for a user interface dashboard of a heating, ventilation and air conditioning network
US8548630B2 (en) 2008-10-27 2013-10-01 Lennox Industries, Inc. Alarm and diagnostics system and method for a distributed-architecture heating, ventilation and air conditioning network
US20100106326A1 (en) * 2008-10-27 2010-04-29 Lennox Industries Inc. Communication protocol system and method for a distributed-architecture heating, ventilation and air conditioning network
US8655490B2 (en) * 2008-10-27 2014-02-18 Lennox Industries, Inc. System and method of use for a user interface dashboard of a heating, ventilation and air conditioning network
US8600558B2 (en) * 2008-10-27 2013-12-03 Lennox Industries Inc. System recovery in a heating, ventilation and air conditioning network
US8463442B2 (en) * 2008-10-27 2013-06-11 Lennox Industries, Inc. Alarm and diagnostics system and method for a distributed architecture heating, ventilation and air conditioning network
US9261888B2 (en) 2008-10-27 2016-02-16 Lennox Industries Inc. System and method of use for a user interface dashboard of a heating, ventilation and air conditioning network
US8239066B2 (en) * 2008-10-27 2012-08-07 Lennox Industries Inc. System and method of use for a user interface dashboard of a heating, ventilation and air conditioning network
US8774210B2 (en) 2008-10-27 2014-07-08 Lennox Industries, Inc. Communication protocol system and method for a distributed-architecture heating, ventilation and air conditioning network
US9152155B2 (en) * 2008-10-27 2015-10-06 Lennox Industries Inc. Device abstraction system and method for a distributed-architecture heating, ventilation and air conditioning system
US8744629B2 (en) * 2008-10-27 2014-06-03 Lennox Industries Inc. System and method of use for a user interface dashboard of a heating, ventilation and air conditioning network
US20100106810A1 (en) * 2008-10-27 2010-04-29 Lennox Industries Inc. Communication protocol system and method for a distributed-architecture heating, ventilation and air conditioning network
US8463443B2 (en) * 2008-10-27 2013-06-11 Lennox Industries, Inc. Memory recovery scheme and data structure in a heating, ventilation and air conditioning network
US8788100B2 (en) 2008-10-27 2014-07-22 Lennox Industries Inc. System and method for zoning a distributed-architecture heating, ventilation and air conditioning network
US8725298B2 (en) * 2008-10-27 2014-05-13 Lennox Industries, Inc. Alarm and diagnostics system and method for a distributed architecture heating, ventilation and conditioning network
US9432208B2 (en) 2008-10-27 2016-08-30 Lennox Industries Inc. Device abstraction system and method for a distributed architecture heating, ventilation and air conditioning system
US20100106312A1 (en) * 2008-10-27 2010-04-29 Lennox Industries Inc. Alarm and diagnostics system and method for a distributed-architecture heating, ventilation and air conditioning network
US8437877B2 (en) * 2008-10-27 2013-05-07 Lennox Industries Inc. System recovery in a heating, ventilation and air conditioning network
US8255086B2 (en) * 2008-10-27 2012-08-28 Lennox Industries Inc. System recovery in a heating, ventilation and air conditioning network
US8452906B2 (en) 2008-10-27 2013-05-28 Lennox Industries, Inc. Communication protocol system and method for a distributed-architecture heating, ventilation and air conditioning network
US9651925B2 (en) 2008-10-27 2017-05-16 Lennox Industries Inc. System and method for zoning a distributed-architecture heating, ventilation and air conditioning network
US8543243B2 (en) * 2008-10-27 2013-09-24 Lennox Industries, Inc. System and method of use for a user interface dashboard of a heating, ventilation and air conditioning network
US9268345B2 (en) * 2008-10-27 2016-02-23 Lennox Industries Inc. System and method of use for a user interface dashboard of a heating, ventilation and air conditioning network
US8661165B2 (en) * 2008-10-27 2014-02-25 Lennox Industries, Inc. Device abstraction system and method for a distributed architecture heating, ventilation and air conditioning system
US8762666B2 (en) * 2008-10-27 2014-06-24 Lennox Industries, Inc. Backup and restoration of operation control data in a heating, ventilation and air conditioning network
US8352080B2 (en) * 2008-10-27 2013-01-08 Lennox Industries Inc. Communication protocol system and method for a distributed-architecture heating, ventilation and air conditioning network
US8694164B2 (en) * 2008-10-27 2014-04-08 Lennox Industries, Inc. Interactive user guidance interface for a heating, ventilation and air conditioning system
US8880473B1 (en) 2008-12-15 2014-11-04 Open Invention Network, Llc Method and system for providing storage checkpointing to a group of independent computer applications
USD648642S1 (en) 2009-10-21 2011-11-15 Lennox Industries Inc. Thin cover plate for an electronic system controller
USD648641S1 (en) 2009-10-21 2011-11-15 Lennox Industries Inc. Thin cover plate for an electronic system controller
US8260444B2 (en) 2010-02-17 2012-09-04 Lennox Industries Inc. Auxiliary controller of a HVAC system
JP6554989B2 (ja) 2015-08-11 2019-08-07 富士通株式会社 ストレージ制御装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3824551A (en) * 1972-05-18 1974-07-16 Little Inc A Releasable buffer memory for data processor
US4502114A (en) * 1982-10-29 1985-02-26 Gte Automatic Electric Incorporated Circuit for reliable data transfer between two central processing units
US4648030A (en) * 1983-09-22 1987-03-03 Digital Equipment Corporation Cache invalidation mechanism for multiprocessor systems
US4727537A (en) * 1985-12-24 1988-02-23 American Telephone And Telegraph Company Flow control arrangement for the transmission of data packets to a communication network
EP0262429B1 (de) * 1986-09-01 1995-11-22 Nec Corporation Datenprozessor mit Hochgeschwindigkeitsdatenübertragung
US4851991A (en) * 1987-02-24 1989-07-25 Digital Equipment Corporation Central processor unit for digital data processing system including write buffer management mechanism
JP2679715B2 (ja) * 1989-06-30 1997-11-19 富士通株式会社 データ転送方法
US5274782A (en) * 1990-08-27 1993-12-28 International Business Machines Corporation Method and apparatus for dynamic detection and routing of non-uniform traffic in parallel buffered multistage interconnection networks
JP2575557B2 (ja) * 1990-11-13 1997-01-29 インターナショナル・ビジネス・マシーンズ・コーポレイション スーパーコンピユータシステム

Also Published As

Publication number Publication date
US5592628A (en) 1997-01-07
EP0599449B1 (de) 2001-12-12
DE69331311D1 (de) 2002-01-24
JPH06164574A (ja) 1994-06-10
JP3451103B2 (ja) 2003-09-29
EP0599449A3 (en) 1995-11-02
EP0599449A2 (de) 1994-06-01

Similar Documents

Publication Publication Date Title
DE69331311T2 (de) Datenkommunikationssystem und Verfahren
DE3751399T2 (de) Parallelrechner mit verteilten, gemeinsam genutzten Speichern und verteilten, aufgabenaktivierenden Schaltungen.
DE69519816T2 (de) Anordnung mit Duplikat des Cache-Etikettenspeichers
DE3114961C2 (de)
DE3689226T2 (de) Multiprozessorsystem mit multihierarchischen Ebenen.
DE60036777T2 (de) Gerät zur Signalsynchronisierung zwischen zwei Taktbereichen
DE3751091T2 (de) Übertragungsprotokoll zwischen Prozessoren.
DE2652303C2 (de) Datenverarbeitungssystem bestehend aus mehreren Subsystemen
DE3783370T2 (de) Schaltung zur blockierungsverhinderung von hochprioritaetsanforderungen an eine systemsteuerung.
DE69116953T2 (de) Methode und Vorrichtung zur dynamischen Ermittlung und Wegfindung für nichtgleichförmigen Verkehr, in parallelen, gepufferten, mehrstufigen Verbindungsnetzwerken
DE69226928T2 (de) Verfahren und Direktspeicherzugriffssteuerung zum asynchronen Daten-Lesen von einem -Schreiben in einen Speicher mit verbessertem Durchfluss
DE68924313T2 (de) Mehrprozessoranordnungen mit kreuzweise abgefragten Schreib-in-Cachespeichern.
DE2854485C2 (de) Datenverarbeitungsanlage
DE3587167T2 (de) Geraet zur vektorverarbeitung.
EP0179936B1 (de) Verfahren und Einrichtung zur Steuerung einer Sammelleitung
DE3785897T2 (de) Steuervorrichtung zum vorabruf von befehlen.
DE69130881T2 (de) Massiv paralleler Rechner mit auf Schlangen basiertem Nachrichtenablieferungssystem
DE69327892T2 (de) Verfahren und System um Daten in einem Datenverarbeitungssystem zu suchen
DE69323861T2 (de) Multiprozessorsystem mit gemeinsamem Speicher
DE2856483A1 (de) Verbindungseinheit fuer datenverarbeitungssysteme
DE68921365T2 (de) Anordnung und Verfahren zum automatischen Auffinden von Speicherplätzen mit hoher Zugriffsrate und zum Ableiten dieser Zugriffe vom Speicherverkehr in einem Multiprozessorsystem.
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE69031524T2 (de) Verfahren und Vorrichtung zur Datenübertragung zwischen Prozessorelementen
DE2162806A1 (de) Digitales Eingabe-Ausgabe-Steuersystem mit Kanalpufferung
DE10056827A1 (de) Duale Verwendung von Cache-Verbindungen

Legal Events

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