DE112009000834B4 - Expressvirtuelle Kanäle in einem Paketvermittelten Auf-Chip Verbindungsnetzwerk - Google Patents
Expressvirtuelle Kanäle in einem Paketvermittelten Auf-Chip Verbindungsnetzwerk Download PDFInfo
- Publication number
- DE112009000834B4 DE112009000834B4 DE112009000834.8T DE112009000834T DE112009000834B4 DE 112009000834 B4 DE112009000834 B4 DE 112009000834B4 DE 112009000834 T DE112009000834 T DE 112009000834T DE 112009000834 B4 DE112009000834 B4 DE 112009000834B4
- Authority
- DE
- Germany
- Prior art keywords
- express
- flow control
- node
- virtual channel
- control unit
- 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
Links
- 235000003642 hunger Nutrition 0.000 claims abstract description 29
- 230000037351 starvation Effects 0.000 claims abstract description 28
- 238000000034 method Methods 0.000 claims abstract description 24
- 239000000872 buffer Substances 0.000 claims description 61
- 230000003068 static effect Effects 0.000 claims description 14
- 230000002265 prevention Effects 0.000 claims description 10
- 230000003139 buffering effect Effects 0.000 abstract description 5
- 208000018721 fetal lung interstitial tumor Diseases 0.000 description 54
- 238000010586 diagram Methods 0.000 description 15
- 238000007726 management method Methods 0.000 description 12
- 238000011144 upstream manufacturing Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000004172 quinoline yellow Substances 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 230000001447 compensatory effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/33—Flow control; Congestion control using forward notification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/40—Wormhole routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2425—Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
- H04L47/2433—Allocation of priorities to traffic types
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/101—Packet switching elements characterised by the switching fabric construction using crossbar or matrix
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
- 1. Gebiet der Erfindung
- Die vorliegende Erfindung betrifft allgemein das Feld der Kommunikation zwischen Komponenten auf einem Chip Multi-Prozessor. Die vorliegende Erfindung betrifft weiter insbesondere das Erzeugen von expressvirtuellen Kommunikationskanälen zwischen Komponenten auf einem Chip-Multi-Prozessor.
- 2. Einleitung
- Ein ChipMulti-Prozessor (CMP) oder ASOC (Application-specific Systems-On-a-Chip) kann eine Vielzahl von Komponenten aufweisen, die miteinander kommunizieren. Diese Komponenten können solche Gegenstände wie ein Prozessor, ein Cache, ein Datenregister, oder andere Chipkomponenten sein. Die Chipkomponenten können unter Benutzung eines Bussystems oder eines hierfür vorgesehenen Verdrahtungssystems kommunizieren. Jedes dieser Systeme kann eine große Menge an Verdrahtung benötigen, die wertvollen Platz auf dem Chip aufbraucht, und auch Interferenzen zwischen den Signalen erzeugen kann.
- Die Komponenten können in platzeffizienterer Weise unter Benutzung eines Paket-Vermittlungs-Systems (packet switching system) kommunizieren. Ein Paket-Vermittlungs-System kann durch Übermitteln von Paketen von Daten von Komponente an Komponente arbeiten und dadurch die Anzahl der Verdrahtung zwischen beliebigen zwei Komponenten verringern.
-
US 2005/0251500 A1 -
US 2005/0100025 A1 - Die
US 2006/0092832 A1 - KURZE BESCHREIBUNG DER ZEICHNUNGEN
- Es wird darauf hingewiesen, dass diese Zeichnungen nur typische Ausführungen der Erfindung darstellen und daher nicht als beschränkend für den Schutzbereich der Erfindung betrachtet werden sollen, wobei die Erfindung mit zusätzlichen Spezifikationen und Details beschrieben und erläutert wird unter Benutzung der beigefügten Zeichnungen, in denen:
-
1 ein Blockdiagramm eines Ausführungsbeispiels eines Chip Multiprozessor Komponentendatenpaketübertragungssystems zeigt. -
2 ein zweidimensionales Gitternetzwerk in einem Ausführungsbeispiel einer Komponentennetzwerk zeigt. -
3 ein Blockdiagramm einer Ausführung einer Router-Knotenmikroarchitektur, die einen expressvirtuellen Kanal darstellt. -
4 ein zweidimensionales Gitternetzwerk in einem Ausführungsbeispiel eines dynamischen expressvirtuellen Kanalkomponentennetzwerks auf einem Chip zeigt. -
5 ein Blockdiagramm eines Ausführungsbeispiels eines routen-flexiblen dynamischen expressvirtuellen Kanalkomponentennetzwerks auf einem Chip zeigt. -
6 ein Flussdiagramm eines Ausführungsbeispiels eines Verfahrens für einen Routerknoten, um ein Datenpaket von einem virtuellen Netzwerk zu verarbeiten zeigt. -
7 ein Gitternetzwerk eines Ausführungsbeispiels eines Ereignisses des Verhungerns in einem expressvirtuellen Kanalnetzwerk zeigt. -
8 eine Zeitlinie eines Ausführungsbeispiels eines normalen virtuellen kanalkredit-basierten Puffermanagementsystems zeigt. -
9 eine Zeitlinie eines Ausführungsbeispiels eines expressvirtuellen kanalkredit-basierten Puffermanagementsystems zeigt. -
10 ein Blockdiagramm eines Ausführungsbeispiels einer Pufferzählung für ein statisches Puffermanagementsystem zeigt. -
11 ein Blockdiagramm eines Ausführungsbeispiels eines Pufferzählens für ein dynamisch geteiltes Puffermanagementsystem zeigt. -
12 ein Blockdiagramm eines Ausführungsbeispiels einer Kombination von Faden, die zu und von einem vorgegebenen Knoten zugänglich sind, zeigt. -
13 ein Blockdiagramm eines Ausführungsbeispiels eines statischen Aufteilens von virtuellen Kanälen zeigt. -
14 ein Blockdiagramm eines Ausführungsbeispiels eines Computersystems, das als Routerknoten arbeiten kann, zeigt. - DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
- Zusätzliche Merkmale und Vorteile der Erfindung werden im Folgenden in der Beschreibung erläutert und werden teilweise aus der Beschreibung klar werden oder können durch die Ausführung der Erfindung erlernt werden. Merkmale und Vorteile der Erfindung können mittels dieser Instrumente und Kombinationen insbesondere denen in den angefügten Ansprüchen realisiert und erhalten werden. Diese und weitere Merkmale der vorliegenden Erfindung werden vollständig aus der nachfolgenden Beschreibung und den angehängten Ansprüchen ersichtlich, oder können durch das in die Praxis setzen der Erfindung erlernt werden, wie dies im Folgenden beschrieben ist.
- Verschiedene Ausführungen der Erfindung werden im Detail im Folgenden beschrieben. Während spezifische Implementierungen diskutiert werden, sollte verstanden werden, dass dies nur für Darstellungszwecke getan wird. Eine Person, die in der dargestellten Technik bewandert ist, wird erkennen, dass andere Komponenten und Konfigurationen genutzt werden können, ohne von dem Geist und Schutzbereich der Erfindung abzuweichen.
- Die vorliegende Erfindung umfasst eine Vielzahl von Ausführungen wie Verfahren, eine Vorrichtung und ein Satz von Computerbefehlen und andere Ausführungen, die zu dem Grundkonzept der Erfindung gehörig sind. Ein Verfahren, der Routerknoten und ein Satz von Befehlen zur Benutzung von expressvirtuellen Kanälen in einem Komponentennetzwerk auf einem Chip sind offenbart. Ein Eingabelink kann eine Express-Flusssteuerungseinheit von einem Quellknoten in einem paketvermittelten Netzwerk über einen expressvirtuellen Kanal empfangen. Ein Ausgabelink kann die Express-Flusssteuereinheit an einen Senkknoten senden. Ein Schalterallokator kann den die Express-Flusssteuereinheit direkt an den Ausgabelink weiterleiten.
- Ein Chip-Multiprozessor (CMP) oder ein ASOC (Application-specific System On a Chip) kann viele Komponenten aufweisen, die miteinander kommunizieren müssen. Diese Komponenten können Paketvermittlung nutzen, um Daten ohne Nutzung einer exzessiven Menge von Chipfläche zu übermitteln.
1 zeigt ein Blockdiagramm einer Ausführung eines Chip-Multiprozessorkomponentendatenübertragung100 . Eine Komponente, die als Quellknoten102 arbeitet, kann ein Satz von Daten in ein Datenpaket organisieren. Das Datenpaket kann in einem oder mehreren Steuereinheiten (FLITs) aufgeteilt sein. Der Quellknoten102 kann jedes FLIT an die nächste erreichbare Komponente übertragen. Die aufnehmende Komponente, die als Routerknoten104 arbeitet, kann die Daten an die nächste Komponente übermitteln, bis die Komponente erreicht ist, die als Senkknoten106 arbeitet. Der Pfad der FLIT folgt dem Quellknoten102 an den Senkknoten106 und kann in einem virtuellen Kanal organisiert sein. In einem normalen virtuellen Kanal (NVC)108 kann ein Quellknoten102 ein FLIT an einen Routerknoten104 übermitteln, der den FLIT puffern kann, den FLIT organisiert und andere FLITs, die durch die Pipeline kommen, und dann diese an die Ausgabeschnittstelle sendet, um sie an den nächsten Routerknoten104 oder den Senkknoten106 zu senden. - Ein expressvirtueller Kanal (EVC)
110 kann dazu genutzt werden, die Performance und die Energielücke zwischen einem Paket On-Chip Netzwerk und der idealen Verbindungsfläche dadurch zu schließen, dass die Latenz und Energie eines dedicated link genutzt werden. Ein EVC110 kann es den FLITs erlauben, die Zwischen-Routerknoten104 auszulassen entlang vordefinierter Pfade zwischen Paaren von Knoten. Ein FLIT, das auf einem EVC110 reist, kann ein Vorrang über anderen FLITs gegeben werden, um diesen zu erlauben, direkt den Outputlink zu nutzen, ohne zunächst gepuffert zu werden und durch die Pipelinerouter an jedem Routerknoten104 hindurch zu gehen. Der EVC110 kann die Erzeugung von Flüssen innerhalb des Netzwerks auf eine Weise erlauben, die ähnlich dem Schaltkreisschalten ist, ohne dass eine Schaltsetupphase eingeschaltet ist, was signifikant die Paketübertragungsdauer herabsetzt. Darüber kann dadurch, dass es einem FLIT erlaubt wird, virtuell den Zwischenrouterknoten104 zu umgehen, ein EVC110 die Menge des Pufferns reduzieren, die Aktivität des Routerschaltens und eine Pro-sprung-Ressourcen-Verstopfung, wodurch die Energie und Effizienz pro Fläche verbessert wird. -
2 zeigt ein zwei-dimensionales Gitternetzwerk eines Ausführungsbeispiels eines statischen EVC paketvermittelten Netzwerks200 . Während ein paketvermitteltes Chipmultiprozessornetzwerk beschrieben wird, kann ein EVC110 in jedem Paket geschalteten Netzwerk genutzt werden. Es wird darauf hingewiesen, dass die Größe und die zwei-dimensionale Natur des Gitternetzwerks nur illustrativ sind und in keiner Weise für die Zwecke dieser Erfindung definitiv notwendig. Jeder Knoten202 kann als Quellknoten102 dienen einen Routerknoten104 oder als Senkknoten106 . Jeder Knoten202 in dem Netzwerk200 kann mit einem benachbarten Knoten202 über ein NVC108 verbunden sein. Weiter kann ein Knoten202 mit einem nicht benachbarten Knoten durch ein EVC110 verbunden sein, was einem FLIT erlaubt eine Vielzahl von Zwischenknoten zu durchqueren oder Routerknoten104 entlang eines vordefinierten Pfades ohne stoppen oder puffern an einem Routerknoten104 . Zum Beispiel kann ein FLIT, das von dem Knoten B zu dem Knoten G reist, einen regulären NVC-Pfad108 vom Knoten B zum Knoten D nehmen und dann ein EVC110 oder eine Verbindung vom Knoten D zum Knoten G. Ein EVC110 kann die Latenz durch die Routerknoten104 eliminieren, wie zum Beispiel Knoten E und F, und kann Strom sparen durch Eliminieren aller Puffervorgänge in den Routerknoten104 . In einem statischen EVC Netzwerk können spezifische Quellknoten102 und Senkknoten106 durch einen EVC110 verbunden werden. Während ein statischer EVC110 von vier Knoten im vorliegenden Beispiel genutzt wird, kann ein statischer EVC110 mit größerer oder geringerer Länge, ebenso wie ausgewählt, genutzt werden. - Der Router kann die Expressverbindungen am Beginn einer virtuellen Kanalflusssteuerung implementieren. Der Router kann virtuelle Kanäle auswählen, die nur von Datenpaketen, die auf Expresspfaden reisen, genutzt werden.
3 zeigt ein Blockdiagramm eines Ausführungsbeispiels einer Routerknoten-Mikroarchitektur300 , die einen EVC110 implementiert. Ein Routerknoten104 kann ein FLIT über einen virtuellen Kanal auf einer Eingabeverbindung302 empfangen und den FLIT an ein Flusssteuerungsmodul304 übergeben. Die virtuellen Kanäle, die zur Flusssteuerung genutzt werden, können als NVCs108 und EVCs110 angeordnet sein. Das Flusssteuermodul304 kann virtuelle Kanäle nutzen, um eine FLIT Priorität zu bestimmen beim Auswählen welcher FLIT an einen bestimmten Ausgabelink306 weitergeleitet wird, der durch einen Querträgerschalter308 ausgewählt wird. - Ein Routenberechnungslogikmodul
310 kann die Routenberechnung berechnen oder einen Pfad eines Datenpaketes, das zwischen einem Quellknoten102 und einem Senkknoten106 reist, an jedem Knoten104 . Das Routenberechnungslogikmodul310 kann für die Qualifizierung, ob ein Datenpaket auf ein EVC110 gesetzt wird, verantwortlich sein. Zusätzlich kann die Routenberechnungslogik310 als Modul ein vorausschauendes Routing für alle Datenpakete durchführen, so dass, wenn einmal ein Datenpaket einen Knoten oder einen EVC Pfad110 Endpunkt erreicht, die Routenberechnung nicht im kritischen Pfad der Routerpipeline sein muss. Die Routenberechnung muss auf keine Weise den Basisroutingalgorithmus, der benutzt wird beeinflussen. Ein ECV-Allokator312 kann ein EVC110 an ein Datenpaket anfügen zum Zwecke der Nutzung eines Expresswegs, um zwischen einem Paar von Knoten befördert zu werden, während ein NVC-Allokator314 ein NVC108 oder ein anderes Datenpaket anfügen kann, um zu einem benachbarten Knoten zu reisen. - Das Flusssteuerungsmodul
304 kann die FLIT von einem EVC110 über einen EVC Eingabepuffer (EVC BUF)316 oder von einem NVC108 über einen NVC Eingabepuffer (NVC BUF)318 empfangen. Ein EVC Zwischenspeicher320 kann einen FLIT inszenieren, wenn es durch jeden Routerknoten104 auf seinem Expressweg110 passiert. Ein FLIT, das durch das EVC Zwischenregister320 übertragen wird, kann jeden anderen Datenpaketfluss auf dem gleichen Ausgabeport306 vorausnehmen. Der EVC Zwischenspeicher320 kann eine aktuelle Datenpaketübertragung zwischen zwei Knoten unterbrechen, so dass diese nicht durch einen Quellknoten102 übertragen werden, wie zum Beispiel ein Niedrigprioritäts-EVC-Fluss. - Ein Vermittlerallokator
322 kann einen EVC Fluss110 über einen NVC Fluss108 bevorzugen. Der Vermittlerallokator322 kann einen EVC Fluss110 von FLITs mit geringeren Sprüngen an den Quellknoten102 unterbrechen, so dass ein EVC Fluss110 der FLITs mit mehr Sprüngen jenen Routerknoten104 nutzen kann. Der Vermittlerallokator322 kann einen EVC Fluss110 der FLITs an einem näheren Quellknoten102 unterbrechen, so dass ein EVC Fluss110 der FLITs von einem entfernteren Knoten102 den Routerknoten104 nutzen kann. - Das Netzwerk
200 kann statistisch in EVCs110 und NVCs108 aufgeteilt werden oder kann auf mehr Dynamik erzeugte virtuelle Kanäle aufweisen.4 zeigt ein zweidimensionales Gitternetzwerk eines Ausführungsbeispiels eines dynamischen EVC paketvermittelten Netzwerks400 . In einem dynamischen EVC paketvermittelten Netzwerk400 kann jeder Satz von Sprüngen zwischen den Knoten202 als ein dynamisches EVC402 bezeichnet werden. Die Länge des EVC Pfades402 kann wie gewünscht für den Pfad eines vorgegebenen Datenpfades bemessen werden innerhalb einer maximalen EVC Länge, wie sie durch die Komponentenbeschränkungen des Netzwerks bestimmt ist. Zum Beispiel kann in einem statischen EVC Netzwerk200 ein Quellknoten102 von einem Knoten B zu einem Knoten C übertragen werden und von einem Knoten C zum Knoten D über einen Einzelsprung NVC Pfad108 und von Knoten D zu Knoten G über ein statistisch angeordneten EVC Pfad110 . In einem dynamischen Netzwerk, das einen Dreisprung maximalen EVC Pfad402 erlaubt, kann der Quellknoten102 ein FLIT direkt vom Knoten B zum Knoten E senden und kann dann eine Untergruppe des EVC Pfades402 auf einer Zweisprunglänge genutzt werden, um zum Knoten G usw. zu senden. -
5 zeigt ein Blockdiagramm eines Ausführungsbeispiels eines routenflexiblen dynamischen EVC Komponentennetzwerks auf einem Chip500 . Zu gewissen Zeiten kann ein Datenpfad nicht dazu in der Lage sein den optimalen EVC Pfad502 zu wählen, wie zum Beispiel den längsten EVC Pfad502 aufgrund von Ressourcenbeschränkungen. In diesem Fall kann ein Quellknoten102 ein FLIT über einen alternativen EVC Pfad504 senden, wie zum Beispiel den nächstkürzeren EVC Pfad504 mit den vorhandenen Ressourcen. Zum Beispiel kann der effizienteste Datenpfad für einen Quellknoten102 um ein FLIT an den Senkknoten G106 zu senden sein, ein FLIT direkt von dem Quellknoten zum Knoten D entlang eines ersten optimalen EVC Pfades502 zu senden, dann von einem Routerknoten D104 zum Senkknoten G106 entlang eines zweiten optimalen EVC Pfades502 . Jedoch kann der effizienteste Datenpfad nicht die notwendigen Resourcen aufweisen. Der Quellknoten A102 kann den FLIT entlang eines alternativen Pfades504 zum Absenkknoten senden. Der Quellknoten A102 kann den FLIT entlang eines alternativen EVC Pfades504 zum Routerknoten C104 senden, dann von dem Routerknoten C104 zum Routerknoten E104 und dann von dem Routerknoten E104 zum Absenkknoten106 . Der EVC Allokator212 kann die beste Route durch Betrachten der Routinginformation in dem Datenpaket bestimmen. -
6 stellt in einem Flussdiagramm ein Ausführungsbeispiel des Verfahrens600 einen Routerknoten dar, um ein FLIT von einem virtuellen Kanal zu bearbeiten. Der Routerknoten104 kann ein FLIT über einen virtuellen Kanal (VC) empfangen (Block602 ). Wenn der FLIT ein normaler FLIT (NF) ist (Block604 ), dann kann der Routerknoten104 den NF in einen Eingabepuffer (Block606 ) speichern und dann den NF bearbeiten (Block608 ). Ein NF kann ein FLIT sein für den der Routerknoten104 der Quellknoten102 ist, wobei ein FLIT, der an dem Routerknoten104 auftrifft von einem benachbarten Knoten auf ein NVC108 auftrifft oder ein FLIT für den der Routerknoten104 der Endpunkt eines EVC110 ist, aber der nicht der Absenkknoten106 ist. Der Eingabeport kann ein NVC Eingabepuffer318 sein, wenn auf einem NVC108 ankommend oder ein EVC Eingabepuffer316 , wenn auf einem EVC110 ankommend. Der Routerknoten104 kann den bearbeiteten NF an das Ausgabelink306 weiterleiten, auf Block610 . Wenn der FLIT ein Express FLIT ist (EF)110 (Block604 ), dann kann der Routerknoten104 den EF an den Ausgabelink306 weiterleiten (Block612 ). Ein Express FLIT kann ein FLIT sein, der von dem Routerknoten104 in der Mitte eines EVC110 empfangen ist. - In jedem Netzwerk, das vorreservierte Bandbreiten für spezifische Mitteilungsflüsse aufweist, kann ein Aushungern auftreten, wenn Mitteilungen, die auf voretablierten Schaltungen übertragen werden, andere Mitteilungen blockieren.
7 zeigt in einem Gatternetzwerk eine Ausführung eines Auftretens von Aushungern700 in einem EVC Netzwerk. Die höhere Priorität, die zu den EFs702 gegeben ist, kann zu einem Aushungerszenario704 führen. Insbesondere kann, wenn ein Routerknoten D104 entlang des Pfades eines EVC702 immer ein EF zur Bedienung Einkommen besitzt ein NF, das lokal an dem Routerknoten D104 gepuffert ist, nie eine Chance bekommen, den physikalischen Kanal zu nutzen. Ein Expressdatenpaket von weiter aufwärts kann auch kontinuierlich ein Expressdatenpaket auf einem anderen EVC110 aushungern, das von einem weiter abwärts gelegenen Router stammt. - Um dies zu beheben, kann jeder Routerknoten
104 eine Zählung der Anzahl von aufeinander folgenden Zyklen durchführen, für die der Routerknoten104 als spezifischer EVC Pfad110 diente. Nachdem Express FLITs für eine Grenzanzahl von aufeinander folgenden Zyklen bedient wurden, kann der Routerknoten104 eine Aushungermitteilung senden, wie zum Beispiel eine Mitteilung „Beginne Aushungerverhinderung” oder ein „Aushungern AN” Token, oberhalb des EVC Quellknotens A102 entlang der Kreditkanäle. Bei Empfang dieses Tokens kann der Quellknoten A102 das Aussenden von EFs auf der entsprechenden Verbindung beenden, so dass ein lokal ausgehungerter FLIT bedient wird. Nachdem so für eine vorgewählte Anzahl von Zyklen verfahren wurde, kann der Routerknoten D104 ein „Beende die Verhungerungsverhinderung” Mitteilung oder ein „Verhungern AUS”-Token an den EVC Quellknoten102 senden, das anzeigt, dass die EVC Kommunikation fortgesetzt werden kann. - Wie in
6 für ein EF dargestellt, kann, wenn ein NF für den gleichen Ausgabeport306 bestimmt ist er gepuffert werden (Block614 ), der Routerknoten104 kann einen Aushungerzähler (SCT) um eins hochsetzen (Block616 ). Der Routerknoten104 kann den SCT prüfen, um zu sehen, ob er ein Verhungerungsniveau(STHR)-starvation treshold-erreicht hat (Block618 ). Wenn der SCT ein STRR erreicht hat (Block618 ), kann der Routerknoten104 damit beginnen eine „Beginn des Aushungernverhinderns” Mitteilung (BSRM) an vorangehende (upstream) zu senden an alle EVC Quellknoten102 (Block620 ). Nach einer Zeitdauer, die allen zutreffenden oberhalb gelegenen Knoten erlaubt den BSRM zu erhalten, kann der Routerknoten104 ein Aushungerverhinderungsmodus beginnen, währenddessen der Routerknoten keine EFs empfängt. Während der Routerknoten104 in einem Aushungerverhinderungsmodus ist, können die EVC Quellknoten102 die Übermittlung von EFs unterbrechen, die EFs umleiten oder andere Ausgleichsmaßnahmen treffen. Der Routerknoten104 kann den Aushungerungsverhinderungsdauer-Zähler (SRP) auf Null setzen (Block622 ). - Für einen NF ist dann, wenn der Routenknoten
104 nicht im Aushungerungsverhinderungsmodus ist (Block624 ), der Routerknoten104 dazu in der Lage den SCT auf null zu setzen (Block626 ). Wenn der Routerknoten104 im Aushungerungsverhinderungsmodus ist (Block624 ), kann der Routerknoten104 den SRP um eins hochsetzen, sobald der NF erfolgreich an den Ausgabeport306 geleitet wurde (Blcok628 ). Sobald die Verhungerungsverhinderungsperiode beendet ist (Blcok630 ), kann der Routerknoten104 ein „Ende Aushungerungsverhinderung”-Mitteilung (ESRM) an alle oberhalb gelegene EVC Quellknoten102 senden, um anzuzeigen, dass der Routerknoten104 wieder EFs empfängt (Block632 ). - Ein Komponentennetzwerk auf einem Chip kann verschiedene gepufferte Flusssteuertechniken nutzen, um die Puffer zu steuern und ihre Zugänglichkeit zwischen verschiedenen Routerknoten
104 zu kommunizieren. Der abwärts gelegene Knoten kann die Anzahl von erhältlichen freien Puffern an die oberhalb gelegenen Knoten durch Rückdruck (backpressure) kommunizieren. Kredit-basierte Puffermanagement (credit-based buffer management) kann den oberhalb gelegenen Router nutzen, um eine Zählung der Anzahl der freien Puffer zu ermöglichen, die stromab zugänglich sind. Die Zählung kann abwärts gezählt werden. Jedes Mal wenn ein FLIT ausgesendet wird, wodurch ein abwärts gelegener Puffer belastet wird. Wenn ein FLIT den abwärts gelegenen Knoten verlässt und den zugehörigen Puffer frei macht, kann ein Kredit zurück aufwärts gesandt werden und der entsprechende freie Pufferzähler kann wieder um eins hochgezählt werden. - Das Komponentennetzwerk kann einen einfaches Puffermanagementschema nutzen, um statistisch das Puffern an jeden virtuellen Kanal entsprechend der Verzögerung eines Kredit round-trip für den virtuellen Kanal zuzuweisen.
8 stellt eine Zeitlinie eines Auführungsbeispiels eines NVC108 kreditbasierten Puffermanagementsystems800 dar. Zum Zeitpunkt t1, wenn Knoten B ein FLIT an den nächsten Knoten sendet (Pfeil802 ), kann der Knoten B ein Kredit an den Knoten A zwischen t1 und t2 senden (Pfeil804 ). Knoten A kann den Kredit zwischen t2 und t3 verarbeiten (Pfeil806 ). Knoten A kann ein Kredit an einen vorangehenden Knoten senden (Pfeil804 ), während ein FLIT an den Knoten 8 zwischen t3 und t4 gesendet wird (Pfeil802 ). Knoten B kann das FLIT in der nicht-express Pipeline von t4 und t5 bearbeiten (Pfeil808 ). Dadurch kann die Kredit round-trip Verzögerung (TCRN) von t1 und t5 betragen. - Wenn ein EVC
110 genutzt wird, kann die Kommunikation der Pufferzugänglichkeit herabgesetzt werden über mehrere Sprünge, um Sicherzustellen, dass ein freier Puffer an einem nachgelagerten EVC Absenkknoten106 vorhanden ist. Multisprungkommunikation der Pufferzugänglichkeit kann dazu führen, dass eine längere Pufferumschlagszeit nötig ist, was einen nachteiligen Effekt auf den Durchsatz hat.9 zeigt in einer Zeitlinie eine Ausführung eines EVC110 kreditbasierten Puffermanagementsystems900 . Zum Zeitpunkt t1, wenn der Knoten D ein FLIT an den nächsten Knoten sendet (Pfeil902 ), kann der Knoten D ein Kredit an den Knoten A zwischen t1 und t2 senden (Pfeil904 ). Ein Knoten A kann den Kredit zwischen t2 und t3 verarbeiten (Pfeil906 ). Knoten A kann einen Kredit an einen vorangehenden Knoten senden (Pfeil904 ) während ein FLIT an den Knoten B zwischen t3 und t4 gesendet wird (Pfeil902 ). Knoten B kann den FLIT an den Ausgabelink als Teil einer Expresspipeline zwischen t4 und t5 weiterleiten (Pfeil908 ). Knoten B kann einen FLIT an den Knoten C zwischen t51 und t6 senden (Pfeil902 ). Knoten C kann den FLIT an den Ausgabelink weiterleiten als Teil einer Expresspipeline von t6 und t7 (Pfeil908 ). Knoten C ein FLIT an den Knoten D zwischen t7 und t8 senden (Pfeil902 ). Knoten C kann den FLIT in der nicht-express Pipeline zwischen t8 und t9 verarbeiten (Pfeil910 ). Dadurch kann die TCRE-Verzögerung (credit round trip delay TCRE) zwischen t1 und t9 betragen. - Das Puffermanagementsystem kann die Puffer statisch organisieren.
10 zeigt ein Blockdiagramm eines Ausführungsbeispiels eines Pufferzählers für ein statisches Puffermanagementsystem1000 . Eine statische Anzahl von Puffern kann jedem virtuellen Kanal zugeordnet werden reserviert für FLITs, die auf jedem virtuellen Kanal ankommen. Ein NVC-Satz von Puffern1002 kann für jedes NVC108 reserviert werden und ein EVC-Satz von Puffern1004 kann für jedes EVC110 reserviert werden. Die Größe jedes EVC-Satzes von Puffern1004 kann die TCRE in Betracht ziehen, wenn die Anzahl der Puffer fest in dem Satz festgelegt wird. - Statisches Puffermanagement kann ineffizient beim Zuordnen der Puffer für den Fall von Gegenläufigem Verkehr sein. Zum Beispiel ist die überwiegende Zahl von Netzwerktraffik nur mit einem zwischenliegenden Nachbarn, und ein EVC
110 kann unter Umständen nie benutzt werden, und der Pufferplatz der statisch den EVCs110 zugeordnet ist, wird dann ungenutzt verbleiben. Anstelle des statischen Partitionieren der Puffer in VCs, wie zum Beispiel NVC108 und EVC110 , können die Puffer an einen VC „on demand” vergeben werden. Ein Hochwassermarkenschema zur Signalisierung der Existenz eines EVC an ein oberhalb gerichteten Knoten, kann Kurzsprung EVCs402 oder NVCs108 über längere Sprünge als Puffer mit Priorität versehen, sowie Puffer frei werden. Zum Beispiel kann ein Zweisprung EVC402 wenigstens acht Puffer benötigen, um zugäbglich („available”) zu werden und dann kann der abwärts gelegene Router ein Signal an den aufwärts gelegenen Router senden, dass ein EVC402 zwei Knoten entfernt zugänglich ist, wenn der Pufferzähler an dem abwärts gelegenen Router acht beträgt. Den Puffern kann erlaubt werden, frei über VCs zu floaten, so dass ein VC nur ein FLIT haben kann. -
11 zeigt ein Blockdiagramm eines Ausführungsbeispieles eines Pufferzählers für ein dynamisch geteiltes Puffermanagementsystem1100 . Der Pufferzähler1102 kann die Anzahl der zugänglichen oder freien Puffer bezeichnen. Wenn der Pufferzähler1102 anzeigt, dass die Anzahl der Puffer die zugänglich gleich der NVC-Grenzanzahl1104 ist oder der Anzahl der Puffer, die dazu benötigt werden, den NVC108 zu betreiben, kann der Knoten ein NVC108 nutzen. Wenn die Pufferanzahl1102 anzeigt, dass die Anzahl der Puffer gleich der EVC Grenzanzahl1106 ist oder der Anzahl der Puffer, die dazu benötigt werden, den EVC402 zu betreiben, kann der Knoten ein EVC402 nutzen. Die EVC Grenze1106 kann mit einer Länge des EVC Pfades402 in Bezug stehen. - Um flexibles Puffern zu erlauben, kann der abwärts gelegene Router entsprechende Signale an aufwärts gelegene Router senden müssen.
12 zeigt ein Blockdiagramm eines Ausführungsbeispiels einer Kombination der Pfade1200 , die zu und von einem vorgegebenen Knoten möglich sind. Während ein Acht-Knoten Netzwerk dargestellt ist, können andere Größen von Netzwerken genutzt werden. - Die VCs können statisch partitioniert sein.
13 stellt ein Blockdiagramm eines Ausführungsbeispiels einer statischen Partitionierung1300 von virtuellen Kanälen dar. Die totale Anzahl der VCs1302 oder Paketstatustrackers kann zwischen beiden NVCs108 und den unterschiedlichen Längen EVCs402 geteilt werden. Diese Teilung kann zum Zeitpunkt der Auslegung erfolgen. Für ein Komponentennetzwerk, das eine Fähigkeit für EVC Längen von bis zu IMAX besitzt, ist die Summe von (k × IMAX) Satz von virtuellen Kanälen vorsehbar. Das Komponentennetzwerk kann k1 virtuelle Kanäle1302 für NVCs108 zuweisen, k2 virtuelle Kanäle für EVC402 der Länge zwei, k2 virtuelle Kanäle für EVC402 der Länge drei, usw. -
14 zeigt eine mögliche Konfiguration eines Computersystems1400 , um also Routerknoten104 in einem paket-vermittelten Netzwerk betrieben zu werden. Der Routerknoten104 kann einen Controller/Prozessor1410 umfassen, eine Speicher1420 , ein Netzwerkinterface1430 , das mittels eines Busses1440 verbunden ist. Der Routerknoten104 kann jedes Betriebssystem, wie zum Beispiel Microsoft Windows®, UNIX oder LINUX zum Beispiel implementieren. Client und Serversoftware können in jeder Programmiersprache, zum Beispiel C, C+++, Java oder Visual Basic zum Beispiel geschrieben werden. Die Serversoftware kann auf einem application framework, wie zum Beispiel Java®, Server oder .NET® framework betrieben werden. - Der Controller/Prozessor
1410 kann jeder programmierbare Prozessor, der dem Fachmann bekannt ist, sein. Jedoch kann die Entscheidungsunterstützungsmethode auch auf einem allgemeinen oder einem speziell dafür vorgesehenem Computer implementiert werden, einem programmierbaren Mikroprozessor oder Mikrokontroller, peripheren integrierten Schaltkreisen, einem applikationsspezifischen Schaltkreis oder anderen integrierten Schaltkreisen, Hardware/Elektronikschaltkreisen, wie zum Beispiel einem diskreten Elementschaltkreis, einem programmierbaren Logikgerät, wie zum Beispiel einem programmierbaren Logikarray, einem programmierbaren Feldgatterarray oder dgl. Im Allgemeinen kann jedes Gerät oder Geräte, die dazu geeignet sind, die EVC(express virtual channel)-Routingmethoden zu implementieren, wie diese hierin beschrieben sind, dazu genutzt werden, die Entscheidungsunterstützungsfunktionen dieser Erfindung zu implementieren. - Der Speicher
1420 kann flüchtigen oder nichtflüchtigen Datenspeicher umfassen inklusive ein oder mehrerer elektrischer, magnetischer oder optischer Speicher, wie zum Beispiel RAM (random access memory), Cache, Festplattenspeicher oder andere Speichereinrichtungen. Der Speicher kann einen Cache aufweisen, um den Zugriff auf spezifische Daten zu beschleunigen. Der Speicher1420 kann auch mit einer CD-ROM (compact disk – read only memory), einer DVD-ROM (digital video disc – read only memory) einer DVD read/write input, einem Bandgerät oder anderen entfernbaren Speichereinrichtungen verbunden sein, die es Daten erlauben, direkt in das System eingeladen zu werden. - Die Netzwerkverbindungsschnittstelle
1430 kann mit einer Kommunikationseinrichtung, einem Modem, einer Netzwerkschnittstellenkarte, einem Transceiver oder jedem anderen Gerät verbunden werden, das dazu in der Lage ist, Signale von einem Netzwerk zu empfangen. Die Netzwerkverbindungsschnittstelle1430 kann dazu benutzt werden, den Routerknoten104 an das Netzwerk zu verbinden. Die Komponenten des Routernetzwerkes104 können zum Beispiel über einen elektrischen Bus1440 verbunden werden oder drahtlos miteinander verlinkt. - Nutzersoftware und Datenbanken, die von einem Kontroller/Prozessor
1410 vom Speicher1420 zugegriffen werden, können zum Beispiel Datenbankanwendungen, Textverarbeitungen wie auch Komponenten umfassen, die Entscheidungsunterstützungsfunktionalität der vorliegenden Erfindung verkörpern. Der Routerknoten104 kann jedes Betriebssystem, wie zum Beispiel Microsoft Windows®, UNIX oder LINUX zum Beispiel implementieren. Client und Serversoftware kann in jeder Programmiersprache, wie zum Beispiel C, C+++, Java oder zum Beispiel Visual Basic geschrieben sein. Obwohl nicht notwendig, ist die Erfindung wenigstens teilweise in Bezug auf Computer aufführbare Befehle wie Programmmodule, die von elektronischen Geräten ausgeführt werden, wie zum Beispiel einem Allzweckcomputer. Im Allgemeinen werden Programmmodule, Routineprogramme, Objekte, Komponenten, Datenstrukturen und dgl. enthalten, die bestimmte Aufgaben durchführen oder insbesondere abstrakte Daten implementieren. Darüber hinaus wird der Fachmann verstehen, dass andere Ausführungen der Erfindung im Netzwerk Umgebungen mit vielen Typen von Computersystemkonfigurationen eingesetzt werden können inklusive PCs, handgehaltenen Geräten, Multiprozessorsystemen, mikroprozessorbasierten oder programmierbaren elektronischen Nutzermedien, Netzwerk PCs, Minicomputer, Rechenzentren und dgl. - Obwohl nicht notwendig, ist die Erfindung wenigstens teilweise in Bezug auf Computer aufführbare Befehle wie Programmmodule, die von elektronischen Geräten ausgeführt werden, wie zum Beispiel einem Allzweckcomputer. Im Allgemeinen werden Programmmodule, Routineprogramme, Objekte, Komponenten, Datenstrukturen und dgl. enthalten, die bestimmte Aufgaben durchführen oder insbesondere abstrakte Daten implementieren. Darüber hinaus wird der Fachmann verstehen, dass andere Ausführungen der Erfindung im Netzwerk Umgebungen mit vielen Typen von Computersystemkonfigurationen eingesetzt werden können inklusive PCs, handgehaltenen Geräten, Multiprozessorsystemen, mikroprozessorbasierten oder programmierbaren elektronischen Nutzermedien, Netzwerk PCs, Minicomputer, Rechenzentren und dgl.
- Ausführungen können auch in verteilten Computerumgebungen eingesetzt werden, wo die Aufgaben durch lokale und Remoteprocessing-Geräte durchgeführt werden, die miteinander verbunden sind (entweder durch Hardwareverbindungen, drahtlose Verbindungen oder durch einen Kombination von diesen) mittels eines Kommunikationsnetzwerkes.
- Ausführungen innerhalb des Schutzbereichs der vorliegenden Erfindung, können auch computerlesbare Medien umfassen zum Durchführen oder um computerausführbare Befehle oder Datenstrukturen darauf zu speichern. Solche computerlesbare Medien können jedes zugängliche Medium sein, das von einem Allzweck- oder einem Spezialcomputer gelesen werden kann. Zum Beispiel und nicht beschränkend umfassen solche computerlesbaren Medien RAM, ROM, EEPROM, CD-ROM und andere optische Plattenspeicher, magnetische Plattenspeicher oder andere magnetische Plattengeräte oder jedes andere Medium, das dazu benutzt werden kann geeigneten Programmcode auszuführen oder zu speichern in der Form von computerausführbaren Befehlen oder Datenstrukturen. Wenn Information über ein Netzwerk übertragen oder zur Verfügung gestellt wird oder über eine andere Kommunikationsverbindung (entweder festverdrahtet, drahtlos oder eine Kombination dieser) an einen Computer, dann sieht der Computer die Verbindung als computerlesbares Medium. Daher ist jede solche Verbindung richtig als computerlesbares Medium beschrieben. Kombination aus dem obigen sollten innerhalb des Schutzbereichs computerlesbares Medium sein.
- Computerausführbare Befehle umfassen zum Beispiel auch Befehle und Daten, die einen Allzweckcomputer, einen Spezialcomputer oder ein für spezielle Verarbeitungsprozesse vorgesehenes Gerät dazu veranlassen, bestimmte Funktionen oder eine Gruppe von Funktionen durchzuführen. Computerausführbare Befehle umfassen auch Programmmodule, die von Computern in Einzelaufstellung oder Netzwerkumgebungen ausgeführt werden. Im Allgemeinen umfassen Programmmodule Routinen, Programme, Objekte, Komponenten- und Datenstrukturen, die bestimmte Aufgaben durchführen oder insbesondere abstrakte Datentypen implementieren. Computerlesbare Befehle, zugehörige Datenstrukturen und Programmmodule stellen Beispiele von Programmcodemitteln zum Durchführen von Schritten von den Methoden, die hierin beschrieben sind, dar. Die besondere Sequenz solcher ausführbaren Befehle oder zugehöriger Datenstrukturen stellt Beispiele für korrespondierende Ausführungen zum Implementieren der Funktionen, die in solchen Schritten beschrieben sind.
- Obwohl die obige Beschreibung spezifische Details umfasst, soll diese nicht als beschränkt und für die Ansprüche in irgendeiner Weise gesehen werden. Andere Konfigurationen der beschriebenen Ausführungen der Erfindung sind Teil des Schutzbereichs der Erfindung. Zum Beispiel können die Prinzipien der Erfindung auf jeden individuellen Nutzer angewendet werden, wobei jeder Nutzer individuell ein solches System einsetzen mag. Dieses setzt jeden Nutzer in die Lage, die Vorteile der Erfindung zu nutzen, sogar wenn eine der großen Anzahl möglicher Anwendungen nicht die Funktionalität, die hierin beschrieben ist, nutzt. Eine Vielzahl von Beispielen von elektronischen Geräten kann den Inhalt in verschiedenen möglichen Weisen verarbeiten. Es muss nicht notwendigerweise ein System sein, das von Endnutzern genutzt wird. Dementsprechend sind die angefügten Ansprüche und ihre Äquivalente einzig dazu geeignet, die Erfindung zu definieren und nicht spezifische Beispiele, die hierin gegeben wurden.
Claims (17)
- Ein Verfahren umfassend: Aufnehmen einer Express-Flusssteuerungseinheit aus einem Quellknoten eines paketvermittelten Netzwerks über einen expressvirtuellen Kanal; und Weiterleiten der Express-Flusssteuerungseinheit direkt an eine Ausgabeverbindung, um sie an einen Senkknoten zu senden, basierend auf einem Vergleich eines Starvation-Zählers und eines Starvation-Schwellenwertes, wobei der Starvation-Zähler jedesmal aktualisiert wird, wenn eine normale Flusssteuerungseinheit, die an die gleiche Ausgabeverbindung gerichtet ist wie die Express-Flusssteuerungseinheit, gepuffert wird, wobei die Express-Flusssteuerungseinheit einen oder mehrere Zwischen-Routerknoten entlang einem oder mehreren vordefinierten Pfaden zwischen Paaren von Knoten auslässt, ohne dass die Express-Flusssteuerungseinheit gepuffert und durch eine Router-Pipeline an jedem Routerknoten hindurchzugehen, und wobei die Express-Flusssteuerungseinheit gegenüber anderen Nichtexpress-Flusssteuerungseinheiten in dem paketvermittelten Netzwerk bevorzugt behandelt wird, wobei die Express-Flussteuerungseinheit auf dem expressvirtuellen Kanal übermittelt wurde.
- Verfahren nach Anspruch 1, weiter umfassend: Aufzeichnen der Express-Flusssteuerungseinheiten, die von dem expressvirtuellen Kanal empfangen wurden; Eintreten in einen Starvation-Verhinderungs-Modus, wenn der Starvation-Schwellenwert erreicht ist; und Übermitteln einer normalen Flusskontrolleinheit an einen benachbarten Knoten.
- Verfahren nach Anspruch 1, wobei der expressvirtuelle Kanal eine statische Sprunganzahl zwischen Knoten aufweist.
- Verfahren nach Anspruch 1, wobei der expressvirtuelle Kanal eine dynamische Sprunganzahl zwischen Knoten besitzt.
- Verfahren nach Anspruch 1, wobei der expressvirtuelle Kanal ein alternativer expressvirtueller Kanal ist, wenn ein optimaler expressvirtueller Kanal unerreichbar ist.
- Verfahren nach Anspruch 1, wobei der expressvirtuelle Kanal einen statisch zugeordneten Puffer besitzt.
- Verfahren nach Anspruch 1, wobei der expressvirtuelle Kanal einen dynamisch zugeordneten Puffer besitzt.
- Routerknoten, umfassend: einen Eingabelink um eine expressvirtuelle Steuerungseinheit von einem Quellknoten in ein paketvermitteltes Netzwerk über einen expressvirtuellen Kanal zu empfangen; eine Ausgabeverbindung, um eine Expressfluss-Kontrolleinheit an einen Senkknoten zu senden, basierend auf einem Vergleich eines Starvation-Zählers und eines Starvation-Schwellenwertes, wobei der Starvation-Zähler jedesmal aktualisiert wird, wenn eine normale Flusssteuerungseinheit, die an die gleiche Ausgabeverbindung gerichtet ist wie die Express-Flusssteuerungseinheit, gepuffert wird, wobei die Express-Flusssteuerungseinheit einen oder mehrere Zwischen-Routerknoten entlang einem oder mehreren vordefinierten Pfaden zwischen Paaren von Knoten auslässt, ohne dass die Express-Flusssteuerungseinheit gepuffert und durch eine Router-Pipeline an jedem Routerknoten hindurchzugehen; und einen Schalter-Allokator, um die Express-Flusssteuereinheit direkt an die Ausgabeverbindung zu senden, wobei die Express-Flusssteuerungseinheit gegenüber anderen Nichtexpress-Flusssteuerungseinheiten in dem paketvermittelten Netzwerk bevorzugt behandelt wird, wobei die Express-Flussteuerungseinheit auf dem expressvirtuellen Kanal übermittelt wurde.
- Routerknoten nach Anspruch 8, wobei der expressvirtuelle Kanal eine statische Sprunganzahl zwischen Knoten besitzt.
- Routerknoten nach Anspruch 8, wobei der expressvirtuelle Kanal eine dynamische Sprunganzahl zwischen Knoten besitzt.
- Routerknoten nach Anspruch 8, wobei der expressvirtuelle Kanal ein alternativer expressvirtueller Kanal ist, wenn ein optimaler expressvirtueller Kanal unerreichbar ist.
- Routerknoten nach Anspruch 8, wobei der expressvirtuelle Kanal einen statisch zugeordneten Puffer besitzt.
- Routerknoten nach Anspruch 8, wobei der expressvirtuelle Kanal einen dynamisch zugeordneten Puffer besitzt.
- Routerknoten nach Anspruch 8, wobei das paketvermittelte Netzwerk ein Chip-Multiprozessor ist.
- Satz von Befehlen in einem Speichermedium, wobei der Satz ausführbar durch einen Prozessor ist, um das Verfahren nach einem der vorstehenden Ansprüche 1 bis 7 zu implementieren.
- Satz von Befehlen nach Anspruch 15, weiter umfassend: Verfolgen der Express-Flusssteuerungseinheiten, die von dem expressvirtuellen Kanal empfangen wurden; Eintreten in einen Starvation-Verhinderungsmodus, wenn ein Starvation-Schwellenwert erreicht ist; und Übermitteln einer normalen Flusssteuerungseinheit an einen benachbarten Knoten.
- Satz von Befehlen nach Anspruch 15, wobei der expressvirtuelle Kanal ein alternativer expressvirtueller Kanal ist, wenn ein optimaler expressvirtueller Kanal unerreichbar ist.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/061,302 US8223650B2 (en) | 2008-04-02 | 2008-04-02 | Express virtual channels in a packet switched on-chip interconnection network |
US12/061,302 | 2008-04-02 | ||
PCT/US2009/038874 WO2009146025A2 (en) | 2008-04-02 | 2009-03-31 | Express virtual channels in a packet switched on-chip interconnection network |
Publications (2)
Publication Number | Publication Date |
---|---|
DE112009000834T5 DE112009000834T5 (de) | 2011-04-28 |
DE112009000834B4 true DE112009000834B4 (de) | 2017-05-24 |
Family
ID=41133227
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112009000834.8T Active DE112009000834B4 (de) | 2008-04-02 | 2009-03-31 | Expressvirtuelle Kanäle in einem Paketvermittelten Auf-Chip Verbindungsnetzwerk |
DE112009000836T Ceased DE112009000836T5 (de) | 2008-04-02 | 2009-03-31 | Adaptive Cache-Organisation für Chip-Multiprozessoren |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112009000836T Ceased DE112009000836T5 (de) | 2008-04-02 | 2009-03-31 | Adaptive Cache-Organisation für Chip-Multiprozessoren |
Country Status (9)
Country | Link |
---|---|
US (2) | US8223650B2 (de) |
JP (2) | JP5335892B2 (de) |
KR (1) | KR101170262B1 (de) |
CN (2) | CN101978659B (de) |
BR (2) | BRPI0911368A2 (de) |
DE (2) | DE112009000834B4 (de) |
GB (1) | GB2470878B (de) |
RU (1) | RU2487401C2 (de) |
WO (2) | WO2009146027A1 (de) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8223650B2 (en) | 2008-04-02 | 2012-07-17 | Intel Corporation | Express virtual channels in a packet switched on-chip interconnection network |
US8539130B2 (en) * | 2009-09-24 | 2013-09-17 | Nvidia Corporation | Virtual channels for effective packet transfer |
US9015448B2 (en) | 2010-06-17 | 2015-04-21 | Advanced Micro Devices, Inc. | Message broadcast with router bypassing |
JP5036920B1 (ja) * | 2011-03-09 | 2012-09-26 | パナソニック株式会社 | 中継装置、中継装置の制御方法、およびプログラム |
CN102437953B (zh) * | 2011-12-14 | 2014-07-30 | 清华大学 | 片上网络中的低功耗自适应路由方法 |
US20140237018A1 (en) * | 2011-12-23 | 2014-08-21 | Matteo Monchiero | Tracking distributed execution on on-chip multinode networks without a centralized mechanism |
WO2013095664A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Traffic control on an on-chip network |
US9647921B2 (en) | 2012-08-07 | 2017-05-09 | Qualcomm Incorporated | Statistics and failure detection in a network on a chip (NoC) network |
CN103383671A (zh) * | 2013-02-26 | 2013-11-06 | 西安交通大学 | 一种基于片上网络的dram通讯优化方法 |
US9166687B2 (en) * | 2013-03-28 | 2015-10-20 | Cisco Technology, Inc. | Method and apparatus for using credits to determine cable length |
US20150049758A1 (en) * | 2013-08-13 | 2015-02-19 | Utah State University | Hot carrier injection tolerant network on chip router architecture |
US10193827B2 (en) | 2013-08-13 | 2019-01-29 | Dean Michael Ancajas | Hot carrier injection tolerant network on chip router architecture |
WO2015038120A1 (en) * | 2013-09-12 | 2015-03-19 | Empire Technology Development Llc | Circuit switch pre-reservation in an on-chip network |
US9602587B2 (en) * | 2014-06-26 | 2017-03-21 | Altera Corporation | Multiple plane network-on-chip with master/slave inter-relationships |
JP6683711B2 (ja) * | 2014-12-29 | 2020-04-22 | オラクル・インターナショナル・コーポレイション | ネットワーキング装置において効率的な仮想出力キュー(voq)パケットフラッシングスキームをサポートするためのシステムおよび方法 |
CN104636085B (zh) * | 2015-01-27 | 2017-10-03 | 北京理工大学 | 一种片上网络消息缓冲区的存储管理模块 |
US9658675B1 (en) | 2015-02-19 | 2017-05-23 | Amazon Technologies, Inc. | Achieving power saving by a circuit including pluralities of processing cores based on status of the buffers used by the processing cores |
US9658676B1 (en) * | 2015-02-19 | 2017-05-23 | Amazon Technologies, Inc. | Sending messages in a network-on-chip and providing a low power state for processing cores |
CN105991428B (zh) * | 2015-03-05 | 2020-11-10 | 中兴通讯股份有限公司 | 交换机路由冲突的处理方法及装置 |
CN104683242B (zh) * | 2015-03-15 | 2018-05-25 | 西安电子科技大学 | 一种二维片上网络的拓扑结构以及路由方法 |
US20190199633A1 (en) * | 2017-12-27 | 2019-06-27 | Futurewei Technologies, Inc. | Method and apparatus for forwarding in information centric networking |
US11502934B2 (en) * | 2018-08-21 | 2022-11-15 | The George Washington Univesity | EZ-pass: an energy performance-efficient power-gating router architecture for scalable on-chip interconnect architecture |
CN110049104A (zh) * | 2019-03-15 | 2019-07-23 | 佛山市顺德区中山大学研究院 | 基于分层片上互连网络的混合缓存方法、系统及存储介质 |
US11386031B2 (en) * | 2020-06-05 | 2022-07-12 | Xilinx, Inc. | Disaggregated switch control path with direct-attached dispatch |
US11757798B2 (en) * | 2020-12-28 | 2023-09-12 | Arteris, Inc. | Management of a buffered switch having virtual channels for data transmission within a network |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030074493A1 (en) * | 2001-10-15 | 2003-04-17 | Advanced Mirco Devices, Inc. | Peripheral interface circuit for handling graphics responses in an I/O node of a computer system |
US6751190B1 (en) * | 1999-05-18 | 2004-06-15 | Cisco Technology, Inc. | Multihop nested tunnel restoration |
US20050100025A1 (en) * | 1994-08-31 | 2005-05-12 | Kabushiki Kaisha Toshiba | Network interconnection apparatus, network node apparatus, and packet transfer method for high speed, large capacity inter-network communication |
US20050251500A1 (en) * | 1999-03-03 | 2005-11-10 | Vahalia Uresh K | File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator |
US20060092832A1 (en) * | 2004-10-28 | 2006-05-04 | Ignatius Santoso | Stack manager protocol with automatic set up mechanism |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2563819B2 (ja) * | 1988-03-04 | 1996-12-18 | 日本電信電話株式会社 | 優先制御方法 |
US5875464A (en) * | 1991-12-10 | 1999-02-23 | International Business Machines Corporation | Computer system with private and shared partitions in cache |
US5388101A (en) * | 1992-10-26 | 1995-02-07 | Eon Corporation | Interactive nationwide data service communication system for stationary and mobile battery operated subscriber units |
JPH0816470A (ja) * | 1994-07-04 | 1996-01-19 | Hitachi Ltd | 並列計算機 |
JPH08256154A (ja) * | 1995-03-17 | 1996-10-01 | Nec Corp | Atmのセルバッファ制御方法 |
US6055618A (en) | 1995-10-31 | 2000-04-25 | Cray Research, Inc. | Virtual maintenance network in multiprocessing system having a non-flow controlled virtual maintenance channel |
US6285679B1 (en) | 1997-08-22 | 2001-09-04 | Avici Systems, Inc. | Methods and apparatus for event-driven routing |
US6009488A (en) | 1997-11-07 | 1999-12-28 | Microlinc, Llc | Computer having packet-based interconnect channel |
US20020150056A1 (en) | 1998-05-15 | 2002-10-17 | Martin Abadi | Method for avoiding broadcast deadlocks in a mesh-connected network |
US6338123B2 (en) * | 1999-03-31 | 2002-01-08 | International Business Machines Corporation | Complete and concise remote (CCR) directory |
US6674720B1 (en) * | 1999-09-29 | 2004-01-06 | Silicon Graphics, Inc. | Age-based network arbitration system and method |
JP2001156798A (ja) * | 1999-11-29 | 2001-06-08 | Hitachi Ltd | Vc切替え方法およびatm交換機 |
US20010049742A1 (en) * | 2000-05-31 | 2001-12-06 | Steely Simon C. | Low order channel flow control for an interleaved multiblock resource |
US20020146022A1 (en) | 2000-05-31 | 2002-10-10 | Van Doren Stephen R. | Credit-based flow control technique in a modular multiprocessor system |
US6842826B1 (en) * | 2000-06-07 | 2005-01-11 | International Business Machines Incorporated | Method and apparatus for providing efficient management of least recently used (LRU) algorithm insertion points corresponding to defined times-in-cache |
JP2002057710A (ja) * | 2000-08-11 | 2002-02-22 | Nippon Telegr & Teleph Corp <Ntt> | ショートカットパス経路選択方法 |
JP2002169787A (ja) * | 2000-11-30 | 2002-06-14 | Matsushita Electric Ind Co Ltd | 複数のプロセッサ部を含む半導体装置 |
US6907490B2 (en) * | 2000-12-13 | 2005-06-14 | Intel Corporation | Method and an apparatus for a re-configurable processor |
CN1269053C (zh) | 2001-02-24 | 2006-08-09 | 国际商业机器公司 | 分组路由方法、系统及用于分组路由的可扩展网络交换机 |
US6711662B2 (en) * | 2001-03-29 | 2004-03-23 | Intel Corporation | Multiprocessor cache coherence management |
US7126921B2 (en) | 2001-05-14 | 2006-10-24 | Tropic Networks Inc. | Packet network providing fast distribution of node related information and a method therefor |
JP2002342163A (ja) * | 2001-05-15 | 2002-11-29 | Fujitsu Ltd | マルチスレッドプロセッサ用キャッシュ制御方式 |
US6807599B2 (en) * | 2001-10-15 | 2004-10-19 | Advanced Micro Devices, Inc. | Computer system I/O node for connection serially in a chain to a host |
JP3679374B2 (ja) * | 2002-03-06 | 2005-08-03 | 日本電信電話株式会社 | ノードおよび光パスネットワークおよびプログラムおよび記録媒体 |
EP1495407A1 (de) * | 2002-04-08 | 2005-01-12 | The University Of Texas System | Vorrichtung mit ungleichförmigem cache, systeme und verfahren |
JP3678715B2 (ja) * | 2002-04-24 | 2005-08-03 | エヌイーシーコンピュータテクノ株式会社 | 分散共有メモリ型マルチプロセッサシステム及びそれに用いるタグ制御方法 |
US7096323B1 (en) * | 2002-09-27 | 2006-08-22 | Advanced Micro Devices, Inc. | Computer system with processor cache that stores remote cache presence information |
JP2004248085A (ja) * | 2003-02-14 | 2004-09-02 | Kyocera Corp | 経路決定方法および経路決定装置 |
US7433316B2 (en) | 2003-02-20 | 2008-10-07 | Hewlett-Packard Development Company, L.P. | Summarizing nodes in route propagation in auxiliary network for P2P overlay networks |
US7957428B2 (en) * | 2004-05-21 | 2011-06-07 | Intel Corporation | Methods and apparatuses to effect a variable-width link |
US20060080461A1 (en) * | 2004-06-02 | 2006-04-13 | Wilcox Jeffrey R | Packet exchange for controlling system power modes |
US7558920B2 (en) * | 2004-06-30 | 2009-07-07 | Intel Corporation | Apparatus and method for partitioning a shared cache of a chip multi-processor |
US7287122B2 (en) * | 2004-10-07 | 2007-10-23 | International Business Machines Corporation | Data replication in multiprocessor NUCA systems to reduce horizontal cache thrashing |
US20060248287A1 (en) * | 2005-04-29 | 2006-11-02 | Ibm Corporation | Methods and arrangements for reducing latency and snooping cost in non-uniform cache memory architectures |
US20070143546A1 (en) * | 2005-12-21 | 2007-06-21 | Intel Corporation | Partitioned shared cache |
JP4572169B2 (ja) * | 2006-01-26 | 2010-10-27 | エヌイーシーコンピュータテクノ株式会社 | マルチプロセッサシステム及びその動作方法 |
US7571285B2 (en) * | 2006-07-21 | 2009-08-04 | Intel Corporation | Data classification in shared cache of multiple-core processor |
US7773617B2 (en) * | 2006-11-08 | 2010-08-10 | Sicortex, Inc. | System and method for arbitration for virtual channels to prevent livelock in a richly-connected multi-processor computer system |
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 |
US8223650B2 (en) | 2008-04-02 | 2012-07-17 | Intel Corporation | Express virtual channels in a packet switched on-chip interconnection network |
-
2008
- 2008-04-02 US US12/061,302 patent/US8223650B2/en not_active Expired - Fee Related
-
2009
- 2009-03-31 CN CN2009801103939A patent/CN101978659B/zh active Active
- 2009-03-31 RU RU2010139595/07A patent/RU2487401C2/ru not_active IP Right Cessation
- 2009-03-31 WO PCT/US2009/038886 patent/WO2009146027A1/en active Application Filing
- 2009-03-31 DE DE112009000834.8T patent/DE112009000834B4/de active Active
- 2009-03-31 JP JP2011503088A patent/JP5335892B2/ja not_active Expired - Fee Related
- 2009-03-31 WO PCT/US2009/038874 patent/WO2009146025A2/en active Application Filing
- 2009-03-31 KR KR1020107022092A patent/KR101170262B1/ko active IP Right Grant
- 2009-03-31 BR BRPI0911368A patent/BRPI0911368A2/pt not_active IP Right Cessation
- 2009-03-31 JP JP2010546148A patent/JP5201514B2/ja not_active Expired - Fee Related
- 2009-03-31 GB GB1017257.5A patent/GB2470878B/en active Active
- 2009-03-31 DE DE112009000836T patent/DE112009000836T5/de not_active Ceased
- 2009-03-31 BR BRPI0911376A patent/BRPI0911376A2/pt not_active IP Right Cessation
- 2009-03-31 CN CN201310460325.3A patent/CN103501285B/zh active Active
-
2012
- 2012-07-17 US US13/551,537 patent/US9391913B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050100025A1 (en) * | 1994-08-31 | 2005-05-12 | Kabushiki Kaisha Toshiba | Network interconnection apparatus, network node apparatus, and packet transfer method for high speed, large capacity inter-network communication |
US20050251500A1 (en) * | 1999-03-03 | 2005-11-10 | Vahalia Uresh K | File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator |
US6751190B1 (en) * | 1999-05-18 | 2004-06-15 | Cisco Technology, Inc. | Multihop nested tunnel restoration |
US20030074493A1 (en) * | 2001-10-15 | 2003-04-17 | Advanced Mirco Devices, Inc. | Peripheral interface circuit for handling graphics responses in an I/O node of a computer system |
US20060092832A1 (en) * | 2004-10-28 | 2006-05-04 | Ignatius Santoso | Stack manager protocol with automatic set up mechanism |
Also Published As
Publication number | Publication date |
---|---|
BRPI0911376A2 (pt) | 2018-03-20 |
JP5335892B2 (ja) | 2013-11-06 |
WO2009146025A3 (en) | 2010-03-18 |
JP2011511989A (ja) | 2011-04-14 |
BRPI0911368A2 (pt) | 2017-02-07 |
KR101170262B1 (ko) | 2012-08-01 |
WO2009146027A1 (en) | 2009-12-03 |
US8223650B2 (en) | 2012-07-17 |
KR20100134004A (ko) | 2010-12-22 |
CN101978659A (zh) | 2011-02-16 |
DE112009000834T5 (de) | 2011-04-28 |
GB2470878A (en) | 2010-12-08 |
CN101978659B (zh) | 2013-11-06 |
CN103501285B (zh) | 2015-07-22 |
GB2470878B (en) | 2013-03-20 |
DE112009000836T5 (de) | 2011-04-28 |
RU2010139595A (ru) | 2012-04-10 |
US9391913B2 (en) | 2016-07-12 |
JP2011517903A (ja) | 2011-06-16 |
US20090252171A1 (en) | 2009-10-08 |
RU2487401C2 (ru) | 2013-07-10 |
WO2009146025A2 (en) | 2009-12-03 |
GB201017257D0 (en) | 2010-11-24 |
US20130070763A1 (en) | 2013-03-21 |
CN103501285A (zh) | 2014-01-08 |
JP5201514B2 (ja) | 2013-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112009000834B4 (de) | Expressvirtuelle Kanäle in einem Paketvermittelten Auf-Chip Verbindungsnetzwerk | |
DE112020002512T5 (de) | Systeme und verfahren zur verkehrsklassenbezogenen leitweglenkung | |
DE102005022110B4 (de) | Flußsteuerungsverfahren und -vorrichtung für das Eintreffen einzelner Pakete auf einem bidirektionalen Ringverbund | |
DE602006000516T2 (de) | Architektur eines Kommunikationsknoten in einem global asynchronen Netzwerk on-chip-System | |
DE69533680T2 (de) | Verfahren und Vorrichtung zur dynamischen Bestimmung und Zuteilung von Zugriffsguoten für ein gemeinsames Betriebsmittel | |
DE602005004529T2 (de) | Verfahren zum Verwalten einer Vielzahl von virtuellen Verbindungen zur gemeinsamen Nutzung auf einer Verbindungsleitung und Netzwerk zur Implementierung dieses Verfahrens | |
DE60117957T2 (de) | Verfahren, System und Rechnerprogrammprodukt zur Bandbreitenzuteilung in einem System mit Mehrfachzugriff | |
DE202018104604U1 (de) | Überlastungsvermeidung in einer Netzwerk-Switch-Vorrichtung | |
DE60222656T2 (de) | Vorrichtung und verfahren für effizientes multicasting von datenpaketen | |
DE112012000946T5 (de) | Versehsagbares Rechnen in virtualisierten verteilten Computersystemen basierend auf der Partitionierung von Rechenleistung und Kommunikationsleistung | |
DE102015119889A1 (de) | Verfahren für Netzwerkvorrichtungsfluss-Look-up-Verwaltung | |
DE102019105615A1 (de) | Technologien für leistungsbewusste planung für netzwerkpaketverarbeitung | |
EP0351014B1 (de) | Koppelfeld für ein Vermittlungssystem | |
DE112006002912T5 (de) | Verwaltung von On-Chip-Warteschleifen in geschalteten Netzwerken | |
DE102013111341A1 (de) | Blockierungsfreies routing in fat-tree-netzwerken | |
EP1911216B1 (de) | Verfahren zum phasenbezogenen scheduling des datenflusses in geschalteten netzwerken | |
DE112005001221T5 (de) | Verfahren und Vorrichtung zur synchronen ungepufferten Flusssteuerung von Paketen auf einer Ringverbindung | |
DE102019105065A1 (de) | Technologien zur gezielten flusssteuerungswiederherstellung | |
DE112019000666T5 (de) | Dynamische rekonfiguration einer softwarearchitektur für eine ccap (converged cable access platform) | |
CN109769020A (zh) | Cdn集群加速服务资源管理方法及装置、电子设备和存储介质 | |
DE112016005840T9 (de) | Drahtloses kommunikationsgerät, drahtloses kommunikationsverfahren und programm für drahtlose kommunikation | |
EP0564496B1 (de) | Verfahren zur vermittlung von nachrichten | |
DE102018004328B4 (de) | Technologien zur effektiven Bestimmung einer Überlastungsursache mit einem mehrstufigen Netzwerk-Switch | |
DE112019002009B4 (de) | Hierarchische Switching-Geräte | |
DE112018002716B4 (de) | Virtuelles Kanalrouting |
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: H04L0012560000 Ipc: H04L0012861000 |
|
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: H04L0012560000 Ipc: H04L0012861000 Effective date: 20121120 |
|
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: H04L0012861000 Ipc: H04L0012763000 |
|
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: H04L0012861000 Ipc: H04L0012763000 Effective date: 20140527 |
|
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: H04L0012763000 Ipc: H04L0045170000 |