DE112009000899B4 - Verfahren und Vorrichtung zur hierarchischen Verkehrsführung in gitterbasierten Multiprozessorsystemen - Google Patents

Verfahren und Vorrichtung zur hierarchischen Verkehrsführung in gitterbasierten Multiprozessorsystemen Download PDF

Info

Publication number
DE112009000899B4
DE112009000899B4 DE112009000899.2T DE112009000899T DE112009000899B4 DE 112009000899 B4 DE112009000899 B4 DE 112009000899B4 DE 112009000899 T DE112009000899 T DE 112009000899T DE 112009000899 B4 DE112009000899 B4 DE 112009000899B4
Authority
DE
Germany
Prior art keywords
node
destination
area
packet
rectangular
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.)
Active
Application number
DE112009000899.2T
Other languages
English (en)
Other versions
DE112009000899T5 (de
Inventor
Aniruddha S. Vaidya
Doddaballapur N. Jayasimha
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE112009000899T5 publication Critical patent/DE112009000899T5/de
Application granted granted Critical
Publication of DE112009000899B4 publication Critical patent/DE112009000899B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update
    • H04W40/32Connectivity information management, e.g. connectivity discovery or connectivity update for defining a routing cluster membership
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Abstract

Verfahren, das aufweist:Aufteilen (420) eines Gitternetzwerkes aus Knoten in eine Vielzahl von Partitionen, wobei jede Partition wenigstens einen Knoten umfasst;Teilen (430) einer ersten Partition, die einer nicht-rechteckigen Partition entspricht, in eine Vielzahl von rechteckigen Bereichen, die jeweils einen Superknoten darstellen und mit mindestens einem anderen benachbarten rechteckigen Bereich aus der Vielzahl der rechteckigen Bereiche über eine Superkante verbunden sind;Festlegen (440) eines Partitionsweges von einem Quellenbereich zu einem Zielbereich aus der Vielzahl der rechteckigen Bereiche;Bereitstellen (450) eines Bereichsweges von einem Bereichsquellenknoten innerhalb eines aus der Vielzahl der rechteckigen Bereiche zu einem Bereichszielknoten innerhalb desselben rechteckigen Bereichs;Leiten (460) eines Paketes von einem Quellenknoten innerhalb des Quellenbereiches zu einem Zielknoten innerhalb des Zielbereiches, wobei der Partitionsweg und der Bereichsweg verwendet werden, aufweisend Nehmen eines Pfades von einem Superknoten des Quellknotens zu einem Superknoten des Zielknotens auf einem ersten Netzwerk unter Verwendung eines Spannbaumes eines Supergraphen, der die nicht-rechteckige Partition darstellt, und danach Leiten des Pakets innerhalb des rechteckigen Bereichs auf einem zweiten Netzwerk.

Description

  • HINTERGRUND
  • Gebiet
  • Die vorliegende Offenbarung ist auf gitterbasierte Multiprozessorsysteme gerichtet. Genauer ist die vorliegende Offenbarung auf ein Verfahren und eine Vorrichtung zur hierarchischen Verkehrsführung in Gittersystemen gerichtet.
  • Einführung
  • Gegenwärtig wird erwartet, dass schließlich Prozessoren mit einigen zehn bis hunderten von Prozessorkernen auf Einzelchip- und Mehrchiparchitekturen verwendet werden können. Von einer zweidimensionalen Gitter-Kopplungsstruktur wird erwartet, dass sie ein überzeugender Kandidat als ein skalierbares Kommunikations-Fabric auf dem Chip zwischen diesen Prozessorkernen und weiteren Verarbeitungs- und Eingabe- und Ausgabekomponenten auf dem Chip ist. Es wird erwartet, dass diese große Anzahl von Kernen partitioniert für Mehrserver-, Verarbeitungs- oder Wirtanwendungen und andere Einsatzmodelle verwendet wird. Es wird außerdem erwartet, dass die Isolation bezüglich des Leistungsverhaltens und bezüglich Fehlfunktionen quer durch diese mehreren Partitionen eine Anforderung oder ein Merkmal in derartigen Produktarchitekturen ist.
  • Eine Teilgittergeometrie mit rechteckigen Partitionen kann für die Isolation bezüglich des Leistungsverhaltens verwendet werden. Nach Dimensionen geordnetes Umleiten, auch als XY-Routing bekannt, kann in einem 2D-Gitternetzwerk als Verkehrsführungsalgorithmus verwendet werden. Jedoch kann eine Anforderung nach einer rechteckigen Partitionsgeometrie ein übermäßig einschränkender Ansatz für die Zuweisung von Partitionen oder die Verwaltung von Partitionen sein. Gegenwärtige Partitionierverfahren ermöglichen die Isolation bezüglich des Leistungsverhaltens von nicht-rechteckigen Partitionsgeometrien nicht. Sie stellen auch keine Software für die Verwaltung der Partitionen mit Optionen zum Zuweisen/Entkoppeln oder Neubemessen von Partitionen zur Verfügung, bei der weiterhin die Möglichkeit beibehalten wird, die Isolation bezüglich des Leistungsverhaltens oder bezüglich Fehlfunktionen zur Verfügung zu stellen.
  • Das Erzeugen mehrerer Partitionen, so wie Gruppen aus einem oder mehreren Knoten, in einem zweidimensionalen Gitter kann in beliebiger Weise durchgeführt werden. Falls Partitionen Knoten enthalten, die nicht dahingehend eingeschränkt sind, dass sie benachbarte oder proximale Knoten sein müssen, so wie Knoten, die abgeschaltete oder entkoppelte Knoten sind, welche in einem logischen Cluster oder in einer Partition gruppiert sind, können die Verbindungen des Kopplungsstruktur-Fabric möglicherweise von mehreren Partitionen gemeinsam genutzt werden. Unglücklicherweise kann dieses zu Leistungsverhalten oder zu Fehlfunktionen von Knoten innerhalb einer Partition führen, welche das Potential haben, andere Partitionen zu beeinflussen. Um eine Isolation bezüglich des Leistungsverhaltens oder bezüglich Fehlfunktionen zur Verfügung zu stellen, sind übermäßige zusätzliche Kopplungsstruktur-Ressourcen in der Form virtueller oder physikalischer Kanäle und zugeordneter Steuerlogik erforderlich. Es gibt ein Bedürfnis nach einem Verfahren und einer Vorrichtung zur hierarchischen Verkehrsführung in Gittersystemen, um die oben angesprochenen und weitere Probleme bei früheren Systemen zu überwinden.
  • US 6,718,396 B1 geht auf Routing bei vernetzten autonomen Computersystemen ein, welche in Gruppen zusammengefasst sind, die über Grenz-Router miteinander verbunden sind. Die einzelnen Grenz-Router können adaptiv Routing-Informationen an ihre Verarbeitungskapazitäten anpassen.
  • US 6,247,167 B1 offenbart einen Routing-Ansatz für Netze mit einem hohen Fan-Out, wobei die Netze in kleinere Unternetze partitioniert werden und auf der Grundlage eines Spannbaums eine verbindende Hülle für das Netz konstruiert wird. Das eigentliche Routing erfolgt dann unter Verwendung eines Steiner-Baums.
  • US 2004/0098695 A1 offenbart einen Routing-Ansatz auf rechteckigen Teilbereichen, der eine globale Route auf einzelnen Teilbereichen definiert, die eine Vielzahl von Nicht-Manhattan-Kanten umfasst. US 2003/0063614 A1 geht auf ein Vorberechnen von Routen auf ähnlich konfigurierten Netzen ein.
  • US 7,306,977 B1 offenbart ein Routing für PLD, wobei neben einer Aufteilung in Gruppen ein globaler Routing-Graph offenbart ist. Die zu routenden Signale werden empfangen und ein Routing-Algorithmus wird auf dem globalen Routing-Graphen, der der PLD zugeordnet ist, ausgeführt, um eine globale Routing-Lösung zu erzeugen. Die globale Routing-Lösung wird als parametrische Eingabe bei der Ausführung des Routing-Algorithmus auf einem detaillierten Routing-Graphen verwendet, um so eine Routing-Lösung zu finden.
  • US 2006/0117288 A1 offenbart eine Aufteilung von nicht-rechteckigen Schaltungsblöcken in mehrere rechteckige Blöcke.
  • Figurenliste
  • Um die Art und Weise zu beschreiben, auf die Vorteile und Merkmale der Offenbarung erhalten werden können, wird eine genauere Beschreibung der oben kurz beschriebenen Offenbarung durch Bezugnahme auf bestimmte Ausführungsformen gegeben werden, die in den angehängten Zeichnungen veranschaulicht sind. Mit dem Verständnis, dass diese Zeichnungen lediglich typische Ausführungsformen der Offenbarung veranschaulichen und daher nicht als ihren Umfang beschränkend betrachtet werden sollen, wird die Offenbarung mit zusätzlicher Bestimmtheit und in Einzelheiten durch die Verwendung der beigefügten Zeichnungen beschrieben und erläutert werden, wobei:
    • 1 ein beispielhaftes Blockschaubild einer Vorrichtung gemäß einer Ausführungsform ist;
    • 2 eine Veranschaulichung von Beispielen für nicht-rechteckige zusammen mit rechteckigen Partitionen gemäß einer Ausführungsform ist;
    • 3 eine beispielhafte Veranschaulichung eines Prozesses zur hierarchischen Verkehrsführung für eine O-förmige Partition gemäß einer Ausführungsform ist;
    • 4 ein beispielhaftes Ablaufdiagramm ist, welches die Arbeitsschritte in einem hierarchischen Verkehrsführungsfluss gemäß einer Ausführungsform veranschaulicht; und
    • 5 ein beispielhaftes Ablaufdiagramm ist, das die Arbeitsschritte in einem hierarchischen Verkehrsführungsfluss gemäß einer weiter Ausführungsform veranschaulicht.
  • GENAUE BESCHREIBUNG
  • 1 ist ein beispielhaftes Blockschaubild eines Systems oder einer Vorrichtung 100 gemäß einer Ausführungsform. Die Vorrichtung 100 kann ein Gitternetzwerk 110 umfassen, welches eine Vielzahl von Knoten enthält. Jeder Knoten kann zum Beispiel einen Kopplungsstruktur-Router darstellen, und der Knoten kann außerdem ein optionales Verarbeitungselement, so wie einen Prozessor, umfassen. Die Vorrichtung 100 kann außerdem einen Controller 140 umfassen, der mit dem Gitternetzwerk 110 gekoppelt ist, wobei der Controller 140 ein Modul 145 zum Initialisieren des Umleitens aufweist. Einige oder alle der Funktionen des Controllers 140 und des Moduls 145 zum Initialisieren des Umleitens können auf die Knoten des Gitternetzwerks verteilt sein. Zum Beispiel kann jeder Knoten ein lokales Umleit- und Steuermodul 147 umfassen. Der Controller 140 kann so ausgelegt sein, dass er für jede Partition einen Verkehrsführungsalgorithmus initialisiert, abhängig von Anforderungen an die Isolation bezüglich des Leistungsverhaltens für die Partition. Das Modul 145 zum Initialisieren des Umleitens kann so ausgelegt sein, dass es das Gitternetzwerk 110 in eine Vielzahl von Partitionen 120 und 130 aufteilt, wobei jede Partition wenigstens einen Knoten umfasst. Zum Beispiel kann eine Partition 120 die Knoten 1, 2, 3, 11, 12 und 13 umfassen. Das Modul 145 zum Initialisieren des Umleitens kann eine erste Partition 120 in eine Vielzahl rechteckiger Bereiche 122, 124 und 126 teilen, wobei der Bereich 122 die Knoten 11 umfassen kann, der Bereich 124 die Knoten 1 und 12 umfassen kann und der Bereich 126 die Knoten 2, 3 und 13 umfassen kann. Die lokalen Umleitmodule 147, die sich an jedem Knoten befinden, oder das Modul 145 zum Initialisieren des Umleitens können einen Partitionsweg von einem Quellenbereich 124 zu einem Zielbereich 126 aus der Vielzahl von rechteckigen Bereichen 120 bestimmen. Das Modul 145 für das Initialisieren des Umleitens oder die lokalen Umleitmodule 147 können einen Bereichsweg von einem Bereichsquellenknoten 2 innerhalb eines aus der Vielzahl der rechteckigen Bereiche zu einem Bereichszielknoten 3 innerhalb eines aus der Vielzahl der rechteckigen Bereiche zur Verfügung stellen. Die lokalen Umleitmodule 147 oder das Modul 145 zum Initialisieren des Umleitens können ein Paket von einem Quellenknoten 1 innerhalb des Quellenbereiches 124 zu einem Zielknoten 3 innerhalb des Zielbereichs 126 leiten, wobei der Partitionsweg und der Bereichsweg verwendet werden.
  • Das Modul 145 zum Initialisieren des Umleitens kann das Gitternetzwerk 110 so aufteilen, dass nicht-rechteckige Partitionen erlaubt sind, wobei die Isolation bezüglich des Leistungsverhaltens zwischen wenigstens zwei Partitionen 120 und 130 zur Verfügung gestellt wird. Das Modul 145 zum Initialisieren des Umleitens kann einen Bereichsweg zur Verfügung stellen, indem ein Bereichsweg von einem Quellenknoten innerhalb jedes aus der Vielzahl der rechteckigen Bereiche 122, 124 und 126 zu einem Zielknoten innerhalb jedes aus der Vielzahl der rechteckigen Bereiche 122, 124 und 126 zur Verfügung gestellt wird.
  • Das Modul 145 zum Initialisieren des Umleitens kann einem Paket einen Identifizierer für den Zielbereich des Paketes und einen Identifizierer für den innerbereichlichen Zielknoten des Paketes zuweisen. Das Modul 145 zum Initialisieren des Umleitens kann einem Knoten einen Identifizierer für den Bereich des Knotens und einen Identifizierer für den innerbereichlichen Knoten zuweisen. Ein Knoten aus der Vielzahl der Knoten kann ein Verkehrsführungsvergleichsmodul umfassen, das dazu ausgelegt ist, den Identifizierer für den Zielbereich des Paketes mit dem Identifizierer für den Bereich des Knotens zu vergleichen, um festzustellen, ob das Paket den Zielbereich erreicht hat, und um den Identifizierer für den innerbereichlichen Zielknoten des Paketes mit dem Identifizierer für den innerbereichlichen Knoten zu vergleichen, um festzustellen, ob das Paket den Zielknoten innerhalb des Zielbereichs erreicht hat. Die Knoten des Gitternetzwerkes 110 können eine Vielzahl von Prozessorkernen auf einem Einzelchip oder auf mehreren Chips sein.
  • Zum Beispiel kann eine Teilgitter- oder rechteckige Partitionsgeometrie zur Isolation bezüglich des Leistungsverhaltens verwendet werden. Nach Dimensionen geordnetes Umleiten kann als ein Verkehrsführungsalgorithmus in einem zweidimensionalen und einem mehrdimensionalen Gitternetzwerk verwendet werden. Nach Dimensionen geordnetes Umleiten in einem zweidimensionalen Gitternetzwerk kann auch XY-Routing genannt werden. Jedoch kann ein Erfordernis nach einer rechteckigen Partitionsgeometrie ein übermäßig einschränkender Ansatz für die Zuweisung von Partitionen oder die Verwaltung von Partitionen sein. Der offenbarte hierarchische Ansatz für die Verkehrsumlenkung kann die Isolation bezüglich des Leistungsverhaltens auf nicht-rechteckige Partitionsgeometrien erweitern, was Software für die Verwaltung von Partitionen mit mehr Optionen für das Zuweisen/Freigeben oder Neubemessen von Partitionen liefert, wobei weiterhin die Möglichkeit beibehalten wird, die Isolation bezüglich des Leistungsverhaltens oder bezüglich Fehlfunktionen zur Verfügung zu stellen.
  • Das Erzeugen mehrerer Partitionen, so wie Gruppen aus einem oder mehreren Knoten, in einem zweidimensionalen Gitter kann auf beliebige Weise geschehen. Wenn Partitionen Knoten enthalten, die nicht darauf beschränkt sind, benachbarte oder proximale Knoten zu sein, so dass beispielsweise Knoten enthalten sind, die abgeschaltete oder entkoppelte Knoten sind, welche in einen logischen Cluster oder in einer Partition gruppiert sind, können die Verbindungen des Kopplungsstruktur-Fabric möglicherweise von mehreren Partitionen gemeinsam genutzt werden. Dies kann implizieren, dass das Leistungsverhalten oder das Fehlfunktionieren von Knoten innerhalb einer Partition das Potential hat, das anderer Partitionen zu beeinflussen. Um die Isolation bezüglich des Leistungsverhaltens oder bezüglich Fehlfunktionen zur Verfügung zu stellen, können zusätzliche Kopplungsstruktur-Ressourcen in der Form virtueller oder physikalischer Kanäle nötig sein. Indem bestimmte Geometrien für Partitionen gefordert werden, ohne dass man sich allein auf rechteckige Geometrien beschränkt, kann die vorliegende Offenbarung die Isolation bezüglich des Leistungsverhaltens bieten, ohne die Notwendigkeit nach zusätzlicher Komplexität in der Hardware mit einigen weiteren virtuellen oder physikalischen Kanälen auf Kopplungsstrukturverbindungen.
  • Zum Beispiel kann eine rechteckige Partition ein Satz aus allen Knoten sein, die in einer zusammenhängenden Partition enthalten sind, die in einer rechteckigen Form angeordnet sind, so wie die Partition 130. Mit einem minimalen Verkehrsführungsalgorithmus, so wie einem nach Dimensionen geordneten Umleiten, wie dem XY-Routing, der für die Kommunikation zwischen Knoten in einem Gitter verwendet wird, darf eine rechteckige Partition keinen „überschwappenden“ Verkehr zu Verbindungen oder Routern außerhalb der Partition haben. Wenn in der Vorrichtung 100 lediglich rechteckige Partitionen erlaubt sind, kann die Isolation bezüglich des Leistungsverhaltens über alle Partitionen zur Verfügung gestellt werden, indem der standardmäßige Verkehrsführungsalgorithmus verwendet wird, welcher das minimale XY-Routing oder irgendein anderer minimaler Verkehrsführungsalgorithmus sein kann, wenn alle Partitionen rechteckige Geometrien haben.
  • Wenn nur eine vorgegebene Partition eine Forderung nach Isolation bezüglich des Leistungsverhaltens stellt, kann es möglich sein, lockerere Beschränkungen für das Partitionieren in Betracht zu ziehen, die die Isolation bezüglich des Leistungsverhaltens erhalten. Rechteckige Partitionen können zusammen mit anderen Partitionen vorliegen, die die Isolation bezüglich des Leistungsverhaltens nicht erfordern. Somit ist es möglich, die Isolation bezüglich des Leistungsverhaltens zu unterstützen, indem gefordert wird, dass weitere Partitionen ein Teil einer oder mehrerer rechteckiger Gruppen von Partitionen (RGoP - Rectangular Group of Partitions) sind.
  • Eine RGoP ist ein Satz von Partitionen, die rechteckig oder zusammenhängend sein können oder nicht, jedoch in der Zusammenschau eine rechteckige Geometrie hat. Wenn es mehrere RGoPs in der Vorrichtung 100 gibt, darf eine Partition, die die Isolation bezüglich des Leistungsverhaltens erfordert, RGoPs nicht überspannen. Zum Beispiel kann sie vollständig innerhalb einer einzigen RGoP enthalten sein. Aufgrund der lockereren Beschränkungen bei jeder einzelnen Partition, die ein Mitglied einer RGoP ist, könnte der Verkehr innerhalb der Partition aus diesen zu anderen in derselben RGoP überschwappen. Dies kann akzeptabel sein, da es keine Erwartung hinsichtlich einer Isolation bezüglich des Leistungsverhaltens bei diesen Mitgliedspartitionen gibt. In der Gesamtheit jedoch darf Verkehr von irgendeinem Mitglied der Partition nicht nach außerhalb der RGoP überschwappen, wenn dieselben minimalen Verkehrsführungsalgorithmen verwendet werden, die gitterweit verwendet werden.
  • 2 ist eine Veranschaulichung von Beispielen für nicht-rechteckige und rechteckige Partitionen 210, 220, 230 und 240 gemäß einer Ausführungsform. Nicht-rechteckige Partitionen müssten betrachtet werden, wenn man sich mit interner oder externer Fragmentierung befasst, die durch streng rechteckige Zuweisung in Szenarien mit entweder statischer oder dynamischer Partitionierung verursacht wird. Eine Fragmentierung kann insbesondere hoch sein, wenn eine weite Variabilität in der Größe der Partitionen erwartet wird. Eine Strategie für die Zuweisung von Partitionen kann weniger einschränkend sein, wenn sie nicht-rechteckige Partitionen erlaubt, selbst wenn rechteckige Partitionen favorisiert werden. Wenn rechteckige Partitionen favorisiert werden, können sich Zuweisungen nicht-rechteckiger Partitionen aus übergelassenen „Ausstechförmchen“-Zuweisungen einer oder mehrerer rechteckiger Partitionen ergeben. Beispiele solcher Partitionen können C-, U-, E-, H-, L-, T- usw. förmige Partitionen sein, wie sie in den Elementen 210, 220, 230 und 240 gezeigt sind.
  • Die Isolation bezüglich des Leistungsverhaltens beim Vorhandensein nicht-rechteckiger Partitionen kann einen von früheren Ansätzen verschiedenen Lösungsansatz erfordern. Ein einziger globaler oder gitterweiter Verkehrsführungsalgorithmus, der für die Isolation bezüglich des Leistungsverhaltens bei rechteckigen Partitionen, so wie der Partition 130, genügen würde, kann unzweckmäßig sein, um die Isolation bei nicht-rechteckigen Partitionen, so wie der Partition 120, sicherzustellen. Unterschiedliche, für die Partition spezifische Verkehrsführungsalgorithmen können benötigt werden, um sicherzustellen, dass die Kommunikation innerhalb der Partition bei nicht-rechteckigen Partitionen nicht nach außerhalb dieser Partition überschwappt.
  • Die vorliegende Offenbarung stellt solche Verkehrsführungsalgorithmen in nicht-rechteckigen Partitionen, die vernünftige Eigenschaften für das Leistungsverhalten zeigen, zur Verfügung. Die vorliegende Offenbarung kann die Systemblockadefreiheit bei der Verkehrsführung und Eigenschaften für das Leistungsverhalten, die besser sind als der schlimmste Fall, sicherstellen.
  • 3 ist eine beispielhafte Veranschaulichung eines Prozesses 300 für die hierarchische Verkehrsführung bei einer U-förmigen Partition gemäß einer Ausführungsform. Eine eingeschränkte, nicht-rechteckige Partition kann aus verbundenen Bereichen, so wie rechteckigen Komponenten aufgebaut sein. Zum Beispiel kann eine O-förmige Partition 310 als vier Rechtecke 320 betrachtet werden, die als ein Ring angeordnet sind, wobei jedes Rechteck 30, 31, 32 und 33 an zwei weiteren anliegt. Mehrere solcher Anordnungen und Kennzeichnungen für verbundene rechteckige Komponenten könnten für irgendeine gegebene nicht-rechteckige Partition erdacht werden. Eine solche Anordnung mit rechteckigen Komponenten kann für jede nicht-rechteckige Partition vorgegeben werden, für die ein Verkehrsführungsalgorithmus aufgebaut werden soll. Als ein weiteres Beispiel kann die O-förmige Partition 310 als acht Rechtecke 325 betrachtet werden, die als ein Ring angeordnet sind, wobei jedes Rechteck 41-48 an zwei anderen anliegt. Wenn es als acht rechteckige Bereiche wie gezeigt angeordnet ist, braucht ein Paket in jedem Bereich auf seinem Weg zu einem Zielbereich nur in eine Richtung, horizontal oder vertikal, zu reisen.
  • Damit bei der hierarchischen Verkehrsführung ein Verkehrsführungsalgorithmus für eine gegebene nicht-rechteckige Partition aufgebaut wird, kann jede rechteckige Komponente 30, 31, 32 und 33 als ein „Superknoten“ behandelt werden. Benachbart liegende Superknoten aus rechteckigen Komponenten können durch eine „Superkante“ verbunden werden. Die gegebene nicht-rechteckige Partition kann nun durch einen verbundenen Supergraphen 330 dargestellt werden. Ein Spannbaum 340 kann aus diesem Supergraphen 330 erzeugt werden.
  • Der hierarchische Ansatz für die Verkehrsführung zwischen einem gegebenen Quellenknoten- und Zielknotenpaar kann dann in zwei Schritten arbeiten. In dem ersten Schritt kann ein Weg einen Pfad von dem Quellen-Superknoten zu dem Ziel-Superknoten nehmen, der die Leitung in dem Spannbaum des Supergraphen von OBEN nach UNTEN verwendet. Sobald der Ziel-Superknoten erreicht ist, geschieht die Weiterleitung zu dem Zielknoten innerhalb desselben Komponentenrechtecks und kann irgendeinen systemblockadefreien Verkehrsführungsalgorithmus im Gitter verwenden. Für Systemblockadefreiheit können die beiden hierarchischen Verkehrsführungsschritte auf getrennten virtuellen Netzwerken ausgeführt werden. Jeder der Schritte kann unabhängig systemblockadefrei sein. Weiter können die Schritte in einer strengen Reihenfolge ausgeführt werden, wobei der erste Schritt zum Beispiel das Leiten von oben nach unten und der zweite Schritt das Weiterleiten innerhalb der rechteckigen Zielkomponente verwendet. Daher können die Verkehrsführungsalgorithmen, die gestaltet werden, indem der Ansatz der hierarchischen Verkehrsführung verwendet wird, systemblockadefrei sein, da jeder der Schritte systemblockadefrei ist und auf getrennten Netzwerken geführt wird. Der Algorithmus kann als Pseudocode wie folgt ausgedrückt werden:
// Quellenknoten: S = Sm:Si,
       // Zielknoten: D = Dm:Di,
       // Zwischenknoten: X = Xm:Xi
       // Knoten-IDs mit zwei Teilen (GitterID:IntragitterID)
       setze X=S    // ... Xm=Sm, Xi = Si
       solange (X!=D)   // noch nicht am Ziel angekommen
       {

        falls(Xm !=Dm)   // Leitungsschritt OBEN-UNTEN Metaebene

         {
           Verwende zusätzlichen virtuellen Kanal, der für das Leiten OBEN-UNTEN
           reserviert ist, um weiter zu leiten
           Gehe von (Xm:*) 1-Sprung nach (Dm:*) wobei Leitungsschritt OBEN-UNTEN

          Metaebene verwendet wird

         }

          sonst falls (Xi != Di) // Xm==Dm: nun im Zielgitter, Schritt innerhalb des Gitters
          {

           Normale virtuelle Kanäle verwenden, die für das Leiten innerhalb des Gitters
           reserviert sind
           Leite von (Dm:Xi) 1 -Sprung zu (Dm:Di) wobei Gitterleiten verwendet wird
           }

          Aktualisiere X mit Id der Station für den nächsten Sprung

         }
         Ausgangskanal hinaus zu der Station D nehmen // nun das X == D
         FERTIG
  • Eine verallgemeinerte Hardware-Implementierung der hierarchischen Verkehrsführung kann möglich sein bei vollständigen Umleitungstabellen bei jedem Router und einem zusätzlichen virtuellen Kanal pro Nachrichtenklasse. Bei einem Router, der für das nach Dimension geordnete Umleiten (DOR - Dimension Ordered Routing) oder das XY-Routing optimiert ist, kann die hierarchische Verkehrsführung wie folgt implementiert werden: Jeder Knoten-ID kann in zwei trennbare Komponenten aufgeteilt werden: einen Identifizierer für den Bereich des Knotens, so wie einen Gitter/Rechteck-ID, und einen innerbereichlichen Identifizierer, so wie einen Intragitter- oder Intrarechteck-ID. Rechteck-IDs können partitionsspezifisch sein. Intrarechteck-IDs können einem globalen Knoten-ID gleichgemacht werden, so dass, sobald eine Nachricht ihre rechteckige Zielkomponente erreicht, sie das grundlegende DOR verwenden kann, um zu dem Zielknoten zu leiten. Dies kann die Isolation bezüglich des Leistungsverhaltens unterstützen, indem sowohl ein standardmäßiger DOR-Verkehrsführungsalgorithmus für rechteckige Partitionen als auch eine hierarchische Verkehrsführung für eingeschränkte, nicht-rechteckige Partitionen verwendet wird, wobei der Knoten tatsächlich erweitert wird, so dass er einen Rechteck-ID hat. Ein zusätzliches Bit kann verwendet werden, um zu bezeichnen, ob die standardmäßige Verkehrsführung oder die hierarchische Verkehrsführung als Verkehrsführung verwendet werden soll. Teilwegtabellen anstelle von Vollwegtabellen können verwendet werden. Die Größe der Teilwegtabellen kann gleich der maximalen Anzahl von rechteckigen Komponenten sein, die in der Gitter-Kopplungsstruktur unterstützt werden. Router innerhalb einer gegebenen nicht-rechteckigen Partition können für diese Partition mit dem hierarchischen Verkehrsführungsalgorithmus geeignet programmiert werden.
  • 4 ist ein beispielhaftes Ablaufdiagramm 400, das die Arbeitsschritte eines hierarchischen Verkehrsführungsflusses gemäß einer Ausführungsform veranschaulicht. Im Block 410 beginnt das Ablaufdiagramm 400. In Block 420 kann das Ablaufdiagramm 40 ein Gitternetzwerk aus Knoten in eine Vielzahl von Partitionen aufteilen, wobei jede Partition wenigstens einen Knoten enthält. Eine erste Partition aus der Vielzahl der Partitionen kann Isolation bezüglich des Leistungsverhaltens gegenüber einer zweiten Partition aus der Vielzahl der Partitionen zur Verfügung stellen. Das Aufteilen des Gitternetzwerkes kann nicht-rechteckige Partitionen ermöglichen, wobei die Isolation bezüglich des Leistungsverhaltens zwischen irgendwelchen zwei Partitionen zur Verfügung gestellt wird.
  • Im Block 430 kann das Ablaufdiagramm 400 eine erste Partition in eine Vielzahl rechteckiger Bereiche aufteilen. Das Ablaufdiagramm 400 kann einen Baum der Vielzahl der rechteckigen Bereiche nach dem Aufteilen der ersten Partition erzeugen. Die Vielzahl der rechteckigen Bereiche kann eine Vielzahl benachbart liegender rechteckiger Bereiche sein. Im Block 440 kann das Ablaufdiagramm 400 einen Partitionsweg von einem Quellenbereich zu einem Zielbereich aus der Vielzahl der rechteckigen Bereiche festlegen. Das Ablaufdiagramm 400 kann einen Partitionsweg von einem Quellenbereich zu einem Zielbereich aus der Vielzahl der rechteckigen Bereiche festlegen, indem das Leiten von oben nach unten verwendet wird.
  • Im Block 450 kann das Ablaufdiagramm einen Bereichsweg von einem Bereichsquellenknoten innerhalb eines aus der Vielzahl der rechteckigen Bereiche zu einem Bereichszielknoten innerhalb desselben rechteckigen Bereiches zur Verfügung stellen. Das Zurverfügungstellen eines Bereichsweges kann das Bereitstellen eines Bereichsweges von einem Bereichsquellenknoten innerhalb jedes aus der Vielzahl der rechteckigen Bereiche zu einem Bereichszielknoten innerhalb desselben rechteckigen Bereiches umfassen. Das Bereitstellen eines Bereichsweges kann auch das Bereitstellen eines Bereichsweges von einem Quellenknoten innerhalb des Zielbereiches zu einem Zielknoten innerhalb des Zielbereiches umfassen. Im Block 460 kann das Ablaufdiagramm 400 ein Paket von einem Quellenknoten innerhalb des Quellenbereiches zu einem Zielknoten innerhalb des Zielbereiches leiten, indem der Partitionsweg und der Bereichsweg verwendet werden. Das Leiten des Paketes kann die Systemblockadefreiheit durch Leiten des Paketes vom Quellenknoten innerhalb des Quellenbereiches zu dem Zielknoten innerhalb des Zielbereiches umfassen, wobei zuerst ein systemblockadefreier Partitionsweg verwendet wird und dann ein systemblockadefreier Bereichsweg verwendet wird. Im Block 470 kann das Ablaufdiagramm 400 enden.
  • 5 ist ein beispielhaftes Ablaufdiagramm 500, das die Arbeitsschritte in einem hierarchischen Verkehrsführungsfluss gemäß einer weiteren Ausführungsform veranschaulicht. In Block 510 beginnt das Ablaufdiagramm. Im Block 520 kann das Ablaufdiagramm 500 einem Paket sowohl einen Identifizierer für den Zielbereich des Paketes als auch einen Identifizierer für den innerbereichlichen Zielknoten des Paketes zuweisen. In Block 530 kann das Ablaufdiagramm 500 einen Knoten sowohl einen Identifizierer für den Bereich des Knotens als auch einen innerbereichlichen Identifizierer zuweisen. In Block 540 kann das Ablaufdiagramm 500 im Gitter das Paket zu einem nächsten Knoten auf dem Weg des Paketes zu einem Zielknoten führen. Im Block 550 kann das Ablaufdiagramm 500 die Paket- und die Knoten-Identifizierer überprüfen. Im Block 560 kann das Ablaufdiagramm 500 den Identifizierer für den Zielbereich des Paketes mit dem Identifizierer für den Bereich des Knotens vergleichen, um festzustellen, ob sie gleich sind und das Paket den Zielbereich erreicht hat. Wenn der Identifizierer für den Zielbereich des Paketes und der Identifizierer für den Bereich des Knotens nicht gleich sind, kann das Ablaufdiagramm 500 das Paket zu dem nächsten Knoten im Block 540 umleiten.
  • Wenn der Identifizierer für den Zielbereich des Paketes gleich dem Identifizierer für den Bereich des Knotens ist, kann das Ablaufdiagramm 500 im Block 565 das Paket zu dem nächsten Knoten innerhalb des Zielbereiches im Gitter weiterleiten. Im Block 570 kann das Ablaufdiagramm die Paket- und die Knoten-Identifizierer überprüfen. In Block 575 kann das Ablaufdiagramm 500 den Identifizierer für den innerbereichlichen Zielknoten des Paketes mit dem Identifizierer für den innerbereichlichen Knoten vergleichen, um festzustellen, ob sie gleich sind und das Paket den Zielknoten innerhalb des Zielbereiches erreicht hat. Wenn sie nicht gleich sind, kann das Ablaufdiagramm 500 fortfahren, das Paket zu dem nächsten Knoten im Block 565 zu leiten. Wenn sie gleich sind, kann das Ablaufdiagramm 500 im Block 580 entscheiden, dass das Ziel erreicht ist. Im Block 585 kann das Ablaufdiagramm 500 enden.
  • Somit kann neben weiteren nutzbringenden Effekten die vorliegende Offenbarung eine Lösung für das Partitionieren und für Merkmale einer Isolation bezüglich des Leistungsverhaltens/Fehlfunktionen/Vertrauens in einem Gitter-Kopplungsstruktur-Fabric zur Verfügung stellen. Sie kann auch beim Partitionieren und für Lösungen hinsichtlich der Isolation bezüglich des Leistungsverhaltens in einem Multiprozessor mit mehreren Knoten/mehreren Fassungen, die skalierbar sind, angewendet werden, welcher eine Gitter-Kopplungsstruktur verwendet. Die vorliegende Offenbarung kann einen hierarchischen Verkehrsführungsalgorithmus mit zwei Ebenen für die Isolation bezüglich des Leistungsverhaltens in einem zweidimensionalen Gitter mit nicht-rechteckigen Partitionen verwenden. Sie kann außerdem die Verwendung nicht-rechteckiger Partitionen in einer bezüglich des Leistungsverhaltens/Fehlfunktionen isolierten Weise, anstelle eines restriktiveren Ansatzes nur mit rechteckigen Partitionen ermöglichen. Eine architekturmäßige Implementierung kann eine Router-Gestaltung einsetzen, die für die XY-Routing optimiert ist. Das Erfordernis der Isolation kann von Partitionen, die die Isolation bezüglich des Leistungsverhaltens erfordern, auf Gruppen von Partitionen, welche die Isolation bezüglich des Leistungsverhaltens erfordern, erleichtert werden, und derselbe Verkehrsführungsalgorithmus kann verwendet werden. Sie kann außerdem für das eingeschränkte, nicht-rechteckige Partitionieren verwendet werden.
  • Die vorliegende Offenbarung kann außerdem einen Verkehrsführungsalgorithmus zur Verfügung stellen, so wie eine Technik, um Datenpakete/Nachrichten richtig von einem Senderknoten in einem Kopplungsstruktur-Netzwerk zu einem Zielknoten zu leiten. Sie kann sich auf einen Verkehrsführungsalgorithmus in einem zweidimensionalen Gitter (2D-Gitter)- und in einem mehrdimensionalen Kopplungsstruktur-Netzwerk beziehen.
  • Die vorliegende Offenbarung kann auch einen Verkehrsführungsalgorithmus verwenden, der für ein zweidimensionales oder mehrdimensionales Gitter mit zwei oder mehr Partitionen gestaltet ist, wobei jede Partition ein Cluster aus benachbarten verbundenen Knoten sein kann, und um die Isolation zwischen Partitionen zu unterstützen. Die Isolation zwischen Partitionen kann mit sich bringen, dass es nur für Knoten innerhalb einer Partition erforderlich sein kann, dass sie in der Lage sind, miteinander zu kommunizieren, beispielsweise in der Lage sind, Datenpakete/Nachrichten zu senden. Knoten in unterschiedlichen Partitionen brauchen nicht zu kommunizieren. Die Isolation kann auch eine Möglichkeit mit sich bringen, das Leistungsverhalten, Fehlfunktionen oder eine sichere Domäne auf eine Partition einzuschränken. Die Form oder die Topologie des Teilnetzwerks jeder Partition braucht nicht rechteckig oder teilgitterförmig zu sein. Die vorliegende Offenbarung kann die Beschränkungen für das Partitionieren oder die Zuweisung von Aufgaben in einer Multitasking-Umgebung in einem Gitter verringern, das Aufgaben kleineren Gittern zuweist, was als Teilgitterzuweisung oder rechteckige Zuweisung bezeichnet wird, um die Zuweisung von Aufgaben zu vereinfachen, um das Verkehrsführungsproblem zu verwalten und aus Gründen der Isolation. Die vorliegende Offenbarung kann weiter einen Verkehrsführungsalgorithmus zur Verfügung stellen, der für Isolation sorgt, indem die gesamte Kommunikation innerhalb einer Partition auf Kommunikationsverbindungen zwischen Knoten von Partitionen eingeschränkt wird, so dass andere Partitionen von nachteiligen Wirkungen des Leistungsverhaltens, einigen Typen von Fehlfunktionen und verschlechtertem Vertrauen zu anderen Partitionen isoliert wird. Der Verkehrsführungsalgorithmus kann für Isolation selbst bei nicht-rechteckigen Partitionen in einem zweidimensionalen Gitter sorgen. Der Verkehrsführungsalgorithmus kann systemblockade- und aktivitätsblockadefrei sein und kann die Isolation bezüglich des Leistungsverhaltens und bezüglich Fehlfunktionen für die Partition zur Verfügung stellen.
  • Jede nicht-rechteckige Partition kann eine Zusammensetzung aus kleineren rechteckigen Bereichen sein, die aneinander liegen. Der Verkehrsführungsalgorithmus kann einen zweistufigen hierarchischen Ansatz verwenden. Die erste Stufe kann von einem Quellenbereich, so wie einem kleineren rechteckigen Bereich, einer Partition zu einem Zielbereich führen. Der zweite Schritt kann innerhalb des Zielrechteckes weiterleiten, um den gewünschten Zielknoten zu erreichen.
  • Das Verfahren dieser Offenbarung wird bevorzugt auf einem programmierten Prozessor implementiert. Jedoch können die Controller, Ablaufdiagramme und Module auch auf einem universellen oder speziellen Computer, einem programmierten Mikroprozessor oder Mikrocontroller und peripheren integrierten Schaltungselementen, einer integrierten Schaltung, einer Hardwareelektronik oder einer logischen Schaltung, so wie einer Schaltung mit diskreten Elementen, einer programmierbaren Logikeinheit oder dergleichen implementiert werden. Im Allgemeinen kann jedwede Vorrichtung, auf der sich eine endliche Zustandsmaschine befindet, die in der Lage ist, die Ablaufdiagramme zu implementieren, welche in den Figuren gezeigt sind, verwendet werden, um die Prozessorfunktionen dieser Offenbarung zu implementieren.
  • Obwohl diese Offenbarung mit ihren bestimmten Ausführungsformen beschrieben worden ist, ist es offensichtlich, dass den Fachleuten viele Alternativen, Modifikationen und Abänderungen deutlich werden. Zum Beispiel können verschiedene Komponenten der Ausführungsformen ausgetauscht, hinzugefügt oder in den anderen Ausführungsformen ersetzt werden. Außerdem sind nicht alle Elemente jeder Figur für den Arbeitsablauf bei den offenbarten Ausführungsformen notwendig. Zum Beispiel würde ein Durchschnittsfachmann auf dem Gebiet der offenbarten Ausführungsformen in die Lage versetzt, die Techniken der Offenbarung zu erstellen und zu verwenden, indem einfach die Elemente der unabhängigen Ansprüche benutzt werden. Demgemäß ist es beabsichtigt, dass die bevorzugten Ausführungsformen der Offenbarung, wie sie hier aufgeführt sind, veranschaulichend und nicht beschränkend sind. Verschiedene Änderungen können vorgenommen werden, ohne dass man sich vom Gedanken und Umfang der Offenbarung entfernt. Zum Beispiel kann irgendein minimaler Verkehrsführungsalgorithmus im Gitter anstelle des XY-Routing verwendet werden. Auch kann für höhere Dimensionen ein ähnlicher Ansatz für nicht-quadrische Partitionen in drei Dimensionen und andere Partitionen in höheren Dimensionen verwendet werden.
  • In diesem Dokument können Beziehungsausdrücke so wie „erster“, „zweiter“ und dergleichen lediglich verwendet werden, um eine Einheit oder eine Tätigkeit von einer weiteren Einheit oder Tätigkeit zu unterscheiden, ohne notwendigerweise jedwede tatsächliche derartige Beziehung oder Reihenfolge zwischen solchen Einheiten oder Tätigkeiten zu erfordern oder zu implizieren. Die Ausdrücke „weist auf“, „aufweisend“ oder jedwede andere Abänderung davon sind so gedacht, dass sie eine nicht exklusive Einschließung abdecken, so dass ein Prozess, ein Verfahren, ein Gegenstand oder eine Vorrichtung, die eine Liste von Elementen aufweist, nicht nur diese Elemente umfasst, sondern weitere Elemente umfassen kann, die nicht ausdrücklich aufgeführt sind oder einem derartigen Prozess, einem Verfahren, einem Gegenstand oder einer Vorrichtung innewohnen. Ein Element, dem ein „ein“, „eine“ oder dergleichen vorangeht, schließt ohne weitere Einschränkungen nicht das Vorhandensein zusätzlicher identischer Elemente in dem Prozess, dem Verfahren, dem Gegenstand oder der Vorrichtung aus, der/die das Element aufweist. Auch ist der Ausdruck „ein weiterer“ als wenigstens ein zweiter oder mehr definiert. Die Ausdrücke „umfassend“, „mit“ und dergleichen, wie hierin verwendet, sind als „aufweisend“ definiert.
  • Claims (16)

    1. Verfahren, das aufweist: Aufteilen (420) eines Gitternetzwerkes aus Knoten in eine Vielzahl von Partitionen, wobei jede Partition wenigstens einen Knoten umfasst; Teilen (430) einer ersten Partition, die einer nicht-rechteckigen Partition entspricht, in eine Vielzahl von rechteckigen Bereichen, die jeweils einen Superknoten darstellen und mit mindestens einem anderen benachbarten rechteckigen Bereich aus der Vielzahl der rechteckigen Bereiche über eine Superkante verbunden sind; Festlegen (440) eines Partitionsweges von einem Quellenbereich zu einem Zielbereich aus der Vielzahl der rechteckigen Bereiche; Bereitstellen (450) eines Bereichsweges von einem Bereichsquellenknoten innerhalb eines aus der Vielzahl der rechteckigen Bereiche zu einem Bereichszielknoten innerhalb desselben rechteckigen Bereichs; Leiten (460) eines Paketes von einem Quellenknoten innerhalb des Quellenbereiches zu einem Zielknoten innerhalb des Zielbereiches, wobei der Partitionsweg und der Bereichsweg verwendet werden, aufweisend Nehmen eines Pfades von einem Superknoten des Quellknotens zu einem Superknoten des Zielknotens auf einem ersten Netzwerk unter Verwendung eines Spannbaumes eines Supergraphen, der die nicht-rechteckige Partition darstellt, und danach Leiten des Pakets innerhalb des rechteckigen Bereichs auf einem zweiten Netzwerk.
    2. Verfahren nach Anspruch 1, bei dem die Vielzahl der rechteckigen Bereiche eine Vielzahl benachbart liegender rechteckiger Bereiche aufweist.
    3. Verfahren nach Anspruch 1, bei dem das Bereitstellen (450) eines Bereichsweges ein Bereitstellen eines Bereichsweges von einem Bereichsquellenknoten innerhalb jedes der Vielzahl der rechteckigen Bereiche zu einem Bereichszielknoten innerhalb desselben rechteckigen Bereiches aufweist.
    4. Verfahren nach Anspruch 1, das weiter ein Zuweisen sowohl eines Identifizierers für den Zielbereich des Paketes als auch eines Identifizierers für den innerbereichlichen Zielknoten des Paketes für ein Paket aufweist.
    5. Verfahren nach Anspruch 4, das weiter aufweist: Zuweisen sowohl eines Identifizierers für den Bereich des Knotens und eines innerbereichlichen Identifizierers für einen Knoten; und Vergleichen des Identifizierers für den Zielbereich des Paketes mit dem Identifizierer für den Bereich des Knotens, um festzustellen, ob das Paket den Zielbereich erreicht hat.
    6. Verfahren nach Anspruch 5, das weiter ein Vergleichen des Identifizierers für den innerbereichlichen Zielknoten des Paketes mit dem Identifizierer für den innerbereichlichen Knoten, um festzustellen, ob das Paket den Zielknoten innerhalb des Zielbereichs erreicht hat, aufweist.
    7. Verfahren nach Anspruch 1, das weiter aufweist: Prüfen eines Identifizierers für den innerbereichlichen Zielknoten des Paketes und eines Identifizierers für den Zielbereich des Paketes; Vergleichen des Paket-Zielbereich-Identifizierers mit einem Knotenbereich-Identifizierer, um festzustellen, ob das Paket den Zielbereich erreicht hat; und Vergleichen, wenn das Paket den Zielbereich erreicht hat, des Identifizierers für den innerbereichlichen Zielknoten des Paketes mit einem Identifizierer für den innerbereichlichen Knoten, um festzustellen, ob das Paket den Zielknoten erreicht hat.
    8. Verfahren nach Anspruch 1, bei dem das Bereitstellen (450) eines Bereichsweges ein Bereitstellen eines Bereichsweges von einem Bereichsquellenknoten innerhalb des Zielbereiches zu einem Bereichszielknoten innerhalb des Zielbereichs aufweist.
    9. Verfahren nach Anspruch 1, das weiter ein Erzeugen des Baumes aus der Vielzahl der rechteckigen Bereiche aufweist, wobei das Bestimmen (440) ein Bestimmen eines Partitionsweges von einem Quellenbereich zu einem Zielbereich der Vielzahl der rechteckigen Bereiche aufweist, wobei eine Leitung von oben nach unten verwendet wird.
    10. Verfahren nach Anspruch 1, bei dem das Leiten (460) des Paketes Systemblockadefreiheit einsetzt, indem das Paket von dem Quellenknoten innerhalb des Quellenbereiches zu dem Zielknoten innerhalb des Zielbereiches geleitet wird, indem zunächst ein systemblockadefreier Partitionsweg verwendet wird und dann ein systemblockadefreier Bereichsweg verwendet wird.
    11. Verfahren nach Anspruch 1, wobei wenigsten eine Partition die Isolation bezüglich des Leistungsverhaltens gegenüber wenigstens einer weiteren Partition aus der Vielzahl der Partitionen zur Verfügung stellt und der Bereichsweg von einem Bereichsquellenknoten innerhalb des Zielbereiches zu einem Bereichszielknoten innerhalb des Zielbereiches bereitgestellt wird, das Verfahren weiter umfassend: Prüfen eines Identifizierers für den Zielbereich des Paketes und eines Identifizierers für den innerbereichlichen Zielknoten des Paketes; Vergleichen des Identifizierers für den Zielbereich des Paketes mit einem Identifizierer für den Bereich des Knotens, um festzustellen, ob das Paket den Zielbereich erreicht hat; und Vergleichen, wenn das Paket den Zielbereich erreicht hat, des Identifizierers für den innerbereichlichen Zielknoten des Paketes mit einem Identifizierer für den innerbereichlichen Knoten, um festzustellen, ob das Paket den Zielknoten erreicht hat.
    12. Verfahren nach Anspruch 11, bei dem die Vielzahl der Partitionen eine Kombination aus rechteckigen und nicht-rechteckigen Partitionen aufweist.
    13. Vorrichtung, die aufweist: ein Gitternetzwerk (110), das eine Vielzahl von Knoten (1, 2, 3, 11, 12, 13) umfasst; und einen Controller (140), der mit dem Gitternetzwerk (110) gekoppelt ist, wobei der Controller (140) ein Modul (145) zum Initialisieren des Umleitens umfasst, das so ausgelegt ist, dass es das Gitternetzwerk (110) in eine Vielzahl von Partitionen (120, 130) aufteilt, wobei jede Partition (120, 130) wenigstens einen Knoten umfasst, und eine erste Partition (120), die einer nicht-rechteckigen Partition entspricht, in eine Vielzahl von rechteckigen Bereichen (122, 124, 126) teilt, die jeweils einen Superknoten darstellen und mit mindestens einem anderen benachbarten rechteckigen Bereich aus der Vielzahl der rechteckigen Bereiche über eine Superkante verbunden sind; und wenigstens ein lokales Umleitmodul (147), das mit einem Knoten aus der Vielzahl der Knoten gekoppelt ist, wobei das wenigsten eine lokale Umleitmodul (147) so ausgelegt ist, dass es einen Partitionsweg von einem Quellenbereich (124) zu einem Zielbereich (126) aus der Vielzahl der rechteckigen Bereiche (122, 124, 126) festlegt, einen Bereichsweg von einem Bereichsquellenknoten (2) innerhalb eines aus der Vielzahl der rechteckigen Bereiche (122, 124, 126) zu einem Bereichszielknoten (3) innerhalb des einen aus der Vielzahl der rechteckigen Bereiche (122, 124, 126) zur Verfügung stellt und ein Paket von einem Quellenknoten (1) innerhalb des Quellenbereiches (124) zu einem Zielknoten (3) innerhalb des Zielbereiches (126) leitet, wobei der Partitionsweg und der Bereichsweg verwendet werden, aufweisend Nehmen eines Pfades von einem Superknoten des Quellknotens zu einem Superknoten des Zielknotens auf einem ersten Netzwerk unter Verwendung eines Spannbaumes eines Supergraphen, der die nicht-rechteckige Partition darstellt, und danach Leiten des Pakets innerhalb des rechteckigen Bereichs auf einem zweiten Netzwerk.
    14. Vorrichtung nach Anspruch 13, bei dem das wenigstens eine lokale Umleitmodul (147) einen Bereichsweg zur Verfügung stellt, indem ein Bereichsweg von einem Quellenknoten innerhalb jedes aus der Vielzahl der rechteckigen Bereiche (122, 124, 126) zu einem Zielknoten innerhalb jedes aus der Vielzahl der rechteckigen Bereiche (122, 124, 126) zur Verfügung gestellt wird.
    15. Vorrichtung nach Anspruch 13, bei dem das Modul (145) zum Initialisieren des Umleitens so ausgelegt ist, dass es einem Paket einen Identifizierer für den Zielbereich des Paketes und einen Identifizierer für den innerbereichlichen Zielknoten des Paketes zuweist und einem Knoten einen Identifizierer für den Bereich des Knotens und einen Identifizierer für den innerbereichlichen Knoten zuweist.
    16. Vorrichtung nach Anspruch 15, bei der das wenigstens eine lokale Umleitmodul (147) ein Verkehrsführungsvergleichsmodul umfasst, das so ausgelegt ist, dass es den Identifizierer für den Zielbereich des Paketes mit dem Identifizierer für den Bereich des Knotens vergleicht, um festzustellen, ob das Paket den Zielbereich erreicht hat, und den Identifizierer für den innerbereichlichen Zielknoten des Paketes mit dem Identifizierer für den innerbereichlichen Knoten vergleicht, um festzustellen, ob das Paket den Zielknoten innerhalb des Zielbereiches erreicht hat.
    DE112009000899.2T 2008-05-01 2009-04-22 Verfahren und Vorrichtung zur hierarchischen Verkehrsführung in gitterbasierten Multiprozessorsystemen Active DE112009000899B4 (de)

    Applications Claiming Priority (3)

    Application Number Priority Date Filing Date Title
    US12/113,281 US20090274157A1 (en) 2008-05-01 2008-05-01 Method and apparatus for hierarchical routing in multiprocessor mesh-based systems
    US12/113,281 2008-05-01
    PCT/US2009/041361 WO2009134655A2 (en) 2008-05-01 2009-04-22 Method and apparatus for hierarchical routing in multiprocessor mesh-based systems

    Publications (2)

    Publication Number Publication Date
    DE112009000899T5 DE112009000899T5 (de) 2011-03-17
    DE112009000899B4 true DE112009000899B4 (de) 2018-05-03

    Family

    ID=41231963

    Family Applications (1)

    Application Number Title Priority Date Filing Date
    DE112009000899.2T Active DE112009000899B4 (de) 2008-05-01 2009-04-22 Verfahren und Vorrichtung zur hierarchischen Verkehrsführung in gitterbasierten Multiprozessorsystemen

    Country Status (7)

    Country Link
    US (1) US20090274157A1 (de)
    JP (1) JP5553413B2 (de)
    CN (1) CN101572726A (de)
    DE (1) DE112009000899B4 (de)
    GB (1) GB2472527B (de)
    RU (1) RU2479158C2 (de)
    WO (1) WO2009134655A2 (de)

    Families Citing this family (20)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    US7796585B2 (en) * 2008-05-21 2010-09-14 Dell Products, Lp Network switching in a network interface device and method of use thereof
    US8045546B1 (en) * 2008-07-08 2011-10-25 Tilera Corporation Configuring routing in mesh networks
    JP2010218364A (ja) * 2009-03-18 2010-09-30 Fujitsu Ltd 情報処理システム、通信制御装置および方法
    JP5233898B2 (ja) * 2009-07-31 2013-07-10 富士通株式会社 ルーティングテーブルの書き換え方法、データ転送装置およびプログラム
    US9565094B2 (en) * 2009-11-13 2017-02-07 International Business Machines Corporation I/O routing in a multidimensional torus network
    CN102082811B (zh) * 2009-12-01 2013-06-05 华为终端有限公司 分域网络建立方法、分域网络、节点通信方法及网络节点
    US9954760B2 (en) 2010-01-29 2018-04-24 International Business Machines Corporation I/O routing in a multidimensional torus network
    US11095549B2 (en) * 2011-10-21 2021-08-17 Nant Holdings Ip, Llc Non-overlapping secured topologies in a distributed network fabric
    US9330002B2 (en) * 2011-10-31 2016-05-03 Cavium, Inc. Multi-core interconnect in a network processor
    ES2728175T3 (es) * 2013-01-08 2019-10-22 Signify Holding Bv Optimizar reenvío de mensaje en una red de malla inalámbrica
    US9432301B2 (en) 2013-04-29 2016-08-30 Telefonaktiebolaget L M Ericsson (Publ) Defining disjoint node groups for virtual machines with pre-existing placement policies
    KR101830685B1 (ko) * 2013-06-29 2018-02-21 인텔 코포레이션 온칩 메시 상호접속부
    US10491467B2 (en) 2014-05-23 2019-11-26 Nant Holdings Ip, Llc Fabric-based virtual air gap provisioning, systems and methods
    CN105637936B (zh) * 2014-08-06 2019-05-28 华为技术有限公司 基于Mesh结构的点对多点通信方法及通信节点
    US9893981B2 (en) 2016-03-14 2018-02-13 Mitsubishi Electric Research Laboratories, Inc. Resource aware multi-task routing in multi-hop heterogeneous wireless networks
    CN106604257A (zh) * 2016-12-15 2017-04-26 中国科学院沈阳自动化研究所 一种无线Mesh网络的发布/订阅信息传输方法和装置
    US10776309B2 (en) * 2016-12-31 2020-09-15 Intel Corporation Method and apparatus to build a monolithic mesh interconnect with structurally heterogenous tiles
    US10749786B2 (en) * 2017-03-01 2020-08-18 Cisco Technology, Inc. Path optimization based on reducing dominating set membership to essential parent devices
    JP6904127B2 (ja) 2017-07-19 2021-07-14 富士通株式会社 中継ノード決定プログラム、中継ノード決定方法および並列処理装置
    CN107798093B (zh) * 2017-10-25 2022-05-03 成都尽知致远科技有限公司 图像检索方法

    Citations (6)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    US6247167B1 (en) 1998-04-17 2001-06-12 Lsi Logic Corporation Method and apparatus for parallel Steiner tree routing
    US20030063614A1 (en) 2001-08-23 2003-04-03 Steven Teig Method and apparatus for storing routes for groups of related net configurations
    US6718396B1 (en) 1999-08-04 2004-04-06 Hitachi, Ltd. Network structure method and route determination equipment
    US20040098695A1 (en) 2002-11-18 2004-05-20 Steven Teig Method and apparatus for routing
    US20060117288A1 (en) 2004-11-29 2006-06-01 Fujitsu Limited LSI physical designing method, program, and apparatus
    US7306977B1 (en) 2003-08-29 2007-12-11 Xilinx, Inc. Method and apparatus for facilitating signal routing within a programmable logic device

    Family Cites Families (23)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    JP2936868B2 (ja) * 1992-02-21 1999-08-23 日本電気株式会社 アレイプロセッサのメッセージパケットルーティング方法
    RU2115162C1 (ru) * 1996-07-05 1998-07-10 Научно-конструкторское бюро вычислительных систем Таганрогского государственного радиотехнического университета Сеть для маршрутизации сообщений
    US5970232A (en) * 1997-11-17 1999-10-19 Cray Research, Inc. Router table lookup mechanism
    US6289495B1 (en) * 1998-04-17 2001-09-11 Lsi Logic Corporation Method and apparatus for local optimization of the global routing
    US6324674B2 (en) * 1998-04-17 2001-11-27 Lsi Logic Corporation Method and apparatus for parallel simultaneous global and detail routing
    US6567856B1 (en) * 1999-06-02 2003-05-20 Sun Microsystems, Inc. Deadlock-free routing
    EP1370966B1 (de) * 2001-02-24 2010-08-25 International Business Machines Corporation Neuartiger massivparalleler supercomputer
    ITMI20011508A1 (it) * 2001-07-13 2003-01-13 Marconi Comm Spa Metodo per il routing in reti di telecomunicazioni
    DE10147750A1 (de) * 2001-09-27 2003-04-17 Siemens Ag Vorrichtung und Verfahren zur Vermittlung einer Mehrzahl von Signalen unter Verwendung einer mehrstufigen Protokollverarbeitung
    JP2004022864A (ja) * 2002-06-18 2004-01-22 Fujitsu Ltd ツリー構造型回路生成方法およびツリー構造型回路生成プログラム
    JP2004062598A (ja) * 2002-07-30 2004-02-26 Seiko Epson Corp 半導体装置、半導体装置の設計方法及び設計装置、並びに半導体装置の設計プログラム
    US7881229B2 (en) * 2003-08-08 2011-02-01 Raytheon Bbn Technologies Corp. Systems and methods for forming an adjacency graph for exchanging network routing data
    US7486619B2 (en) * 2004-03-04 2009-02-03 International Business Machines Corporation Multidimensional switch network
    US7394288B1 (en) * 2004-12-13 2008-07-01 Massachusetts Institute Of Technology Transferring data in a parallel processing environment
    US7461236B1 (en) * 2005-03-25 2008-12-02 Tilera Corporation Transferring data in a parallel processing environment
    US20070091828A1 (en) * 2005-10-26 2007-04-26 Nortel Networks Limited Registration, look-up, and routing with flat addresses at enormous scales
    US7774579B1 (en) * 2006-04-14 2010-08-10 Tilera Corporation Protection in a parallel processing environment using access information associated with each switch to prevent data from being forwarded outside a plurality of tiles
    US8014387B2 (en) * 2007-08-27 2011-09-06 International Business Machines Corporation Providing a fully non-blocking switch in a supernode of a multi-tiered full-graph interconnect architecture
    US7822889B2 (en) * 2007-08-27 2010-10-26 International Business Machines Corporation Direct/indirect transmission of information using a multi-tiered full-graph interconnect architecture
    US8185896B2 (en) * 2007-08-27 2012-05-22 International Business Machines Corporation Method for data processing using a multi-tiered full-graph interconnect architecture
    US7904590B2 (en) * 2007-08-27 2011-03-08 International Business Machines Corporation Routing information through a data processing system implementing a multi-tiered full-graph interconnect architecture
    US8140731B2 (en) * 2007-08-27 2012-03-20 International Business Machines Corporation System for data processing using a multi-tiered full-graph interconnect architecture
    US7769892B2 (en) * 2007-08-27 2010-08-03 International Business Machines Corporation System and method for handling indirect routing of information between supernodes of a multi-tiered full-graph interconnect architecture

    Patent Citations (6)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    US6247167B1 (en) 1998-04-17 2001-06-12 Lsi Logic Corporation Method and apparatus for parallel Steiner tree routing
    US6718396B1 (en) 1999-08-04 2004-04-06 Hitachi, Ltd. Network structure method and route determination equipment
    US20030063614A1 (en) 2001-08-23 2003-04-03 Steven Teig Method and apparatus for storing routes for groups of related net configurations
    US20040098695A1 (en) 2002-11-18 2004-05-20 Steven Teig Method and apparatus for routing
    US7306977B1 (en) 2003-08-29 2007-12-11 Xilinx, Inc. Method and apparatus for facilitating signal routing within a programmable logic device
    US20060117288A1 (en) 2004-11-29 2006-06-01 Fujitsu Limited LSI physical designing method, program, and apparatus

    Also Published As

    Publication number Publication date
    JP2011516945A (ja) 2011-05-26
    DE112009000899T5 (de) 2011-03-17
    CN101572726A (zh) 2009-11-04
    RU2010149064A (ru) 2012-06-10
    JP5553413B2 (ja) 2014-07-16
    GB2472527B (en) 2012-08-22
    GB2472527A (en) 2011-02-09
    US20090274157A1 (en) 2009-11-05
    WO2009134655A2 (en) 2009-11-05
    WO2009134655A3 (en) 2010-03-18
    GB201017384D0 (en) 2010-11-24
    RU2479158C2 (ru) 2013-04-10

    Similar Documents

    Publication Publication Date Title
    DE112009000899B4 (de) Verfahren und Vorrichtung zur hierarchischen Verkehrsführung in gitterbasierten Multiprozessorsystemen
    DE102005032479B4 (de) Fernsteuerung eines Vermittlungsknotens in einem Stapel von Vermittlungsknoten
    DE60313371T2 (de) Verwendung von baumartigen "Bitmap" Datenstrukturen
    DE69434421T2 (de) Mehrdimenzionales verbindungs- und leitwegnetzwerk für einen mpp rechner
    DE60030737T2 (de) Hochleistungs-Vermittlungselement und -Vermittlungssystem
    DE69730392T2 (de) Verbindungsmatrix basierte Multikosten-Leitweglengkung
    DE60008102T2 (de) Verfahren und vorrichtung zur mehrfachsendung
    DE60316458T2 (de) Integrierter schaltkreis und verfahren zum erstellen von transaktionen
    DE60133648T2 (de) System und verfahren zum führen von laufzeitdaten in einem server-netzwerk
    DE60303309T2 (de) Snmp systemeinzelabbild eines am netzwerk angeschlossenen speichers
    DE202016008867U1 (de) Mehrschichtige Dienstgüte (Quality of Service, QoS) für Plattformen zur Virtualisierung von Netzwerkfunktionen
    WO2002013000A2 (de) Pipeline ct-protokolle und -kommunikation
    DE102015102871A1 (de) Technologien für verteilten Leitweglenkungstabellennachschlag
    DE112013001426B4 (de) Dynamische Optimierung einer Multicast-Baumhierarchie für einen verteilten Switch
    DE102009053578A1 (de) Verfahren und Vorrichtung zum Durchführen eines parallelen Routens unter Verwendung einer Multithreaded-Routing-Prozedur
    DE3506749A1 (de) Matrixprozessor und steuerverfahren hierfuer
    DE102020110143A1 (de) Standortbasierte virtualisierungs-workload-platzierung
    DE112016006514T5 (de) Verfahren und Datenverarbeitungssystem zum Verwalten von Datenstromverarbeitungstasks einervordefinierten Anwendungstopologie
    DE202016107141U1 (de) Netzwerk stochastische Kreuzschicht-Optimierung zum Erreichen des Verkehrsflussverfügbarkeitziels zu Mindestkosten
    DE102021127325A1 (de) Flexibles hochverfügbarkeits-computing mit parallel konfigurierbaren geweben
    DE202015009265U1 (de) Einheitliche api zur programmierung beider server und des fabric für die feinoptimieirung von netzwerken
    DE102013111341A1 (de) Blockierungsfreies routing in fat-tree-netzwerken
    DE60304707T2 (de) Vlan-vererbung
    DE102010027687B4 (de) Vermaschtes Funknetz, Netzknoten, Netzwerkkoordinator und Verfahren zum Routing von Datenpaketen in einem vermaschten Funknetz
    DE102021108581A1 (de) Nicht isolierte topologien in computernetzwerkumgebungen

    Legal Events

    Date Code Title Description
    OP8 Request for examination as to paragraph 44 patent law
    R079 Amendment of ipc main class

    Free format text: PREVIOUS MAIN CLASS: H04W0040020000

    Ipc: H04L0012560000

    R079 Amendment of ipc main class

    Free format text: PREVIOUS MAIN CLASS: H04W0040020000

    Ipc: H04L0012560000

    Effective date: 20120522

    R079 Amendment of ipc main class

    Free format text: PREVIOUS MAIN CLASS: H04L0012560000

    Ipc: H04L0012751000

    R079 Amendment of ipc main class

    Free format text: PREVIOUS MAIN CLASS: H04L0012560000

    Ipc: H04L0012751000

    Effective date: 20121120

    R079 Amendment of ipc main class

    Free format text: PREVIOUS MAIN CLASS: H04L0012751000

    Ipc: H04L0012715000

    R079 Amendment of ipc main class

    Free format text: PREVIOUS MAIN CLASS: H04L0012751000

    Ipc: H04L0012715000

    Effective date: 20140602

    R016 Response to examination communication
    R016 Response to examination communication
    R018 Grant decision by examination section/examining division
    R020 Patent grant now final
    R079 Amendment of ipc main class

    Free format text: PREVIOUS MAIN CLASS: H04L0012715000

    Ipc: H04L0045640000