DE112010004006T5 - Zuverlässige kommunikationen in chipintegrierten netzwerken - Google Patents

Zuverlässige kommunikationen in chipintegrierten netzwerken Download PDF

Info

Publication number
DE112010004006T5
DE112010004006T5 DE112010004006T DE112010004006T DE112010004006T5 DE 112010004006 T5 DE112010004006 T5 DE 112010004006T5 DE 112010004006 T DE112010004006 T DE 112010004006T DE 112010004006 T DE112010004006 T DE 112010004006T DE 112010004006 T5 DE112010004006 T5 DE 112010004006T5
Authority
DE
Germany
Prior art keywords
packet
core
reliability
chip network
network
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.)
Pending
Application number
DE112010004006T
Other languages
English (en)
Inventor
wird später genannt werden Erfinder
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.)
Empire Technology Development LLC
Original Assignee
Empire Technology Development LLC
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 Empire Technology Development LLC filed Critical Empire Technology Development LLC
Publication of DE112010004006T5 publication Critical patent/DE112010004006T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17325Synchronisation; Hardware support therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Abstract

Es werden Techniken für eine zuverlässige Kommunikation in einem chipintegrierten Netzwerk eines Mehrkernprozessors bereitgestellt. Pakete werden mit Etiketten versehen, die Zuverlässigkeitsanforderungen für die Pakete definieren. Die Pakete werden gemäß den Zuverlässigkeitsanforderungen geleitet. Die Zuverlässigkeitsanforderungen und die Leitweglenkung, die sie verwendet, gewährleisten eine zuverlässige Kommunikation im chipintegrierten Netzwerk.

