DE69331311T2 - Datenkommunikationssystem und Verfahren - Google Patents
Datenkommunikationssystem und VerfahrenInfo
- 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
Links
- 238000004891 communication Methods 0.000 title claims description 173
- 238000000034 method Methods 0.000 title claims description 19
- 230000015654 memory Effects 0.000 claims description 178
- 238000012545 processing Methods 0.000 claims description 138
- 239000000872 buffer Substances 0.000 claims description 122
- 230000005540 biological transmission Effects 0.000 claims description 99
- 238000012546 transfer Methods 0.000 claims description 48
- 230000004888 barrier function Effects 0.000 claims description 20
- 238000013500 data storage Methods 0.000 claims description 10
- 230000001360 synchronised effect Effects 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 13
- 230000004044 response Effects 0.000 description 4
- 230000007704 transition Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17375—One 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.
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)
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)
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 | インターナショナル・ビジネス・マシーンズ・コーポレイション | スーパーコンピユータシステム |
-
1992
- 1992-11-27 JP JP31821292A patent/JP3451103B2/ja not_active Expired - Fee Related
-
1993
- 1993-08-27 DE DE69331311T patent/DE69331311T2/de not_active Expired - Fee Related
- 1993-08-27 EP EP19930306833 patent/EP0599449B1/de not_active Expired - Lifetime
-
1996
- 1996-02-01 US US08/595,505 patent/US5592628A/en not_active Expired - Lifetime
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 |