DE68909426T2 - Datenverarbeitung und -übertragung. - Google Patents

Datenverarbeitung und -übertragung.

Info

Publication number
DE68909426T2
DE68909426T2 DE89300336T DE68909426T DE68909426T2 DE 68909426 T2 DE68909426 T2 DE 68909426T2 DE 89300336 T DE89300336 T DE 89300336T DE 68909426 T DE68909426 T DE 68909426T DE 68909426 T2 DE68909426 T2 DE 68909426T2
Authority
DE
Germany
Prior art keywords
data
communication system
processing
packet
path selection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE89300336T
Other languages
English (en)
Other versions
DE68909426D1 (de
Inventor
Robin Alexander Cawley
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Quantel Ltd
Original Assignee
Quantel Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GB888800943A external-priority patent/GB8800943D0/en
Priority claimed from GB888819207A external-priority patent/GB8819207D0/en
Application filed by Quantel Ltd filed Critical Quantel Ltd
Publication of DE68909426D1 publication Critical patent/DE68909426D1/de
Application granted granted Critical
Publication of DE68909426T2 publication Critical patent/DE68909426T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf eine Datenverarbeitungsanlage umfassend zwei oder mehr Verarbeitungseinheiten, zwei oder mehr Speichereinheiten und ein Kommunikationssystem, das eine Verbindung zwischen den Verarbeitungseinheiten und den Speichereinheiten gewährleistet. Die Erfindung bezieht sich weiterhin auf ein Kommunikationssystem umfassend: eine Vielzahl von durch Übertragungsmittel verbundenen Wegwahlmitteln; die jeweils wenigstens zwei Eingangschlüsse und wenigstens zwei Ausgangsanschlüsse besitzen; wobei die Eingangsanschlüsse jeweils zur Zwischenspeicherung empfangener Daten in einer jeweiligen Speicheranordnung der Wegwahlimitteln dienen.
  • Eine konventionelle VLSI-Zentralverarbeitungseinheit (CPU) besteht aus vier Funktionsteilen, nämlich der Befehlseinheit, der arithmetisch logischen Einheit, einem Satz von Registern für spezielle und generelle Zwecke sowie dem (bzw. den) die CPU mit ihren externen Speicheranordnungen verbindenden Bus (bzw. Bussen). Der Normalbetrieb besteht aus der Entnahme von Befehlen aus der Speicheranordnung und deren Zuführung zur Befehlseinheit über einen Bus. Die arithmetisch logische Einheit liest sodann Daten aus den Registern und schreibt neue Daten in die Register über einen Bus in Abhängigkeit von Steuersignalen von der Befehlseinheit. Der Registersatz enthält gewöhnlich eine Anzahl von Registern für generelle Zwecke (Adressen und Daten) sowie von Registern für Spezielle Zwecke, beispielsweise Stapelzeiger und Zustandsregister usw.. Ein Register, das jedoch allen konventionellen Zentralverarbeitungseinheiten gemeinsam ist, ist der Programmzähler, welcher zur Identifizierung der Adresse des nächsten Befehls dient.
  • In den letzten Jahren hat sich die Verarbeitungsgeschwindigkeit von Zentralverarbeitungseinheiten dramatisch erhöht, wobei nunmehr anerkannt ist, daß die Gesamtfunktionsgeschwindigkeit eines Datenverarbeitungssystems nicht durch die Geschwindigkeit, mit der die CPU Befehle abarbeiten kann, sondern durch die Geschwindigkeit festgelegt ist, mit der Daten zwischen der CPU und ihren zugehörigen Speicheranordnungen übertragen werden können. Dieses Problem verschärft sich in Geräten, die für den Lauf großer Programme ausgelegt sind, wobei große (aber langsame) Speicheranordnungen bevorzugt gegenüber schnellen (aber kleineren) Anordnungen gewählt werden, wodurch die Systemfunktion verbessert wird.
  • Es sind Techniken zur Verbesserung der Betriebsgeschwindigkeit eines Systems bekannt, wobei dies jedoch zusätzlich zur Preiserhöhung auch zur Erzeugung neuer Beschränkungen führt. Darüber hinaus lösen diese Techniken mit dem Bus zusammenhängende Probleme nicht, wodurch auch die Funktion insbesondere dann beeinträchtigt wird, wenn viele getrennte SPeicheranordnungen den gesamten adressierbaren Raum bilden.
  • Gemäß einem Aspekt schafft die Erfindung eine Datenverarbeitungsanlage umfassend zwei oder mehr Verarbeitungseinheiten, zwei oder mehr Speichereinheiten und ein Kommunikationssystem, das eine Verbindung zwischen den Verrbeitungseinheiten und den Speichereinheiten gewährleistet. Eine derartige Anlage ist aus WESCON PROCEEDINGS, vol. 29, vom 19. November 1985, Seiten 1-13 bekannt. Dieses Dokument offenbart ein Mehrfachprozessorsystem, in dem mehrere Prozessoren und mehrere Speicher durch einen gemeinsamen Zugriffsregler gesteuert werden, der zur Steuerung des Zugriffs auf gemeinsame Quellen, wie beispielsweise einen Speicher, verschiedene Kennzeichensignale ausnutzt.
  • Dieser Aspekt der Erfindung ist dadurch gekennzeichnete, daß die Datenverarbeitungseinheiten jeweils eine Vielzahl von Registersätzen, die jeweils auf einen einzelnen Prozeß bezogene Daten aufnehmen; und Verarbeitungsmittel zur Abarbeitung eines ersten Prozesses durch Zugriff auf einen ersten Satz der Registersätze bis der erste Prozeß die Abgabe eines ersten Datums über das Kommunikationssystem erfordert, Anforderung über das Kommunikationssystem einer Abgabe eines ersten Datums über das Kommunikationssystem, Unterbrechung der Abarbeitung des ersten Prozesses während der Aufnahme des ersten Datums und Abarbeitung eines zweiten Prozesses durch Zugriff auf einen zweiten Registersatz umfassen.
  • In einer Datenverarbeitungsanlage des vorgenannten Typs muß zwischen den Prozessoren und entfernt befindlichen Speicheranordnungen ein Kommunikationssystem vorgesehen sein. In einem konventionellen Verarbeitungssystem führt die Hinzufügung weiterer Verarbeitungseinheiten zu einem abnehmenden Rückfluß der Gesamtverarbeitungsleistung, da die Busse voll geladen werden, was eine Zunahme der verfügbaren Bandbreite notwendig macht. Probleme dieser Art treten vielfach in solchen Fällen auf, in denen eine Anzahl von Anordnungen miteinander kommunizieren muß und in denen es nicht notwendig ist, einzelne Kommunikationsverbindungen zwischen jeder Anordnung und jeder weiteren Anordnung vorzusehen. Bekannte Lösungen können in vier Arten klassifiziert werden, nämlich: Bus-, Ring-, Koppelpunkt- und Speicherbetrieb, wobei natürlich viele Hybridsysteme möglich sind.
  • Ein Vorteil einer erfindungsgemäßen Datenverarbeitungsanlage besteht darin, daß sie den Aufbau eines hochleistungsfähigen Computers möglich macht, in dem das Preis-Leistungsverhältnis mit Hinzufügung weiterer Einheiten nicht ins Gewicht fallend verringert wird. Dies ergibt sich daraus, daß eine Datenübertragung eine Verarbeitungseinheit nicht aufhält, welche auf die Verarbeitung eines zweiten Prozesses zurückgreift, während ein Datum für den ersteren erwartet wird.
  • In einer Ausführungsform der Erfindung können mehrere auf der gleichen Verarbeitungseinheit laufende Prozesse auf ein vom Kommunikationssystem rückgeführtes Datum warten. Vorzugsweise erfolgen alle Datenanforderungen über das Kommunikationssystem, wobei keine der Verarbeitungseinheiten mit zugeordneten adressierbaren Speicheranordnungen versehen ist. Darüber hinaus muß nicht auf alle Daten über das Kommunikationssystem zugegriffen werden; vielmehr kann in einer bevorzugten Ausführungsform ein Datum selektiv aus allen Speichereinheiten ausgelesen werden.
  • Gemäß einem weiteren Aspekt schafft die Erfindung ein Kommunikationssystem umfassend: eine Vielzahl von durch Übertragungsmittel verbundenen Wegwahlmitteln; die jeweils wenigstens zwei Eingangsanschlüsse und zwei Ausgangsanschlüsse besitzen; wobei die Eingangsanschlüsse jeweils zur Zwischenspeicherung empfangener Daten in einer jeweiligen Speicheranordnung der Wegwahlmitteln dienen. Ein derartiges System ist aus der EP-A-0 225 022 bekannt, welche ein Mehrknoten-Verarbeitungssystem offenbart, in dem Knoten durch Zwischenknotenschalter mit jeweils einem Schalter für einen Knoten in Sternform miteinander verbunden sind.
  • Dieser Aspekt der Erfindung ist durch eine Verbindung wenigstens eines Eingangsanschlusses über entsprechende Übertraungsmittel mit einem entsprechenden Ausgangsanschluß von benachbarten Wegwahlmitteln sowie wenigstens eines Ausgangsanschlusses mit einem entsprechenden Eingangsanschluß von benachbarten Wegemitteln; eine Anordnung der Daten in einer Vielzahl von Wörtern einschließlich eines lokalen Zielwortes umfassenden Paketen, und in den Wegwahlmitteln enthaltende Mittel zur selektiven Führung jedes Datenpaketes auf einen Anschluß der wenigstens zwei Ausgangsanschlüsse in Abhängigkeit vom lokalen Zielwort sowie in den Wegwahlmitteln enthaltene Mittel zur Steuerung der Übertragungseigenschaften der entsprechenden Speicheranordnung zwecks Vermeidung von Datenkollesionen in den Wegwahlmitteln gekennzeichnet.
  • Das Problem überladener Busse und die damit zusammenhängenden sich aus der Schaffung zusätzlicher Bandbreite ergebenden Probleme werden im Kommunikationssystem nach der Erfindung dadurch gelöst, daß ein Hybridsystem mit Merkmalen der bekannten Ring-, Koppelpunkt- und Speicherbetriebtechniken geschaffen wird. Daher werden Daten wie in einem Ring in den Wegwahlmitteln zwischengespeichert, wobei sich der tatsächliche Weg jedoch wie in einem Koppelpunktsystem ändert. Um eine Netzsperrung zu vermeiden, können darüber hinaus Daten in den Speicheranordnungen (FIFOs) wie im Speicherbetriebsystem gespeichert werden.
  • Gemäß einer Ausführungsform der Erfindung werden die Wegwahlmittel und ihre zugehörigen mit den Eingangsanschlüssen verbundenen FIFOs jeweils als ein einziger Schaltkreis hergestellt, wodurch Netzwerke aus Standardeinheiten gebildet werden können. Vorzugsweise sind ausreichend viele Anschlüsse vorgesehen, so daß die Wegwahlmittel jeweils mit vier weiteren Wegwahlmitteln verbunden werden können. Das Netzwerk kann dann als zweidimensionales Raster oder als mehrdimensionaler Hyperwürfel ausgebildet werden. Vorzugsweise enthält die erfindungsgemäße Datenverarbeitungsanlage ein Kommunikationssystem gemäß dem genannten weiteren Aspekt der Erfindung. Anforderungen für ein Datum erfolgen dann durch Eingeben von Paketen in das Kommunikationssystem, welche durch die Wegwahlmittel auf eine Speichereinheit geführt und sodann durch diese Speichereinheit interpretiert werden.
  • Gemäß einer abgewandelten Ausführungsform sind die Wegwahlmittel Knoten eines lokalen Gebietsnetzwerkes. Es kann auch eine Vielzahl von Netzwerken durch gleichartige Wegwahlmittel verbunden werden, so daß das kombinierte Kommunikations-System dann als Gebietsnetzwerk zweiter Ordnung bezeichnet wird.
  • Gemäß einer weiteren Ausführungsform kann das Kommunikationssystem auf einer einzigen Scheibe aus Halbleitermaterial hergestellt werden. Vorzugsweise wird das Datenverarbeitungssystem in einer einzigen Scheibe aus Halbleitermaterial integriert. Die Erfindung ist in vorteilhafter Weise auf diese Technik wegen ihrer Fehlertoleranztauglichkeit anwendbar. Die Wegwahlmittel werden vorzugsweise nach der Herstellung automatisch programmiert, so daß beschädigten Bereichen der Schaltung keine Pakete zugeordnet werden.
  • Die vorgenannten Merkmale sowie weiter speziell in den beigefügten Ansprüchen angegebene Merkmale ergeben sich klarer aus der Betrachtung der folgenden detaillierten Beschreibung von beispielhaften erfindungsgemäßen Ausführungsformen gemäß den beigefügten Zeichnungen. In den Zeichnungen zeigt:
  • Figur 1 ein Datenverarbeitungssystem mit einer Vielzahl von Verarbeitungseinheiten, Speichereinheiten und einem Kommunikationssystem;
  • Figur 2 im einzelnen eine Datenverarbeitungseinheit gemäß Figur 1;
  • Figur 3 ein Verarbeitungssystem mit einem in einem zweidimensionalen Raster ausgebildeten Kommunikationssystem;
  • Figur 4 einen Knoten eines in einem Hyperwürfel ausgebildeten Kommunikationssystems und
  • Figur 5 die Operationen eines Datenflußverarbeitungssystems.
  • Ein gebräuchliches als Computer bezeichnetes Datenverarbeitungssystem gemäß Figur 1 umf aßt mehrere Verarbeitungseinheiten (CPU's), mehrere Speicherbänke und wenigstens eine spezialisierte Datenverarbeitungseinheit. Es sind zwei CPU's C1 und C2, zwei Speicherbänke M1 und M2 sowie eine Datenverarbeitungseinheit in Form einer FPU (Gleitpunkteinheit) dargestellt. Die Anzahl von Einheiten jeder Art kann größer sein, wobei die verschiedenen CPU's nicht die gleichen sein müssen, was auch für die spezialisierten Einheiten gilt. Gemäß Figur 2 enthält jede CPU wie im Falle der CPU C1 zur Abarbeitung von Prozessen eine Gruppe von Registersätzen Rg1, Rg2, usw. (als Kontexte bezeichnet) - Kennzeichen F1, F2, usw. bilden Mittel zur Festlegung, ob ein Prozeß in einem entsprechenden Kontext Rg1, Rg2, usw. zu einer bestimmten Zeit abgearbeitet werden kann. Die CPU besitzt weiterhin einen Wähler S, welcher zur Wahl eines oder mehrerer der Kontexte dient, welche gemäß der Bezeichnung durch die Kennzeichen F1, F2, usw. laufend abgearbeitet werden können. Ein ausgewählter Kontext wird durch den Wähler S auf den Prozessor P der CPU geführt, in dem er gemäß den im Kontext enthaltenen Befehlen abgearbeitet wird. Der Prozessor P besitzt einen Zugriffsweg A1, über den er Anforderungen für den Zugriff zum Speicher oder einer Einheit, wie beispielsweise U1 durchführen kann. Der Prozessor P dient zur Anbringung von Identifizierungsinformation an jede derartige Anforderung, die generell mit der Antwort vom Speicher oder der anderen Einheit zurückgeführt wird. Gemäß Figur 1 ist der Zugriffsweg A1 über einen entsprechenden Wegwähler R1 mit einem Sendebus SB verbunden. Antworten werden über einen Antwortweg B1 von der CPU C1 aufgenommen und den Kennzeichen F1, F2, usw. sowie den Registersätzen Rg1, Rg2, usw. zugeführt. Gemäß Figur 1 geht der Antwortweg B1 von einem Wegwähler R2 aus, welcher Botschaften von einem Empf angsbus RB aufnimmt.
  • Alle anderen im System enthaltenen CPUs, wie beispielsweise C2 umfassen Elemente, wie sie in Figur 2 dargestellt sind, können sich jedoch in anderer Hinsicht unterscheiden. Die Einheiten U1, M1 und M2 enthalten Anordnungen, wie beispielsweise in bekannter Weise aufgebaute adressierbare Speicher, welche als integrierte Schaltkreise im Handel erhältlich sind. Beispielsweise ein Speicherregler kann Datenblöcke in Abhängigkeit von einem einzigen Befehl übertragen und kann weiterhin mit Einzelheiten des Befehlssatzes einer Verarbeitungseinheit programmiert werden, so daß ein Datenblock bis zum Erreichen einer vorgegebenen Länge gelesen oder bei Erhalt eines Befehls auf einen weiteren Speicherbereich verzweigt werden kann. In Drehsperrsystemen kann der Speicherregler auch die Speichersperrmittel enthalten.
  • Der Computer kann wenigstens mit einem Vektorprozessor versehen sein, dessen Register in Sätzen angeordnet sind, wobei dann Datenblöcke in Abhängigkeit von einer einzigen Anforderung zugeführt werden. Ersichtlich können die Prozessoren unterschiedliche Typen sein, die jedoch typischerweise eine mit einem konventionellen Mikroprozessor vergleichbare Verarbeitungsleistung besitzen und vorzugsweise mit Wörtern mit sechzehn oder zweiunddreissig Bit arbeiten. Der Sendebus SB und der Empfangsbus RB sind allen Einheiten gemeinsam, welche durch entsprechende Zugriffswege, Antwortwege und Wegwähler mit den Bussen verbunden sind. Die Zugriffswege sind mit dem Bezugszeichen A, die Antwortwege mit dem Bezugszeichen B und die Wegwähler mit dem Bezugszeichen R und in jedem Fall mit entsprechenden Zusätzen bezeichnet.
  • Im Systembetrieb nimmt der Wähler S der CPU oder im Falle von mehr als einer Einheit jeder CPU einen betreibbaren Prozeß vom Registersatz Rg1, Rg2, usw. auf, wonach der Prozessor P hinsichtlich des ausgewählten Prozesses Befehle abarbeitet, bis ein Zugriff (etwa) auf eine der Speicherbänke M1, M2, usw. erforderlich ist. Sodann sendet der Prozessor P die entsprechende Speicherantwort typischerweise für einen Speicherlesevorgang oder einen Speicherschreibvorgang, bereitet ein entsprechendes Kennzeichen der Kennzeichen F1, F2, usw. zur Anzeige vor, daß der Prozeß nicht mehr weiterlaufen kann und bewirkt die Auswahl des nächsten als betreibbar gekennzeichneten Prozesses. Die Speicheranforderung wird über die ungeradzahligen Wegwähler R und den Sendebus SB auf die richtige Speicherbank geführt, wobei der Prozessor P in Abhängigkeit vom neu ausgewählten Prozeß (oder möglicherweise mehr als einem Prozeß in Folge) Befehle abarbeitet. Eine gewisse Zeit später wird die Antwort auf die erste Anforderung von der Speicherbank M1 über die geradzahligen Wegwähler R und den Empfangsbus RB aufgenommen. Die Antwort wird in den entsprechenden Registersatz Rg1, Rg2, usw. und das entsprechende Kennzeichen F1, F2, usw. eingegeben, das anzeigt, daß der erste Prozeß erneut betreibbar ist. Eine gewisse Zeit später nach Unterbrechung des Laufs eines anderen Prozesses durch den Prozessor P wählt der Wähler S wiederum den ersten Prozeß, wobei der Prozessor diesen Prozeß weiter betreibt. Danach kann eine weitere Anforderung für eine Speicherbank erforderlich sein; in diesem Falle sendet der Prozessor erneut eine Speicheranforderung aus und unterbricht den Lauf des ersten Prozesses erneut. Auf diese Weise kann eine Anzahl von Prozessen miteinander verbunden werden. Das System ist darüber hinaus so beschaffen, daß es durch Wiederholung der Komponenten erweitert werden kann, ohne daß eine bestimmte Komponente zu einem Flaschenhals wird. Das Verhältnis und die absolute Anzahl von Komponenten kann in Anpassung an unteschiedliche Anforderungen geändert werden. Der Sendebus SB kann Anforderungen schneller als eine einzige Speicherbank M aufnehmen und dabei Anforderungen für mehrere Speicherbänke M1, M2, usw. handhaben, in denen sie dann parallel gewertet werden. Eine CPU kann Kontexte zu anderen Zeiten als zu den Übertragungszeiten einer Botschaft, beispielsweise zu einer Speicherbank oder einer spezialisierten Datenverarbeitungseinheit schalten, um alle Kontexte angemessen auf die verfügbare Verarbeitungsleistung zu verteilen. In außergewöhnlichen Umständen kann eine CPU eine Botschaft senden, auf die keine Antwort erwartet wird und daher keine Prozesse schaltet.
  • Sind mehrere CPUs eingefügt wie dies in Figur 1 dargestellt ist, so enthält die Identifizierungsinformation in einer von einer Speicherbank M oder einer spezialisierten Datenverarbeitungseinheit U empfangenen Antwort sowohl einen CPU-Code als auch einen Prozeßcode, so daß die Antwort auf die richtige CPU geführt werden kann. Darüber hinaus müssen nicht alle CPUs die gleichen sein, wobei beispielsweise einige spezielle Prozessoren für Sprachen für lernende Rechner, Grafik oder Fouriertransformationen, usw. eingefügt sein können.
  • Spezialisierte Datenverarbeitungseinheiten, wie beispielsweise die FPU U1 können in gleicher Weise wie Speicherbänke vervielfacht sein. Die zu derartigen Einheiten gesendeten Anforderungen können einen Satz von Operanden umfassen, wobei die Ergebnisse später mit dem entsprechenden Kontextidentifizierer zurückgeführt werden. Im Bedarfsfall können mehr spezialisierte Datenverarbeitungseinheiten als Speicherbänke oder umgekehrt vorhanden sein, was speziell der Fall ist, wenn eine sehr schnelle Verarbeitung erforderlich ist und Einheiten, wie beispielsweise eine FPU im Pipelinebetrieb arbeiten.
  • Das in Figur 1 dargestellte System eignet sich insbesondere für Pipelining. Diese Technik ermöglicht eine sich überlappende Abarbeitung der unterschiedlichen Phasen mehrerer aufeinanderfolgender Befehle. Erfordern die Befehle jeweils 5 Phasen (mit 1 bis 5 bezeichnet) , so erfolgt beim Abarbeiten von Befehlen A, B, C, D, E die Durchführung der Phase 1 für den Befehl A, sodann ein Überlappen der Funktion von Phase 2, für den Befehl A mit Phase 1, für den Befehl B, usw., wodurch das Pipelinesystem mit den Zuständen A5 B4 C3 D2 und E1 gefüllt wird. Dies hat den Vorteil, daß alle eine CPU bildenden Komponenten nicht sequentiell sondern gleichzeitig verwendet werden. In traditionellen Systemen treten Probleme auf, wenn die Ergebnisse des Befehls A als Eingang zum Befehl zu B oder C erforderlich sind und wenn ein B ein bestimmter Sprung ist, was nicht durchführbar ist, bis das Ergebnis von A bekannt ist und die Entscheidung schwierig wird, wo Befehle C, D usw. zu finden sind. Für die CPUs des oben beschriebenen Systems kann eine modifizierte Version von Pipelining realisiert werden, wobei jede Pipeline-Stufe zu einem unterschiedlichen Kontext gehört. Damit wird sichergestellt, daß die Ergebnisse eines Befehls die anderen nicht beeinflussen können, wobei dennoch der größere Durchsatz einer Pipeline-Architektur gewonnen wird.
  • Es ist darauf hinzuweisen, daß in dem in Figur 1 dargestellten System der Sende- und der Empfangsbus SB und RB sowie die Wegwähler R an Stelle des Systembus verwendet werden, welcher den Speicherzugriff in einem konventionellen Computer gewährleistet. Im Unterschied zu konventionellen Mikrocomputerbussen läuft jede Botschaft in einen oder mehrere Wegwähler, in denen sie zwischengespeichert und für eine Periode vor dem Austreten aus der anderen Seite gespeichert werden, während in einem konventionellen Mikrocomputer der Bus an den äquivalenten Einheiten vorbei läuft und direkt mit allen elektrisch verbunden ist. Im dargestellten System ist die Anzahl von eine vollständige Botschaft bildenden Bits größer als die Anzahl der die Wegwähler verbindenden Leiter, wobei jede Botschaft aus mehreren Transaktionen bestehen kann und gewöhnlich auch besteht. Da die Botschaften in jedem Wegwähler zwischengespeichert werden, können auf unterschiedlichen Teilen des Bus SB oder RB gleichzeitig mehrere Botschaften vorhanden sein, welche einander längs des Bus folgen. Erreicht eine Botschaft ihre vorgesehene Bestimmung, so nimmt der damit verbundene Wegwähler die Botschaft vom Bus ab und führt sie zur Bestimmung. Im System sind alle Verbindungen kurz, so daß die Übertragung von einem Wegwähler zu einem anderen schneller als in konventionellen Bussen sein kann. Die für das Auslaufen über den Sendebus SB und das Zurücklaufen über den Empfangsbus RB für eine einzige Botschaft notwendige Zeit ist länger als in konventionellen Systemen; dies ist jedoch kein Nachteil, weil die Verwendung von mehreren Kontexten einen höheren Gesamtdurchsatz der Busse ermöglicht, da viele Botschaften gleichzeitig längs jedes Bus laufen können; darüber hinaus ist zwischen der Übertragung einer Anforderung und der Antwort bei Zugriff auf den Speicher keine Ruheperiode vorhanden.
  • Figur 3 zeigt eine Weiterentwicklung des Systems nach Figur 1 unter Verwendung mehrerer Systembusse, wodurch die Anzahl von CPU's über den Punkt hinaus erhöht werden kann, an dem der Sende- und Empfangsbus nach Figur 1 gesättigt werden kann. Das in Figur 3 dargestellte System umfaßt mehrere CPU's und Speicherbänke plus einer oder mehrerer FPUs wie in Figur 1 zusammen mit einer Peripherieeinheit PER. Die CPU's, Speicherbänke und die FPU sind mit gleichen Bezugszeichen wie in Figur 1 versehen. Allerdings sind die drei Kanäle für jeden Wegwähler auf insgesamt zehn, und zwar fünf einlaufende und fünf auslaufende Kanäle erweitert, so daß die Abschnitte des Bus ein Busraster BG bilden, das zwischen den verschiedenen Einheiten mehrere alternative Wege realisiert. Die Busabschnitte am Rand des Rasters können als unbrauchbar gekennzeichnet werden oder um den entgegengesetzten Rand geschlungen werden.
  • In dieser Form der Erfindung entstehen ebenso wie vorher Anforderungen in den CPUs und Anforderungen in den Speicherbänken M und den FPUs, die längs einer der entsprechenden diagonalen Verbindungen (Busabschnitten) zu dem geeigneten Wegwähler R geführt werden. Von daher werden die Daten ebenso wie in Figur 1 von Wegwähler zu Wegwähler geführt, wenn sie nicht ihre Bestimmung erreichen; dies gilt mit der Ausnahme, daß in jedem Wegwähler eine Wahl von drei Wegen zur Verfügung steht. Die Bestimmung ist durch eine Anzahl von in unterschiedlichen Richtungen, wie beispielsweise "2 Nord" und "4 Ost" identifiziert. Der Wegwähler führt die Botschaft zu einem benachbarten Wegwähler entweder im Norden oder Osten, was in Abhängigkeit von weiterem Verkehr wählbar ist. Die Bestimmungsidentität wird dann in jedem Wegwähler aktualisiert, bis der Wegwähler an der gewünschten Bestimmung erreicht ist, an der die Botschaft über den diagonalen Busabschnitt zur angeschlossenen Einheit oder Speicherbank geführt wird. Eine Anforderung oder eine Antwort laufen nicht notwendigerweise über den gleichen Weg in entgegengesetzten Richtungen, obwohl generell zwei Botschaften über gleichartige Wege laufen.
  • Ein Wegwähler dient zur Führung von Botschaften zwischen jeweils einem Paar von Eingangs- und Ausgangsanschlüssen unabhängig davon, was andere Kanäle tun. Kommt eine Botschaft für den jeweiligen in Verwendung befindlichen Kanal an, so speichert der Wegwähler entweder die Botschaft oder verzögert die Eingabe, bis der Ausgang verfügbar ist. Um eine Rastersperrung zu vermeiden, besitzen die jeweiligen Wegwähler ausreichend Zwischenspeicherkapazität zur Speicherung einer vollständigen Botschaft.
  • Die Anlage nach Figur 3 ist modifizierbar. Anstelle eines quadratischen Rasters können andere Raster, beispielsweise hexagonale, kubische oder hyperkubische Raster verwendet werden. Figur 4 zeigt einen Knoten einer hyperkubischen Struktur mit sechzehn Dimensionen, der aus zehn Anschluß wegwählern gebildet ist. Die quadratische Rasterform kann durch Bildung von "Einbahnstraßen" vereinfacht werden, welche nördlich und südlich oder östlich und westlich abwechseln. Die aktiven Einheiten, nämlich die CPU's, FPUs, usw. können in jeder erforderlichen Mischung mit den Knoten verbunden werden.
  • In Systemen der beschriebenen Art ist die normale gewöhnlich in Computern vorgesehene Unterbrechungseigenschaft nicht notwendig. Eine periphere Einheit kann einen Prozeß durch Aussetzen einer Antwort auf eine Botschaft unterbrechen, bis eine Bedienung gewünscht wird. Vorausgesetzt, das zur Besetzhaltung einer CPU ausreichend Kontexte verbleiben, ergibt sich keine Beeinträchtigung der Funktion. Es sind jedoch Mittel wünschenswert, um nach einer Auszeit eine unterbrochene Aufgabe freizugeben. Zweckmäßigerweise erfolgt die Botschaftsführung durch Codieren des ersten Byte oder der ersten Bytes zur Festlegung der mit Vorzeichen versehenen Anzahl von Knoten Nord (oder Süd falls negativ) und Ost (oder West falls negativ) , welche die Botschaft durchlaufen muß. Beim Lauf der Botschaft werden diese Zählwerte in geeigneter Weise inkrementiert oder dekrementiert. Erreichen beide Zählwerte Null, so ist die Bestimmung erreicht, wobei die Botschaft zur lokalen Einheit geführt wird. Die Rückführungsadresse für jede Anforderung kann in der Botschaft selbst enthalten sein oder eine feste Lage in der Botschaft einnehmen und beim Durchgang der Botschaft in exakt inverser Art zur Hauptwegführung modifiziert werden.
  • Ist die Rückführungsadresse anfänglich auf Null gesetzt so ist sie automatisch die gleiche wie die Anforderungsadresse.
  • Muß eine im oben beschriebenen Sinne geführte Botschaft eine bestimmte Strecke sowohl in N/S- als auch E/W-Richtung laufen, so kann der Wegwähler die Richtungen in Abhängigkeit von jedem Algorithmus frei wählen. Speziell sollte die andere geeignete Richtung gewählt werden, wenn der Ausgangsanschluß in der einen Richtung in Verwendung ist. Ist jedoch die Anzahl von zu durchlaufenden Schritten in einer dieser Richtungen auf Null gefallen (d.h. es ist die richtige Zeile oder Spalte erreicht), so sollte die Botschaft normalerweise lediglich in der Richtung gesendet werden, welche den verbleibenden Versatz auf Null reduziert. Die Botschaft wird vorzugsweise niemals aus der richtigen Zeile oder Spalte heraus geführt, selbst wenn der gewünschte Anschluß gegenwärtig in Verwendung ist, weil derartige Seitschritte später umgekehrt werden müssen, was wahrscheinlich länger dauert, als auf das Freiwerden des gewünschten Anschlusses zu warten. Für das Raster nach Figur 3 kann jedoch die Notwendigkeit einer Teilung, d.h. des vollständigen Entfallens einiger Knoten entstehen. In derartigen Fällen muß der Wegwähler dieser Tatsache Rechnung tragen. Ersichtlich darf eine Botschaft niemals zu einem derartigen nicht vorhandenen Rasterpunkt geführt werden, so daß die obige Regel außer Kraft gesetzt wird und die Botschaft "seitlich" geführt werden kann. In solchen Fällen darf die Botschaft niemals zu dem Knoten geführt werden, von dem sie kam, selbst wenn dies sie näher an ihre endgültige Bestimmung heranzubringen scheint.
  • Wie oben ausgeführt, ist es wünschenswert, Mittel zur Freigabe einer gesperrten Aufgabe vorzusehen, wobei die Sperrung gewöhnlich aufgrund eines Fehlers auftritt. Es sind zwei Fehlerarten vorhanden, gegen die ein Schutz erforderlich ist: weiche und harte Fehler. Weiche Fehler sind Sprungfehler, welche typischerweise lediglich ein einziges Bit oder eine kleine Gruppe von aufeinander bezogenen Bits stören und sich etwa aus Rauschen oder Störung durch Alphateilchen ergeben. Weiche Fehler treten nicht häufig und willkürlich auf. Es stehen zahlreiche Techniken zur Ausschaltung weicher Fehler (durch Erhöhung der Redundanz mit Paritätsbits, usw.) zur Verfügung; diese Techniken versagen jedoch schließlich. Harte Fehler sind Ausfälle von Komponenten, welche nach ihrem Auftreten im wesentlichen dauerhaft sind.
  • Weiche Fehler können durch einen erneuten Versuch der fehlerhaften Operation korrigiert werden, vorausgesetzt, daß sie detektiert werden. Auf dem hier betrachteten Detailpegel besteht das Hauptproblem darin, sicher zu sein, daß alle weichen Fehler detektiert werden. Zur Handhabung harter Fehler sind zwei Wege bekannt: parallele Hardware und Zwischenstop. Parallele Hardware hängt davon ab, daß jede Systemkomponente oder jedes Untersystem ein Duplikat besitzt, das einspringen kann, wenn die Primärkomponente ausfällt (vorausgesetzt natürlich, daß dieser Ausfall detektiert wird) - Diese Technik macht eine teure Hardwareverdopplung erforderlich. Ein Zwischenstop erfordert ebenfalls mehrere Hardwaresätze (so daß ein Satz noch arbeitet, wenn ein weiterer Satz ausfällt) ; es ist dabei jedoch möglich, daß die unterschiedlichen Hardwaresätze bei Abwesenheit eines Fehlers unabhängig laufen. Es handelt sich primär um eine Technik auf Softwarebasis, welche in einfacher Weise in einem die vorliegende Erfindung enthaltenden Computer anwendbar ist und welche die Teilung jedes Kontextes bzw. jeder Aufgabe in eine Anzahl von getrennten Operationen betrifft, die in Folge ausgeführt werden, wobei die Speicherung (Zwischenstop) von aus reichend vielen Daten zwischen dem jeweiligen Paar von Funktionen sichergestellt ist, so daß von einem Zwischenstop aus neu begonnen werden kann, wenn eine Funktion ausfällt. Für beide Verfahren ist primär erforderlich, daß die Fehler detektiert werden, um entweder die Verwendung der Ersatzhardware oder den Neulauf einer Aufgabe von ihrem letzten Zwischenstop aus zu steuern.
  • Fehler im Paketraster manifestieren sich in zwei Formen, nämlich der Störung von Paketen beim Lauf durch das Raster und dem Sterben von in Verwendung befindlichen Knoten; die erstgenannte Form wird zunächst betrachtet. In allen Knoten des Rasters ist ein sog. "Herzschlag"-Taktsignal vorhanden, das mit einer Periode der gleichen Größenordnung wie die Zeit schlägt, in der ein Paket das Paketraster durchläuft. Es muß nicht synchron sein, schlägt aber an jedem Knoten mit der gleichen Folgefrequenz. Um das Paketraster geführte Pakete können beim Durchlauf von Wegwähler zu Wegwähler gestört werden, wobei es wesentlich ist, diese Störung zu detektieren, was in einfacher Weise durch Zusatz eines Prüfwertes bzw. CRC zum Paket erfolgen kann. Dabei wird es jedoch zum Problem, wann der CRC geprüft und welche Maßnahmen bei Ausfall ergriffen werden sollen. Da Pakete von Wegwähler zu Wegwähler so schnell wie möglich geführt werden, ist es selten, daß ein Wegwähler ein vollständiges Paket in seinem internen Speicher hält. Im Zeitpunkt, in dem der CRC angekommen ist, geprüft und als fehlerhaft befunden wurde, kann der Kopf des Paketes bereits durch mehrere weitere Wegwähler gelaufen sein. Es ist daher notwendig, daß der empfangende Wegwähler (welcher das Paket in seiner bestimmten CPU, FPU oder seinem bestimmten Speicher speichert) den CRC prüft, und fehlerhaft gewordene Pakete ausscheidet. Im Gegensatz dazu kann der empfangende Knoten ein fehlerhafte Paket leicht detektieren und ignorieren.
  • Ist ein Paket wegen seines Fehlers ausgeschieden worden, so muß es neu übertragen werden, um eine fortlaufende Funktion des Systems sicherzustellen. Dazu sind drei Lösungen vorhanden, von denen die dritte die zuverlässigste ist.
  • Die erste Lösung besteht darin, daß die Pakete jeweils die Ursprungsknotenadresse enthalten. Der Empfänger des Paketes kann dann eine Neuübertragungsanforderung zum Ursprungsknoten senden. Dies hat jedoch den Nachteil, daß die Ursprungsadresse gestört sein kann.
  • Für die zweite Lösung besitzen die Wegwähler Ausgangs-FIFOs in Form eines Ringpuffers. In die Schnittstelle von Wegwähler zu Wegwähler wird ein neues Signal BadPacket eingefügt, welches besagt, daß ein Paket durch einen empfangenden Weg-Wähler falsch gelesen wurde. Der empfangende Wegwähler berechnet beim Ankommen des Paketes (das weiterhin so schnell als möglich durchläuft) den CRC, wobei BadPacket am Ende des Paketes wirksam wird, wenn der CRC einen Fehler anzeigt. Der Wegwähler (der das Paket übertragende Wegwähler) wird so modifiziert, daß er das abgehende Paket in seinem Ringpuffer hält (d.h. sein Überschreiben durch ankommende Daten verhindert), bis das Paket übertragen worden ist. Wird BadPacket am Ende des Paketes empfangen, so werden Pufferzeiger auf den Beginn des Paketes zurückgestellt, wodurch das Paket neu übertragen wird; wird BadPacket nicht empfangen, so kann der das bewahrte Paket enthaltende Speicher überschrieben werden. Das gestörte Paket läuft weiter zu seiner Bestimmung, wo es ausgeschieden wird, wobei dicht danach eine richtige Kopie folgt. Diese Lösung gewährleistet die schnellstmögliche Neuübertragung bei Auftreten von Fehlern in der Datenfolge; sie ist jedoch anfällig für Fehler in den SteuersignaIen Packetstart, NotReady and BadPacket.
  • Der bevorzugte Mechanismus zur Fehlerkorrektur besteht darin, für jedes Paket eine Antwort vorzusehen und den Sender eines Paketes mit einer Auszeit auf eine Antwort warten zu lassen. Der Mechanismus dazu wird nachfolgend erläutert.
  • Wird die Antwort innerhalb einer festen Periode nicht empfangen, so wird die Anforderung neu übertragen. Der Inhalt von Paketen muß so beschaffen sein, daß es keine Rolle spielt, wenn der antwortende Knoten zwei Kopien der gleichen Anforderung empfängt (weil die Antwort auf die erste Anforderung, welche ungestört ankam, im Rückführungsweg gestört und daher zerstört wurde).
  • Es verbleibt noch die Betrachtung des Betriebs bei einem fehlerhaften Paket. Ist die Wegführungsinformation am Kopf eines Paketes gestört, so wird sie zum falschen Knoten geführt. Ist dies ein gültiger Knoten, so wird das Paekt zerstört, wenn ein falscher CRC ankommt (die Wegführungsinformation muß natürlich im CRC enthalten sein). Allerdings kann der Knoten, zu dem die Information unrichtig geführt wird, nicht vorhanden oder tot sein. Dabei bewirkt die Behandlung des toten Knotens durch das Wegführungssystem ein Springen des Paketes um das Raster, wobei kontinuierlich das Erreichen des gewünschten Knotens gesucht wird, aber bei Erreichen eines toten Knotens eine Ablenkung erfolgt. Ein solches Paket tendiert dazu, undefiniert um das Raster zu wandern; es wird daher zur Erleichterung der Beschreibung als Geisterpaket bezeichnet. Eine Abwandlung an den Wegwählern kann zur Zerstörung von Paketen führen, die zu benachbarten als tot gekennzeichneten Knoten adressiert sind. Dies spielt jedoch in dem Fall keine Rolle, in dem sich der adressierte tote Knoten im Zentrum eines Blocks oder gerade außerhalb des Rasterbereiches befindet, der tatsächlich vorhanden ist - der Wegwähler kann nicht wissen, ob der Knoten tatsächlich tot ist, oder ob ein scheinbar toter Knoten lediglich den direkten Weg zu einem lebenden Knoten blockiert.
  • Knotenausfälle (welche Wegwählerausfälle enthalten, weil ein Knoten als tot markiert wird, wenn entweder seine lokale Quelle oder sein Wegwähler nicht zuverlässig ist) können auch Geisterpakete erzeugen. Für die Realisierung der Erfindung ist es notwendig, daß bei einem Ausfall eines Knotens "Tot"-Signale für alle benachbarten Knoten (durch Vorgabe) erzeugt werden. Damit wird verhindert, daß Botschaften durch ihn geführt werden. Es können jedoch Botschaften erzeugt werden, welche an den ausfallenden Knoten adressiert werden, wobei es sich entweder um Antworten auf von diesen Knoten ausgehende Botschaften oder um Botschaften von anderen Knoten handelt, welche noch nicht festgestellt haben, daß der spezielle Knoten gestorben ist; diese Botschaften werden nunmehr zu Geisterpaketen.
  • Der Herzschlagtakt macht es jedoch möglich, daß der Wegwähler Geisterpakete detektiert, da jedes Paket bei Übertragung von einem Knoten mit einer Ablaufzeit gekennzeichnet wird, was durch Zusatz eines Wertes erfolgt, welcher sicher länger als die maximal mögliche Übertragungszeit zu seinem laufenden Herzschlagzählwert ist. Jeder Wegwähler vergleicht dann diese Zeitmarkierung mit seinem eigenen Herzschlag und zerstört das Paket, wenn die laufende Zeit größer oder gleich der Ablaufzeit ist (unter Ermöglichung eines Zählerumlaufes). Ist der Herzschlag langsam genug (weit länger als die normale Übertragungszeit von Wegwähler zu Wegwähler), kann ein einfacher Gleichheitsvergleich angemessen sein. Es spielt keine Rolle, ob möglicherweise gute Pakete zerstört werden, weil sie zu langsam gelaufen sind - dies zeigt sich als weicher Fehler. Eine abgewandelte Realisierung besteht für den Sender darin, eine zeitliche Markierung mit seinem laufenden Herzschlag vorzunehmen und das Paket zu zerstören, wenn die Differenz einen bestimmten Wert übersteigt.
  • Eine abgewandelte Lösung für das Problem von Geisterpaketen besteht darin, im Paket einen Knotenzählwert vorzusehen, der beim Durchgang durch die Knoten dekrementiert wird. Der Wegwähler tötet dann das Paket, wenn es Null erreicht. Das frühere Töten der Botschaft nach dem Erreichen ihrer Bestimmung ist genauer, beinhaltet aber die Änderung der Botschaft in jedem Wegwähler. Dies hat Rückwirkungen auf die Geschwindigkeit und die Komplexität des Wegwählers und die Anzahl der Neuberechnungen des CRC für jede Übertragung.
  • Die Herzschlagtakte aller Knoten müssen immer nahezu die gleichen sein. Die angegebenen Fehlerkorrekturschemata ermöglichen eine Rückgewinnung aus sehr gelegentlich vorkommenden Fehlern im Takt des Paketrasters; dies erfordert jedoch die Abwesenheit von Fehlern im Herzschlagtakt oder einen Mechanismus zur Unterbindung der Überlagerung solcher Fehler durch Rücksetzen von Takten auf den gleichen Wert, bevor sie zu weit weglaufen. Vorzugsweise steht ein Sendemechanismus auf dem Paketraster zur Verfügung, welcher zur Rücksetzung der Herzschlagtakte in den Knoten auf den gleichen Wert verwendbar ist. Tatsächlich kann dieser Mechanismus dazu verwendet werden, den Herzschlag auf alle Knoten zu verteilen (d.h. ein einziger Hauptknoten verteilt einen neuen Herzschlagwert auf alle anderen Knoten in regelmäßigen Intervallen). Die Knoten speisen jeweils den Herzschlag in ihren zugehörigen Wegwähler ein. Damit werden die hohen Kosten vermieden, um die Wegwähler so auszulegen, daß sie Sendungen interpretieren.
  • Die Auszeit, mit der ein Knoten entscheidet, daß eine Botschaft verlorengegangen ist, muß wenigstens gleich der doppelten Auszeit sein, die für den Empfang der Botschaft möglich ist (obwohl es für Antwortpakete zweckmäßig sein kann, die Auszeit des Paketes zu übernehmen, auf das sie eine Antwort darstellen, wobei in diesem Fall die Knotenauszeit in einfacher Weise größer als dieser Wert sein sollte). Detektiert der Knoten eine Auszeit, so sollte er es wenigstens einmal und vorzugsweise mehrfach neu versuchen, was auf einem Mikrocode oder einem Softwarepegel durchgeführt werden kann. Schlagen aufeinanderfolgende Versuche zur Aussendung einer Botschaft fehl, so sollten Maßnahmen ergriffen werden, welche sich zur Angabe eignen, daß ein Knoten gestorben ist, wobei Triggerrückgewinnungsmaßnahmen, wie beispielsweise Neustartanforderungen von ihrem letzten Prüfpunkt aus erfolgen.
  • Ein Mechanismus zum Aussenden des Herzschlags besteht darin, ein spezialisiertes Paket zu seiner Führung vorzusehen. Bei Empfang eines derartigen Paketes vergleicht der Knoten den neuen Herzschlag mit seinen laufenden Werten. Unterscheidet sich der Wert von seinem laufenden Wert, so ändert der Knoten den laufenden Wert und sendet eine Kopie des neuen Herzschlagpaketes zu allen lebenden benachbarten Knoten mit der möglichen Ausnahme des Knotens, von dem der neue Wert aufgenommen wurde. Hat sich der Wert nicht geändert, so werden keinen Maßnahmen ergriffen.
  • Erfindungsgemäße Systeme sind Systeme mit mehreren Aufgaben, wobei jede CPU eine Vielzahl von Aufgaben mit jeweils einer in jedem Kontext durchführt, wobei andere Aufgaben vorhanden sein können, welche während des Wartens auf einen freien Kontext ruhen. In einem derartigen System ist es für unterschiedliche Aufgaben notwendig, in kontrollierter Weise miteinander zu kommunizieren und in Wechselwirkung zu treten, um zu vermeiden, daß eine Aufgabe Zugriff zu einem Datum sucht, während eine andere Aufgabe dieses Datum modifiziert. Dieses Problem wird durch Verwendung einer Umlaufsperrung gelöst.
  • Um die Umlaufsperrung zu realisieren, muß für jede Speicherzugriffsanordnung ein für jede CPU unteilbarer Lese/Schreibmechanismus vorgesehen werden, wobei die CPU den Inhalt einer Speicherstelle liest und in sie in der Weise einen neuen Wert einschreibt, welcher garantiert unteilbar ist, was beispielsweise durch Systembusarchitektur oder Speicherarchitektur realisiert werden kann. Auf diese Weise tritt zwischen den beiden Hälften des Lese/Schreibzyklus kein anderer Zugriff auf diese spezielle Stelle ein. In der vorliegenden Architektur kann dies durch einen neuen ein Leseund ein Schreibpaket kombinierenden Pakettyp realisiert werden. Den Speicherbänken oder anderen Quellen, auf die ein ungestörter Zugriff erfolgen soll, wird jeweils eine spezielle Speicherstelle als sperrstelle zugeordnet. Diese besitzt zwei Einstellungen; "ungesperrt" (gewöhnlich Null) und gesperrt" (von Null verschieden).
  • Eine Anforderung, welche die Quelle zu sperren sucht, führt einen Lese/Schreibzyklus im oben beschriebenen Sinne durch, wobei der "gesperrte" Wert in die Stelle eingeschrieben wird. Der ausgelesene Wert wird sodann überprüft; ist es der "ungesperrte" Wert, so hat die Anforderung die Quelle erfolgreich angefordert; ist es der "gesperrte" Wert, so hat die Sperranforderung die Quelle nicht angefordert. Schlägt der Versuch zur Sperrung fehl so muß die Sperranforderung für eine Weile aussetzen und erneut versucht werden, wobei eine Wiederholung (also ein "Umlauf") bis zum Erfolg durchgeführt wird oder eine Aufgabe erfolgt. Ist die Sperrung erfolgreich, so kann die Quelle frei benutzt werden und in einfacher Weise durch Rückschreiben des "ungesperrten" Wertes in die Sperrstelle freigegeben werden.
  • Steht ein unteilbares Lesen/Schreiben nicht zur Verfügung, so kann es durch eine spezialisierte Speicherstelle ersetzt werden, welche lediglich folgendes ermöglicht: (a) das Einschreiben eines von Null verschiedenen Wertes, wenn ihr laufender Inhalt Null ist oder (b) das Einschreiben einer Null in jedem Zeitpunkt. Eine die Sperrung einer Quelle wünschende Anforderung schreibt ihre eigene eindeutige (von Null verschiedene) Identifizierung in die Stelle ein und liest sie dann zurück; liest sie ihre eigene Identifizierung zurück, so hat sie die Quelle gesperrt. Ist dies nicht der Fall, so hat sie das Sperren der Quellen verfehlt und muß wie vorher für eine Weile warten und einen neuen Versuch starten.
  • Der Nachteil der Umlaufsperrung in welcher Form auch immer besteht darin, daß nützliche Verarbeitungszeit und Speicherbandbreite beim Versuch der Sperrung einer bereits gesperrten Quelle wiederholt verbraucht wird. Suchen zufällig mehrere Anforderungen die gleiche Quelle zu sperren, so werden unerfüllte Anforderungen in das System eingebracht, deren Versuche zur Sperrung der Quelle den Betrieb des laufenden Halters behindern und seine schließliche Freigabe verzögern. Durch längere Verzögerung zwischen den Sperrversuchen wird die Belastung reduziert, wobei das System wegen der langen Periode nach der Freigabe einer Quelle vor dem Zugriff durch den nächsten Benutzer "dumm" werden kann.
  • Ein abgewandelter Mechanismus kann erfindungsgemäß in der Architektur dadurch vorgesehen werden, daß einer der Prozesse zum Sperrungsleiter gemacht wird. Damit wird die normale Funktionsabfolge einer einen Prozeß arbeitenden CPU umgekehrt, bis ein Zugriff zu einem Speicher oder einer anderen Quelle, z.B. einer Fließpunkteinheit notwendig wird. Ein Paket wird zu der geeigneten Quelle gesendet, wobei dieser Kontext nicht mehr abarbeitbar ist, bis eine Antwort empfangen wird, wonach die Steuerung auf einen weiteren Kontext übergeht. In diesem invertierten Betrieb läuft der Kontekt leer, bis er ein Quellenanforderungspaket von einem weiteren (nicht invertierten) Kontext aufnimmt, welcher sich in der gleichen oder einer weiteren CPU befinden kann. Er sucht dann die Quelle zuzuordnen, wobei ein erfolgreiches Antwortpaket zugeführt wird, wenn die Quelle nicht bereitszugeordnet ist. Der Unterschied ergibt sich, wenn die Quelle bereits in Benutzung ist; der Sperrungsleiter antwortet dann einfach nicht, bis die Quelle freigegeben ist, wobei die Identität des unbefriedigten Anforderers in seinem internen Speicher gespeichert wird. Wird die Quelle schließlich freigegeben, so wird die Identität des nächsten Anforderers aus dem internen Speicher entnommen und ein geeignetes Antwortpaket gesendet. Die Quelle wird durch Senden eines einzigen Quellenfreigabepaketes freigegeben.
  • Bei diesem Mechanismus besteht der einzige Zusatzaufwand für die Quellenzuordnung in einem einzigen Paketaustausch. Ist die Quelle nicht verfügbar, so befindet sich der anfordernde Kontext in einem arbeitsfreien Zustand bis die Quelle freigegeben wird. Ein Kontext wird als Quellenleiter verwendet, wobei Kontexte (im Gegensatz zu CPUs oder Busbandbreite) als billige Quelle anzusehen sind und ein einziger Leiter mehrere Quellen bedienen kann.
  • Ein spezieller durch die Erfindung erreichter Vorteil ist die leichte Herstellbarkeit. Alle Komponenten einer Anordnung, wie sie beispielsweise in Figur 3 dargestellt ist, die bereits mittels eines Busrasters miteinander verschaltet sind, können auf einer einzigen Siliziumscheibe hergestellt werden. Vorangegangene Versuche dazu haben keine annehmbaren Ergebnisse ergeben, weil es gegenwärtig unmöglich ist, Defekte in der Kristallstruktur der Scheibe zu vermeiden, welche dazu führen, daß einzelne Schaltungen nicht arbeiten. Konventionelle Computer sind in einer solchen Situation unwirksam, wobei der Computer unter Verwendung der oben beschriebenen erfindungsgemäßen Architektur fähig ist, mit willkürlich verteilten Komponenten in einem nicht funktionalen Zustand zu funktionieren.
  • Ein weiteres Problem der Integration im Scheibenmaßstab besteht im Falle von konventionellen Computern darin, daß leitende Verbindungen auf Silizium einen sehr großen spezifischen Widerstand besitzen. Es ist daher schwierig, Leiter zu realisieren, welche auf langen Strecken über die Scheibe verlaufen. Derartige Leiter besitzen weiterhin eine große Fläche, so daß sie defektanfälliger sind. Die erfindungsgemäße Architektur reduziert beide Probleme. Defekte "leitende" Bereiche können tolleriert werden, wenn der Wegwähler im oben beschriebenen Sinne modifiziert wird. Es sind jedoch bestimmte Mittel erforderlich, um den den Defekteneinheiten benachbarten Wegwählern zu signalisieren, daß solche Einheiten ausgefallen sind und Botschaften zu ihnen nicht gesendet werden dürfen. Dies kann durch Schmelzsicherungen, Lasertrimmen oder entsprechende Techniken erfolgen. Darüber hinaus sind in der Architektur keine langen Probleme hervorrufenden Leiter vorhanden. In Figur 3 ist die Speicherbank M3 als nicht funktional gekennzeichnete während ein Busabschnitt des Wegwählers R21 ebenfalls als Defekt bezeichnet ist. Wegwähler R11, R20 und R22 sind in diesem Falle mit Mitteln zur Anzeige versehen, daß R21 unwirksam ist.
  • Ein erfindungsgemäß ausgebildeter Computer kann zur Abarbeitung konventioneller (prozeduraler) Programme ausgebildet werden und in Verbindung mit Code unabhängigen Programmen arbeiten. Es ist jedoch auch möglich, einen Computer mit einer Datenflußarchitektur aufzubauen. Datenfluß ist eine bekannte Technik, wobei es jedoch durch Verwendung des hier beschriebenen Systemaufbaus möglich wird, auf der gleichen Hardware gleichzeitig sowohl ein Prozeduralsystem als auch ein Datenflußsystem laufen zu lassen.
  • In einer Prozeduralanlage erfaßt eine Prozedur (das Programm), die Daten, welche verarbeitet werden sollen, während es in einer Datenflußanlage die Daten sind, welche den Algorithmus erfassen, der für die Funktion notwendig ist. Die generelle Form eines Befehls ist von der Art
  • < Vat> ist < Betrag> mal < vat Prozentsatz>
  • < Rechnungsbetrag> ist < Betrag> plus < vat> .
  • Die Größen in den spitzen Klammern (beispielsweise < vat> ) sind die durch das System fließenden Daten und die anderen Abschnitte sind der Algorithmus. Das Prinzip besteht darin, daß die Anlage automatisch < vat Prozentsatz> berechnet, sobald sowohl < vat> als auch < Betrag> verfügbar sind. Das Auftreten von < vat> triggert dann den zweiten Befehl (da < Betrag> bereits verfügbar ist) zur Berechnung von < Rechnungsbetrag> . Das Auftreten von < Rechnungsbetrag> kann dann das Drucken einer Rechnung triggern.
  • Datenflußgeräte können zweierlei Typen sein: anforderungsgesteuert und zufuhrgesteuert. Das oben angegebene Beispiel ist zufuhrgesteuert: die Zufuhr aller Operanden zu einem Ausdruck triggert seine Berechnung unabhängig davon, ob es nötig ist. Ein anforderungsgesteuertes System berechnet solange keine Ergebnisse, bis sie gewollt sind. Ein derartiges System erfordert einen Mechanismus zur Zuführung der Anforderung für ein Datum, beispielsweise < Rechnungsbetrag> zu einem ihn berechnenenden Ausdruck, wobei bei Nichtverfügbarkeit der Eingangsgrößen für diesen Ausdruck, beispielsweise < vat> die Anforderung zu den Ausdrücken weitergegeben wird, welche diese Operanden berechnen, usw.. Im obigen Beispiel triggert daher das Erscheinen von < vat> und < Betrag> keine Aktion. Es ist eine gesonderte Anregung, die Anforderung für < Rechnungsbetrag> notwendig. Dies triggert den zweiten Befehl. Dies kann nicht bewertet werden, weil < vat> nicht bekannt ist, obwohl < Betrag> bekannt ist. Dies erzeugt daher eine Anforderung für < vat> , wodurch der erste Befehl getriggert wird. Da wir angenommen haben, daß die beiden Operanden dafür verfügbar sind, wird der Befehl bewertet, was dann die Bewertung des zweiten Befehls bewirkt, wobei das gewünschte Ergebnis rückgeleitet wird. Wären die Operanden nicht verfügbar, so würden weitere Anforderungen solange getriggert, bis der Ausdruck bewertet werden kann. Darüber hinaus ist es einfach, eine zufuhrgesteuerte Anlage in eine anforderungsgesteuerte Anlage umzuwandeln, wie dies im folgenden noch erläutert wird.
  • Datenflußanlagen eignen sich für Anwendungen mit künstlicher Intelligenz, da es für sie nicht notwendig ist, daß alle möglichen Daten zugeführt werden noch daß sie in speziellen Reihenfolgen vorliegen, da das System mögliche Ableitungen mit der zugeführten Information durchführt und für die Anforderung gesonderter Daten eingestellt ist, falls dies zweckmäßig ist. Dies ist gut an Sprachen der vierten Generation, wie beispielsweise Prolog angepaßt. Zweitens sind Datenflußanlagen von Hause aus parallel. Das Auftreten eines einzigen Datums kann die Bewertung vieler Ausdrücke triggern, während die Anforderung für einen einzigen Ausgang viele Anforderungen zur Bewertung triggern kann. Die Ausdrücke sind gewöhnlich einfach zu bewerten und können (wenn die Operanden verfügbar sind) ohne gegenseitige Beeinflussung ausgeführt werden, was mit der verteilten Architektue gemäß vorliegender Erfindung vereinbar ist.
  • Ein Datenflußbefehl in einem Speicher besitzt eine Anzahl von Komponenten:
  • (a) ein Kennzeichenwort, das definiert, welche Operanden für den Ausdruck noch nicht berechnet worden sind;
  • (b) Mittel zum Beschreiben des Algorithmus für die Berechnung des Ergebnisses des Befehls;
  • (c) Mittel zur Lokalisierung der Operanden für den Befehl (beispielsweise ihre Adressen),
  • (d) das berechnete Ergebnis dieses Befehls,
  • (e) Mittel zur Identifizierung aller Befehle, welche den Ausgang dieses Befehls als Operanden benutzen.
  • Die kritische Komponente ist das Kennzeichenwort (a). Für jeden Befehl muß eine begrenzte maximale Anzahl (vielleicht 8 oder möglicherweise 32) von Operanden vorhanden sein, denen jeweils ein Kennzeichen zugeordnet ist. Diese Kennzeichen werden bei Laden der Software gesetzt, so daß alle gültige Operanden reprasentierende Kennzeichen (etwa) gesetzt werden, wenn der Rest des Wortes klar ist. Es ist dann ein neuer Pakettyp, ein Operand Bereit-Paket erforderlich, das ein einziges Bit im Kennzeichenwort identifiziert. Dies läuft in üblicher Weise über das Paketraster zum Regler eines speziellen Speichers und identifiziert ein einziges Kennzeichen im Kennzeichenwort. Der Speicherregler löscht das relevante Kennzeichen, wobei nichts weiter passiert, wenn dies nicht das vollständige Kennzeichenwort löscht. Ist jedoch das vollständige Kennzeichenwort gelöscht, wodurch angezeigt wird, daß alle Operanden für den Befehl nunmehr verfügbar sind, wird der Befehl getriggert. In diesem Fall muß der Speicherregler die Berechnung des Befehlsergebnisses auslösen. Eine einfache Möglichkeit dafür besteht darin, daß die Mittel zur Beschreibung des Algorithmus (b) einfach ein Paket sind, das in das Raster gesendet wird, wenn das Kennzeichenwort gelöscht ist. Dieses Paket triggert dann eine bestimmte Wirkung der Anlage in ihrem prozeduralen Betrieb. Das exakte Format dieses Paketes (ein Datenfluß-Triggerpaket) hängt von der Natur der Prozeduralanlage ab und bewirkt generell das Starten einer Anforderung, welche die Operanden (c) lokalisiert und das Ergebnis berechnet. Das Ergebnis wird sodann an die richtige Stelle im Befehl (d) zurückgeführt, wobei die Liste von Benutzern dieses Ergebnisses (e) abgetastet wird und jedem ein Operand Bereit- Paket zugesandt wird, das feststellt, daß der Operand nunmehr bereit ist. Diese Pakete können ihrerseits wieder den gesamten Zyklus triggern.
  • Die obige Beschreibung gilt für eine zufuhrgesteuerte Anlage. Um sie in ein anforderungsgesteuertes System zu überführen, sind drei weitere Zusätze erforderlich. Der erste besteht darin, ein zusätzliches Kennzeichen im Kennzeichenwort (a) vorzusehen, das keinen Operanden besitzt sondern festlegt daß der Operand gewollt wird. Ist dieses Kennzeichen gesetzt, triggert die Ankunft des letzten Operanden den Befehl nicht, da das Kennzeichenwort noch nicht gelöscht ist. Zweitens wird in den Befehl ein neues Element (f) eingefügt, das Mittel zur Identifizierung der die Operanden für den laufenden Befehl erzeugenden Befehle umfaßt. Drittens ist ein neuer Pakettyp Operant gewollt notwendig, welcher das Befehlskennzeichenwort identifiziert. Wenn dies den Speicherregler erreicht, löscht es das weitere Kennzeichen gewollt. Wird das Kennzeichenwort nunmehr gelöscht, so wird die Bewertung des Befehls im oben beschriebenen Sinne getriggert. Ist das Kennzeichenwort jedoch nicht gelöscht, so wird es abgetastet, um festzustellen, welche Operanden noch fehlen (d.h. welche Kennzeichen noch gesetzt sind), wobei für jedes noch gesetztes Kennzeichen aus der Liste (f) die Stelle des Eingangsbefehls entnommen und ein Operand Gewollt-Paket für diesen Befehl gesendet wird.
  • In den beiden obigen Fällen erfolgt eine Aktion normalerweise beim Löschen eines Kennzeichens lediglich dann, wenn das Kennzeichen vorher gesetzt war. Im Fall des Operand Gewollt- Paketes ist dies generell wahr. Im Fall von Operand Bereit- Paketen können bestimmte Architekturen eine mehrfache Triggerung eines Befehls beispielsweise so ermöglichen, daß er jedes Mal dann getriggert wird, wenn ein neuer Wert für einen seiner Operanden auftritt; es kann dafür selbst wünschenswert sein, eine Steuerung eines Befehls auf Befehlsbasis, beispielsweise als Teil des Operand Bereit- Paketes durchzuführen.
  • Wie oben ausgeführt, kann das Auftreten eines einzigen Operanden oder einer Anforderung für einen einzigen Operanden eine erweiterte Verarbeitungsgröße triggern. Es kann hilfreich sein, eine Begrenzung der Verarbeitungsgröße vorzunehmen, welche durch eine einzige Anforderung getriggert werden kann. Dies kann durch Einführung einer Zählung von Pegeln in das Operand Bereit- oder Operand Gewollt-Paket erfolgen. Diese Zählung wird an jedem Speicherknoten vor der Weiterleitung zu weiteren erzeugten "Welligkeits"-Paketen dekrementiert. Wenn dieser Zähler auf Null abfällt, muß an Stelle der Erzeugung weiterer "Welligkeiten" ein anderes Paket erzeugt werden, das irgendeine zentrale Quelle über den Befehl informiert, an dem die Verarbeitung gestoppt wurde. Es ist dann eine Bewertung darüber möglich, wieviel Verarbeitung durch einen einzigen Befehl oder eine einzige Anforderung erzeugt wurde und grob (also nicht genau, weil die Größe der Verzweigung an jeder Stufe ungesteuert ist) zu steuern, wieviel Computerleistung verbraucht wird.
  • Weiterhin kann die Kenntnis zweckmäßig sein, wann die durch eine spezielle Anforderung erzeugte Aktivität abgeschlossen ist. Dies wird dadurch erreicht, daß ein zweiter Kennzeichensatz parallel zum ersten vorhanden ist; jeder Befehl sendet eine Bestätigung zurück, wenn er entweder ein Bereitoder ein Gewollt-Paket vollständig abgearbeitet hat. Im Falle des Operand Bereit-Paketes wird bei nun er folgender Triggerung des Befehls die Antwort solange nicht gesendet, bis der Befehl vollständig abgearbeitet und die Antwort von allen "welligen" Operand Bereit-Paketen empfangen worden ist. Entsprechend wird für die Operand Gewollt-Pakete die Antwort solange nicht gesendet, bis die Antworten von allen "welligen" Operand Gewollt-Paketen empfangen worden sind. Dies bedeutet, daß die Pakete solange nicht beantwortet werden, bis die gesamte nachfolgende Aktivität abgeschlossen ist. Der Empfang einer Antwort auf die Anfangsbotschaft bedeutet, daß die durch diese Botschaft getriggerte Aktivität abgeschlossen ist. Ist der oben beschriebene Prozeß der Begrenzung der Anzahl von Welligkeitspaketen in Verwendung, so wird bei Unterdrückung eines Welligkeitspaketes (weil sein Zähler Null erreicht hat) keine Antwort erwartet, so daß das Paket, das es erzeugt hat, augenblicklich beantwortet werden kann.
  • Bei Gestaltung zum Betrieb als Datenflußanlage arbeitet der Computer auch als prozedurale Anlage zu seiner Verbindung mit der realen Welt (er nimmt beispielsweise Eingangsgrößen wie Operanden oder Anfragen auf und druckt das Ergebnis aus). Das prozedurale System kann das Datenflußsystem dadurch triggern, daß Operand Bereit- oder Operand Gewollt- Pakete abgegeben werden. Der umgekehrte Übergang erfolgt schon automatisch, da die Bewertung von Befehlsergebnissen im prozeduralen Bereich erfolgt. Das Codefragment, das die Ergebnisse bewertet, kann Operationen, wie beispielsweise die Anzeige von Semaphoren durchführen oder Botschaften senden, um konventionelle prozedurale Anforderungen zu veranlassen, das Nötige zu tun.
  • Die Realisierung dieses Aspektes der Erfindung erfordert eine ins Gewicht fallende Menge weiterer Funktionen vom Speicherregler. Wird dies jedoch ursprünglich als Anlage mit Mikrocode realisiert, so handelt es sich lediglich um einen weiteren Mikrocode mit geringen Kosten; unter Berücksichtigung, daß der Speicher ein relativ langsames dynamisches RAM ist, kann der Speicherregler relativ langsam sein.
  • Der Computer kann daher so ausgebildet werden, daß sowohl eine prozedurale Funktion als auch eine Datenflußfunktion realisiert wird, welche sich die gleiche Hardware teilen. Ein Funktionsdiagramm eines erfindungsgemäßen als Datenflußanlage arbeitenden Computers ist in Figur 5 dargestellt.
  • Um den Computer für einen Datenflußbetrieb zu organisieren, kann eine Auslegung in Form von Firmware, Hardware oder einer Kombination von beiden vorgesehen sein. Dies ist permanent im Computer vorgesehen und unterscheidet sich der Art nach von einem Programm, das zur Durchführung einer vorgegebenen Verarbeitung von Eingangsdaten ausgebildet ist. Das Paketraster muß kein rechteckiges Raster sein, obwohl dies die Wegführung erleichtert, da eine Adresse als X- und Y-Koordinate betrachtet werden kann. Das Paketraster kann auch andere Formen, beispielsweise Tetraederform besitzen, wobei eine Paketadresse generell eine willkürliche Zahl sein kann. In diesem Fall kann jeder Wegwähler mit einer Nachschlagetabelle versehen sein, welche in Abhängigkeit von den Adressen (etwa) den besten und zweitbesten Weg des Aussendens des Pakets zu seiner Endbestimmung identifiziert.
  • Insoweit sind die Knoten als heterogen angenommen, d.h. als Knoten, wie beispielsweise CPUs und Speicher, für die das Paket den richtigen Knoten erreichen muß für den es adressiert ist. Ein anderer Typ sind homogene Knoten, welche im wesentlichen Dienstleistungen absolvieren, wofür eine Gleitpunkt-ALU ein Beispiel sein kann. Homogene Knoten dieses Typs sind im wesentlichen auswechselbar, wobei eine Gleitpunktoperation auf jeder Gleitpunkt-ALU ausgeführt werden kann. In dem oben beschriebenen Nachschlagetabellen-Adreßschema können den Klassen von homogenen Knoten spezielle Adressen zugeordnet werden. Die Wegwähler sind dann so programmiert, daß sie auf einen homogenen Knoten programmierte Pakete zum nächstliegenden Knoten führen (mit einer weiteren Wahl wenn der nächste Knoten besetzt ist). Dies bedeutet, daß die CPU-Knoten nicht wissen müssen, wo sich derartige geteilte Quellen im Raster befinden - die Wegwähler senden ein Paket automatisch zur nächsten verfügbaren Quelle.
  • Dieses Konzept kann dazu benutzt werden, das verfügbare Netzwerk durch Einfügung des Konzeptes einer Zone zu erweitern. Eine Zone ist eine Gruppe von benachbarten Knoten, die jeweils eine eindeutige Adresse besitzen. Das Raster kann viele Zonen enthalten, wobei die Knotenadressen in jeder Zone wiederholt werden. Die Zone selbst wird als homogene Quelle mit ihrer eigenen Adresse behandelt. Alle Wegwähler besitzen ihre Nachschlagetabellen die so eingestellt sind, daß ein Paket zu dieser Zone geleitet werden kann. Erreicht es die richtige Zone, so muß das Paket zu einem Knoten geführt werden, welcher den ersten Wegführungscode abtrennt. Dies legt einen neuen Wegführungscode hinter ihm frei, der die Adresse (eindeutig in dieser Zone, jedoch nicht im Netzwerk als Ganzes) des Knotens enthält, zu dem das Paket geschickt werden soll. Der Vorgang des Abtrennens des Kopfes dieses Paketes ist im wesentlichen eine "Nulloperation" und kann durch viele unterschiedliche Klassen von Knoten ausgeführt werden (auch hier führen die Wegwähler eine derartige Botschaft lediglich zu Knoten, die sie handhaben können -wenigstens ein derartiger Knoten muß in jeder Zone vorhanden sein).
  • Diese Organisation kann mit Superzonen, Überzonen, usw. wiederholt werden. Im Grenzfall kann eine Adresse mit n-Bit ein Netzwerk ermöglichen, das in Zweierpotenzen 2(n-1) Knoten enthält (dies ist jedoch langsam, weil das Paket n-1 Präfixe besitzen muß). Für eine Adresse mit 8 Bit führt dies in Zweierpotenzen zu 128 Knoten, wobei 64 Zonen von 256 Knoten 16 K Knoten ergeben.
  • Die durch den ersten Aspekt der Erfindung definierte Datenverarbeitungsanlage umfaßt Verarbeitungseinheiten, Speichereinheiten und ein Kommunikationssystem. Ein bevorzugtes Kommunikationssystem ist durch den zweiten Aspekt der Erfindung definiert, in dem Wegwahlmittel Eingangsanschlüsse, Ausgangsanschlüsse und FIFO-Speicheranordnungen besitzen. Das bevorzugte Kommunikationssystem besteht dann aus einer Anordnung der Wegwahlmittel in einem Raster, das hier als Paketraster bezeichnet wird. Zusätzlich zu der durch den ersten Aspekt der Erfindung definierten Anwendung kann diese Paketrasterarchitektur auch an die Ausgestaltung eines lokalen Netzwerkes LAN angepaßt werden. In einem LAN-Signal sind Wege zwischen Wegwählern typischerweise zehn oder hunderte von Metern lang, so daß die Datenübertragungsgeschwindigkeit entsprechend kleiner als die des Computersystems ist. Die Verdrahtung eines derartigen Systems ist ziemlich direkt vorausgesetzt, daß Signale in einer Richtung über die Leiter laufen und lediglich eine einzige Last ansteuern. Zur Kostenreduzierung kann die Breite von Bussen im Vergleich zu den bevorzugten Bussen mit 16 oder 32 Bit des Computersystems beispielsweise auf 8 Bit reduziert werden.
  • Das Konzept mit Verteilungspegeln und festgelegten Zonen, in denen Bestimmungswörter abgetrennt werden, wurde in Bezug auf das Computersystem beschrieben. Dies ist auch bei Bereichsnetzwerken anwendbar, in denen eine Vielzahl von LANs durch Knoten zweiter Ordnung miteinander verbunden sind. Den zwischen Knoten zweiter Ordnung übertragenen Paketen geht ein Bestimmungswort zweiter Ordnung voraus, das vor der Einspeisung in einn lokales Netzwerk vorzugsweise abgetrennt wird, wodurch das lokale Bestimmungswort dann dem Paket vorausgeht. Dies kann zur Realisierung von so vielen Pegeln wie notwendig erweitert werden, obwohl andere Kommunikationsformen bevorzugt sein können, wenn die Abstände sehr groß werden.
  • Das System hat mehrere Vorteile gegenüber konventionellen LANs. Die meisten gegenwärtigen LANs besitzen eine feste Bandbreite. Das bedeutet, daß weitere Bandbreite gekauft werden muß, wenn eine Erweiterung voraussehbar ist; ist ein LAN einmal voll ausgeschöpft, so kann es nicht erweitert werden. Das vorliegende System ermöglicht die Einfügung weiterer Wege über Hochlastabschnitte (für den Benutzer ersichtlich), ohne daß das gesamte Netzwerk aufgewertet werden muß. Gegenwärtige LANs besitzen eine feste Topologie - Ring, Bus, usw., wobei das vorliegende System jedoch eine willkürliche Topologie unterstützt, so daß es an die physikalische Topologie einer Örtlichkeit oder die logische Topologie einer Anwendung angepaßt werden kann (durch Schaffung mehrerer Wege bei zu erwartenden hohen Lasten und einzelner Wege für selten benutzte Kanäle). Im Gegensatz zu bestimmten LANs ist ein Datenverlust unmöglich (wenn Daten verloren gehen, weil der Empfänger nicht für sie bereit war). Ist ein Empfänger zu langsam, so werden die Daten einfach sichergestellt. Daten im Rest des Netzwerkes werden dann automatisch um die Blockade geführt. Die oben beschriebenen Fehlertoleranztechniken machen das System zuverlässig und im Betrieb leicht zu aktualisieren.
  • Mit dem Raster verbundene Computer können dann vom vorliegenden Typ sein, vorausgesetzt, daß zwei mit unterschiedlichen Geschwindigkeiten zur Unterscheidung zwischen einem Computer und einem weiteren auf den LAN-Bus laufende Raster miteinander verbunden werden können. Bei gegebener geeigneter Prozessor- und Betriebssystemarchitektur kann eine an einer Stelle laufende Aufgabe über das LAN auf einen Speicher an einer entfernt liegenden stelle zugreifen, als ob es sich dabei um eine lokale Stelle handeln würde (abgesehen von der Verzögerung), wodurch die Gemeinkosten an beiden Stellen stark reduziert werden. Das bedeutet, daß der Satz aller mit einem LAN verbundenen Computer in bestimmten Fällen und im Bedarfsfall als ein einziger Computer betrachtet werden kann, dessen physikalische Größe und Verarbeitungsleistung beträchtlich ist.
  • Wesentliche Komponenten der Wegwähler sind die FIFO-Speicheranordnungen. Diese können jede Art von Aufbau besitzen, der eine FIFO-Funktion ausführt. Vorzugsweise sind die FIFO's Speicher mit wahlfreiem Zugriff, in denen die Leseadressierung und die Schreibadressierung zirkuliert und außer Phase gelangt wenn Daten in einem FIFO zwischengespeichert werden. Auf diese Weise führt der FIFO lediglich eine Verzögerung von einer Taktperiode ein, wenn keine Zwischenspeicherung erforderlich ist.
  • Wie oben bereits angeführt, "wissen" die Wegwähler, welche Anschlüsse zuerst und nachfolgend gewählt werden, um ein Paket für jede gegebene Bestimmung auszugeben. Der Wegwähler muß ein Register oder eine Gruppe von Registern enthalten, mit denen er den richtigen Anschluß für jede gegegebene Bestimmung berechnen oder nachschlagen kann, wobei diese Register für die Wegwähler jeweils auf unterschiedliche Werte gesetzt werden müssen, um ihre unterschiedliche Stellung im Raster wiederzugeben. Eine Möglichkeit dazu besteht darin, durch feste Nachschlagetabellen in einem PROM oder durch Einstellen von Knotenadressen auf einer Schaltbank eine feste Verdrahtung vorzusehen. Dies ist unzweckmäßig, da es von Hand durchgeführt werden muß (mit allen Möglichkeiten menschlicher Fehler), und da es dann nicht möglich ist, einen fehlerhaften Wegwähler zu ersetzen, ohne daß sein Ersatz zunächst neu programmiert werden muß. Es sind daher Mittel wünschenswert, durch die das Raster automatisch aus identischen Anordnungen ohne manuellen Eingriff geformt werden kann.
  • Dazu wird im Wegwähler eine kleine Anzahl von speziellen Codes ausgebildet. Diese speziellen Codes führen die Botschaft immer in einer festen Richtung (beispielsweise nach links, geradeaus) oder zu bordeigenen Registern des Wegwählers. Darüber hinaus wird dabei der spezielle Code selbst an der Vorderseite des Paketes gelöscht. Diese speziellen Codes ermöglichen es einem Gestalter, der ein externer Computer oder ein vorgeformter Teil des Rasters sein kann, die Wegführung für den Rest des Rasters zu programmieren. Dies erfolgt durch Aussenden von Paketen mit einer Anzahl von Präfixen, welche es auf einen speziellen Knoten führen; diese werden dann beim Durchgang von Knoten zu Knoten abgetrennt, bis der zu programmierende Knoten erreicht ist, wenn die Daten für die bordeigenen Register im Rest des Paketes erkennbar sind. Ist darüber hinaus die Rastergeometrie als regelmäßig (beispielsweise in Form der rechteckförmigen Struktur nach Figur 3) bekannt, aber der Umfang oder potentielle Defekte unbekannt, so kann der Gestalter das Raster durch Aussenden von Paketen untersuchen, welche zu einem festen Wegwähler laufen und sodann zurückzukehren suchen - falls sie dies tun, sind sowohl der Wegwähler als auch der feste Weg vorhanden.
  • Ist die Geometrie nicht regelmäßig, so muß dem Wegwähler ein weiteres Register und ein spezieller Wegführungscode hinzugefügt werden. Das Register ist ein Identitätsregister, das bei Einschaltung des Systems automatisch auf einen "unidentifizierten" Wert gesetzt wird. Dieses Register kann im oben beschriebenen Sinne in der gleichen Weise wie alle anderen Wegwählerregister programmiert werden. Ein spezieller Wegführungscode wird als "Leseidentifizierungsregister"-Code bezeichnet. Er bewirkt, daß das ihm vorausgehende Paket in der Richtung zurückgeführt wird, aus der es kam, und wird automatisch ebenso wie andere spezielle Codes gelöscht. Er bewirkt jedoch auch, daß die laufende Einstellung des Identifizierungsregisters an das Paket angehängt wird. Dies ermöglicht dem Gestalter die Feststellung, wo Verbindungen mit Wegwählern hergestellt sind, denen er bereits begegnet ist, und unbekannte Wegwähler zu erkennen, wenn er ihnen begegnet.
  • Die vorliegende Erfindung wurde somit anhand von bevorzugten Ausführungsformen beschrieben. Es ist jedoch darauf hinzuweisen, daß die fraglichen Ausführungsformen lediglich beispielhaft sind und daß für Personen mit geeigneter Kenntnis und Ausbildung Modifikationen und Abänderungen möglich sind, ohne von dem in den beigefügten Ansprüchen dargestellten Umfang der Erfindung abzuweichen.]

Claims (44)

1. Datenverarbeitungsanlage umfassend zwei oder mehr Verarbeitungseinheiten (C1, C2) , zwei oder mehr Speichereinheiten (M1, M2) und ein Kommunikationssystem (A1, B1, R1, R2), das eine Verbindung zwischen den Verarbeitungseinheiten und den Speichereinheiten gewährleistet, dadurch gekennzeichnet, daß die Verarbeitungseinheiten (C1, C2) jeweils
eine Vielzahl von Registersätzen (Rg1, Rg2) , die jeweils auf einen einzelnen Prozeß bezogene Daten aufnehmen
und Verarbeitungsmittel (P) zur Abarbeitung eines ersten Prozesses durch Zugriff auf einen ersten Satz der Registersätze, bis der erste Prozeß die Abgabe eines ersten Datums über das Kommunikationssystem erfordert, Anforderung über das Kommunikationssystem einer Abgabe eines ersten Datums über das Kommunikationssystem, Unterbrechung der Abarbeitung des ersten Prozesses während der Aufnahme des ersten Datums und Abarbeitung eines zweiten Prozesses durch Zugriff auf einen zweiten Registersatz
umfassen.
2. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet, daß die Verarbeitungsmittel (P) jeder Verarbeitungseinheit (C1, C2) zur Abarbeitung des zweiten Prozesses bis zur Anforderung eines zweiten Datums, Anforderung des zweiten Datums über das Kommunikationssystem, Unterbrechung der Abarbeitung des zweiten Prozesses und Abarbeitung eines dritten Prozesses durch Zugriff auf einen dritten Registersatz dienen.
3. Datenverarbeitungsanlage nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Verarbeitungseinheiten jeweils Mittel (F1, F2) zur Identifizierung umfassen, ob ein Prozeß für den Lauf bereit ist oder Daten erwartet, wobei der zweite Prozeß zur Abarbeitung aus den als für den Lauf bereiten Prozessen identifiziert gewählt wird.
4. Datenverarbeitungsanlage nach Anspruch 3, dadurch gekennzeichnet, daß die Verarbeitungseinheiten Mittel zur Einspeisung von Daten vom Kommunikationssystem zu dem Registersatz des Prozesses, für den die Daten angefordert wurden, sowie Mittel zur Identifizierung des Prozesses, dem Daten als für den Lauf bereit zugeführt worden sind, enthalten, wobei der Prozeß für die Abarbeitung gewählt wird.
5. Datenverarbeitungsanlage nach den Ansprüchen 1 bis 4, dadurch gekennzeichnet, daß die Verarbeitungseinheiten jeweils Mittel zur Anforderung eines Datums von allen mit dem Kommunikationssystem verbundenen Speichereinheiten enthalten.
6. Datenverarbeitungsanlage nach Anspruch 5, dadurch gekennzeichnet, daß ein einem Prozeß zugeführtes Datum ein Befehl für die Verarbeitungseinheit ist, der als Teil eines Prozesses auszuführen und von einem Computerprogramm abgeleitet ist.
7. Datenverarbeitungsanlage nach den Ansprüchen 1 bis 6, dadurch gekennzeichnet, daß die Speichereinheiten (M1, M2) jeweils einen Speicherregler umfassen, der zur Übertragung eines Datums oder Datenblöcken zwischen seiner jeweiligen Speicheranordnung und dem Kommunikationssystem dient.
8. Datenverarbeitungsanlage nach Anspruch 7, dadurch gekennzeichnet, daß der Speicherregler zur Durchführung einer unteilbaren Lese/Schreiboperation dienende Sperrmittel enthält, um eine Kommunikation der Verarbeitungseinheiten mit der Speicheranordnung über das Kommunikationssystem zu verhindern, wenn einer der Verarbeitungsanordnungen ein ausschließlicher Zugriff zugeteilt wird.
9. Datenverarbeitungsanlage nach Anspruch 8, dadurch gekennzeichnet, daß ein Prozeß der auf einer der Verarbeitungseinheiten laufen soll, die Sperrung und Freigabe der Sperrmittel in Abhängigkeit von durch die Verarbeitungseinheiten durchgeführten Anforderungen steuert.
10. Datenverarbeitungsanlage nach Anspruch 7, 8 oder 9, dadurch gekennzeichnet, daß die Speicherregler der Speichereinheiten mit Einzelheiten des Befehlssatzes der Verarbeitungseinheiten programmiert sind, wobei die Regler zum Auslesen eines aus Verarbeitungseinheitbefehlen bestehenden Datenblocks aus ihrer entsprechenden Speicheranordnung dienen und der Block beim Erreichen einer vorgegebenen Größe oder beim Auslesen eines Datums beendet wird, das einen Prozeß zur Verzweigung auf einen anderen Speicherbereich veranlaßt.
11. Datenverarbeitungsanlage nach Anspruch 7, dadurch gekennzeichnet, daß wenigstens eine der Verarbeitungseinheiten ein Vektorprozessor mit in Bänken angeordneten Registern ist, in dem in Abhängigkeit von einer einzigen über das Kommunikationssystem erfolgenden Anforderung Datenblöcke von einer Speicheranordnung zu einer Registerbank geliefert werden.
12. Datenverarbeitungsanlage nach den vorhergehenden Ansprüchen, dadurch gekennzeichnet, daß die Verarbeitungseinheiten jeweils Mittel zum Einschreiben von Daten in die Speichereinheiten umfassen.
13. Datenverarbeitungsanlage nach den vorhergehenden Ansprüchen, dadurch gekennzeichnet, daß wenigstens eine Verarbeitungsanordnung einem ausgewählten Prozeß zugeordnet ist und eine Kommunikation zwischen den Verarbeitungseinheiten und der zugeordneten Verarbeitungsanordnung über das Kommunikationssystem erfolgt.
14. Datenverarbeitungsanlage nach Anspruch 13, dadurch gekennzeichnet, daß die zugeordnete Verarbeitungsanlage arithmetische Gleitpunktberechnungen durchführt und die Ergebnisse über das Kommunikationssystem auf die Verarbeitungseinheiten zurückführt.
15. Datenverarbeitungsanlage nach den vorhergehenden Ansprüchen, dadurch gekennzeichnet, daß die Verarbeitungseinheiten Prozessoren mit 16 oder 32 Bit sind, deren Verarbeitungsleistung in der gleichen Größenordnung wie diejenige konventioneller Mikroprozessoren liegt.
16. Datenverarbeitungsanlage nach Anspruch 7, dadurch gekennzeichnet, daß die Speicherregler zusätzliche Speichermittel enthalten, denen Daten zugeführt und von denen Daten abgenommen werden, wenn die Datenverarbeitungsanlage für einen Betrieb als Datenflußanlage programmiert ist.
17. Datenverarbeitungsanlage nach Anspruch 16, dadurch gekennzeichnet, daß die zusätzlichen Speichermittel ein Kennzeichenfeld, ein Wertefeld, ein Ausgangslistenfeld und ein Operationsfeld umfassen, wodurch eine zufuhrbetriebene Funktion realisiert wird.
18. Datenverarbeitungsanlage nach Anspruch 16, dadurch gekennzeichnet, daß die zusätzlichen Speichermittel ein Kennzeichenfeld, in dem eines der Kennzeichenn ein wertegewolltes Kennzeichen ist, ein Wertefeld, ein Eingangslistenfeld und ein Operationsfeld enthalten, wodurch eine anforderungsbetriebene Funktion realisiert wird.
19. Kommunikationssystem umfassend:
eine Vielzahl von durch Übertragungsmittel (SB, RB, A1, B1) verbundenen Wegwahlmitteln (R1, R2, R3, R4);
die jeweils wenigstens zwei Eingangsanschlüsse und wenigstens zwei Ausgangsanschlüsse besitzen;
wobei die Eingangsanschlüsse jeweils zur Zwischenspeicherung empfangener Daten in einer jeweiligen Speicheranordnung der Wegwahlmittel dienen;
gekennzeichnet durch eine Verbindung wenigstens eines Eingangsanschlusses über entsprechende Übertragungsmittel mit einem entsprechenden Ausgangsanschluß von benachbarten Wegwahlmitteln sowie wenigstens eines Ausgangsanschlusses mit einem entsprechenden Eingangsanschluß von benachbarten Wegwahlmitteln;
eine Anordnung der Daten in einer Vielzahl von Wörtern einschließlich eines lokalen Zielwortes umfassenden Paketen; und
in den Wegwahlmitteln enthaltene Mittel zur selektiven Führung jedes Datenpaketes auf einen Anschluß der wenigstens zwei Ausgangsanschlüsse in Abhängigkeit vom lokalen Zielwort sowie in den Wegwahlmitteln enthaltene Mittel zur Steuerung der Übertragungseigenschaften der entsprechenden Speicheranordnung zwecks Vermeidung von Datenkollisionen in den Wegwahlmitteln.
20. Kommunikationssystem nach Anspruch 19, dadurch gekennzeichnet, daß die Datenpakete jeweils eine Vielzahl von zeitlich beabstandeten Wörtern umfassen.
21. Kommunikationssystem nach Anspruch 19 oder 20, dadurch gekennzeichnet, daß die Wörter jeweils eine Vielzahl von räumlich getrennten Ziffern umfassen.
22. Kommunikationssystem nach Anspruch 19, 20 oder 21, dadurch gekennzeichnet, daß die Speicheranordnungen jeweils eine FIFO-Speicheranordnung enthalten.
23 Kommunikationssystem nach Anspruch 22, dadurch gekennzeichnet, daß die Wegwahlmittel und ihre entsprechenden FIFOs auf einem einzigen Chip hergestellt sind.
24. Kommunikationssystem nach den Ansprüchen 22 bis 23, dadurch gekennzeichnet, daß die FIFOs Anordnungen mit wahlfreiem Zugriff sind, in denen Daten durch Einschreiben in und Auslesen aus unterschiedlichen Adressen zwischengespeichert werden.
25. Kommunikationssystem nach den Ansprüchen 22 bis 24, dadurch gekennzeichnet, daß die Wegwahlmittel Mittel zur Sperrung des Datentransfers von einem mit ihrem Eingangsanschluß verbundenen FIFO enthalten, wenn ihrem Eingangsanschluß zugeführte Daten ihrem Bestimmungsausgangsanschluß nicht zugeführt werden können.
26. Kommunikationssystem nach den Ansprüchen 19 bis 25, dadurch gekennzeichnet, daß das lokale Bestimmungswort das erste Paket eines Wortes ist und die Wegwahlmittel Mittel zur selektiven Führung von Worten eines Paketes auf einen Ausgangsanschluß enthalten, während nachfolgende Wörter des Paketes an einem Eingangsanschluß empfangen werden.
27. Kommunikationssystem nach den Ansprüchen 19 bis 26, dadurch gekennzeichnet, daß die Wegwahlmittel programmierbare Mittel enthalten, welche die Lage aller möglichen Bestimmungen zwecks Festlegung des bevorzugten Ausgangsanschlusses für die Auswahl in Abhängigkeit vom Empfang eines Bestimmungswortes definieren.
28. Kommunikationssystem nach den Ansprüchen 19 bis 27, dadurch gekennzeichnet, daß die Wegwahlmittel zur Führung eines ersten empfangenen Paketes auf einen ersten ausgewählten Ausgangsanschluß dienen, während ein zweites empfangenes Paket auf einen zweiten ausgewählten Ausgang geführt wird.
29. Kommunikationssystem nach Anspruch 27, dadurch gekennzeichnet, daß die programmierbaren Mittel Mittel zur Festlegung eines zweitbesten Ausgangsanschlusses für eine Auswahl enthalten, wenn der bevorzugte Ausgangsanschluß in Verwendung ist.
30. Kommunikationssystem nach den Ansprüchen 19 bis 29, dadurch gekennzeichnet, daß die Pakete jeweils Daten enthalten, welche sich auf die Zeit beziehen, während der das Paket im System vorhanden gewesen ist, und das System Mittel zur Entfernung von Paketen enthält, welche länger als ein vorgegebenes Intervall im System gewesen sind.
31. Kommunikationssystem nach Anspruch 30, dadurch gekennzeichnet, daß die Wegwahlmittel zur Festlegung des Zeitintervalls, in dem ein Paket im System gewesen ist, gemeinsame Taktdaten aufnehmen.
32. Kommunikationssystem nach den Ansprüchen 19 bis 31, dadurch gekennzeichnet, daß die Wegwahlmittel zu einem Raster geformt sind, in dem zentrale Wegwahlmittel mit vier weiteren Wegwahlmitteln verbunden sind.
33. Datenverarbeitungsanlage nach den Ansprüchen 1 bis 18, dadurch gekennzeichnet, daß das Kommunikationssystem ein System nach den Ansprüchen 19 bis 32 ist.
34. Datenverarbeitungsanlage nach Anspruch 33, dadurch gekennzeichnet, daß die Wegwahlmittel jeweils fünf Paare von Eingangsanschlüssen und Ausgangsanschlüssen besitzen, wobei vier der Paare mit den anderen Wegwahlmitteln und das fünfte Paar mit den entsprechenden Speichereinheiten verbunden ist.
35. Datenverarbeitungsanlage nach Anspruch 33, dadurch gekennzeichnet, daß die Wegwahlmittel jeweils fünf Paare von Eingangs- und Ausgangsanschlüssen enthalten, ein Netzwerk von Wegwahlmitteln als Hyperwürfel mit mit einer Verarbeitungs- oder Speichereinheit verbundenen Knoten-Wegwahlmitteln ausgebildet ist und die verbleibenden vier Anschlußpaare mit dem fünften Anschlußpaar entsprechender Übertragungs-Wegwahlmittel und die verbleibenden vier Anschlußpaare der jeweiligen Übertragungs-Wegwahlmittel mit weiteren Wegwahlmitteln verbunden sind.
36. Datenverarbeitungsanlage nach Anspruch 33, dadurch gekennzeichnet, daß eine Anforderung für ein Datum von einer Speichereinheit durch Einspeisung eines Datenpaketes in das Kommunikationssystem erfolgt und die Datenpakete jeweils (a) die Verarbeitungseinheit, (b) den auf der Verarbeitungseinheit laufenden Prozeß, (c) die Speichereinheit, von der das Datum gefordert wird, und (d) die Adresse des geforderten Datums identifizieren.
37. Kommunikationssystem nach den Ansprüchen 19 bis 32, dadurch gekennzeichnet, daß die Wegwahlmittel Knoten eines lokalen Bereichsnetzwerkes sind.
38. Kommunikationssystem nach Anspruch 37 in Abhängigkeit von Anspruch 26, dadurch gekennzeichnet, daß eine Vielzahl von lokalen Bereichsnetzwerken durch Knoten zweiter Ordnung eines Netzwerkes zweiter Ordnung miteinander verbunden sind, wobei das erste Wort jedes über das Netzwerk zweiter Ordnung verteilten Paketes ein dem lokalen Bestimmungswort vorausgehendes Bestimmungswort zweiter Ordnung enthält und die Knoten zweiter Ordnung Mittel zur Entfernung oder Sperrung der Wörter zweiter Ordnung vor der Verteilung eines Paketes über ein lokales Netzwerk enthalten.
39. Kommunikationssystem nach Anspruch 38, dadurch gekennzeichnet, daß ein Datum der Bestimmungswörter identifiziert, ob die Wörter für eine zweite Ordnung oder eine lokale Verteilung bestimmt sind.
40. Kommunikationssystem nach Anspruch 38, dadurch gekennzeichnet, daß zusätzlich zur lokalen Verteilung und Verteilung zweiter Ordnung weitere Verteilungsordnungen vorgesehen sind.
41. Kommunikationssystem nach Anspruch 37, dadurch gekennzeichnet, daß eine Datenverarbeitungsanlage nach Anspruch 1 mit einem Knoten des lokalen Bereichsnetzwerkes verbunden ist.
42. Kommunikationssystem nach Anspruch 41, dadurch gekennzeichnet, daß Knoten des lokalen Bereichsnetzwerkes und Wegwahlmittel der Datenverarbeitungsanlage aus gleichartigen Schaltungen gebildet sind.
43. Kommunikationssystem nach Anspruch 31, dadurch gekennzeichnet, daß das Raster auf einer einzigen Scheibe aus Halbleitermaterial hergestellt ist.
44. Datenverarbeitungsanlage nach Anspruch 33, dadurch gekennzeichnet, daß das System auf einer einzigen Scheibe aus Halbleitermaterial ausgebildet ist.
DE89300336T 1988-01-15 1989-01-13 Datenverarbeitung und -übertragung. Expired - Fee Related DE68909426T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB888800943A GB8800943D0 (en) 1988-01-15 1988-01-15 Improvements relating to computers
GB888819207A GB8819207D0 (en) 1988-08-12 1988-08-12 Improvements relating to computers

Publications (2)

Publication Number Publication Date
DE68909426D1 DE68909426D1 (de) 1993-11-04
DE68909426T2 true DE68909426T2 (de) 1994-01-27

Family

ID=26293332

Family Applications (1)

Application Number Title Priority Date Filing Date
DE89300336T Expired - Fee Related DE68909426T2 (de) 1988-01-15 1989-01-13 Datenverarbeitung und -übertragung.

Country Status (4)

Country Link
US (1) US5361334A (de)
EP (1) EP0325384B1 (de)
JP (1) JP2879567B2 (de)
DE (1) DE68909426T2 (de)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68909426T2 (de) * 1988-01-15 1994-01-27 Quantel Ltd Datenverarbeitung und -übertragung.
US5689647A (en) * 1989-03-14 1997-11-18 Sanyo Electric Co., Ltd. Parallel computing system with processing element number setting mode and shortest route determination with matrix size information
WO1991002314A1 (en) * 1989-08-03 1991-02-21 International Business Machines Corporation Data processing network
WO1992007335A1 (en) * 1990-10-19 1992-04-30 Cray Research, Inc. A scalable parallel vector computer system
US5790776A (en) * 1992-12-17 1998-08-04 Tandem Computers Incorporated Apparatus for detecting divergence between a pair of duplexed, synchronized processor elements
US5640513A (en) * 1993-01-22 1997-06-17 International Business Machines Corporation Notification of disconnected service machines that have stopped running
US5623698A (en) * 1993-04-30 1997-04-22 Cray Research, Inc. Memory interconnect network having separate routing networks for inputs and outputs using switches with FIFO queues and message steering bits
US5721819A (en) * 1995-05-05 1998-02-24 Silicon Graphics Corporation Programmable, distributed network routing
JPH096633A (ja) * 1995-06-07 1997-01-10 Internatl Business Mach Corp <Ibm> データ処理システムに於ける高性能多重論理経路の動作用の方法とシステム
US5717853A (en) * 1995-10-23 1998-02-10 International Business Machines Corporation Information handling system having router including first mode for configuring itself, second mode for configuring its connected devices and third mode for system operation
US6041345A (en) * 1996-03-08 2000-03-21 Microsoft Corporation Active stream format for holding multiple media streams
US5860119A (en) * 1996-11-25 1999-01-12 Vlsi Technology, Inc. Data-packet fifo buffer system with end-of-packet flags
US6076157A (en) * 1997-10-23 2000-06-13 International Business Machines Corporation Method and apparatus to force a thread switch in a multithreaded processor
US6567839B1 (en) 1997-10-23 2003-05-20 International Business Machines Corporation Thread switch control in a multithreaded processor system
US6061710A (en) * 1997-10-29 2000-05-09 International Business Machines Corporation Multithreaded processor incorporating a thread latch register for interrupt service new pending threads
US6230252B1 (en) * 1997-11-17 2001-05-08 Silicon Graphics, Inc. Hybrid hypercube/torus architecture
US6101181A (en) * 1997-11-17 2000-08-08 Cray Research Inc. Virtual channel assignment in large torus systems
US6256775B1 (en) 1997-12-11 2001-07-03 International Business Machines Corporation Facilities for detailed software performance analysis in a multithreaded processor
US6018759A (en) * 1997-12-22 2000-01-25 International Business Machines Corporation Thread switch tuning tool for optimal performance in a computer processor
US6018780A (en) * 1998-05-19 2000-01-25 Lucent Technologies Inc. Method and apparatus for downloading a file to a remote unit
US6298396B1 (en) * 1998-06-01 2001-10-02 Advanced Micro Devices, Inc. System for loading a current buffer desciptor register with a value different from current value to cause a previously read buffer descriptor to be read again
US20050149694A1 (en) * 1998-12-08 2005-07-07 Mukesh Patel Java hardware accelerator using microcode engine
US6332215B1 (en) * 1998-12-08 2001-12-18 Nazomi Communications, Inc. Java virtual machine hardware for RISC and CISC processors
JP2000211216A (ja) * 1999-01-25 2000-08-02 Canon Inc 複合機器の情報処理方法及びシステム
CN1168025C (zh) * 1999-03-10 2004-09-22 国际商业机器公司 用于多线程处理机的指令高速缓存器
JP3675221B2 (ja) * 1999-04-16 2005-07-27 コニカミノルタビジネステクノロジーズ株式会社 機器管理装置、及び機器管理システム
US6668285B1 (en) 1999-05-12 2003-12-23 Koninklijke Philips Electronics N.V. Object oriented processing with dedicated pointer memories
DE19925693B4 (de) * 1999-06-04 2007-05-16 Phoenix Contact Gmbh & Co Schaltungsanordnung zur gesicherten Datenübertragung in einem ringförmigen Bussystem
US6674720B1 (en) 1999-09-29 2004-01-06 Silicon Graphics, Inc. Age-based network arbitration system and method
US6934283B1 (en) * 1999-11-08 2005-08-23 Hewlett-Packard Development Company, L.P. System and method for source defined packet routing
EP1152331B1 (de) * 2000-03-16 2017-11-22 Kabushiki Kaisha Square Enix (also trading as Square Enix Co., Ltd.) Paralleles Aufgabenverarbeitungssystem und -verfahren
US7162615B1 (en) 2000-06-12 2007-01-09 Mips Technologies, Inc. Data transfer bus communication using single request to perform command and return data to destination indicated in context to allow thread context switch
US20020035638A1 (en) * 2000-07-25 2002-03-21 Gendron David Pierre Routing and storage within a computer network
EP1197847A3 (de) * 2000-10-10 2003-05-21 Nazomi Communications Inc. Java-Hardwarebeschleuniger mit Mikrokodemaschine
FR2818066B1 (fr) * 2000-12-12 2003-10-10 Eads Airbus Sa Procede et dispositif de transmission deterministe de donnees asynchrones mises en paquet
US7571370B2 (en) * 2003-06-19 2009-08-04 Lsi Logic Corporation Configurable, fast, 32-bit CRC generator for 1-byte to 16-bytes variable width input data
US20050240699A1 (en) * 2004-03-31 2005-10-27 Yoder Michael E Safe process deactivation
JP2005352694A (ja) * 2004-06-09 2005-12-22 Canon Inc 印刷装置およびその方法、並びに、情報処理装置およびその制御方法
US7603404B2 (en) * 2004-12-20 2009-10-13 Sap Ag Grid parallel execution
JP4527571B2 (ja) * 2005-03-14 2010-08-18 富士通株式会社 再構成可能演算処理装置
US20070088828A1 (en) * 2005-10-18 2007-04-19 International Business Machines Corporation System, method and program product for executing an application
US7904602B2 (en) * 2008-02-05 2011-03-08 Raptor Networks Technology, Inc. Distributed computing bus
US8862706B2 (en) 2007-12-14 2014-10-14 Nant Holdings Ip, Llc Hybrid transport—application network fabric apparatus
US8868700B2 (en) 2010-12-28 2014-10-21 Nant Holdings Ip, Llc Distributed network interfaces for application cloaking and spoofing
US20140233582A1 (en) * 2012-08-29 2014-08-21 Marvell World Trade Ltd. Semaphore soft and hard hybrid architecture
CN103246622B (zh) * 2013-04-10 2015-12-02 华为技术有限公司 一种扩展内存的方法、内存节点、主节点及***
US9917728B2 (en) 2014-01-14 2018-03-13 Nant Holdings Ip, Llc Software-based fabric enablement
US10212101B2 (en) 2014-01-14 2019-02-19 Nant Holdings Ip, Llc Low level provisioning of network fabrics
US11934945B2 (en) 2017-02-23 2024-03-19 Cerebras Systems Inc. Accelerated deep learning
WO2018193352A1 (en) * 2017-04-17 2018-10-25 Cerebras Systems Inc. Dataflow triggered tasks for accelerated deep learning
US11232347B2 (en) 2017-04-17 2022-01-25 Cerebras Systems Inc. Fabric vectors for deep learning acceleration
US11488004B2 (en) 2017-04-17 2022-11-01 Cerebras Systems Inc. Neuron smearing for accelerated deep learning
WO2020044152A1 (en) 2018-08-28 2020-03-05 Cerebras Systems Inc. Scaled compute fabric for accelerated deep learning
WO2020044238A1 (en) 2018-08-29 2020-03-05 Cerebras Systems Inc. Processor element redundancy for accelerated deep learning
WO2020044208A1 (en) 2018-08-29 2020-03-05 Cerebras Systems Inc. Isa enhancements for accelerated deep learning
US11784930B2 (en) 2021-04-30 2023-10-10 Bank Of America Corporation Communication system with auto-routing and load balancing
US11469988B1 (en) 2021-04-30 2022-10-11 Bank Of America Corporation Communication analysis for dynamic auto-routing and load balancing
US11792108B2 (en) 2021-04-30 2023-10-17 Bank Of America Corporation Dynamic auto-routing and load balancing for communication systems

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3676852A (en) * 1970-07-20 1972-07-11 Ibm Multiple program digital computer
US4400768A (en) * 1980-06-04 1983-08-23 Burroughs Corporation Parallel access computer memory system employing a power-of-two memory modules
JPS57164340A (en) * 1981-04-03 1982-10-08 Hitachi Ltd Information processing method
US5212773A (en) * 1983-05-31 1993-05-18 Thinking Machines Corporation Wormhole communications arrangement for massively parallel processor
US4644542A (en) * 1984-10-16 1987-02-17 International Business Machines Corporation Fault-tolerant atomic broadcast methods
US4742511A (en) * 1985-06-13 1988-05-03 Texas Instruments Incorporated Method and apparatus for routing packets in a multinode computer interconnect network
GB8528892D0 (en) * 1985-11-23 1986-01-02 Int Computers Ltd Multi-node data processing system
US5021947A (en) * 1986-03-31 1991-06-04 Hughes Aircraft Company Data-flow multiprocessor architecture with three dimensional multistage interconnection network for efficient signal and data processing
US5133053A (en) * 1987-02-13 1992-07-21 International Business Machines Corporation Interprocess communication queue location transparency
DE68909426T2 (de) * 1988-01-15 1994-01-27 Quantel Ltd Datenverarbeitung und -übertragung.
US5212778A (en) * 1988-05-27 1993-05-18 Massachusetts Institute Of Technology Message-driven processor in a concurrent computer
US5101488A (en) * 1989-05-02 1992-03-31 Motorola, Inc. Method for retrieving and updating data in a real-time data base system
US5218676A (en) * 1990-01-08 1993-06-08 The University Of Rochester Dynamic routing system for a multinode communications network
US5247613A (en) * 1990-05-08 1993-09-21 Thinking Machines Corporation Massively parallel processor including transpose arrangement for serially transmitting bits of data words stored in parallel
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

Also Published As

Publication number Publication date
US5361334A (en) 1994-11-01
JP2879567B2 (ja) 1999-04-05
EP0325384A2 (de) 1989-07-26
EP0325384B1 (de) 1993-09-29
DE68909426D1 (de) 1993-11-04
EP0325384A3 (en) 1990-01-10
JPH025173A (ja) 1990-01-10

Similar Documents

Publication Publication Date Title
DE68909426T2 (de) Datenverarbeitung und -übertragung.
DE112020002500T5 (de) System und verfahren zur durchführung einer fliegenden reduktion in einem netz
DE69021710T2 (de) Packetvermitteltes Mehrfachverarbeitungsverbindungssystem mit Fehlerkorrektur und Wiederherstellung.
EP0960374B1 (de) Internes bussystem für dfps, sowie bausteine mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen, zur bewältigung grosser datenmengen mit hohem vernetzungsaufwand
DE69832884T2 (de) Wegesucheinheit mit zuteilung von virtuellen kanälen
DE69029763T2 (de) Weglenkung von Nachrichtenpaketen
DE69031368T2 (de) Weglenkung von Nachrichtenpaketen
DE69433293T2 (de) Netzwerkübertragungsverfahren für Systeme mit virtuellem Speicher
DE3685599T2 (de) Vermittlungssystem fuer datenuebertragung.
EP0961980B1 (de) Verfahren zur selbstsynchronisation von konfigurierbaren elementen eines programmierbaren bausteines
DE3880478T2 (de) Geschichtetes netz.
DE3789490T2 (de) Steuerungssystem für ein Vektorprozessor.
DE68923951T2 (de) Hochgeschwindigkeits-Kombinierschalter mit Einzelfifo.
DE3114961A1 (de) Datenverarbeitungssystem
DE69106384T2 (de) Skalierbares parallel-vektorrechnersystem.
DE60317155T2 (de) Netzwerkeinheiten zur Verwendung in und Organisation von Kaskadensystemen
EP1342158A2 (de) Pipeline ct-protokolle und -kommunikation
EP2293193A1 (de) Verfahren und Vorrichtung zur Datenverarbeitung
DE602004009324T2 (de) Integrierte datenverarbeitungsschaltung mit mehreren programmierbaren prozessoren
DE68923055T2 (de) Vorrichtung und Protokoll zur Paketvermittlung für eine parallelverarbeitende Maschine.
DE4208924A1 (de) Verfahren zur kommunikation zwischen prozessoren und parallelverarbeitungscomputer hierfuer
DE3114934A1 (de) Zentrales subsystem fuer eine datenverarbeitungsanlage
DE60038703T2 (de) Asynchrone Datenübertragung
DE60305560T2 (de) Eingebettetes System für die Überlastregelung von Rundfunkverkehr in einem Kommunikationsnetzwerk
DE202015009265U1 (de) Einheitliche api zur programmierung beider server und des fabric für die feinoptimieirung von netzwerken

Legal Events

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