Description

  • HINTERGRUND
  • Der Entwurf und die Architektur von höchstintegrierten (VLSI für engl. very large scale integrated) Schaltungen, wie beispielsweise Prozessoren, sind ziemlich kompliziert. Es ist allgemein bekannt, dass oft Leistung geopfert wird, um einen zuverlässigen Betrieb des Prozessors zu gewährleisten. Mit der Entwicklung von Mehrkernprozessoren erlangt die Fähigkeit zur zuverlässigen Datenübermittlung eine größere Bedeutung.
  • Die Entwicklung von Mehrkernprozessoren führt zu zusätzlichen Verbindungen und zusätzlicher struktureller Komplexität. Die Verbindungsabschnitte zwischen Kernen können länger werden und die Ausbreitungszeit für Spannungspegel nimmt typischerweise zu. Außerdem machen es die starke Zunahme von Komponenten in Mehrkernprozessoren, das kleinere Format und die erhöhte Dichte von Transistoren und dergleichen zum Beispiel wahrscheinlich, dass chipintegrierte Schalter und Verbindungsabschnitte entweder periodisch oder dauerhaft ausfallen. Als Folge wird die Fähigkeit zur Datenübermittlung im chipintegrierten Netzwerk des Mehrkernprozessors unzuverlässiger.
  • Gleichzeitig gibt es viele Anwendungen, bei welchen eine zuverlässige Kommunikation eine Voraussetzung ist. Parallelisierte Anwendungen, welche über mehrere Kerne verteilt sind und von diesen ausgeführt werden, sind oft darauf angewiesen, dass, bevor sie weiterlaufen, die Aufgaben, die von diesen Kernen ausgeführt werden, abgeschlossen sind. Wenn die Kommunikation im chipintegrierten Netzwerk ausfällt, kann das System oder die Anwendung hängen bleiben oder anderweitig versagen.
  • Die Fähigkeit zur zuverlässigen Kommunikation zwischen Kernen ist eine wichtige Angelegenheit beim Entwurf von Mehrkernprozessoren. Wie bereits erwähnt, opfert die Entwicklung eines hochzuverlässigen Prozessors jedoch wahrscheinlich Leistung und erhöht wahrscheinlich die Kosten. Um die Leistung zu verbessern, müssen Anwendungen, die auf Mehrkernprozessoren ausgeführt werden, mit der Möglichkeit rechnen, eine zuverlässige Kommunikation bei einem verhältnismäßig unzuverlässigen chipintegrierten Netzwerk zu erreichen.
  • KURZE BESCHREIBUNG DER FIGUREN
  • 1 stellt eine veranschaulichende Ausführungsform eines Mehrkernprozessors dar;
  • 2 stellt ein Blockdiagramm einer veranschaulichenden Ausführungsform eines Kerns dar, der im Mehrkernprozessor enthalten ist;
  • 3 stellt einen Pfad eines Pakets mit Zuverlässigkeitsanforderungen von einem Ursprungskern zu einem Zielkern im Mehrkernprozessor dar;
  • 4 stellt ein Blockdiagramm einer veranschaulichenden Ausführungsform eines Kerns und der Einstellungen des Kerns dar, die gemäß der Zuverlässigkeitsanforderung von Pfaden, die den Kern umfassen, oder gemäß der Zuverlässigkeitsanforderung von Daten, die vom Kern empfangen bzw. gesendet werden, dynamisch angepasst werden können;
  • 5 stellt ein Flussdiagramm einer veranschaulichenden Ausführungsform eines Verfahrens zur Leitweglenkung eines Pakets in einem chipintegrierten Netzwerk dar;
  • 6 stellt ein Flussdiagramm einer veranschaulichenden Ausführungsform eines Verfahrens zur Leitweglenkung eines Pakets im chipintegrierten Netzwerk eines Mehrkernprozessors dar; und
  • 7 stellt eine beispielhafte Rechenvorrichtung dar, das einen Mehrkernprozessor umfasst.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden, ausführlichen Beschreibung wird auf die beiliegenden Zeichnungen Bezug genommen, die einen Teil hiervon bilden. In den Zeichnungen bezeichnen ähnliche Symbole typischerweise ähnliche Komponenten, sofern der Kontext nichts anderes vorschreibt. Die veranschaulichenden Ausführungsformen, die in der ausführlichen Beschreibung, den Zeichnungen und den Ansprüchen beschrieben werden, sind nicht als Einschränkung gedacht. Es können auch andere Ausführungsformen verwendet werden, und es können Änderungen vorgenommen werden, ohne vom Geist oder Schutzumfang des hierin dargelegten Gegenstands abzuweichen. Es versteht sich von selbst, dass die Aspekte der vorliegenden Offenbarung, wie hierin im Allgemeinen beschrieben und in den Figuren veranschaulicht, in einer großen Vielfalt von verschiedenen Konfigurationen, die allesamt hierin ausdrücklich in Erwägung gezogen werden, angeordnet, ersetzt, kombiniert, getrennt und entworfen werden können.
  • Die hierin beschriebenen Ausführungsformen betreffen die Bereitstellung von zuverlässigen Kommunikationen in chipintegrierten Netzwerken. Eine zuverlässige Kommunikation kann durch Verbinden von Zuverlässigkeitsanforderungen mit Paketen erreicht werden, die im chipintegrierten Netzwerk übertragen werden. Die Zuverlässigkeitsanforderungen können zum Beispiel unter Verwendung von Etiketten, welche die Zuverlässigkeitsanforderungen für die Pakete definieren, mit Paketen verbunden werden. Die Zuverlässigkeitsanforderdungen, die mit dem Etikett verbunden sind, können vor, während und/oder nach der Übertragung interpretiert und vor, während und/oder nach der Übertragung implementiert werden.
  • Alternativ oder zusätzlich zum Etikett können Zuverlässigkeitsanforderungen außerdem Einstellungen der Kerne oder anderer Komponenten im chipintegrierten Netzwerk eines Mehrkernprozessors umfassen. Die Einstellungen können gemäß der Zuverlässigkeitsanforderung eines Pakets in einigen Fällen dynamisch geändert oder so festgelegt werden, dass die Zuverlässigkeitsanforderung erfüllt wird. Die Leistung von chipinternen Kommunikationen kann dynamisch angepasst werden, wenn Pakete im chipintegrierten Netzwerk übertragen werden, wobei das Etikett und/oder die Einstellungen verwendet werden, um ein gewünschtes Leistungsniveau für die Paketübermittlung zu erreichen.
  • 1 stellt eine veranschaulichende Ausführungsform eines Mehrkernprozessors 100 dar, der in einem Computer oder einer anderen Rechenvorrichtung enthalten sein kann und der so konfiguriert ist, dass er eine zuverlässige Kommunikation innerhalb des Mehrkernprozessors 100 bereitstellt. Der Mehrkernprozessor 100 kann in Computern oder anderen Vorrichtungen zu Verarbeitungszwecken verwendet werden. Der Mehrkernprozessor 100 ist für den Betrieb oder die Ausführung von Software oder anderen ausführbaren Befehlen verantwortlich, die auf den Computer geladen, darauf gespeichert oder diesem anderweitig zugänglich gemacht wurden.
  • Der in 1 veranschaulichte Mehrkernprozessor 100 ist ein Mehrkernprozessor und umfasst Prozessorkerne 140. Die Prozessorkerne 140 führen Befehle aus, nehmen Berechnungen vor und versehen einen Computer oder ein Computersystem anderweitig mit Rechen- und Verarbeitungsfähigkeit. Die Prozessorkerne 140 können mit anderen Modulen oder Komponente in einem Computer über ein Eingangs-/Ausgangsmodul 104 kommunizieren. Die Eingangs-/Ausgangsmodule 104 können Daten empfangen bzw. senden, die oft über einen Systembus 106 übertragen werden, und mit anderen Komponenten eines Rechensystems verbinden. Die Eingangs-/Ausgangsmodule 104 können konfiguriert oder in der Lage sein, gemäß mehreren Protokollen zu funktionieren, die, ohne darauf beschränkt zu sein, Gigabit Ethernet, XAUI, PCIe, JTA, TWI oder dergleichen umfassen, und sie können eine Parallel-Seriell- bzw. Seriell-Parallel-Umsetzung eines Datenstroms, eine asynchrone Übertragung oder dergleichen bereitstellen.
  • Die Eingangs-/Ausgangsmodule 104 können separate Module, die konfigurierbar sein können, für jedes Protokoll umfassen. Die Eingangs-/Ausgangsmodule 104 können den Mehrkernprozessor 100 oder den Computer befähigen, mit anderen Computern über solche Netzwerke wie beispielsweise ein lokales Netzwerk, das Internet und dergleichen zu kommunizieren. Zum Beispiel kann ein Server-Computer mit dem Mehrkernprozessor 100 über ein Netzwerk mit einem Client-Computer kommunizieren. Im vorstehenden Beispiel kann der Client-Computer den Mehrkernprozessor 100 aufweisen oder auch nicht.
  • Der Mehrkernprozessor 100 umfasst außerdem Steuerungen 102. Die Steuerungen 102, welche mehrere Steuerungen 102 umfassen können, können Zugriff auf Systemspeicher wie beispielsweise verschiedene Cache-Stufen, RAM oder dergleichen oder jegliche Kombination davon ermöglichen. Selbstverständlich kann jeder der Prozessorkerne 140 auch seinen eigenen Cache umfassen. Für einen Fachmann ist zu erkennen, dass der Mehrkernprozessor 100 auch andere Module (z. B. Befehlsdecoder, Busschnittstelleneinheit, Adressgenerator, Gleitkommaeinheiten, Ganzzahlausführungseinheiten, Register usw.) umfassen kann.
  • Ferner kann der Mehrkernprozessor 100 in einen einzigen Chip integriert sein. Alternativ können einige Module oder Komponenten des Mehrkernprozessors 100 in separaten Chips sein, die miteinander interagieren.
  • 1 veranschaulicht auch eine genauere Ansicht der Prozessorkerne 140 im Mehrkernprozessor 100. Die Prozessorkerne 140 sind so konfiguriert, das sie über ein chipintegriertes Netzwerk 130 kommunizieren. Die Prozessorkerne 140 und insbesondere das chipintegrierte Netzwerk 130 umfassen einzelne Kerne 150, welche einen Kern 150a, einen Kern 150b und einen Kern 150c umfassen. In Abhängigkeit vom Kontext kann die Bezugnahme auf den Kern 150 oder seine Beschreibung auf jeden der Kerne 150a, 150b und 150c angewendet werden. Ähnlich kann auch die Bezugnahme auf die Kerne 150a, 150b und 150c oder ihre Beschreibung je nach dem Kontext gleichermaßen auf die anderen Kerne 150 angewendet werden.
  • Jeder Kern 150 ist im Allgemeinen gleich, obwohl es Fälle geben kann, in welche einige der Kerne 150 sich strukturell von anderen Kernen unterscheiden. Zum Beispiel können einige der Kerne 150 direkt mit den Eingangs-/Ausgangsmodulen 104 oder der Steuerung 102 gekoppelt sein, während einige der Kerne durch andere Kerne mit diesen Modulen kommunizieren. Einige der Kerne können mehr Verarbeitungsfähigkeiten oder Leistung als andere haben. Der Kern 150a, welcher in diesem Beispiel in den Kernen 150 enthalten ist und sich im Inneren der Prozessorkerne 140 befindet, kann durch andere Kerne 150 mit Modulen oder Komponenten kommunizieren, obwohl für einen Fachmann zu erkennen ist, dass auch eine direkte Kommunikation möglich sein kann.
  • Die Kerne 150 können in verschiedenen Konfigurationen oder Topologien angeordnet sein. Maschentopologien, Torustopologien oder Fat-Tree-Topologien sind Beispiele von Kerntopologien, die im Mehrkernprozessor 100 verwendet werden können.
  • Jeder Kern 150 umfasst einen Prozessor, der unabhängig von anderen Keren in den Prozessorkernen 140 funktionieren kann. Jeder Kern 150 kann typischerweise ein Computerprogramm nötigenfalls selbst ausführen. Ein Vorteil des Mehrkernprozessors 100 liegt darin, dass die Kerne 150 gemeinsam arbeiten können, um eine Anwendung oder Befehle auszuführen usw.
  • Bei der gemeinsamen Ausführung einer Anwendung können die Kerne 150 innerhalb der Ausführung, die ausgeführt wird, verschiedene Verantwortlichkeiten haben. Folglich ist der Mehrkernprozessor 100 in der Lage, eine Anwendung schneller als beim Verarbeiten der gleichen Anwendung mit einem einzigen Kern oder als ein Einzelkernprozessor auszuführen. Außerdem können die Kerne 150 gleichzeitig an verschiedenen Anwendungen oder Prozessen in einem Rechensystem arbeiten. Dies ermöglicht es zum Beispiel einigen der Kerne 150, eine Anwendung auszuführen, während andere Kerne 150 andere Anwendungen oder Prozesse aus- bzw. durchführen. Außerdem können die Kerne 150 auch zwischen Anwendungsprozessen umschalten. Demnach kann ein spezifischer Kern, wie beispielsweise der Kern 150a, mehrere Prozesse für eine oder mehrere Anwendungen durchführen.
  • Beim Ausführen eines Prozesses oder einer Anwendung in der Mehrkernumgebung, wie beispielsweise durch die Prozessorkerne 140 veranschaulicht, müssen oft Daten (z. B. Anwendungsdaten, Adressen, Befehle usw.) von einem der Kerne 150 an einen anderen der Kerne 150 (z. B. vom Kern 150b an den Kern 150c) übertragen werden. Dies kann häufig unter Verwendung des chipintegrierten Netzwerks 130 geschehen, welche die Verbindungen 152 umfasst.
  • In 1 werden die Verbindungen 152 verwendet, um die Kerne 150 miteinander zu verbinden. Obwohl nicht alle der Kerne 150 direkt miteinander verbunden werden können (z. B. kann der Kern 150b nicht direkt mit dem Kern 150a verbunden werden), gewährleisten die Verbindungen 152, dass jeder der Kerne 150 mit jedem anderen der Kerne 150 kommunizieren kann.
  • Wenn zum Beispiel die Kerne 150 in einer Gitterkonfiguration angeordnet sind, können die Kerne 150 Verbindungen 152 in den Richtungen aufwärts, nach rechts, nach links und abwärts haben. In diesem Beispiel kann jede Verbindung 152 mehrere Kanäle 154 umfassen. Die Kanäle 154 können die physikalischen Verbindungen zwischen den Kernen 150 umfassen. In diesem Beispiel können mehrere Kanäle zwischen direkt verbundenen Kernen 150 bestehen.
  • 2 stellt ein Blockdiagramm einer veranschaulichenden Ausführungsform eines Kerns 150a dar, der im Mehrkernprozessor 100 enthaften ist. Der Kern 150a ist einer der Prozessorkerne 140. Die Fähigkeit zur Übermittlung oder Übertragung von Daten unter Verwendung der Verbindungen 152 wird durch Versehen jedes der Kerne 150 mit einem Netzwerkschalter 200 erreicht, wie durch den Netzwerkschalter 200 im Kern 150a von 2 veranschaulicht. Der Kern 150a umfasst einen Prozessor 220, einen Cache 222 und den Netzwerkschalter 200. Der Netzwerkschalter 200 kann über eine Verbindung 202, eine Verbindung 204, eine Verbindung 206 und eine Verbindung 208, welche Beispiele für die Verbindungen 152 sind, mit benachbarten Netzwerkschaltern verbunden sein. Wie bereits erwähnt, umfasst jede der Verbindungen 152, welche die Verbindungen 202, 204, 206 und 208 umfassen, typischerweise mehrere Kanäle. Folglich ist der Kern 150a in der Lage, über mehrere Kanäle mit benachbarten oder direkt verbundenen Kernen 150 zu kommunizieren.
  • Der Netzwerkschalter 200 ist durch Anschlüsse 210 mit 202, 204, 206 und 208 gekoppelt. Genauer gesagt, sind die Kanäle, die durch jede der Verbindungen 202, 204, 206 und 208 dargestellt werden, mit spezifischen Anschlüssen verbunden, die zu den Anschlüssen 210 gehören. Im veranschaulichten Beispiel weist der Kern 150a direkte Verbindungen zu vier anderen Kernen auf. Jede Verbindung kann zum Beispiel fünf Kanäle umfassen. Jede der Verbindungen 202, 204, 206 und 208 kann auch weniger oder mehr Kanäle umfassen. Außerdem kann der Netzwerkschalter 200 über Kanäle 214 mit dem Prozessor 220 verbunden sein. Die Kanäle 214 können zur Kommunikation zwischen dem Prozessor 220 und dem Netzwerkschalter 200 verwendet werden. Zum Beispiel können Pakete, die vom Kern 150a verarbeitet werden sollen, über die Kanäle 214 an den Kern 150a übertragen werden.
  • Der Kern 150a umfasst außerdem den Cache 222. Der Cache 222 kann für den Kern 150a spezifisch sein (z. B. kann der Cache 222 der L1- und L2-Cache für den Prozessor 220 sein), oder er kann von mehreren Kernen 150 gemeinsam benutzt werden. Alternativ kann der Cache 222 auch im Netzwerkschalter 200 enthalten sein oder für den Netzwerkschalter 200 zugänglich sein. Alternativ kann der Netzwerkschalter 200 eine Steuerung und einen Cache aufweisen, die den Netzwerkschalter 200 zur Ausführung von Leitweglenkungsfunktionen befähigen.
  • Der Netzwerkschalter 200 umfasst außerdem Einstellungen 212. Die Einstellungen 212 können verwendet werden, um einige der betrieblichen Aspekte des Netzwerkschalters 200 zu steuern. Zum Beispiel können die Einstellungen 212 zum Steuern von Spannungspegeln des Netzwerkschalters 200, Taktfrequenzen des Netzwerkschalters 200, Pipeline-Steuerungen oder dergleichen verwendet werden. Die Einstellungen 212 können außerdem in einigen Fällen zum Steuern von betrieblichen Aspekten des Prozessors 220 verwendet werden.
  • Die gewünschte Leistung des Kerns 150a oder des Netzwerkschalters 200 kann durch dynamisches Anpassen der Einstellungen 212 erreicht werden. Zum Beispiel kann das Erhöhen der Taktfrequenz den Durchsatz steigern, während das Senken von Spannungspegeln Energie sparen kann. Die Einstellungen 212 können zum Anpassen von Spannungspegeln, der Taktfrequenz oder dergleichen verwendet werden, um die Leistung des Netzwerkschalters 200 oder der Kerns 150a dynamisch zu ändern.
  • 3 stellt einen Pfad 306 eines Pakets 310 mit Zuverlässigkeitsanforderungen von einem Ursprungskern 302 zu einem Zielkern 304 im Mehrkernprozessor 100 dar. In dem in 3 veranschaulichten Beispiel sendet der Ursprungskern 302 (der einer der Kerne 150 sein kann) das Paket 310 an den Zielkern 304 (der ebenfalls einer der Kerne 150 sein kann). Das Paket 310 wird über den Pfad 306 übertragen, der (i) direkt zwischen dem Ursprungskern 302 und dem Zielkern 304 sein oder (ii) einen oder mehrere Sprünge über andere Kerne 150 im Mehrkernprozessor 100 umfassen kann. Ferner ist beabsichtigt, dass das Paket 310 verschiedene Typen von Daten sowie mehrere Pakete von Daten darstellt. Zum Beispiel kann das Paket 310 Anwendungsdaten, Streaming-Pakete, Befehle, Adressen, andere Daten, Steuernachrichten oder dergleichen oder jegliche Kombination davon umfassen. Die Zuverlässigkeitsanforderungen können auf das Paket 310, einen Strom von Paketen, mindestens ein Paket in einem Strom, alle Pakete aus einem Strom von Paketen in einer Anwendung, alle mit der Anwendung verbundenen Pakete, alle Pakete vom Ursprungskern oder dergleichen angewendet werden.
  • Der Pfad 306 kann dynamisch bestimmt werden, während das Paket 310 unterwegs ist, wenn der Pfad 306 unbekannt ist, wobei der nächste Knoten oder Sprung im Pfad 306 an jedem Kern 150 bestimmt wird. Der nächste Knoten oder Sprung im Pfad 306 kann am aktuellen Netzwerkschalter 200 in Echtzeit oder in Quasi-Echtzeit bestimmt werden. Der Zielkern kann bekannt sein, aber der Pfad 306 zum Zielkern ist möglicherweise nicht bekannt und wird bestimmt, während das Paket 310 unterwegs ist.
  • Alternativ kann der Pfad 306 im Voraus bestimmt und als ein virtueller Pfad vor der Übertragung des Pakets 310 festgelegt sein.
  • Das Paket 310 umfasst ein Etikett 312. Das Etikett 312 kann dem Paket 310 als eine Methode zum Identifizieren mindestens einer Zuverlässigkeitsanforderung für das Paket 310 hinzugefügt werden. Alternativ kann das Etikett 312 separat vom Paket 310 (d. h. nicht als Teil desselben darin enthalten) sein. Wenn zum Beispiel das Paket 310 an den Zielkern 304 übermittelt werden muss, zeigt das Etikett 312 diese Anforderung (z. B. Übermittlungsbestätigung) für das Paket 310 an. Das Etikett 312 kann verwendet werden, um sicherzustellen, dass die Übermittlung des Pakets 310 zuverlässig ist, selbst wenn das zugrunde liegende chipintegrierte Netzwerk möglicherweise weniger zuverlässig ist.
  • In einem anderen Beispiel kann das Etikett 312 spezifizieren, dass das Paket 310 in einem spezifizierten Zeitraum übermittelt werden sollte. Die Durchlaufzeit des Pakets 310 kann an jedem Knoten aktualisiert und beurteilt werden. Wenn der spezifizierte Zeitraum abläuft, bevor das Paket 310 übermittelt ist, dann kann es verworfen werden, oder es kann eine Fehlernachricht an den Ursprungskern zurückgesendet werden.
  • In einem anderen Beispiel kann das Etikett 312 spezifizieren, dass eine Kopie eines Pakets an einem der Kerne 150 zwischengespeichert oder gepuffert werden soll, bis das Paket 310 übermittelt wird. Das Etikett 312 kann auch die Einstellungen 212 spezifizieren, die durch den Netzwerkschalter 200 verwendet werden können. Das Etikett 312 kann verwendet werden, um die Zuverlässigkeit des Netzwerkschalters 200 zu fördern, indem die Taktfrequenz verlangsamt oder die Spannung erhöht wird, und auf diese Weise die Zuverlässigkeit des Transfers des Pakets 310 zu verbessern.
  • In einem anderen Beispiel kann das Etikett 312 anfordern, dass jeder Kern im Pfad 306 dem vorhergehenden Kern die erfolgreiche Übermittlung des Pakets 310 an den nächsten oder nachfolgenden Kern im Pfad 306 bestätigt. Alternativ kann dies erreicht werden, indem der Zielkern 304 veranlasst wird, eine Empfangsmeldung an den Ursprungskern 302 oder an einen anderen Kern im Pfad 306 zurückzusenden. Außerdem kann das Etikett 312 verwendet werden, um einen Schaltkreis im Netzwerk aufzubauen, durch welche das Paket durchlaufen sollte, um unzuverlässige Verbindungsabschnitte und Router im Netzwerk zu vermeiden.
  • Diese Beispiele veranschaulichen, dass das Etikett 312 ein gewünschtes Zuverlässigkeitsniveau spezifizieren kann, das Fälle bewältigen kann, in welchen das chipintegrierte Netzwerk 130 oder die chipintegrierten Kerne 150 unzuverlässig sind.
  • Die Zuverlässigkeitsanforderung, die im Etikett 312 des Pakets 310 spezifiziert oder definiert ist, kann auf verschiedene Arten und Weisen ausgedrückt werden. Zum Beispiel kann das Etikett 312 anzeigen, dass das Paket 310 innerhalb eines vorgegebenen Zeitraums übermittelt werden sollte. Das Etikett 312 kann an jedem Kern im Pfad 306 beurteilt werden. Wenn die Zuverlässigkeitsanforderung im Etikett 312 nicht erfüllt werden kann, dann kann die Übertragung aufgegeben (oder abgebrochen) werden, und/oder es kann eine andere Aktion oder ein anderer Vorgang, die ebenfalls im Etikett 312 identifiziert sein können, durchgeführt werden. Zum Beispiel kann der Ursprungsknoten 302 verständigt werden, dass das Paket 310 nicht an den Zielknoten 304 übermittelt oder dass es verworfen wurde. Andere Aktionen, die stattfinden können, wenn die Zuverlässigkeitsanforderung nicht erfüllt wird oder nicht erfüllt werden kann, umfassen ein Abbrechen der Übermittlung des Pakets, ein Ersetzen des Pakets durch ein aktualisiertes Paket oder dergleichen.
  • In einem anderen Beispiel können die Zuverlässigkeitsanforderungen im Etikett 312 ungeachtet des Pfades 306 oder der Zeitelemente einfach eine Benachrichtigung der Übermittlung an den Zielknoten 304 anfordern. Das Etikett 312 kann anzeigen, dass das Paket 310 einem vorgegebenen Pfad folgt – wie beispielsweise einem virtuellen Pfad, der im Voraus festgelegt wurde. Das Etikett 312 kann außerdem verwendet werden, um Zuverlässigkeitsanforderungen für nachfolgende Pakete zu identifizieren. In einem Strom von Paketen zum Beispiel können die Zuverlässigkeitsanforderungen für alle der Pakete im Strom im Etikett 312 spezifiziert oder definiert sein, das einem Teilsatz der Pakete im Strom von Paketen angehängt sein kann. In diesem Fall kann das Etikett 312 auf mehrere Pakete angewendet werden, ohne dass das Etikett 312 tatsächlich in allen der Pakete enthalten ist.
  • In einem anderen Beispiel kann das Etikett 312 eine annehmbare Fehlerrate für die Übertragung des Pakets 310 (oder eine Gruppe von Paketen) spezifizieren. Zum Beispiel können Videodaten erfolgreich übermittelt werden, selbst wenn einige der Pakete nicht übermittelt werden. Andererseits sind Audiodaten stärker von Datenverlust betroffen. Folglich können sich die Zuverlässigkeitsanforderungen für Audiodaten von den Zuverlässigkeitsanforderungen für Videodaten unterscheiden.
  • Das Etikett 312 kann die Zuverlässigkeitsanforderung auch im Sinne von Zeit ausdrücken. Das Etikett 312 kann ausdrücken, dass das Paket 310 innerhalb eines bestimmten Zeitraums übermittelt werden sollte. Dies kann an jedem Kern im Pfad 306 überprüft und/oder in jedem Kern aktualisiert werden.
  • Diese Beispiele veranschaulichen, dass das Etikett 312 die Zuverlässigkeitsanforderungen im Hinblick auf Datentyp, Anfragetyp, Fehlerprozentsatz, annehmbare Fehlerrate, Übermittlungszeiträume, Pfadidentifikation, Maßnahmen, die bei Ablauf des Übermittlungszeitraums ergriffen werden, oder dergleichen oder jegliche Kombination davon definieren kann.
  • Das Etikett 312 kann durch ein Bit oder eine Folge von Bits im Paket 310 dargestellt oder in einem Kopf des Pakets 310 enthalten oder ein anderes Schema sein. Das Bit oder der Kopf können zum Beispiel anzeigen, ob ein zuverlässiger Transport des Pakets 310 erforderlich ist. Der Folge von Bits kann verwendet werden, um spezifische Niveaus zu identifizieren oder spezifische Zuverlässigkeitsanforderungen für das Paket 310 zu identifizieren. Außerdem kann das Etikett 312 durch eine Anwendung, durch ein Betriebssystem, durch einen Kern oder durch einen Virtuelle-Maschine-Monitor gesetzt werden. Der Ursprung der Zuverlässigkeitsanforderungen, die durch das Etikett 312 definiert sind, kann daher je nach den Umständen variieren. Zum Beispiel kann es Fälle geben, in welchen das Betriebssystem die Zuverlässigkeitsanforderungen unabhängig von der Anwendung oder im Widerspruch zur Anwendung festlegen kann.
  • 4 stellt ein Blockdiagramm einer veranschaulichenden Ausführungsform eines Kerns 150a und der Einstellungen des Kerns (einschließlich der Einstellungen des Netzwerkschalters) dar, die gemäß der Zuverlässigkeitsanforderung von Paketen, die Pfaden folgen, die den Kern 150a umfassen, oder gemäß der Zuverlässigkeitsanforderung von Paketen, die vom Kern 150a empfangen bzw. gesendet werden, dynamisch angepasst werden können. 4 veranschaulicht die dynamische Anpassung der Leistung des chipintegrierten Netzwerks 130 des Mehrkernprozessors 100. Die Leistung des Kerns 150a, einschließlich des Netzwerkschalters 200, kann durch Modifizieren der Einstellungen 212 geändert werden.
  • 4 veranschaulicht ein Beispiel für das Festlegen der Einstellungen 212 gemäß Zuverlässigkeitsanforderungen. In 4 sind einige der Kanäle veranschaulicht, die mit den Anschlüssen 210 verbunden sind. In diesem Beispiel wurden diese Anschlüsse und die entsprechenden Verbindungen als virtuelle Pfade 402, 404, 406 und 408 eingerichtet.
  • Da der Kern 150a gegenwärtig für die virtuellen Pfade 402, 404, 406, 408 und 410 eingerichtet ist, können die Einstellungen 212 gemäß dem Pfad bestimmt werden, dessen Zuverlässigkeitsanforderungen die höchsten sein können oder die größte Zuverlässigkeit anzeigen können. Zum Beispiel können Pakete, die im virtuellen Pfad 402 übertragen werden, in der Lage sein, einen bestimmten Prozentsatz von Datenverlust zu tolerieren, während der virtuelle Pfad 404 möglicherweise nicht in der Lage ist, Datenverlust zu tolerieren, oder möglicherweise einen niedrigeren Prozentsatz von Datenverlust toleriert. Folglich können die Einstellungen 212 des Kerns 150a so festgelegt sein, dass sie den Zuverlässigkeitsanforderungen für den virtuellen Pfad 404 Rechnung tragen.
  • Die Einstellungen 212 können so festgelegt sein, dass sie die Leistung des Mehrkernprozessors 100 ändern. Die Einstellungen 212 können auch verwendet werden, um Schaltgeschwindigkeiten des Netzwerkschalters 200, Tatfrequenz, Spannungspegel oder dergleichen auszuwählen. Obwohl zum Beispiel das Erhöhen der Taktfrequenz zu einer Fehlerrate bei der Datenübertragung führen kann, kann die Fehlerrate unter gewissen Umständen annehmbar sein. Ähnlich kann das Ändern des Spannungspegels einen Einfluss auf die Fehlerrate haben. Im Austausch für eine leichte Zunahme von vorübergehenden Fehlern können die Einstellungen 212 so angepasst werden, dass sie die Taktfrequenz erhöhen oder die Betriebsspannung senken, um Energie zu sparen. Die Zuverlässigkeitsanforderungen, die mit dem Etikett 312 verbunden sind, können verwendet werden, um die Einstellungen 212 festzulegen oder andere Übermittlungsanforderungen an das Paket 310 so festzulegen, dass ein gewünschtes Zuverlässigkeitsniveau bereitgestellt wird, selbst wenn das chipintegrierte Netzwerk vorübergehende Fehler erleidet oder anderweitig unzuverlässig ist. Das Etikett 312 kann bestimmte Einstellungen 212 gemäß den Zuverlässigkeitsanforderungen identifizieren oder spezifizieren.
  • 5 stellt ein Flussdiagramm einer veranschaulichenden Ausführungsform eines Verfahrens zur Leitweglenkung eines Pakets in einem chipintegrierten Netzwerk dar. In Block 502 kann ein Kern ein Paket erzeugen, das in einem chipintegrierten Netzwerk übertragen werden soll. Bei Block 504 wird das Paket vom Kern, dem Betriebssystem oder einer anderen Komponente mit dem Etikett versehen. Das Etikett kann Zuverlässigkeitsinformationen im Zusammenhang mit der Übermittlung und/oder Übertragung des Pakets spezifizieren oder definieren. In Block 506 wird das Paket gemäß den Zuverlässigkeitsanforderungen übermittelt, die durch das Etikett definiert sind. Das Paket wird vom Ursprungskern an einen anderen Kern übermittelt. Jeder Kern im Pfad kann das Etikett beurteilen und entsprechend den darin spezifizierten Zuverlässigkeitsanforderungen handeln. Schließlich wird das Paket an den Zielkern übermittelt.
  • Demnach kann das Paket mit einem gewünschten Zuverlässigkeitsniveau weitergeleitet werden, das im Etikett widergespiegelt ist. Wie bereits erwähnt, kann das gewünschte Zuverlässigkeitsniveau gemäß dem Etikett erreicht werden.
  • Für einen Fachmann ist zu erkennen, dass für diesen und andere hierin offenbarte Prozesse und Verfahren die in den Prozessen und Verfahren ausgeführten Funktionen in verschiedener Reihenfolge implementiert werden können. Außerdem sind die dargelegten Schritte und Vorgänge nur als Beispiel vorgesehen, und einige der Schritte und Vorgänge können optional sein, zu weniger Schritten und Vorgängen kombiniert werden oder auf zusätzliche Schritte und Vorgänge erweitert werden, ohne das Wesentliche der offenbarten Ausführungsformen zu schmälern.
  • 6 stellt ein Flussdiagramm einer veranschaulichenden Ausführungsform eines Verfahrens zur Leitweglenkung eines Pakets im chipintegrierten Netzwerk des Mehrkernprozessors dar. In Block 602 wird das Paket an einem Kern des Mehrkernprozessors empfangen. In Block 604 überprüft der Kern oder eine Komponente davon die Zuverlässigkeitsanforderung, die mit dem Etikett verbunden ist. Wie bereits erwähnt, ist die Zuverlässigkeitsanforderung typischerweise in dem Etikett, welches das Paket begleiten kann, definiert oder spezifiziert. In Block 606 kann der Kern dann das Paket in Übereinstimmung mit der Zuverlässigkeitsanforderung übertragen. Dies kann, wie zuvor bereits nur als Beispiel erwähnt, das Ändern der Einstellungen des Kerns oder von Komponenten, die im Kern enthalten sind, Speichern des Pakets im Cache des Kerns, bis die Übermittlung bestätigt wird, Senden einer Übermittlungsbestätigungsnachricht, welche die Bestätigung des Empfangs des Pakets sein kann, oder einer Übermittlungsfehlernachricht oder dergleichen oder jegliche Kombination davon umfassen. In einigen Fällen kann die Zuverlässigkeitsanforderung implementiert werden, bevor das Paket gesendet wird. Wenn zum Beispiel die Einstellungen geändert werden, können Kerne im Pfad benachrichtigt werden, bevor sie mit dem Empfang des Pakets beginnen.
  • Außerdem kann das Antworten auf einen Übermittlungsfehler unter Verwendung einer Anwendungsprogrammierungsschnittstelle (API für engl. application programming interface) bewerkstelligt werden. Dies kann es der Anwendung ermöglichen, den Übermittlungsfehler des Pakets zu handhaben. Zum Beispiel kann eine Anwendung bestimmen, dass das Paket zu alt ist, und die Übermittlung gemäß dem Alter des Pakets oder gemäß einer Ablaufzeit oder einer Ablaufperiode des Pakets abbrechen. Alternativ kann die Anwendung ein Ersatzpaket aussenden oder das Paket erneut absenden. Die Anwendung selbst kann bestimmen, wann das Ersatz- oder das erneut gesendete Paket verschickt wird.
  • Die API kann außerdem Zugriff auf einen Datensatz von Paketübermittlungsfehlern haben, die früher erfolgten. Dieser Datensatz kann mit der Zeit für eine spezifische Anwendung oder dergleichen zugänglich sein. Dieser Datensatz kann es der Anwendung oder dem Verarbeitungskern oder dem Betriebssystem ermöglichen, die Zuverlässigkeitsanforderungen für künftige Pakete zu bestimmen. Der Datensatz kann außerdem verwendet werden, um die Zuordnung von verschiedenen Aufgaben zu verschiedenen Schaltern oder Kernen im chipintegrierten Netzwerk anzupassen. Dies kann es ermöglichen, die Leistung unter Verwendung von verschiedenen Einstellungen zu verbessern. Zum Beispiel kann der Datensatz bestimmen, dass bestimmte Schalter bei gleichzeitiger Erfüllung der Zuverlässigkeitsanforderung mit höheren Taktfrequenzen als andere Schalter oder Kerne arbeiten können. Das Zuordnen von Aufgaben oder Anfordern, dass die Paketleitweglenkung bestimmte Kerne und/oder Schalter verwendet, kann daher die Leistung verbessern. Diese Aufgaben können im Speicher des Mehrkernprozessors 100, in der Anwendung oder im Betriebssystem implementiert werden.
  • Die vorliegende Erfindung ist nicht im Sinne der konkreten Ausführungsformen einzuschränken, die in dieser Anmeldung beschrieben werden und die als Veranschaulichung von verschiedenen Aspekten gedacht sind. Es können viele Modifikationen und Änderungen vorgenommen werden, ohne vom Geist und Schutzumfang abzuweichen, wie für Fachleute ersichtlich ist. Für Fachleute sind aus den vorstehenden Beschreibungen funktionell gleichwertige Verfahren und Vorrichtungen innerhalb des Schutzumfangs dieser Offenbarung zusätzlich zu den hierin aufgeführten zu erkennen. Es ist beabsichtigt, dass solche Modifikationen und Änderungen in den Schutzumfang der angehängten Ansprüche fallen. Die vorliegende Offenbarung soll nur durch die Begriffe der angehängten Ansprüche zusammen mit dem vollen Umfang von Äquivalenten beschränkt sein, zu welchen solche Ansprüche das Recht geben. Es versteht sich von selbst, dass diese Offenbarung nicht auf konkrete Verfahren, Reagenzien, Verbindungen, Zusammensetzungen oder biologische Systeme beschränkt ist, die selbstverständlich variieren können. Es versteht sich außerdem von selbst, dass die hierin verwendete Terminologie lediglich dem Zwecke der Beschreibung von konkreten Ausführungsformen dient und nicht als Einschränkung gedacht ist.
  • 7 ist ein Blockdiagramm, das eine beispielhafte Rechenvorrichtung 700 veranschaulicht, die für eine zuverlässige Kommunikation über chipintegrierte Netzwerke in einem Mehrkernprozessor gemäß der vorliegenden Offenbarung ausgelegt ist. In einer sehr grundlegenden Konfiguration 702 umfasst die Rechenvorrichtung 700 typischerweise einen oder mehrere Kerne 704 und einen Systemspeicher 706. Ein Speicherbus 708 kann zur Kommunikation zwischen den Kernen 704 und dem Systemspeicher 706 verwendet werden.
  • In Abhängigkeit von der gewünschten Konfiguration kann jeder der Kerne 704 von einem beliebigen Typ, einschließlich, ohne darauf beschränkt zu sein, eines Mikroprozessors (μP), einer Mikrosteuerung (μC), eines Digitalsignalprozessors (DSP) oder jeglicher Kombination davon sein. Die Kerne 704 können eine oder mehrere Ebenen der Zwischenspeicherung, wie beispielsweise einen Cache 710 einer ersten Ebene und einen Cache 712 einer zweiten Ebene, einen Prozessor 714 und Register 716 umfassen. Ein beispielhafter Prozessor 714 kann eine arithmetische Logikeinheit (ALU), eine Gleitkommaeinheit (FPU), einen Digitalsignalverarbeitungskern (DSP-Kern) oder jegliche Kombination davon umfassen. Eine beispielhafte Speichersteuerung 718 kann ebenfalls mit den Kernen 704 verwendet werden, oder in einigen Implementierungen kann die Speichersteuerung 718 ein internes Teil der Kerne 704 sein.
  • In Abhängigkeit von der gewünschten Konfiguration kann der Systemspeicher 706 von einem beliebigen Typ, einschließlich, ohne darauf beschränkt zu sein, eines flüchtigen Speichers (wie beispielsweise eines RAM), eines nichtflüchtigen Speichers (wie beispielsweise eines ROM, eines Flash-Speichers usw.) oder jegliche Kombination davon sein. Der Systemspeicher 706 kann ein Betriebssystem 720, eine oder mehrere Anwendungen 722 und Programmdaten 724 umfassen. Die Anwendung 722 kann Algorithmen 726 umfassen, die so ausgelegt sind, dass sie Pakete im chipintegrierten Netzwerk eines Mehrkernprozessors zuverlässig leiten und übermitteln. Die Programmdaten 724 können Zuverlässigkeitsanforderungen 728 umfassen oder definieren, die für eine zuverlässige Übertragung von Paketen im chipintegrierten Netzwerk verwendet werden können, wie im Folgenden ausführlicher beschrieben wird. In einigen Ausführungsformen kann die Anwendung 722 so ausgelegt sein, dass sie mit den Programmdaten 724 das Betriebssystem 720 derart steuert, das die Pakete gemäß den Zuverlässigkeitsanforderungen übermittelt werden, selbst wenn das zugrunde liegende chipintegrierte Netzwerk möglicherweise unzuverlässig ist. Diese beschriebene Grundkonfiguration 702 ist in 7 durch die Komponenten innerhalb der gestrichelten Linie veranschaulicht.
  • Die Rechenvorrichtung 700 kann zusätzliche Merkmale oder Funktionalität und zusätzliche Schnittstellen zum Ermöglichen von Kommunikationen zwischen der Grundkonfiguration 702 und jeglichen erforderlichen Vorrichtungen und Schnittstellen aufweisen. Zum Beispiel kann die Bus-/Schnittstellen-Steuerung 730 verwendet werden, um Kommunikationen zwischen der Grundkonfiguration 702 und einem oder mehreren Datenspeichervorrichtungen 732 über einen Speicherschnittstellenbus 734 zu ermöglichen. Die Datenspeichervorrichtungen 732 können Wechselspeichervorrichtungen 736, fest eingebaute Speichervorrichtungen 738 oder eine Kombination davon sein. Beispiele für Wechselspeicher- und fest eingebaute Speichervorrichtungen umfassen Magnetplattenvorrichtungen, wie beispielsweise Diskettenspeicher und Festplattenspeicher (HDD), Bildplattenspeicher, wie beispielsweise Kompaktspeicherplatten (CD) oder Digitalvideoplattenspeicher (DVD), Festkörperspeicher (SSD) und Magnetbandspeicher, um nur einige zu nennen. Beispielhafte Computerspeichermedien können flüchtige und nichtflüchtige sowie Wechsel- und fest eingebaute Medien umfassen, die in einem beliebigen Verfahren oder einer beliebigen Technologie zum Speichern von Informationen, wie beispielsweise computerlesbaren Befehlen, Datenstrukturen, Programmmodulen oder anderen Daten, implementiert werden.
  • Der Systemspeicher 706, die Wechselspeichervorrichtungen 736 und die fest eingebauten Speichervorrichtungen 738 sind Beispiele für Computerspeichermedien. Die Computerspeichermedien umfassen, ohne darauf beschränkt zu sein, RAM, ROM, EEPROM, Flash-Speicher oder eine andere Speichertechnologie, CD-ROM, Digitalvideoplatten (DVD) oder einen anderen optischen Speicher, Magnetbandkassetten, Magnetband, Magnetplattenspeicher, oder andere Magnetspeichervorrichtungen, oder beliebige andere Medien, die verwendet werden können, um die gewünschten Informationen zu speichern und auf welche die Rechenvorrichtung 700 zugreifen kann. Jedes solche Computerspeichermedium kann Teil der Rechenvorrichtung 700 sein.
  • Die Rechenvorrichtung 700 kann außerdem einen Schnittstellenbus 740 zum Ermöglichen der Kommunikation von verschiedenen Schnittstellenvorrichtungen (z. B. Ausgabevorrichtungen 742, peripheren Schnittstellen 744 und Kommunikationsvorrichtungen 746) mit der Grundkonfiguration 702 über die Bus-/Schnittstellen-Steuerung 730 umfassen. Beispielhafte Ausgabevorrichtungen 742 umfassen einen Grafik-Mehrkernprozessor 748 und einen Audio-Mehrkernprozessor 750, die so konfiguriert sein können, dass sie mit verschiedenen externen Vorrichtungen, wie beispielsweise einer Anzeige oder Lautsprechern, über einen oder mehrere A/V-Anschlüsse 752 kommunizieren. Beispielhafte periphere Schnittstellen 744 umfassen eine Serienschnittstellensteuerung 754 oder eine Parallelschnittstellensteuerung 756, die so konfiguriert sein können, dass sie mit externen Vorrichtungen, wie beispielsweise Eingabevorrichtungen (z. B. Tastatur, Maus, Stift, Spracheingabevorrichtung, Berührungseingabevorrichtung usw.), oder anderen peripheren Vorrichtungen (z. B. Drucker, Scanner usw.) über einen oder mehrere I/O-Anschlüsse 758 kommunizieren. Eine beispielhafte Kommunikationsvorrichtung 746 umfasst eine Netzwerksteuerung 760, die so ausgelegt sein kann, dass sie Kommunikationen mit einem oder mehreren anderen Rechenvorrichtungen 762 über eine Netzkommunikationsverbindung über einen oder mehrere Kommunikationsanschlüsse 764 ermöglicht.
  • Die Netzkommunikationsverbindung kann ein Beispiel für ein Kommunikationsmedium sein. Kommunikationsmedien können typischerweise durch computerlesbare Befehle, Datenstrukturen, Programmmodule oder andere Daten in einem modulierten Datensignal, wie beispielsweise einer Trägerwelle oder einem anderen Transportmechanismen realisiert sein und jegliches Informationsübermittlungsmedium umfassen. Ein „moduliertes Datensignal” kann ein Signal sein, das eine oder mehrere seiner Charakteristiken derart festgelegt oder geändert aufweist, dass es Informationen im Signal codiert. Kommunikationsmedien können als Beispiel und ohne Einschränkung drahtgebundene Medien, wie beispielsweise eine drahtgebundene Netz- oder direkt verdrahtete Verbindung, oder drahtlose Medien, wie beispielsweise akustische, Hochfrequenz- (HF), Mikrowellen-, Infrarot- und andere drahtlose Medien umfassen. Der Begriff computerlesbare Medien, wie hierin verwendet, kann sowohl Speichermedien als auch Kommunikationsmedien umfassen.
  • Die Rechenvorrichtung 700 kann als ein Teil einer tragbaren (oder mobilen) elektronischen Vorrichtung mit kleinem Formfaktor, wie beispielsweise eines Zellulartelefons, eines persönlichen Datenassistenten (PDA), einer persönlichen Media-Player-Vorrichtung, einer drahtlosen Web-Watch-Vorrichtung, einer persönlichen Headset-Vorrichtung, einer anwendungsspezifischen Vorrichtung oder einer hybriden Vorrichtung, die beliebige der vorstehenden Funktionen umfasst, implementiert sein. Die Rechenvorrichtung 700 kann außerdem als ein Personalcomputer, einschließlich Laptop-Computer- und Nicht-Laptop-Computerkonfigurationen, implementiert sein.
  • In Bezug auf die Verwendung im Wesentlichen aller Begriffe in der Mehrzahl und/oder Einzahl hierin können Fachleute von der Mehrzahl in die Einzahl und/oder von der Einzahl in die Mehrzahl übersetzen, wie es für den Kontext und/oder die Anwendung geeignet ist. Die verschiedenen Einzahl-/Mehrzahl-Vertauschungen können hierin der Klarheit halber ausdrücklich dargelegt sein.
  • Für Fachleute ist zu erkennen, dass im Allgemeinen Begriffe, die hierin und insbesondere in den angehängten Ansprüchen (z. B. Körpern der angehängten Ansprüche) verwendet werden, im Allgemeinen als „offene” Begriffe gedacht sind (z. B. sollte der Begriff „einschließlich” als „einschließlich, ohne darauf beschränkt zu sein” ausgelegt werden, der Begriff „aufweisend” sollte als „mindestens aufweisend” ausgelegt werden, der Begriff „umfasst” sollte als „umfasst, ohne darauf beschränkt zu sein” ausgelegt werden usw.). Für Fachleute ist außerdem zu erkennen, dass, wenn eine spezifische Anzahl einer eingeleiteten Anspruchsaufzählung beabsichtigt ist, solch eine Absicht im Anspruch ausdrücklich zitiert wird, und bei Fehlen solch einer Aufzählung solch eine Absicht nicht besteht. Für ein besseres Verständnis können zum Beispiel die folgenden angehängten Ansprüche die Verwendung der einleitenden Ausdrücke „mindestens ein” und „ein oder mehr” enthalten, um Anspruchsaufzählungen einzuleiten. Die Verwendung solcher Ausdrücke sollte jedoch nicht dahingehend ausgelegt werden, dass sie voraussetzt, dass die Einleitung einer Anspruchsaufzählung durch die unbestimmten Artikel „ein” oder „eine” einen konkreten Anspruch, der solch eine eingeleitete Anspruchsaufzählung enthält, auf Ausführungsformen beschränkt, die nur eine solche Aufzählung enthalten, selbst wenn der gleiche Anspruch die einleitenden Ausdrücke „ein oder mehr” oder „mindestens ein” und unbestimmte Artikel, wie beispielsweise „ein” oder „eine” enthält (z. B. sollten „ein” und/oder „eine” so ausgelegt werden, dass sie „mindestens ein” oder „ein oder mehr” bedeuten); das gleiche gilt für die Verwendung von bestimmten Artikeln, die verwendet werden, um Anspruchsaufzählungen einzuleiten. Außerdem ist für Fachleute zu erkennen, dass, wenn eine spezifische Anzahl einer eingeleiteten Anspruchsaufzählung ausdrücklich zitiert wird, solch eine Aufzählung dahingehend ausgelegt werden sollte, dass sie mindestens die zitierte Anzahl bedeutet (z. B. bedeutet die bloße Aufzählung von „zwei Aufzählungen” ohne andere Modifikatoren mindestens zwei Aufzählung oder zwei oder mehr Aufzählungen). Außerdem ist in jenen Fällen, in welchen eine Konvention analog zu „mindestens eines von A, B und C usw.” verwendet wird, solch eine Konstruktion im Allgemeinen in dem Sinne gedacht, in dem ein Fachmann die Konvention verstehen würde (z. B. würde „ein System mit mindestens einem von A, B und C” Systeme umfassen, ohne darauf beschränkt zu sein, die A allein, B allein, C allein, A und B zusammen, A und C zusammen, B und C zusammen und/oder A, B und C zusammen aufweisen, usw.). In jenen Fällen, in welchen eine Konvention analog zu „mindestens eines von A, B oder C usw.” verwendet wird, ist solch eine Konstruktion im Allgemeinen in dem Sinne gedacht, in dem ein Fachmann die Konvention verstehen würde (z. B. würde „ein System mit mindestens einem von A, B oder C” Systeme umfassen, ohne darauf beschränkt zu sein, die A allein, B allein, C allein, A und B zusammen, A und C zusammen, B und C zusammen und/oder A, B und C zusammen aufweisen, usw.). Für Fachleute ist ferner zu erkennen, dass praktisch alle disjunktiven Wörter und/oder Ausdrücke, die zwei oder mehr ausschließende Begriffe darstellen, einerlei ob in der Beschreibung, den Ansprüchen oder den Zeichnungen, so zu verstehen sind, dass sie die Möglichkeiten des Einbeziehens eines der Begriffe, eines von beiden Begriffen oder beider Begriffe vorsehen. Zum Beispiel ist der Ausdruck „A oder B” so zu verstehen, dass er die Möglichkeiten von „A” oder „B” oder „A” und „B” umfasst.
  • Außerdem ist für die Fachleute zu erkennen, dass, wenn Merkmale oder Aspekte der Offenbarung im Hinblick auf Markush-Gruppen beschrieben werden, die Offenbarung dadurch auch im Hinblick auf jedes einzelne Mitglied oder jede einzelne Teilgruppe der Markush-Gruppe beschrieben wird.
  • Wie für die Fachleute zu erkennen ist, umfassen für jeglichen Zweck, wie beispielsweise im Hinblick auf die Bereitstellung einer schriftlichen Beschreibung, alle hierin offenbarten Bereiche auch alle möglichen Teilbereiche und Kombinationen von Teilbereichen davon. Es ist leicht zu verstehen, dass jeder aufgeführte Bereich ausreichend beschreibend ist und es ermöglicht, dass der gleiche Bereich in mindestens gleiche Hälften, Drittel, Viertel, Fünftel, Zehntel usw. unterteilt werden kann. Als nicht einschränkendes Beispiel kann jeder hierin erörterte Bereich leicht in ein unteres Drittel, mittleres Drittel und oberes Drittel usw. unterteilt werden. Wir für einen Fachmann zu erkennen ist, umfassen alle Ausdrücke wie beispielsweise „bis zu”, „mindestens” und dergleichen die zitierte Anzahl und beziehen sich auf Bereiche, welche anschließend in Teilbereiche unterteilt werden können, wie zuvor erörtert. Schließlich ist für einen Fachmann zu erkennen, dass ein Bereich jedes einzelne Mitglied umfasst. Demnach betrifft zum Beispiel eine Gruppe mit 1 bis 3 Zellen Gruppen mit 1, 2 oder Zellen. Ähnlich bezieht sich eine Gruppe mit 1 bis 5 Zellen auf Gruppen mit 1, 2, 3, 4 oder 5 Zellen und so weiter.
  • Aus den vorstehenden Ausführungen ist zu erkennen, dass verschiedene Ausführungsformen der vorliegenden Offenbarung hierin zu Veranschaulichungszwecken beschrieben wurden, und dass verschiedene Modifikationen vorgenommen werden können, ohne vorn Schutzumfang und Geist der vorliegenden Offenbarung abzuweichen. Demgemäß sind die verschiedenen, hierin offenbarten Ausführungsformen nicht als einschränkend gedacht, wobei der wahre Schutzumfang und Geist durch die folgenden Ansprüche angezeigt wird.

