DE60222233T2 - Prozessor und Verfahren zur Erhaltung der Verarbeitungsreihenfolge von Paketen basierend auf Paketstromkennungen - Google Patents

Prozessor und Verfahren zur Erhaltung der Verarbeitungsreihenfolge von Paketen basierend auf Paketstromkennungen Download PDF

Info

Publication number
DE60222233T2
DE60222233T2 DE60222233T DE60222233T DE60222233T2 DE 60222233 T2 DE60222233 T2 DE 60222233T2 DE 60222233 T DE60222233 T DE 60222233T DE 60222233 T DE60222233 T DE 60222233T DE 60222233 T2 DE60222233 T2 DE 60222233T2
Authority
DE
Germany
Prior art keywords
processor
packets
context
sequence
packet flow
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
DE60222233T
Other languages
English (en)
Other versions
DE60222233D1 (de
Inventor
David Allen Austin Brown
Mauricio Austin Calle
Abraham Austin Prasad
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 DE60222233D1 publication Critical patent/DE60222233D1/de
Application granted granted Critical
Publication of DE60222233T2 publication Critical patent/DE60222233T2/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
    • H04L49/00Packet switching elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/43Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]
    • 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
    • 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
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich allgemein auf Paketverarbeitungssysteme und insbesondere auf einen Netzwerkprozessor oder einen anderen Typ von Prozessor, der für die Verwendung bei der Ausführung von Paket-Routing, Paketschaltung und anderen Paketverarbeitungsoperationen in einem solchen System konfiguriert ist.
  • HINTERGRUND DER ERFINDUNG
  • Ein Netzwerkprozessor steuert allgemein den Fluss von Paketen zwischen einem physischen Übertragungsmedium, wie z.B. einem physischen Schichtteil, z.B. einem Netzwerk mit asynchronem Übertragungsmodus (ATM von englisch ,Asynchronous Transfer Mode') oder einem synchronen optischen Netzwerk (SONST von englisch ,synchronous optical network'), und einer Schaltstruktur in einem Router oder einem anderen Typ von Paketschalter. Solche Router und Schalter enthalten im Allgemeinen mehrere Netzwerkprozessoren, die z.B. in der Form einer Anordnung von Leitungs- oder Anschlusskarten angeordnet sind, wobei einer oder mehrere der Prozessoren zu jeder der Karten gehören.
  • In einem Netzwerkprozessor ist es wichtig, eine geeignete Verarbeitungsabfolge für eingehende oder ausgehende Pakete aufrechtzuerhalten. Zum Beispiel sind viele der Verarbeitungsaufgaben in einem Netzwerkprozessor dadurch, dass das Ergebnis einer gegebenen Operation für die richtige Ausführung einer anschließenden Operation erforderlich ist, abfolgeabhängige Aufgaben. Solche Operationen werden typischerweise von Funktionsaufrufen an eine oder mehrere Betriebseinheiten des Prozessors initiiert. Eine gegebene Betriebseinheit kann mehrere Ausführungseinheiten aufweisen, von denen jede dazu fähig ist, Operationen für die Betriebseinheit auszuführen. Ein Beispiel für einen Typ von Betriebseinheit ist eine Recheneinheit, die bestimmte Rechenoperationen als Antwort auf Anfragen nach solchen Operationen ausführt.
  • Herkömmliche Techniken für das Aufrechterhalten einer erwünschten Funktionsaufruffolgebildung in einem Netzwerkprozessor umfassen die Serialisierung von Funktionsaufrufverschickung oder einen skalaren Ansatz, der eine einzelne Ausführungseinheit beinhaltet.
  • In dem Serialisierungsansatz werden Funktionsaufrufe an verschiedene Betriebseinheiten auf eine serielle Weise gemäß einer spezifizierten Funktionsaufruffolgebildung geschickt. Mit anderen Worten wird eine geeignete Funktionsaufruffolge bestimmt und werden die Funktionsaufrufe auf eine solche serielle Weise geschickt, dass die erwünschte Folge aufrecht erhalten bleibt. Ein Funktionsaufruf, der ein Ergebnis von einem anderen Funktionsaufruf erfordert, wartet einfach, bis das Ergebnis verfügbar ist, bevor er an eine bestimmte Betriebseinheit geschickt wird. Dieser Ansatz erhält einige der Vorteile der Parallelität durch die Verwendung der mehreren Betriebseinheiten, aber schafft es nicht, eine solche Parallelität in dem steigenden Netzwerkprozessordurchsatz vollständig auszunutzen.
  • Der skalare Ansatz umgeht die Problematik des Aufrechterhaltens einer geeigneten Verarbeitungsfolge vollständig durch die Nutzung von nur einer einzigen Betriebseinheit. Während dieser Ansatz eine geeignete Verarbeitungsfolge sicherstellt, beschränkt er den Durchsatz des Netzwerkprozessors stark durch das Eliminieren von Gewinnen, die der Parallelität zugeordnet werden können.
  • Folglich sind beide oben beschriebenen herkömmlichen Ansätze darin defizitär, dass sie es nicht schaffen, einen maximalen Netzwerkprozessordurchsatz zu liefern. Diese Defizite werden bei hohen Datenraten, z.B. Datenraten bei oder über 2,5 Gigabits pro Sekunde (Gbps), zunehmend offensichtlich.
  • Es besteht deshalb ein Bedarf an verbesserten Techniken für das Aufrechterhalten einer erwünschten Funktionsaufruffolge für abfolgeabhängige Verarbeitungsaufgaben in einem Netzwerkprozessor oder einem anderen Typ von Prozessor auf eine Weise, die den Prozessordurchsatz durch eine effizientere Nutzung der Parallelität zwischen den Betriebseinheiten des Prozessors erhöht. Die Dokumente WO 2001/16682 , WO 2001/05086 und EP 1 061 695 stellen den Stand der Technik dar. EP 1 061 695 erhält zum Beispiel eine Paketabfolgeinte grität durch das Überprüfen für jedes eingehende Paket, ob ein vorheriges Paket von der gleichen Quelle an einem Verarbeitungselement in Bearbeitung ist und wenn die Überprüfung zeigt, dass ein solches Paket in Bearbeitung ist, das Weiterleiten des eingehenden Pakets an das gleiche Verarbeitungselement wie das vorherige Paket, aufrecht.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die Erfindung schafft verbesserte Techniken für das Aufrechterhalten einer erwünschten Funktionsaufruffolge für die Verarbeitung von Paketen in einem Netzwerkprozessor oder einem anderen Prozessor, der eine oder mehrere Betriebseinheiten aufweist.
  • Gemäß einem Aspekt der vorliegenden Erfindung ist ein System nach Anspruch 1 vorgesehen. Gemäß einem anderen Aspekt der Erfindung ist ein Verfahren nach Anspruch 10 vorgesehen
  • Gemäß einem Aspekt der Erfindung weist ein Prozessor mit einem Paketverarbeitungsabfolgeaufrechterhaitungsmerkmal eine Klassifizierungsschaltungsanordnung, die betriebsfähig ist, für jede einer Mehrzahl von in dem Prozessor empfangenen Paketen einen entsprechenden Paketflussbezeichner zu identifizieren, eine Steuerschaltungsanordnung, die betriebsmäßig mit der Klassifizierungsschaltungsanordnung gekoppelt ist, und mindestens eine Betriebseinheit, die betriebsmäßig mit der Steuerschaltungsanordnung gekoppelt ist, auf. Die Steuerschaltungsanordnung ist betriebsfähig, ein oder mehrere Pakete mit einem gegebenen Paketflussbezeichner auf eine Weise an die Betriebseinheit(en) zu leiten, die eine erwünschte Funktionsaufruffolgebildung über das eine oder die mehreren Pakete mit dem gegebenen Paketflussbezeichner für eine oder mehrere abfolgeabhängige Verarbeitungsaufgaben in dem Prozessor aufrechterhält.
  • Gemäß einem anderen Aspekt der Erfindung werden einer oder mehrere der Paketflussbezeichner jeder in eine eindeutige Speicherstelle in die dem Prozessor zugehörige Speicherschaltungsanordnung umgesetzt. Die eindeutige Speicherstelle, die einem gegebenen Paketflussbezeichner entspricht, speichert mindestens einen Zähler, der eine Anzahl von Funktionen spezifiziert, die für einen zugeordneten Paketfluss ausgeführt werden.
  • Gemäß einem weiteren Aspekt der Erfindung hat jedes der empfangenen Pakete einen Kontextbezeichner, der ihm vor der Funktionsaufruferteilung für dieses Paket in dem Prozessor zugeordnet wird.
  • Die Kontextbezeichner können aus einer festen Anzahl von Token, z.B. 256 Token ausgewählt werden, so dass der Kontextbezeichner einen 8-Bit Bezeichner aufweist. Die den empfangenen Paketen zugeordneten Kontextbezeichner werden genutzt, um die erwünschte Funktionsaufruffolgebildung für die zu einem bestimmten Paketflussbezeichner gehörigen empfangenen Pakete aufrechtzuerhalten.
  • Vorteilhafterweise kann die Erfindung den Prozessordurchsatz durch ein besseres Ausnutzen der Parallelität, die durch die Verwendung mehrerer Betriebseinheiten des Prozessors verfügbar ist, verbessern.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein vereinfachtes Blockdiagramm einer erläuternden Ausführungsform eines Paketverarbeitungssystems, in dem die vorliegende Erfindung implementiert ist.
  • 2 ist eine detailliertere Ansicht eines Netzwerkprozessors des Systems aus 1, der gemäß den Techniken der Erfindung konfiguriert ist.
  • 3 erläutert Abfolgereihen und Konfigurationsregisterelemente der Abfolgelogik in dem Prozessor aus 2 gemäß der Erfindung.
  • 4 erläutert eine mögliche Implementierung des Netzwerkprozessors aus 2 als eine integrierte Schaltung, die auf einer Leitungskarte eines Routers oder Schalters installiert ist.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Die Erfindung ist hierin in Verbindung mit einem beispielhaften Paketverarbeitungssystem erläutert, das einen auf eine bestimmte Weise konfigurierten Netzwerkprozessor aufweist. Es sollte jedoch zu verstehen sein, dass die Erfindung allgemeiner auf jeden Prozessor, in dem es wünschenswert ist, eine bestimmte Paketverarbeitungsabfolge in einer oder mehreren Betriebseinheiten des Prozessors aufrechtzuerhalten, anwendbar ist.
  • Ein "Prozessor", wie der Begriff hierin verwendet wird, kann beispielhaft und ohne Einschränkung unter Nutzung eines Mikroprozessors, einer zentralen Verarbeitungseinheit (CPU), eines digitalen Signalprozessors (DSP), einer anwendungsspezifischen integrierten Schaltung (ASIC) oder eines anderen Typs von Datenverarbeitungsvorrichtung als auch Teilen und Kombinationen dieser und anderer Vorrichtungen implementiert werden.
  • Der Begriff "Klassifizierungsschaltungsanordnung", wie er hierin verwendet wird, soll jeglichen Teil eines Prozessors oder anderen Typs von Verarbeitungsschaltungsanordnung aufweisen, der dazu fähig ist, mindestens einen Teil der mindestens einen Klassifizierungsoperation auf einem Paket oder einem Teil eines Paket auszuführen. Beispiele für Klassifizierungsoperationen weisen ohne Einschränkung Vorklassifizierung, Neuanordnung, Priorisierung, statistisches Erfassen, Zeitplanung, Verkehrsverwaltung usw. auf. Als ein genaueres Beispiel weist eine unten beschriebene erläuternde Ausführungsform der Erfindung eine erste Klassifizierungsschaltungsanordnung, z.B. einen Vorkiassifizierer oder einen anderen Erstdurchlaufklassifizierer, der dafür konfiguriert ist, eine Erstdurchlaufklassifizierung auszuführen, und eine zweite Klassifizierungsschaltungsanordnung, z.B. einen Zweitdurchlaufklassifizierer, der dafür konfiguriert ist, eine Zweitdurchlaufklassifizierung auszuführen, auf. Die Erstdurchlaufklassifizierung in dieser Ausführungsform umfasst im Allgemeinen mindestens einen Teil einer Paketneuanordnungsoperation und die Zweitdurchlaufklassifizierung in dieser Ausführungsform umfasst im Allgemeinen mindestens einen Teil einer Zeitplanungs- oder Verkehrsverwaltungsoperation. Die erste und die zweite Klassifizierungsschaltungsanordnung können jeweils z.B. eine oder mehrere separate Klassifizierungseinrichtungen, verschiedene Teile einer einzelnen Klassifizierungseinrichtung oder andere Anordnungen von Schaltungsanordnungen, die dafür konfiguriert sind, mindestens einen Teil der hierin beschriebenen Ver arbeitungsoperationen zu schaffen, darstellen.
  • Die vorliegende Erfindung in einer erläuternden Ausführungsform verbessert den Prozessordurchsatz in einem Paketverarbeitungssystem durch das Nutzen von Paketflussbezeichnern, um die Paketverarbeitungsabfolge in einer oder mehreren Betriebseinheiten des Prozessors aufrechtzuerhalten.
  • 1 zeigt ein Paketverarbeitungssystem 100, in dem die Erfindung implementiert ist. Das System 100 weist einen Netzwerkprozessor 102 mit einem internen Speicher 104 auf. Der Netzwerkprozessor 102 ist wie gezeigt mit einem externen Speicher 106 gekoppelt und ist dafür konfiguriert, eine Schnittstelle für das Übertragen von Zellen, Paketen oder anderen Paketdaten zwischen einem Netzwerk 108 und einer Schaltstruktur 110 zu schaffen. Der Prozessor 102 und sein zugehöriger externer Speicher 106 können z.B. als eine oder mehrere integrierte Schaltungen implementiert sein, die auf einer Leitungskarte oder Anschlusskarte eines Routers oder Schalters installiert sind. In einer solchen Konfiguration wird die Schaltstruktur 110 allgemein als ein Teil des Routers oder Schalters betrachtet.
  • Es sollte zu verstehen sein, dass die spezielle in 1 gezeigte Anordnung von Systemelementen nur beispielhaft erläuternd ist. Insbesondere kann, wie zuvor angemerkt, die Erfindung in jedem beliebigen Typ von Paketprozessor implementiert werden und ist auf keine bestimmte Paketverarbeitungsanwendung beschränkt.
  • 2 zeigt den Netzwerkprozessor 102 aus 1 detaillierter. Der Netzwerkprozessor 102 in dieser Ausführungsform weist einen Erstdurchlaufklassifizierer 200 auf, der die eingehenden Paketdaten von dem Netzwerk 108 oder der Schaltstruktur 110 empfängt. Der Erstdurchlaufklassifizierer 200 ist mit einem Speicher 204 und einem Zweitdurchlaufklassifizierer 202 gekoppelt. Der Speicher 204 kann mindestens einen Teil des internen Speichers 104, des externen Speichers 106 oder beider aufweisen. Ein Zweitdurchlaufklassifizierer 202 ist auch mit dem Speicher 204 gekoppelt. Eine Ausgabe des Zweitdurchlaufklassifizierers 202 geht an darauf folgende Verarbeitungsschaltungsanordnungen, die z.B. eine Zeitplanungsschaltungsanordnung, eine Reihenschaltungsanord nung, eine Verschickungsschaltungsanordnung usw. aufweisen können.
  • Der Netzwerkprozessor weist ferner ein Erstdurchlaufkontextzuordnungselement 206, eine Reiheneinrichtung 208, eine Abfolgelogik 210, ein Zweitdurchlaufkontextzuordnungselement 212 und eine Zweitdurchlaufbereitschaftsreihe 214 auf. Mindestens der Erstdurchlaufklassifizierer 200 und der Zweitdurchlaufklassifizierer 202 sind mit einem Funktionsbus 220 gekoppelt, der eine Schnittstelle zwischen diesen Elementen und N Betriebseinheiten 222-1, 222-2...222 N schafft. Jede der Betriebseinheiten 222-i, wobei i = 1, 2, ... N ist, hat in dieser erläuternden Ausführungsform eine ihr zugeordnete Anzahl von Ausführungseinrichtungen (EEs) 225i,j, wobei j = 1, 2, ... M. Die Betriebseinheiten, 222-i können Recheneinheiten sein, die Berechnungen in den ihnen zugeordneten Ausführungseinrichtungen für den Erst- und den Zweitdurchlaufklassifizierer ausführen. In anderen Ausführungsformen der Erfindung können andere Elemente des Netzwerkprozessors 102 mit dem Funktionsbus 220 gekoppelt sein.
  • Der Erstdurchlaufklassifizierer 200 aus 2 kann z.B. als ein Vorklassifizierer implementiert sein, der mindestens eine von einer Neuanordnungsoperation, einer Paritätsprüfung und einer Prioritätsbestimmung für ein gegebenes Paket ausführt, während der Zweitdurchlaufklassifizierer 202 als z.B. eine oder mehrere Klassifizierungseinrichtungen implementiert ist, die mindestens eine von einer Zeitplanungsoperation, einer Reihenoperation und einer Verschickungsoperation ausführen. Es ist auch möglich, dass einer oder beide der Klassifizierer 200, 202 Statistikerfassungsoperationen für die Verwendung bei der Zeitplanung und anderen Verkehrsverwaltungsfunktionen, wie z.B. Überwachung, durchführen. Diese und andere Operationen der Klassifizierer 200, 202 können auf eine herkömmliche Weise unter Verwendung von in der Technik bekannten Techniken durchgeführt werden und sind deshalb hierin nicht im Detail beschrieben.
  • Die von dem Erstdurchlaufklassifizierer 200 empfangenen Paketdaten können Zellen oder andere neu anzuordnende Teile des gegebenen Pakets umfassen, um das gegebene Paket unter der Verwendung einer Neuanordnungsschaltungsanordnung zu bilden, die in den Erstdurchlaufklassifizierer 200 integriert oder ihm anderweitig zugeordnet sein kann. Der Begriff "Paket", wie hierin ver wendet, soll nicht nur ein neu angeordnetes Paket, sondern auch eine oder mehrere Zellen oder andere Paketdaten umfassen, die nach ihrer Neuanordnung ein Paket bilden.
  • Auch können, wie zuvor aufgezeigt, verschiedene Teile des Speichers 204 als separate Speicher, z.B. als Teile sowohl des internen Speichers 104 als auch des externen Speichers 106 aus 1, anstatt als ein einzelner Speicher, wie in 2 gezeigt, implementiert sein. Der Begriff "Speicherschaltungsanordnung", wie hierin verwendet, soll sowohl einen separaten Speicher als auch einen bestimmten Teil eines größeren Speichers umfassen und kann sich auf den internen Speicher, den externen Speicher oder Kombinationen davon beziehen.
  • Es versteht sich, dass der Netzwerkprozessor 102, wie in 2 gezeigt, zu Abbildungszwecken vereinfacht ist und in einer gegebenen Ausführungsform eine zusätzliche Schaltungsanordnung, wie z.B. die Zeitplanungsschaltungsanordnung, Verschickungsschaltungsanordnung und Reihenschaltungsanordnung, wie oben angemerkt, eine oder mehrere Speichersteuereinrichtungen als auch eine geeignete Schnittstellenschaltungsanordnung für das Bilden einer Schnittstelle mit dem Netzwerk 108, der Schaltstruktur 110 und anderen externen Vorrichtungen, wie z.B. einem zugehörigen Hauptprozessor, aufweisen kann. Außerdem sind die speziellen Verbindungen zwischen den Prozessorelementen nur beispielhaft, z.B. können als bidirektional gezeigte Verbindungen unidirektional, als richtungslos gezeigte Verbindungen bidirektional oder unidirektional und andere nicht ausdrücklich gezeigte Verbindungen usw. hergestellt werden.
  • Auch wenn die Ausführungsform aus 2 mehrere Betriebseinheiten 222 aufweist, kann die Erfindung in einer Ausführungsform implementiert werden, die nur eine einzelne Betriebseinheit aufweist. Außerdem kann die genaue Anzahl von einer gegebenen Betriebseinheit zugeordneten Ausführungseinrichtungen 225 von Einheit zu Einheit variieren, anstatt für jede Einheit gleich zu sein, wie in der Ausführungsform aus 2. Außerdem können die Ausführungseinrichtungen, auch wenn sie in 2 als bezüglich ihrer zugeordneten Betriebseinheiten extern dargestellt sind, auch in ihre zugeordneten Betriebseinheiten integriert sein.
  • 3 stellt einen Teil der Abfolgelogik 210 des Netzwerkprozessors 102 aus 2 dar. In der erläuternden Ausführungsform weist die Abfolgelogik einen Satz von Abfolgereihen 300 auf, die K separate Reihen 302-1, 302-2 ... 302-K aufweisen, wobei jede der Reihen für das Einordnen eines anderen Funktionssatzes auf einem gegebenen Verarbeitungspass verwendet wird. Ein geeigneter Wert für K ist in der erläuternden Ausführungsform vier, was das Einordnen von vier verschiedenen Funktionssätzen zulassen würde. Wenn zum Beispiel eine gegebene Funktion sowohl für die Erst- als auch für die Zweitdurchlaufklassifizierung eingeordnet werden soll, könnten zwei der vier Abfolgereihen genutzt werden, um dieses Einordnen zu schaffen.
  • Die Abfolgelogik weist ferner einen Satz von Konfigurationsregistern 310 auf, die L separate Konfigurationsregister 312-1, 312-2, ... 312-L aufweisen, wobei der Satz von Konfigurationsregistern verwendet wird, um die Auswahl zu steuern, welche einer Anzahl von Funktionen, die von den Ausführungseinrichtungen 225 der Betriebseinheiten 222 ausführbar sind, in dem Netzwerkprozessor 102 eingeordnet werden können. Die Funktionssätze, die unter Verwendung der Abfolgereihen 300 eingeordnet werden, werden deshalb aus den in den Konfigurationsregistern 310 spezifizierten Funktionen ausgewählt. Es kann zwei oder mehrere der Konfigurationsregister 312 für jede der Abfolgereihen 302 geben, z.B. wenn es vier Abfolgereihen gibt, ist eine geeignete Anzahl an Konfigurationsregistern acht. Die genaue Anzahl von Abfolgereihen und Konfigurationsregistern ist natürlich implementierungsspezifisch und variiert in Abhängigkeit von Faktoren wie z.B., wie viele Bits benötigt werden, um eine Funktion zu spezifizieren und wie viele Bits in jedem der Konfigurationsregister sind.
  • Bestimmte Funktionen, die in einem Netzwerkprozessor, wie z.B. dem Prozessor 102, ausgeführt werden können, sind in der Technik bekannt und deshalb hierin nicht im Detail beschrieben. Die Erfindung ist bezüglich der speziellen auszuführenden Funktionen nicht beschränkt, sondern ist allgemeiner geeignet für die Verwendung beim Aufrechterhalten einer erwünschten Funktionsaufruffolgebildung über ein oder mehrere Pakete für eine oder mehrere abfolgeabhängige Verarbeitungsaufgaben in dem Prozessor. Jede der abfolgeabhängigen Verarbeitungsaufgaben erfordert typischerweise die Leistungsfähigkeit mehrerer Funktionen und weist dadurch mehrere Funktionsaufrufe an die Be triebseinheiten 222 und ihre zugeordneten Ausführungseinrichtungen 225 auf. Allgemein kann jede beliebige Funktion, die der Verarbeitung von Paketdaten zugeordnet ist und für die Verschickung über den Funktionsbus 220 erteilt werden kann, unter Verwendung der Techniken der Erfindung eingeordnet werden.
  • Man beachte, dass mindestens ein Teil der Abfolgelogik 210 aus 3 in dem Speicher 204 implementiert sein kann, z.B. der Abfolgereihensatz 300 und der Konfigurationsregistersatz 310 jeweils als bestimmte Speicherstellen in dem Speicher 204 des Prozessors 102 implementiert sein können.
  • Die Arbeitsweise des Netzwerkprozessors 102 wird jetzt mit Bezug auf eine bestimmte erläuternde Ausführungsform beschrieben, die die Verarbeitung von Zellen beinhaltet, die von dem ersten Klassifizierer 200 neu in Pakete angeordnet werden, die hierin auch als Protokolldateneinheiten (PDUs) bezeichnet sind. Der Erstdurchlaufklassifizierer in dieser Ausführungsform ist für das Bestimmen eines entsprechenden Paketflussbezeichners für jedes Paket konfiguriert. Die Paketflussbezeichner können auf eine in der Technik bekannte Weise aus den Kopfinformationen der Zellen extrahiert werden.
  • Einer oder mehrere der Paketflussbezeichner können jeder in eine eindeutige Speicherstelle in dem Speicher 204 oder eine andere dem Netzwerkprozessor 102 zugeordnete Speicherschaltungsanordnung umgesetzt werden. Die eindeutige Speicherstelle, die einem gegebenen Paketflussbezeichner entspricht, kann dafür konfiguriert sein, mindestens einen Zähler zu speichern, der eine Anzahl von Funktionen spezifiziert, die für einen zugeordneten Paketfluss ausgeführt werden. Andere Information, die sich auf die Verarbeitung des gegebenen Paketflusses bezieht, kann auch in der eindeutigen Speicherstelle gespeichert werden.
  • Der oben genannte Zähler kann verwendet werden, um die Anzahl von eingeordneten Funktionen pro Kontext und pro Satz eingeordneter Funktionen zu zählen. Die entstehenden Zählungen können dann verwendet werden, um das Einordnen einer Funktion zu erleichtern, die mehrmals im Leben eines Kontexts erteilt wird. Zum Beispiel kann es während des Verarbeitens wünschenswert sein, Funktionsaufrufe für ein oder mehrere spätere Pakete zu verzögern, bis ein früheres Paket mindestens eine gewisse spezifizierte Mindestanzahl von Funktionsaufrufen erteilt hat, um zu verhindern, dass die späteren Pakete zu lange vor dem früheren Paket kommen.
  • Die Steuerschaltungsanordnung des Netzwerkprozessors 102, die in dieser Ausführungsform als ein oder mehrere Elemente 206, 208, 210, 212 und 214 aus 2 aufweisend betrachtet werden kann, ist betriebsfähig, ein oder mehrere Pakete mit einem gegebenen Paketflussbezeichner auf eine vorteilhafte Weise, die eine erwünschte Funktionsaufruffolgebildung über mehrere Pakete mit dem gegebenen Paketflussbezeichner für eine oder mehrere abfolgeabhängige Verarbeitungsaufgaben in dem Prozessor aufrechterhält, an die entsprechenden Betriebseinheit(en) 222 zu leiten. Der Begriff "Steuerschaltungsanordnung" sollte als jede beliebige Anordnung von Verarbeitungselementen umfassend ausgelegt werden, die dazu fähig ist, das Leiten von Paketen auf der Basis von Paketflussbezeichnern auf eine Weise, die eine erwünschte Funktionsaufruffolgebildung in dem Prozessor 102 aufrechterhält, zu schaffen und sollte deshalb nicht als die bestimmte Anordnung der in 2 gezeigten Elemente 206, 208, 210, 212 und 214 erfordernd ausgelegt werden.
  • Dieses Verarbeitungsabfolgeaufrechterhaltungsmerkmal der vorliegenden Erfindung in der erläuternden Ausführungsform kann verwendet werden, um zu gewährleisten, dass Aufrufe zu gewissen vordefinierten Funktionen oder Sätzen von Funktionen auf entweder den Erstdurchlauf- oder den Zweitdurchlaufkontexten oder beiden in einer geeigneten Abfolge auf dem Funktionsbus 220 dargestellt werden. Für die Erstdurchlaufkontexte bedeutet das, dass die Funktionsaufrufe auf dem Funktionsbus 220 in der gleichen Abfolge gezeigt werden, in der die entsprechenden Zellen von dem Erstdurchlaufkontextzuordnungselement 206 Erstdurchlaufkontextbezeichnern zugeordnet wurden. Dies entspricht der Abfolge, in der die Zellen "auf dem Draht" an einem Eingang des Netzwerkprozessors 102 angekommen sind, und die Aufrechterhaltung dieser Abfolge für die zugeordneten Funktionsaufrufe wird hierin als Kontextdrahtabfolge bezeichnet. Für Zweitdurchlaufkontexte werden die Funktionsaufrufe auf dem Funktionsbus 220 in der gleichen Abfolge dargestellt, in der Zweitdurchlaufkontextbezeichner von dem Zweitdurchlaufkontextzuordnungselement 212 zuge ordnet werden. Dies entspricht einer Abfolge, in der die PDUs in der Zweitdurchlaufbereitstellungsreihe 214 für das Liefern an den Zweitdurchlaufklassifizierer 202 eingeordnet sind.
  • Die Erstdurchlaufkontextbezeichner werden in dieser erläuternden Ausführungsform von dem Element 206 in numerischer Abfolge zugeordnet, wenn Zellen an dem Erstdurchlaufklassifizierer ankommen. Die Zuordnung in numerischer Abfolge ist keine Anforderung der Erfindung. Allgemein könnten die Erstdurchlaufkontextbezeichner in einer anderen Abfolge zugeordnet werden, wobei eine geeignete Schaltungsanordnung verwendet wird, um einen Überblick über die Zuordnungsabfolge zu behalten. Kontextbezeichner können hierin auch einfach als ,Kontexte' bezeichnet werden und Beispiele umfassen numerische Kennzeichner, wie z.B. Kontext 0, Kontext 1, Kontext 2 etc.
  • Die Kontextbezeichner werden vorzugsweise aus einer festen Anzahl von Token ausgewählt. Wenn die feste Anzahl von Token zum Beispiel 256 ist, kann der Kontextbezeichner ein 8-Bit-Bezeichner sein. Zeilen mit dem gleichen Paketflussbezeichner haben folglich verschiedene Kontextbezeichner, die ihnen von dem Element 206 zugeordnet werden, und diese Kontextbezeichner können in der Reiheneinrichtung 208 und der Abfolgelogik 210 genutzt werden, um eine Kontextdrahtabfolge unter den Zellen eines bestimmten Paketflussbezeichners zu forcieren. Die Reiheneinrichtung 208 gibt die zugeordneten Erstdurchlaufkontexte in numerischer Abfolge frei und das Element 206 teilt sie in numerischer Abfolge, die die erwünschte Funktionsaufruffolgebildung forciert, d.h. entsprechend der Kontextdrahtabfolge, neu zu.
  • Nachdem die Erstdurchlaufklassifizierung für eine gegebene PDU fertig gestellt wurde, empfängt die Reiheneinrichtung 208 die PDU von dem Erstdurchlaufklassifizierer 200 und platziert die PDU in der Zweitdurchlaufbereitstellungsreihe 214. Die PDUs werden entsprechend ihrer Abfolge in der Zweitdurchlaufbereitstellungsreihe 214 an den Zweitdurchlaufklassifizierer 202 geliefert. Wenn eine gegebene PDU von der Zweitdurchlaufbereitstellungsreihe 214 an den Zweitdurchlaufklassifizierer 202 geliefert wird, ordnet das Zweitdurchlaufkontextzuordnungselement 212 der PDU einen Zweitdurchlaufkontextbezeichner zu. Die zweiten den PDUs zugeordneten Durchlaufkontextbezeichner können sich außerhalb der numerischen Abfolge befinden. Die Reiheneinrichtung 208 führt eine Liste von freien Zweitdurchlaufkontextbezeichnern und ordnet sie den PDUs zu, wenn die PDUs mit der Zweitdurchlaufklassifizierung beginnen. Die Abfolgelogik 210 behält den Überblick über die Abfolge, in der Zweitdurchlaufkontexte erteilt werden und forciert die eingeordneten Funktionen auf der Basis dieser Abfolge.
  • Die Kontextzuordnungselemente 206, 212 aus 2 können, auch wenn sie in der Figur als separate Elemente gezeigt sind, in zugehörige Elemente des Netzwerkprozessors 102 integriert werden. Zum Beispiel kann das Erstdurchlaufkontextzuordnungselement 206 in die Erstdurchlaufklassifiziererschaltungsanordnung oder in die zugehörige Steuerschaltungsanordnung integriert sein und kann das Zweitdurchlaufkontextzuordnungselement 212 in die Reiheneinrichtung 208 oder die Abfolgelogik 210 integriert sein.
  • Wie zuvor aufgezeigt, ist es möglich, dass ein Satz von Funktionen unter Verwendung des Satzes von Abfolgereihen 300 aus 3 für das Einordnen gruppiert werden. Zum Beispiel kann jede der Abfolgereihen 302 in dem Satz 300 verwendet werden, um vier Funktionen einzuordnen, so dass ein gegebener eingeordneter Funktionssatz fSet folgendermaßen gebildet werden kann: fSet = fOne + fTwo + fThree + fFour,wobei fOne, fTwo, fThree und fFour unabhängige Funktionen sind. Allgemein wird jede erteilte Funktion, die zu einem Funktionssatz einer eingeordneten Reihe gehört, in diese Reihe eingeordnet. Man beachte, dass die Verwendung von vier Funktionen in dem oben genannten Beispiel nur erläuternd ist. Die Erfindung erfordert keine spezielle Beschränkung auf die Anzahl von Funktionen in einem Funktionssatz.
  • Funktionen können so programmierbar ausgewählt werden, dass sie in den Erstdurchlaufkontexten oder den Zweitdurchlaufkontexten oder beiden eingeordnet werden. Wenn eine Funktion in sowohl den Erstdurchlauf- als auch den Zweitdurchlaufkontexten eingeordnet werden muss, verwendet sie zwei der Funktionsabfolgereihen 302. Man beachte, dass es in der oben beschriebenen erläuternden Ausführungsform keine Abfolge zwischen den Erst- und den Zweitdurchlaufkontexten gibt. Stattdessen wird eine gegebene Funktion in der Erstdurchlaufverarbeitung eingeordnet, wenn der Prozessor 102 dafür konfiguriert ist, und wird die gegebene Funktion in der Zweitdurchlaufverarbeitung eingeordnet, wenn der Prozessor 102 dafür konfiguriert ist. Dies ist jedoch keine Anforderung der Erfindung und die beschriebenen Techniken können verwendet werden, um mehrere Kontexte einzuordnen, z.B. um sie für sowohl die Erstdurchlauf- als auch die Zweitdurchlaufverarbeitung einzuordnen.
  • Es ist auch möglich, dass der gleiche Funktionsaufruf mehr als einmal im Leben eines Kontexts erteilt wird. Die Abfolgelogik 210 in der erläuternden Ausführungsform ordnet nur die erste Erteilung der Funktion. Anschließende Aufrufe an die gleiche eingeordnete Funktion vor der Beendigung des Kontexts werden nicht eingeordnet und werden stattdessen auf dem Funktionsbus 220 verschickt, sobald sie erteilt sind, unabhängig von der Abfolge. Wieder ist dies keine Anforderung der Erfindung und können die beschriebenen Techniken verwendet werden, um eine Funktion vor der Beendigung eines Kontexts mehrfach einzuordnen.
  • Wenn die Abfolgelogik 210 die Beendigung eines Kontexts detektiert, während sie auf eine eingeordnete Funktion für diesen Kontext wartet, hört sie auf, auf die eingeordnete Funktion auf diesem Kontext zu warten, und gibt Kontexte frei, die in einem Abfolgesinn "hinter" ihr sind. Grundsätzlich forciert die Abfolgelogik das Einordnen von auf dem Funktionsbus 220 dargestellten Funktionen, um die Abfolge anzupassen, in der die Kontexte begonnen haben. Wenn ein Kontext beendet wird, bevor eine eingeordnete Funktion auf diesem Kontext empfangen wird, bestimmt die Abfolgelogik, dass keine eingeordnete Funktion für diesen Kontext erteilt wird und hört auf, auf eine zu warten.
  • Eine spezielle Funktion, z.B. eine hierin erläuternd als fUnblockOrderQueues bezeichnete Funktion kann verwendet werden, um die Abfolgelogik 210 so zu leiten, dass die Abfolgereihen 302 für den Kontext, der die Funktion erteilt, entblockt werden. Sobald ein Kontext die Funktion fUnblockOrderQueues erteilt, wird keine andere Funktion für diesen Kontext eingeordnet, bis der Kontext beendet und erneut erteilt wird.
  • Für Funktionen, die so definiert sind, dass sie für Zweitdurchlaufkontexte eingeordnet werden, kann die Abfolgelogik 210 so konfiguriert sein, dass der Prioritätsgrad bei der Ausführung der Abfolgeanordnung nicht berücksichtigt wird. Dies kann getan werden, um die Hardwarekonstruktion zu vereinfachen. Jedoch bedeutet das, dass eine PDU mit einer geringeren Priorität eine PDU mit einer höheren Priorität blockiert, wenn die PDU mit der geringeren Priorität vor der PDU mit der höheren Priorität gestartet wurde.
  • Die einzuordnenden Funktionen können unter Verwendung anderer Techniken als der in Verbindung mit dem Konfigurationsregistersatz 310 aus 3 beschriebenen Konfigurationsregistersteuerung spezifiziert werden. Zum Beispiel kann einzuordnender Funktionssatz als ein spezifischer Funktionsraum definiert werden, z.B. kann ein oberer Funktionsraum, der z.B. den Funktionen 511-256 entspricht, auf einen unteren Funktionsraum, z.B. Funktionen 255-0 und die abgebildeten eingeordneten Funktionen abgebildet werden. Allgemein wird die Verwendung des Konfigurationsregisteransatzes dadurch bevorzugt, dass er die zukünftige Zuordnung von Funktionen nicht beeinträchtigt.
  • Selbst in dem allgemeinen Kontext des oben beschriebenen Konfigurationsregisteransatzes können andere Techniken verwendet werden, um einzuordnende Funktionen in einem Funktionssatz zu spezifizieren. Zum Beispiel könnte jede Funktion, die ein bestimmtes Bitmuster aufweist, wie z.B. wenn seine letzten drei Bits auf 001 eingestellt sind, einem Satz durch die Verwendung von Maskierung zugeordnet werden.
  • Die Operation der Abfolgelogik 210 wird jetzt mit Bezug auf eine Anzahl von Beispielen detaillierter beschrieben. Es sollte zu verstehen sein, dass die unten gegebenen Beispiele nur Abbildungszwecken dienen und deshalb nicht als den Umfang der Erfindung auf irgendeine Weise einschränkend ausgelegt werden sollen. Andere Ausführungsformen der Erfindung können auf eine andere als die unten beschriebene Weise arbeiten. Angenommen, in diesen Beispielen sind vier separate Abfolgereihen 302-1, 302-2, 302-3 und 302-4 in dem Satz von Abfolgereihen 300. Die Abfolgereihen forciert das Einordnen in einer bestimmten Reihe, das heißt, für eine gegebene Funktion oder einen gegebenen Funkti onssatz, aber nicht zwischen verschiedenen Reihen. Zum Beispiel angenommen, die folgenden Funktionen werden in der folgenden Abfolge von dem Erstdurchlaufklassifizierer 200 oder dem Zweitdurchlaufklassifizierer 202 erteilt und der Kontext 0 wurde vor dem Kontext 1 zugeordnet:
    eingeordnete Funktion 1 auf Kontext 1
    eingeordnete Funktion 1 auf Kontext 0
    eingeordnete Funktion 2 auf Kontext 0
    eingeordnete Funktion 2 auf Kontext 1
  • Die Abfolgelogik 210 ist dafür konfiguriert, sicherzustellen, dass die eingeordnete Funktion 1 auf dem Kontext 0 vor dem Kontext 1 auf dem Funktionsbus 220 erteilt würde. Jedoch stellt die Abfolgelogik in der erläuternden Ausführungsform nicht sicher, dass diese eingeordnete Funktion 2 auf dem Kontext 0 auf dem Funktionsbus 220 vor der eingeordneten Funktion 1 auf dem Kontext 1 erteilt wird.
  • Wenn eine eingeordnete Funktion nicht auf einem Kontext erteilt wird, gibt die Abfolgelogik 210 Kontexte frei, die diesem Kontext folgen, wenn eine Kontextbeendigungsfunktion, z.B. eine Funktion fQueue, fQueueEOF oder fTransmit oder die oben genannte Funktion fUnblockOrderQueues auf dem Kontext erteilt wird. Man betrachte das folgende Beispiel, in dem angenommen wird, dass die Kontexte in numerischer Ordnung, d.h. in dem Abfolgekontext 0, Kontext 1, Kontext 2 zugeordnet wurden:
    eingeordnete Funktion 1 auf Kontext 1
    eingeordnete Funktion 1 auf Kontext 2
    ein fQueue erteilt auf Kontext 0
  • Die Abfolgelogik 210 empfängt die eingeordnete Funktion 1 auf den Kontexten 1 und 2 und hält sie und wartet darauf, dass die eingeordnete Funktion 1 auf dem Kontext 0 erteilt wird. Wenn die Funktion fQueue auf dem Kontext 0 erteilt wird, erteilt die Abfolgelogik die eingeordnete Funktion 1 auf den Kontexten 1 und 2 (in dieser Abfolge) auf dem Funktionsbus 220. Die Funktion fQueue auf dem Kontext 0 teilt der Abfolgelogik im Grunde mit, dass die Arbeit an dem Kontext 0 fertig gestellt wurde und der Kontext an den freien Pool zurückgegeben wird. Keine zusätzlichen Funktionen durchlaufen die Abfolgereihen auf diesem Kontext, bis sie aus dem Pool einer neuen Zelle neu zugeordnet werden. Wenn eine Funktion fUnblockOrderQueues auf einem Kontext empfangen wurde, werden sämtliche anschließenden Funktionen, die auf diesem Kontext erteilt werden, bis der Kontext (z.B. von einer Funktion fQueue) beendet wird, nicht eingeordnet. Andere Typen von Kontextbeendigungsfunktionen können z.B. ein spezifisches Ende der Funktion(EOF)-Funktion, erläuternd bezeichnet als fQueueEOF, oder eine Übertragungsfunktion, erläuternd als fTransmit bezeichnet, umfassen.
  • Die Konfigurationsregister 312 in dem Satz von Registern 310 aus 3 können jeweils so konfiguriert sein, dass sie definieren: (1) bis zu einer bestimmten maximalen Anzahl von Funktionen, z.B. vier Funktionen, die in einer zugehörigen der Abfolgereihen 302 eingeordnet werden; (2) eine Anzahl von gültigen Funktionen, die für diese Reihe definiert sind, z.B. Funktionen 0 bis 4; und (3) ob die Funktionen auf Erstdurchlauf- oder Zweitdurchlaufkontexten eingeordnet werden. Jedes beliebige einer Anzahl von geeigneten Formaten kann verwendet werden, um diese oder andere ähnliche Information in den Konfigurationsregistern 312 des Konfigurationsregistersatzes 310 zu speichern.
  • Es soll nochmals betont werden, dass die vorhergehende Beschreibung der Operation und der Konfiguration der Abfolglogik 210 und ihres zugehörigen Abfolgereihensatzes 300 und Konfigurationsregistersatzes 310 nur als ein Beispiel vorgesehen ist. Der Fachmann wird erkennen, dass zahlreiche alternative Anordnungen verwendet werden können, um die Erfindung zu implementieren.
  • 4 erläutert eine beispielhafte Router- oder Schaltleitungskartenausführungsform eines Teils des Systems 100 aus 1. In dieser Ausführungsform weist das Verarbeitungssystem eine Leitungskarte 400 mit mindestens einer darauf installieren integrierten Schaltung 402 auf. Die integrierte Schaltung 402 weist einen Netzwerkprozessor 102 auf, der einen internen Speicher 104 hat. Der Netzwerkprozessor 102 interagiert mit einem externen Speicher 106 auf der Leitungskarte 400. Der externe Speicher 106 kann z.B. als ein externer Baumspeicher für die integrierte Netzwerkprozessorschaltung dienen. Der oben genannte Hauptprozessor kann auch auf der Leitungskarte 400 installiert werden.
  • Der Teil des Verarbeitungssystems wie in 4 gezeigt ist der Klarheit der Darstellung halber wesentlich vereinfacht. Es muss jedoch erkannt werden, dass das Verarbeitungssystem einen Router oder Schalter aufweisen kann, der mehrere solche Leitungskarten aufweist, und dass jede der Leitungskarten mehrere integrierte Schaltungen aufweisen kann. Eine ähnliche Ausführungsform kann in der Form einer Anschlusskarte implementiert sein.
  • Die oben beschriebenen Ausführungsformen der Erfindung sollen nur erläuternd sein. Zum Beispiel können, auch wenn die erläuternde Ausführungsform aus 2 einen separaten Erstdurchlauf- und Zweitdurchlaufklassifizierer, d.h. einen Erstdurchlaufklassifizierer 200 und einen Zweitdurchlaufklassifizierer 202 nutzt, andere Ausführungsformen die Funktionalität dieser Elemente in einer einzelnen Klassifizierungseinrichtung, einem Satz von Klassifizierungseinrichtungen oder einem anderen Typ von Klassifizierungsschaltungsanordnung kombinieren. Der Kontextbezeichner auf der Basis der Ordnung der vorliegenden Erfindung kann für Erstdurchlaufkontexte, Zweitdurchlaufkontexte oder sowohl Erst- als auch Zweitdurchlaufkontexte wie auch für andere Anordnungen von einzelnen oder mehrfachen Kontexten vorgesehen werden. Die spezielle in dem Netzwerkprozessor 102 genutzte Steuerschaltungsanordnung kann in Abhängigkeit von den in einer gegebenen Ausführungsform der Erfindung genutzten Verarbeitungsanordnungen variiert werden. Außerdem ist dies, auch wenn der Speicher 204 in den oben beschriebenen Ausführungsformen erläuternd wenigstens teilweise intern in dem Netzwerkprozessor ist, nur ein Beispiel. Andere Ausführungsformen können andere Typen von internen oder externen Speicherschaltungsanordnungskonfigurationen für das Implementieren der beschriebenen Funktionalität verwenden. Ferner können, wie nachstehend erwähnt, die speziellen Klassifizierungsoperationen der Klassifizierungsschaltungsanordnung in Abhängigkeit von der Verarbeitungsanwendung, z.B. unter Softwaresteuerung über einen Hauptprozessor, variieren. Diese und zahlreiche andere alternative Ausführungsformen in dem Umfang der folgenden Ansprüchen werden dem Fachmann ersichtlich sein.

Claims (10)

  1. Prozessor (102), aufweisend: eine Klassifizierungsschaltungsanordnung (200, 202), die betriebsfähig ist, für jedes einer Mehrzahl von in dem Prozessor empfangenen Paketen einen entsprechenden einer Mehrzahl von Paketflussbezeichnern zu identifizieren; eine Steuerschaltungsanordnung (206, 208, 210, 212, 214), die betriebsmäßig mit der Klassifizierungsschaltungsanordnung gekoppelt ist; und mindestens eine Betriebseinheit (222-1, 222-2, ... 222-N), die betriebsmäßig mit der Steuerschaltungsanordnung gekoppelt ist, wobei jede Betriebseinheit mindestens eine ihr zugeordnete Ausführungseinrichtung (225-1, 225-2, ... 225-M) hat, so dass der Prozessor eine Mehrzahl von Ausführungseinrichtungen aufweist; wobei die Steuerschaltungsanordnung betriebsfähig ist, Pakete mit einem gegebenen Paketflussbezeichner auf eine Weise an die mindestens eine Betriebseinheit zu leiten, auf die eine erwünschte Funktionsaufruffolgebildung über die Pakete mit dem gegebenen Paketflussbezeichner für eine oder mehrere abfolgeabhängige Verarbeitungsaufgaben in dem Prozessor aufrechterhalten wird; wobei die Steuerschaltungsanordnung eine Abfolgelogik (210) aufweist mit: mindestens einer Abfolgereihe (302-1, 302-2, ... 302-K), die Kontextbezeichner nutzt, die indikativ für die Ankunftsabfolge der Pakete mit dem gegebenen Flussbezeichner sind, um einen Satz von Funktionen in mindestens einem Kontext zu ordnen; und mindestens ein Konfigurationsregister (312-1, 312-2, ... 312-L), das Information speichert, die den Satz von Funktionen spezifiziert.
  2. Prozessor nach Anspruch 1, wobei der gegebene Paketflussbezeichner in eine eindeutige Speicherstelle in der dem Prozessor zugeordneten Speicherschaltungsanordnung umgesetzt wird.
  3. Prozessor nach Anspruch 2, wobei die eindeutige Speicherstelle, die dem gegebenen Paketflussbezeichner entspricht, wenigstens einen Zähler speichert, der eine Anzahl von Funktionen festgelegt, die für die Pakete mit dem gegebenen Paketflussbezeichner ausgeführt werden.
  4. Prozessor nach Anspruch 1, wobei die Steuerschaltungsanordnung betriebsfähig ist, zu bestimmen, ob mehr als eine einer bestimmten abfolgeabhängigen Verarbeitungsaufgabe zugeordnete Funktion während eines bestimmten Verarbeitungsintervalls für mehrere Pakete mit dem gegebenen Paketflussbezeichner ausgeführt wird.
  5. Prozessor nach Anspruch 4, wobei, wenn während des bestimmten Verarbeitungsintervalls mehr als eine einer bestimmten abfolgeabhängigen Verarbeitungsaufgabe zugeordnete Funktion für mehrere Pakete mit dem gegebenen Paketflussbezeichner ausgeführt wird, die Steuerschaltungsanordnung die erwünschte Funktionsaufruffolgebildung für die bestimmte abfolgeabhängige Verarbeitungsaufgabe aufrechterhält.
  6. Prozessor nach Anspruch 1, wobei Funktionsaufrufe für ein späteres oder mehrere spätere Pakete verzögert werden, bis ein früheres Paket eine festgelegte Mindestanzahl von Funktionsaufrufen erteilt hat.
  7. Prozessor nach Anspruch 1, wobei die Mehrzahl von Paketen entsprechende ihnen in dem Prozessor zugeordnete Kontextbezeichner hat, wobei jeder der Kontextbezeichner vor der Funktionsaufruferteilung seinem entsprechenden Paket zugeordnet wird, wobei die Kontextbezeichner auf eine Ankunftsabfolge der Mehrzahl von Paketen in der Klassifizierungsschaltungsanordnung hinweisen.
  8. Prozessor nach Anspruch 7, wobei jedes der Pakete in einem gegebenen Satz von Paketen mit dem gegebenen Paketflussbezeichner einen unterschiedlichen ihm zugeordneten Kontextbezeichner hat.
  9. Prozessor nach Anspruch 7, wobei die den empfangenen Paketen zugeordneten Kontextbezeichner genutzt werden, um die erwünschte Funktionsaufruffolgebildung für die dem gegebenen Paketflussbezeichner zugeordneten empfangenen Pakete aufrechtzuerhalten.
  10. Verfahren zur Verwendung bei der Verarbeitung von Paketen in einem Prozessor (102), wobei das Verfahren folgende Schritte aufweist: Identifizieren für jedes einer Mehrzahl von in dem Prozessor empfangenen Paketen einen entsprechenden einer Mehrzahl von Paketflussbezeichnern; und Leiten von Paketen mit einem gegebenen Paketflussbezeichner an mindestens eine Betriebseinheit (222-1, 222-2, ... 222-N) des Prozessors auf eine Weise, die eine erwünschte Funktionsaufruffolgebildung über die Pakete mit dem gegebenen Paketflussbezeichner für eine oder mehrere abfolgeabhängige Verarbeitungsaufgaben in dem Prozessor aufrechterhält; wobei mindestens eine Abfolgereihe (302-1, 302-2, ... 302-K) Kontextbezeichner nutzt, die indikativ für die Ankunftsabfolge der Pakete mit dem gegebenen Flussbezeichner sind, um einen Satz von Funktionen in mindestens einem Kontext zu ordnen; und mindestens ein Konfigurationsregister (312-1, 312-2, ... 312-L), das Information speichert, die den Satz von Funktionen spezifiziert; und wobei jede Betriebseinheit mindestens einen ihr zugeordnete Ausführungseinrichtung (225-1, 225-2, ... 225-M) hat, so dass der Prozessor eine Mehrzahl von Ausführungseinrichtungen aufweist.
DE60222233T 2001-12-21 2002-11-25 Prozessor und Verfahren zur Erhaltung der Verarbeitungsreihenfolge von Paketen basierend auf Paketstromkennungen Expired - Lifetime DE60222233T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US32025 2001-12-21
US10/032,025 US7088719B2 (en) 2001-12-21 2001-12-21 Processor with packet processing order maintenance based on packet flow identifiers

Publications (2)

Publication Number Publication Date
DE60222233D1 DE60222233D1 (de) 2007-10-18
DE60222233T2 true DE60222233T2 (de) 2008-06-12

Family

ID=21862699

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60222233T Expired - Lifetime DE60222233T2 (de) 2001-12-21 2002-11-25 Prozessor und Verfahren zur Erhaltung der Verarbeitungsreihenfolge von Paketen basierend auf Paketstromkennungen

Country Status (6)

Country Link
US (1) US7088719B2 (de)
EP (1) EP1326400B1 (de)
JP (2) JP4307829B2 (de)
KR (1) KR100945103B1 (de)
DE (1) DE60222233T2 (de)
TW (1) TWI246276B (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002071220A1 (en) * 2001-03-05 2002-09-12 Sanpro Systems Inc. A system and a method for asynchronous replication for storage area networks
US7349398B1 (en) * 2001-12-31 2008-03-25 Redback Networks, Inc. Method and apparatus for out-of-order processing of packets
US7411959B2 (en) * 2002-08-30 2008-08-12 Broadcom Corporation System and method for handling out-of-order frames
US7349399B1 (en) * 2002-09-20 2008-03-25 Redback Networks, Inc. Method and apparatus for out-of-order processing of packets using linked lists
US7840696B2 (en) * 2003-07-25 2010-11-23 Broadcom Corporation Apparatus and method for classifier identification
DE602004023338D1 (de) 2004-12-21 2009-11-05 Ericsson Telefon Ab L M Anordnung und verfahren in bezug auf den fluss von paketen in kommunikationssystemen
CN100459575C (zh) * 2005-11-10 2009-02-04 中国科学院计算技术研究所 一种网络处理器中维护ip分组出入顺序的方法
US7801144B2 (en) * 2006-03-31 2010-09-21 Agere Systems Inc. Switch-based network processor
US8176378B2 (en) * 2007-09-07 2012-05-08 Broadcom Corporation Method and system for a transmitting antenna selection failure recovery mode
KR200449326Y1 (ko) * 2008-06-12 2010-07-01 이종백 집속레일 결속용 파이프와이어클립
US9461930B2 (en) 2009-04-27 2016-10-04 Intel Corporation Modifying data streams without reordering in a multi-thread, multi-flow network processor
US8505013B2 (en) * 2010-03-12 2013-08-06 Lsi Corporation Reducing data read latency in a network communications processor architecture
US9444757B2 (en) 2009-04-27 2016-09-13 Intel Corporation Dynamic configuration of processing modules in a network communications processor architecture
US9286118B2 (en) 2012-06-15 2016-03-15 Freescale Semiconductor, Inc. System and method for improved job processing to reduce contention for shared resources
US9104478B2 (en) 2012-06-15 2015-08-11 Freescale Semiconductor, Inc. System and method for improved job processing of a number of jobs belonging to communication streams within a data processor
US9632977B2 (en) * 2013-03-13 2017-04-25 Nxp Usa, Inc. System and method for ordering packet transfers in a data processor

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4761733A (en) * 1985-03-11 1988-08-02 Celerity Computing Direct-execution microprogrammable microprocessor system
JPH02244852A (ja) * 1989-03-17 1990-09-28 Hitachi Ltd パケット処理装置
FI104672B (fi) 1997-07-14 2000-04-14 Nokia Networks Oy Kytkinjärjestely
US6389468B1 (en) * 1999-03-01 2002-05-14 Sun Microsystems, Inc. Method and apparatus for distributing network traffic processing on a multiprocessor computer
US6765909B1 (en) * 1999-04-22 2004-07-20 Nortel Networks Limited Method and apparatus for providing support for multiple QoS levels within a third generation packet data session
US6721309B1 (en) 1999-05-18 2004-04-13 Alcatel Method and apparatus for maintaining packet order integrity in parallel switching engine
US7996670B1 (en) 1999-07-08 2011-08-09 Broadcom Corporation Classification engine in a cryptography acceleration chip
US6766381B1 (en) 1999-08-27 2004-07-20 International Business Machines Corporation VLSI network processor and methods
US6661794B1 (en) 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US6381242B1 (en) * 2000-08-29 2002-04-30 Netrake Corporation Content processor
US7882257B2 (en) * 2000-12-29 2011-02-01 Avaya Inc. Stream processing node
US6957258B2 (en) * 2001-03-28 2005-10-18 Netrake Corporation Policy gateway
US20030061269A1 (en) * 2001-09-17 2003-03-27 Flow Engines, Inc. Data flow engine

Also Published As

Publication number Publication date
JP2003198601A (ja) 2003-07-11
KR20030053449A (ko) 2003-06-28
EP1326400A3 (de) 2004-03-24
KR100945103B1 (ko) 2010-03-02
US7088719B2 (en) 2006-08-08
EP1326400B1 (de) 2007-09-05
DE60222233D1 (de) 2007-10-18
TWI246276B (en) 2005-12-21
US20030118023A1 (en) 2003-06-26
JP2009081897A (ja) 2009-04-16
JP4307829B2 (ja) 2009-08-05
EP1326400A2 (de) 2003-07-09
TW200303667A (en) 2003-09-01

Similar Documents

Publication Publication Date Title
DE60222233T2 (de) Prozessor und Verfahren zur Erhaltung der Verarbeitungsreihenfolge von Paketen basierend auf Paketstromkennungen
DE112006000282B4 (de) Abgleich von Datenpaketen für Mehrpunktverbindungen in einem mehrstufigen Schaltsystem
DE69917835T2 (de) Datenpfadstrukturen mit Rotatorumschalter
DE69817328T2 (de) Warteschlangenstruktur und -verfahren zur prioritätszuteilung von rahmen in einem netzwerkkoppelfeld
DE60314205T2 (de) Arbiter für ein Vermittlungssystem mit Eingangspuffer
DE112009000834B4 (de) Expressvirtuelle Kanäle in einem Paketvermittelten Auf-Chip Verbindungsnetzwerk
DE69931302T2 (de) Zeitbasierte Ablaufsteuerungsarchitektur und Verfahren für ATM Netzwerke
DE60033099T2 (de) Hochkapazitäts WDM-TDM Paketvermittlungseinrichtung
DE69817756T2 (de) ATM Zellenübertragungsplanung
DE69733931T2 (de) Kreuzvermittlungsschalter und verfahren mit beschränktem spannungshub und blockierungsfreien vermittlungswegen
DE69534540T2 (de) Apparat und Methode zur Verarbeitung von Bandbreitenanforderungen in einer ATM-Vermittlungsstelle
DE69334005T2 (de) Überlastregelung in Hochgeschwindigkeitsnetzen
DE69636825T2 (de) Verzögerungsminimalisierungssystem mit garantierter Bandbreite für Echtzeitverkehr
DE69924057T2 (de) Verfahren, Ablauffolgesteuerung, intelligenter Pufferspeicher, Prozessor und Telekommunikationssystem zum Verteilen verfügbahrer Bandbreite
DE60110760T2 (de) Auslese-ablaufsteuerung für nicht aufeinander-folgende daten
DE69906604T2 (de) Rechnersystem und Verfahren zur Zuordnung von Speicherraum zu Kommunikationsportpuffern
DE69827053T2 (de) Verfahren zur Zuteilung von Betriebsmitteln in einem digitalen Datenübertragungsnetzwerk
DE69628631T2 (de) Dateneingangs/-ausgangsvorrichtung durch Referenzierung zwischen zentralen Verarbeitungseinheiten und Ein-/Ausgabevorrichtungen
DE60222656T2 (de) Vorrichtung und verfahren für effizientes multicasting von datenpaketen
DE60302045T2 (de) Verfahren und System zur geordneten dynamischen Verteilung von Paketströmen zwischen Netzwerkprozessoren
DE69738386T2 (de) Verbesserungen in oder sich beziehend auf eine ATM-Vermittlungsstelle
EP0641099A1 (de) Verfahren und Vorrichtung zum Zwischenspeichern von Datenpaketen sowie Vermittlungsstelle mit einer solchen Vorrichtung
DE60208252T2 (de) Vorrichtung für ein Mehrrechnersystem mit einer mehrstufigen Verbindungsanordnung
DE60031284T2 (de) Ablauffolgesteuerung für Paketvermittlungen und passive optischen Netzwerke
DE69631265T2 (de) Vermittlungssystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition