DE60211466T2 - Prozessor mit reduzierten Speicheranforderungen für Hochgeschwindigkeitsrouting und Vermittlung von Paketen - Google Patents

Prozessor mit reduzierten Speicheranforderungen für Hochgeschwindigkeitsrouting und Vermittlung von Paketen Download PDF

Info

Publication number
DE60211466T2
DE60211466T2 DE60211466T DE60211466T DE60211466T2 DE 60211466 T2 DE60211466 T2 DE 60211466T2 DE 60211466 T DE60211466 T DE 60211466T DE 60211466 T DE60211466 T DE 60211466T DE 60211466 T2 DE60211466 T2 DE 60211466T2
Authority
DE
Germany
Prior art keywords
packet
processor
memory
given
package
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.)
Expired - Lifetime
Application number
DE60211466T
Other languages
English (en)
Other versions
DE60211466D1 (de
Inventor
Mauricio Austin Calle
Joel R. Austin Davidson
Michael W. Austin Hathaway
James T. Austin Kirk
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.)
Agere Systems LLC
Original Assignee
Agere Systems 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 Agere Systems LLC filed Critical Agere Systems LLC
Publication of DE60211466D1 publication Critical patent/DE60211466D1/de
Application granted granted Critical
Publication of DE60211466T2 publication Critical patent/DE60211466T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/103Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich im Allgemeinen auf Paketverarbeitungssysteme, und insbesondere auf einen Netzwerkprozessor oder einen anderen Typ von Prozessor, der für eine Verwendung in der Durchführung von Paket-Routing, Paket-Vermittlung und anderen Paketverarbeitungsoperationen innerhalb eines solchen Systems konfiguriert ist.
  • Hintergrund der Erfindung
  • Ein Netzwerkprozessor steuert im Allgemeinen den Paketfluss zwischen einem physikalischen Übertragungsmedium, wie z.B. einem physikalischen Schichtanteil von beispielsweise einem Netzwerk mit asynchronem Übertragungsmode („Asynchronous Transfer Mode Network (ATM)") oder einem synchronen optischen Netzwerk („Synchronous Optical Network (SONET)"), und einem Schalternetz in einem Router (Kommunikationsserver zur Überleitung von Nachrichten) oder einem anderen Typ von Paketschalter. Solche Router und Schalter beinhalten im Allgemeinen mehrere Netzwerkprozessoren, die beispielsweise in der Form einer Reihe oder von Anschlussbaugruppen angeordnet sind, wobei einer oder mehrere der Prozessoren mit jeder der Baugruppen assoziiert ist.
  • Bei der Durchführung von Paketverarbeitungsoperationen, wie z.B. Routing oder Vermittlung („Switching"), muss der Netzwerkprozessor typischerweise wenigstens einen Teil des Anfangs oder des Kopfes eines jeden Pakets untersuchen. Der Umfang eines jeden Pakets, der untersucht werden muss, hängt ab von seinen assoziierten Netzwerkkommunikationsprotokollen, aktiven Optionen und anderen ähnlichen Faktoren. Die Hochwertigkeit oder Komplexität des Routers oder Schalters kann ebenso den Umfang eines jeden Pakets, der eine Untersuchung benötigt, beeinflussen.
  • Viele konventionelle Router und Schalter sind so konfiguriert, für ein gegebenes Paket, das verarbeitet wird, im Wesentlichen das gesamte Paket zu speichern, bis dieses Paket letztendlich zu seinem Ziel übertragen wird oder fallen gelassen wird. Das Paket wird für gewöhnlich in einem Router- oder einem Schalter-Speicher gespeichert, der zu dem assoziierten Netzwerkprozessor extern angeordnet ist. Die Länge der Zeit, in der das gegebene Paket in dem externen Speicher gehalten werden kann, wird beeinflusst durch die grundlegende Verarbeitungszeit des Routers oder Schalters, durch die Servicequalität, die auf das Paket angewandt wird, durch die bestimmten Protokollschichten, die zu analysieren sind, und durch die Blockierung des Anschlusses oder eines anderen Kommunikationskanals, an welchen das Paket gerichtet wird.
  • Hochgeschwindigkeits-Router und -Schalter werden typischerweise in einem auf dem Chip untergebrachten Speicher innerhalb des Netzwerkprozessors einen gewissen Teil eines gegebenen Paktes speichern, das durch diesen Netzwerkprozessor verarbeitet wird. Dies erhöht im großen Maße die Leistungsfähigkeit des Routers oder Schalters, indem es nicht erforderlich ist, auf den größeren externen Speicher zuzugreifen, der das ganze Paket enthält, in der Weise, dass der externe Speicher langsamer ist und hinsichtlich der Bandbreite begrenzter ist als der auf dem Chip untergebrachte Speicher. Jedoch gibt in der konventionellen Praxis der Paketteil des ungünstigsten Falles, der den Bedarf haben kann, in einer gegebenen Router- oder Schalter-Anwendung analysiert zu werden, für gewöhnlich die Größe eines jeden Paketteils vor, der in dem auf dem Chip untergebrachten Speicher gehalten wird, obgleich der Paketteil des ungünstigsten Falls mit nur bestimmten, selten auftretenden Paketen assoziiert sein kann. Dies erhöht in signifikanter Weise die erforderliche Größe des auf dem Chip untergebrachten Speichers, und folglich den Preis und die Komplexität des Netzwerkprozessors.
  • Es ist aus diesem Grund ersichtlich, dass ein Bedarf für eine verbesserte Technik besteht, um bestimmte Teile von Paketen zu bestimmen, die in bestimmten Speichern zu speichern sind, die mit einem Netzwerkprozessor oder einem anderen Typ von Prozessor assoziiert sind, um die Speicheranforderungen der Vorrichtung zu reduzieren.
  • US-Patent 6 032 190 ist repräsentativ für den Stand der Technik.
  • Zusammenfassung der Erfindung
  • Die Erfindung sieht eine signifikante Reduktion in den Speicheranforderungen eines Netzwerkprozessors oder eines anderen Prozessortyps vor.
  • Gemäß der vorliegenden Erfindung wird ein Prozessor gemäß Anspruch 1 bereitgestellt. Gemäß der vorliegenden Erfindung wird weiterhin ein Verfahren gemäß Anspruch 10 bereitgestellt.
  • Gemäß einer Ausführungsform der Erfindung beinhaltet ein Prozessor eine Paketanalyseeinrichtung und eine erste Speicherschaltung, die betriebsmäßig mit der Paketanalyseeinrichtung gekoppelt ist. Die Paketanalyseeinrichtung ist derart betreibbar, um wenigstens partiell eines oder mehrere Pakete zu analysieren, die durch den Prozessor empfangen werden, um für ein Gegebenes der Pakete einen Teil des Pakets zu bestimmen, der in der ersten Speicherschaltung zu speichern ist. Der Teil des gegebenen Pakets, wenn er in der ersten Speicherschaltung gespeichert ist, wird dadurch für eine nachfolgende Verarbeitung innerhalb des Prozessors zugänglich gemacht, ohne dass es notwendig ist, auf eine zweite Speicherschaltung zuzugreifen, die mit dem Prozessor assoziiert ist und derart konfiguriert ist, im Wesentlichen das gesamte gegebene Paket zu speichern. Die erste und zweite Speicherschaltung können beispielsweise jeweilige interne und externe Speicher des Prozessors umfassen.
  • Gemäß einer anderen Ausführungsform der Erfindung kann die Paketanalyseeinrichtung so konfiguriert sein, einen Wert zu verwenden, der in einem Register des Prozessors gespeichert ist, um den Teil des gegebenen Pakets zu bestimmen, der in der ersten Speicherschaltung zu speichern ist, beispielsweise in einem internen Speicher. Das Register kann eines aus einer Anzahl von Registern sein, welche eine Nachschlagetabelle implementieren, die für die Paketanalyseeinrichtung zugänglich ist. Die Nachschlagetabelle beinhaltet mehrere Einträge, wobei jeder eine Paket-Kategorisierungsinformation, wie z.B. Anschlussnummer oder Paketflussidentifizierer, und eine assoziierte Anzahl von Blöcken des Pakets beinhaltet, die in dem internen Speicher zu speichern sind.
  • Gemäß einer weiteren Ausführungsform der Erfindung kann der Wert, der in einem Gegebenen der Register gespeichert ist, in dynamischer Weise aktualisierbar sein, beispielsweise unter Steuerung einer Host-Vorrichtung (Leitrechner-Vorrichtung), die betriebsmäßig mit dem Prozessor gekoppelt ist. Dies ermöglicht einem Programmierer, beispielsweise die bestimmten Teile einer gegebenen Kategorie von Paketen, die in dem internen Speicher des Prozessors zu speichern sind, zu spezifizieren.
  • In vorteilhafter Weise reduzieren die Methoden der Erfindung nicht nur die internen und/oder externen Speicheranforderungen des Prozessors, sondern reduzieren im Wesentlichen den Bedarf für Zugriffe auf einen externen Speicher, wobei dadurch der Prozessordurchsatz erhöht wird.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein vereinfachtes Blockdiagramm eines Paketverarbeitungssystems, in welchem die vorliegende Erfindung implementiert ist.
  • 2 ist eine detailliertere Darstellung eines Netzwerkprozessors des Systems nach 1, der gemäß den Techniken der Erfindung konfiguriert ist.
  • 3 veranschaulicht eine Datenstruktur einer Nachschlagetabelle, die in dem Netzwerkprozessor der 2 verwendet werden kann, um Paketidentifizierer und entsprechende Umfänge der Pakete zu speichern, die in einem internen Speicher zu speichern sind, in Übereinstimmung mit der Erfindung.
  • 4 ist ein Flussdiagramm eines Paketanalyse- und Speicherprozesses, der in das System gemäß 1 durch den Netzwerkprozessor gemäß 2 in Übereinstimmung mit der Erfindung implementierbar ist.
  • Detaillierte Beschreibung der Erfindung
  • Die Erfindung wird im Folgenden veranschaulicht in Verbindung mit einem exemplarischen Paketverarbeitungssystem, welches einen Netzwerkprozessor beinhaltet, der in einer bestimmten Art und Weise konfiguriert ist. Es versteht sich jedoch, dass die Erfindung allgemeiner auf irgendeinen Prozessor anwendbar ist, in welchem es wünschenswert ist, die internen und/oder externen Speicheranforderungen zu reduzieren, die mit Paketverarbeitungsoperationen assoziiert sind, die in dem Speicher durchgeführt werden.
  • Ein „Prozessor", so wie der Begriff hierin benutzt wird, kann im Wege eines Beispiels und ohne Beschränkung hierauf unter Benutzung eines Mikroprozessors, einer zentralen Verarbeitungseinheit („Central Processing Unit, CPU"), eines digitalen Signalprozessors („Digital Signal Processor, DSP"), einer Applikations-spezifischen integrierten Schaltung („Application-Specific Integrated Circuit, ASIC") oder eines anderen Typs von Datenverarbeitungsvorrichtung, sowie von Teilen und Kombinationen von diesen oder anderer Vorrichtungen implementiert werden. Ein gegebener Prozessor, der für die Verwendung mit der vorliegenden Erfindung geeignet ist, kann sowohl einen internen Speicher, beispielsweise einen auf dem Chip untergebrachten Speicher (On-Chip-Speicher), und einen externen Speicher beinhalten. Der Begriff „Prozessor" soll im Allgemeinen so ausgelegt werden, so dass ein solcher externer Speicher umfasst ist.
  • Die vorliegende Erfindung reduziert in einer veranschaulichenden Ausführungsform die Menge an Speicher, die in einem Netzwerkprozessor benötigt wird, in dem partiell genug von jedem Paket analysiert wird, wenn es an dem Netzwerkprozessor ankommt, um in der Lage zu sein, nur die Menge an Speicher zu reservieren, die benötigt wird, um den entsprechenden Teil des Pakets zu speichern. Zu der geeigneten Zeit kann das Paket sodann vollständig von diesem gespeicherten Teil an analysiert werden. Dies ermöglicht einen höheren Paketdurchsatz in dem Netzwerkprozessor, weil ein reduzierter Bedarf besteht, auf einen externen Speicher zuzugreifen. Es reduziert somit Systemkosten als Folge einer Reduktion in der benötigten Bandbreite zu dem externen Speicher und der assoziierten Vereinfachungswirkung in dem gesamten Design des Verarbeitungssystems.
  • 1 zeigt ein Paketverarbeitungssystem 100, in welchem die Erfindung implementiert ist. Das System 100 beinhaltet einen Netzwerkprozessor 102 mit einem internen Speicher 104. Der Netzwerkprozessor 102 ist mit einem externen Speicher 106 gekoppelt, wie dargestellt, und ist derart konfiguriert, eine Schnittstelle zwischen einem Netzwerk 108, von welchem Pakete empfangen werden, und einem Schaltnetz 110 zu bilden, welches eine Vermittlung (das „Switching") von Paketdaten steuert. Der Prozessor 102 und sein assoziierter externer Speicher 106 können beispielsweise als eine oder mehrere integrierte Schaltungen implementiert sein, die auf einer Linienbaugruppe eines Routers oder Schalters installiert sind. In solch einer Konfiguration wird das Schaltnetz 110 im Allgemeinen so angesehen, als ob es Teil des Routers oder Schalters ist.
  • Obwohl der Speicher 106 in der Figur derart dargestellt ist, dass er zu dem Prozessor 102 extern angeordnet ist, soll der Begriff „Prozessor", wie er hierin benutzt wird, wie vorhergehend bereits erwähnt, so ausreichend breit ausgelegt werden, dass er Elemente 102 und 106 umfasst.
  • Es versteht sich, dass die besondere Anordnung von Systemelementen, wie in 1 gezeigt, nur ein veranschaulichendes Beispiel ist. Zum Beispiel kann, wie vorhergehend erwähnt, die Erfindung in irgendeinem Typ von Paketprozessor implementiert werden, wobei sie nicht limitiert ist auf eine bestimmte Paketverarbeitungsapplikation.
  • 2 zeigt den Netzwerkprozessor 102 von 1 in detaillierterer Weise. Der Netzwerkprozessor 102 gemäß dieser Ausführungsform beinhaltet eine Paketanalyseeinrichtung 200, welche eintreffende Pakete von dem Netzwerk 108 empfängt. Die Paketanalyseeinrichtung ist mit einer Speichersteuereinrichtung 202 gekoppelt, welche in dieser Ausführungsform eine Schnittstelle bildet zu dem internen Speicher 104 und dem externen Speicher 106. Der Prozessor 102 kann außerdem eine andere Verarbeitungsschaltung beinhalten oder in anderer Weise mit einer solchen assoziiert sein, die nicht in der Figur dargestellt ist, wie zum Beispiel eine Verkehrsleiteinheit.
  • Gemäß der Erfindung ist die Paketanalyseeinrichtung 200 derart betreibbar, wenigstens partiell eines oder mehrere Pakete zu analysieren, die durch den Netzwerkprozessor 102 empfangen werden, um für ein Gegebenes der Pakete einen Anteil des Pakets zu bestimmen, der in dem internen Speicher 104 zu speichern ist. Der Anteil des gegebenen Pakets, wenn er in dem internen Speicher 104 gespeichert ist, ist dadurch für eine nachfolgende Verarbeitung innerhalb des Netzwerkprozessors 102 zugänglich, ohne dass ein Zugriff auf den externen Speicher 106 notwendig ist, welcher typischerweise so konfiguriert ist, im Wesentlichen das gesamte gegebene Paket zu speichern. Der Teil eines gegebenen Pakets, der in dem internen Speicher 104 zu speichern ist, kann beispielsweise ein designierter Teil eines Kopfes („Header") des Pakets sein. Die Speichersteuereinheit 202 ist derart betreibbar, die Speicherung des designierten Teils des gegebenen Pakets in dem internen Speicher 104 zu steuern, und die Speicherung des im Wesentlichen gesamten Pakets in dem externen Speicher 106 zu steuern.
  • Die Paketanalyseeinrichtung 200 analysiert folglich wenigstens partiell wenigstens eine Teilmenge der Pakete, die von dem Netzwerk 108 empfangen wurden, und bestimmt für jedes der analysierten Pakete einen bestimmten Teil des Pakets, der in dem internen Speicher 104 zu speichern ist. Die Bestimmung kann basiert werden beispielsweise auf einer Identifizierung einer Anschlussnummer, einem Paketflussidentifizierer oder einer anderen Paket-Charakterisierungsinformation, die mit einem gegebenen Paket assoziiert ist, und einem Lesen eines Bezeichners einer assoziierten Anzahl von Blöcken aus einem entsprechenden Register oder einer anderen Speicherlokalität, wie es weiter unten noch detaillierter beschrieben werden wird. Der bestimmte Teil ist im Allgemeinen ein Teil, der für eine nachfolgende Verarbeitung innerhalb des Netzwerkprozessors 102 benötigt wird, so dass, wenn der bestimmte Teil in dem internen Speicher 102 gespeichert ist, die nachfolgende Verarbeitung durchgeführt werden kann, ohne dass ein Zugriff auf den externen Speicher für einen anderen Teil des Pakets notwendig ist.
  • Es sollte bemerkt werden, dass die Techniken der Erfindung außerdem angewandt werden können, die Speicheranforderungen zu reduzieren, die mit einem externen Speicher assoziiert sind, beispielsweise indem ein bestimmter Teil eines Pakets bestimmt wird, der in der ersten Speicherschaltung zu speichern ist, wobei im Wesentlichen das gesamte Paket in der zweiten Speicherschaltung gespeichert ist, wobei eine oder beide der ersten und zweiten Speicherschaltung einen externen Speicher repräsentieren. Solch eine erste und zweite Speicherschaltung kann ebenso mit dem jeweiligen internen und externen Speicher 104, 106 von 1 korrespondieren. Die erste und zweite Speicherschaltung können daher verschiedene Speicher repräsentieren, können jedoch alternativ verschiedene Teile eines einzelnen internen oder externen Speichers repräsentieren.
  • Obwohl sie als eine einzelne Speichersteuereinrichtung dargestellt ist, kann die Speichersteuereinrichtung 202 separate Steuereinrichtungen für jeden des internen Speichers 104 und des externen Speichers 106 enthalten, wie es dem Fachmann bewusst ist.
  • Die Paketanalyseeinrichtung 200 kommuniziert über die Speichersteuereinrichtung 202 (Speichercontroller) mit einer Nachschlagetabelle 205, die unter Benutzung eines Satzes von Registern in einem Teil des internen Speichers 104 implementiert ist. Die Nachschlagtabelle 205 stellt Information bereit, die von der Paketanalyseeinrichtung 200 verwendet wird, um den bestimmten Teil eines gegebenen Pakets, der in dem internen Speicher 104 zu speichern ist, festzulegen.
  • Es sollte bemerkt werden, dass die Nachschlagetabelle 205 in einem separaten Speicher in einer anderen Ausführungsform der Erfindung untergebracht sein kann, als dass sie als Teil des internen Speichers 104 implementiert ist, wie in der Figur dargestellt.
  • 3A stellt ein Beispiel eines Satzes von Registern dar, welcher die Nachschlagetabelle 205 beinhaltet. In diesem Beispiel enthält die Nachschlagetabelle 205 N verschiedene Einträge, wobei jeder in einem entsprechenden Register des internen Speichers 104 gespeichert ist. Jeder Eintrag beinhaltet eine Anschlussnummer und eine entsprechende Anzahl von Blöcken. Die Anschlussnummer entspricht einem von N Anschlüssen, der assoziiert sein kann mit Paketen, die an dem Netzwerkprozessor 102 ankommen. Zum Beispiel kann ein gegebener Netzwerkprozessor 256 Anschlüsse oder mehr unterstützen. Die Anzahl von Blöcken, die für einen gegebenen Anschluss spezifiziert sind, bezeichnet die Anzahl von Blöcken eines jeden Pakets, das an diesem Anschluss ankommt, die in dem internen Speicher 104 zu speichern sind. Ein Block wird vorzugsweise als eine bestimmte Anzahl von Bytes spezifiziert. Zum Beispiel kann in der veranschauli chenden Ausführungsform ein Block 64 Bytes sein. Es sollte bemerkt werden, dass ein besonderer, vorbestimmter Blockwert, beispielsweise ein Blockwert von Null, der als ein Eintrag in der Nachschlagtabelle 205 gespeichert ist, anzeigen kann, dass für jedes Paket, das an dem entsprechenden Anschluss ankommt, im Wesentlichen das gesamte Paket in dem internen Speicher 104 zu speichern ist, bis zu einem spezifizierten Maximalwert, beispielsweise 64 Kilobytes.
  • Die Paketanalyseeinrichtung 200 in dem Beispiel nach 3A ist so konfiguriert, für ein gegebenes Paket die jeweilige Anschlussnummer zu bestimmen, die mit dem gegebenen Paket assoziiert ist. Die Paketanalyseeinrichtung 200 benutzt sodann die bestimmte Anschlussnummer als eine Eingabe an die Nachschlagetabelle 205, um die entsprechende Anzahl von Blöcken dieses Pakets zu bestimmen, die in dem internen Speicher 104 zu speichern sind. Diese Anzahl von Blöcken des Pakets wird sodann in dem internen Speicher 104 unter der Direktive des Speichercontrollers 202 gespeichert.
  • 3B zeigt ein anderes Beispiel eines Satzes von Registern, welche die Nachschlagetabelle 205 umfassen. In diesem Beispiel enthält die Nachschlagetabelle 205 wiederum N verschiedene Einträge, wobei jeder in einem entsprechenden Register des internen Speichers 104 gespeichert ist. Jedoch enthält in diesem Fall jeder Eintrag einen Paketidentifizierer und eine entsprechende Anzahl von Blöcken. Der Paketidentifizierer kann beispielsweise einen Paketflussidentifizierer, welcher besondere in Beziehung stehende Pakete spezifiziert, oder irgendeine andere geeignete Paketidentifizierungsinformation enthalten. Wie in dem vorherigen Beispiel bezeichnet die Anzahl von Blöcken, die für einen gegebenen Paketidentifizierer spezifiziert ist, die Anzahl von Blöcken eines jeden Pakets mit dem entsprechenden Paketidentifizierer, die in dem internen Speicher 104 zu speichern sind. Wiederum ist ein Block vorzugsweise spezifiziert als eine bestimmte Anzahl von Bytes, beispielsweise 64 Bytes, und ein Null-Blockeintrag kann bezeichnen, dass im Wesentlichen das gesamte Paket in dem internen Speicher 104 bis zu einem spezifizierten maximalen Wert zu speichern ist.
  • Die Paketanalyseeinrichtung 200 in dem Beispiel gemäß 3B ist so konfiguriert, für ein gegebenes Paket den jeweiligen Paketidentifizierer zu bestimmen, der mit dem gegebenen Paket assoziiert ist. Die Paketanalyseeinrichtung 200 benutzt sodann den bestimmten Paketidentifizierer als eine Eingabe an die Nachschlagetabelle 205, um die entsprechende Anzahl von Blöcken dieses Pakets zu bestimmen, die in dem internen Speicher 104 zu speichern sind. Diese Anzahl von Blöcken des Pakets wird sodann in dem internen Speicher 104 unter der Direktive des Speichercontrollers 202 gespeichert.
  • Es versteht sich, dass die besonderen Beispiele von 3A und 3B nicht gedacht sind, den Umfang der Erfindung in irgendeiner Weise zu begrenzen. Der Fachmann wird bemerken, dass zahlreiche alternative Konfigurationen einer Nachschlagetabelle möglich sind. Zum Beispiel ist es möglich, andere Typen von Paket-Kategorisierungsmethoden und verschiedene Ansätze zu verwenden, um den bestimmten Teil zu spezifizieren, der in einem Speicher für eine gegebene Paketkategorie zu speichern ist.
  • 4 ist ein Flussdiagramm eines allgemeinen Paketanalyse- und Speicherprozesses, der in dem Paketverarbeitungssystem 100 von 1 durch den Netzwerkprozessor 102 implementierbar ist. Der Prozess wird veranschaulicht für ein einzelnes Paket, jedoch kann eine ähnliche Verarbeitung für jedes empfangene Paket angewandt werden. Es sollte außerdem betont werden, dass der Prozess gemäß 4 in seiner Gesamtheit nur als beispielhaft und veranschaulichend für die Methoden der Erfindung aufgefasst werden sollte, als dass er in der Natur begrenzend ist. Obgleich nicht in der Figur dargestellt, kann der Prozess gemäß 4 einen vorausgehenden Schritt zur Initialisierung der Einträge der Nachschlagetabelle auf gewünschte Werte enthalten.
  • In Schritt 400 wird ein Paket, das zu verarbeiten ist, von dem Netzwerkprozessor 102 empfangen. Im Schritt 402 analysiert die Paketanalyseeinrichtung 200 partiell das Paket, um den Teil zu bestimmen, der für eine nachfolgende Verarbeitung innerhalb des Netzwerkprozessors benötigt wird. Wie vorhergehend bereits hingewiesen, kann diese Bestimmung durchgeführt werden, indem auf die Nachschlagetabelle 205 zugegriffen wird, um eine bestimmte Anzahl von Blöcken des Pakets zu bestimmen, die in dem internen Speicher zu speichern sind. In Schritt 404 wird der angeforderte Teil des Pakets, wie von der Nachschlagetabelle 205 festgelegt, in dem internen Speicher 104 gespeichert. Im Schritt 406 wird das gesamte Paket in dem externen Speicher 106 gespeichert. Die Speicherung des gesamten Pakets in dem externen Speicher nach der Speicherung des erforderlichen Teils in dem internen Speicher wird nur im Wege eines Beispiels ausgeführt, und ist kein Erfordernis der Erfindung. Zum Beispiel könnte das gesamte Paket in dem externen Speicher gespeichert werden, bevor die Schritte 402 und 404 des Prozesses durchgeführt werden. In einem anderen Beispiel kann nur der verbleibende Teil des Pakets, d.h. des Teils, der verschieden ist zu dem Teil, der in dem internen Speicher in Schritt 404 gespeichert wird, in dem externen Speicher im Schritt 406 gespeichert werden. Außerdem können Schritte 404 und 406 im Wesentlichen parallel durchgeführt werden. In jedem Fall wird zu einer Paketverarbeitungszeit, d.h. zu einer Zeit, zu welcher die oben erwähnte nachfolgende Verarbeitung mit dem erforderlichen Teil des Pakets durchzuführen ist, dieser Teil des Pakets von dem internen Speicher 104 abgerufen, wie es nötig ist, die entsprechenden Verarbeitungsoperationen in dem Netzwerkprozessor zu implementieren.
  • Jeder Eintrag der Nachschlagetabelle 205 kann über eine geeignete Softwaresteuerung dynamisch aktualisiert werden. Zum Beispiel kann ein gegebener „Anzahl von Blöcken"-Wert für einen Eintrag in der Nachschlagetabelle 205 darin anfänglich gespeichert werden oder unter der Steuerung eines Host-Prozessors, der mit dem Netzwerkprozessor 102 beispielsweise über einen „Peripheral Component Interconnect (PCI)"-Bus gekoppelt ist, aktualisiert werden. Dies ermöglicht in vorteilhafter Weise einem Programmierer, für jeweilige Anschlussnummern, Paketflussidentifizierer oder andere Kategorien von Paketen die jewei lige Anzahl von Blöcken von jenen Paketen zu spezifizieren, die in dem internen Speicher zu speichern sind. Im Allgemeinen kennt solch ein Programmierer typischerweise die spezifischen Protokolle, die mit einer gegebenen Paketkategorie assoziiert sind, und kennt daher einen geeigneten Teil eines jeden der Pakete, der in einem internen Speicher für einen optimalen Verarbeitungsdurchsatz zu halten ist. Ein gegebener gespeicherter Wert in der Nachschlagetabelle 205 kann unter einer Softwaresteuerung in dynamischer Weise für jedes Paket in einer Sequenz der empfangenen Pakete aktualisiert werden. Alternativ kann der gleiche Wert für mehrere der empfangenen Pakete verwendbar sein, wie in den Beispielen von 3A und 3B.
  • Die oben beschriebenen Ausführungsformen der Erfindung sollen nur veranschaulichend sein. Zum Beispiel können, obwohl die veranschaulichenden Ausführungsformen eine einzelne Nachschlagetabelle benutzen, wobei jeder Eintrag mit einer Paketkategorisierungsinformation und einer assoziierten Anzahl von Blöcken des Pakets in einem internen Speicher zu speichern sind, andere Ausführungsformen verschiedene Typen von Registern oder Speicheranordnungen benutzen, um die beschriebene Funktionalität zu implementieren. Obwohl der designierte Teil eines gegebenen Pakets, der in einem internen Speicher oder einer anderen ersten Speicherschaltung zu speichern ist, einen Teil eines Headers des Pakets repräsentieren kann, kann er in alternativer Weise einen substantiell größeren Teil des Pakets repräsentieren, und kann so groß sein wie das gesamte Paket für gewisse vorbestimmte Blocknummerneinträge, beispielsweise einem Null-Eintrag. Diese und zahlreiche andere alternative Ausführungsformen innerhalb des Umfangs der folgenden Ansprüche sind dem Fachmann ersichtlich.

Claims (10)

  1. Prozessor (102) umfassend: eine Paketanalyseeinrichtung (200); und eine Nachschlagetabelle (205), die für die Paketanalyseeinrichtung zugänglich ist, wobei die Nachschlagetabelle eine Mehrzahl von Einträgen beinhaltet, wobei jeder für eine entsprechende Paketkategorie einen Teil-Indikator spezifiziert, wobei die Nachschlagetabelle derart konfiguriert ist, eine Zuordnung von verschiedenen Teil-Indikatoren zu verschiedenen Paketkategorien zu ermöglichen; und eine erste Speicherschaltung (104), die mit dem Prozessor assoziiert ist und betriebsmäßig mit der Paketanalyseeinrichtung gekoppelt ist; wobei die Paketanalyseeinrichtung derart betriebsfähig ist, wenigstens partiell ein oder mehrere Pakete zu analysieren, die durch den Prozessor empfangen werden, um für ein Gegebenes der Pakete, basierend auf dem Teil-Indikator für seine assoziierte Paketkategorie in der Nachschlagetabelle, einen Teil des Pakets zu bestimmen, der in der ersten Speicherschaltung zu speichern ist, wobei der Teil des gegebenen Pakets, wenn er in der ersten Speicherschaltung gespeichert ist, dadurch für eine nachfolgende Verarbeitung innerhalb des Prozessors zugänglich ist, ohne einen Zugriff auf eine zweite Speicherschaltung (106) zu benötigen, die mit dem Prozessor assoziiert ist und so konfiguriert ist, im Wesentlichen das gesamte gegebene Paket zu speichern.
  2. Prozessor nach Anspruch 1, wobei die erste Speicherschaltung einen internen Speicher des Prozessors und die zweite Speicherschaltung einen externen Speicher des Prozessors aufweist, und wobei weiterhin die Paketanalyseeinrichtung so konfiguriert ist, wenigstens partiell jedes der Pakete zu analysieren, die von einem Netzwerk empfangen werden, und für jedes von wenigstens einer Teilmenge der Pakete einen bestimmten Teil des Pakets zu bestimmen, der in dem internen Speicher zu speichern ist.
  3. Prozessor nach Anspruch 1, wobei die erste Speicherschaltung einen internen Speicher des Prozessors und die zweite Speicherschaltung einen externen Speicher des Prozessors aufweist, und wobei weiterhin die Paketanalyseeinrichtung so konfiguriert ist, einen Wert zu verwenden, der in einem Register des Prozessors gespeichert ist, und den Teil des gegebenen Pakets zu bestimmen, der in dem internen Speicher zu speichern ist.
  4. Prozessor nach Anspruch 3, wobei das Register eines aus einer Mehrzahl von Registern umfasst, welche die Nachschlagetabelle implementieren, die für die Paketanalyseeinrichtung zugänglich ist, und wobei weiterhin jeder von wenigstens einer Teilmenge der Mehrzahl von Einträgen der Nachschlagetabelle eine Paketkategorisierungsinformation und eine assoziierte Anzahl von Blöcken des Pakets enthält, die in dem internen Speicher zu speichern sind.
  5. Prozessor nach Anspruch 4, wobei die Paketkategorisierungsinformation eine Anschlussnummer aufweist, die einen Anschluss spezifiziert, der mit dem Prozessor assoziiert ist, an welchem eines oder mehrere der Pakete empfangen werden können.
  6. Prozessor nach Anspruch 4, wobei die Paketkategorisierungsinformation einen Paketidentifizierer aufweist, der einen bestimmten Paketfluss spezifiziert.
  7. Prozessor nach Anspruch 4, wobei die assoziierte Anzahl von Blöcken eine vorbestimmte Anzahl von Blöcken aufweist, die für das gegebene Paket anzeigt, dass im Wesentlichen das gesamte Paket in dem internen Speicher zu speichern ist.
  8. Prozessor nach Anspruch 1, wobei die erste Speicherschaltung einen internen Speicher des Prozessors und die zweite Speicherschaltung einen externen Speicher des Prozessors aufweist, und weiterhin aufweisend ein Register, wel ches, unter einer Steuerung der Paketanalyseeinrichtung, so konfiguriert ist, Paketkategorisierungsinformation für das gegebene Paket und eine entsprechende Bezeichnung des Teils des Pakets zu speichern, der in dem internen Speicher zu speichern ist.
  9. Prozessorsystem (100), umfassend: einen Prozessor (102) gemäß einem der Ansprüche 1 bis 8; und einen externen Speicher (106), der betriebsmäßig mit dem Prozessor gekoppelt ist.
  10. Verfahren zur Verarbeitung von Paketen in einem Prozessor (102), der eine Paketanalyseeinrichtung (200) und eine Nachschlagetabelle (205) aufweist, die für die Paketanalyseeinrichtung zugänglich ist, wobei das Verfahren die Schritte aufweist: wenigstens partielles Analysieren eines oder mehrerer Pakete, die durch den Prozessor empfangen werden, um für ein Gegebenes der Pakete einen Teil des Pakets zu bestimmen, der in einer ersten Speicherschaltung (104) zu speichern ist, die mit dem Prozessor assoziiert ist; und Speicherung des Teils des gegebenen Pakets in der ersten Speicherschaltung, wobei der Teil des gegebenen Pakets dadurch für eine nachfolgende Verarbeitung innerhalb des Prozessors zugänglich ist, ohne dass ein Zugriff auf eine zweite Speicherschaltung (106) notwenig ist, die mit dem Prozessor assoziiert ist und die so konfiguriert ist, im Wesentlichen das gesamte gegebene Paket zu speichern; wobei die Nachschlagetabelle eine Mehrzahl von Einträgen beinhaltet, wobei jeder für eine entsprechende Paketkategorie einen Teil-Indikator spezifiziert, wobei die Nachschlagetabelle so konfiguriert ist, eine Zuordnung von verschiedenen Teil-Indikatoren zu verschiedenen Paketkategorien zu ermöglichen; und wobei der Teil des gegebenen Pakets, der in der ersten Speicherschaltung gespeichert ist, basierend auf dem Teil-Indikator für seine assoziierte Paketkategorie in der Nachschlagetabelle bestimmt wird.
DE60211466T 2001-12-19 2002-11-25 Prozessor mit reduzierten Speicheranforderungen für Hochgeschwindigkeitsrouting und Vermittlung von Paketen Expired - Lifetime DE60211466T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/025,352 US7113518B2 (en) 2001-12-19 2001-12-19 Processor with reduced memory requirements for high-speed routing and switching of packets
US25352 2001-12-19

Publications (2)

Publication Number Publication Date
DE60211466D1 DE60211466D1 (de) 2006-06-22
DE60211466T2 true DE60211466T2 (de) 2006-09-28

Family

ID=21825510

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60211466T Expired - Lifetime DE60211466T2 (de) 2001-12-19 2002-11-25 Prozessor mit reduzierten Speicheranforderungen für Hochgeschwindigkeitsrouting und Vermittlung von Paketen

Country Status (6)

Country Link
US (1) US7113518B2 (de)
EP (1) EP1331757B1 (de)
JP (1) JP4209186B2 (de)
KR (1) KR100937283B1 (de)
DE (1) DE60211466T2 (de)
TW (1) TWI249919B (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1791305A1 (de) * 2005-11-25 2007-05-30 Alcatel Lucent Speicherung und Verarbeitung einer Dateneinheit in einer Netzvorrichtung
US8572349B2 (en) * 2006-01-31 2013-10-29 Agere Systems Llc Processor with programmable configuration of logical-to-physical address translation on a per-client basis
US7835288B2 (en) * 2008-07-02 2010-11-16 OnPath Technologies Inc. Network switch with onboard diagnostics and statistics collection
US8897316B2 (en) 2010-12-31 2014-11-25 Telefonaktiebolaget L M Ericsson (Publ) On-chip packet cut-through
US8743715B1 (en) 2011-01-24 2014-06-03 OnPath Technologies Inc. Methods and systems for calibrating a network switch
US9141373B2 (en) * 2013-07-31 2015-09-22 Arista Networks, Inc. System and method for accelerated software upgrades
CN113472688B (zh) * 2020-03-30 2023-10-20 瑞昱半导体股份有限公司 应用在网络装置中的电路及网络装置的操作方法
US20230060275A1 (en) * 2021-08-20 2023-03-02 International Business Machines Corporation Accelerating multiplicative modular inverse computation

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0504537A1 (de) * 1991-03-22 1992-09-23 International Business Machines Corporation Verfahren und Gerät zur Prüfung und Auswertung von geographisch verteilten Fernmeldenetzen
JP4181645B2 (ja) * 1996-02-29 2008-11-19 富士通株式会社 データ処理装置
US6369855B1 (en) * 1996-11-01 2002-04-09 Texas Instruments Incorporated Audio and video decoder circuit and system
US6236654B1 (en) * 1997-02-14 2001-05-22 Advanced Micro Devices, Inc. Method and apparatus for managing learning in an address table in memory
US6032190A (en) * 1997-10-03 2000-02-29 Ascend Communications, Inc. System and method for processing data packets
US6160809A (en) * 1997-12-17 2000-12-12 Compaq Computer Corporation Distributed packet data with centralized snooping and header processing router
WO2000003515A1 (en) 1998-07-08 2000-01-20 Broadcom Corporation Network switching architecture with fast filtering processor
US6438145B1 (en) * 1998-12-04 2002-08-20 Koninklijke Philips Electronics N.V. Transport packet distribution system and method using local header
KR100378372B1 (ko) * 1999-06-12 2003-03-29 삼성전자주식회사 데이터 네트워크에서 패킷 스위치 장치 및 방법
EP1261915A2 (de) 2000-03-03 2002-12-04 Tenor Networks, Inc. Datenverarbeitung mit hoher geschwindigkeit unter verwendung von prozessor-internem speicherbereich
US6947931B1 (en) * 2000-04-06 2005-09-20 International Business Machines Corporation Longest prefix match (LPM) algorithm implementation for a network processor
US7032031B2 (en) * 2000-06-23 2006-04-18 Cloudshield Technologies, Inc. Edge adapter apparatus and method
US7114008B2 (en) * 2000-06-23 2006-09-26 Cloudshield Technologies, Inc. Edge adapter architecture apparatus and method
EP1340381A2 (de) * 2000-10-27 2003-09-03 Polycom Israel Ltd. Vorrichtung und verfahren zur verbesserung der bildkommunikationsqualität über einem paketbasierten netzwerk
US20020196737A1 (en) * 2001-06-12 2002-12-26 Qosient Llc Capture and use of service identifiers and service labels in flow activity to determine provisioned service for datagrams in the captured flow activity
US6915480B2 (en) * 2001-12-21 2005-07-05 Agere Systems Inc. Processor with packet data flushing feature

Also Published As

Publication number Publication date
DE60211466D1 (de) 2006-06-22
KR20030051381A (ko) 2003-06-25
US20030112801A1 (en) 2003-06-19
US7113518B2 (en) 2006-09-26
KR100937283B1 (ko) 2010-01-18
EP1331757A2 (de) 2003-07-30
JP2003218907A (ja) 2003-07-31
EP1331757A3 (de) 2003-08-13
TW200303666A (en) 2003-09-01
JP4209186B2 (ja) 2009-01-14
EP1331757B1 (de) 2006-05-17
TWI249919B (en) 2006-02-21

Similar Documents

Publication Publication Date Title
DE60026676T2 (de) Paketklassifizierungsautomat
DE60021846T2 (de) Leitweglenkungsanordnung
DE69630084T2 (de) Anlage und Verfahren zur Paketierung und Segmentierung von MPEG-Paketen
DE3854361T2 (de) Programmierbare Protokollvorrichtung.
DE60031516T2 (de) Verfahren und gerät für die verwaltung eines netzflusses in einer hochleistungs-netzschnittstelle
DE69020899T2 (de) Netzüberwachungssystem und -vorrichtung.
DE69926109T2 (de) Paketversendegerät mit einer Flussnachweistabelle
DE69114084T2 (de) Unterstützung für Datenverkehr mit konstanter Bitrate in Breitbandvermittlungsschaltern.
DE69919994T2 (de) Reduzierter paketkopf im drahtlosen nachrichtennetz
DE69731606T2 (de) Anlage und verfahren zur änderung von schwellen für überlastkontrolle in atm-vermittlungsstellen
DE69919114T2 (de) Verfahren und Vorrichtung zur Netzwerküberlastkontrolle
DE69029872T2 (de) Programmierbare Datenpaket-Pufferspeicher-Vorrangsanordnung
DE69726995T2 (de) Mehrfachsende-Leitweglenkung in mehrstufigen Netzen
DE69827747T2 (de) Druckersystem und Übertragungsvorrichtung um Druckersteuerungsprogramm zu übertragen
DE69031266T2 (de) Übertragungsarchitektur für Hochgeschwindigkeitsnetzwerk
DE69820084T2 (de) Netzwerkvorrichtung und Verfahren zur Reduzierung der System-Latenz
DE60028176T2 (de) Verfahren zur automatischen Übertragung des Rückbestätigungsrahmens in Canopen und anderen Can Verarbeitungschichtprotokollen
DE69030037T2 (de) Verfahren zur Verkehrsregelung in einem Hochgeschwindigkeitsdatennetz
DE60203358T2 (de) Systeme, welche Paketschnittstellen und Paket-DMA (Direct Memory Access) Schaltkreise beinhalten, um Paketströme zu teilen und zusammenzusetzen
DE60015186T2 (de) Verfahren und system für rahmen- und protokollklassifikation
DE69022439T2 (de) Verfahren und Anordnung zur Durchführung zeitweise verschachtelter multiplexierter Ratenanpassung für Unterdatenraten-Kanäle in einem digitalen Vermittlungssystem.
DE68923951T2 (de) Hochgeschwindigkeits-Kombinierschalter mit Einzelfifo.
DE10297269T5 (de) Kennzeichnung von Paketen mit einem Nachschlageschlüssel zur leichteren Verwendung eines gemeinsamen Paketweiterleitungs-Cache
DE19929516A1 (de) Hochgeschwindigkeits-Netzwerkschalter
DE69631265T2 (de) Vermittlungssystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition