DE69231497T2 - Massivparalleles rechnersystem mit eingangs-ausgangsanordnung - Google Patents
Massivparalleles rechnersystem mit eingangs-ausgangsanordnungInfo
- Publication number
- DE69231497T2 DE69231497T2 DE69231497T DE69231497T DE69231497T2 DE 69231497 T2 DE69231497 T2 DE 69231497T2 DE 69231497 T DE69231497 T DE 69231497T DE 69231497 T DE69231497 T DE 69231497T DE 69231497 T2 DE69231497 T2 DE 69231497T2
- Authority
- DE
- Germany
- Prior art keywords
- value
- target
- input
- offset
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 claims description 339
- 239000000872 buffer Substances 0.000 claims description 164
- 230000015654 memory Effects 0.000 claims description 73
- 230000004044 response Effects 0.000 claims description 28
- 238000006073 displacement reaction Methods 0.000 claims description 25
- 238000012546 transfer Methods 0.000 claims description 20
- 230000005540 biological transmission Effects 0.000 claims description 15
- 238000005192 partition Methods 0.000 claims description 7
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 230000003139 buffering effect Effects 0.000 claims description 2
- 230000008859 change Effects 0.000 description 7
- 230000003247 decreasing effect Effects 0.000 description 7
- ONCZDRURRATYFI-QTCHDTBASA-N methyl (2z)-2-methoxyimino-2-[2-[[(e)-1-[3-(trifluoromethyl)phenyl]ethylideneamino]oxymethyl]phenyl]acetate Chemical compound CO\N=C(/C(=O)OC)C1=CC=CC=C1CO\N=C(/C)C1=CC=CC(C(F)(F)F)=C1 ONCZDRURRATYFI-QTCHDTBASA-N 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 239000012530 fluid Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000005094 computer simulation Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 238000000819 phase cycle Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
- G06F15/17343—Direct connection machines, e.g. completely connected computers, point to point communication networks wherein the interconnection is dynamically configurable, e.g. having loosely coupled nearest neighbor architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17381—Two dimensional, e.g. mesh, torus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/55—Prevention, detection or correction of errors
- H04L49/555—Error detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multi Processors (AREA)
- Image Processing (AREA)
Description
- Die Erfindung betrifft allgemein das Gebiet digitaler Rechnersysteme und insbesondere ein massivparalleles Rechnersystem.
- Ein digitales Rechnersystem umfasst im allgemeinen drei Grundelemente, nämlichen ein Speicherelement, ein Eingabe-/Ausgabeelement und ein Prozessorelement. Der Speicherelement speichert Informationen an adressierbaren Speicherplätzen. Diese Informationen umfassen Datenwerte und Befehle zur Verarbeitung der Datenwerte. Das Prozessorelement holt Informationen aus dem Speicherelement, interpretiert die Informationen entweder als Befehle oder Datenwerte, verarbeitet die Datenwerte entsprechend den Befehlen und gibt die verarbeiteten Datenwerte an das Speicherelement zurück. Das Eingabe-/Ausgabeelement steht ebenfalls unter der Steuerung des Prozessorelements mit dem Speicherelement in Verbindung, um Informationen, die Befehle und die zu verarbeitenden Datenwerte einschließen, zu dem Speicher zu übertragen und verarbeitete Daten aus dem Speicher zu erhalten.
- In jüngster Zeit sind Rechner entwickelt worden, die eine große Anzahl Verarbeitungselemente enthalten, von denen alle gleichzeitig mit dem allgemein gleichen Befehlsstrom arbeiten können, wobei aber jedes Verarbeitungselement einen getrennten Datenwertstrom verarbeitet. Diese Prozessoren sind "SIMD"-Prozessoren für "single-instruction/multiple-data" oder allgemeine "SPMD"-Prozessoren für "single-programm/- multiple-data" genannt worden (allgemein hier als "SPMD" bezeichnet).
- SPMD Prozessoren sind bei einer Anzahl Anwendungen zweckmäßig, wie bei der Bildverarbeitung, der Signalverarbeitung, der künstlichen Intelligenz, bei Datenbankoperationen und Rechnersimulation von einer Anzahl von Gegenständen, wie elektronischen Schaltungen und bei der Fluiddynamik. Bei der Bildverarbeitung kann jedes Verarbeitungselement verwendet werden, die Verarbeitung an einem Pixel ("Bildelement") des Bilds durchzuführen, um das Gesamtbild zu verbessern. Bei der Signalverarbeitung führen die Prozessoren gleichzeitig eine Anzahl von Berechnungen durch, die benötigt werden, um solche Berechnungen wie die "schnelle Fourier Transformation" der Daten werte durchzuführen, die das Signal definieren. Bei der künstlichen Intelligenz führen die Prozessoren Suchvorgänge bei umfassenden Regeldatenbanken durch, die das gespeicherte Wissen der besonderen Anwendung repräsentieren. Ähnlich führen die Prozessoren bei Datenbankoperationen Suchvorgänge an den Daten in der Datenbank durch und können auch Sortierungen und andere Operationen ausführen. Bei der Rechnersimulation von z. B. elektronischen Schaltungen kann jeder Prozessor einen Teil der Schaltung darstellen, und die schrittweisen Berechnungen des Prozessors geben die Reaktion dieses Teils auf Signale von anderen Teilen der Schaltung an. Ähnlich wird bei der Simulierung der Fluiddynamik, die bei einer Anzahl von Anwendungen zweckmäßig sein kann, wie bei der Wettervoraussage und der Flugzeugkonstruktion, jeder Prozessor einem Raumpunkt zugeordnet, und die Berechnungen liefern Informationen über verschiedene Faktoren, wie Fluidströmung, Temperatur, Druck usw..
- Typische SPMD Systeme umfassen ein SPMD Feld, dass das Feld von Verarbeitungselementen und ein Router-Netz, einen Steuerprozessor und eine Eingabe-/Ausgabekomponente umfasst. Die Eingabe-/Ausgabekomponente ermöglicht unter der Steuerung des Steuerprozessors, dass Datenwerte zum Verarbeiten in das Feld übertragen werden können, und erhält verarbeitete Datenwerte von dem Feld zur Speicherung, Anzeige usw.. Der Steuerprozessor steuert auch das SPMD Feld, wobei schrittweise Befehle an die Verarbeitungselemente zur parallelen Ausführung verteilt werden. Das Router-Netz ermöglicht, dass Verarbeitungselemente die Ergebnisse einer Rechnung zu anderen Verarbeitungselementen zur Verwendung bei zukünftigen Berechnungen übertragen.
- Bei vielen Arten von Rechnern mit einer Anzahl von Prozessoren, einschließlich von SPMD Rechnern, ist ein Nachteil bei der Fähigkeit gewesen, Datenwerte und andere Informationen schnell zwischen dem Eingabe-/Ausgabeelement und den Prozessoren zu übertragen.
- Die Druckschrift US-A-4 873 628 beschreibt ein hochparalleles Verarbeitungssystem, in dem eine Anzahl von Verarbeitungselementen durch ein Netz verbunden ist und auch mit einem Systembus verbunden ist und von einer zentralen Verarbeitungseinheit CPU gesteuert wird. Das Netz ermöglicht die Übertragung von Nachrichten veränderbarer Länge und auch die Kombination von Nachrichten, wenn sie bei einem gemeinsamen Verarbeitungselement empfangen werden. Jedes Verarbeitungselement hat eine eindeutige Kennungscodezahl, die ihre Adresse in dem Netz bildet. Die Datenwerte werden in der Form von Nachrichten übertragen, die ein Zieladressenfeld enthalten.
- Die Erfindung schafft einen Parallelrechner wie er im Anspruch 1 angegeben ist.
- Zusammengefasst bildet der Rechner der Erfindung bei einer Ausführungsform einen Rechner, der eine Mehrzahl Verarbeitungselemente und einen Eingabe-/Ausgabeprozessor umfasst, die durch ein Routernetz verbunden sind. Das Routernetz überträgt Nachrichten zwischen den Verarbeitungselementen und dem Eingabe-/Ausgabeprozessor. Die Verarbeitungselemente führen Verarbeitungsoperationen in Verbindung mit Datenwerten durch, die von dem Eingabe-/Ausgabeprozessor in Nachrichten erhalten werden, die über das Routernetz übertragen werden, und übertragen verarbeitete Datenwerte zu dem Eingabe-/Ausgabeprozessor in Nachrichten über das Routernetz, wobei die Verarbeitungselemente als eine erste, ausgewählte Reihe von Astknoten verbunden sind. Der Eingabe-/Ausgabeprozessor umfasst eine Mehrzahl Eingabe- /Ausgabepuffer, die als eine zweite, ausgewählte Reihe von Astknoten des Routernetzes zur Erzeugung von Nachrichten zur Übertragung über das Routernetz zu einer Reihe von Verarbeitungselementen verbunden sind, die zumindest eine ausgewählte Untergruppe der Verarbeitungselemente während einer Eingabe-/Ausgabeoperation bilden.
- Bei einer anderen Ausführungsform stellt der Rechner der Erfindung einen Eingabe- /Ausgabeprozessor bereit, der eine Mehrzahl von Eingabe-/Ausgabepuffern aufweist, die mit einer Reihe von Astknoten des Routernetzes zur Erzeugung von Nachrichten zur Übertragung über dieses Routernetz zu einer Mehrzahl von Datenempfängern verbunden sind, von denen jeder mit einem einer zweiten Reihe von Knoten des Routernetzes verbunden und während einer Eingabe-/Ausgabeoperation durch eine Adresse gekennzeichnet ist. Jeder Eingabe-/Ausgabepuffer umfasst einen Übertragungsdatenpuffer, um eine Mehrzahl Datenelemente zu puffern, von denen jeder in einer Nachricht zu einem Datenempfänger in einer Nachricht übertragen werden soll. Eine Datenempfängerzieladresse und ein Versetzungsgenerator erzeugen schrittweise einen Datenempfänger- Zieladressenwert und einen Zielversetzungswert in Antwort auf die Anzahl von Eingabe- /Ausgabepuffern und die Anzahl von Datenempfängern, die an der Eingabe-/Ausgabeoperation teilnehmen.
- Die obigen und weitere Vorteile des Rechners nach der Erfindung können besser unter Bezugnahme auf die folgende Beschreibung verstanden werden, wenn sie in Verbindung mit den beigefügten Zeichnungen betrachtet wird, in denen:
- Fig. 1 ein allgemeines Blockdiagramm eines massivparallelen Rechnersystems ist, das entsprechend der Erfindung konstruiert ist;
- Fig. 2 ein Schema ist, das die Struktur der Nachrichtenpaketen zeigt, die über den Datenrouter in dem in Fig. 1 gezeigten Rechnersystem übertragen werden;
- Fig. 3A und 3B Funktionsblockschemata sind, die die allgemeine Struktur ausgewählter Abschnitte des Rechnersystems der Fig. 1 zeigen, die zum Verständnis der Erfindung zweckmäßig sind;
- Fig. 4A und 4B logische Schemata sind, die die Struktur der Schaltungen ausführlich angeben, die in dem in Fig. 3A gezeigten Abschnitt verwendet werden und Informationen erzeugen, die in Verbindung mit der Erzeugung von Abschnitten der Nachrichtenpakete, die in Fig. 2 gezeigt sind, verwendet werden.
- Fig. 1 ist ein allgemeines Blockdiagramm eines massivparallelen Rechnersystems 10, das entsprechend der Erfindung konstruiert ist. Unter Bezugnahme auf Fig. 1 umfasst das System 10 eine Mehrzahl von Verarbeitungselementen (VE) 11 (0) bis 11 (N) (die allgemein durch das Bezugszeichen 11 gekennzeichnet sind), Skalarprozessoren (SP) 12(0) bis 12(M) (allgemein durch das Bezugszeichen 12 gekennzeichnet) und Eingabe- /Ausgabeprozessoren (IOP) 13(0) bis 13(K) (allgemein durch das Bezugszeichen 13 gekennzeichnet). Eingabe-/Ausgabeeinheiten (nicht gezeigt), wie bspw. Platten- und Bandspeichereinheiten, Videoanzeigeeinrichtungen, Drucker usw., können mit den Eingabe-/Ausgabeprozessoren verbunden werden, um Informationen, die Datenwerte und Programmbefehle enthalten, zur Verarbeitung durch die Verarbeitungselemente 11 und die Skalarprozessoren 12 in dem System zuzuführen, und können auch verarbeitete Daten zur Speicherung, Anzeige und zum Druck erhalten. Die Skalarprozessoren 12 können auch mit Eingabe-/Ausgabeeinheiten verbunden werden, einschließlich Videoanzeigeendstationen, die einer oder mehreren Bedienpersonen ermöglichen, allgemein das System 10 zu steuern. Das System 10 kann auch eine Mehrzahl von Reserveverarbeitungselementen 11 s(0) bis 11 s(J) (allgemein durch das Bezugszeichen 11s gekennzeichnet) umfassen, die, wie später beschrieben, verwendet werden können.
- Das System 10 umfasst des weiteren ein Steuernetz 14, einen Datenrouter 15 und ein Diagnosenetz 16. Das Steuernetz 14 ermöglicht einem oder mehreren Skalarprozessoren 12, Programmbefehle an die Verarbeitungselemente 11 zu verteilen. Die Verarbeitungselemente 11, die die Befehle erhalten, führen diese im allgemeinen gleichzeitig aus. Das Steuernetz 14 erlaubt den Verarbeitungselementen 11 auch, Zustandsinformationen zu erzeugen, die sie den skalaren Prozessoren 12 zuführen können. Das Steuernetz 14 wird auch von den Verarbeitungselementen 11 verwendet, ausgewählte Arten von arithmetischen Operationen durchzuführen, die "Abtast"- und "Verringerungs- "Operationen genannt werden. Das Steuernetz 14 kann auch verwendet werden, Zustands- und Synchronisierinformationen unter den Verarbeitungselementen 11 bereitzustellen.
- Der Datenrouter 15 überträgt Daten zwischen den Verarbeitungselementen 11, den Skalarprozessoren 12 und den Eingabe-/Ausgabeprozessoren 13. Insbesondere wiedergewinnen die Eingabe-/Ausgabeprozessoren 13 unter der Steuerung der Skalarprozessoren 12 Datenwerte, die verarbeitet werden sollen, von den Eingabe-/Ausgabeeinheiten und verteilen sie an die jeweiligen Skalarprozessoren 12 und Verarbeitungselemente 11. Während der Verarbeitung können die Skalarprozessoren 12 und die Verarbeitungselemente 11 Daten zwischen sich über dem Datenrouter 15 übertragen. Zusätzlich können die Verarbeitungselemente 11 und die Skalarprozessoren 12 ver arbeitete Daten zu den Eingabe-/Ausgabeprozessoren 13 übertragen. Unter der Steuerung der Skalarprozessoren 12 können die Eingabe-/Ausgabeprozessoren 13 die verarbeiteten Daten, die sie von dem Datenrouter 15 erhalten, zu bestimmten Eingabe- /Ausgabeeinheiten zur Speicherung, zur Anzeige, zum Drucken oder Ähnlichem lenken. Der Datenrouter 15 wird bei einer bestimmten Ausführungsform auch verwendet, Eingabe-/Ausgabebefehle von den Skalarprozessoren 12 zu den Eingabe-/Ausgabeprozessoren 13 und Eingabe-/Ausgabezustandsinformationen von den Eingabe-/Ausgabeprozessoren 13 zu den Skalarprozessoren 12 zu übertragen.
- Das Diagnosenetz 16 erleichtert unter der Steuerung eines Diagnoseprozessors (in Fig. 1 nicht gezeigt) das Testen anderer Abschnitte des Systems 10, um Fehler zu erkennen, zu lokalisieren und zu diagnostizieren. Der Diagnoseprozessor kann einen oder mehrere Skalarprozessoren 12 umfassen. Zusätzlich kann das Diagnosenetz 16 verwendet werden, ausgewählte Betriebsbedingungen in den anderen Abschnitten des Systems 10 herzustellen.
- Das System 10 ist synchron, d. h., alle seine Elemente arbeiten entsprechend einem globalen SYSCLK Systemtaktsignal, das von einer Taktschaltung 17 geliefert wird.
- Eine bestimmte Ausführungsform des Systems 10 kann hunderte oder viele tausende Verarbeitungselemente 11 umfassen, die an einem einzigen Problem parallel unter der Steuerung von Befehlen arbeiten, die an sie durch die Skalarprozessoren 12 verteilt werden. Bei dieser Ausführungsform arbeiten die Verarbeitungselemente 11 parallel an dem gleichen Befehl an ihren einzelnen Datensätzen, wodurch ein paralleles Rechnersystem gebildet wird.
- Zusätzlich kann das System 10 dynamisch, logisch unterteilt werden, indem das Steuernetz 14 logisch in mehrere logische Untersysteme unterteilt wird, die gleichzeitig an getrennten Problemen oder getrennten Teilen eines einzigen Problems arbeiten können. In diesem Fall umfasst jede Unterteilung zumindest einen Skalarprozessor 12 und eine Mehrzahl von Verarbeitungselementen 11, wobei der Skalarprozessor 12 die Befehle zur Verarbeitung durch die Verarbeitungselemente in seiner Unterteilung zuführt. Die Reserveverarbeitungselemente 11s, die mit Ausnahme der Positionen ihrer Verbindungen mit dem Steuernetz 14 und dem Datenrouter 15 sonst wie die Verarbeitungsele mente 11 sind, können verwendet werden, fehlerhafte Verarbeitungselemente 11 in einer Unterteilung zu ersetzen, um die Anzahl von Verarbeitungselementen in einer Unterteilung zu erhöhen, wenn es unzureichend Verarbeitungselemente 11 gibt, Unterteilungen mit einer erwünschten Anzahl von Verarbeitungselementen 11 zu bilden, oder zusätzliche Verarbeitungselemente bereitzustellen, die selbst als Unterteilungen gebildet werden können. Im folgenden ist, es sei denn, es ist ausdrücklich anders angegeben, ein Verweis auf ein Verarbeitungselement 11 entweder im Singular oder Plural ebenso wie ein entsprechender Verweis im Singular oder Plural auf ein Reserveverarbeitungselement 11s anzusehen; d. h., die Verarbeitungselemente 11 und die Reserveverarbeitungselemente 11s werden gemeinsam hier allgemein als Verarbeitungselemente 11 bezeichnet.
- Einzelheiten eines Steuernetzes 14, eines Datenrouters 15 und eines Diagnosenetzes 16, die bei einer Ausführungsform des Systems 10 verwendet werden, sind in der internationalen Anmeldung PCT/US91/07383 mit dem internationalen Hinterlegungsdatum vom 3. Oktober 1991 der Thinking Machines Corporation unter dem Titel Parallel Rechner System beschrieben (veröffentlicht mit der internationalen Veröffentlichungsnummer WO 92/06436 am 16. April 1992), und werden hier nicht beschrieben.
- Kurz gesagt sind sowohl das Steuernetz 14 als auch der Datenrouter 15 allgemein baumförmige Netze (wobei der Datenrouter 15 tatsächlich einen "fetten Baum" umfasst), in denen die Verarbeitungselemente 11, die Skalarprozessoren 12 und die Eingabe- /Ausgabeprozessoren 13 an den Ästen verbunden sind. Des weiteren beschreibt diese internationale Anmeldung ausführlich eine Netzschnittstellenschaltung, die in den Verarbeitungselementen 11, den Skalarprozessoren 12 und den Eingabe-/Ausgabeprozessoren 13 enthalten sind, damit sie über den Datenrouter 15 und das Steuernetz 14 kommunizieren können, was ebenfalls hier nicht wiederholt wird.
- Der Rechner der Erfindung betrifft allgemein Eingabe-/Ausgabeoperationen in dem System 10. Im allgemeinen werden Eingabe-/Ausgabeoperationen zwischen einem Eingabe-/Ausgabeprozessor 13 und Verarbeitungselementen 11 und dem Skalarprozessor 12 einer Unterteilung durch den Skalarprozessor 12 der Unterteilung gesteuert. Der Skalarprozessor 12 liefert Eingabe-/Ausgabe-Befehlsinformationen an die Verarbeitungselemente 11 seiner Unterteilung und den/die Eingabe-/Ausgabeprozessor(en) 13, um an der Eingabe-/Ausgabeoperation einzugreifen. Der Skalarprozessor 12 liefert die Eingabe-/Ausgabe-Befehlsinformationen an den/die Eingabe-/Ausgabeprozessor(en) 13 über den Datenrouter 15, damit die gleichzeitige Benutzung der Eingabe- /Ausgabeprozessoren 13 zwischen mehreren Unterteilungen erleichtert wird. Jedenfalls umfassen die Eingabe-/Ausgabebefehlsinformationen, die von dem Skalarprozessor 12 sowohl den Verarbeitungselementen 11 als auch dem/den Eingabe- /Ausgabeprozessor(en) 13 geliefert werden, unter anderem eine Operationskennung, die die Eingabe-/Ausgabeoperation kennzeichnen.
- Die vorgenannten internationale Anmeldung beschreibt des weiteren ausführlich die Struktur von Nachrichtenpaketen, die die Verarbeitungselemente 11, die Skalarprozessoren 12 und die Eingabe-/Ausgabeprozessoren 13 über den Datenrouter 15 und das Steuernetz 14 übertragen, damit Informationsübertragungen zwischen ihnen durchgeführt werden. Die hier beschriebene Erfindung verwendet Nachrichtenpakete, die über den Datenrouter 15 übertragen werden, insbesondere Eingabe-/Ausgabe-Nachrichtenpakete mit einer bestimmten Struktur, die in Fig. 2 gezeigt ist. Unter Bezugnahme auf Fig. 2 umfasst ein Eingabe-/Ausgabe-Nachrichtenpaket 2230 einen Nachrichtenadressenabschnitt 31, einen Nachrichtendatenabschnitt 32 und einen Prüfabschnitt 33. Der Nachrichtenadressenabschnitt wird verwendet, einen Weg von der Übertragungseinrichtung zu dem beabsichtigten Empfänger zu kennzeichnen. Die Übertragungseinrichtung und der beabsichtigte Empfänger können ein Verarbeitungselement, ein Skalarprozessor 12 oder ein Eingabe-/Ausgabeprozessor 13 sein. Der Nachrichtenadressenabschnitt 31 umfasst einen KOPF-Abschnitt, der eine Niveaukennung und eine Reihe von Abwärtswegkennungen DN "i" enthält (der Index "i" ist eine ganze Zahl von "M" bis "1"). Die Niveaukennung in dem KOPF-Abschnitt kennzeichnet das unterste Niveau in dem Baum, das sowohl die Übertragungseinrichtung als den beabsichtigten Empfänger umfasst, und der Datenrouter 15 koppelt anfangs das Eingabe-/Ausgabe-Nachrichtenpaket 2230 von der Übertragungseinrichtung bis zu diesem Niveau in dem Baum. Danach verwendet der Datenrouter aufeinanderfolgende Abwärtswegkennungen DN "i", um das Eingabe-/Ausgabe-Nachrichtenpaket 2230 den Baum abwärts zu dem beabsichtigten Empfänger zu lenken.
- Der Nachrichtendatenabschnitt 32 umfasst eine Anzahl von Feldern, die ein Nachrichtenlängenfeld 34, ein Nachrichtenetikettenfeld 35, ein Zielpufferkennungsfeld 2231, ein Zielpufferversetzungsfeld 2232 und ein Zieldatenfeld 2233 umfasst. Das Nachrichtenlängenfeld 34 kennzeichnet die Länge des Nachrichtendatenabschnitts 34. Das Nachrichtenetikettenfeld 35 kann Betriebssysteminformationen enthalten, die das Paket als Eingabe-/Ausgabe-Nachrichtenpaket 2230 gegenüber anderen Arten von Nachrichtenpaketen kennzeichnen, die über den Datenrouter 15 übertragen werden können.
- Der Inhalt des Zielpufferkennungsabschnitts 2231 und des Zielpufferversetzungsabschnitt 2232 liefern Informationen, die von der Empfangseinrichtung, bspw. einem Verarbeitungselement 11(i) oder einem Skalarprozessor 12, in dem Fall von Eingabe-/Ausgabe-Nachrichtenpaketen 2230, die von einem Eingabe-/Ausgabeprozessor 13 übertragen werden, oder von einem Eingabe-/Ausgabeprozessor 13 in dem Fall eines Eingabe-/Ausgabe-Nachrichtenpakets 2230 verwendet werden, das dadurch von einem Verarbeitungselement 11(i) oder einem Skalarprozessor 12 erhalten wird. Insbesondere wird der Inhalt des Zielpufferkennungsabschnitts 2231 von der Eingabe-/Ausgabeoperationskennung abgeleitet, die von den Skalarprozessoren 12 in deren Eingabe-/Ausgabebefehlen vorgesehen ist. Wenn bspw., wie es typisch ist, während Eingabe-/Ausgabeoperationen Daten von dem Empfänger in einem Eingabe-/Ausgabepuffer erhalten werden, durch den sie aufrechterhalten werden, kann der Inhalt des Zielpufferkennungsabschnitts 2231 verwendet werden, den besonderen Puffer zu erkennen, in den der Empfänger den Inhalt des Zieldatenabschnitts 2233 laden kann. Der Inhalt des Zielpufferversetzungsabschnitts 2232 kennzeichnet die bestimmte Speicherstelle in dem Puffer, an der der Empfänger den Inhalt des Zieldatenabschnitts 2233 laden soll. Man erkennt, dass eine Anzahl einzelner Eingabe-/Ausgabeoperationen gleichzeitig in dem System 10 ausgeführt werden kann, wobei die Eingabe-/Ausgabe-Nachrichtenpakete 2230 unterschiedliche Werte in ihren Zielpufferkennungsabschnitten 2231 aufweisen.
- Zusätzlich erkennt man, dass, während der diesbezügliche Nachrichtensender, der entweder ein Verarbeitungselement 11(i) oder einen Skalarprozessor 12 einerseits oder den Eingabe-/Ausgabeprozessor 13 andererseits umfassen kann, Eingabe-/Ausgabe- Nachrichtenpakete 2230 in der Reihenfolge erzeugen und übertragen kann, in der sie die Datenwerte übertragen sollen, die Nachrichtempfänger die Eingabe-/Ausgabe- Nachrichtenpakete 2230 in zufälliger Reihenfolge empfangen können. Der Inhalt des Zielpufferversetzungsabschnitts 22 von jedem Eingabe-/Ausgabe-Nachrichtenpaket 2230 ermöglicht dem Empfänger, die Datenwerte richtig zu ordnen, die in den Zielda tenabschnitten 2233 der empfangenen Eingabe-/Ausgabe-Nachrichtenpakete 2230 enthalten sind, die mit der bestimmten Eingabe-/Ausgabeoperation verbunden sind, wie es durch den Inhalt ihrer Zielpufferkennungsabschnitte 2231 angegeben ist.
- Schließlich enthält der Prüfabschnitt 33 einen zyklischen Redundanzprüfwert, der verwendet werden kann, zu verifizieren, dass das Eingabe-/Ausgabe-Nachrichtenpaket 2230 korrekt empfangen wurde.
- Der Rechner der Erfindung schafft eine Anordnung zur Erzeugung von Informationen für den Nachrichtenadressenabschnitt 31 und den Zielpufferversetzungsabschnitt 2232 eines Eingabe-/Ausgabe-Nachrichtenpakets 2230.
- Ein kurze Beschreibung einer Nachrichtenübertragungsoperation im Parallelmodus ist in Verbindung mit Fig. 3A und 3B dargestellt. Diese Figuren zeigen schematisch jeweils eine Anzahl Eingabe-/Ausgabe-Pufferknoten 2201 (0) bis 2201 (6) (Fig. 3A), die Abschnitte eines Eingabe-/Ausgabeprozessors 13 umfassen, die an einer Eingabe-/Ausgabeoperation mit einer Unterteilung von Verarbeitungselementen teilnehmen, die durch die Bezugszeichen 11 (0) bis 11 (5) (Fig. 3B) gekennzeichnet sind. Insbesondere stellt Fig. 3A schematisch für jeden Eingabe-/Ausgabe-Pufferknoten 2201(i) eine Netzschnittstelle 2277(i), einen parallelen Adressensende-/Versetzungsgenerator 2278(i) und einen Parallelmoduspuffer in dem Pufferspeicher 2223(i) dar. Ähnlich stellt Fig. 3B schematisch die Netzschnittstelle 202(i) und einen Speicherpuffer für jedes Verarbeitungselement 11(i) dar. Die Netzschnittstellen 2277(i) von sequentiell geindexten Eingabe-/Ausgabe- Pufferknoten 2201(i) sind als sequentielle Äste des Datenrouters 15 verbunden. Ähnlich sind die Netzschnittstellen 202(i) der sequentiell geindexten Verarbeitungselemente 11(i) als sequentielle Äste des Datenrouters 15 verbunden. Die Verbindungen mit dem Datenrouter 15 der Netzschnittstellen 2277(i) der Eingabe-/Ausgabe-Pufferknoten 2201(i) kann nahe den Verbindungen der Netzschnittstellen 202(i) der Verarbeitungselemente 11(i) sein, oder sie können getrennt sein. Die Anzahl der Eingabe-/Ausgabe-Pufferknoten und Verarbeitungselemente, die an einer Eingabe-/Ausgabeoperation teilnehmen, wird allgemein als "N" bzw. "NPE" gekennzeichnet.
- Wie es schematisch in Fig. 3A dargestellt ist, überträgt, wenn während der Eingabe- /Ausgabeoperation Daten in Eingabe-/Ausgabe-Nachrichtenpaketen von einer Eingabe- /Ausgabeeinrichtung (nicht gezeigt) zu den Verarbeitungselementen übertragen werden sollen, eine Einrichtungsschnittstelle 2202 Daten zu den Puffern der Eingabe-/Ausgabe- Nachrichtenpuffern 2201(i) auf der Grundlage eines "Umlaufs". Das heißt, die Einrichtungsschnittstelle 2202 überträgt zu dem Eingabe-/Ausgabe-Pufferknoten 2201 (0) das erste Datenelement, zu dem Eingabe-/Ausgabe-Pufferknoten 2201 (1) das zweite Datenelements, zu dem Eingabe-/Ausgabe-Pufferknoten 2201 (2) das dritte Datenelement und sofort, wobei sich jedes "Datenelement" auf die Datenmenge bezieht, die sie von der Eingabe-/Ausgabeeinrichtung erhält, damit sie in einem Eingabe-/Ausgabe-Nachrichtenpaket übertragen wird. Nachdem die Einrichtungsschnittstelle 2202 ein Datenelement zu dem letzten Eingabe-/Ausgabe-Pufferknoten überträgt, um an der Eingabe- /Ausgabeoperation teilzunehmen, hier der Eingabe-/Ausgabe-Pufferknoten 2201 (7), überträgt sie das nächste Datenelement zu einem Eingabe-/Ausgabe-Pufferknoten 2201 (0), wodurch gewährleistet wird, dass die Datenwerte zu den Eingabe-/Ausgabe- Pufferknoten in der Art eines "Umlaufs" übertragen werden.
- Die zu den Eingabe-/Ausgabe-Pufferknoten 2201(i) übertragenen Datenelemente werden von der Eingabe-/Ausgabeeinrichtung und der Einrichtungsschnittstelle 2202 angeordnet, so dass sie zu den Verarbeitungselementen 11(i) mit zunehmenden Indexwerten "i" ebenfalls auf der Grundlage eines "Umlaufs" in bezug auf den Index der Verarbeitungselementbezugszahl gelenkt werden. Jedoch kann eine ausgewählte Anzahl von sequentiellen Datenelementen, die zu den Eingabe-/Ausgabepuffern 2201(i) gelenkt werden, für das gleiche Verarbeitungselement beabsichtigt sein, wobei die Anzahl hier "Abstreiffaktor" genannt wird und allgemein als "C" gekennzeichnet ist.
- Des weiteren werden die Datenelemente, die sequentiell von einem Eingabe-/Ausgabe- Pufferknoten 2201 (0) empfangen werden, an Speicherstellen mit aufeinanderfolgenden Versetzungen in den Puffern der entsprechenden Pufferspeicher 2223(i) gespeichert. In beiden Fig. 3A und 3B ist die Basis eines Puffers, d. h., die Speicherstelle mit einer Nullversetzung an der obersten Speicherstelle in dem entsprechenden Puffer angegeben, und aufeinanderfolgende Versetzungen sind durch aufeinanderfolgende absteigende Positionen in dem Puffer dargestellt.
- Somit werden z. B., wobei das in Fig. 3A und 3B gezeigte Beispiel mit sieben Eingabe- /Ausgabe-Pufferknoten 2201 (0) bis 2201 (6), sechs Verarbeitungselementen 11 (0) bis 11 (5) und einem Abstreiffaktor von drei verwendet wird, die Datenelemente für die ersten drei Nachrichten für das Verarbeitungselement 11 (0) von der Einrichtungsschnittstelle 2202 zu den Eingabe-/Ausgabe-Pufferknoten 2201 (0) bis 2201 (2) übertragen und werden in den jeweiligen Pufferspeichern 2223(0) bis 2223(2) als "PE(0) MSG(0)" bis "PE(0) MSG(2)" dargestellt. Die Einrichtungsschnittstelle 2202 überträgt als nächstes die Datenelemente für die ersten drei Nachrichten für das Verarbeitungselement 11 (1) zu den Eingabe-/Ausgabe-Pufferknoten 2201 (3) bis 2201 (5), und sie werden in den entsprechenden Pufferspeichern 2223(3) bis 2223(5) als "PE(1) MSG(0)" bis "PE(1) MSG(2)" dargestellt. Danach überträgt die Einrichtungsschnittstelle 2202 das Datenelement für die erste Nachricht für das Verarbeitungselement 11 (2) zu dem Eingabe-/Ausgabe-Pufferknoten 2201 (6) und die Datenelemente für die zweite und dritte Nachricht von demselben Verarbeitungselement 11 (2) zu den Eingabe-/Ausgabe-Pufferknoten 2201 (0) und 2201 (1). Diese Datenelemente sind in den entsprechenden Pufferspeichern 2223(6), 2223(0) und 2223(1) durch die Bezeichnungen "PE(2) MSG(0)", "PE(2) MSG(1)" und "PE(2) MSG(3)" dargestellt. Die Einrichtungsschnittstelle überträgt die aufeinanderfolgenden Datenelemente in der gleichen Weise zu den Eingabe-/Ausgabe- Pufferknoten 2201.
- Im folgenden werden Datenelemente allgemein als "PE(x) MSG(y)" gekennzeichnet, worin "x" das Verarbeitungselement und "y" die Versetzung kennzeichnet. Unter Bezugnahme auf Fig. 3A kann beobachtet werden, dass das erste Datenelement PE(0) MSG(0) der ersten Reihe von Datenelementen, das von der Eingabe-/Ausgabeeinrichtung geliefert und zu dem Verarbeitungselement 11 (0) übertragen werden soll, in dem Puffer des Pufferspeichers 2223(0) des Eingabe-/Ausgabe-Pufferknotens 2201 (0) bei einer Nullversetzung ist. Das letzte Datenelement PE(5) MSG(2) der ersten Reihe von Datenelementen, das zu dem letzten Verarbeitungselement 11 (5) übertragen werden soll, befindet sich in dem Puffer des Pufferspeichers 2223(3) des Eingabe-/Ausgabe- Pufferknotens 2201 (3) bei einer Versetzung von 2. Diese Gruppe von Pufferspeicherstellen über die Puffer der Gruppe von Eingabe-/Ausgabe-Pufferknoten 2201 (0) bis 2201 (6), die an der Eingabe-/Ausgabeoperation teilnehmen, wird ein "Rahmen" genannt.
- Im allgemeinen ist ein Rahmen eine Gruppe von Pufferspeicherstellen über die Puffer der Eingabe-/Ausgabe-Pufferknoten 2201(i), die an einer Eingabe-/Ausgabeoperation teilnehmen, der sich von dem ersten Datenelement PE(x) MSG(y) in einer Reihe, die als ein Streifen zu dem ersten Verarbeitungselement 11 (0) übertragen werden soll, bis zu dem letzten Datenelement PE(x) MSG(y) in der entsprechenden Reihe erstreckt, der als der gleiche Streifen zu dem letzten Verarbeitungselement 11 (5) übertragen werden soll. Jede Sequenz von Rahmen in den Pufferspeichern 2223(i) wird als Rahmenkennwert gekennzeichnet. Das heißt, der Rahmen, der Speicherstellen von der Nullversetzung des Puffers des Pufferspeichers 2223(0), der das Datenelement PE(0) MSG(0) enthält, bis zu der Versetzung von zwei des Puffers des Pufferspeichers 2223(3), der das Datenelement PE(5) MSG(2) enthält, wird als ein Nullrahmen gekennzeichnet. Ähnlich wird der Rahmen, der Speicherstellen von der Versetzung von zwei des Puffers des Pufferspeichers 2223(4), der das Datenelement PE(0) MSG(3) enthält, bis zu der Versetzung des Pufferspeichers, der das Datenelement PE(5) MSG(5) (nicht gezeigt)· enthält, als ein Rahmen eins usw. gekennzeichnet.
- Die Reihe von Datenelementen PE(x) MSG(y) in einem Rahmen, die zu einem bestimmten Verarbeitungselement 11(i) oder einem Skalarprozessor 12 übertragen werden sollen, werden als ein "Streifen" bezeichnet. Jeder der Sequenz von Streifen in den Pufferspeichern wird durch einen Streifenversetzungswert gekennzeichnet, der die Versetzung des Streifens von dem Anfang eines Rahmens kennzeichnet. Das heißt, in dem ersten Rahmen sollen die Datenelemente in dem ersten Streifen, d. h., dem Streifen mit Nullversetzung und der die Datenelemente PE(0) MSG(0) bis PE(0) MSG(2) enthält, zu dem ersten Verarbeitungselement 11 (0) in der Reihe übertragen werden, die an der Eingabe-/Ausgabeoperation teilnehmen. Ähnlich sollen Datenelemente in dem zweiten Streifen, d. h., dem Streifen mit einer Versetzung von eins und der die Datenelemente PE(1) MSG(0) bis PE(1) MSG(2) enthält, in Eingabe-/Ausgabe-Nachrichtenpaketen 2230 zu dem zweiten Verarbeitungselement 11 (1) in der Reihe übertragen werden, die an der Eingabe-/Ausgabeoperation teilnimmt usw..
- Jede Pufferspeicherstelle in dem Rahmen wird auch Schlitz genannt und wird durch einen Schlitzversetzungswert gekennzeichnet, der die Versetzung des bestimmten Schlitzes von dem Anfang eines Rahmens kennzeichnet. Somit hat die Speicherstelle der Versetzung null des Puffers des Pufferspeichers 2223(0) einen Schlitzversetzungswert von null, die Speicherstelle der Versetzung null des Puffers des Pufferspeichers 2223(1) hat einen Schlitzversetzungswert von eins, usw.. Die Speicherstelle mit der Versetzung zwei des Puffers des Pufferspeichers 2223(3), die das Datenelement PE(5) MSG(2) enthält, hat einen Schlitzversetzungswert von vierzehn. Ähnlich hat die Speicherstelle der Versetzung zwei des Puffers des Pufferspeichers 2223(4), die das Datenelement PE(0) MSG(3) enthält, der der erste Schlitz des zweiten Rahmens ist, einen Schlitzversetzungswert von null. Man erkennt, dass die Anzahl von Schlitzen und somit die Anzahl von Datenelementen PE(x) MSG(y) in einem Rahmen der Anzahl von Verarbeitungselementen NPE mal dem Abstreiffaktor C entspricht.
- Wie es auch oben beschrieben worden ist, übertragen die Eingabe-/Ausgabe-Pufferknoten 2201(i) die aufeinanderfolgenden Datenelemente PE(x) MSG(y) in ihren entsprechenden Pufferspeichern zu den Verarbeitungselementen 11(i), wie es in Fig. 3B dargestellt ist. Wie es in Fig. 3B gezeigt ist, erhält jedes Verarbeitungselement die Nachrichten, die die Datenelemente enthalten, für seinen Index "x" in der Datenelementskennung PE(x) MSG(y) und speichert sie an aufeinanderfolgenden Versetzungen "x". Somit erkennt man, das die Indexe "x" und "y" in der Datenelementskennung PE(x) MSG(y) auf die Verarbeitungselementkennung und die Versetzung verweisen.
- Man erkennt des weiteren, dass komplementäre Operationen bei einer Eingabe-/Ausgabeoperation in der umgekehrten Richtung auftreten, um Datenelementen von den aufeinanderfolgenden Pufferversetzungen der Verarbeitungselemente 11(i) durch die Pufferspeicher 2223 der Eingabe-/Ausgabe-Pufferknoten und zu der Eingabe-/Ausgabeeinrichtung zu übertragen. In diesem Fall jedoch überträgt das Verarbeitungselement 11 (0) die ersten drei Datenelemente PE(0) MSG(0), PE(0) MSG(1) und PE(0) MSG(2) in seinem Puffer zu den Eingabe-/Ausgabe-Pufferknoten 2201 (0) bis 2201 (2) usw.. Somit beziehen sich die Eingabe-/Ausgabe-Pufferknotenkennungen, die in den Adressenabschnitten 31 der Eingabe-/Ausgabe-Nachrichtenpakete verwendet werden, auf den Index "y" der Datenelementskennung PE(x) MSG(y), bzw. die Pufferversetzung bezieht sich auf den Index "x".
- Der parallele Adressensende-/Versetzungsgenerator 2278(i) erzeugt in jedem Eingabe- /Ausgabe-Pufferknoten 2201(i) für jedes Eingabe-/Ausgabe-Nachrichtenpaket Informationen, die die Verarbeitungselementkennzeichnung "x", insbesondere die Adresse des Verarbeitungselements, liefert, die die Netzschnittstelle 2277(i) verwendet, die Information für den Nachrichtenadressenabschnitt 31 des Eingabe-/Ausgabe-Nachrichtenpakets 2230 zu erzeugen. Zusätzlich erzeugt der parallele Adressensende-/Versetzungsgenerator 2278(i) die Versetzung "y" für das Datenelement PE(x) MSG(y). Bei dieser Operation arbeitet der parallele Adressensende-/Versetzungsgenerator 2278(i) unter Verwendung mehrerer Informationsgegenstände, die umfassen:
- (a) die Anzahl von Eingabe-/Ausgabe-Pufferknoten "N", die an der Eingabe-/Ausgabeoperation teilnehmen,
- (b) den Abstreiffaktor "C"
- (c) die Anzahl von Verarbeitungselementen "NPE", die an der Eingabe-/Ausgabeoperation teilnehmen,
- (d) den Index "i" des Eingabe-/Ausgabe-Pufferknotens 2202(i), und
- (e) die Adresse des ersten Verarbeitungselements 11 (0) in der Unterteilung, die an der Eingabe-/Ausgabeoperation teilnimmt, in bezug auf die Basis des Verarbeitungselements des Systems.
- Diese Informationsgegenstände können vorgesehen werden, wenn die Eingabe-/Ausgabeoperation initiiert wird.
- Aus diesen Informationsgegenständen kann der parallele Adressensende-Nersetzungsgenerator 2278 die folgenden Anfangswerte bestimmen, die in Verbindung mit der Erzeugung des ersten Eingabe-/Ausgabe-Nachrichtenpakets 2230 bei der Eingabe-/Ausgabeoperation verwendet werden:
- (a) einen anfänglichen Adressenwert für ein Zielverarbeitungselement,
- (b) einen anfänglichen Zielversetzungswert, der (i) einen Anfangsversetzungsbasiswert und (ii) einen Anfangsversetzungsdeltawert umfasst, die der parallele Adressensende-/Versetzungsgenerator 2278 beide verwendet, um einen Anfangsversetzungswert für einen Zielverarbeitungselementpuffer zu bestimmen, und
- (c) einen Anfangsschlitzwert,
- und die folgenden Erhöhungswerte, die in Verbindung mit der Erzeugung nachfolgender Eingabe-/Ausgabe-Nachrichtenpakete 2230, wenn vorhanden, bei der Eingabe-/Ausgabeoperation verwendet werden:
- (d) ein Adressenerhöhungswert für ein Zielverarbeitungselement,
- (e) Versetzungserhöhungswerte, die (1) einen Versetzungsbasiserhöhungswert und (ii) einen Versetzungsdeltaerhöhungswert umfassen, und
- (f) einen Schlitzerhöhungswert.
- Man erkennt, dass diese Werte abwechselnd vorgesehen werden können, wenn die Eingabe-/Ausgabeoperation initiiert wird.
- Ein paralleler Adressensende-Nersetzungsgenerator 2278(i), von dem ein ausführliches Blockdiagramm in den Fig. 4A und 4B gezeigt ist, umfasst vier Hauptabschnitte, nämlich einen Adressenerzeugungsabschnitt 2310 für ein Zielverarbeitungselement, einen Versetzungsdeltaerzeugungsabschnitt 2311, einen Versetzungsbasiserzeugungsabschnitt 2312 und einen Schlitzzählabschnitt 2313. Der Versetzungsbasiserzeugungsabschnitt 2312 und der Versetzungsdeltaerzeugungsabschnitt 2311 erzeugen jeweils BASISVERSETZ und DELTAVERSETZ Signale, die an einen Addierer 2314 gegeben werden. Der Addierer 2314 erzeugt seinerseits ZIELVERSETZ SIGNALE, die einen Wert darstellen, der der arithmetischen Summe der Werte entspricht, die von den BASISVERSETZ und DELTAVERSETZ Signalen wiedergegeben werden, die in einem Zwischenspeicher 2315 zwischengespeichert sind. Der parallele Adressensende-Nersetzungsgenerator 2278(i) koppelt auch die ZIELVERSETZ Signale über den Bus 2287, die von der Netzschnittstelle 2277 bei der Erzeugung des Zielpufferversetzungsabschnitts eines Eingabe-/Ausgabe-Nachrichtenpakets verwendet werden.
- Ein Zielversetzungswert wird im wesentlichen aus zwei Komponenten gebildet, von denen sich eine auf eine Rahmenkennung des Rahmens bezieht, der das Datenelement PE(x) MSG(y) enthält, der von dem Eingabe-/Ausgabe-Pufferknoten übertragen werden soll, und sich die andere auf die Versetzung des Schlitzes bezieht, der das Datenelement PE(x) MSG(y) in der Reihe innerhalb des Rahmens enthält, der zu dem gleichen Verarbeitungselement 11(i) oder Skalarprozessor 12 übertragen werden soll. Insbesondere stellt der binär codierte Wert, der durch die BASISVERSETZ Signale dargestellt und von dem Versetzungsbasiserzeugungsabschnitt 2312 erzeugt worden ist, die Komponente dar, die sich auf den Rahmenkennwert bezieht. Ähnlich stellt der binär codierte Wert, der durch die DELTAVERSETZ Signale dargestellt ist, die Komponente dar, die sich auf die Position des Schlitzes bezieht, der das Datenelement in der Reihe innerhalb eines Streifens enthält.
- Der Basisversetzungserzeugungsabschnitt verwendet den anfänglichen Basisversetzungswert und den Basisversetzungserhöhungswert sowie den Abstreiffaktor "C" und ein BASISERHÖH VERSETZ Signal von dem Schlitzzählabschnitt 2313 bei der Erzeugung des BASISVERSETZ Signals. Der Basisanfangsversetzungswert für einen parallelen Adressensende-/Versetzungsgenerator 2278(i) bezieht sich auf den Rahmen des ersten Datenelements, der während der Eingabe-/Ausgabeoperation übertragen werden soll. Der Rahmenkennungswert des Datenelements PE(x) MSG(y) entspricht der größten ganzen Zahl in dem Quotienten aus (a) dem Index "i" des Eingabe-/Ausgabe-Pufferknotens dividiert durch (b) die Anzahl von Datenelementen in einem Rahmen, die dem Abstreiffaktor "C" mal der Anzahl "NPE" von Verarbeitungselementen 11(i) entspricht, die an der Eingabe-/Ausgabeoperation teilnehmen. Die Rahmenkennung wird ihrerseits mit dem Abstreiffaktor "C" multipliziert, da für jeden nachfolgenden Rahmen der Basisversetzungswert für den ersten Datenelement PE(x) MSG(y) in jedem Streifen diesem Wert entspricht.
- Der Basisversetzungserhöhungswert steht mit der Anzahl von Rahmen in Beziehung, die der Eingabe-/Ausgäbe-Pufferknoten zwischen der Übertragung von Eingabe-/Ausgabe-Nachrichtenpaketen 2230 erhöht. Man erkennt, dass die Anzahl von Rahmen der größten ganzen Zahl in dem Quotienten aus (a) der Anzahl "N" von Eingabe-/Ausgabe- Pufferknoten 2201(i), die an der Eingabe-/Ausgabeoperation teilnehmen, dividiert durch (b) die Anzahl von Schlitzen in einem Rahmen entspricht, d. h., dem Abstreiffaktor "C" mal der Anzahl "NPE" von Verarbeitungselementen 11(i), die an der Eingabe-/Ausgabeoperation teilnehmen. Dieser Wert wird auch mit dem Abstreiffaktor "C" multipliziert, da die Basis für jeden nachfolgenden Rahmen mit einem Wert beginnt, der der Rahmenkennung mal dem Abstreiffaktor entspricht.
- Man erkennt, dass, wenn die Anzahl "N" von Eingabe-/Ausgabe-Pufferknoten 2201(i), die an der Eingabe-/Ausgabeoperation teilnehmen, kein Vielfaches der Anzahl von Schlitzen in einem Rahmen ist, die Versetzung des Schlitzes, der das Datenelement PE(x) MSG(y) enthält, der übertragen wird, für jedes nachfolgende Eingabe-/Ausgabe- Nachrichtenpaket geändert wird. Die Änderung bei der Schlitzversetzung entspricht dem Rest des Quotienten aus (a) der Anzahl "N" von Eingabe-/Ausgabe-Pufferknoten 2201(i), die an der Eingabe-/Ausgabeoperation teilnehmen, dividiert durch (b) die Anzahl von Schlitzen in einem Rahmen, d. h., den Abstreiffaktor "C" mal der Anzahl "NPE" von Verarbeitungselementen 11(i), die an der Eingabe-/Ausgabeoperation teilnehmen, wobei der Rest seinerseits der Anzahl "N" modulo der Anzahl von Schlitzen in einem Rahmen entspricht. Als Ergebnis dieser Änderung der Schlitzversetzung erhöht der Basisversetzungserzeugungsabschnitt 2312 ferner den Basisversetzungswert, wenn die Änderung der Versetzung des Schlitzes sich von einem Eingabe-/Ausgabe-Nachrichtenpaket 2230 zu dem nächsten über die Anzahl von Schlitzen in einem Rahmen hinauserstrecken würde. Der Schlitzzählabschnitt 2313 erzeugt das BASISERHÖH VERSETZ Signal, wenn diese Bedingung auftritt.
- Der Schlitzzählabschnitt 2313 hält einen laufenden Index des Schlitzes in dem Rahmen des Datenelements PE(x) MSG(y) aufrecht, für den der parallele Adressensende-/Versetzungsgenerator 2278(i) gegenwärtig die ZIEL VE ADR und ZIELVERSETZ Signale erzeugt. Der Schlitzzählabschnitt 2313 verwendet den Anfangsschlitzwert und den Schlitzerhöhungswert sowie einen Korrekturwert, der der Anzahl von Schlitzen in einem Rahmen entspricht, um den laufenden Index des Schlitzes in dem Rahmen des Datenelements PE(x) MSG(y) beizubehalten, für den der parallele Adressensende-Nersetzungsgenerator 2278(i) gegenwärtig ZIEL-PE-ADR und ZIELVERSETZ Signale erzeugt. Der Anfangsschlitzwert entspricht dem Wert des Index "i" des parallelen Adressensende-/Versetzungsgenerators 2278(i) modulo der Anzahl von Schlitzen in einem Rahmen. Der Schlitzerhöhungswert ist, wie es oben angegeben wurde, die Anzahl "N" der Eingabe-/Ausgabe-Puffermodule 2201(i) modulo der Anzahl von Schlitzen in einem Rahmen. Wenn der Schlitzzählabschnitt 2313 einen Schlitzzählwert erzeugt, der die Anzahl von Schlitzen in einem Rahmen überschreitet, bestätigt dies das BASIS ERHÖH VERSETZ Signal und verringert den Schlitzzählwert um die Anzahl von Schlitzen in einem Rahmen. Das Ergebnis ist die Versetzung des Schlitzes in den nächsten Rahmen.
- Der Adressenerzeugungsabschnitt 2312 für das Zielverarbeitungselement verwendet (i) den Anfangsadressenwert des Zielverarbeitungselements, (ii) den Adressenerhöhungswert des Zielverarbeitungselements, (iii) die Anzahl der Verarbeitungselemente "NPE", die an der Eingabe-/Ausgabeoperation teilnehmen, (iv) die Adresse des ersten Verarbeitungselements 11 (0) in der Unterteilung, die an der Eingabe-/Ausgabeoperation teil nimmt, in bezug auf die Basis des Verarbeitungselements des Systems, und (v) ein ZIELERHÖHUNGSADR Erhöhungszieladressensignal von dem Deltaversetzungserzeugungsabschnitt beim Erzeugen der ZIEL-PE-ADR ZIELVERARBEITUNGSELEMENT- ADR Signale. Der parallele Adressensende-/Versetzungsgenerator 2278(i) koppelt die ZIEL-PE-ADR Signale zu der Netzschnittstelle 2277, die sie bei der Erzeugung des Nachrichtenadressenabschnitts 31 des Eingabe-/Ausgabe-Nachrichtenpakets 2230 verwendet.
- Man erkennt, dass bei der Sequenz von Streifen in einem Rahmen alle die Datenelemente PE(x) MSG(y) in Schlitzen in einem Streifen in Eingabe-/Ausgabe-Nachrichtenpaketen 2230 zu einem Verarbeitungselement 11(i) oder einem Skalarprozessor 12 übertragen werden, die an der Eingabe-/Ausgabeoperation teilnehmen. Der Anfangsadressenwert des Zielverarbeitungselements für jeden parallelen Adressensende- /Versetzungsgenerator 2278(i) bezieht sich somit auf den Streifenversetzungswert für den Streifen innerhalb des Rahmens, der das erste Datenelement PE(x) MSG(y) enthält, der durch den Eingabe-/Ausgabe-Pufferknoten 2201(i) übertragen werden soll. Der Streifenversetzungswert entspricht seinerseits der größten ganzen Zahl des Quotienten aus dem Index "i" des Eingabe-/Ausgabe-Pufferknotens dividiert durch den Abstreiffaktor "C" modulo der Anzahl von Streifen in einem Rahmen. Die Anzahl von Streifen in einem Rahmen entspricht "NPE", der Anzahl von Verarbeitungselementen 11(i) und Skalarprozessoren 12, die an der Eingabe-/Ausgabeoperation teilnehmen.
- Der derart erzeugte Streifenversetzungswert ist tatsächlich die Versetzung von dem ersten Verarbeitungselement 11 (0) oder Skalarprozessor 12 in der Unterteilung, der an der Eingabe-/Ausgabeoperation teilnimmt, für das erste Eingabe-/Ausgabe-Nachrichtenpaket 2230, das von dem Eingabe-/Ausgabe-Pufferknoten erzeugt werden soll. Entsprechend ist der Anfangsadressenwert des Zielverarbeitungselements dieser Streifenversetzungswert plus der Adresse des ersten Verarbeitungselements 11 (0) oder Skalarprozessors 12, der an der Eingabe-/Ausgabeoperation teilnimmt, in bezug auf die Basis des Verarbeitungselements des Systems 10.
- Der Adressenerhöhungswert des Zielverarbeitungselements wird von einem parallelen Adressensende-/Versetzungsgenerator 2278(i) verwendet, wenn eine Zielverarbeitungselementadresse für jedes nachfolgende Eingabe-/Ausgabe-Nachrichtenpaket 2230 er zeugt wird, das von seinem Eingabe-/Ausgabe-Nachrichtenpuffer 2201(i) erzeugt wird. Der Adressenerhöhungswert des Zielverarbeitungselements steht mit der Anzahl von Streifen innerhalb eines Rahmens in Beziehung, die der Eingabe-/Ausgabe-Pufferknoten 2201(i) zwischen der Übertragung von Eingabe-/Ausgabe-Nachrichtenpaketen 2230 erhöht. Somit entspricht der Adressenerhöhungswert des Zielverarbeitungselements der Summe der größten ganzen Zahl der Anzahl "N" von Eingabe-/Ausgabe-Pufferknoten 2201(i), die an der Eingabe-/Ausgabeoperation teilnehmen, dividiert durch den Abstreiffaktor "C" modulo der Anzahl von Streifen in einem Rahmen, d. h., "NPE".
- Man erkennt, dass, wenn die Anzahl "N" von Eingabe-/Ausgabe-Pufferknoten 2201(i), die an der Eingabe-/Ausgabeoperation teilnehmen, kein Mehrfaches der Anzahl von Streifen in einem Rahmen ist, sich die Versetzung des Schlitzes, der das Datenelement PE(x) MSG(y) enthält, das übertragen wird, in einem Streifen für jedes nachfolgende Eingabe-/Ausgabe-Nachrichtenpaket ändert. Die Änderung der Schlitzversetzung entspricht dem Rest des Quotienten aus (a) der Anzahl "N" von Eingabe-/Ausgabe-Pufferknoten 2201(i), die an der Eingabe-/Ausgabeoperation teilnehmen, dividiert durch (b) die Anzahl von Schlitzen in einem Streifen, d. h., der Abstreiffaktor "C", dessen Rest seinerseits der Anzahl "N" modulo dem Abstreiffaktor entspricht. Als Ergebnis dieser Änderung der Schlitzversetzung innerhalb eines Streifens erhöht der Adressenerzeugungsabschnitt 2310 für das Zielverarbeitungselement die Zielverarbeitungselementadresse weiter, wenn die Änderung der Versetzung des Schlitzes von einem Eingabe-/Ausgabe- Nachrichtenpaket 2230 zu dem nächsten über die Anzahl von Schlitzen in einem Streifen hinausgehen würde. Der Deltaversetzungserzeugungsabschnitt 2311 erzeugt das ZIELERHÖHUNGSADR Signal, wenn dies auftritt.
- Der Deltaversetzungserzeugungsabschnitt 2311 erzeugt auch das DELTAVERSETZ Signal, das, wie es oben erwähnt wurde, die Komponente des ZIELVERSETZ Signals darstellt, dessen binärcodierter Wert die Position des Schlitzes des Datenelements PE(x) MSG(y) kennzeichnet, der innerhalb eines Streifens übertragen wird, d. h., innerhalb der Reihe von Datenelementen innerhalb eines Rahmens, die zu dem gleichen Verarbeitungselement 11(i) oder Skalarprozessor 12 übertragen werden sollen. Zusätzlich erzeugt der Deltaversetzungserzeugungsabschnitt 2311 das ZIELADR ERHÖH Zieladressenerhöhungssignal, das an den Adressenerzeugungsabschnitt 2310 des Zielverarbeitungselements gegeben wird.
- Der Anfangsdeltaversetzungswert für einen parallelen Adressensende-Nersetzungsgenerator 2278(i) entspricht der Versetzung des Schlitzes, der den ersten Datenelement PE(x) MSG(y) innerhalb des Streifens enthält, der durch den parallelen Adressensende- /Versetzungsgenerator 2278(i) übertragen werden soll. Somit entspricht der Anfangsdeltaversetzungswert dem Rest bei dem Quotienten von (a) dem Index "i" des Eingabe- /Ausgabe-Pufferknoten 2201(i) dividiert durch (b) die Anzahl von Schlitzen in einem Rahmen, d. h., der Abstreiffaktor "C" mal der Anzahl "NPE" von Verarbeitungselementen 11(i), die an der Eingabe-/Ausgabeoperation teilnehmen. Anders ausgedrückt entspricht der Anfangsdeltaversetzungswert dem Index "i" des Eingabe-/Ausgabe-Pufferknotens modulo dem Abstreiffaktor "C".
- Der Deltaversetzungserhöhungswert steht mit der Anzahl von Schlitzen in einem Streifen in Beziehung, den der Eingabe-/Ausgabe-Pufferknoten 2201(i) zwischen einer Übertragung von Eingabe-/Ausgabe-Nachrichtenpaketen 2230 erhöht. Wie es oben angegeben wurde, steht die Anzahl von Streifen, die der Eingabe-/Ausgabe-Pufferknoten 2201(i) zwischen einer Übertragung von Eingabe-/Ausgabe-Nachrichtenpaketen 2230 erhöht, mit der Änderung, wenn sie vorliegt, des Adressenwerts des Zielverarbeitungselements in Beziehung, wie es durch den Adressenerzeugungsabschnitt 2310 für das Zielverarbeitungselement bestimmt wird. Somit ist der Deltaversetzungserhöhungswert der Rest aus dem Quotienten von (a) der Anzahl "N" von Eingabe-/Ausgabe-Pufferknoten 2201(i), die an der Eingabe-/Ausgabeoperation teilnehmen, dividiert durch (b) die Anzahl von Schlitzen in einem Streifen, d. h., dem Abstreiffaktor "C". Anders ausgedrückt entspricht der Deltaversetzungserhöhungswert der Anzahl "N" von Eingabe-/Ausgabe- Pufferknoten 2201(i), die an der Eingabe-/Ausgabeoperation teilnehmen, modulo dem Abstreiffaktor "C".
- Man erkennt, dass, wenn die Erhöhung des Deltaversetzungswerts durch den Deltaversetzungserzeugungsabschnitt 2311 von einem Eingabe-/Ausgabe-Nachrichtenpaket 2230 zu dem nächsten einen größeren Deltaversetzungswert als oder gleich dem Abstreiffaktor "C" ergeben würde, sich der Deltaversetzungswert tatsächlich auf einen Schlitz in einem Streifen beziehen würde, der über den Streifen hinausgeht, das durch den Adressenwert des Zielverarbeitungselements gekennzeichnet ist, wie er durch den Adressenerzeugungsabschnitt 2310 für das Zielverarbeitungselement bestimmt ist. Die ser vorwärtsbewegte Streifen umfasst seinerseits Schlitze, deren Datenelemente PE(x) MSG(y) zu dem nächsten Verarbeitungselement 11(i) über jenes hinaus übertragen werden sollen, das durch den Adressenwert des Zielverarbeitungselements gekennzeichnet ist. Wenn dies auftritt bestätigt der Deltaversetzungserzeugungsabschnitt 2311 das ZIELERHÖHUNGSADR Zielerhöhungsadressensignal, damit der Adressenerzeugungsabschnitt 2310 für das Zielverarbeitungselement die Zielverarbeitungselementadresse weiter erhöht. Zusätzlich subtrahiert der Deltaversetzungserzeugungsabschnitt 2311 den Abstreiffaktor von dem erhöhten Deltaversetzungswert, um auf die Position des Schlitzes innerhalb des Streifens zu zeigen, das mit der Zielverarbeitungselementadresse verbunden ist, die durch den Adressenerzeugungsabschnitt 2310 für ein Zielverarbeitungselement für das Datenelement, der übertragen wird, von dem Datenelement PE(x) MSG(y) erzeugt wurde, der in dem Eingabe-/Ausgabe-Nachrichtenpaket übertragen wird.
- Ähnlich erhöht an einem gewissen Punkt der Adressenerzeugungsabschnitt 2310 für das Zielverarbeitungselement die Zielverarbeitungselementadresse, damit sie oberhalb der Adresse des am höchsten indizierten Verarbeitungselements 11(i) oder Skalarprozessors 12 ist, der an der Eingabe-/Ausgabeoperation teilnimmt. An diesem Punkt korrigiert der Adressenerzeugungsabschnitt 2310 für das Zielverarbeitungselement die Zielverarbeitungselementadresse auf einen Wert, der die Adresse von einem der Verarbeitungselemente oder Skalarprozessoren ist, der an der Übertragung teilnimmt. Bei dieser Operation verringert der Adressenerzeugungsabschnitt 2310 für das Zielverarbeitungselement die erhöhte Zielverarbeitungselementadresse um eine Größe, die NPE entspricht, der Anzahl von Verarbeitungselementen, die an der Eingabe-/Ausgabeoperation teilnehmen. Dies gewährleistet, dass die Zielverarbeitungselementadresse zu einem Verarbeitungselement oder Skalarprozessor, der an der Eingabe-/Ausgabeoperation teilnimmt, während der Operation zeigt.
- Mit diesem Hintergrund wird die Struktur und Arbeitsweise des parallelen Adressensende-/Versetzungsgenerators 2278(i) in Verbindung mit den Fig. 4A und 4B beschrieben. Anfangs wird die Zielverarbeitungselementanfangsadresse, die durch den Block 2320 dargestellt ist, durch den Multiplexer 2340 gekoppelt und in dem Zwischenspeicher 2341 zwischengespeichert. Zusätzlich wird der Adressenerhöhungswert des Zielverarbei tungselements in dem Zwischenspeicher 2321 des Adressenerzeugungsabschnitts 2310 für das Zielverarbeitungselement gespeichert.
- Ähnlich werden der Deltaversetzungsanfangswert und der Versetzungsanfangsbasiswert, die durch den Block 2322 bzw. 2324 dargestellt sind, durch den Multiplexer 2342 bzw. 2344 als DELTAVERSETZ bzw. BASISVERSETZ Signal gekoppelt. Diese Signale werden in einem Zwischenspeicher 2343 bzw. 2345 zwischengespeichert. Sie werden auch gleichzeitig mit einem Addierer 2314 gekoppelt, der ein BASISVERSETZ + DELTA Basisversetzung-plus-Deltasignal erzeugt, dessen binärcodierter Wert die Summe aus dem binärcodierten Wert des DELTAVERSETZ und BASISVERSETZ Signals darstellt. Das BASISVERSETZ + DELTA Signal wird in einem Zwischenspeicher 2315 zwischengespeichert, der das ZIELVERSETZ Zielversetzungssignal liefert.
- Gleichzeitig werden der Deltaversetzungserhöhungswert und der Basisversetzungserhöhungswert in dem Register 2323 bzw. 2325 des Deltaversetzungserzeugungsabschnitts 2311 und des Basisversetzungserzeugungsabschnitts 2312 gespeichert. Der Anfangsschlitzwert, der durch den Block 2326 dargestellt ist, wird über den Multiplexer 2346 gekoppelt und in dem Zwischenspeicher 2347 gespeichert, und der Schlitzerhöhungswert wird in dem Register 2327 des Schlitzzählabschnitts 2313 gespeichert.
- Zusätzlich werden verschiedene andere Werte in anderen Registern gespeichert. Der Adressenerzeugungsabschnitt 2310 für das Zielverarbeitungselement umfasst die Register 2330 und 2331. Wie es oben angegeben wurde, kann, wenn erhöht wird, um die Adressenwerte der Zielverarbeitungselemente zu erhöhen, an irgendeinem Punkt die Erhöhung einen Wert erzeugen, der eine Verarbeitungselementadresse jenseits des Bereiches der Verarbeitungselemente 11(i) oder der Skalarprozessoren 12 darstellt, die an der Eingabe-/Ausgabeoperation teilnehmen. Der Wert im Register 2330 wird verwendet, bei der Erfassung einer solchen Bedingung zu helfen.
- Wie es unten in Verbindung mit Fig. 4A beschrieben ist, wählt, wenn der Adressenwert des Zielverarbeitungselements erhöht wird, der Adressenerzeugungsabschnitt 2310 des Zielverarbeitungselements zwischen den Werten in den Registern 2321 und 2331 in Abhängigkeit von der Beziehung zwischen dem vorhergehend bestimmten Adressenwert des Zielverarbeitungselements und dem Inhalt des Registers 2330 aus. Der Wert in dem Register 2330 wird verwendet, um zu bestimmen, ob der Adressenwert des Zielverarbeitungselements bis zu einem Punkt erhöht worden ist, an dem, wenn er wieder erhöht wird, ein Verarbeitungselement 11(i) oder einen Skalarprozessor 12 jenseits jener kennzeichnen würde, die an der Eingabe-/Ausgabeoperation teilnehmen. Ein solcher Wert entspricht (a) der Adresse des letzten Verarbeitungselements 11(i) oder Skalarprozessors 12, der an der Eingabe-/Ausgabeoperation teilnimmt, die die Adresse des ersten Verarbeitungselements 11 (0) oder des Skalarprozessors 12 plus der Zahl "NPE" der Verarbeitungselemente oder Skalarprozessoren ist, die an der Eingabe-/Ausgabeoperation teilnehmen, weniger (b) des Werts, um den sie erhöht würde, d. h., des Adressenerhöhungswerts. Wenn der Adressenerzeugungsabschnitt 2310 für das Zielverarbeitungselement bestimmt, dass der vorhergehend bestimmte Adressenwert für das Zielverarbeitungselement kleiner als der in dem Register 2330 gespeicherte Wert ist, würde der Adressenwert des Zielverarbeitungselements, wenn er um den Adressenerhöhungswert in dem Register 2321 erhöht würde, innerhalb seines erlaubten Bereiches bleiben. In diesem Fall verwendet der Adressenerzeugungsabschnitt 2310 für das Zielverarbeitungselement den Wert im Register 2321 bei der Erhöhung.
- Wenn jedoch der Adressenerzeugungsabschnitt 2310 für das Zielverarbeitungselement bestimmt, dass der vorhergehend bestimmte Adressenwert für das Zielverarbeitungselement größer als oder gleich dem Wert in dem Register 2330 ist, wenn der Adressenwert des Zielverarbeitungselements um den Adressenerhöhungswert erhöht wäre, wäre er jenseits des zulässigen Bereiches. In diesem Fall wird, wie es oben angegeben wurde, der erhöhte Adressenwert des Zielverarbeitungselements um einen Wert verringert, der der Anzahl "NPE" von Verarbeitungselementen und Skalarprozessoren entspricht, die an der Eingabe-/Ausgabeoperation teilnehmen. Der Inhalt des Registers 2331 entspricht dem Adressenerhöhungswert verringert um den Wert "NPE". Wenn dieser Wert zu dem vorhergehend bestimmten Adressenwert des Zielverarbeitungselements addiert wird, wäre das Ergebnis einer Verringerung des erhöhten Adressenwerts des Zielverarbeitungselements um den Wert "NPE" äquivalent.
- Ähnlich umfasst der Deltaversetzungserzeugungsabschnitt 2311 zwei Register 2332 und 2333. Wie es oben angegeben wurde, ändert sich der Deltaversetzungswert über einen Bereich, der sich auf den Abstreiffaktor bezieht, und die Werte in diesen Registern werden verwendet, den Deltaversetzungswert auf diesen Bereich zu begrenzen. Wie unten in Verbindung mit Fig. 4A beschrieben ist wählt, wenn der Deltaversetzungswert erhöht wird, der Deltaversetzungserzeugungsabschnitt 2311 zwischen den Werten in den Registern 2323 und 2333 in Abhängigkeit von der Beziehung zwischen dem vorhergehend bestimmten Deltaversetzungswert und dem Inhalt des Registers 2332 aus. Der Wert in dem Register 2332 wird verwendet, um zu bestimmen, wenn der Deltaversetzungswert bis zu einem Punkt erhöht worden ist, an dem er, wenn er das nächste Mal erhöht wird, einen Deltaversetzungswert jenseits des zulässigen Bereiches darstellen würde, d. h., gleich oder größer als der Abstreiffaktor "C" ist. Ein solcher Wert entspricht (a) dem Abstreiffaktor "C" weniger (b) der Größe, um die er erhöht würde, d. h., dem Deltaversetzungserhöhungswert. Wenn der Deltaversetzungserzeugungsabschnitt 2311 bestimmt, dass der vorhergehend bestimmte Deltaversetzungswert kleiner als der in dem Register 2332 gespeicherte Wert ist, würde der Deltaversetzungswert, wenn er um den Deltaversetzungserhöhungswert im Register 2323 erhöht würde, in seinem zulässigen Bereich bleiben. In diesem Fall verwendet der Deltaversetzungserzeugungsabschnitt 2311 den Wert in dem Register 2323 bei der Erhöhung.
- Wenn jedoch der Deltaversetzungserzeugungsabschnitt 2311 bestimmt, dass der vorhergehend bestimmte Deltaversetzungswert größer als oder gleich dem Wert in dem Register 2332 ist, wäre er, wenn der Deltaversetzungswert um den Deltaerhöhungswert erhöht würde, jenseits seines zulässigen Bereiches. In diesem Fall wird, wie es oben erwähnt wurde, der erhöhte Deltaversetzungswert um den Abstreiffaktor "C" verringert, und das ZIELERHÖHUNGSADR Signal bestätigt, den Adressenerzeugungsabschnitt 2310 des Zielverarbeitungselements zu steuern. Der Inhalt des Registers 2333 entspricht dem Deltaerhöhungswert, der um den Abstreiffaktor "C" verringert ist. Wenn dieser Wert zu dem vorhergehend bestimmten Versetzungsdeltawert hinzuaddiert wird, wäre das Ergebnis dazu äquivalent, den erhöhten Versetzungsdeltawert um den Abstreiffaktor "C" zu verringern.
- Der Basisversetzungserzeugungsabschnitt 2312 weist auch ein Register 2334 auf, das einen Wert speichert, der dem Basisversetzungserhöhungswert plus dem Abstreiffaktor "C" entspricht. Der Wert in dem Register 2325 wird verwendet, wenn der Schlitzzählabschnitt 2313 bestimmt, dass der vorhergehend erhöhte Basisversetzungswert um den Basisversetzungserhöhungswert erhöht werden soll. Andererseits wird der Wert in dem Register 2334 bei der Erhöhung des Basisversetzungswerts verwendet, der, wie es o ben beschrieben wurde, des weiteren um eine Größe erhöht wird, die dem Abstreiffaktor "C" entspricht.
- Schließlich umfasst der Schlitzzählabschnitt 2313 zwei Register 2335 und 2336. Das Register 2335 speichert einen Wert, der verwendet wird, zu bestimmen, wenn der Schlitzindexwert bis zu einem Punkt erhöht worden ist, an dem er, wenn er erneut erhöht wird, einen Schlitzindexwert jenseits des zulässigen Bereiches darstellen würde, d. h., gleich oder größer als die Anzahl von Schlitzen in einem Rahmen, nämlich dem Abstreiffaktor "C" mal der Anzahl "NPE" von Verarbeitungselementen 11(i) oder Skalarprozessoren 12 ist, die an einer Eingabe-/Ausgabeoperation teilnehmen. Der Wert in dem Register 2335 ist der Abstreiffaktor "C" mal der Anzahl "NPE" minus dem Schlitzerhöhungswert. Der Wert in dem Register 2336 ist der Schlitzerhöhungswert weniger der Anzahl von Schlitzen in einem Rahmen.
- Wie es unten in Verbindung mit Fig. 4B beschrieben ist, wählt, wenn der Schlitzzählwert erhöht wird, der Schlitzzählabschnitt 2313 zwischen den Werten in den Registern 2327 und 2336 in Abhängigkeit von der Beziehung zwischen dem vorhergehend bestimmten Schlitzzählwert und dem Inhalt des Registers 2335 aus. Der Wert in dem Register 2335 wird verwendet, um zu bestimmen, ob der Schlitzzählwert bis zu einem Punkt erhöht worden ist, an dem er, wenn er das nächstemal erhöht wird, eine Schlitzversetzung kennzeichnen würde, die größer als die Anzahl von Schlitzen in einem Rahmen ist. Ein solcher Wert entspricht (a) der Anzahl von Schlitzen in einem Rahmen, die der Abstreiffaktor "C" mal der Anzahl "NPE" von Verarbeitungselementen 11(i) und Skalarprozessoren 12 ist, die an der Eingabe-/Ausgabeoperation teilnimmt, weniger (b) des Schlitzerhöhungswerts. Wenn der Schlitzzählabschnitt 2313 bestimmt, dass der vorhergehend bestimmte Schlitzerhöhungswert kleiner als der in dem Register 2335 gespeicherte Wert ist, würde der Schlitzerhöhungswert, wenn er um den Schlitzerhöhungswert im Register 2327 erhöht würde, in seinem zulässigen Bereich bleiben. In diesem Fall verwendet der Schlitzzählabschnitt 2313 den Wert in dem Register 2327 bei der Erhöhung.
- Wenn jedoch der Schlitzzählabschnitt 2313 bestimmt, dass der vorhergehend bestimmte Schlitzzählwert größer als oder gleich dem Wert in dem Register 2335 ist, würde er, wenn der Schlitzzählwert um den Schlitzerhöhungswert erhöht würde, einen Schlitz jenseits des Endes des gegenwärtigen Rahmens kennzeichnen. In diesem Fall bestätigt, wie es oben angegeben wurde, der Schlitzzählabschnitt 2313 das BASISVERSETZS ERHÖH Signal, um dem Basisversetzungsabschnitt 2312 zu ermöglichen, den Wert in dem Register 2334 bei der Erhöhung des Basisversetzungswerts zu verwenden. Zusätzlich erzeugt der Schlitzzählabschnitt 2313 einen neuen Schlitzzählwert, dessen Wert um den Schlitzerhöhungswert erhöht und um einen Wert verringert wird, der der Anzahl von Schlitzen in einem Rahmen entspricht. Der Inhalt des Registers 2331 entspricht dem Schlitzerhöhungswert, der um den Wert verringert ist, der der Anzahl von Schlitzen in einem Rahmen entspricht. Wenn dieser Wert zu dem vorhergehend bestimmten Schlitzzählwert addiert wird, wäre das Ergebnis dazu äquivalent, den erhöhten Schlitzzählwert um den Wert zu verringern, der der Anzahl von Schlitzen in einem Rahmen entspricht.
- Nachdem verschiedene Register geladen worden sind, wie es oben beschrieben wurde, und die Anfangswerte freigegeben wurden, die in die Zwischenspeicher 2341, 2343, 2315, 2345 und 2347 für das anfängliche Eingabe-/Ausgabe-Nachrichtenpaket 2230 geladen werden sollen, das von dem Eingabe-/Ausgabe-Pufferknoten erzeugt werden soll, werden die verschiedenen Abschnitte 2310, 2311, 2312 und 2313 freigegeben, um gleichzeitig eine Reihe von Iterationen durchzuführen, um die Erzeugung des ZIEL-VE- ADR Signale und der ZIELVERSETZ Signale zur Verwendung in Verbindung mit der Erzeugung von Eingabe-/Ausgabe-Nachrichtenpaketen 2230 für die nachfolgenden Datenelemente PE(x) MSG(Y)zu erleichtern, die von dem Eingabe-/Ausgabe-Pufferknoten übertragen werden sollen.
- Zunächst unter Bezugnahme auf Fig. 4A werden in dem Deltaversetzungserzeugungsabschnitt 2311 die ZWI-DELTAVERSETZ zwischengespeicherten Deltaversetzungssignale von dem Zwischenspeicher 2343, die an dieser Stelle einen binärcodierten Weg entsprechend dem anfänglichen Deltaversetzungswert aufweisen, an eine Eingabeklemme eines Addierers 2351 gegeben. Eine zweite Eingabeklemme des Addierers 2351 erhält ein AUSGEWÄH-DELTAVERSETZ-ERHÖH-FAKTOR ausgewähltes Deltaversetzungserhöhungsfaktorsignal von einem Multiplexer 2351. Der Addierer 2350 erzeugt ERHÖH-DELTAVERSETZ erhöhte Deltaversetzungssignale, die als das DELTA- VERSETZ Signal an die Eingabeklemme des Zwischenspeichers 2343 und an eine Eingabeklemme des Addierers 2314 gegeben werden, die in Kombination mit dem VERSETZ BASIS_Signal, das während der Iteration durch den Basisversetzungserzeu gungsabschnitt 2312, wie unten beschrieben, erzeugt wurde, das ZIELVERSETZ Zielversetzungssignal erzeugen. Das ERHÖH-DELTAVERSETZ Signal von dem Addierer 2350 stellt den erhöhten Deltaversetzungswert für die Iteration dar.
- Das AUSGEWÄH VERSETZ DELTAERHÖH FAKTOR ausgewählte Deltaversetzungserhöhungsfaktorsignal wird durch den Multiplexer 2351 unter der Steuerung eines Vergleichers 2352 bereitgestellt. Der Vergleicher 2352 erhält seinerseits das ZWI-VER- SETZDELTA Signal von dem Zwischenspeicher 2343 sowie das Signal von dem Register 2332 und erzeugt in Reaktion darauf das ZIEL ADR ERHÖH Zieladressenerhöhungssignal. Der Vergleicher 2352 negiert das ZIEL ADR ERHÖH Signal, wenn er bestimmt, dass der binärcodierte Wert des ZWI-VERSETZDELTA Signals kleiner als der Wert ist, der durch das Signal von dem Register 2332 dargestellt ist. Wenn dies auftritt bleibt der binärcodierte Wert des ZWI-VERSETZDELTA Signals, wenn es durch den Addierer 2350 um den Deltaversetzungserhöhungswert im Register 2332 erhöht wird, innerhalb des zulässigen Bereiches des Deltaversetzungswerts. Entsprechend ermöglicht das negierte ZIEL ADR ERHÖH Signal dem Multiplexer, das Signal von dem Register 2323 als AUSGEWÄH VERSETZDELTA ERHÖH FAKTOR ausgewähltes Deltaversetzungserhöhungsfaktorsignal an den Addierer 2350 zu geben. Der Addierer erzeugt ein ERHÖH VERSETZDELTA erhöhtes Deltaversetzungssignal, das der Multiplexer 2342 als das VERSETZDELTA Signal an die Eingabeklemmen des Zwischenspeichers 2343 und des Addierers 2314 koppelt.
- Andererseits bestätigt der Vergleicher 2343 das ZIEL ADR ERHÖH Signal, wenn er bestimmt, dass der binärcodierte Wert des ZWI-VERSETZDELTA Signals größer als oder gleich dem Wert ist, der durch das Signal von dem Register 2332 dargestellt wird. Wenn dies auftritt, wird der binärcodierte Wert des ZWI-VERSETZDELTA Signals, wenn es durch den Addierer 2350 um den Deltaversetzungserhöhungswert im Register 2323 erhöht wird, jenseits des zulässigen Bereiches des Deltaversetzungswerts sein. Entsprechend ermöglicht das bestätigte ZIEL ADR ERHÖH Signal dem Multiplexer, das Signal von dem Register 2333 als das AUSGEWÄH VERSETZDELTA ERHÖH FAKTOR ausgewählte Deltaversetzungserhöhungsfaktorsignal an den Addierer 2350 zu geben. Da, wie es erwähnt wurde, der binärcodierte Wert des Signals von dem Register 2333 dem Deltaerhöhungswert, verringert um den Abstreiffaktor "C" entspricht, wenn der Addierer ein ERHÖH VERSETZDELTA erhöhtes Deltasversetzungssignal erzeugt, ist der binär codierte Wert des ERHÖH VERSETZDELTA Signals innerhalb des verlangten Bereiches. Der Multiplexer 2342 gibt das ERHÖH VERSETZDELTA Signal als das Versetzungsdeltasignal an die Eingabeklemmen des Zwischenspeichers 2343 und des Addierers 2314.
- Der Adressenerzeugungsabschnitt 2310 für das Zielverarbeitungselement arbeitet in einer ähnlichen Weise wie die Arbeitsweise des Schlitzzählabschnitts 2313. In dem Adressenerzeugungsabschnitt 2310 für ein Zielverarbeitungselement werden Adressensignale für ein Zielverarbeitungselement von dem Zwischenspeicher 2343, die an dieser Stelle einen binärcodierten Wert entsprechend dem Anfangsadressenwert des Zielverarbeitungselements aufweisen, an eine Eingabeklemme eines Addierers 2352 gegeben. Eine zweite Eingabeklemme des Addierers 2352 erhält ein AUSGEWÄH VE ADR ERHÖH FAKTOR ausgewähltes Erhöhungsfaktorsignal für eine Verarbeitungselementadresse von einem Multiplexer 2353. Der Addierer 2352 hat ferner eine Übertragseingabeklemme "Ci", die durch das ZIEL ADR ERHÖH Zielerhöhungsadressensignal gesteuert wird. Der Addierer 2352 erzeugt ein ERHÖH VE ADR erhöhtes Verarbeitungselementadressensignal, das an die Eingabeklemme des Zwischenspeichers 2341 gegeben wird. Das ERHÖH VE ADR Signal von dem Addierer 2352 stellt den erhöhten Adressenwert des Zielverarbeitungselements für die Iteration dar.
- Das AUSGEWÄH VE ERHÖH FAKTOR ausgewählte Erhöhungsfaktorsignal für die Verarbeitungselementadresse wird von dem Multiplexer 2353 unter der Steuerung eines Vergleichers 2354 und eines Multiplexers 2355 geliefert. Der Vergleicher 2354 erhält seinerseits auch das ZIEL VE ADR Adressensignal für das Zielverarbeitungselement von dem Zwischenspeicher 2341 sowie das Signal von dem Register 2330. Der Vergleicher 2354 liefert zwei Ausgabesignale, die ein RÜCK WENN GR "Rücksetzen wenn größer als Signal", und ein RÜCK WENN GG "Rücksetzen wenn größer als oder gleich dem Signal" umfassen. Der Vergleicher 2354 bestätigt das RÜCK WENN GR Signal, wenn der binärcodierte Wert des ZIEL VE ADR Signal größer als der binärcodierte Wert des Signals von dem Register 2330 ist. Andererseits bestätigt der Vergleicher das RÜCK WENN GG Signal, wenn der binärcodierte Wert des ZIEL VE ADR Signals größer als oder gleich dem binärcodierten Wert des Signals von dem Register 2330 ist. Somit bestätigt der Vergleicher 2354 das RÜCK WENN GG Signal, aber nicht das RÜCK WENN GR Signal, wenn der binärcodierte Wert des ZIEL VE ADR Signals dem in dem Register 2330 gespeicherten Wert entspricht.
- Der Multiplexer 2355 koppelt unter der Steuerung des ZIEL ADR ERHÖH Zieladressenerhöhungssignals selektiv das RÜCK WENN GR oder RÜCK WENN GE Signal als ein RÜCK VE ADR Rücksetzadressensignal für das Verarbeitungselement an den Steuermultiplexer 2353. Wenn der Deltaversetzungserzeugungsabschnitt 2311 das ZIEL ADR ERHÖH Signal bestätigt, gibt der Multiplexer 2355 das RÜCK WENN GR Rücksetzen, wenn größer als, Signal, zu dem Multiplexer 2353 als das RÜCK VE ADR Adressensignal zur Rücksetzung des Verarbeitungselements. Andererseits koppelt, wenn der Deltaversetzungserzeugungsabschnitt 2311 das ZIEL ADR ERHÖH Signal negiert, der Multiplexer 2355 die RST IF GE Rücksetzung, wenn größer als oder gleich dem Signal, als das RST VE ADRS Signal.
- Der Multiplexer 2355 gewährleistet, dass er, wenn der Adressenerzeugungsabschnitt 2310 für das Zielverarbeitungselement das ZIEL ADR ERHÖH Zieladressenerhöhungssignal verwendet, das auf die Übertragseingabeklemme 0 des Addierers 2352 gegeben wird, um den Adressenwert des Zielverarbeitungselements weiter zu erhöhen, nicht über den Wert des zulässigen Bereiches der Adressenwerte des Zielverarbeitungselements hinaus erhöht. Wenn das ZIEL ADR ERHÖH Signal negiert wird, so dass der Adressenwert des Zielverarbeitungselements nicht weiter dadurch erhöht wird, gibt der Multiplexer 2355 das RÜCK WENN GR Rücksetzen wenn größer als Signal, als ein RÜCK VE ADR Adressensignal für die Rücksetzung des Verarbeitungselements aus. Unter dieser Bedingung wird, wenn der Vergleicher 2355 bestimmt, dass der binärcodierte Wert des ZIEL VE ADR Adressensignals des Zielverarbeitungselements kleiner als oder gleich dem binärcodierten Wert des Signals von dem Register 2330 ist, das RÜCK WENN GR Signal negiert wird. Das negierte ZIEL ADR ERHÖH Signal ermöglicht dem Multiplexer 2355, das negierte RÜCK WENN GR Signal an den Multiplexer 2353 zu geben, der seinerseits dem Multiplexer 2353 ermöglicht, ein AUSGEWÄHL VE ADR ERHÖH FAKTOR ausgewähltes Adressenerhöhungsfaktorsignal für ein Verarbeitungselement, das den Adressenerhöhungswert darstellt, an die zweite Eingabeklemme des Addierers 2352 zu geben. Der Addierer 2352 erzeugt ein ERHÖH VE ADR erhöhtes Verarbeitungselementadressensignal, das die Summe der binärcodierten Werte des ZIEL VE ADR Signals und des AUSGEWÄHL VE ADR ERHÖH FAKTOR Signals darstellt, die der Multiplexer 2340 als das ERHÖH VE ADR Signal an die Eingabeklemme des Zwischenspeichers 2341 gibt.
- Wenn jedoch, während das ZIEL ADR ERHÖH Signal negiert ist, der Vergleicher 2355 bestimmt, dass der binärcodierte Wert des ZIEL VE ADR Signals größer als der binärcodierte Wert des Signals von dem Register 2330 ist, wird das RÜCK WENN GR Signal bestätigt. In diesem Fall wird das RÜCK VE ADR Signal auch bestätigt, wodurch der Multiplexer 2353 freigegeben wird, ein AUSGEWÄH VE ADR ERHÖH FAKTOR ausgewähltes Adressenerhöhungsfaktorsignal für das Verarbeitungselement, das den Adressenerhöhungswert um den Wert "NPE" verringert, entspricht, an die zweite Eingabeklemme des Addierers 2352 zu geben. Der Addierer 2352 erzeugt ein ERHÖH VE ADR erhöhtes Verarbeitungselementadressensignal, das die Summe der binärcodierten Werte des ZIEL VE ADR Signals und des AUSGEWÄH VE ADR ERHÖH FAKTOR Signals darstellt. Der Multiplexer 2340 gibt das ERHÖH VE ADR Signal an die Eingabeklemme des Zwischenspeichers 2341.
- Wenn andererseits das Signal ZIEL ADR ERHÖH bestätigt wird, erzeugt der Addierer 2352 erhöhte Verarbeitungselementadressensignale ERHÖH VE ADR, deren binärcodierter Wert der Summe aus den binärcodierten Werten der Adressensignale ZIEL VE ADR für das Zielverarbeitungselement und dem ausgewählten Erhöhungsfaktor für die Verarbeitungselementadresse AUSGEWÄH VE ADR ERHÖH FAKTOR entspricht, wie weiter erhöht, da das ZIEL ADR ERHÖH bestätigt wird. In diesem Fall gibt, um zu gewährleisten, dass der Addierer 2352 das ZIEL VE ADR Signal nicht erhöht, um eine Zielverarbeitungselementadresse jenseits derjenigen für die Verarbeitungselemente 11(i) und Skalarprozessoren 12 zu schaffen, die an der Eingabe-/Ausgabeoperation teilnehmen, das ZIEL ADR ERHÖH Signal den Multiplexer 2355 frei, das RÜCK WENN GR Rücksetzen wenn gleich oder größer als Signal, als das RÜCK VE ADR Signal anzulegen.
- Entsprechend wird, wenn der Vergleicher 2355 bestimmt, dass der binärcodierte Wert des Adressensignals des Zielverarbeitungselements ZIEL VE ADR kleiner als der binärcodierte Wert des Signals von dem Register 2330 ist, das RÜCK WENN GG Signal negiert. Das bestätigte ZIEL ADR ERHÖH Signal gibt den Multiplexer 2355 frei, das negierte RÜCK WENN GG Signal an den Multiplexer 2353 zu geben, der seinerseits den Multiplexer 2353 freigibt, das Adressenerhöhungsfaktorsignal des ausgewählten Verarbeitungselements AUSGEWÄH VE ADR ERHÖH FAKTOR, das den Adressenerhöhungswert angibt, an die zweite Eingabeklemme des Addieres 2352 zu legen. Der Addierer 2352 erzeugt ein erhöhtes Verarbeitungselementadressensignal ERHÖH VE ADR, das die Summe der binärcodierten Werte des ZIEL VE ADR Signals und des AUSGEWÄH VE ADR ERHÖH FAKTOR Signals darstellt, zusammen mit dem bestätigten ERHÖH ZIEL ADR, wenn es an seiner Übertragsklemme C&sub1; angelegt wird, wobei der Multiplexer 2340 das ERHÖH VE ADR Signal an die Eingabeklemme des Zwischenspeichers 2341 koppelt.
- Wenn jedoch, während das ZIEL ADR ERHÖH Signal bestätigt ist, der Vergleicher 2355 bestimmt, dass der binärcodierte Wert des ZIEL VE ADR Signals größer als oder gleich dem binärcodierten Wert des Signals von dem Register 2330 ist, wird das RÜCK WENN GR Signal bestätigt. In diesem Fall wird das RÜCK VE ADR Signal ebenfalls bestätigt, wodurch der Multiplexer 2353 freigegeben wird, ein AUSGEWÄH VE ADR ERHÖH FAKTOR Adressenerhöhungsfaktorsignal für das ausgewählte Verarbeitungselement, das dem um den Wert "NPE" verringerten Adressenerhöhungswert entspricht, an die zweite Eingabeklemme des Addierers 2352 zu legen. Der Addierer 2352 erzeugt ein erhöhtes Verarbeitungselementadressensignal ERHÖH VE ADR, das die Summe aus den binärcodierten Werten des ZIEL VE ADR Signals und des AUSGEWÄH VE ADR ERHÖH FAKTOR Signals darstellt, zusammen mit dem ZIEL ADR ERHÖH Signal an seiner Übertragseingabeklemme Ci. Der Multiplexer 2340 gibt das ERHÖH VE ADR Signal an die Eingabeklemme des Zwischenspeichers 2341.
- Es wird auf Fig. 4B Bezug genommen, wonach in dem Schlitzzählabschnitt 2313 das zwischengespeicherte Schlitzindexsignal ZWI SCHLITZ INDEX von dem Zwischenspeicher 2347, das an dieser Stelle einen binärcodierten Wert aufweist, der dem anfänglichen Schlitzindexwert entspricht, an eine Eingabeklemme eines Addieres 2360 gegeben WIRD. Eine zweite Eingabeklemme des Addierers 2360 erhält ein AUSGEWÄH SCHLITZ INDEX ERHÖH FAKTOR ausgewähltes Erhöhungsfaktorsignal für den Schlitzindex von einem Multiplexer 2361. Der Addierer 2360 erzeugt ein erhöhtes Schlitzindexsignal ERHÖH SCHLITZ INDEX, das der Multiplexer 2346 als ein SCHLITZ INDEX Signal an die Eingabeklemme des Zwischenspeichers 2343 gibt. Das ausgewählte Erhöhungsfaktorsignal für den Schlitzindex AUSGEWÄH SCHLITZ INDEX ER HÖH FAKTOR wird von dem Multiplexer 2361 unter der Steuerung eines Vergleichers 2362 bereitgestellt.
- Der Vergleicher 2362 erhält seinerseits das ZWI SCHLITZ INDEX Signal von dem Zwischenspeicher 2347, sowie das Signal von dem Register 2335, und erzeugt in Antwort das Basisversetzungserhöhungssignal. Der Vergleicher 2362 negiert das ERHÖH VERSETZ BASIS Signal, wenn er bestimmt, dass der binärcodierte Wert des ZWI SCHLITZ INDEX Signals kleiner als der Wert ist, der durch das Signal von dem Register 2335 wiedergegeben wird. Wenn dies auftritt, bleibt der binärcodierte Wert des ZWI SCHLITZ INDEX Signals, wenn es durch den Addierer 2360 um den Schlitzerhöhungswert in dem Register 2327 erhöht wird, innerhalb des zulässigen Bereiches des Schlitzindexwerts. Entsprechend gibt das negierte ERHÖH VERSETZ BASIS Signal den Multiplexer 2361 frei, damit er das Signal von dem Register 2327 als ausgewähltes Erhöhungsfaktorsignal für den Schlitzindex AUSGEWÄH SCHLITZ INDEX ERHÖH FAKTOR an den Addierer 2360 gibt. Der Addierer erzeugt ein erhöhtes Schlitzindexsignal ERHÖH SCHLITZ INDEX, das der Multiplexer 2346 als das SCHLITZ INDEX Signal an Eingabeklemmen des Zwischenspeichers 2347 legt.
- Andererseits bestätigt der Vergleicher 2362 das ERHÖH SCHLITZ INDEX Signal, wenn er bestimmt, dass der binärcodierte Wert des ZWI-VERSETZDELTA Signals größer als oder gleich dem Wert ist, der durch das Signal von dem Register 2335 dargestellt wird. Wenn dies auftritt, wird der binärcodierte Wert des ZWI SCHLITZ INDEX Signals, wenn es durch den Addierer 2360 um den Schlitzindexerhöhungswert in dem Register 2327 erhöht wird, jenseits des zulässigen Bereiches des Schlitzindexwerts sein. Entsprechend gibt das bestätigte ERHÖH VERSETZ BASIS Signal den Multiplexer 2361 frei, damit er das Signal von dem Register 2336 als ausgewähltes Erhöhungsfaktorsignal des Schlitzindex AUSGEWÄH SCHLITZ INDEX ERHÖH FAKTOR an den Addierer 2360 gibt. Da, wie es oben erwähnt wurde, der binärcodierte Wert des Signals von dem Register 2336 dem Schlitzerhöhungswert entspricht, der um die Anzahl von Schlitzen in einem Rahmen verringert ist, wenn der Addierer 2360 ein erhöhtes Schlitzindexsignal ERHÖH SCHLITZ INDEX erzeugt, wird der binärcodierte Wert des ERHÖH SCHLITZ INDEX Signals innerhalb des verlangten Bereiches sein. Der Multiplexer 2346 gibt das ERHÖH SCHLITZ INDEX Signal als das SCHLITZ INDEX Signal an die Eingabeklemme des Zwischenspeichers 2347.
- In dem Basisversetzungserzeugungsabschnitt 2312 wird das zwischengespeicherte Basisversetzungssignal ZWI VERSETZ BASIS von dem Zwischenspeicher 2345, der an dieser Stelle einen binärcodierten Wert entsprechend dem anfänglichen Basisversetzungswert aufweist, an eine Eingabeklemme eines Addierers 2363 gelegt. Eine zweite Eingabeklemme des Addierers 2363 erhält ein ausgewähltes Erhöhungsfaktorsignal für die Basisversetzung AUSGEWÄH VERSETZ BASIS ERHÖH FAKTOR von einem Multiplexer 2364. Der Addierer 2363 erzeugt ein erhöhtes Basisversetzungssignal ERHÖH VERSETZ BASIS, das der Multiplexer 2344 als das Basisversetzungssignal an die Eingabeklemme des Zwischenspeichers 2345 und eine Eingabeklemme des Addierers 2314 gibt. Wie es oben beschrieben wurde, erzeugt der Addierer 2314 Signale für die Basisversetzung plus Delta VERSETZ BASIS + DEL, dessen binärcodierter Wert aus der Summe aus den binärcodierten Werten des VERSETZ BASIS und des VERSETZ DELTA Signals entspricht, und das an die Eingabeklemme des Zwischenspeichers 2315 gegeben wird.
- Das ausgewählte Erhöhungsfaktorsignal der Basisversetzung AUSGEWÄH VERSETZ BASIS ERHÖH FAKTOR wird von dem Multiplexer 2364 unter Steuerung des ERHÖH VERSETZ BASIS Signals von dem Vergleicher 2362 geliefert. Wie es oben beschrieben wurde, negiert der Vergleicher 2362 das ERHÖH VERSETZ BASIS Signal, wenn er bestimmt, dass der binärcodierte Wert des ZWI SCHLITZ INDEX Signals kleiner als der Wert ist, der durch das Signal von dem Register 2335 dargestellt wird. Wenn dies auftritt, bleibt der binärcodierte Wert des ZWI SCHLITZ INDEX Signals, wenn es durch den Addierer 2360 um den Schlitzerhöhungswert in dem Register 2327 erhöht wird, innerhalb des zulässigen Bereiches des Schlitzindexwerts. In diesem Fall gibt das negierte ERHÖH VERSETZ BASIS Signal den Multiplexer 2364 frei, damit das Signal von dem Register 2325, das den Basisversetzungserhöhungswert darstellt, als ausgewähltes Erhöhungsfaktorsignal der Basisversetzung AUSGEWÄH VERSETZ BASIS ERHÖH FAKTOR an den Addierer 2363 gegeben wird. Der Addierer 2363 erzeugt ein erhöhtes Basisversetzungssignal VERSETZ BASIS ERHÖH, das der Multiplexer 2346 als das VERSETZ BASIS Signal an die Eingabeklemmen des Zwischenspeichers 2347 und des Addierers 2314 gibt.
- Andererseits bestätigt der Vergleicher 2362 das ERHÖH SCHLITZ INDEX Signal, wenn er bestimmt, dass der binärcodierte Wert des ZWI VERSETZDELTA Signals größer als oder gleich dem Wert ist, der durch das Signal von dem Register 2335 dargestellt wird. Wenn dies auftritt, wird der binärcodierte Wert des ZWI SCHLITZ INDEX Signals, wenn er durch den Addierer 2363 um den Schlitzindexerhöhungswert im Register 2327 erhöht wird, jenseits des zulässigen Bereiches des Schlitzindexwerts sein. Entsprechend gibt das bestätigte ERHÖH VERSETZ BASIS Signal den Multiplexer 2364 frei, damit er das Signal von dem Register 2334, das den Basisversetzungserhöhungswert plus dem Abstreiffaktor "C" als das ausgewählte Erhöhungsfaktorsignal der Basisversetzung AUS- GEWÄH VERSETZ BASIS ERHÖH FAKTOR darstellt, an den Addierer 2363 gibt. In diesem Fall erzeugt der Addierer 2363 ein erhöhtes Basisversetzungssignal ERHÖH VERSETZ BASIS, dessen binärcodierter Wert dem binärcodierten Wert des ZWI VER- SETZ BASIS Signals entspricht, das um den Basisversetzungserhöhungswert und den Abstreiffaktor "C" erhöht ist.
- Wie es oben angegeben wurde, führen verschiedene Abschnitte 2310, 2311, 2312 und 2313 des parallelen Sendeadressen/Versetzungsgenerators 2278(i) iterativ diese Operationen durch, um die Zieladressensignale des Verarbeitungselements des ZIEL VE ADR und die Zielversetzungssignale des ZIELVERSETZ zu erzeugen, die in Verbindung mit der Erzeugung der Eingabe-/Ausgabe-Nachrichtenpakete 2230 verwendet werden sollen. Während jeder Iteration umfasst das Eingabe-/Ausgabe-Nachrichtenpaket 2230, das durch den Eingabe-/Ausgabepuffer 2201(i) übertragen wird, ein Datenelement PE(x) MSG(Y) von seinem Pufferspeicher 2223(i). Nachdem der Eingabe-/Ausgabepuffer 2201(i) alle Datenelemente PE(x) MSG(Y) übertragen hat, kann er die Eingabe-/Ausgabeoperation beenden.
- Man erkennt, dass zahlreiche Abänderungen an dem parallelen Adressensende-Nersetzungsgenerator 2278(i) gemacht werden können, der oben beschrieben ist. Beispielsweise kann der parallele Adressensende-/Versetzungsgenerator statt, getrennte Addierer und Vergleicher für die verschiedenen Abschnitte 2310, 2311, 2312 und 2313 vorzusehen, einen einzigen Addierer und Vergleicher aufweisen, die zwischen den verschiedenen Abschnitten gemeinsam benutzt werden können. Bei einer solchen Ausführungsform würde der Addierer und Vergleicher in getrennten Phasen benutzt werden, um während jeder Phase Signale zu erzeugen, die den Zieladressenwert des Verarbei tungselements, den Deltaversetzungswert, den Basisversetzungswert und den Schlitzindexwert darstellen. In diesem Fall würden der Addierer und Vergleicher benutzt werden, um den Deltaversetzungswert vor dem Zieladressenwert für das Verarbeitungselement zu erzeugen, da sie das ZIEL ADR ERHÖH Signal benötigen, um den Zieladressenwert des Verarbeitungselements zu erzeugen. Des weiteren würden der Addierer und der Vergleicher verwendet werden, den Schlitzindexwert vor dem Zielbasiswert zu erzeugen, da sie das ERHÖH VERSETZ BASIS Signal benötigen, den Basisversetzungswert zu erzeugen. Eine solche Ausführungsform kann bei der Verringerung der physikalischen Größe der Schaltung zweckmäßig sein, die den parallelen Adressensende-/Versetzungsgenerator 2278(i) umfasst, obgleich man erkennt, dass mehr Zeit benötigt wird, den Zieladressenwert des Verarbeitungselements und den Zielversetzungswert zu erzeugen, da sie in einer Folge mit vier Phasen bestimmt werden.
- Des weiteren erkennt man, dass der Zieladressenwert des Verarbeitungselements und der Zielversetzungswert unter Verwendung eines geeignet programmierten Mikroprozessors bestimmt werden können.
- Die vorgenannte Beschreibung ist auf eine bestimmte Ausführungsform dieser Erfindung beschränkt worden. Es liegt jedoch auf der Hand, dass Änderungen und Abänderungen von dem Rechner der Erfindung gemacht werden können. Deshalb ist es die Zielsetzung der beigefügten Ansprüche, alle solche Änderungen und Abänderungen zu überdecken, die in den Bereich der beigefügten Ansprüche kommen.
Claims (36)
1. Parallelrechner (10), der eine Reihe Verarbeitungselement (11 (0), ..., 11 (N)) und
ein Eingabe-/Ausgabesystem (13) umfasst, die durch ein Routernetz (15)
verbunden sind,
A. jedes Verarbeitungselement ist verbunden, Nachrichten (2230) von dem
Routernetz während einer Eingabe-/Ausgabeoperation zu erhalten, wobei
jedes Verarbeitungselement einen Speicher aufweist, der eine Vielzahl
von Speicherstellen umfasst, von denen jede durch eine Adresse
gekennzeichnet ist, wobei das Verarbeitungselement beim Empfang jeder
Nachricht einen Zielversatzwert in der Nachricht verwendet, um eine
Adresse zu erzeugen, eine Speicherstelle zu kennzeichnen, an der der
Datenelement der Nachricht gespeichert werden soll; und
B. das Eingabe-/Ausgabesystem umfasst eine Reihe von Eingabe-
/Ausgabepuffern (2201(i)) zur Erzeugung von Nachrichten zur
gleichzeitigen Übertragung über das Routernetz während der Eingabe-
/Ausgabeoperation, wobei jeder Eingabe-/Ausgabepuffer umfasst:
i. einen Übertragungspuffer zum Puffern einer Vielzahl von Datenelementen,
die in Nachrichten zu einem Verarbeitungselement übertragen werden
sollen, wobei jeder Übertragungspuffer eine Mehrzahl Speicherstellen
(2223(i)) an einer Reihe von Quellenversätze umfasst, jede Speicherstelle
ein Datenelement speichert, die Datenelemente eine Reihe von Rahmen
von Speicherstellen in den Übertragungspuffern der Eingabe-
/Ausgabepuffer definieren, jeder Rahmen erstens in der Reihenfolge
aufeinanderfolgender Eingabe-/Ausgabepuffer an Speicherstellen mit der
gleichen Quellenversetzung und zweitens in der Reihenfolge von
Speicherstellen in jedem Eingabe-/Ausgabepuffer organisiert ist, der
aufeinanderfolgende Quellenversetzungen aufweist, damit Datenelemente
umfasst werden, die von der Reihe von Verarbeitungselementen während
einer Eingabe-/Ausgabeoperation zur Speicherung in ihren
entsprechenden Verarbeitungselementspeichern an derselben Adresse
erhalten werden;
ii. einen Zielverarbeitungselementadressen- und -versetzungsgenerator
(2278(i)) zur Erzeugung eines Zielverarbeitungselementadressenwerts
und eines Zielversetzungswerts für jedes Datenelement in den
Übertragungspuffer, die eine Position des Rahmens, der das
Datenelement in der Reihe von Rahmen enthält, und eine Position des
Datenelements in der Reihe von Datenelementen in den Rahmen
wiedergibt; und
iii. einen Nachrichtengenerator zur iterativen Erzeugung von Nachrichten zur
Übertragung über das Routernetz, wobei die Nachricht Datenelemente
von aufeinanderfolgenden Speicherstellen des jeweiligen
Übertragungspuffers des Eingabe-/Ausgabepuffers umfasst, jede
Nachricht einen Verarbeitungselementzieladressenwert und einen
Zielversetzungswert umfasst, der von dem
Verarbeitungselementzieladressen- und versetzungsgenerator für das
Datenelement erzeugt wurde; und
C. das Routernetz Nachrichten, die von den Eingabe-/Ausgabepuffern
erzeugt wurden, zu den Verarbeitungselementen entsprechend den
Verarbeitungselementzieladressenwerten der entsprechenden
Nachrichten überträgt.
2. Rechner, wie in Anspruch 1 definiert, bei dem die Verarbeitungselemente
ausgewählte Verarbeitungsoperationen in Verbindung mit Datenelementen
ausführen, die während einer Eingabe-/Ausgabeoperation erhalten wurden.
3. Rechner, wie in Anspruch 1 definiert, bei dem der Eingabe-/Ausgabeprozessor
des weiteren Nachrichten über das Routernetz von einer Reihe von
Verarbeitungselementen erhält, die zumindest eine ausgewählte Untergruppe der
Verarbeitungselemente während einer Eingabe-/Ausgabeoperation bilden.
4. Rechner, wie in Anspruch 1 definiert, der des weiteren zumindest einen
Steuerprozessor und ein Steuernetz umfasst, wobei der Steuerprozessor
Verarbeitungssteuernachrichten zur Übertragung zu den Verarbeitungselementen
über das Steuernetz erzeugt, um die Verarbeitungselemente zu steuern.
5. Rechner, wie in Anspruch 2 definiert, der eine Mehrzahl von Steuerprozessoren
umfasst, von denen jeder Verarbeitungssteuernachrichten zur Übertragung zu
zumindest ausgewählten der Verarbeitungselemente über das Steuernetz
erzeugt, um die Verarbeitungselemente zu steuern, wobei das Steuernetz
unterteilbar ist, um eine Mehrzahl von Unterteilungen zu definieren, von denen
jede die Übertragung von Verarbeitungssteuernachrichten zwischen zumindest
einem Steuerprozessor und ausgewählten der Verarbeitungselemente erleichtert.
6. Rechner, wie in Anspruch 4 definiert, bei dem der Steuerprozessor des weiteren
Eingabe-/Ausgabesteuernachrichten erzeugt und der
Eingabe-/Ausgabeprozessor des weiteren eine gemeinsame Steuerung zum Erhalt der
Eingabe-/Ausgabesteuernachrichten und zum Steuern der Eingabe-/Ausgabepuffer aufweist, um
Eingabe-/Ausgabeoperationen in Antwort darauf auszuführen.
7. Rechner, wie in Anspruch 1 beansprucht, bei dem der
Zielverarbeitungselementadressen- und -versetzungsgenerator des weiteren
während einer Anfangsiteration einen
Zielverarbeitungselementadressenanfangswert und einen
Zielversetzungsanfangswert erzeugt, die sich beide auf die Anzahl der Eingabe-
/Ausgabepuffer beziehen, wobei die Anzahl der Verarbeitungselemente, die an
der Eingabe-/Ausgabeoperation teilnehmen, und die Position des Eingabe-
/Ausgabepuffers unter den Eingabe-/Ausgabepuffern, die an der Eingabe-
/Ausgabeoperation teilnehmen, der Zielverarbeitungselementadressen- und -
versetzungsgenerator während aufeinanderfolgende Iterationen einen
Zielverarbeitungselementadressenwert und einen Zielversetzungswert in Antwort
auf den Zielverarbeitungselementadressenanfangswert und einen
Zielversetzungsanfangswert erzeugen.
8. Rechner, wie in Anspruch 1 definiert, bei dem der
Zielverarbeitungselementadressen- und -versetzungsgenerator des weiteren den
Zielverarbeitungselementadressenwert in Antwort auf einen
Verarbeitungselementadressenbasiswert erzeugt, der ein vorbestimmtes der
Verarbeitungselemente in der Reihe von Verarbeitungselementen kennzeichnet,
die an der Eingabe-/Ausgabeoperation teilnehmen.
9. Rechner, wie in Anspruch 1 definiert, bei dem der
Zielverarbeitungselementadressen- und -versetzungsgenerator umfasst:
A. einen Zielverarbeitungselementadressenwertgenerator zur Erzeugung von
Zielverarbeitungselementadressenwerten während aufeinanderfolgender
Iterationen in Antwort auf einen
Zielverarbeitungselementadressenanfangswert, die Anzahl von Eingabe-
/Ausgabepuffern und die Anzahl von Verarbeitungselementen, die an der
Eingabe-/Ausgabeoperation teilnehmen, wobei der
Zielverarbeitungselementadressenwert, der während einer Iteration
erzeugt wird, das Datenelement, das in einer Nachricht verwendet werden
soll, während der Iteration innerhalb der Sequenz von Datenelementen
kennzeichnet, die ihren Rahmen umfasst; und
B. einen Zielversetzungswertgenerator zur Erzeugung von
Zielversetzungswerten während aufeinanderfolgender Iterationen in
Antwort auf einen Zielversetzungsanfangswert, die Anzahl von Eingabe-
/Ausgabepuffern und die Anzahl von Verarbeitungselementen, die an der
Eingabe-/Ausgabeoperation teilnehmen, wobei der Zielversetzungswert,
der während einer Iteration erzeugt wurde, den Rahmen, der das
Datenelement enthält, das in einer Nachricht übertragen werden soll,
während der Iteration in der Sequenz von Rahmen kennzeichnet, die
übertragen werden sollen.
10. Rechner, wie in Anspruch 9 definiert, bei dem der
Zielverarbeitungselementadressenwertgenerator umfasst:
A. einen Zielverarbeitungselementadressenwertspeicher zur Speicherung
eines Zielverarbeitungselementadressenwerts;
B. einen Adressenerhöhungswertspeicher zur Speicherung eines
Adressenerhöhungswerts; und
C. eine Zieladressenwerterhöhungsschaltung zur Erzeugung eines erhöhten
Zielverarbeitungselementadressenwerts während jeder Iteration in Antwort
auf den Zielverarbeitungselementadressenwert, der in dem
Zielverarbeitungselementadressenwertspeicher gespeichert ist, und den
Adressenerhöhungswert, wobei der erhöhte
Zielverarbeitungselementadressenwert in dem
Zielverarbeitungselementadressenwertspeicher als der
Zielverarbeitungselementadressenwert zur Verwendung während der
nächsten Iteration gespeichert wird.
11. Rechner, wie in Anspruch 10 definiert, bei dem sich der in dem
Adressenerhöhungswertspeicher gespeicherte Adressenerhöhungswert auf die
Anzahl der Verarbeitungselemente und die Anzahl gier Eingabe-/Ausgabepuffer
bezieht, die an der Eingabe-/Ausgabeoperation teilnehmen.
12. Rechner, wie in Anspruch 10 definiert, wobei der
Zielverarbeitungselementadressenwertgenerator des weiteren eine
Zieladresseninitialisierungsschaltung zur Freigabe des
Zielverarbeitungselementadressenwertspeichers umfasst, um einen
Zielversetzungsanfangswert zu speichern, der sich auf die Anzahl der Eingabe-
/Ausgabepuffer und die Anzahl der Verarbeitungselemente, die an der Eingabe-
/Ausgabeoperation teilnehmen, sowie die Position des Eingabe-/Ausgabepuffers
unter den Eingabe-/Ausgabepuffern bezieht, die an der
Eingabe-/Ausgabeoperation teilnehmen.
13. Rechner, wie in Anspruch 10 definiert, wobei die
Zieladressenwerterhöhungsschaltung des weiteren eine
Zielverarbeitungselementadressenwertbereichsbegrenzungsschaltung zur
Begrenzung des erhöhten Zielverarbeitungselementadressenwerts auf einen
Adressenwertbereich umfasst, der den Adressenwerten der
Verarbeitungselemente entspricht, die an der Eingabe-/Ausgabeoperation
teilnehmen.
14. Rechner, wie in Anspruch 13 definiert, bei dem:
A. die Zielverarbeitungselementadressenwerterhöhungsschaltung ferner
umfasst:
i. einen
Zielverarbeitungselementadressenwertbereichsbegrenzungsspeicher zur
Speicherung eines Begrenzungswerts, der sich auf ein oberes Ende des
Adressenwertbereichs bezieht; und
ii. einen Adressenrücksetzspeicher zur Speicherung eines
Adressenrücksetzwerts;
B. die Zielverarbeitungselementadressenwertbereichsbegrenzungsschaltung
umfasst:
i. eine Auswählschaltung zum selektiven Anlegen entweder des
Adressenerhöhungswerts von dem Adressenerhöhungswertspeicher oder des
Adressenrücksetzwerts von dem Adressenrücksetzspeichers an die
Zieladressenwerterhöhungsschaltung in Antwort auf ein
Auswählsteuersignal; und
ii. einen Vergleicher zur Erzeugung des Auswählsteuersignals in Antwort auf
den Zielverarbeitungselementadressenwert von dem
Zielverarbeitungselementadressenwertspeicher und dem
Begrenzungswert von dem
Zielverarbeitungselementadressenwertbereichsbegrenzungsspeicher,
wobei der Adressenrücksetzwert und der Begrenzungswert ausgewählt
werden, um zu gewährleisten, dass der erhöhte
Zielverarbeitungselementadressenwert, der durch die
Zieladressenwerterhöhungsschaltung erzeugt wird, innerhalb des
Adressenwertbereichs ist.
15. Rechner, wie in Anspruch 9 definiert, bei dem der Zielversetzungswertgenerator
umfasst:
A. einen Zielversetzungswertspeicher zur Speicherung eines
Zielversetzungswerts;
B. einen Versetzungserhöhungswertspeicher zur Speicherung eines
Versetzungserhöhungswerts; und
C. eine Zielversetzungswerterhöhungsschaltung zur Erzeugung eines
erhöhten Zielversetzungswerts während jeder Iteration in Antwort auf den
Zielversetzungswert, der in dem Zielversetzungswertspeicher gespeichert ist,
und den Versetzungserhöhungswert, wobei der erhöhte
Zielversetzungswert in dem Zielverarbeitungselementversetzungsspeicher als
Zielversetzungswert zur Verwendung während der nächsten Iteration gespeichert
ist.
16. Rechner, wie in Anspruch 15 definiert, bei dem der in dem
Versetzungserhöhungswertspeicher gespeicherte Versetzungserhöhungswert mit
der Anzahl von Verarbeitungselementen und der Anzahl von
Eingabe/Ausgabepuffern in Beziehung steht, die an der Eingabe-/Ausgabeoperation
teilnehmen.
17. Rechner, wie in Anspruch 15 definiert, wobei der Zielversetzungswertgenerator
des weiteren eine Zielversetzungsinitialisierungsschaltung zur Freigabe des
Zielversetzungswertspeichers umfasst, um einen Zielversetzungsanfangswert zu
speichern, der sich auf die Anzahl von Verarbeitungselementen, die an der
Eingabe-/Ausgabeoperation teilnehmen, und die Position der Eingabe-
/Ausgabeoperation und die Position des Eingabe-/Ausgabepuffers unter den
Eingabe-/Ausgabepuffern bezieht, die an der Eingabe-/Ausgabeoperation
teilnehmen.
18. Rechner, wie in Anspruch 1 definiert, bei dem jeder Rahmen des weiteren als
eine Reihe von Streifen umfassend definiert ist, wobei die Reihe Datenelemente
umfasst, von denen jedes von der Reihe von Verarbeitungselementen
empfangen wird, die an der Eingabe-/Ausgabeoperation teilnehmen, und jeder
Streifen eine vorbestimmte Anzahl Datenelemente umfasst, die von der Reihe
von Verarbeitungselementen, die an der Eingabe-/Ausgabeoperation teilnehmen,
zur Speicherung in ihren jeweiligen Verarbeitungselementempfangspuffern an
aufeinanderfolgenden Zielversetzungswerten empfangen werden, wobei der
Zielverarbeitungselementadressenwertgenerator des weiteren die
Zielverarbeitungselementadressenwerte und Zielversetzungswerte in Antwort auf
die Anzahl von Datenelementen in jedem Streifen erzeugt.
19. Rechner, wie in Anspruch 18 definiert, bei dem der
Zielverarbeitungselementadressen- und -versetzungsgenerator des weiteren einen
Zielverarbeitungselementadressenanfangswert und einen
Zielversetzungsanfangswert, die beide mit der Anzahl von Eingabe-
/Ausgabepuffern, der Anzahl von Verarbeitungselementen, die an der Eingabe-
/Ausgabeoperation teilnehmen, der Position des Eingabe-/Ausgabepuffers unter
den Eingabe-/Ausgabepuffern, die an der Eingabe-/Ausgabeoperation
teilnehmen, und der Anzahl von Datenelementen in jedem Streifen in Beziehung
stehen, wobei der Zielverarbeitungselementadressen und -versetzungsgenerator
während aufeinanderfolgender Iterationen einen
Zielverarbeitungselementadressenwert und einen Zielversetzungswert in Antwort
auf den Zielverarbeitungselementadressenanfangswert und einen
Zielversetzungsanfangswert erzeugt.
20. Rechner, wie in Anspruch 18 definiert, in dem der
Zielverarbeitungselementadressen- und -versetzungsgenerator des weiteren den
Zielverarbeitungselementadressenwert in Antwort auf einen
Verarbeitungselementadressenbasiswert erzeugt, der ein vorbestimmtes der
Verarbeitungselemente in der Reihe von Verarbeitungselementen kennzeichnet,
die an der Eingabe-/Ausgabeoperation teilnehmen.
21. Rechner, wie in Anspruch 18 definiert, in dem der
Zielverarbeitungselementadressen- und -versetzungsgenerator umfasst:
A. einen Zielversetzungswertgenerator zur Erzeugung von
Zielversetzungswerten während aufeinanderfolgender Iterationen in Antwort auf einen
Zielversetzungsanfangswert, die Anzahl von Eingabe-/Ausgabepuffern, die
Anzahl von Verarbeitungselementen, die an der
Eingabe-/Ausgabeoperation teilnehmen, und die Anzahl von Datenelementen in einem
Streifen, wobei der Zielversetzungswert für jede Iteration den Rahmen und
die Position des Datenelements, das in einer Nachricht verwendet werden
soll, während der Iteration in der Sequenz von Datenelementen
kennzeichnet, die ihren Streifen umfasst, wobei der
Zielversetzungswertgenerator des weiteren ein Zieladressensteuersignal erzeugt, das ausgewählte
Bedingungen aufweist;
B. einen Zielverarbeitungselementadressenwertgenerator zur Erzeugung von
Zielverarbeitungselementadressenwerten während aufeinanderfolgender
Iterationen in Antwort auf einen
Zielverarbeitungselementadressenanfangswert, die Anzahl von Eingabe-/Ausgabepuffern, die Anzahl von
Verarbeitungselementen, die an der Eingabe-/Ausgabeoperation teilnehmen,
und die Bedingung des Zieladressensteuersignals, wobei der
Zielverarbeitungselementadressenwert für jede Iteration den Streifen, der das
Datenelement enthält, das in einer Nachricht verwendet werden soll, während
der Iteration innerhalb der Reihe von Streifen kennzeichnet, die einen
Rahmen umfassen.
22. Rechner, wie in Anspruch 21 definiert, in dem der
Zielverarbeitungselementadressenwertgenerator umfasst:
A. einen Zielverarbeitungselementadressenwertspeicher zur Speicherung
eines Zielverarbeitungselementadressenwerts;
B. einen Adressenerhöhungswertspeicher zur Speicherung eines
Adressenerhöhungswerts; und
C. eine Zieladressenwerterhöhungsschaltung zur Erzeugung eines erhöhten
Zielverarbeitungselementadressenwerts während jeder Iteration in Antwort
auf den Zielverarbeitungselementadressenwert, der in dem
Zielverarbeitungselementadressenwertspeicher gespeichert ist, den
Adressenerhöhungswert und die Bedingung des
Zieladressensteuersignals, wobei der erhöhte
Zielverarbeitungselementadressenwert in dem
Zielverarbeitungselementadressenwertspeicher als
Zielverarbeitungselementadressenwert gespeichert wird.
23. Rechner, wie in Anspruch 22 definiert, bei dem sich der in dem
Adressenerhöhungswertspeicher gespeicherte Adressenerhöhungswert auf die
Anzahl der Verarbeitungselemente und die Anzahl der Eingabe-/Ausgabepuffer
unter den Eingabe-/Ausgabepuffern bezieht, die an der Eingabe-
/Ausgabeoperation teilnehmen.
24. Rechner, wie in Anspruch 22 definiert, in dem der
Zielverarbeitungselementadressenwertgenerator des weiteren eine Zieladresseninitialisierungsschaltung
zur Freigabe des Zielverarbeitungselementadressenwertspeichers umfasst, um
einen Zielversetzungsanfangswert zu speichern, der sich auf die Anzahl der
Eingabe-/Ausgabepuffer und die Anzahl der Verarbeitungselemente, die an der
Eingabe-/Ausgabeoperation teilnehmen, sowie die Position des Eingabe-
/Ausgabepuffers unter den Eingabe-/Ausgabepuffern, die an der Eingabe-
/Ausgabeoperation teilnehmen, und auf die Anzahl von Datenelementen in einem
Streifen bezieht.
25. Rechner, wie in Anspruch 22 definiert, in dem die
Zieladressenwerterhöhungsschaltung des weiteren eine
Zielverarbeitungselementadressenwertbereichsbegrenzungsschaltung zur
Begrenzung des erhöhten Zielverarbeitungselementadressenwerts auf einen
Adressenwertbereich umfasst, der den Adressenwerten der
Verarbeitungselemente entspricht, die an der Eingabe-/Ausgabeoperation
teilnehmen.
26. Rechner, wie in Anspruch 25 definiert, bei dem:
A. Die Zielverarbeitungselementadressenwerterhöhungsschaltung ferner
umfasst:
i. einen
Zielverarbeitungselementadressenwertbereichsbegrenzungsspeicher zur
Speicherung eines Begrenzungswerts, der sich auf ein oberes Ende des
Adressenwertbereichs bezieht; und
ii. einen Adressenrücksetzspeicher zur Speicherung eines
Adressenrücksetzwerts;
B. die Zielverarbeitungselementadressenwertbereichsbegrenzungsschaltung
umfasst:
i. eine Auswählschaltung zum selektiven Anlegen entweder des
Adressenerhöhungswerts von dem Adressenerhöhungswertspeicher oder des
Adressenrücksetzwerts von dem Adressenrücksetzspeichers an die
Zieladressenwerterhöhungsschaltung in Antwort auf ein
Auswählsteuersignal; und
ii. einen Vergleicher zur Erzeugung des Auswählsteuersignals in Antwort auf
den Zielverarbeitungselementadressenwert von dem
Zielverarbeitungselementadressenwertspeicher und dem Begrenzungswert von dem
Zielverarbeitungselementadressenwertbereichsbegrenzungsspeicher, wobei der
Adressenrücksetzwert und der Begrenzungswert ausgewählt werden, um
zu gewährleisten, dass der erhöhte
Zielverarbeitungselementadressen
wert, der durch die Zieladressenwerterhöhungsschaltung erzeugt wird,
innerhalb des Adressenwertbereichs ist.
27. Rechner, wie in Anspruch 21 definiert, in dem der Zielversetzungswertgenerator
umfasst:
A. einen Zielversetzungsbasiswertgenerator zur Erzeugung eines
Zielbasisversetzungswert während jeder Iteration, wobei der
Zielbasisversetzungswert den Rahmen kennzeichnet, der das in einer
Nachricht während der Iteration zu verwendende Datenelement enthält;
B. einen Zieldeltaversetzungsgenerator zur Erzeugung eines
Zieldeltaversetzungswerts während jeder Iteration, wobei der
Zieldeltaversetzungswert die Position des Datenelements, das in einer
Nachricht verwendet wird, während der Iteration in der Sequenz von
Datenelementen kennzeichnet, die ihren Streifen umfassen; und
C. ein Zielversetzungskombinationswertgenerator zur Erzeugung des
Zielversetzungswerts in Antwort auf den Zielbasisversetzungswert und den
Zieldeltaversetzungswert.
28. Rechner, wie in Anspruch 27 beansprucht, in dem der
Zielversetzungsbasiswertgenerator umfasst:
A. einen Zielbasisversetzungswertspeicher zur Speicherung eines
Zielbasisversetzungswerts, der von dem
Zielversetzungskombinationswertgenerator verwendet wird;
B. eine Zielbasisversetzungswerterhöhungsschaltung zur Erzeugung eines
erhöhten Basisversetzungswerts während jeder Iteration in Antwort auf
den in dem Zielbasisversetzungswertspeicher gespeicherten
Zielbasisversetzungswert und einen Basisversetzungserhöhungswert,
wobei der erhöhte Zielbasisversetzungswert in dem
Zielbasisversetzungswertspeicher als der Zielversetzungsbasiswert zur
Verwendung während der nächsten Iteration gespeichert wird;
C. eine Basisversetzungserhöhungswertschaltung zur Bereitstellung eines
Basisversetzungserhöhungswerts, wobei die
Basisversetzungserhöhungswertschaltung umfasst:
i. einen Versetzungsbasiserhöhungswertspeicher zur Speicherung eines
Basiserhöhungswerts;
ii. einen Speicher für einen erweiterten Basisversetzungserhöhungswert, zur
Speicherung eines erweiterten Erhöhungswerts, der den
Basiserhöhungswert und die Anzahl von Datenelementen in einem Streifen wiedergibt;
und
iii. eine Basisversetzungserhöhungswertauswähleinrichtung zum selektiven
Koppeln des Basiserhöhungswerts oder des erweiterten Erhöhungswerts
als den Basisversetzungserhöhungswert in Antwort auf ein Schlitzsignal;
und
D. eine Schlitzzählschaltung zum Aufrechterhalten eines laufenden Zählwerts
des Datenelements, das in einer Nachricht während einer Iteration in einer
Sequenz von Datenelementen innerhalb eines Rahmens übertragen wird,
und zur Erzeugung des Schlitzzählsignals in Antwort auf den laufenden
Zählwert und die Anzahl von Datenelementen in einem Rahmen.
29. Rechner, wie in Anspruch 28 definiert, in dem der
Zielbasisversetzungswertgenerator des weiteren eine
Zielbasisversetzungsinitialisierungsschaltung zur Freigabe des
Zielbasisversetzungswertspeichers umfasst, um einen
Zielbasisversetzungsanfangswert zu speichern, der mit der Anzahl von
Verarbeitungselementen, die an der Eingabe-/Ausgabeoperation teilnehmen, der
Position des Eingabe-/Ausgabepuffers unter den Eingabe-/Ausgabepuffern, die
an der Eingabe-/Ausgabeoperation teilnehmen, und der Anzahl von
Datenelementen in einem Streifen in Beziehung steht.
30. Rechner, wie in Anspruch 28 definiert, in dem die Schlitzzählschaltung umfasst:
A. einen Schlitzzählwertspeicher zur Speicherung eines Schlitzzählwerts;
B. einen Schlitzzählwerterhöhungsspeicher zur Speicherung eines
Schlitzerhöhungszählwerts; und
C. eine Schlitzzählwerterhöhungsschaltung zur Erzeugung eines erhöhten
Schlitzzählwerts während jeder Iteration in Antwort auf den
Schlitzzählwert, der in dem Schlitzzählwertspeicher gespeichert ist, und
den Schlitzerhöhungszählwert, wobei der erhöhte Schlitzzählwert in dem
Schlitzzählwertspeicher als der Schlitzzählwert gespeichert ist, der bei der
nächsten Iteration zu verwenden ist.
31. Rechner, wie in Anspruch 30 definiert, in dem der in dem
Schlitzerhöhungszählwertspeicher gespeicherte Schlitzerhöhungswert mit der
Anzahl von Verarbeitungselementen und der Anzahl von Eingabe-
/Ausgabepuffern, die an der Eingabe-/Ausgabeoperation teilnehmen, und der
Anzahl von Datenelementen in einem Streifen in Beziehung steht.
32. Rechner, wie in Anspruch 30 definiert, in dem die Schlitzzählwertschaltung des
weiteren eine Schlitzzählwertinitialisierungsschaltung zur Freigabe des
Schlitzzählwertspeichers umfasst, um einen Schlitzanfangszählwert zu speichern,
der zu der Anzahl der Verarbeitungselemente, die an der
Eingabe-/Ausgabeoperation teilnehmen, der Position des Eingabe-/Ausgabepuffers unter den Eingabe-
/Ausgabepuffern, die an der Eingabe-/Ausgabeoperation teilnehmen und der
Anzahl von Datenelementen in einem Streifen in Beziehung steht.
33. Rechner, wie in Anspruch 30 definiert, in dem die Schlitzzählwertschaltung des
weiteren eine Schlitzzählwertbereichsbegrenzungsschaltung zur Begrenzung des
erhöhten Schützzählwerts auf einen Schlitzzählwertbereich umfasst, der der
Anzahl von Datenelementen in einem Rahmen entspricht.
34. Rechner, wie in Anspruch 27 definiert, wobei der Zielversetzungsdeltagenerator
umfasst:
A. einen Zieldeltaversetzungswertspeicher zur Speicherung eines
Zieldeltaversetzungswerts, der von dem
Zielversetzungskombinationswertgenerator verwendet wird;
B. eine Zieldeltaversetzungswerterhöhungsschaltung zur Erzeugung eines
erhöhten Zieldeltaversetzungswerts während jeder Iteration in Antwort auf
den in dem Zieldeltaversetzungswertspeicher gespeicherten
Zieldeltaversetzungswert und einen Deltaversetzungserhöhungswert,
wobei der erhöhte Zieldeltaversetzungswert in dem
Zieldeltaversetzungswertspeicher als der Zieldeltaversetzungswert zur
Verwendung bei der nächsten Iteration gespeichert wird;
C. eine Deltaversetzungserhöhungswertschaltung zur Bereitstellung eines
Deltaversetzungserhöhungswerts, wobei die
Deltaversetzungserhöhungswertschaltung umfasst:
i. einen Deltaversetzungserhöhungswertspeicher zur Speicherung eines
Deltaerhöhungswerts;
ii. einen Speicher für einen verringerten Deltaversetzungserhöhungswert zur
Speicherung eines verringerten Deltaerhöhungswerts, der den
Deltaerhöhungswert und die Anzahl von Datenelementen in einem Streifen
wiedergibt; und
iii. eine Deltaversetzungserhöhungswertauswähleinrichtung zum selektiven
Koppeln des Deltaerhöhungswerts oder des verringerten
Deltaerhöhungswerts als den Basisversetzungserhöhungswert in Antwort auf den
Zieldeltaversetzungswert und die Anzahl von Datenelementen in einem Streifen.
35. Rechner, wie in Anspruch 34 definiert, in dem der
Zieldeltaversetzungswertgenerator des weiteren eine
Zieldeltaversetzungsinitialisierungsschaltung zur Freigabe des
Zieldeltaversetzungswertspeichers umfasst, um einen
Zieldeltaversetzungsanfangswert zu speichern, der mit der Position des Eingabe-
/Ausgabepuffers und der Anzahl von Daten in einem Streifen in Beziehung steht.
36. Rechner, wie in Anspruch 34 definiert, in dem der
Zieldeltaversetzungswertgenerator des weiteren eine
Zieldeltaversetzungswertbereichsbegrenzungsschaltung zur Erzeugung des
Zieladressensteuersignals und zur Begrenzung des erhöhten
Deltaversetzungswerts auf einen Deltaversetzungswertbereich entsprechend der
Anzahl von Datenelementen in einem Streifen umfasst.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/746,038 US5361363A (en) | 1990-10-03 | 1991-08-16 | Input/output system for parallel computer for performing parallel file transfers between selected number of input/output devices and another selected number of processing nodes |
PCT/US1992/006848 WO1993004438A1 (en) | 1991-08-16 | 1992-08-13 | Input/output arrangement for massively parallel computer system |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69231497D1 DE69231497D1 (de) | 2000-11-09 |
DE69231497T2 true DE69231497T2 (de) | 2001-02-08 |
Family
ID=24999241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69231497T Expired - Fee Related DE69231497T2 (de) | 1991-08-16 | 1992-08-13 | Massivparalleles rechnersystem mit eingangs-ausgangsanordnung |
Country Status (7)
Country | Link |
---|---|
US (1) | US5361363A (de) |
EP (1) | EP0601029B1 (de) |
JP (1) | JPH06509894A (de) |
AU (1) | AU674832B2 (de) |
CA (1) | CA2115738A1 (de) |
DE (1) | DE69231497T2 (de) |
WO (1) | WO1993004438A1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102009021136A1 (de) * | 2009-05-13 | 2010-12-16 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Regelvorrichtung |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2770603B2 (ja) * | 1991-03-14 | 1998-07-02 | 三菱電機株式会社 | 並列計算機 |
JPH06208460A (ja) * | 1993-01-11 | 1994-07-26 | Hitachi Ltd | マイクロプログラムメモリ制御方式 |
US5987622A (en) * | 1993-12-10 | 1999-11-16 | Tm Patents, Lp | Parallel computer system including parallel storage subsystem including facility for correction of data in the event of failure of a storage device in parallel storage subsystem |
US5590356A (en) * | 1994-08-23 | 1996-12-31 | Massachusetts Institute Of Technology | Mesh parallel computer architecture apparatus and associated methods |
US5781551A (en) * | 1994-09-15 | 1998-07-14 | Texas Instruments Incorporated | Computer communications system with tree architecture and communications method |
US5587997A (en) * | 1995-02-24 | 1996-12-24 | Hewlett-Packard Company | Method and apparatus for determining when all packets of a message have arrived |
US5745915A (en) * | 1995-03-17 | 1998-04-28 | Unisys Corporation | System for parallel reading and processing of a file |
DE19626287A1 (de) * | 1996-07-01 | 1997-02-13 | Abb Management Ag | Verfahren zum Betrieb eines Antriebssystems und Vorrichtung zur Durchführung des Verfahrens |
JPH10124366A (ja) * | 1996-10-18 | 1998-05-15 | Nec Corp | ファイルデータ格納機構の並列管理方式 |
US5915088A (en) * | 1996-12-05 | 1999-06-22 | Tandem Computers Incorporated | Interprocessor messaging system |
KR100207598B1 (ko) * | 1997-01-27 | 1999-07-15 | 윤종용 | 상호연결망으로서 파이브 채널을 사용한 클러스터시스템 |
US6266732B1 (en) * | 1998-05-29 | 2001-07-24 | 3Com Corporation | Interrupt events chaining |
US6356548B1 (en) | 1998-06-29 | 2002-03-12 | Cisco Technology, Inc. | Pooled receive and transmit queues to access a shared bus in a multi-port switch asic |
US6513108B1 (en) | 1998-06-29 | 2003-01-28 | Cisco Technology, Inc. | Programmable processing engine for efficiently processing transient data |
US6101599A (en) * | 1998-06-29 | 2000-08-08 | Cisco Technology, Inc. | System for context switching between processing elements in a pipeline of processing elements |
US6836838B1 (en) | 1998-06-29 | 2004-12-28 | Cisco Technology, Inc. | Architecture for a processor complex of an arrayed pipelined processing engine |
US6119215A (en) * | 1998-06-29 | 2000-09-12 | Cisco Technology, Inc. | Synchronization and control system for an arrayed processing engine |
US6195739B1 (en) | 1998-06-29 | 2001-02-27 | Cisco Technology, Inc. | Method and apparatus for passing data among processor complex stages of a pipelined processing engine |
US6728839B1 (en) | 1998-10-28 | 2004-04-27 | Cisco Technology, Inc. | Attribute based memory pre-fetching technique |
US6385747B1 (en) | 1998-12-14 | 2002-05-07 | Cisco Technology, Inc. | Testing of replicated components of electronic device |
US6173386B1 (en) | 1998-12-14 | 2001-01-09 | Cisco Technology, Inc. | Parallel processor with debug capability |
US6920562B1 (en) | 1998-12-18 | 2005-07-19 | Cisco Technology, Inc. | Tightly coupled software protocol decode with hardware data encryption |
US6618371B1 (en) * | 1999-06-08 | 2003-09-09 | Cisco Technology, Inc. | Butterfly network with switches set for two node disjoint paths and method for forming the paths |
US6681341B1 (en) | 1999-11-03 | 2004-01-20 | Cisco Technology, Inc. | Processor isolation method for integrated multi-processor systems |
US6529983B1 (en) | 1999-11-03 | 2003-03-04 | Cisco Technology, Inc. | Group and virtual locking mechanism for inter processor synchronization |
US8160863B2 (en) | 2000-03-28 | 2012-04-17 | Ionipas Transfer Company, Llc | System and method for connecting a logic circuit simulation to a network |
US7266490B2 (en) | 2000-12-28 | 2007-09-04 | Robert Marc Zeidman | Apparatus and method for connecting hardware to a circuit simulation |
US6892237B1 (en) | 2000-03-28 | 2005-05-10 | Cisco Technology, Inc. | Method and apparatus for high-speed parsing of network messages |
WO2001082561A1 (en) * | 2000-04-20 | 2001-11-01 | Nokia Corporation | A communication terminal |
US6505269B1 (en) | 2000-05-16 | 2003-01-07 | Cisco Technology, Inc. | Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system |
US6967950B2 (en) * | 2000-08-11 | 2005-11-22 | Texas Instruments Incorporated | Pull transfers and transfer receipt confirmation in a datapipe routing bridge |
US6732253B1 (en) | 2000-11-13 | 2004-05-04 | Chipwrights Design, Inc. | Loop handling for single instruction multiple datapath processor architectures |
US6931518B1 (en) | 2000-11-28 | 2005-08-16 | Chipwrights Design, Inc. | Branching around conditional processing if states of all single instruction multiple datapaths are disabled and the computer program is non-deterministic |
US20070016396A9 (en) * | 2000-12-28 | 2007-01-18 | Zeidman Robert M | Apparatus and method for connecting a hardware emulator to a computer peripheral |
US7302548B1 (en) | 2002-06-18 | 2007-11-27 | Cisco Technology, Inc. | System and method for communicating in a multi-processor environment |
US7493607B2 (en) | 2002-07-09 | 2009-02-17 | Bluerisc Inc. | Statically speculative compilation and execution |
US20060001669A1 (en) * | 2002-12-02 | 2006-01-05 | Sehat Sutardja | Self-reparable semiconductor and method thereof |
US20050114850A1 (en) | 2003-10-29 | 2005-05-26 | Saurabh Chheda | Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control |
US7996671B2 (en) | 2003-11-17 | 2011-08-09 | Bluerisc Inc. | Security of program executables and microprocessors based on compiler-architecture interaction |
US8607209B2 (en) | 2004-02-04 | 2013-12-10 | Bluerisc Inc. | Energy-focused compiler-assisted branch prediction |
ES2291853T3 (es) * | 2004-02-16 | 2008-03-01 | Telefonaktiebolaget Lm Ericsson (Publ) | Gestion de direcciones en entornos basados en ip movil (mobile ip). |
JP3835459B2 (ja) * | 2004-03-09 | 2006-10-18 | セイコーエプソン株式会社 | データ転送制御装置及び電子機器 |
US20070083574A1 (en) * | 2005-10-07 | 2007-04-12 | Oracle International Corporation | Replica database maintenance with parallel log file transfers |
CN100563203C (zh) * | 2005-11-11 | 2009-11-25 | 华为技术有限公司 | 通信网络中组播树叶子节点网元信号传送的方法 |
US20080126766A1 (en) | 2006-11-03 | 2008-05-29 | Saurabh Chheda | Securing microprocessors against information leakage and physical tampering |
JP4913685B2 (ja) * | 2007-07-04 | 2012-04-11 | 株式会社リコー | Simd型マイクロプロセッサおよびsimd型マイクロプロセッサの制御方法 |
JP2009301101A (ja) * | 2008-06-10 | 2009-12-24 | Nec Corp | プロセッサ間通信システム、プロセッサ、プロセッサ間通信方法、および、通信方法 |
US8755515B1 (en) | 2008-09-29 | 2014-06-17 | Wai Wu | Parallel signal processing system and method |
JP5347772B2 (ja) * | 2009-07-01 | 2013-11-20 | 富士通株式会社 | 転送速度設定方法、データ転送装置及び情報処理システム |
US8571834B2 (en) * | 2010-01-08 | 2013-10-29 | International Business Machines Corporation | Opcode counting for performance measurement |
JP5501052B2 (ja) * | 2010-03-24 | 2014-05-21 | キヤノン株式会社 | 通信装置、通信装置の制御方法、プログラム |
US20110314256A1 (en) * | 2010-06-18 | 2011-12-22 | Microsoft Corporation | Data Parallel Programming Model |
US8589867B2 (en) | 2010-06-18 | 2013-11-19 | Microsoft Corporation | Compiler-generated invocation stubs for data parallel programming model |
WO2012101833A1 (ja) * | 2011-01-30 | 2012-08-02 | 富士通株式会社 | 演算装置および演算方法 |
WO2015194133A1 (ja) * | 2014-06-19 | 2015-12-23 | 日本電気株式会社 | 演算装置、演算装置の制御方法、及び、演算装置の制御プログラムが記録された記憶媒体 |
US11502934B2 (en) * | 2018-08-21 | 2022-11-15 | The George Washington Univesity | EZ-pass: an energy performance-efficient power-gating router architecture for scalable on-chip interconnect architecture |
US11314674B2 (en) * | 2020-02-14 | 2022-04-26 | Google Llc | Direct memory access architecture with multi-level multi-striding |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0097351A3 (de) * | 1982-06-21 | 1986-02-26 | Nec Corporation | Wegesucheinheit und Wegesuchnetz zur Bestimmung eines Ausgangsports durch Erkennung eines Teiles eines Eingangspakets |
US4598400A (en) * | 1983-05-31 | 1986-07-01 | Thinking Machines Corporation | Method and apparatus for routing message packets |
US4873626A (en) * | 1986-12-17 | 1989-10-10 | Massachusetts Institute Of Technology | Parallel processing system with processor array having memory system included in system memory |
US4910669A (en) * | 1987-04-03 | 1990-03-20 | At&T Bell Laboratories | Binary tree multiprocessor |
US5111389A (en) * | 1987-10-29 | 1992-05-05 | International Business Machines Corporation | Aperiodic mapping system using power-of-two stride access to interleaved devices |
-
1991
- 1991-08-16 US US07/746,038 patent/US5361363A/en not_active Expired - Lifetime
-
1992
- 1992-08-13 WO PCT/US1992/006848 patent/WO1993004438A1/en active IP Right Grant
- 1992-08-13 DE DE69231497T patent/DE69231497T2/de not_active Expired - Fee Related
- 1992-08-13 JP JP5504468A patent/JPH06509894A/ja active Pending
- 1992-08-13 AU AU24868/92A patent/AU674832B2/en not_active Ceased
- 1992-08-13 CA CA002115738A patent/CA2115738A1/en not_active Abandoned
- 1992-08-13 EP EP92918507A patent/EP0601029B1/de not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102009021136A1 (de) * | 2009-05-13 | 2010-12-16 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Regelvorrichtung |
Also Published As
Publication number | Publication date |
---|---|
WO1993004438A1 (en) | 1993-03-04 |
AU2486892A (en) | 1993-03-16 |
EP0601029A4 (de) | 1995-02-22 |
EP0601029A1 (de) | 1994-06-15 |
AU674832B2 (en) | 1997-01-16 |
DE69231497D1 (de) | 2000-11-09 |
CA2115738A1 (en) | 1993-03-04 |
EP0601029B1 (de) | 2000-10-04 |
US5361363A (en) | 1994-11-01 |
JPH06509894A (ja) | 1994-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69231497T2 (de) | Massivparalleles rechnersystem mit eingangs-ausgangsanordnung | |
DE3751205T2 (de) | Paralleles verarbeitungssystem und verfahren zu dessen anwendung. | |
DE69232431T2 (de) | Vorrichtung zur Lösung von linearen Gleichungssystem | |
DE69130881T2 (de) | Massiv paralleler Rechner mit auf Schlangen basiertem Nachrichtenablieferungssystem | |
DE3049437C2 (de) | Matrixanordnung einer Vielzahl von Verarbeitungselementen | |
DE3787886T2 (de) | Parallelprozessor mit binärer baumstruktur. | |
DE69322538T2 (de) | Methode und Prozessor zur Bearbeitung eines Programmes in Parallelbearbeitung | |
DE2819571C2 (de) | ||
DE3424962C2 (de) | ||
DE3248215C2 (de) | ||
DE3506749C2 (de) | ||
DE69029956T2 (de) | Vorrichtung zur Parallelisierung von Programmen | |
DE69419524T2 (de) | Sperrsynchronisierung für verteilte speicher-massivparallelrechner | |
DE3781694T2 (de) | Virtuelle prozessortechniken in einem feldmultiprozessor. | |
DE2646296C3 (de) | Elektronische assoziative Mehrrechner Schaltungsanordnung mit einem modularen Aufbau | |
DE69622776T2 (de) | Von Multitasking gebrauch machendes Sortieren | |
DE112017000855B4 (de) | Energiesparender zeitlich gemultiplexter neurosynaptischer Kern zum Implementieren neuronaler Netze | |
DE3852115T2 (de) | Simulationsverfahren für Programme. | |
DE69314824T2 (de) | Neuronaler Prozessor mit verteilten synaptischen Zellen | |
DE3850896T2 (de) | Vektorzugriff auf Speicher. | |
DE2145120A1 (de) | Digitales Datenverarbeitungsgerat | |
DE68927075T2 (de) | Verfahren und System zum Durchführen von Argumentations- aufgaben unter Verwendung von Lehrsätzen mit Hilfe von parallel betriebenen Prozessoren | |
DE3686828T2 (de) | Hochleistungsparalleler vektorprozessor mit modifizierter register/elementprozessor konfiguration. | |
DE3400723C2 (de) | ||
DE102019126719A1 (de) | Energieeffiziente Speichersysteme und Verfahren |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |