DE112009000899T5 - 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
DE112009000899T5
DE112009000899T5 DE112009000899T DE112009000899T DE112009000899T5 DE 112009000899 T5 DE112009000899 T5 DE 112009000899T5 DE 112009000899 T DE112009000899 T DE 112009000899T DE 112009000899 T DE112009000899 T DE 112009000899T DE 112009000899 T5 DE112009000899 T5 DE 112009000899T5
Authority
DE
Germany
Prior art keywords
node
destination
area
packet
identifier
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.)
Granted
Application number
DE112009000899T
Other languages
English (en)
Other versions
DE112009000899B4 (de
Inventor
Aniruddha S. Mountain View Vaidya
Doddaballapur N. Sunnyvale 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 eines Gitternetzwerkes aus Knoten in eine Vielzahl von Partitionen, wobei jede Partition wenigstens einen Knoten umfasst;
Teilen einer ersten Partition in eine Vielzahl von rechtwinkeligen Bereichen; Festlegen eines Partitionsweges von einem Quellenbereich zu einem Zielbereich aus der Vielzahl der rechtwinkligen Bereiche;
Bereitstellen eines Bereichsweges von einem Bereichsquellenknoten innerhalb eines aus der Vielzahl der rechtwinkeligen Bereiche zu einem Bereichszielknoten innerhalb desselben rechtwinkeligen Bereichs;
Leiten eines Paketes von einem Quellenknoten innerhalb des Quellenbereiches zu einem Zielknoten innerhalb des Zielbereiches, wobei der Partitionsweg und der Bereichsweg verwendet werden.

Description

  • HINTERGRUND
  • 1. 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.
  • 2. 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 rechtwinkligen 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 rechtwinkligen 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 rechtwinkligen 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.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 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 rechtwinklige zusammen mit rechtwinkligen 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 rechtwinkliger 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 rechtwinkligen 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 rechtwinkligen Bereiche zu einem Bereichszielknoten 3 innerhalb eines aus der Vielzahl der rechtwinkligen 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 rechtwinklige 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 rechtwinkligen Bereiche 122, 124 und 126 zu einem Zielknoten innerhalb jedes aus der Vielzahl der rechtwinkligen 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 rechtwinklige 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 rechtwinkligen 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 rechtwinklige 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 rechtwinklige 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 rechtwinklige Partition ein Satz aus allen Knoten sein, die in einer zusammenhängenden Partition enthalten sind, die in einer rechtwinkligen 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 rechtwinklige Partition keinen „überschwappenden” Verkehr zu Verbindungen oder Routern außerhalb der Partition haben. Wenn in der Vorrichtung 100 lediglich rechtwinklige 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 rechtwinklige 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. Rechtwinklige 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 rechtwinkliger Gruppen von Partitionen (RGoP – Rectangular Group of Partitions) sind.
  • Eine RGoP ist ein Satz von Partitionen, die rechtwinklig oder zusammenhängend sein können oder nicht, jedoch in der Zusammenschau eine rechtwinklige 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 rechtwinklige und rechtwinklige Partitionen 210, 220, 230 und 240 gemäß einer Ausführungsform. Nicht rechtwinklige Partitionen müssten betrachtet werden, wenn man sich mit interner oder externer Fragmentierung befasst, die durch streng rechtwinklige 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 rechtwinklige Partitionen erlaubt, selbst wenn rechtwinklige Partitionen favorisiert werden. Wenn rechtwinklige Partitionen favorisiert werden, können sich Zuweisungen nicht rechtwinkliger Partitionen aus übergelassenen „Ausstechförmchen”-Zuweisungen einer oder mehrerer rechtwinkliger 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 rechtwinkliger 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 rechtwinkligen Partitionen, so wie der Partition 130, genügen würde, kann unzweckmäßig sein, um die Isolation bei nicht rechtwinkligen 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 rechtwinkligen Partitionen nicht nach außerhalb dieser Partition überschwappt.
  • Die vorliegende Offenbarung stellt solche Verkehrsführungsalgorithmen in nicht rechtwinkligen 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 rechtwinklige Partition kann aus verbundenen Bereichen, so wie rechtwinkligen Komponenten aufgebaut sein. Zum Beispiel kann eine O-fömige 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 rechtwinklige Komponenten könnten für irgendeine gegebene nicht rechtwinklige Partition erdacht werden. Eine solche Anordnung mit rechtwinkligen Komponenten kann für jede nicht rechtwinklige 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 4148 an zwei anderen anliegt. Wenn es als acht rechtwinklige 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 rechtwinklige Partition aufgebaut wird, kann jede rechtwinklige Komponente 30, 31, 32 und 33 als ein „Superknoten” behandelt werden. Benachbart liegende Superknoten aus rechtwinkligen Komponenten können durch eine „Superkante” verbunden werden. Die gegebene nicht rechtwinklige Partition kann nun durch einen verbundenen Supergraphen 330 dargestellt werden. Ein überspannender Baum 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 überspannenden Baum 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 rechtwinkligen 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:
    Figure 00100001
    Figure 00110001
  • 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 rechtwinklige 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 rechtwinklige Partitionen als auch eine hierarchische Verkehrsführung für eingeschränkte, nicht rechtwinklige 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. Teilwegtabeilen anstelle von Vollwegtabellen können verwendet werden. Die Größe der Teilwegtabellen kann gleich der maximalen Anzahl von rechtwinkligen Komponenten sein, die in der Gitter-Kopplungsstruktur unterstützt werden. Router innerhalb einer gegebenen nicht rechtwinkligen 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 rechtwinklige 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 von rechtwinkliger Bereiche aufteilen. Das Ablaufdiagramm 400 kann einen Baum der Vielzahl der rechtwinkligen Bereiche nach dem Aufteilen der ersten Partition erzeugen. Die Vielzahl der rechtwinkligen Bereiche kann eine Vielzahl benachbart liegender rechtwinkliger Bereiche sein. Im Block 440 kann das Ablaufdiagramm 400 einen Partitionsweg von einem Quellenbereich zu einem Zielbereich aus der Vielzahl der rechtwinkligen Bereiche festlegen. Das Ablaufdiagramm 400 kann einen Partitionsweg von einem Quellenbereich zu einem Zielbereich aus der Vielzahl der rechtwinkligen 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 rechtwinkligen Bereiche zu einem Bereichszielknoten innerhalb desselben rechtwinkligen Bereiches zur Verfügung stellen. Das Zurverfügungstellen eines Bereichsweges kann das Bereitstellen eines Bereichsweges von einem Bereichsquellenknoten innerhalb jedes aus der Vielzahl der rechtwinkligen Bereiche zu einem Bereichszielknoten innerhalb desselben rechtwinkligen 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 Knotenmehreren 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 rechtwinkligen Partitionen verwenden. Sie kann außerdem die Verwendung nicht rechtwinkliger Partitionen in einer bezüglich des Leistungsverhaltens/Fehlfunktionen isolierten Weise, anstelle eines restriktiveren Ansatzes nur mit rechtwinkligen 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 rechtwinklige 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 rechtwinklig 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 rechtwinklige 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 rechtwinkligen 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 rechtwinklige Partition kann eine Zusammensetzung aus kleineren rechtwinkligen 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 rechtwinkligen 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.
  • Zusammenfassung
  • Ein Verfahren und eine Vorrichtung zur hierarchischen Verkehrsführung in Gittersystemen. Das Verfahren kann das Aufteilen 420 eines Gitternetzwerks aus Knoten in eine Vielzahl von Partitionen umfassen, wobei jede Partition wenigstens einen Knoten umfasst, das Teilen 430 einer ersten Partition in eine Vielzahl rechtwinkliger Bereiche, das Bestimmen 440 eines Partitionsweges von einem Quellenbereich zu einem Zielbereich aus der Vielzahl der rechtwinkligen Bereiche und das Bereitstellen 450 eines Bereichsweges von einem Quellenknoten innerhalb eines aus der Vielzahl der rechtwinkligen Bereiche zu einem Zielknoten innerhalb desselben rechtwinkligen Bereiches. Das Verfahren kann außerdem das Leiten 460 eines Paketes von einem Quellenknoten innerhalb des Quellenbereichs zu einem Zielknoten innerhalb des Zielbereichs, wobei der Partitionsweg und der Bereichsweg verwendet werden, umfassen.

Claims (20)

  1. Verfahren, das aufweist: Aufteilen eines Gitternetzwerkes aus Knoten in eine Vielzahl von Partitionen, wobei jede Partition wenigstens einen Knoten umfasst; Teilen einer ersten Partition in eine Vielzahl von rechtwinkeligen Bereichen; Festlegen eines Partitionsweges von einem Quellenbereich zu einem Zielbereich aus der Vielzahl der rechtwinkligen Bereiche; Bereitstellen eines Bereichsweges von einem Bereichsquellenknoten innerhalb eines aus der Vielzahl der rechtwinkeligen Bereiche zu einem Bereichszielknoten innerhalb desselben rechtwinkeligen Bereichs; Leiten eines Paketes von einem Quellenknoten innerhalb des Quellenbereiches zu einem Zielknoten innerhalb des Zielbereiches, wobei der Partitionsweg und der Bereichsweg verwendet werden.
  2. Verfahren nach Anspruch 1, bei dem die Vielzahl der rechtwinkeligen Bereiche eine Vielzahl benachbart liegender rechtwinkeliger Bereiche aufweist.
  3. Verfahren nach Anspruch 1, bei dem eine erste Partition aus der Vielzahl der Partitionen die Isolation bezüglich des Leistungsverhaltens gegenüber einer zweiten Partition aus der Vielzahl der Partitionen zur Verfügung stellt.
  4. Verfahren nach Anspruch 1, bei dem das Aufteilen des Gitternetzwerkes nicht rechtwinkelige Partitionen erlaubt, wobei die Isolation bezüglich des Leistungsverhaltens zwischen jedweden zwei Partitionen zur Verfügung gestellt wird.
  5. Verfahren nach Anspruch 1, bei dem das Bereitstellen eines Bereichsweges das Bereitstellen eines Bereichsweges von einem Bereichsquellenknoten innerhalb jedes der Vielzahl der rechtwinkeligen Bereiche zu einem Bereichszielknoten innerhalb desselben rechtwinkeligen Bereiches aufweist.
  6. Verfahren nach Anspruch 1, das weiter das 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.
  7. Verfahren nach Anspruch 6, 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.
  8. Verfahren nach Anspruch 7, das weiter das 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.
  9. 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.
  10. Verfahren nach Anspruch 1, bei dem das Bereitstellen eines Bereichsweges das Bereitstellen eines Bereichsweges von einem Bereichsquellenknoten innerhalb des Zielbereiches zu einem Bereichszielknoten innerhalb des Zielbereichs aufweist.
  11. Verfahren nach Anspruch 1, das weiter das Erzeugen eines Baumes aus der Vielzahl der rechtwinkeligen Bereiche aufweist, wobei das Bestimmen das Bestimmen eines Partitionsweges von einem Quellenbereich zu einem Zielbereich der Vielzahl der rechtwinkeligen Bereiche aufweist, wobei eine Leitung von oben nach unten verwendet wird.
  12. Verfahren nach Anspruch 1, bei dem das Leiten 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.
  13. Vorrichtung, die aufweist: ein Gitternetzwerk, das eine Vielzahl von Knoten umfasst; und einen Controller, der mit dem Gitternetzwerk gekoppelt ist, wobei der Controller ein Modul zum Initialisieren des Umleitens umfasst, das so ausgelegt ist, dass es das Gitternetzwerk in eine Vielzahl von Partitionen aufteilt, wobei jede Partition wenigstens einen Knoten umfasst, und eine erste Partition in eine Vielzahl von rechtwinkeligen Bereichen teilt; und wenigstens ein lokales Umleitmodul, das mit einem Knoten aus der Vielzahl der Knoten gekoppelt ist, wobei das wenigsten eine lokale Umleitmodul so ausgelegt ist, dass es einen Partitionsweg von einem Quellenbereich zu einem Zielbereich aus der Vielzahl der rechtwinkeligen Bereiche festlegt, einen Bereichsweg von einem Bereichsquellenknoten innerhalb eines aus der Vielzahl der rechtwinkeligen Bereiche zu einem Bereichszielknoten innerhalb des einen aus der Vielzahl der rechtwinkeligen Bereiche zur Verfügung stellt und ein Paket von einem Quellenknoten innerhalb des Quellenbereiches zu einem Zielknoten innerhalb des Zielbereiches leitet, wobei der Partitionsweg und der Bereichsweg verwendet werden.
  14. Vorrichtung nach Anspruch 13, bei der das Modul zum Initialisieren des Umleitens so ausgelegt ist, dass es das Gitternetzwerk aufteilt, um nicht rechtwinkelige Partitionen zu erlauben, wobei eine Isolation bezüglich des Leistungsverhaltens zwischen wenigstens zwei Partitionen zur Verfügung gestellt wird.
  15. Vorrichtung nach Anspruch 13, bei dem das wenigstens eine lokale Umleitmodul einen Bereichsweg zur Verfügung stellt, indem ein Bereichsweg von einem Quellenknoten innerhalb jedes aus der Vielzahl der rechtwinkeligen Bereiche zu einem Zielknoten innerhalb jedes aus der Vielzahl der rechtwinkeligen Bereiche zur Verfügung gestellt wird.
  16. Vorrichtung nach Anspruch 13, bei dem das Modul 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.
  17. Vorrichtung nach Anspruch 16, bei der das wenigstens eine lokale Umleitmodul 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.
  18. Vorrichtung nach Anspruch 13, bei dem das Modul zum Initialisieren des Umleitens weiter so ausgelegt ist, dass jede aus der Vielzahl der Partitionen in eine Vielzahl von rechtwinkeligen Bereichen aufgeteilt wird, die eine Isolation bezüglich des Leistungsverhaltens haben.
  19. Verfahren, das aufweist: Aufteilen eines Gitternetzwerkes aus Knoten in eine Vielzahl von Partitionen, wobei jede Partition wenigstens einen Knoten umfasst, 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; Teilen einer ersten Partition in eine Vielzahl rechtwinkeliger Bereiche; Bestimmen eines Partitionsweges von einem Quellenbereich zu einem Zielbereich aus der Vielzahl der rechtwinkligen Bereiche; Bereitstellen eines Bereichsweges von einem Bereichsquellenknoten innerhalb des Zielbereiches zu einem Bereichszielknoten innerhalb des Zielbereiches; 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.
  20. Verfahren nach Anspruch 19, bei dem die Vielzahl der Partitionen eine Kombination aus rechtwinkeligen und nicht rechtwinkeligen Partitionen aufweist.
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 true DE112009000899T5 (de) 2011-03-17
DE112009000899B4 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
EP2944121B1 (de) * 2013-01-08 2019-03-20 Signify Holding B.V. Optimierung des weiterleitens von nachrichten in einem drahtlosen mesh-netzwerk
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
CN105247476A (zh) * 2013-06-29 2016-01-13 英特尔公司 片上网格互连
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 成都尽知致远科技有限公司 图像检索方法

Family Cites Families (29)

* 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
US6324674B2 (en) * 1998-04-17 2001-11-27 Lsi Logic Corporation Method and apparatus for parallel simultaneous global and detail routing
US6247167B1 (en) 1998-04-17 2001-06-12 Lsi Logic Corporation Method and apparatus for parallel Steiner tree routing
US6289495B1 (en) * 1998-04-17 2001-09-11 Lsi Logic Corporation Method and apparatus for local optimization of the global routing
US6567856B1 (en) * 1999-06-02 2003-05-20 Sun Microsystems, Inc. Deadlock-free routing
JP3625156B2 (ja) 1999-08-04 2005-03-02 株式会社日立製作所 ネットワーク構成方法及び経路決定装置
US7555566B2 (en) * 2001-02-24 2009-06-30 International Business Machines Corporation Massively parallel supercomputer
ITMI20011508A1 (it) * 2001-07-13 2003-01-13 Marconi Comm Spa Metodo per il routing in reti di telecomunicazioni
US7398498B2 (en) 2001-08-23 2008-07-08 Cadence Design Systems, Inc. Method and apparatus for storing routes for groups of related net configurations
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 半導体装置、半導体装置の設計方法及び設計装置、並びに半導体装置の設計プログラム
US6988257B2 (en) * 2002-11-18 2006-01-17 Cadence Design Systems, Inc. Method and apparatus for routing
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
US7306977B1 (en) 2003-08-29 2007-12-11 Xilinx, Inc. Method and apparatus for facilitating signal routing within a programmable logic device
US7486619B2 (en) * 2004-03-04 2009-02-03 International Business Machines Corporation Multidimensional switch network
JP4410088B2 (ja) * 2004-11-29 2010-02-03 富士通株式会社 半導体装置の設計支援方法、プログラム及び装置
US8656141B1 (en) * 2004-12-13 2014-02-18 Massachusetts Institute Of Technology Architecture and programming in a parallel processing environment with switch-interconnected processors
US7853774B1 (en) * 2005-03-25 2010-12-14 Tilera Corporation Managing buffer storage 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
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
US8140731B2 (en) * 2007-08-27 2012-03-20 International Business Machines Corporation System for data processing using a multi-tiered full-graph interconnect architecture
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
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
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
US8185896B2 (en) * 2007-08-27 2012-05-22 International Business Machines Corporation Method for data processing using a multi-tiered full-graph interconnect architecture

Also Published As

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

Similar Documents

Publication Publication Date Title
DE112009000899B4 (de) Verfahren und Vorrichtung zur hierarchischen Verkehrsführung in gitterbasierten Multiprozessorsystemen
DE69434421T2 (de) Mehrdimenzionales verbindungs- und leitwegnetzwerk für einen mpp rechner
DE102005032479B4 (de) Fernsteuerung eines Vermittlungsknotens in einem Stapel von Vermittlungsknoten
DE60035800T2 (de) Verfahren zum unterstützen von verteilten transaktionen mit jdbc 1.0 -treibern
WO2002013000A2 (de) Pipeline ct-protokolle und -kommunikation
DE202016008867U1 (de) Mehrschichtige Dienstgüte (Quality of Service, QoS) für Plattformen zur Virtualisierung von Netzwerkfunktionen
DE112014003287T5 (de) Dynamische Bildung von symmetrischen Multiprozessordomänen (SMP-Domänen)
DE102009053578A1 (de) Verfahren und Vorrichtung zum Durchführen eines parallelen Routens unter Verwendung einer Multithreaded-Routing-Prozedur
DE102016104478A1 (de) Kryptographische Verfahren, die Arbeitsnachweise in Systemen untereinander verbundener Knoten realisieren
EP0825524A1 (de) Verfahren zur Verwaltung der Benennung von Objekten
DE112018001156T5 (de) Skalierbare rechenzentrums-netzwerktopologie auf verteilter vermittlungseinheit
DE112013001426B4 (de) Dynamische Optimierung einer Multicast-Baumhierarchie für einen verteilten Switch
DE102017125649A1 (de) Verfahren zur Datenkommunikation unter Verwendung von Random-Netzwerkadressen und eine entsprechende Vorrichtung
DE202016107141U1 (de) Netzwerk stochastische Kreuzschicht-Optimierung zum Erreichen des Verkehrsflussverfügbarkeitziels zu Mindestkosten
DE112016006514T5 (de) Verfahren und Datenverarbeitungssystem zum Verwalten von Datenstromverarbeitungstasks einervordefinierten Anwendungstopologie
DE102021127325A1 (de) Flexibles hochverfügbarkeits-computing mit parallel konfigurierbaren geweben
EP1262051B1 (de) Verfahren zur steuerung der kommunikation von einzelrechnern in einem rechnerverbund
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
DE60111083T2 (de) Verwaltung von protokollinformationen in hierarchischen pnni-netzwerken
DE102021108581B4 (de) Nicht isolierte topologien in computernetzwerkumgebungen
EP1774434A1 (de) Netzwerkprozessor
DE60304707T2 (de) Vlan-vererbung
DE102022101070A1 (de) Flexible bereitstellung von netzwerk-slices in einem mobilfunknetz durch eine netzwerkexpositionsfunktion (nef)
EP0244605B1 (de) In integrierter Technik hergestellter Logik-Array-Baustein zur Erstellung integrierter Schaltungen

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