DE602004009324T2 - Integrierte datenverarbeitungsschaltung mit mehreren programmierbaren prozessoren - Google Patents

Integrierte datenverarbeitungsschaltung mit mehreren programmierbaren prozessoren Download PDF

Info

Publication number
DE602004009324T2
DE602004009324T2 DE602004009324T DE602004009324T DE602004009324T2 DE 602004009324 T2 DE602004009324 T2 DE 602004009324T2 DE 602004009324 T DE602004009324 T DE 602004009324T DE 602004009324 T DE602004009324 T DE 602004009324T DE 602004009324 T2 DE602004009324 T2 DE 602004009324T2
Authority
DE
Germany
Prior art keywords
router
processors
circuits
address
message
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 - Lifetime
Application number
DE602004009324T
Other languages
English (en)
Other versions
DE602004009324D1 (de
Inventor
Menno. M. Lindwer
Edwin J. Van Dalen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of DE602004009324D1 publication Critical patent/DE602004009324D1/de
Application granted granted Critical
Publication of DE602004009324T2 publication Critical patent/DE602004009324T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8023Two dimensional arrays, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

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)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Description

  • Die Erfindung betrifft eine integrierte Datenverarbeitungsschaltung mit mehreren programmierbaren Prozessoren, die in einer zweidimensionalen Matrix angeordnet sind.
  • Anordnungen von parallelen Prozessoren sind auf diesem Gebiet bekannt. Potentiell vereinfachen derartige Anordnungen die parallele Hochgeschwindigkeitsausführung von Verarbeitungsaufgaben. In der Praxis hat sich gezeigt, dass die Geschwindigkeit derartiger Anordnungen von der Notwendigkeit der Kommunikation zwischen den Prozessoren abhängt. Verschiedene Kommunikationsarchitekturen wurden vorgeschlagen.
  • DE 3812823 beschreibt ein Netzwerk von Transputern. Ein Transputer (ursprünglich von Inmos hergestellt) enthält einen Prozessor und üblicherweise vier Kommunikationskanäle, über welche der Prozessor mit vier Nachbarn in einer Anordnung von Prozessoren verbindbar ist. Die Kommunikation zwischen den Prozessoren verläuft durch die Kanäle. Wenn eine Nachricht zwischen zwei Prozessoren übertragen werden soll, die nicht unmittelbare Nachbarn in der Anordnung sind, läuft die Nachricht über zwischen diesen befindliche Computer. Die Kanäle unterstützen auch allgemeine (für alle Transputer bestimmte) Nachrichten. Transputer können allgemeine Nachrichten, wenn sie diese zuerst empfangen, an sämtliche ihrer Nachbarn weiterleiten.
  • In der Praxis hat sich die Verwendung von Zwischen-Transputern für die Kommunikation zwischen voneinander entfernten Transputern als eine zu große Last herausgestellt. Daher beschreibt DE 3812823 die Verwendung von Kommunikationsprozessoren zusätzlich zu den Transputern, um die Nachrichtenübertragung zu bewältigen.
  • Als weiteres Beispiel offenbart der Fujitsu AP1 000 Parallel-Computer mehrere Prozessoren, die Teil von Zellen sind, welche in einer Matrix organisiert sind (verschiedene Zellen sind auf verschiedenen Platinen enthalten). Dieser Parallel-Computer verwendet mehrere Kommunikationsnetzwerke, einschließlich eines sogenannten T-Netzes zur Kommunikation zwischen den Zellen und eines B-Netzes für die allgemeine Kommunikation eines Hosts mit den Zellen. Nahe dem Prozessor weist jede Zelle eine Routersteuerung auf, wobei das T-Netz jede der Routersteuerungen mit den Routersteuerungen von vier benachbarten Zellen verbindet. Die Routersteuerungen sind in der Lage, Nachrichten zwischen Prozessoren weiterzuleiten. Das B-Netz umfasst eine Anzahl von Bussen, von denen jeder mit einer Gruppe von Prozessoren und einer Ringkommunikationsstruktur zum Kommunizieren mit den Bussen verbunden ist. Der Hostcomputer ist mit der Ringstruktur verbunden.
  • Die Veröffentlichung mit dem Titel "High throughput switch-based interconnect for future SoC" von Partha Pratim Panda et al. schlägt die Verwendung eines netzwerk-zentrierten Ansatzes vor, um Intellectual-Property-Blöcke (IP) in einem komplexen System auf Chips zu integrieren. Bei der Lösung werden die IP-Blöcke nach einer "Butterfly Fat Tree"-Architektur angeordnet, wobei die IP-Blöcke in den Blättern und die Schalter an den Spitzen angeordnet sind. Dem Durchsatzverringerungsproblem wird durch das Einbeziehen des Konzepts der virtuellen Kanäle in die Schalter des Netzwerks begegnet.
  • Die Veröffentlichung mit dem Titel "Switch-based interconnect architecture for future systems an chip", ebenfalls von Partha Pratim Panda, beschreibt ein Verfahren zum Implementieren von Multicasting in einem solchen baum-basierten On-Chip-Netzwerk.
  • Angesichts der potentiell hohen Verarbeitungsgeschwindigkeit ist es vielversprechend, Prozessoranordnungen in anwendungsspezifischen integrierten Schaltungen für zahlreiche verschiedene Anwendungen einzusetzen. Um derartige verschiedene Anwendungen zu unterstützen, ist es wünschenswert, Design Libraries zur automatisierten Erstellung von Schaltungsbeschreibungen von Prozessoranordnungen beliebiger Größe bereitzustellen. Jedoch stellt das Design der Kommunikationsstruktur einen designmäßigen Engpass dar. Die bekannten Kommunikationsstrukturen sind nicht einfach zu skalieren. Das heißt, sie sind, wenn überhaupt, nur für Anordnungen mit einer Größe in einem bestimmten Bereich optimal. Die Kommunikationslatenz nimmt bei einer Vergrößerung der Anordnung zu. Das bedeutet, dass die Kommunikationsstruktur für optimale Ergebnisse in Abhängigkeit von der Größe der Anordnung neu entworfen werden müsste. Dies macht aus Libraries erzeugte Prozessoranordnungen entweder ineffizient oder schwer zu entwerfen.
  • Unter anderem ist es die Aufgabe der Erfindung, effiziente Prozessoranordnungen zu schaffen, welche eine skalierbare Kommunikationsstruktur aufweisen.
  • Es ist unter anderem eine Aufgabe der Erfindung, einen Designgenerator zu schaffen, um die Erzeugung von Schaltungsentwürfen für effiziente Prozessoranordnungen und deren Kommunikationsstruktur zu automatisieren.
  • Die Erfindung schafft eine integrierte Datenverarbeitungsschaltung nach Anspruch 1. Erfindungsgemäß werden mindestens zwei Kommunikationsstrukturen für die Kommunikation zwischen Prozessoren in einer Anordnung in einer integrierten Schaltung verwendet. Eine operan den-basierte Kommunikation mit dem nächsten Nachbarn wird zwischen den Prozessoren verwendet, so dass die Prozessoren Operanden sehr effizient an ihre Nachbarn weiterleiten können, ohne auch Adressen weiterleiten zu müssen. Darüber hinaus wird ein als Baum strukturiertes Kommunikationsnetzwerk verwendet, das Routerschaltungen zum Weiterleiten von Nachrichten mit Adressen von einer Wurzel-Routerschaltung an die adressierten Prozessoren aufweist. Jede Routerschaltung wählt einen Teil des durch den Baum führenden Weges zu den Prozessoren. Somit bestehen für eine Anordnung ausreichender Größe mindestens zwei Ebenen von Routerschaltungen in dem Baum, wobei die Router auf jeder Ebene beispielsweise einen anderen Abschnitt der Adresse der Nachricht nehmen, um zu entscheiden, an welche Routerschaltungen in der nächsten Ebene des Baums die Nachricht geleitet wird. Somit kann die Matrix einfach skaliert werden, indem die Anzahl der Ebenen der Routerschaltungen in der Baumstruktur variiert wird. Vorzugsweise haben sämtliche Routerschaltungen auf allen Ebenen des Baums die gleiche vorbestimmte Anzahl von Ausgängen an die Router oder Prozessoren auf der nächsten Ebene des Baums. Dies vereinfacht das automatische Entwerfen weiter.
  • Bei einem Ausführungsbeispiel ist der Baum ein Quadtree. Bei einem typischen Quadtree handelt es sich bei der Matrix der Prozessoren um eine quadratische Matrix von Reihen und Spalten, in der die Anzahl der Reihen, wie auch die Anzahl der Spalten der gleichen Potenz von zwei entspricht. Auf der untersten Ebene des Baums ist die Matrix in eine Anordnung von Quadraten unterteilt, die sich jeweils über zwei Reihen und Spalten erstreckt, und die Routerschaltungen auf der untersten Ebene weisen jeweils Verbindungen mit den vier Prozessoren in einem jeweiligen Quadrat auf. Auf einer nächsthöheren Ebene ist die Anordnung der Quadrate in aus 2×2 Quadraten bestehende höherrangige Quadrate unterteilt, wobei die Routerschaltungen dieser nächsthöheren Ebene jeweils Verbindungen mit den vier Routerschaltungen für das Quadrat aufweisen, und so weiter. bei einem weiteren Ausführungsbeispiel wird die Baumstruktur ferner verwendet, um Nachrichten zwischen Prozessoren aus der Anordnung zu übertragen. In diesem Fall läuft eine Nachricht zuerst von einem Prozessor in Richtung der Wurzel-Routerschaltung des Baums, bis sie einen Router erreicht, der sowohl den Quellen-Prozessor und den Ziel-Prozessor abdeckt, und anschließend zurück nach unten zum Ziel-Prozessor. Bei weiteren Ausführungsbeispielen sind vorzugsweise Arbitrierschaltungen für jede Routerschaltung vorgesehen, um den Fall behandeln zu können, dass eine Nachricht von der Wurzel-Routerschaltung mit einer Nachricht von einem Prozessor kollidiert und/oder Nachrichten von mehreren Prozessoren miteinander kollidieren.
  • Diese und andere Aufgaben und vorteilhafte Aspekte der Erfindung werden in der Beschreibung der nachfolgenden Figuren dargelegt.
  • 1 zeigt eine Anordnung von Prozessoren.
  • 2 zeigt eine Baumstruktur.
  • 3 zeigt einen Prozessor.
  • 4 zeigt eine Routerschaltung.
  • 5 zeigt einen Nachrichtenteil einer weiteren Routerschaltung.
  • 6 zeigt einen Handshake-Teil einer weiteren Routerschaltung.
  • 1 zeigt eine Schaltung mit einem Hostcomputer 10, einer Anordnung von Prozessoren 12 (von denen aus Gründen der Deutlichkeit nur einer mit dem Bezugszeichen versehen ist) und Routerschaltungen 16, 18, 19. Die Prozessoren sind über Nächster-Nachbar-Verbindungen 14 (von denen aus Gründen der Deutlichkeit nur eine mit dem Bezugs zeichen versehen ist) verbunden. Der Hostcomputer 10 ist mit den Prozessoren 12 über Routerschaltungen 16, 18, 19 in einer Baumstruktur verbunden.
  • 2 zeigt eine Organisationsdarstellung der Baumstruktur (Nächster-Nachbar-Verbindungen 14 sind in dieser Figur nicht dargestellt). Die Baumstruktur weist mehrere Ebenen von Routerschaltungen 16, 18, 19 auf. Der Hostcomputer 10 ist mit einer Wurzel-Routerschaltung 19 verbunden, die wiederum mit vier nächstniederrangigen Routerschaltungen 18 verbunden ist, welche wiederum jeweils mit vier nächstniederrangigen Routerschaltungen 16 verbunden sind (von denen aus Gründen der Deutlichkeit nur eine mit dem Bezugszeichen versehen ist), welche ihrerseits jeweils mit vier Prozessoren 12 verbunden sind, welche die Blätter auf der untersten Ebene der Baumstruktur bilden.
  • 3 zeigt ein Ausführungsbeispiel eines Prozessors 12. Der Prozessor enthält eine Verarbeitungsschaltung 20 (die ein Funktionselement wie eine arithmetische Logikeinheit, einen Befehlsspeicher, einen Programmzähler etc. aufweisen kann), eine Registerdatei 22, einen Speicher 24, eine Ausgangseinheit 26 und eine Anzahl von Eingangseinheiten 28a–d. Die Verarbeitungsschaltung 20 weist Operandenleseeingänge und einen Ergebnisausgang auf, der mit der Registerdatei 22 gekoppelt ist. Die Eingänge der Eingangseinheiten 28a–d dienen dem Empfang von Operanden von (nicht dargestellten) benachbarten Prozessoren und sind mit der Registerdatei 22 verbunden, so dass die Verarbeitungsschaltung 20 Operanden aus den Eingangseinheiten 28a–d lesen kann. Der Ergebnisausgang der Verarbeitungsschaltung 20 ist zusammen mit einem Ausgangswahlausgang 21 mit der Ausgangseinheit 26 gekoppelt. Die Ausgänge der Ausgangseinheit 26 dienen der Ausgabe von Operanden an jeweilige (nicht dargestellte) benachbarte Prozessoren. Der Speicher 24 ist mit der Verarbeitungsschaltung 20 verbunden, so dass die Verarbei tungsschaltung 20 den Speicher 24 adressieren kann, um Daten in den Speicher 24 zu schreiben oder aus diesem zu lesen. Der Speicher 24 hat einen Eingang und einen Ausgang 25 zur Verbindung mit einer der (nicht dargestellten) Routerschaltungen.
  • Im Betrieb führt der Prozessor 12 ein Befehlsprogramm aus. Der verfügbare Befehlssatz umfasst einen Befehl zum Empfangen eines Operanden von einem ausgewählten benachbarten Prozessor 12 von den Eingangseinheiten 28a–d. Der Befehlssatz umfasst ferner zur Ausgabe eines Befehls an Operanden an einen gewählten benachbarten Prozessor 12 über die Ausgangseinheit 26. Ein Beispiel für einen derartigen Befehl ist "LORD A, B", wobei A eine Registeradresse des weiterzuleitenden Operanden und B eine virtuelle Registeradresse ist, die den Nachbarn identifiziert, an welchen der von dem Register A kommende Operand weitergeleitet wird. Ein derartiger Befehl LORD kann mit einem herkömmlichen Hol-, Decodier-, Ausführ- und Schreibbefehlszyklus ausgeführt werden. Es ist ersichtlich, dass diese Art der Kommunikation vollständig lokal ist: das Schreiben in einen benachbarten Prozessor 12 beeinflusst keinen anderen Prozessor 12.
  • Die Routerschaltungen 16, 18, 19 dienen der Übertragung von Nachrichten von dem Hostcomputer 10 an Prozessoren 12. Eine typische Nachricht enthält eine Adresse A des Prozessors 12, für den die Nachricht bestimmt ist, gefolgt von Nutzdaten der Nachricht. Die Adresse enthält vorzugsweise so viele Bits wie zum Identifizieren einzelner Prozessoren 12 erforderlich. Im Falle einer Anordnung von 54 Prozessoren 12 weist die Adresse vorzugsweise sechs Bits auf.
  • 4 zeigt ein Beispiel für eine Routerschaltung. Die Routerschaltung weist eine Demultiplexerschaltung 40 und ein Zwei-Bit-Register 42 zum Speichern der ersten beiden Bits der Adresse auf. Das Zwei-Bit-Register 42 steuert den Demultiplexer 40, der eine empfangene Nachricht an einen seiner Ausgänge leitet, der durch die beiden Bits gewählt ist.
  • Im Betrieb sendet der Hostcomputer 10 die Nachricht an die Wurzel-Routerschaltung 19. Die Wurzel-Routerschaltung 19 extrahiert die ersten beiden Bits aus der Adresse A der Nachricht und verwendet diese beiden Bits zur Wahl einer nächstrangigen Routerschaltung 18, an welche die Wurzel-Routerschaltung 19 selektiv die Nachricht überträgt, vorzugsweise ohne die beiden ersten Bits der Adresse A.
  • Die gewählte nächstrangige Routerschaltung 18 empfängt die Nachricht und extrahiert das dritte und vierte Bit der ursprünglichen Adresse A der Nachricht (die ersten beiden empfangenen Bits, wenn die Wurzel-Routerschaltung 19 die ursprünglichen ersten beiden Bits der Adresse A unterdrückt hat). Die gewählte nächstrangige Routerschaltung 18 verwendet diese beiden Bits zur Steuerung der Wahl einer Routerschaltung 16 der nächsten Ebene, an welche die nächstrangige Routerschaltung 18 selektiv die Nachricht überträgt, vorzugsweise ohne die beiden ersten Bits der Adresse A (die ursprünglich das dritte und vierte Bit waren).
  • Auf ähnliche Weise extrahiert die niederrangigste Routerschaltung 16 das fünfte und das sechste Bit aus der ursprünglichen Adresse und verwendet diese Bits zum Steuern der Wahl eines der Prozessoren 12 und überträgt die Nachricht an den gewählten Prozessor 12, wo die Nachricht verwendet wird, um Daten in den Speicher 24 zu schreiben (beispielsweise in einen Standardpufferbereich oder an eine Stelle, die durch eine weitere Adresse in der Nachricht adressiert ist).
  • Es ist ersichtlich, dass die Verwendung der ersten beiden Bits der Adresse A an jeder Routerschaltung 16, 18, 19 und das Übertragen der verbleibenden Bits lediglich ein vorteilhaftes Ausführungsbeispiel dar stellt, das es ermöglicht, gleichförmige Routerschaltungen 16, 18, 19 bei einer minimalen Notwendigkeit zum Puffern von Informationen zu verwenden. Ohne von der Erfindung abzuweichen, können die Routerschaltungen 16, 18, 19 andere Untergruppen der Bits der Adresse zur Steuerung des Weiterleitens verwenden. Vorzugsweise verwenden sämtliche Routerschaltungen 16, 18, 19 auf einer bestimmten Ebene die gleichen Bits der Adresse, jedoch ist selbst dies nicht erforderlich, da jeder Prozessor 12 erreicht werden kann, solange der Hostcomputer 10 die geeignete Adresse liefert. Anstatt die verwendeten Bits zu entfernen, können sämtliche Bits übertragen werden, wobei in diesem Fall Router auf verschiedenen Ebenen programmiert werden können, um verschiedene Bits der Adresse zu verwenden, oder die Router können die Bits umordnen (beispielsweise die Bits verschieben und Bits, die an einem Ende der Nachricht herausgeschoben wurden am anderen Ende wieder hineinschieben).
  • Bei einem weiteren Ausführungsbeispiel, das Multicasting unterstützt, ist die Nachricht mit Maskenbits M versehen, wobei jeweilige Maskenbits für jedes Adressbit oder für Adressbitpaare oder größere Gruppen von Adressbits vorgesehen sind. Wenn ein Maskenbit gesetzt ist, behandelt die Routerschaltung 16, 18, 19 die entsprechenden Adressbits als "Don't care" und leitet die Nachricht an alle nächstniedrigeren Routerschaltungen oder Prozessoren 12 weiter, die durch verschiedene Werte des Adressbits adressiert werden. Durch das Vorsehen von drei Maskenbits kann somit beispielsweise die Routerschaltung 16, 18, 19 auf jeder Ebene zum Senden an entweder eine ausgewählte niederrangige Routerschaltung oder Prozessor, oder an sämtliche derselben eingestellt werden. Mit den Maskenbits 011 sendet beispielsweise die Wurzel-Routerschaltung 19 die Nachricht an eine ausgewählte Routerschaltung, jedoch übertragen sämtliche niederrangigen Routerschaltungen die Nachricht an sämtliche niederrangigen Schaltungen, so dass sechzehn Prozessoren adressiert werden.
  • Es sei darauf hingewiesen, dass die in den 1 und 2 dargestellte systematische Architektur lediglich als Beispiel angeführt ist. Es ist nicht erforderlich, dass sämtliche Prozessoren 12 mit der gleichen Ebene verbunden sind; ein Prozessor kann anstelle einer jeden Routerschaltung mit der Baumstruktur verbunden sein. Dies kann beispielsweise erfolgen, wenn die Anzahl der Prozessoren keine Potenz von zwei ist. Im Prinzip können Prozessoren mit mehr als einer Routerschaltung verbunden sein (wobei der Prozessor mehrere Eingänge aufweist). Somit kann der Prozessor mehr als eine Adresse haben. Anstelle von Eins-zu-vier-Routerschaltungen können andere Verzweigungsverhältnisse verwendet werden (vorzugsweise Potenzen von zwei, wie eins-zu-zwei oder eins-zu-acht).
  • Anstatt 2×2 Blöcke von Prozessoren mit Routerschaltungen zu verbinden, können davon verschieden geformte oder bemessene andere Bereiche verwendet werden.
  • Bei einem weiteren Ausführungsbeispiel sind die Prozessoren 12 so ausgebildet, dass sie weiteren Nachrichten aufwärts durch die Routerschaltungen senden. Eine weitere Nachricht von einem Prozessor 12 weist eine Adresse auf, welche einen anderen Prozessor 12 und/oder Hostcomputer 10 wählen kann. Grundlegend weist die Routerschaltung nach diesem Ausführungsbeispiel zwei Teile auf, einen zur abwärts gerichteten Übertragung von Nachrichten (in Richtung der Prozessoren 12) und einen zur aufwärts gerichteten Übertragung (von den Prozessoren 12 weg). Darüber hinaus ist eine Kreuzverbindung zum Leiten weiterer Nachrichten vom aufwärts gerichteten Teil zum abwärts gerichteten Teil vorgesehen. Der abwärts gerichtete Teil ist im wesentlichen ähnlich dem im Vorhergehenden beschriebenen. Der aufwärts gerichtete Teil der Routerschaltung ist dem abwärts gerichteten Teil ähnlich, mit der Ausnahme, dass anstelle der Demultiplexer 40 zum Verteilen der Nachrichten an niederrangige Routerschaltungen oder Prozessoren Multiplexer verwen det werden, um weitere Nachrichten von ausgewählten niederrangigen Routerschaltungen oder Prozessoren weiterzuleiten. Die Kreuzverbindung ist derart ausgebildet, dass sie prüft, ob eine aufwärts geleitete weitere Nachricht einen Prozessor adressiert, der von den Routerschaltungen "bedient" wird (d. h. der durch Weiterleiten einer Nachricht nach unten erreicht werden kann). Trifft dies zu, so wird die weitere Nachricht dem abwärts gerichteten Teil zugeleitet und wie zuvor beschrieben übertragen. Für die weiteren Nachrichten kann dieselbe Art von Adressen verwendet werden, wie für abwärts gerichtete Nachrichten. Bei einem Ausführungsbeispiel jedoch werden die Prozessoren betreffende Adressen verwendet. Wenn beispielsweise die Adresse der Quelle Bits (a0, a1, a2, ...) enthält und die Adresse des Ziels Bits (b0, b1, b2, ...) enthält, so ist die relative Adresse C der weiteren Nachricht (a0 + b0, a1 + b1, a2 + b2, ...), wobei "+" in diesem Fall das exklusive ODER bezeichnet. In diesem Fall ist es möglich, in der Routerschaltung zu erkennen, ob die Nachricht von der aufwärts gerichteten zur abwärts gerichteten Übertragung wechseln soll, indem geprüft wird, ob in der relativen Adresse C sämtliche Adressbits zur Verwendung durch eine höherrangige Routerschaltung Null sind. Leitet die Routerschaltung die weitere Nachricht aufwärts, verändert sie die Adressbits, welche der Wahl der Routerschaltung oder des Prozessors 12 entsprechen, von welchem aus die weitere Nachricht empfangen wird.
  • Wenn beispielsweise ein Prozessor 12 mit der Adresse 010111 eine weitere Nachricht an einen Prozessor mit der Adresse 011001 sendet, so ist die relative Adresse C 001110. Beim Empfang der Adresse C stellt die niederrangige Routerschaltung 16 fest, dass die ersten vier Bits von C nicht Null sind, und überträgt daher die weitere Nachricht nach Modifizierung der letzten beiden Bits an die Routerschaltung 18 der nächsthöheren Ebene, so dass die Adresse C' = 001101 wird. Die Routerschaltung 18 der nächsthöheren Ebene stellt fest, dass die ersten beiden Bits von C Null sind und sendet die weitere Nachricht daher quer zur ab wärts gerichteten Übertragung, nachdem das mittlere Paar der Bits zu C'' = 001001 modifiziert wurde. Die letzten vier Bits dieser Adresse werden nun verwendet, um die abwärts gerichtete Weiterleitung zu steuern. Auf diese Weise muss der Router nur an die Ebene angepasst werden, in der er verwendet wird, jedoch nicht an den Teil der Matrix, den er bedient.
  • Vorzugsweise wird ein Arbitriermechanismus verwendet, um zu gewährleisten, dass Nachrichten nicht kollidieren. Im Prinzip ist dies nicht erforderlich, wenn die Programme der Prozessoren und der Hostprozessor derart ausgebildet sind, dass keine kollidierenden Nachrichten auftreten können. In diesem Fall kann jede Nachricht weitergeleitet werden, sobald sie erkannt wurde (beispielsweise durch Übertragen des logischen ODER von Nachrichtensignalen von verschiedenen Quellen, und das Umwandeln der Nachrichtensignale zu logisch Null, wenn keine Nachricht vorliegt.)
  • Jedoch werden vorzugsweise zumindest Kollisionen zwischen Nachrichten vom Hostcomputer 10 und von den Prozessoren 12 erkannt und arbitriert, beispielsweise indem Nachrichten des Hostcomputers 10 Vorrang gegeben wird. Dies ermöglicht es, Nachrichten vom Hostcomputer 10 unabhängig von Programmen zu senden, die in den Prozessoren laufen. Bei einem weiteren Ausführungsbeispiel werden auch Kollisionen von Nachrichten, die von Prozessoren 12 kommen, arbitriert. Dies ermöglicht es, jede Kombination von Programmen ablaufen zu lassen. Die Arbitrierschaltungen sind parallel zu den aufwärts und den abwärts gerichteten Pfaden und der Kreuzverbindung angeordnet. Jeglicher Arbitriermechanismus kann verwendet werden, so wie beispielsweise ein herkömmlicher Anforderungs- und Bestätigungs-Handshake. Bei diesem Ausführungsbeispiel bestätigen der Prozessor 12 und der Hostcomputer 10 ein Anforderungssignal, wenn eine Nachricht gesendet werden soll, wobei Arbiter (a) wählen, welche Anforderungen beantwortet werden sol len, (b) die Anforderung in Richtung des Ziels der Nachricht übertragen, (c) eine Bestätigung der Anforderung von dem Ziel erhalten, und (d) die Bestätigung zurück an die Quelle senden. Selbstverständlich können andere bekannte Arten von Arbitrierstrukturen verwendet werden, wie Daisy-Chain-Arbitrierung, oder die in dem 12C-Bus verwendete, etc.
  • Die 5 und 6 zeigen Teile eines Ausführungsbeispiels einer Routerschaltung, die Anforderungs- und Bestätigungs-Handshakes verwendet. Im Grunde zeigt die 5 den Nachrichtenteil der Routerschaltung und 6 zeigt den Handshake-Teil. Beide Teile haben einen ähnlichen Aufbau mit zwei parallelen Pfaden, einem von oben nach unten und einem von unten nach oben, sowie eine Querverbindung zwischen den beiden Pfaden.
  • 5 umfasst die in der 4 gezeigten Bestandteile: den Demultiplexer 40 und das Zwei-Bit-Register 42. Das Auswählsignal des Zwei-Bit-Registers 42 ist mit A gekennzeichnet. Darüber hinaus zeigt 5 einen ersten Multiplexer 50 zum Multiplexen von "von unten", von niederrangigen Routerschaltungen oder Prozessoren kommenden Nachrichten, Ein Adressendetektor 52 erkennt, ob die Adresse einer von unten kommenden Nachricht einen Prozessor in dem von der Routerschaltung bedienten Bereich adressiert, und erzeugt, wenn dem so ist, ein Signal C, um ein Überwechseln der Nachricht zu bewirken. Ein zweiter Demultiplexer 54 ist zum Leiten von von unten kommenden Nachrichten entweder an einen zweiten Multiplexer 56 oder eine höherrangige Routerschaltung unter Steuerung durch ein Signal D vorgesehen. Der zweite Multiplexer 56 multiplext "von oben", von einer höherrangigen Routerschaltung oder einem Zentralprozessor empfangene Nachrichten an den Demultiplexer 40 und das Zwei-Bit-Register 42.
  • 6 zeigt den Handshake-Teil der Routerschaltung. Dieser Teil enthält eine erste Handshake-Multiplexierschaltung 60, die Handshake- Interfaces mit "darunter liegenden" Prozessoren und Routerschaltungen aufweist. Die Handshake-Multiplexierschaltung 60 arbitriert nötigenfalls zwischen ausstehenden Anforderungen, bestätigt die gewinnende Anfrage, erzeugt eine Folge-Anfrage und gibt auf der Signalleitung B an, welche Anforderung gewonnen hat. Die Signalleitung B steuert den Eingang, von welchem aus die Nachricht von dem ersten Multiplexer 50 der 5 weitergeleitet wird. Ein Anforderungsdemultiplexer 64 wird durch das Überwechselwählsignal C der 5 gesteuert und leitet die Folge-Anfrage entweder an eine "höhere" Routerschaltung oder lässt sie zu einer zweiten Handshake-Demultiplexierschaltung 66 überwechseln (es ist ersichtlich, dass die Folge-Anfrage mit einer Verzögerung erzeugt werden kann, um die Nachricht für ein Erzeugen des Signals C analysieren zu können).
  • Die zweite Handshake-Demultiplexierschaltung 66 arbitriert nötigenfalls zwischen ausstehenden Überwechselanforderungen und von oben kommenden Anforderungen, bestätigt die gewinnende Anforderung, erzeugt eine weiter Folge-Anforderung und gibt auf der Signalleitung D an, welche Anforderung gewonnen hat. Das Signal D steuert den des zweiten Multiplexer 56. Das weitere Folge-Anforderungssignal wird an einen zweiten Handshake-Demultiplexer 68 geleitet, welcher die weitere Folge-Anforderung an den Handshake-Eingang für "von oben" kommende Handshakes einer ausgewählten Routerschaltung, welche durch das Signal A des Zwei-Bit-Registers 42 gewählt ist (auch hier kann die weitere Folge-Anforderung mit einer Verzögerung erzeugt werden, um das Erzeugen des Signals C aus der Nachricht zu ermöglichen). Der Multiplexer 64 und die Demultiplexer 60, 68 leiten Anforderungs- und Bestätigungssignale in zueinander entgegengesetzte Richtungen über die gewählten Handshake-Verbindungen. Diese Handshake-Schaltungen 60, 66, 68 sind an sich bekannt.
  • Zu diesem Zeitpunkt ist ersichtlich, dass die Erfindung eine in hohem Maße regelmäßige Struktur vorsieht, die während der automatischen Erstellung des Layouts einer integrierten Schaltung leicht skalierbar ist. In der Designphase wird die Größe der Prozessormatrix anwendungsabhängig gewählt. Die Prozessoren werden platziert und benachbarte Prozessoren werden verbunden. Die Anzahl der Ebenen in der Baumstruktur wird in Abhängigkeit von der Anzahl der Prozessoren gewählt (optional in Abhängigkeit von der maximalen Breite und Länge der Matrix). Routerschaltungen werden für jede Ebene hinzugefügt und mit Routerschaltungen in tieferen und höheren Ebenen oder mit den Prozessoren 12 oder dem Hostcomputer 10 verbunden. Wenn die Routerschaltungen die Adressbits entfernen oder umordnen, so dass die relevanten Bits sich stets an der gleichen Position in der Nachricht befinden, muss die Routerschaltung nicht einmal entsprechend der Ebene angepasst werden, in der sie verwendet wird.

