DE112011104443T5 - Verbinden eines externen Netzwerkcoprozessors mit einem Netzwerkprozessor-Paket-Parser - Google Patents

Verbinden eines externen Netzwerkcoprozessors mit einem Netzwerkprozessor-Paket-Parser Download PDF

Info

Publication number
DE112011104443T5
DE112011104443T5 DE112011104443T DE112011104443T DE112011104443T5 DE 112011104443 T5 DE112011104443 T5 DE 112011104443T5 DE 112011104443 T DE112011104443 T DE 112011104443T DE 112011104443 T DE112011104443 T DE 112011104443T DE 112011104443 T5 DE112011104443 T5 DE 112011104443T5
Authority
DE
Germany
Prior art keywords
traffic
coprocessor
bytes
processor
external
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE112011104443T
Other languages
English (en)
Other versions
DE112011104443B4 (de
Inventor
Fabrice Jean Verplanken
Colin Verrilli
Natarajan Vaidhyanathan
Damon Philippe
Chih-Jen Chang
Jean Calvignac
Claude Basso
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112011104443T5 publication Critical patent/DE112011104443T5/de
Application granted granted Critical
Publication of DE112011104443B4 publication Critical patent/DE112011104443B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • 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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

Das Optimieren der Anzahl von Lanes eines Netzwerkprozessors, wenn ein Anforderungs-/Antwort-Datenverkehr zwischen dem Parser von Netzwerkprozessor-Ethernet-Anschlüsse und einem externen Coprozessor umgesetzt wird, weist bei Empfang eines 64-Byte-Ethernet-Pakets im Ethernet-Anschluss und während der Parsing-Periode auf, dass der Parser eine Anforderung mit einem Wort von 16 Byte an den Coprozessor auf der weiteren (bidirektionalen) 3,125-Lane sendet und als Reaktion darauf ein Wort mit 16 Byte auf der weiteren (bidirektionalen) 3,125-Lane empfängt. Der Coprozessorzugriff-Datenverkehr mit einem Wort von 16 Byte und ein (bidirektionaler) Datenverkehr mit einer Einheit im Netzwerkprozessor können statisch gemultiplext werden, wobei ein oder der andere Datenverkehr eingerichtet wird, wenn der Netzwerkprozessor initialisiert wird. Es wird ein dynamisches Multiplexing des Coprozessorzugriff-Datenverkehrs mit einem Wort von 16 Byte in einem Ethernet-Anschluss und des Coprozessorzugriff-Datenverkehrs mit einem Wort von 16 Byte in einem anderen Ethernet-Anschluss durchgeführt, wobei das dynamische Multiplexing mit einem Umlaufalgorithmus arbitriert wird.

Description

  • Gebiet der Erfindung
  • Diese Erfindung bezieht sich im Allgemeinen auf die Netzwerkverarbeitung; insbesondere zielt die Erfindung auf das Bereitstellen einer Verbindung eines Netzwerkprozessor-Paket-Parser mit einem externen Coprozessor ab, um Workload effizient zu senden und Ergebnisse für das Verarbeiten von weiteren Netzwerkfunktionen zu empfangen.
  • Verwandter Stand der Technik
  • Hochleistungs-Netzwerkprozessoren auf einem Chip müssen womöglich ausgereifte Netzwerkfunktionen handhaben können. Insbesondere muss ein Paket-Parser, beispielsweise in einem Ethernet-Adapter, womöglich eine Paketklassifizierung der höheren Schicht und Paketfilterfunktionen unterstützen, die nicht alle am Chip gehandhabt werden können. Unter diesen Umständen muss der Parser einige Paketverarbeitungsfunktionen an einen externen Coprozessor auslagern und erhält im Gegenzug das Ergebnis vom Coprozessor, um dieses als eine Eingabe für sein eigenes Paketverarbeitungsergebnis zu verwenden.
  • Es ist üblich, sich für das Auslagern von Netzwerkverarbeitungsfunktionen vom Paket-Parser zu entscheiden, da unterschiedliche Funktionen eine unterschiedliche Verarbeitungsarchitektur und Leistung erfordern können, wobei der Netzwerkprozessorchip nicht all diese Merkmale beinhalten kann. Der andere gute Grund ist ein Begrenzungsproblem hinsichtlich Chipfläche, da eine Paket-Parsing-Netzwerkzusatzfunktion eine Logik und Arrays erfordern kann, die sehr groß sein können.
  • Eine typische Netzwerkverarbeitungs-Zusatzfunktion, die vom Paket-Parser an den Coprozessor ausgelagert werden kann, ist die Paketklassifizierung, die beispielsweise eine Suche im Rahmen einer Zugriffsmethode für Telekommunikation (TCAM, Telecommunications Access Method) oder eine Suche auf der Grundlage von Hashs, bei der unterschiedliche Suchalgorithmen zur Anwendung kommen (Patricia-Trie, Cuckoo-Algorithmus usw.) beinhaltet. Eine andere Funktion, die ausgelagert werden kann, sind die Paketfilterfunktionen, die auf der Erkennung von aus dem Paket extrahierten Mustern basieren.
  • Eine wesentliche Anforderung für das Entwickeln einer Paket-Parser-Verbindung mit einem externen Coprozessor besteht somit in der Flexibilität, sich an verschiedene Bandbreitenanforderungen anpassen und programmierbare Technologien von externen Prozessoren wie FPGA unterstützen zu können, um viele potenzielle Netzwerkprozessorsystem-Enddesigns zu ermöglichen.
  • Das US-Patent US7428618 bezieht sich auf eine Netzwerkknotenstruktur, die um zwei Netzprozessoren aufgebaut ist, einen für jede Paket-Datenstrom-Richtung, die über einen gemeinsam genutzten Speicher (118 in 2) Daten austauschen. Die Struktur beinhaltet darüber hinaus einen Satz von Coprozessoren, die auf einer Tochterkarte (122C in 2) angeordnet sind. Alle Coprozessoren sind über eine Hardware-Steuerlogik (236 in 2) miteinander verbunden, die auch eine Schnittstelle für einen der beiden Netzprozessoren (245A in 2) über einen dedizierten Hauptspeicher (216 DPSSRAM in 2) bereitstellt. Dieses Dokument aus dem Stand der Technik bietet keine Beschreibung einer konfigurierbaren Schnittstelle mit dem Coprozessor, der Datenaustausch wird stattdessen über eine eindeutige Schnittstelle (254A in 2) zum Austauschen von Anforderungen und Antworten zwischen den Coprozessoren und dem Netzprozessor über einen dedizierten Hauptspeicher (216 in 2) erzielt. Die eindeutige Schnittstelle ist zwar dediziert, aber spezifisch für das Unterstützen der Schnittstelle mit dem Coprozessor konzipiert.
  • Das US-Patent US20030041172 bezieht sich auf eine Netzwerkknotenstruktur, die eine Leistungsverbesserung im Vergleich zu einem bestehenden Netzwerkprozessor ermöglicht. Der zentrale Punkt ist, die bestehende Netzwerkprozessorinfrastruktur mit einem externen Coprozessor zu ergänzen. Die zum jetzigen Zeitpunkt verfügbare Technologie ermöglicht nicht, den Coprozessor auf korrelierte Weise mit dem Hauptnetzwerkprozessor zu betreiben, insbesondere da dafür große Puffer und komplexe Statusabfragealgorithmen erforderlich sind (siehe Ende von [0001]). Ferner werden bei dieser Lösung keine spezifischen Aufgaben parallel mit der Hauptpaketbearbeitung durch den Netzwerkprozessor, sondern in Reihe mit dieser ausgeführt (siehe Ende von [0002]). Diese Lösung beschreibt nicht die physische Schnittstelle mit dem Coprozessor, und insbesondere ist die Schnittstelle nicht als konfigurierbare Schnittstelle beschrieben, die an verschiedene Netzwerksystemanforderungen angepasst werden könnte.
  • Kurzdarstellung der Erfindung
  • Eine bevorzugte Ausführungsform der vorliegenden Erfindung kann ein Verfahren und ein System zum Verbinden eines Paket-Parser in einem Netzwerkprozessorchip mit einem externen Coprozessor für das Senden von Workload und das Empfangen von Ergebnissen auf flexible Weise bereitstellen, so dass bestehende bidirektionale serielle Steuerungs-/Verwaltungs-Lanes wiederverwendet und viele Arten von Datenverkehr und Bandbreite auf einem begrenzten Satz von seriellen Lanes unterstützt werden.
  • In einem ersten Aspekt wird ein Verfahren in einem Netzwerkprozessor für das Verwenden der ersten Übertragungsprotokollanschlüsse bereitgestellt, der erste Übertragungsprotokollanschlüsse aufweist, wobei jeder Datenpfad-Datenverkehr von Paketen mit einer Mindestgröße M auf N Lanes bei einer Geschwindigkeit von S GBit/s unterstützt und Datenverkehr mit unterschiedlichen Übertragungsprotokolleinheiten im Netzwerkprozessor auf N weiteren Lanes bei einer Geschwindigkeit von s GBit/s unterstützt, um Zugriff auf einen externen Coprozessor durch eine Parsing-Netzwerklogik zu unterstützen, die in jedem der ersten Übertragungsprotokollanschlüsse angeordnet ist, die während einer Parsing-Periode bei Empfang eines Pakets mit einer Mindestgröße M eine Anforderung an den externen Coprozessor sendet und eine Antwort vom externen Coprozessor erhält, wobei das Verfahren aufweist, dass der Parser eine Anforderung mit einem Wort von maximal m Byte an den Coprozessor auf den N weiteren Lanes mit einer Geschwindigkeit von s GBit/s sendet und eine Antwort mit einem Wort von maximal m Byte vom externen Coprozessor auf den gleichen weiteren Lanes mit einer Geschwindigkeit von s GBit/s empfängt, so dass die Ungleichung N × S/M =< n × s/m geprüft wird.
  • Vorzugsweise in einem Netzwerkprozessor, der Ethernet-Anschlüsse aufweist, wobei jeder einen Datenpfad-Datenverkehr von Ethernet-Paketen mit einer Mindestgröße von 64 Byte auf 4 Lanes bei einer Geschwindigkeit von 3,125 GBit/s unterstützt und wobei Datenverkehr mit unterschiedlichen Übertragungsprotokolleinheiten im Netzwerkprozessor auf 1 weiteren Lane bei einer Geschwindigkeit von 3,125 GBit/s unterstützt, um das Verwenden der Ethernet-Anschlüsse, für Zugriff auf einen externen Coprozessor durch eine Parsing-Netzwerklogik zu unterstützen, die in jedem der ersten Übertragungsprotokollanschlüsse angeordnet ist, die während einer Parsing-Periode bei Empfang eines Pakets mit einer Mindestgröße von 64 Byte eine Anforderung an den externen Coprozessor sendet und eine Antwort vom externen Coprozessor erhält, wobei das Verfahren aufweist, dass der Parser eine Anforderung mit einem Wort von maximal 16 Byte an den Coprozessor auf der weiteren Lane mit einer Geschwindigkeit von 3,125s GBit/s sendet und eine Antwort mit einen Wort von maximal 16 Byte vom externen Coprozessor auf der gleichen weiteren Lane mit einer Geschwindigkeit von 3,125 GBit/s empfängt.
  • Vorzugsweise weist das Verfahren ferner vor dem Senden von Datenverkehr auf die n weiteren Lanes bei einer Geschwindigkeit von s GBit/s das Multiplexen des Datenverkehrs des Coprozessorzugriffs mit einem Wort mit einer Mindestgröße von M Byte in einem ersten Übertragungsprotokollanschluss und des Datenverkehrs mit einer Übertragungsprotokolleinheit in dem Netzwerkprozessor in einem Zwei-Eingaben-Multiplexer auf, wobei der Zwei-Eingaben-Multiplexer statisch auf einen der zwei gemultiplexten Datenverkehre konfigurierbar ist.
  • Vorzugsweise wird der statisch gemultiplexte Datenverkehr des Coprozessorzugriffs mit einem Wort mit einer Maximalgröße von m Byte vor dem Multiplexen in dem statisch konfigurierbaren Zwei-Eingaben-Multiplexer zunächst in einem dynamischen Zwei-Eingaben-Multiplexer mit einem Datenverkehr des Coprozessorzugriffs mit einem Wort von maximal m Byte von einem anderen ersten Übertragungsprotokollanschluss gemultiplext, wobei der dynamische Multiplexer die beiden gemultiplexten Datenverkehre unter der Steuerung eines Datenverkehr-Arbitrierungsalgorithmus ermöglicht.
  • Vorzugsweise weist das Verfahren ferner auf, dass der Datenverkehr der weiteren Lane beim Übertragen seriell und beim Empfangen parallel in einem Hochgeschwindigkeits-Parallel-Seriell- und Seriell-Parallel-Umsetzer (Hochgeschwindigkeits-SerDes(High Speed SerDes, HSS)) von s GBit/s umgesetzt wird.
  • Vorzugsweise weist das Verfahren ferner auf, dass der Datenverkehr der weiteren bidirektionalen Lane beim Übertragen seriell und beim Empfangen parallel in einem Hochgeschwindigkeits-SerDes von 2 × s GBit/s umgesetzt wird.
  • Vorzugsweise weist das Verfahren ferner auf, dass der Datenverkehr, der von unterschiedlichen Übertragungsprotokolleinheiten unterstützt wird, einen 2,5-GBit/s-PCIe-x1-Datenverkehr aufweist.
  • Vorzugsweise weist der Datenverkehr, der von unterschiedlichen Übertragungsprotokolleinheiten unterstützt wird, eine 1,25-GBit/s-SGMII-Datenverkehr auf.
  • Vorzugsweise ist der Datenverkehr-Arbitrierungsalgorithmus ein „Work-Conserving”-Umlaufalgorithmus.
  • Vorzugsweise beinhalten die Wörter der Anforderung mit einer Maximalgröße von m Byte und die Wörter der Antwort mit einer Maximalgröße von m Byte für den Zugriff auf den externen Coprozessor eine Kennung des ersten Übertragungsprotokollanschlusses, der den Datenverkehr des entsprechenden Coprozessorzugriffs mit einem Wort mit einer Maximalgröße von m Byte unterstützt.
  • In einem zweiten Aspekt wird ein Netzwerkprozessor bereitgestellt, der erste Übertragungsprotokollanschlüsse aufweist, wobei jeder einen Datenpfad-Datenverkehr mit einer Maximalgröße von M Byte auf N Lanes bei einer Geschwindigkeit von S GBit/s unterstützt und Datenverkehr mit unterschiedlichen Übertragungsprotokolleinheiten im Netzwerkprozessor auf n weiteren Lanes mit einer Geschwindigkeit von s GBit/s unterstützt, wobei der Netzwerkprozessor Zugriff auf einen externen Coprozessor durch eine Parsing-Netzwerklogik unterstützt, die in jedem der ersten Übertragungsprotokollanschlüsse angeordnet ist, wobei die Parsing-Logik so ausgelegt ist, dass sie während einer Parsing-Periode bei Empfang eines Pakets mit einer Mindestgröße von M Byte eine Anforderung an den externen Coprozessor sendet und eine Antwort vom externen Coprozessor empfängt, wobei der Netzwerkprozessor aufweist, dass der Parser so ausgelegt ist, dass er eine Anforderung mit einem Wort von maximal m Byte an den Coprozessor auf den n weiteren Lanes sendet und eine Antwort mit einem Wort mit einer Maximalgröße von m Byte vom externen Coprozessor auf den gleichen n weiteren Lanes in einer Geschwindigkeit s empfängt, so dass die Ungleichung N × S/M =< n × s/m geprüft wird.
  • Vorzugsweise weist der Netzwerkprozessor ferner Ethernet-Anschlüsse auf, wobei jeder Datenpfad-Datenverkehr mit einer Mindestgröße von 64 Byte auf 4 Lanes bei einer Geschwindigkeit von 3,125 GBit/s unterstützt und Datenverkehr mit unterschiedlichen Übertragungsprotokolleinheiten im Netzwerkprozessor auf 1 weiteren Lane mit einer Geschwindigkeit von 3,125 GBit/s unterstützt, wobei der Netzwerkprozessor Zugriff auf einen externen Coprozessor durch eine Parsing-Netzwerklogik unterstützt, die in jedem der Ethernet-Protokollanschlüsse angeordnet ist, wobei die Parsing-Logik so ausgelegt ist, dass sie während einer Parsing-Periode bei Empfang eines Pakets mit einer Mindestgröße von M Byte eine Anforderung an den externen Coprozessor sendet und eine Antwort vom externen Coprozessor erhält, wobei der Netzwerkprozessor aufweist, dass der Parser so ausgelegt ist, dass er eine Anforderung mit einem Wort von maximal 16 Byte auf der 1 weiteren Lane an den Coprozessor sendet und eine Antwort mit einem Wort mit einer Maximalgröße von 16 Byte auf der gleichen weiteren Lane in einer Geschwindigkeit von 3,125 vom externen Coprozessor empfängt, so dass die Ungleichung N × S/M =< n × s/m geprüft wird.
  • Vorzugsweise weist der Netzwerkprozessor ferner einen Zwei-Eingaben-Multiplexer auf, der Datenverkehr des Coprozessorzugriffs mit einem Wort mit einer Maximalgröße von m Byte im ersten Übertragungsprotokollanschluss mit einem Datenverkehr mit einer Netzwerkprotokolleinheit im Netzwerkprozessor multiplext, wobei der Zwei-Eingaben-Multiplexer statisch auf einen der zwei gemultiplexten Datenverkehre konfigurierbar ist.
  • Vorzugsweise weist der Netzwerkprozessor ferner einen dynamischen Zwei-Eingaben-Multiplexer auf, der einen Datenverkehr des Coprozessorzugriffs mit einem Wort mit einer Maximalgröße von m Byte von einem ersten Übertragungsprotokollanschluss und einen Datenverkehr des Coprozessorzugriffs mit einem Wort mit einer Maximalgröße von m Byte von einem anderen ersten Übertragungsprotokollanschluss multiplext, bevor der gemultiplexte Datenverkehr in dem statisch konfigurierbaren Zwei Eingaben-Multiplexer statisch gemultiplext wird, wobei der dynamische Multiplexer so ausgelegt ist, dass er die zwei gemultiplexten Datenverkehre unter der Steuerung eines Datenverkehr-Arbitrierungsalgorithmus ermöglicht.
  • Die physische Ethernet-Schnittstelle des Netzwerkprozessors unterstützt vorzugsweise den Ethernet-Datenverkehr und den Datenverkehr (für Steuerung und Daten) von anderen Übertragungsprotokolleinheiten auf weiteren Lanes: Mit der Lösung der Erfindung wird der Parser-Befehlsfluss mit dem externen Coprozessor auch auf den weiteren Lanes unterstützt. Dadurch kann die Anzahl von seriellen Lanes am Netzwerkprozessor minimiert werden und in der Folge werden die Paketgröße und Kosten optimiert und die von den großen Hochgeschwindigkeits-SerDes-Kernen belegte Siliciumfläche minimiert (angepasste Logik). Aus all diesen Gründen scheint es sehr vorteilhaft zu sein, wenn die Schnittstelle des externen Coprozessors diese weiteren bidirektionalen seriellen Lanes gemeinsam nutzt.
  • Bezugnahme auf die Zeichnungen
  • Es wird nun eine bevorzugte Ausführungsform der vorliegenden Erfindung lediglich beispielhaft unter Bezugnahme auf die beiliegenden Zeichnungen beschrieben, in denen:
  • 1 eine globale Ansicht eines Netzwerkprozessors mit dessen Hauptfunktionen, Ausgabe-Lanes und Verbindung mit einem externen Coprozessor ist, in der die bevorzugte Ausführungsform der Erfindung umgesetzt ist;
  • 2 eine erste Umsetzung einer Verbindung des Netzwerkprozessor-Parser mit dem externen Coprozessor zeigt, in der die Lösung der bevorzugten Ausführungsform nicht umgesetzt ist;
  • 3 eine erste Optimierung der Verbindung des Netzwerkprozessor-Parser mit dem externen Coprozessor zeigt, in der die Lösung der bevorzugten Ausführungsform nicht umgesetzt ist;
  • 4 eine zweite Optimierung der Verbindung des Netzwerkprozessor-Parser mit dem externen Coprozessor gemäß der Lösung der bevorzugten Ausführungsform zeigt;
  • 5 ein XCP-Anforderungs- und XCP-Antwort-Format, das zwischen dem Netzwerkprozessor-Parser und dem externen Coprozessor ausgetauscht wird, gemäß der Lösung der bevorzugten Ausführungsform zeigt.
  • Ausführliche Beschreibung der bevorzugten Ausführungsform
  • 1 ist eine globale Ansicht eines Netzwerkprozessors mit dessen Hauptfunktionen, Ausgabe-Lanes und Verbindung mit einem externen Coprozessor, in der die bevorzugte Ausführungsform der Erfindung umgesetzt ist. Von oben nach unten beschrieben, setzt der 40-GBit/s-Netzwerkprozessor (100) von 1, der Daten mit einem Computer (hier nicht gezeigt) austauscht, Verarbeitungsfunktionen mit speziellen Prozessoren (101 bis 107) um, die mit einem internen Prozessorbus (108) verbunden sind. Die beiden Hauptnetzwerkprotokolle werden von diesem Netzwerkprozessor durch eine PCI-Einheit (120), die mit dem internen Bus verbunden ist und externe Verbindungen, z. B. mit einem USB-Anschluss, unterstützt, und durch einen Ethernet-Adapter (130) unterstützt, der IEEE-standardisierte 4-×-10-GBit/s-XAUI-Schnittstellen (Anschluss 1, Anschluss 2, Anschluss 3 und Anschluss 4) unterstützt, was den Ethernet-Paket-Datenpfad darstellt. Der PCI- und der Ethernet-Datenverkehr werden über eine Verbindungsschnittstelle mit den 4 Ethernet-Anschlüssen (Anschluss 1, Anschluss 2, Anschluss 3 und Anschluss 4) zusammengeführt. Der PCI- und der Ethernet-Datenverkehr werden danach in einem Hochgeschwindigkeits-SerDes (160) seriell umgesetzt (Top-down-Datenverkehr), wobei der entstehende Hochgeschwindigkeits-Datenpfad (170) 4 seriell umgesetzte Ausgabe-Lanes von 4 × 10 Bit × 2 zum Übertragen und Empfangen beinhaltet, da er bidirektional ist.
  • Ein weiterer Pfad (190), der seinen Ursprung in der PCI-Einheit (120) und dem Ethernet-Adapter (130) hat, der eine geringere Geschwindigkeit als der Datenpfad aufweist, kann beispielsweise 2 × 1-GBit/s-Ethernet-Datenpfad und zwei 2,5-GBit/s-PCI-Express-(1-Lane-PCIe-x1)-Datenpfade beinhalten, wie durch die vier Ausgabepfade (190) gezeigt. Dieser weitere Pfad (190) wird durch einen zweiten Hochgeschwindigkeits-SerDes (161) seriell umgesetzt.
  • Im Netzwerkprozessor sendet die Parser-Logik (140), die eine Ethernet-Paketklassifizierung im Ethernet-Adapter ausführt, einige weitere Parser-Netzwerkfunktionen, die von einem externen Coprozessor (110) durchzuführen sind. Der Coprozessor wird in Bezug auf den Netzwerkprozessor (100), der in einem Chip umgesetzt ist, als ”extern” eingestuft. Es wird angemerkt, dass 4 Eingaben auf dem Coprozessor dargestellt sind, die Anzahl von Eingaben auf einem externen Coprozessor jedoch variabel ist. Im Top-down-Parser-Pfad assembliert der Parser Anforderungsnachrichten im Rahmen seines Parser-Prozesses in seine Eingaberegister. Die Assemblierung ist vollständig, wenn der Parser das „Befehlsbyte” (das später im Dokument unter Bezugnahme auf die Beschreibung von 5 beschrieben ist) der Nachricht füllt. Mit dem Befehlsbyte leitet der Parser im Nachrichtenfluss (150), der in der Zeichnung logisch durch einen dicken Pfeil dargestellt ist, eine Verschlüsselung, serielle Umsetzung und Übertragung der „Anforderungs”-Nachricht an den Coprozessor (110) ein. In seinem Bottom-up-Pfad setzt der Parser die vom Coprozessor empfangene „Antwort”-Nachricht parallel um und entschlüsselt sie und führt dieses Ergebnis mit dem Ergebnis seines eigenen Paketprozesses zusammen.
  • Die sogenannte bidirektionale XCP-Parser-Coprozessor-Schnittstelle ist keine Standardschnittstelle, sondern ist als Teil der Lösung der Erfindung definiert.
  • 2 zeigt eine erste Umsetzung einer Verbindung des Netzwerkprozessor-Parser mit dem externen Coprozessor, in der die Lösung der bevorzugten Ausführungsform nicht umgesetzt ist. 2 zeigt die Anschlusslogiken des Netzwerkprozessors. Die Verwendung von „Anschlüssen” im restlichen Dokument bezieht sich auf Logikeinheiten. In 2 hat ein 40-GBit/s-Netzwerkprozessor (100) 4 Ethernet-Anschlüsse (200, 201, 202, 203) zu 10 GBit/s, wobei jeder eine bidirektionale XAUI-Schnittstelle bereitstellt, die durch den IEEE-Standard definiert ist und 4 Lanes zu 3,125 GBit/s aufweist, wobei jede 10 Bit in Sende- und Empfangsrichtung beinhaltet. Diese XAUI-Schnittstelle unterstützt den Datenpfad (220, 221, 222, 223), den Ethernet-Paket-Datenverkehr. Dieser Datenverkehr wird in einem Hochgeschwindigkeits-SerDes (160) seriell umgesetzt, der hier nicht dargestellt ist.
  • Die empfangenen Pakete werden im Ethernet-Anschluss (z. B. unter Verwendung eines Picoprozessors auf FSM-Grundlage) geparst (230, 231, 232, 233), wobei das Parsen von Paketen, die eine zusätzliche Verarbeitung erfordern, vom externen Coprozessor durchzuführen ist, wobei die Anforderung über eine XCP-Schnittstelle gesendet und die Antwort über eine solche erhalten wird. Der Parser kann eine XCP-Anforderung zu einem beliebigen Zeitpunkt seines Paket-Parsing-Fensters erstellen und sie unter Verwendung einer seriellen 3,125-Lane für jeden Ethernet-Anschluss senden. Geht man davon aus, dass typische XCP-Anforderungen höchstens 16 Byte lang sind, was einem Viertel der Ethernet-Packet-Mindestgröße (16 Bytes) entspricht, und auf 4 Lanes der (IEEE-Standard-Ethernet-)XAUI-Schnittstelle bei einer Geschwindigkeit von 3,125 GBit/s gesendet werden, ist eine weitere 3,125-GBit/s-Lane für die XCP-Schnittstelle (212) angemessen.
  • Das serielle/parallele Umsetzen wird in einem Hochgeschwindigkeits-SerDes (161) durchgeführt, bevor der Coprozessor (110) erreicht wird.
  • Bei dieser ersten Umsetzung wird die XCP-Schnittstelle mit dem Ethernet-Datenverkehr auf den 10-GBit/s-Ethernet-Anschlüssen des Netzwerkprozessors gemeinsam genutzt.
  • Ein weiteres Beispiel könnte bzw. könnten ein Fibre Channel oder andere Übertragungsprotokollanschlüsse sein, auf dem bzw. denen die Anzahl von seriellen Lanes optimiert werden muss bzw. müssen. Angenommen, der andere Übertragungsprotokollanschluss stellt N serielle Lanes bei S GBit/s bereit, um einen Fluss von Paketen mit einer Mindestgröße von M Byte zu unterstützen, und n weitere serielle Lanes mit einer Geschwindigkeit s, die Anforderung/Antwort-Wörter mit maximal m Byte unterstützen. Die folgende allgemeine Ungleichung muss geprüft werden: N × S/M =< n × s/m
  • Tatsächlich muss die definierte Variable mit den folgenden gleichen p- und P-Paketperiodizitäten übereinstimmen (p = P):
    Auf den XAUI-Lanes: P = (M × 10)/(N × S) Auf den n weiteren Lanes p = (m × 10)/n × s
  • P und p sind in Nanosekunden ausgedrückt, M und N in Bytes, 10 steht für die Anzahl von Bits, N und n bezeichnen die Anzahl von Lanes und S und s sind in GBit/s ausgedrückt.
  • 3 zeigt eine erste Optimierung der Verbindung des Netzwerkprozessor-Parser mit dem externen Coprozessor, in der die Lösung der bevorzugten Ausführungsform nicht umgesetzt ist. Ein typischer 40-GB-Netzwerkprozessor setzt 4 XAUI-Schnittstellen plus ein paar zusätzliche serielle Lanes für Steuerungs- und Verwaltungszwecke um, z. B. zwei (standardisierte) 1,25-GBit/s-SGMII-Ethernet-Lanes für die Netzwerkverwaltung und zwei 2,5-GBit/s-PCIe-x1-Lanes für die Steuerung von Peripheriegeräten (beispielsweise Datenverkehr zu einem Computer-USB-Anschluss).
  • Da es äußerst wünschenswert ist, die Anzahl von seriellen Lanes am Netzwerkprozessor zu minimieren, ist die gemeinsame Nutzung einer ersten Lane umgesetzt, wie in 3 gezeigt. Jede der 4 Steuerungs-/Verwaltungs-Lanes kann unabhängig für ihre ursprüngliche funktionelle Verwendung (SGMII von Ethernet-Adapter 130 oder PCIe x1 von der PCI-Einheit (120) im Netzwerkprozessor) oder für eine Schnittstelle mit dem externen Coprozessor konfiguriert werden. Wenn eine weitere Lane für die XCP-Schnittstelle mit dem externen Coprozessor konfiguriert ist, ermöglicht die Lane dem mit einem der vier 10-GB-Anschlüsse verbundenen Parser eine Erweiterung dessen Funktionalität durch Anfordern eines weiteren Prozesses beim externen Coprozessor.
  • Diese gemeinsame Nutzung der Lane ist unter Verwendung von statischen Multiplexern umgesetzt, die in 3 dargestellt sind, wobei ein Beispiel mit zwei XCP-Datenverkehren gezeigt ist, die auf Anschluss 3 und Anschluss 4 gemeinsam genutzt werden. Ein erster statischer Multiplexer (340) nutzt die Lane gemeinsam zwischen dem Parser-XCP- und PCIe-x1-Datenverkehr, und ein zweiter Multiplexer (341) nutzt die Lane gemeinsam zwischen dem Parser-XCP-Datenverkehr und dem SGMII-Datenverkehr für die Netzwerkverwaltung. Der erste Multiplexer (340) hat zwei Eingaben: den XCP-Datenverkehr vom Parser und den SGMII-Datenverkehr vom Ethernet-Adapter. Bei der Ausgabe stellt der Multiplexer gemäß seiner Konfiguration entweder den Parser-Datenverkehr oder den Ethernet-Steuerungsdatenverkehr bereit. Tatsächlich sind diese Multiplexer vorzugsweise statische Multiplexer, die bei Systeminitialisierung des Netzwerkprozessors entweder für einen Eingabedatenverkehr oder für den anderen Eingabedatenverkehr konfiguriert werden können. Im Beispiel von 3 sind die XCP-Lanes von Anschluss 1 und Anschluss 2 dem Parser-Datenverkehr zugeordnet, Anschluss 3 und Anschluss 4 können jedoch so konfiguriert werden, dass sie XCP-Datenverkehr oder PCI- bzw. Ethernet-Datenverkehr unterstützen.
  • Um die Zeichnung zu vereinfachen, sind nur zwei Steuerungs-Lanes dargestellt, aber in der Praxis hat jeder Ethernet-Anschluss einen gemultiplexten Datenverkehr, wie für Anschluss 3 und Anschluss 4 gezeigt, da zwei 1,25-GBit/S-SGMII-Ethernet-Lanes für die Netzwerkverwaltung und zwei 2,5-GBit/s-PCIe-1x-Lanes für die Steuerung von Peripheriegeräten unterstützt werden müssen.
  • 4 zeigt eine zweite Optimierung der Verbindung des Netzwerkprozessor-Parser mit dem externen Coprozessor gemäß der Lösung der bevorzugten Ausführungsform. Gemäß der bevorzugten Ausführungsform kann eine Steuerungs-/Verwaltungs-Lane, die für den Zugriff auf den externen Coprozessor konfiguriert ist, ferner zweien anstatt einem Parser zugehörig sein, wenn die Lösung der gemeinsamen Nutzung der Steuerungs-/Verwaltungs-Lanes zwischen Zugriff auf den externen Coprozessor und PCI- oder Ethernet-Datenverkehr angewandt wird.
  • Der Netzwerkprozessor von 4 setzt die erste Optimierung um, wie in 3 beschrieben. Ein statischer Multiplexer (400, 401, 402, 403) ist jedem Ethernet-Anschluss zugehörig, so dass jede Steuerungs-/Verwaltungs-Lane für die beiden den Parser-Datenverkehr und den PCI- oder Ethernet-Datenverkehr konfiguriert sein kann. Es sei angemerkt, dass der Einfachheit wegen die Verbindung mit der PCI-Einheit und dem Ethernet-Adapter nur in Anschluss 2 und Anschluss 3 dargestellt sind, diese Verbindung jedoch für die 4 Anschlüsse bestehen kann. Bei der bevorzugten Ausführungsform ist ein zweiter Multiplexer (410, 411, 412, 413) in jedem Ethernet-Anschluss hinzugefügt, der Datenverkehr von zwei Coprozessorzugriffen auf einer gleichen Lane multiplext. Wenn einer der statischen Multiplexer (400, 401, 402, 403) so konfiguriert ist, dass er nur den Zugriff auf den externen Coprozessor (XCP-Schnittstelle) zulässt, empfängt er den Datenverkehr durch den Zugriff auf den externen Coprozessor vom Parser für die beiden Anschlüsse, mit denen er verbunden ist. Beispielsweise empfängt der statische Multiplexer (401) von Anschluss 2, wenn er so konfiguriert ist, dass er Coprozessorzugriff-Datenverkehr vom Parser von Anschluss 2 (231, 211) zulässt, auch Coprozessorzugriff-Datenverkehr vom Parser von Anschluss 1 (230, 210). Die beiden Coprozessorzugriff-Datenverkehre von Anschluss 1 und Anschluss 2 werden im zweiten Multiplexer 411 gemultiplext. Die zweiten Multiplexer (410, 411, 412, 413) sind dynamisch, d. h. sie werden nicht bei Systeminitialisierung des Netzwerkprozessors konfiguriert, sondern beide Datenverkehre werden angenommen, wenn der Netzwerkprozessor aktiv ist. Der Datenverkehr wird in den dynamischen Multiplexern durch einen Arbiter (420, 421, 422, 423) verwaltet, der vorzugsweise einen „Work-Conserving”-Umlaufalgorithmus umsetzt. Ein „Work-Conserving”-Arbiteralgorithmus ist wie in der Technik bekannt, ein Algorithmus, der alternierenden Datenverkehr zulässt, wenn die beiden Parser-Datenverkehre zunehmen.
  • Wenn ein statischer Multiplexer (400, 401, 402, 403) so konfiguriert ist, dass er nur PCI- oder Ethernet-Datenverkehr annimmt, wird der dynamische Multiplexer (410, 411, 412, 413) nichtverwendet.
  • Folglich sind die Coprozessorzugriffe des Parser von zwei Anschlüssen gemäß der Lösung der bevorzugten Ausführungsform mit einem gleichen Multiplexer verbunden, so dass nur eine weitere Lane verwendet wird, um den Datenverkehr des Coprozessorzugriffs von zwei Ethernet-Anschluss-Parsern zu unterstützen.
  • Dies ermöglicht 2 weitere Lanes für deren ursprüngliche Funktion (PCIe x1, SGMII-Ethernet) aufzusparen und dennoch Zugriff durch den externen Coprozessor auf die 4 Parser der 4 Ethernet-10-GB-Anschlüsse bereitzustellen.
  • Dadurch ist die Lösung flexibel genug, um viele verschiedene Konfigurationen zu ermöglichen. Wenn der Netzwerkprozessor 8 Ethernet-Anschluss-Logiken bereitstellt, können 4 Eingaben im Coprozessor durch die Parser-Schnittstelle mit dem Coprozessor verwendet werden.
  • Das Multiplexen von zwei Parser-Coprozessorzugriff-Datenverkehren basiert auf Anforderungen (XCP-Wörter mit max. 16 Byte werden vom Parser an den Coprozessor gesendet) und Antworten (XCP-Wörter mit max. 16 Byte werden durch den Parser vom Coprozessor empfangen). Die Anforderungen von den 2 Parsern werden mittels Umlauf arbitriert, und die Antworten müssen den Anschluss identifizieren, an den der Datenverkehr für die empfangende weitere Lane gesendet werden sollte.
  • 5 zeigt ein XCP-Anforderungs- und XCP-Antwort-Format, das zwischen dem Netzwerkprozessor-Parser und dem externen Coprozessor ausgetauscht wird, gemäß der Lösung der bevorzugten Ausführungsform. In 5 ist ein variables Anforderungs- und Antwortformat der XCP-Schnittstelle mit einer maximalen Größe von 16 Byte beschrieben, das vom Parser verwendet wird, um mit dem externen Coprozessor Daten auszutauschen. Das Anforderungsformat weist ein erstes Befehlsbyte (500) auf, wobei die letzten 15 Bytes für Daten (501) verwendet werden. Das Befehlsbyte ist dargestellt und kann beispielsweise ein Befehlstypbit, Bit 5, beinhalten, das 0 für einen Lesebefehl und 1 für einen Schreibbefehl sein kann, und ein „Letzer Befehl”-Bit, Bit 3, das dem Coprozessor anzeigt, dass der Befehl der letzte ist oder dass der Coprozessor auf einen nächsten Befehl warten muss. Ein Anschluss-ID-Bit (503), das beispielsweise in Bit 4 des Befehlsbyte der Anforderung zu finden ist, definiert den Ursprung des Befehls, da zwei Parser-Befehlsdatenverkehre gemultiplext werden können. Das gleiche Bit 4 wird mit dem gleichen Anschluss-ID-Bit-Wert (506) im Befehlsbyte (504) der 16-Byte-Formatantwort des Coprozessors verwendet, wobei die restlichen 15 Bytes (505) für Daten verwendet werden. Mit dem Anschluss-ID-Bit sind zwei mögliche Werte ausreichend, um einen der beiden Anschlüsse für den gemultiplexten Parser-Datenverkehr zu benennen und somit wird eine korrekte Lenkung der Antwort zum entsprechenden Parser möglich.
  • Es wird angemerkt, dass die Ausgabe der Steuerungs-/Verwaltungs-Lane, auf der der Ethernet-Anschluss mit dem statischen Multiplexer so konfiguriert ist, dass der Coprozessorzugriff-Datenverkehr unterstützt wird, wenn zwei Coprozessorzugriff-Datenverkehrsverbindungen dynamisch auf der gleichen Lane gemultiplext werden, die Datenverkehr-Gesamtrate von 2 × 3,125 GBit/s beträgt, d. h. 6,25 GBit/s. In diesem Fall kann ein in der Technik bekannter Hochgeschwindigkeits-SerDes (161) von 6,25 GBit/s verwendet werden und ist angemessen.
  • Wenn das dynamische Multiplexing der bevorzugten Ausführungsform nicht verwendet wird, beträgt der Coprozessorzugriff-Datenverkehr auf einem Ethernet-Anschluss 3,125 GBit/s und dies ist die Maximalrate für den Eintritt in den HSS (161), da sich die Ethernet-Datenverkehrsrate für Steuerung/Verwaltung auf 1,25 GBit/s beläuft und der PCIe-x1-Datenverkehr, der 2,5 GBit/s ist, den HSS (161) ebenfalls kreuzt. Aus diesem Grund kann ein HSS mit einer geringeren Leistung (3,125 GBit/s) im Rahmen der ersten oder der zweiten Umsetzung verwendet werden.
  • Die Flexibilität der Schnittstelle mit dem externen Coprozessor wird auch durch mehrere Geschwindigkeitsoptionen auf den seriellen Lanes erzielt, so dass geringere Geschwindigkeiten verwendet werden können, wenn kostenoptimierte Umsetzungen von externen Coprozessoren serielle Links mit keiner sehr hohen Geschwindigkeit nutzen (z. B. manche Low-End-FPGA-Familien), wobei höhere Geschwindigkeiten im Rahmen der Lane-Multiplexing-Schemata verwendet werden können.
  • Es wird angemerkt, dass die Ausführungsformen der Erfindung, wie oben beschrieben, auf jedweden Typ eines externen Coprozessors, z. B. einen Prozessor, eine ASIC oder einen FPGA-Coprozessor, Anwendung finden können.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 7428618 [0006]
    • US 20030041172 [0007]

Claims (14)

  1. Verfahren in einem Netzwerkprozessor, der erste Übertragungsprotokollanschlüsse aufweist, wobei jeder Datenpfad-Datenverkehr von Paketen mit einer Mindestgröße M auf N Lanes bei einer Geschwindigkeit von S GBit/s unterstützt und Datenverkehr mit unterschiedlichen Übertragungsprotokolleinheiten im Netzwerkprozessor auf N weiteren Lanes bei einer Geschwindigkeit von s GBit/s unterstützt, um das Verwenden der ersten Übertragungsprotokollanschlüsse für Zugriff auf einen externen Coprozessor durch eine Parsing-Netzwerklogik zu unterstützen, die in jedem der ersten Übertragungsprotokollanschlüsse angeordnet ist, die während einer Parsing-Periode bei Empfang eines Pakets mit einer Mindestgröße M eine Anforderung an den externen Coprozessor sendet und eine Antwort vom externen Coprozessor erhält, wobei das Verfahren aufweist, dass der Parser eine Anforderung mit einem Wort von maximal m Byte an den Coprozessor auf den N weiteren Lanes mit einer Geschwindigkeit von s GBit/s sendet und eine Antwort mit einem Wort von maximal m Byte vom externen Coprozessor auf den gleichen weiteren Lanes mit einer Geschwindigkeit von s GBit/s empfängt, so dass die Ungleichung N × S/M =< n × s/m Gleichung geprüft wird.
  2. Verfahren nach Anspruch 1 in einem Netzwerkprozessor, der Ethernet-Anschlüsse aufweist, wobei jeder einen Datenpfad-Datenverkehr von Ethernet-Paketen mit einer Mindestgröße von 64 Byte auf 4 Lanes bei einer Geschwindigkeit von 3,125 GBit/s unterstützt und Datenverkehr mit unterschiedlichen Übertragungsprotokolleinheiten im Netzwerkprozessor auf 1 weiteren Lane bei einer Geschwindigkeit von 3,125 GBit/s unterstützt, um das Verwenden der Ethernet-Anschlüsse für Zugriff auf einen externen Coprozessor durch eine Parsing-Netzwerklogik zu unterstützen, die in jedem der ersten Übertragungsprotokollanschlüsse angeordnet ist, die während einer Parsing-Periode bei Empfang eines Pakets mit einer Mindestgröße von 64 Byte eine Anforderung an den externen Coprozessor sendet und eine Antwort vom externen Coprozessor erhält, wobei das Verfahren aufweist, dass der Parser eine Anforderung mit einem Wort von maximal 16 Byte an den Coprozessor auf der weiteren Lane mit einer Geschwindigkeit von 3,125 s GBit/s sendet und eine Antwort mit einen Wort von maximal 16 Byte vom externen Coprozessor auf der gleichen weiteren Lane mit einer Geschwindigkeit von 3,125 GBit/s empfängt.
  3. Verfahren nach Anspruch 1 oder 2, ferner aufweisend vor dem Senden von Datenverkehr auf die n weiteren Lanes bei einer Geschwindigkeit von s GBit/s, das Multiplexen des Datenverkehrs des Coprozessorzugriffs mit einem Wort mit einer Mindestgröße von M Byte in einem ersten Übertragungsprotokollanschluss und des Datenverkehrs mit einer Übertragungsprotokolleinheit in dem Netzwerkprozessor in einem Zwei-Eingaben-Multiplexer, wobei der Zwei-Eingaben-Multiplexer statisch auf einen der zwei gemultiplexten Datenverkehre konfigurierbar ist.
  4. Verfahren nach Anspruch 3, wobei der statisch gemultiplexte Datenverkehr des Coprozessorzugriffs mit einem Wort mit einer Maximalgröße von m Byte vor dem Multiplexen in dem statisch konfigurierbaren Zwei-Eingaben-Multiplexer zunächst in einem dynamischen Zwei-Eingaben-Multiplexer mit einem Datenverkehr des Coprozessorzugriffs mit einem Wort von maximal m Byte von einem anderen ersten Übertragungsprotokollanschluss gemultiplext wird, wobei der dynamische Multiplexer die beiden gemultiplexten Datenverkehre unter der Steuerung eines Datenverkehr-Arbitrierungsalgorithmus ermöglicht.
  5. Verfahren nach einem der Ansprüche 1 bis 3, ferner aufweisend, dass der Datenverkehr der weiteren Lane beim Übertragen seriell und beim Empfangen parallel in einem Hochgeschwindigkeits-SerDes von s GBit/s umgesetzt wird.
  6. Verfahren nach Anspruch 4, ferner aufweisend, dass der Datenverkehr der weiteren bidirektionalen Lane beim Übertragen seriell und beim Empfangen parallel in einem Hochgeschwindigkeits-SerDes von 2 × s GBit/s umgesetzt wird.
  7. Verfahren nach einem der Ansprüche 1 bis 6, wobei der Datenverkehr, der von unterschiedlichen Übertragungsprotokolleinheiten unterstützt wird, einen 2,5-GBit/s-PCIe-x1-Datenverkehr aufweist.
  8. Verfahren nach einem der Ansprüche 1 bis 7, wobei der Datenverkehr, der von unterschiedlichen Übertragungsprotokolleinheiten unterstützt wird, einen 1,25-GBit/s-SGMII-Datenverkehr aufweist.
  9. Verfahren nach einem der Ansprüche 4 bis 8, wobei der Datenverkehr-Arbitrierungsalgorithmus ein „Work-Conserving”-Umlaufalgorithmus ist.
  10. Verfahren nach einem der Ansprüche 3 bis 8, wobei die Wörter der Anforderung mit einer Maximalgröße von m Byte und die Wörter der Antwort mit einer Maximalgröße von m Byte für den Zugriff auf den externen Coprozessor eine Kennung des ersten Übertragungsprotokollanschlusses beinhalten, der den Datenverkehr des entsprechenden Coprozessorzugriffs mit einem Wort mit einer Maximalgröße von m Byte unterstützt.
  11. Netzwerkprozessor, der erste Übertragungsprotokollanschlüsse aufweist, wobei jeder einen Datenpfad-Datenverkehr mit einer Mindestgröße von M Byte auf N Lanes bei einer Geschwindigkeit von S GBit/s unterstützt und Datenverkehr mit unterschiedlichen Übertragungsprotokolleinheiten im Netzwerkprozessor auf n weiteren Lanes mit einer Geschwindigkeit von s GBit/s unterstützt, wobei der Netzwerkprozessor Zugriff auf einen externen Coprozessor durch eine Parsing-Netzwerklogik unterstützt, die in jedem der ersten Übertragungsprotokollanschlüsse angeordnet ist, wobei die Parsing-Logik so ausgelegt ist, dass sie während einer Parsing-Periode bei Empfang eines Pakets mit einer Mindestgröße von M Byte eine Anforderung an den externen Coprozessor sendet und eine Antwort vom externen Coprozessor empfängt, wobei der Netzwerkprozessor aufweist, dass der Parser so ausgelegt ist, dass er eine Anforderung mit einem Wort von maximal m Byte an den Coprozessor auf den n weiteren Lanes sendet und eine Antwort mit einem Wort mit einer Maximalgröße von m Byte vom externen Coprozessor auf den gleichen n weiteren Lanes in einer Geschwindigkeit s empfängt, so dass die Ungleichung N × S/M =< n × s/m geprüft wird.
  12. Netzwerkprozessor nach Anspruch 11, der Ethernet-Anschlüsse aufweist, wobei jeder Datenpfad-Datenverkehr mit einer Maximalgröße von 64 Byte auf 4 Lanes bei einer Geschwindigkeit von 3,125 GBit/s unterstützt und Datenverkehr mit unterschiedlichen Übertragungsprotokolleinheiten im Netzwerkprozessor auf 1 weiteren Lane mit einer Geschwindigkeit von 3,125 GBit/s unterstützt, wobei der Netzwerkprozessor Zugriff auf einen externen Coprozessor durch eine Parsing-Netzwerklogik unterstützt, die in jedem der Ethernet-Protokollanschlüsse angeordnet ist, wobei die Parsing-Logik so ausgelegt ist, dass sie während einer Parsing-Periode bei Empfang eines Pakets mit einer Mindestgröße von M Byte eine Anforderung an den externen Coprozessor sendet und eine Antwort vom externen Coprozessor erhält, wobei der Netzwerkprozessor aufweist, dass der Parser so ausgelegt ist, dass er eine Anforderung mit einem Wort von maximal 16 Byte auf der 1 weiteren Lane an den Coprozessor sendet und eine Antwort mit einem Wort mit einer Maximalgröße von 16 Byte auf der gleichen weiteren Lane in einer Geschwindigkeit von 3,125 vom externen Coprozessor empfängt, so dass die Ungleichung N × S/M =< n × s/m geprüft wird.
  13. Netzwerkprozessor nach Anspruch 11 oder 12, der ferner einen Zwei-Eingaben-Multiplexer aufweist, der Datenverkehr des Coprozessorzugriffs mit einem Wort mit einer Maximalgröße von m Byte im ersten Übertragungsprotokollanschluss mit einem Datenverkehr mit einer Netzwerkprotokolleinheit im Netzwerkprozessor multiplext, wobei der Zwei-Eingaben-Multiplexer statisch auf einen der zwei gemultiplexten Datenverkehre konfigurierbar ist.
  14. Netzwerkprozessor nach Anspruch 11 oder 12, der ferner einen dynamischen Zwei-Eingaben-Multiplexer aufweist, der einen Datenverkehr des Coprozessorzugriffs mit einem Wort mit einer Maximalgröße von m Byte von einem ersten Übertragungsprotokollanschluss und einen Datenverkehr des Coprozessorzugriffs mit einem Wort mit einer Maximalgröße von m Byte von einem anderen ersten Übertragungsprotokollanschluss multiplext, bevor der gemultiplexte Datenverkehr in dem statisch konfigurierbaren Zwei-Eingaben-Multiplexer statisch gemultiplext wird, wobei der dynamische Multiplexer so ausgelegt ist, dass er die zwei gemultiplexten Datenverkehre unter der Steuerung eines Datenverkehr-Arbitrierungsalgorithmus ermöglicht.
DE112011104443.7T 2010-12-20 2011-12-19 Verbinden eines externen Netzwerkcoprozessors mit einem Netzwerkprozessor-Paket-Parser Active DE112011104443B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP10306455.6 2010-12-20
EP10306455 2010-12-20
PCT/EP2011/073254 WO2012084834A1 (en) 2010-12-20 2011-12-19 Connecting an external network coprocessor to a network processor packet parser

Publications (2)

Publication Number Publication Date
DE112011104443T5 true DE112011104443T5 (de) 2013-09-12
DE112011104443B4 DE112011104443B4 (de) 2019-10-02

Family

ID=45373715

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011104443.7T Active DE112011104443B4 (de) 2010-12-20 2011-12-19 Verbinden eines externen Netzwerkcoprozessors mit einem Netzwerkprozessor-Paket-Parser

Country Status (6)

Country Link
US (1) US9215125B2 (de)
CN (1) CN103270490B (de)
DE (1) DE112011104443B4 (de)
GB (1) GB2503123B (de)
TW (1) TW201238307A (de)
WO (1) WO2012084834A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10931329B2 (en) * 2016-12-29 2021-02-23 Intel Corporation High speed interconnect with channel extension
CN107846420B (zh) * 2017-12-20 2021-07-20 深圳市沃特沃德股份有限公司 与协处理器的通信匹配的方法和车载主系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030041172A1 (en) 2001-08-22 2003-02-27 International Business Machines Corporation Stateless message processing scheme for network processors interactions
US7428618B2 (en) 2001-05-15 2008-09-23 Cloudshield Technologies, Inc. Apparatus and method for interfacing with a high speed bi-directional network

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6987760B2 (en) * 2001-03-05 2006-01-17 International Business Machines Corporation High speed network processor
US7720135B2 (en) * 2002-11-07 2010-05-18 Intel Corporation System, method and device for autonegotiation
US7305047B1 (en) * 2003-03-12 2007-12-04 Lattice Semiconductor Corporation Automatic lane assignment for a receiver
US20050010925A1 (en) * 2003-07-10 2005-01-13 Charbel Khawand Interprocessor communication protocol with smart streaming port
US7558890B1 (en) * 2003-12-19 2009-07-07 Applied Micro Circuits Corporation Instruction set for programmable queuing
US7606231B2 (en) 2005-02-18 2009-10-20 Broadcom Corporation Pipeline architecture for a network device
US7957294B2 (en) * 2005-12-01 2011-06-07 Electronics And Telecommunications Research Institute PCI express packet filter including descrambler
US7962182B2 (en) * 2006-08-25 2011-06-14 Qualcomm Incorporated Method and apparatus for content delivery to devices
US20080278508A1 (en) * 2007-05-11 2008-11-13 Swen Anderson Architecture and Method for Remote Platform Control Management
US20090080428A1 (en) * 2007-09-25 2009-03-26 Maxxan Systems, Inc. System and method for scalable switch fabric for computer network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7428618B2 (en) 2001-05-15 2008-09-23 Cloudshield Technologies, Inc. Apparatus and method for interfacing with a high speed bi-directional network
US20030041172A1 (en) 2001-08-22 2003-02-27 International Business Machines Corporation Stateless message processing scheme for network processors interactions

Also Published As

Publication number Publication date
US9215125B2 (en) 2015-12-15
US20130308653A1 (en) 2013-11-21
CN103270490B (zh) 2016-08-10
WO2012084834A1 (en) 2012-06-28
CN103270490A (zh) 2013-08-28
DE112011104443B4 (de) 2019-10-02
GB2503123B (en) 2017-12-20
TW201238307A (en) 2012-09-16
GB201312922D0 (en) 2013-09-04
GB2503123A (en) 2013-12-18

Similar Documents

Publication Publication Date Title
DE60033529T2 (de) Netzprozessor, speicherorganisation und verfahren
DE60030737T2 (de) Hochleistungs-Vermittlungselement und -Vermittlungssystem
DE60212626T2 (de) Endknotenunterteilung mittels lokaler identifikatoren
DE112017006557T5 (de) Bimodale phy für geringe latenz in hochgeschwindigkeitsverbindungswegen
DE69631055T2 (de) Speicherschnittstelleneinheit, vermittlungssystem mit gemeinsamem speicher und verfahren dazu
DE102009021865B4 (de) Bereitstellung eines Präfixes für einen Datenkopf
DE102019121523A1 (de) Skalierbares netz werk-auf-chip für hochbandbreitenspeicher
DE69233588T2 (de) ATM-Vermittlungsanordnung
DE112013004187B4 (de) Technologie für Netzwerk-Datenübertragung durch ein Computersystem unter Verwendung von mindestens zwei Datenübertragungsprotokollen
DE112005003204T5 (de) Verfahren und Vorrichtung zum Unterstützen mehrerer Speicherbänke mit einem Speicherblock
DE102005021515A1 (de) System und Verfahren für ein informationsverarbeitendes System mit PCI-Express Advanced Switching
DE112008002402T5 (de) Erzeugung von einer logischen APIC-ID mit Cluster ID und Intra-Cluster ID
DE102008035120A1 (de) Prozessorauswahl für einen Interrupt, die einen Prozessorcluster identifiziert
DE112006001167T5 (de) Simulieren mehrerer virtueller Kanäle in Switching-Fabric-Netzwerken
DE112004000901T5 (de) Optisches Burst-vermitteltes Netzsystem und Verfahren mit fälligkeitsnaher Signalisierung
DE102008030587A1 (de) Verfahren und Vorrichtung zur Erhöhung der Effizienz der Interrupt-Lieferung zur Laufzeit in einem Netzwerksystem
DE102018127751A1 (de) Einheitlicher Adressraum für mehrere Verbindungen
DE102013208431A1 (de) Großer verteilter Switch auf Fabric-Basis unter Verwendung virtueller Switches und virtueller Steuereinheiten
DE10065656A1 (de) Faserkanalschnittstellensteuerungseinrichtung, die eine nicht blockierende Ausgabe und Eingabe von Faserkanaldatenrahmen und Quittierungsrahmen in und von einem Faserkanal durchführt
DE60038703T2 (de) Asynchrone Datenübertragung
DE112021003094T5 (de) System und verfahren zum planen von gemeinsam nutzbaren pcie-endpunktvorrichtungen
WO2007039620A1 (de) Teilnehmerschnittstelle zwischen einem flexray-kommunikationsbaustein und einem flexray-teilnehmer und verfahren zur übertragung von botschaften über eine solche schnittstelle
DE60217132T2 (de) Vorrichtung zur erhaltung der producer-consumer anordnung entlang einer ungeordneten schnittstelle
DE102018005759A1 (de) Verbinden von beschleunigerressourcen unter verwendung einesswitches
DE112011104443B4 (de) Verbinden eines externen Netzwerkcoprozessors mit einem Netzwerkprozessor-Paket-Parser

Legal Events

Date Code Title Description
R012 Request for examination validly filed

Effective date: 20130522

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0009380000

Ipc: H04L0012700000

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

Free format text: PREVIOUS MAIN CLASS: H04L0012700000

Ipc: H04L0045000000