Claims (25)

  1. Verfahren in einem Chip mit einem chipintegrierten Netzwerk, das Kommunikation unter einer Mehrzahl von Kernen bereitstellt, für die Übermittlung eines Pakets im chipintegrierten Netzwerk, wobei das Verfahren umfasst: Erzeugen des Pakets an einem Ursprungskern, der in der Mehrzahl von Kernen im chipintegrierten Netzwerk enthalten ist, wobei der Kern einen Prozessor und einen Schalter umfasst; Versehen des Pakets mit einem Etikett, das eine Zuverlässigkeitsanforderung für das Paket definiert, wobei die Zuverlässigkeitsanforderung die Übermittlung des Pakets im chipintegrierten Netzwerk steuert; und Übermitteln des Pakets an einen Zielknoten in Übereinstimmung mit der Zuverlässigkeitsanforderung, wobei die Zuverlässigkeitsanforderung das chipintegrierte Netzwerk befähigt, die Leistung des chipintegrierten Netzwerks bei der Übermittlung des Pakets dynamisch anzupassen.
  2. Verfahren nach Anspruch 1, wobei die Zuverlässigkeitsanforderung ein Bit umfasst, das anzeigt, ob ein zuverlässiger Transport für das Paket im chipintegrierten Netzwerk erforderlich ist.
  3. Verfahren nach Anspruch 2, wobei das Bit durch mindestens eines von einer Anwendung, einem Betriebssystem, dem Schalter, einem Prozessor oder einem Virtuelle-Maschine-Monitor gesetzt wird.
  4. Verfahren nach Anspruch 1, wobei die Zuverlässigkeitsanforderung auf mindestens eines der Pakete, auf alle Pakete aus einem Strom von Paketen in einer Anwendung, alle mit der Anwendung verbundenen Pakete oder alle Pakete vom Ursprungskern angewendet wird.
  5. Verfahren nach Anspruch 1, ferner umfassend ein erneutes Senden des Pakets, wenn das Paket nicht an den Zielkern übermittelt wird.
  6. Verfahren nach Anspruch 6, ferner umfassend ein erneutes Senden des Pakets durch mindestens einen von einem Netzwerkschalter, einem Kern oder einer Mehrzahl von Netzwerkschaltern und Kernen in Zusammenwirkung.
  7. Verfahren nach Anspruch 1, ferner umfassend ein Antworten auf einen Paketfehler mit einer Anwendung durch eine Schnittstelle mit dem Kern.
  8. Verfahren nach Anspruch 7, ferner umfassend ein Abbrechen der Übermittlung des Pakets gemäß einem Alter des Pakets.
  9. Verfahren nach Anspruch 8, ferner umfassend ein Ersetzen des Pakets durch ein aktualisiertes Paket.
  10. Verfahren nach Anspruch 6, wobei ein Paketfehler asynchron ist, derart dass Threads an anderen Aufgaben im chipintegrierten Netzwerk arbeiten und außerdem auf den Paketfehler antworten können.
  11. Verfahren nach Anspruch 1, ferner umfassend ein Speichern eines Datensatzes von Paketübermittlungsfehlern, wobei der Datensatz verwendet wird, um Zuverlässigkeitsanforderungen für nachfolgende Pakete zu bestimmen.
  12. Verfahren zur Leitweglenkung eines Pakets in einem chipintegrierten Netzwerk, wobei das Verfahren umfasst: Empfangen eines Pakets an einem Kern eines Mehrkernprozessors von einem Ursprungskern, wobei der Kern mindestens einen Prozessor und einen Schalter zum Leiten von Paketen umfasst; Überprüfen einer Zuverlässigkeitsanforderung, die mit dem Paket verbunden ist, wobei die Zuverlässigkeitsanforderung Übermittlungsoptionen für das Paket im chipintegrierten Netzwerk identifiziert; und Senden des Pakets im chipintegrierten Netzwerk an einen Zielkern bei Erfüllung der Zuverlässigkeitsanforderung, die mit dem Paket verbunden ist.
  13. Verfahren nach Anspruch 12, wobei das Überprüfen einer Zuverlässigkeitsanforderung, die mit dem Paket verbunden ist, ferner ein Erfüllen der Zuverlässigkeitsanforderung umfasst.
  14. Verfahren nach Anspruch 13, wobei die Zuverlässigkeitsanforderung ein Speichern des Pakets in einem Puffer des Kerns anfordert, bis der Empfang des Pakets bestätigt wird.
  15. Verfahren nach Anspruch 13, wobei die Zuverlässigkeitsanforderung ein Anfordern anfordert, dass das Paket im Falle eines Paketfehlers erneut gesendet wird.
  16. Verfahren nach Anspruch 12, wobei die Zuverlässigkeitsanforderung eine Bestätigung des Empfangs des Pakets vor dem Senden von nachfolgenden Paketen anfordert.
  17. Verfahren nach Anspruch 12, ferner umfassend ein Annullieren des Pakets gemäß einem Alter des Pakets im Falle eines Paketfehlers.
  18. Verfahren nach Anspruch 12, ferner umfassend ein Ersetzen des Pakets durch ein aktualisiertes Paket im Falle eines Paketfehlers.
  19. Verfahren nach Anspruch 12, ferner umfassend: Speichern von Daten, die mit Paketfehlern im chipintegrierten Netzwerk verbunden sind; und Anpassen der Zuverlässigkeitsanforderung von nachfolgenden Paketen basierend auf den Daten.
  20. Verfahren nach Anspruch 19, wobei das Anpassen der Zuverlässigkeitsanforderung ein Zuordnen von Übermittlungsaufgaben zu spezifischen Kernen im chipintegrierten Netzwerk umfasst.
  21. Verarbeitungsvorrichtung mit einem chipintegrierten Netzwerk zur Leitweglenkung eines Pakets, wobei der Prozessor umfasst: eine Mehrzahl von Verbindungen; eine Mehrzahl von Kernen, die durch die Mehrzahl von Verbindungen verbunden sind, um das chipintegrierte Netzwerk zu bilden, wobei jeder Kern einen Ursprungskern und einen Zielkern umfasst, und jeder Kern einen Prozessor und einen Netzwerkschalter umfasst, wobei der Ursprungskern das Paket erzeugt und das Paket mit einem Etikett versieht, das eine Zuverlässigkeitsanforderung definiert, wobei das Paket gemäß der Zuverlässigkeitsanforderung an den Zielkern übermittelt wird.
  22. Verarbeitungsvorrichtung nach Anspruch 21, wobei mindestens einer von dem Ursprungskern, dem Zielkern oder einem Kern in einem Übermittlungspfad des Pakets Einstellungen des Netzwerkschalters ändert, wobei die Einstellungen in der Zuverlässigkeitsanforderung definiert sind.
  23. Verarbeitungsvorrichtung nach Anspruch 22, wobei die Einstellungen mindestens eines von einer Taktfrequenz für den Netzschalter oder einem Spannungspegel für den Netzschalter umfasst.
  24. Verarbeitungsvorrichtung nach Anspruch 21, wobei jeder Kern in einem Übermittlungspfad des Pakets im chipintegrierten Netzwerk vom Ursprungskern zum Zielkern die Zuverlässigkeitsanforderung auf ihre Erfüllung beurteilt.
  25. Verarbeitungsvorrichtung nach Anspruch 24, ferner umfassend ein Speichern des Pakets in einem Cache mindestens eines Kerns im Übermittlungspfad.
DE112010004006T 2009-10-12 2010-05-28 Zuverlässige kommunikationen in chipintegrierten netzwerken Pending DE112010004006T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/577,378 2009-10-12
US12/577,378 US8473818B2 (en) 2009-10-12 2009-10-12 Reliable communications in on-chip networks
PCT/US2010/036613 WO2011046637A1 (en) 2009-10-12 2010-05-28 Reliable communications in on-chip networks

Publications (1)

Publication Number Publication Date
DE112010004006T5 true DE112010004006T5 (de) 2013-01-10

Family

ID=43855799

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010004006T Pending DE112010004006T5 (de) 2009-10-12 2010-05-28 Zuverlässige kommunikationen in chipintegrierten netzwerken

Country Status (4)

Country Link
US (1) US8473818B2 (de)
JP (1) JP5442129B2 (de)
DE (1) DE112010004006T5 (de)
WO (1) WO2011046637A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113225367A (zh) * 2020-02-04 2021-08-06 西门子股份公司 主机和客户端之间基于包通信的自动化网络及其运行方法

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104137072A (zh) * 2011-12-30 2014-11-05 英特尔公司 在多核心环境中管理硬件错误的方法和装置
WO2014074251A1 (en) 2012-11-06 2014-05-15 Coherent Logix, Incorporated Multiprocessor programming toolkit for design reuse
CN104813306B (zh) 2012-11-21 2017-07-04 相干逻辑公司 具有散布处理器dma‑fifo的处理系统
JP6029010B2 (ja) * 2013-03-22 2016-11-24 大学共同利用機関法人情報・システム研究機構 半導体チップ、半導体チップ接続システム
US9612907B2 (en) * 2014-02-21 2017-04-04 Unisys Corporation Power efficient distribution and execution of tasks upon hardware fault with multiple processors
US9520180B1 (en) 2014-03-11 2016-12-13 Hypres, Inc. System and method for cryogenic hybrid technology computing and memory
US9367370B2 (en) * 2014-08-25 2016-06-14 Empire Technology Development Llc NOC loopback routing tables to reduce I/O loading and off-chip delays
US10740167B2 (en) * 2016-12-07 2020-08-11 Electronics And Telecommunications Research Institute Multi-core processor and cache management method thereof
CN108694441B (zh) * 2017-04-07 2022-08-09 上海寒武纪信息科技有限公司 一种网络处理器和网络运算方法
US11010338B2 (en) * 2017-04-06 2021-05-18 Shanghai Cambricon Information Technology Co., Ltd Data screening device and method
CN107395797A (zh) * 2017-07-14 2017-11-24 惠州Tcl移动通信有限公司 一种移动终端及其控制方法和可读存储介质
KR102590907B1 (ko) * 2017-11-17 2023-10-18 주식회사 아이티엘 차량 통신을 지원하는 무선통신 시스템에서 무선 통신을 수행하는 방법 및 장치
US11902866B2 (en) * 2017-11-17 2024-02-13 Innovative Technology Lab Co., Ltd. Apparatus and method for performing wireless communication in wireless communication system supporting vehicle communication
US10996267B2 (en) * 2019-01-23 2021-05-04 Qualcomm Incorporated Time interleaved scan system

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3665173A (en) * 1968-09-03 1972-05-23 Ibm Triple modular redundancy/sparing
CA2003338A1 (en) * 1987-11-09 1990-06-09 Richard W. Cutts, Jr. Synchronization of fault-tolerant computer system having multiple processors
AU616213B2 (en) * 1987-11-09 1991-10-24 Tandem Computers Incorporated Method and apparatus for synchronizing a plurality of processors
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
AU625293B2 (en) * 1988-12-09 1992-07-09 Tandem Computers Incorporated Synchronization of fault-tolerant computer system having multiple processors
US5295258A (en) * 1989-12-22 1994-03-15 Tandem Computers Incorporated Fault-tolerant computer system with online recovery and reintegration of redundant components
DE4129809C2 (de) * 1991-01-28 2000-08-17 Bosch Gmbh Robert Mehrrechnersystem
US5379415A (en) * 1992-09-29 1995-01-03 Zitel Corporation Fault tolerant memory system
US5838894A (en) * 1992-12-17 1998-11-17 Tandem Computers Incorporated Logical, fail-functional, dual central processor units formed from three processor units
EP0958672A4 (de) * 1995-06-07 2002-05-22 Comm Inc E Übertragungssteuerung mit geringer leistungsaufnahme für einen hostrechnerserver
JP3481737B2 (ja) * 1995-08-07 2003-12-22 富士通株式会社 ダンプ採取装置およびダンプ採取方法
GB9810512D0 (en) * 1998-05-15 1998-07-15 Sgs Thomson Microelectronics Detecting communication errors across a chip boundary
US6948092B2 (en) * 1998-12-10 2005-09-20 Hewlett-Packard Development Company, L.P. System recovery from errors for processor and associated components
US6611755B1 (en) * 1999-12-19 2003-08-26 Trimble Navigation Ltd. Vehicle tracking, communication and fleet management system
EP1261910A2 (de) * 2000-03-08 2002-12-04 Sun Microsystems, Inc. Vliw computer-verarbeitungsarchitektur mit einer skalierbaren anzahl von registersätzen
US6901491B2 (en) * 2001-10-22 2005-05-31 Sun Microsystems, Inc. Method and apparatus for integration of communication links with a remote direct memory access protocol
US8037224B2 (en) * 2002-10-08 2011-10-11 Netlogic Microsystems, Inc. Delegating network processor operations to star topology serial bus interfaces
US7337334B2 (en) * 2003-02-14 2008-02-26 International Business Machines Corporation Network processor power management
US7200790B2 (en) * 2003-07-08 2007-04-03 Sun Microsystems, Inc. Switch level reliable transmission
US7353362B2 (en) * 2003-07-25 2008-04-01 International Business Machines Corporation Multiprocessor subsystem in SoC with bridge between processor clusters interconnetion and SoC system bus
US7437692B2 (en) * 2003-11-10 2008-10-14 Infineon Technologies Ag Memory debugger for system-on-a-chip designs
US7340548B2 (en) * 2003-12-17 2008-03-04 Microsoft Corporation On-chip bus
US8799706B2 (en) * 2004-03-30 2014-08-05 Hewlett-Packard Development Company, L.P. Method and system of exchanging information between processors
JP2006041686A (ja) * 2004-07-23 2006-02-09 Fujitsu I-Network Systems Ltd パケット交換機
US7590885B2 (en) * 2005-04-26 2009-09-15 Hewlett-Packard Development Company, L.P. Method and system of copying memory from a source processor to a target processor by duplicating memory writes
WO2006123287A2 (en) * 2005-05-18 2006-11-23 Koninklijke Philips Electronics N.V. Integrated circuit and method of arbitration in a network on an integrated circuit
US7568115B2 (en) 2005-09-28 2009-07-28 Intel Corporation Power delivery and power management of many-core processors
US7624250B2 (en) * 2005-12-05 2009-11-24 Intel Corporation Heterogeneous multi-core processor having dedicated connections between processor cores
US7949887B2 (en) * 2006-11-01 2011-05-24 Intel Corporation Independent power control of processing cores
US20080282005A1 (en) * 2007-05-02 2008-11-13 Edward Chencinski Method and processing unit for inter-chip communication
US8427951B2 (en) * 2007-08-30 2013-04-23 International Business Machines Corporation Method, system, and apparatus for reliable data packet recovery in a link layer of a data center ethernet network
US7839777B2 (en) * 2007-09-27 2010-11-23 International Business Machines Corporation Method, system, and apparatus for accelerating resolution of network congestion
US20090109996A1 (en) * 2007-10-29 2009-04-30 Hoover Russell D Network on Chip
EP2056511B1 (de) * 2007-10-31 2012-06-06 Siemens Aktiengesellschaft Verfahren zur Übertragung von Datenproben
US10216692B2 (en) * 2009-06-17 2019-02-26 Massively Parallel Technologies, Inc. Multi-core parallel processing system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113225367A (zh) * 2020-02-04 2021-08-06 西门子股份公司 主机和客户端之间基于包通信的自动化网络及其运行方法
EP3863231A1 (de) * 2020-02-04 2021-08-11 Siemens Aktiengesellschaft Automatisierungsnetzwerk mit paketbasierter kommunikation zwischen host und client sowie verfahren zum betrieb eines automatisierungsnetzwerks
US11509430B2 (en) 2020-02-04 2022-11-22 Siemens Aktiengesellschaft Method for operating an automation network having packet-based communication between a host and client

Also Published As

Publication number Publication date
US8473818B2 (en) 2013-06-25
JP2013507879A (ja) 2013-03-04
JP5442129B2 (ja) 2014-03-12
WO2011046637A1 (en) 2011-04-21
US20110087943A1 (en) 2011-04-14

Similar Documents

Publication Publication Date Title
DE112010004006T5 (de) Zuverlässige kommunikationen in chipintegrierten netzwerken
DE102019108376A1 (de) Sequenz zur Aushandlung und Aktivierung von Flexbus-Protokollen
DE112013007767B3 (de) Vorrichtung und system zur verbesserten nutzung von datenverbindungen
DE112013003733B4 (de) Adaptive Paketumleitung, um angemessene, kostengünstige und/oder Energie-effiziente Dienstgüte im Netzwerk auf Chipvorrichtungen zu erreichen
DE102018006890A1 (de) Technologien zur Verarbeitung von Netzpaketen durch einen intelligenten Netzwerk-Schnittstellenkontroller
DE102015118711B4 (de) Technologien zur Netzwerkpaketcacheverwaltung
DE112017006523T5 (de) Retimer mit kurzer latenzzeit
DE112013007732T5 (de) PCI-Express-Erweiterungen
DE102019108798A1 (de) Hochbandige verbindungsschicht für kohärente nachrichten
DE112013000839B4 (de) Datenübertragungsprotokoll für verteilte Informationstechnologie-Architekturen
DE112005001556T5 (de) Eine Vorrichtung und ein Verfahren zur Zusammenfügung von Paketen in Netzwerk-Verbindungsroutern
DE102020201834A1 (de) Technologien für netzvorrichtungslastausgleichseinrichtungen für beschleunigte funktionen-als-dienst
DE102009031870B4 (de) Dynamisches Aktualisieren der Routing-Tabelle
DE102019112772A1 (de) Technologien für eine dienstgütefrist-bewusste ende-zu-ende-e/a-planung
DE202010018100U1 (de) Vorrichtung für ID-basierte Ströme über PCI-Express
DE112012006227T5 (de) Remotezugriff auf den direkten Speicher mit reduzierter Latenzzeit
DE102015101583B4 (de) Reduzierung der Grösse von IPV6-Routertabellen unter Verwendung eines Bypasstunnels
DE112011105911T5 (de) Server mit Switch-Schaltungen
DE112017003294T5 (de) Technologien für ein skalierbares Senden und Empfangen von Paketen
DE112016006065T5 (de) Spekulative nummerierung von adressräumen für bus-einrichtungsfunktionen
DE112012004551T5 (de) Mehrkernverknüpfung in einem Netzprozessor
DE102009032072A1 (de) Einstellbare Senderleistung für Hochgeschwindigkeitsverbindungen mit konstanter Bitfehlerrate
DE112004002043B4 (de) Verfahren, System und Programm zum Aufbau eines Pakets
DE112017004907T5 (de) System, Vorrichtung und Verfahren zur Durchführung einer verteilten Arbitration
DE102018204577A1 (de) Techniken zum Erfüllen von Dienstgüteanforderungen für eine Fabric-Punkt-zu-Punkt-Verbindung

Legal Events

Date Code Title Description
R163 Identified publications notified
R012 Request for examination validly filed
R016 Response to examination communication