Claims (11)

  1. Integrierte Datenverarbeitungsschaltung, die Folgendes umfasst: – programmierbare Prozessoren (12), die in einer zweidimensionalen Matrix angeordnet sind, wobei jeder Prozessor (12) private Operandenübertragungsverbindungen zu seinen benachbarten Prozessoren (12) in der Matrix hat; – eine Kommunikationsstruktur mit Routerschaltungen (16, 18, 19), die hierarchisch in einer Baumstruktur miteinander und mit den Prozessoren verbunden sind, wobei die Prozessoren (12) Blätterknoten der Baumstruktur bilden, wobei die Routerschaltungen (16, 18, 19) dafür eingerichtet sind, eine Nachricht mit einer Adresse selektiv über einen Pfad durch die Baumstruktur von einer Wurzel-Routerschaltung (19) an einen adressierten Prozessor (12) weiterzuleiten, wobei die Routerschaltungen (16, 18, 19) jeweils einen Teil des Pfads unter der Steuerung der Adresse auswählen, wobei die Adresse eine Vielzahl von Bits enthält und die Nachricht mit Maskenbits bereitgestellt wird, die für jedes Adressbit, für Adressbit-Paare bzw. für größere Adressbit-Gruppen vorgesehen sind, und wobei die Routerschaltungen (16, 18, 19) dafür eingerichtet sind, die Nachricht, wenn ein Maskenbit gesetzt ist, an alle nächstniedrigeren Routerschaltungen oder Prozessoren (12) weiterzuleiten, die durch verschiedene Werte des entsprechenden Adressbits adressiert werden.
  2. Integrierte Datenverarbeitungsschaltung nach Anspruch 1, wobei die Prozessoren (12) jeweils einen Befehl zum Übertragen eines Operanden des genannten Befehls über eine ausgewählte der privaten Operandenübertragungsverbindungen unterstützen.
  3. Datenverarbeitungsschaltung nach Anspruch 1, wobei die Adresse eine Vielzahl von Bits enthält, wobei jede Routerschaltung (16, 18, 19) dafür eingerichtet ist, einen Abschnitt der Bits auszuwählen, wobei die Routerschaltungen (16, 18, 19) die Weiterleitung an direkt nachfolgende Routerschaltungen (16, 18, 19) und/oder Prozessoren in der Baumstruktur abhängig nur von den Bits in dem Abschnitt steuern, und wobei nachfolgende Routerschaltungen (16, 18, 19) auf jedem Pfad von der Wurzel-Routerschaltung (19) zu einem betreffenden Prozessor jeweils einen unterschiedlichen Abschnitt auswählen.
  4. Datenverarbeitungsschaltung nach Anspruch 1, wobei jede spezielle Routerschaltung (16, 18, 19) zu einer Region in der Matrix gehört, die diejenigen der Prozessoren (12) enthält, die über die Baumstruktur direkt oder indirekt mit der speziellen Routerschaltung (16, 18, 19) verbunden sind, wobei eine hierarchisch höhere Region, die zu einer beliebigen hierarchisch höheren Routerschaltung (18, 19) gehört, in räumlich separate Folgeregionen von hierarchisch niedrigeren Routerschaltungen (16, 18) unterteilt ist, die direkt mit der hierarchisch höheren Routerschaltung (18. 91) verbunden sind.
  5. Datenverarbeitungsschaltung nach Anspruch 4, wobei die Baumstruktur einen Quadtree bildet, wobei jede Routerschaltung mit vier hierarchisch niedrigeren Routerschaltungen (16, 18) und/oder Prozessoren (12) verbunden ist und wobei die höhere Region in vier Quadranten aufgeteilt wird, die zu entsprechenden der vier hierarchisch niedrigen Routerschaltungen (16, 18) und/oder Prozessoren gehören.
  6. Datenverarbeitungsschaltung nach Anspruch 5, wobei die Adresse eine Vielzahl von Bits enthalt, wobei jede Routerschaltung dafür eingerichtet ist, einen Abschnitt von zwei der Bits auszuwählen, wobei die Routerschaltungen die Weiterleitung an direkte Folge-Routerschaltungen (16, 18) und/oder Prozessoren (12) in der Baumstruktur abhängig nur von den Bits in dem Abschnitt steuern und wobei nachfolgende Routerschaltungen auf jedem Pfad von der Wurzel-Routerschaltung (19) zu einem betreffenden Prozessor (12) jeweils einen unterschiedlichen Abschnitt wählen.
  7. Datenverarbeitungsschaltung nach Anspruch 1, wobei die Routerschaltungen (16, 18, 19) weiterhin dafür eingerichtet sind, eine weitere Nachricht mit einer weiteren Adresse eines speziellen ersten der Prozessoren (12) von einem speziellen zweiten der Prozessoren (12) über einen ersten Teilpfad durch die Baumstruktur in einer ersten Richtung zur Wurzel-Routerschaltung (19) weiterzuleiten, bis die weitere Nachricht eine Routerschaltung (16, 18, 19) erreicht, die den adressierten ersten der Prozessoren bedient, anschließend zur Übertragung über einen zweiten Teilpfad durch die Baumstruktur zu dem ersten der Prozessoren (12) übergeht, und die Routerschaltungen (16, 18, 19) den ersten und den zweiten Teilpfad unter der Steuerung der weiteren Adresse auswählen.
  8. Datenverarbeitungsschaltung nach Anspruch 7, wobei die Datenverarbeitungsschaltung Arbitrierschaltungen (60, 66) enthält, die jeweils zu einer betreffenden der Routerschaltungen (16, 18, 19) gehören und dafür eingerichtet sind, eine Kollision zwischen und der weiteren Nachricht beim Übergang zu arbitrieren.
  9. Datenverarbeitungsschaltung nach Anspruch 8, wobei die Arbitrierschaltungen (60, 66) dafür eingerichtet sind, eine Kollision zwischen den weiteren Nachrichten von verschiedenen der Prozessoren zu arbitrieren.
  10. Datenverarbeitungsschaltung nach Anspruch 1, mit einer gemeinsamen Steuereinheit, die dafür eingerichtet ist, in der Nachricht einen Parameter zur Verwendung bei der Verarbeitung an einen der Prozessoren (12) zu senden.
  11. Verfahren zur Herstellung einer integrierten Schaltung, wobei das Verfahren Folgendes umfasst: Auswählen von Abmessungen einer zweidimensionalen Matrix aus Prozessoren (12); Erzeugen von Befehlen zur Anordnung der Prozessoren (12) in der Matrix mit einem Designcomputer; Erzeugen von Befehlen zur Anordnung privater Operandenübertragungsverbindungen zwischen Paaren aus benachbarten Prozessoren (12) in der Matrix mit dem Designcomputer; automatisches Erzeugen von Befehlen mit dem Designcomputer zur Anordnung von Routerschaltungen (16, 18, 19), die in einer Baumstruktur hierarchisch miteinander und mit den Prozessoren (12) verbunden sind, wobei die Prozessoren (12) Blätterknoten der Baumstruktur bilden, wobei die Routerschaltungen (16, 18, 19) dafür eingerichtet sind, eine Nachricht mit einer Adresse selektiv über einen Pfad durch die Baumstruktur von einer Wurzel-Routerschaltung (19) an einen adressierten Prozessor (12) weiterzuleiten, wobei die Routerschaltungen (16, 18, 19) jeweils einen Teil des Pfads unter der Steuerung der Adresse auswählen, wobei der Designcomputer eine Anzahl von Ebenen von Routerschaltungen (16, 18, 19) in der Baumstruktur auswählt, wobei die Adresse eine Vielzahl von Bits enthält und die Nachricht mit Maskenbits bereitgestellt wird, die für jedes Adressbit, für Adressbit-Paare bzw. für größere Adressbit-Gruppen vorgesehen sind, und wobei die Routerschaltungen (16, 18, 19) dafür eingerichtet sind, die Nachricht, wenn ein Maskenbit gesetzt ist, an alle nächstniedrigeren Routerschaltungen oder Prozessoren (12) weiterzuleiten, die durch verschiedene Werte des entsprechenden Adressbits adressiert werden; Herstellen der integrierten Schaltung entsprechend dem erzeugten Layout.
DE602004009324T 2003-09-09 2004-08-20 Integrierte datenverarbeitungsschaltung mit mehreren programmierbaren prozessoren Expired - Lifetime DE602004009324T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP03103322 2003-09-09
EP03103322 2003-09-09
PCT/IB2004/051510 WO2005024644A2 (en) 2003-09-09 2004-08-20 Integrated data processing circuit with a plurality of programmable processors

Publications (2)

Publication Number Publication Date
DE602004009324D1 DE602004009324D1 (de) 2007-11-15
DE602004009324T2 true DE602004009324T2 (de) 2008-07-10

Family

ID=34259263

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004009324T Expired - Lifetime DE602004009324T2 (de) 2003-09-09 2004-08-20 Integrierte datenverarbeitungsschaltung mit mehreren programmierbaren prozessoren

Country Status (8)

Country Link
US (1) US20070165547A1 (de)
EP (1) EP1665065B1 (de)
JP (1) JP4818920B2 (de)
KR (1) KR101200598B1 (de)
CN (1) CN1849598A (de)
AT (1) ATE374973T1 (de)
DE (1) DE602004009324T2 (de)
WO (1) WO2005024644A2 (de)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070124565A1 (en) * 2003-06-18 2007-05-31 Ambric, Inc. Reconfigurable processing array having hierarchical communication network
JP4755033B2 (ja) * 2006-07-05 2011-08-24 ルネサスエレクトロニクス株式会社 半導体集積回路
US20080052490A1 (en) * 2006-08-28 2008-02-28 Tableau, Llc Computational resource array
US20080052525A1 (en) * 2006-08-28 2008-02-28 Tableau, Llc Password recovery
US20080052429A1 (en) * 2006-08-28 2008-02-28 Tableau, Llc Off-board computational resources
US20080126472A1 (en) * 2006-08-28 2008-05-29 Tableau, Llc Computer communication
US7962717B2 (en) * 2007-03-14 2011-06-14 Xmos Limited Message routing scheme
WO2008154775A1 (en) * 2007-06-20 2008-12-24 Agate Logic, Inc. A programmable interconnect network for logic array
JP4676463B2 (ja) * 2007-07-13 2011-04-27 株式会社日立製作所 並列計算機システム
US7826455B2 (en) * 2007-11-02 2010-11-02 Cisco Technology, Inc. Providing single point-of-presence across multiple processors
CN101320364A (zh) * 2008-06-27 2008-12-10 北京大学深圳研究生院 一种阵列处理器结构
US8307116B2 (en) * 2009-06-19 2012-11-06 Board Of Regents Of The University Of Texas System Scalable bus-based on-chip interconnection networks
US10698859B2 (en) * 2009-09-18 2020-06-30 The Board Of Regents Of The University Of Texas System Data multicasting with router replication and target instruction identification in a distributed multi-core processing architecture
KR101594853B1 (ko) * 2009-11-27 2016-02-17 삼성전자주식회사 컴퓨터 칩, 및 상기 컴퓨터 칩에서의 정보 라우팅 방법
CN102063408B (zh) * 2010-12-13 2012-05-30 北京时代民芯科技有限公司 一种多核处理器片内数据总线
JP5171971B2 (ja) * 2011-01-17 2013-03-27 ルネサスエレクトロニクス株式会社 半導体集積回路
US9329834B2 (en) 2012-01-10 2016-05-03 Intel Corporation Intelligent parametric scratchap memory architecture
CN107239420B (zh) * 2012-11-21 2020-05-05 相干逻辑公司 具有散布处理器dma-fifo的处理系统
US10452399B2 (en) 2015-09-19 2019-10-22 Microsoft Technology Licensing, Llc Broadcast channel architectures for block-based processors
US11062203B2 (en) * 2016-12-30 2021-07-13 Intel Corporation Neuromorphic computer with reconfigurable memory mapping for various neural network topologies
US10713558B2 (en) * 2016-12-30 2020-07-14 Intel Corporation Neural network with reconfigurable sparse connectivity and online learning
US10963379B2 (en) 2018-01-30 2021-03-30 Microsoft Technology Licensing, Llc Coupling wide memory interface to wide write back paths
CN111866069B (zh) * 2020-06-04 2024-07-26 西安万像电子科技有限公司 数据处理方法及装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4251861A (en) * 1978-10-27 1981-02-17 Mago Gyula A Cellular network of processors
US4860201A (en) * 1986-09-02 1989-08-22 The Trustees Of Columbia University In The City Of New York Binary tree parallel processor
DE68920388T2 (de) * 1988-09-19 1995-05-11 Fujitsu Ltd Paralleles Rechnersystem mit Verwendung eines SIMD-Verfahrens.
US5161156A (en) * 1990-02-02 1992-11-03 International Business Machines Corporation Multiprocessing packet switching connection system having provision for error correction and recovery
DE4129614C2 (de) * 1990-09-07 2002-03-21 Hitachi Ltd System und Verfahren zur Datenverarbeitung
US5561768A (en) * 1992-03-17 1996-10-01 Thinking Machines Corporation System and method for partitioning a massively parallel computer system
US6000024A (en) * 1997-10-15 1999-12-07 Fifth Generation Computer Corporation Parallel computing system
US6622233B1 (en) * 1999-03-31 2003-09-16 Star Bridge Systems, Inc. Hypercomputer
US6745317B1 (en) * 1999-07-30 2004-06-01 Broadcom Corporation Three level direct communication connections between neighboring multiple context processing elements
JP2001167066A (ja) * 1999-12-08 2001-06-22 Nec Corp プロセッサ間通信方法及びマルチプロセッサシステム
US20030123492A1 (en) * 2001-05-14 2003-07-03 Locke Samuel Ray Efficient multiplexing system and method

Also Published As

Publication number Publication date
CN1849598A (zh) 2006-10-18
JP4818920B2 (ja) 2011-11-16
JP2007505383A (ja) 2007-03-08
DE602004009324D1 (de) 2007-11-15
EP1665065A2 (de) 2006-06-07
ATE374973T1 (de) 2007-10-15
KR20060131730A (ko) 2006-12-20
US20070165547A1 (en) 2007-07-19
WO2005024644A2 (en) 2005-03-17
EP1665065B1 (de) 2007-10-03
KR101200598B1 (ko) 2012-11-12
WO2005024644A3 (en) 2005-05-06

Similar Documents

Publication Publication Date Title
DE602004009324T2 (de) Integrierte datenverarbeitungsschaltung mit mehreren programmierbaren prozessoren
DE68929317T2 (de) Modulare Kreuzschienen zwischen Verbindungen in einem digitalen Rechner
DE3049437C2 (de) Matrixanordnung einer Vielzahl von Verarbeitungselementen
DE3854474T2 (de) Vorrichtung und verfahren zur übertragung von nachrichtenpaketen.
DE3880478T2 (de) Geschichtetes netz.
DE68909426T2 (de) Datenverarbeitung und -übertragung.
DE68925571T2 (de) Vermittlungsnetzwerk für Speicherzugriff
DE69631055T2 (de) Speicherschnittstelleneinheit, vermittlungssystem mit gemeinsamem speicher und verfahren dazu
DE69822796T2 (de) Nutzerprogrammierbarer prozessor
DE4416881A1 (de) Datenverarbeitungseinrichtung
EP0220474A2 (de) Wellenfrontfeldrechner
DE102004045527A1 (de) Konfigurierbare Logikschaltungsanordnung
DE3882990T2 (de) Verfahren und gerät zur simulation von m-dimensionalen verbindungsnetzwerken in einem n-dimensionalen netzwerk, worin m kleiner ist als n.
DE3788617T2 (de) Vektordatenverarbeitungssystem mit einer E/A-Steuerung für jeden Vektordatenprozessor und einer anderen E/A-Steuerung für mindestens einen anderen Vektordatenprozessor.
EP0062141B1 (de) Schaltungsanordnung zur Eingabe von Steuerbefehlen in ein Mikrocomputersystem
EP0882267A1 (de) Mehrprozessor-zentraleinheit
DE69828890T2 (de) Konfigurierbare speichersteuerungsvorrichtung und verfahren hierfür
EP1472616B1 (de) Rekonfigurierbare elemente
DE3543471C1 (de) In integrierter Technik hergestellter Baustein zur Erstellung integrierter Schaltungen
EP1038235B1 (de) Vorrichtung zum hierarchischen verbinden einer mehrzahl von funktionseinheiten in einem prozessor
DE69528886T2 (de) Veränderliche datenprozessorzuweisung und gemeinsame speicherbenutzung
DE10047574C2 (de) Prozessorbusanordnung
DE3784223T2 (de) Paralleler rechner.
EP1348257B1 (de) Zellenanordnung mit segmentierter zwischenzellstruktur
DE68922163T2 (de) Vektorprozessoren und Vektorregistersteuerung.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition