DE60029710T2 - Schnelle und adaptive Paketverarbeitungsvorrichtung und Verfahren unter Verwendung von Eingangspaketenszusammenfassungsinformation - Google Patents

Schnelle und adaptive Paketverarbeitungsvorrichtung und Verfahren unter Verwendung von Eingangspaketenszusammenfassungsinformation Download PDF

Info

Publication number
DE60029710T2
DE60029710T2 DE2000629710 DE60029710T DE60029710T2 DE 60029710 T2 DE60029710 T2 DE 60029710T2 DE 2000629710 DE2000629710 DE 2000629710 DE 60029710 T DE60029710 T DE 60029710T DE 60029710 T2 DE60029710 T2 DE 60029710T2
Authority
DE
Germany
Prior art keywords
packet
selection information
processing
instruction sequence
instruction
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 - Fee Related
Application number
DE2000629710
Other languages
English (en)
Other versions
DE60029710D1 (de
Inventor
Int. Property Division Kenji Shirakawa
Int. Property Division Yasuro Shobatake
Int. Property Division Toshio Okamoto
Int. Property Division Yoshimitsu Shimojo
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Application granted granted Critical
Publication of DE60029710D1 publication Critical patent/DE60029710D1/de
Publication of DE60029710T2 publication Critical patent/DE60029710T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • H04L45/566Routing instructions carried by the data packet, e.g. active networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Description

  • HINTERGRUND DER ERFINDUNG
  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich auf eine Paketverarbeitungsvorrichtung und ein Paketverarbeitungsverfahren zum Ausführen einer Paketverarbeitung.
  • BESCHREIBUNG DES VERWANDTEN SACHSTANDES
  • In den vergangenen Jahren sind in Verbindung mit dem drastischen Ansteigen des Internetverkehrs ansteigende Bedürfnisse für eine Vorrichtung entstanden, die in der Lage ist eine schnelle Verarbeitung von Paketen zu ermöglichen, die Information über das Internet übertragen. Die Paketverarbeitung wird realisiert durch Bezugnehmen auf ein Kopfteil eines Paketes, der von außerhalb eingegeben wird, und Ausführen einer gewünschten Verarbeitung gemäß einer in diesem Kopfteil beschriebenen Information.
  • Hier kann die gewünschte Verarbeitung von jeder der verschiedenen Verarbeitungen sein, einschließlich zum Beispiel der folgenden.
    • (1) Eine Verarbeitung zum Übertragen eines Paketes an eine spezifische Ausgabeverknüpfung durch Bezugnehmen auf eine Bestimmungsadresse, die in dem Kopfteil des Paketes enthalten ist.
    • (2) Eine Verarbeitung zum Steuern einer Paketübertragungszeiteinstellung an jeder Eingabeverknüpfung durch Bezugnehmen auf eine Prioritätsebeneninformation oder Information, die Attribute einer Anwendung anzeigt, die Kommunikationen unter Verwenden des Paketes ausführt, die in dem Kopfteil dieses Paketes enthalten ist, derart, dass die Übertragung dieses Paketes unterbrochen wird, wenn ein Paket mit einer höheren Prioritätsebene an eine Ausgabeverknüpfung übertragen wird, zu der dieses Paket beispielsweise übertragen werden soll.
    • (3) Eine Verarbeitung zum Teilen des Paketes gemäß eines vorbeschriebenen Verfahrens in dem Fall, in dem seine Paketlänge eine an einem spezifischen Ausgabeport erlaubten maximale Paketlänge überschreitet.
    • (4) Eine Verarbeitung zum Erhöhen einer spezifischen Information auf dem Paket und Fallenlassen des Paketes, wenn diese spezifische Information einen vorbeschriebenen Wert erreicht.
    • (5) Eine Verarbeitung zum Wiederschreiben eines Wertes einer Bestimmungsadresse oder einer Quelladresse gemäß einem vorgeschriebenen Verfahren gemäß Notwendigkeit.
    • (6) Eine Verarbeitung zum Berechnen von Fehlerkorrekturcodes des Paketes gemäß der Notwendigkeit.
  • Historisch gesprochen ist eine Vorrichtung zum Verarbeiten von Paketen durch eine Informationsverarbeitungsvorrichtung realisiert worden, wie einem Minicomputer oder einem Mikroprozessor. In diesem Fall ist die auszuführende spezifische Verarbeitung für jedes Paket, wie oben beschrieben, realisiert worden durch Ausführen einer spezifischen Anweisungssequenz auf dem Minicomputer oder dem Mikroprozessor. Jedoch ist es in diesem Schema schwierig gewesen die schnelle Paketverarbeitung zu realisieren. Aus diesem Grund ist es in vergangenen Jahren üblich gewesen die schnelle Paketverarbeitung durch Implementieren der Paketverarbeitung unter Verwenden von Hardware zu realisieren.
  • Jedoch hat das Internetprotokoll eine Charakteristik kontinuierlich verändert zu werden. Zum Beispiel ist die Bestimmungsadresse und die Quelladresse in dem Paket keinem Wiederschreiben innerhalb des Internets unterworfen gewesen, bis wenige Jahre zuvor, aber da eine Auflösung der Kürze der IP-Adresse infolge des Internetbooms der vergangenen Jahre aufgetreten ist, ist es in den letzten zwei oder drei Jahren üblich geworden, die Bestimmungsadresse oder die Quelladresse innerhalb des Internets wieder zu schreiben.
  • Als solches wird das Internet auf eine derartige Weise betrieben, dass wann immer ein Problem während eines Betreibens des Netzwerkes auftritt, ein Protokoll geändert wird, um das Problem zu lösen. Als ein Ergebnis wird sich das Internetprotokoll fortlaufend verändern. Folglicherweise hat das oben beschriebene Schema zum Realisieren der schnellen Paketverarbeitung des Implementierens der Protokollverarbeitung unter Verwenden von Hardware ein Problem, dass es unmöglich wird die Verarbeitung durch diese Hardware auszuführen, selbst wenn nur geringfügige Änderungen in dem Protokoll vorliegen, und es daher notwendig wird, die Paketverarbeitungsvorrichtung sehr häufig zu ersetzen.
  • Es haben auch verschiedene Vorschläge für Schemen vorgelegen, um Funktionen zu realisieren, die für die Paketverarbeitung erforderlich waren, wie eine Verarbeitung zum Analysieren der Bestimmungsadresse in dem Kopf des IP-Paketes, beispielsweise, aber hinsichtlich verschiedener Vorteile von verschiedenen Funktionsrealisierungsschemata, wobei jedes Funktionsrealisierungsverfahren sein bevorzugtes Gebiet für seine Anwendung aufweist. Jedoch ist die Paketverarbeitungsvorrichtung gemäß dem Stand der Technik nicht mit einer Möglichkeit bereitgestellt worden, ein geeignetes Schema aus dieser Mehrzahl von Funktionsrealisierungsschemata leicht auszuwählen, und es ist nur ein besonderes aus den verschiedenen Paketverarbeitungsschemata ausgewähltes Schema in der Paketverarbeitungsvorrichtung gemäß dem Stand der Technik implementiert worden. Als ein Ergebnis ist es unmöglich gewesen, das optimale Schema in Abhängigkeit von der Netzwerkumgebung auszuwählen, wie eine Mischungsrate von verschiedenen Pakettypen zum Beispiel, so dass es unmöglich gewesen ist, die Paketverarbeitung effizient auszuführen.
  • Wie beschrieben, ist die Paketverarbeitungsvorrichtung gemäß dem Stand der Technik mit den Problemen behaftet einschließlich: (1) dass es schwierig ist die schnelle Verarbeitung zu realisieren, wenn die Vorrichtung durch Ausführen einer spezifischen Anweisungssequenz auf dem Minicomputer oder dem Mikroprozessor realisiert wird; (2) dass sie nicht flexibel die Protokollveränderung handhaben kann, wenn die Vorrichtung durch Implementieren der Paketverarbeitung unter Verwenden der Hardware realisiert wird; und (3) dass sie kein optimales Funktionsrealisierungsschema in Abhängigkeit von der Netzwerkumgebung auswählen kann.
  • US-Patent 5,598,410 offenbart eine beschleunigte Paketverarbeitung, wie in dem Oberbegriff von Anspruch 1, und WO 91/15088 A offenbart ein Hochgeschwindigkeitsvermittlungsgerät unter Verwenden eines Cachespeichers und einem Vor-Holen (Prefetch) von Daten.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die Erfindung stellt eine Paketverarbeitungsvorrichtung und ein Verfahren wie in Ansprüchen 1 und 15 definiert bereit. Das macht es möglich eine schnelle Paketverarbeitung, eine hohe Adaptierbarkeit unter Berücksichtigung der Protokollveränderung und eine Möglichkeit zum Auswählen eines optimalen Funktionsrealisierungsschemas gemäß der Netzwerkumgebung bereitzustellen.
  • Weiter Ausführungsformen der Erfindung sind in den abhängigen Ansprüchen ausgeführt.
  • Andere Merkmale und Vorteile der vorliegenden Erfindung werden aus der folgenden Beschreibung im Zusammenhang mit den beigefügten Zeichnungen deutlich.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockdiagramm, das eine beispielhafte Konfiguration einer Paketverarbeitungsvorrichtung gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt.
  • 2 ist ein Blockdiagramm, das eine beispielhafte Konfiguration einer Auswahlerzeugungseinheit in der Paketverarbeitungsvorrichtung von 1 zeigt.
  • 3 ist ein Diagramm, das beispielhafte Felder zeigt, die durch eine Kopfinformationsextrahierungseinheit in der Auswahlerzeugungseinheit von 2 extrahiert werden sollen.
  • 4 ist ein Blockdiagramm, das eine andere beispielhafte Konfiguration einer Paketverarbeitungsvorrichtung gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt.
  • 5 ist ein Blockdiagramm, das eine beispielhafte Konfiguration einer Paketverarbeitungseinheit in der Paketverarbeitungsvorrichtung von 1 zeigt.
  • 6 ist ein Blockdiagramm, das eine andere beispielhafte Konfiguration einer Paketverarbeitungsvorrichtung gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt.
  • 7 ist ein Blockdiagramm, das eine andere beispielhafte Konfiguration einer Paketverarbeitungsvorrichtung gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt.
  • 8 ist ein Blockdiagramm, das eine andere beispielhafte Konfiguration einer Paketverarbeitungsvorrichtung gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt.
  • 9 ist ein Blockdiagramm, das eine beispielhafte Konfiguration einer Paketverarbeitungsvorrichtung gemäß der zweiten Ausführungsform der vorliegenden Erfindung zeigt.
  • 10 ist ein Diagramm, das eine beispielhafte Konfiguration einer Mikroanweisungssequenztafel in der Paketverarbeitungsvorrichtung von 9 zeigt.
  • 11 ist ein Blockdiagramm, das eine andere beispielhafte Konfiguration einer Paketverarbeitungsvorrichtung gemäß der zweiten Ausführungsform der vorliegenden Erfindung zeigt.
  • 12 ist ein Diagramm, das eine beispielhafte Konfiguration einer Makroanweisungssequenztafel in der Paketverarbeitungsvorrichtung von 11 zeigt.
  • 13 ist ein Diagramm, das eine beispielhafte Konfiguration einer Mikroanweisungssequenztafel in der Paketverarbeitungsvorrichtung von 11 zeigt.
  • DEATLLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Bezugnehmend nun auf 1 bis 8 wird die erste Ausführungsform einer Paketverarbeitungsvorrichtung und eines Paketverarbeitungsverfahrens gemäß der vorliegenden Erfindung im Detail beschrieben.
  • 1 zeigt eine beispielhafte Konfiguration einer Paketverarbeitungsvorrichtung (oder Nachrichtverarbeitungsvorrichtung) gemäß der ersten Ausführungsform der vorliegenden Erfindung.
  • Wie in 1 gezeigt, umfasst die Paketverarbeitungsvorrichtung der ersten Ausführungsform eine Auswahlerzeugungseinheit 101, eine Paketverarbeitungseinheit (Paketweiterleiter) 102 und eine Paketübermittlungseinheit 103.
  • Ein Paket, das an dieser Paketverarbeitungsvorrichtung angekommen ist, wird in die Auswahlerzeugungseinheit 101 eingegeben.
  • Die Auswahlerzeugungseinheit 101 bezieht sich auf einen Kopfteil des eingegebenen Paketes, extrahiert eine vorgeschrieben Mehrzahl von Bitsequenzen (wobei eine Bitsequenz nur 1 Bit enthalten kann) aus dem Kopfteil und führt eine Verarbeitung zum Erzeugen einer Auswahlinformation dieses Paketes durch Anwenden einer Musteranpassung, logischer Berechnungen, etc. aus, auf die extrahierte Mehrzahl von Bitsequenzen.
  • Hier steht die „Bitsequenz" für einen Teil oder die Gesamtheit eines Feldes innerhalb des Paketkopfes, der zum Beispiel durch die Protokollspezifizierung definiert ist.
  • Wie oben beschrieben, ist die Auswahlinformation Information, die Pakettypen anzeigt, der durch Bezugnehmen auf eine vorgeschrieben Position in dem Kopfteil jedes Paketes erhalten wird, und um spezifisch zu sein, dass durch jeden der folgenden vier Typen beispielsweise gegeben sein kann:
    • (1) IPv4-Paket vom Ethernet-Rahmen, UDP;
    • (2) IPv4-Paket vom Ethernet-Rahmen, TCP SYN/FIN-Nachricht;
    • (3) IPv4-Paket vom Ethernet-Rahmen, ICMP-Nachricht; und
    • (4) Andere.
  • Man bemerke, dass die Auswahlinformation zwei Bitdaten sein kann, wenn die Auswahlinformation in vier Typen gegeben ist.
  • Es ist natürlich auch möglich verschiedene andere Detailkonfigurierungen für die Auswahlinformation zu betrachten, die durch die Auswahlerzeugungseinheit 101 neben den obig beschriebenen erzeugt wird. Zum Beispiel ist es auch möglich die Auswahlinformation gemäß einer Klassifizierung des eingegebenen Ethernet-Rahmen oder IP-Paketes zu konfigurieren, wie das zum Broadcast, Multicast, oder Unicast, oder einer Klassifizierung des in dem eingegebenen IP-Paket vorangenommenen Transportprotokoll, wie UDP oder TCP. Jedoch wird im folgenden Fall der Einfachheit halber beschrieben, in dem die Auswahlinformation in den oben beschriebenen vier Typen gegeben ist.
  • Man bemerke auch, dass es auch möglich ist für die Auswahlinformation von der Bestimmungsadresse erstellte Information eines Paketes für den Zweck eines Auswählens eines optimalen Suchalgorithmus für eine Routingtafel, oder Information einzuschließen, die eine Prioritätsreihenfolge eines Paketes für den Zweck zum Bereitstellen von QoS (Quality of Service bzw. Qualität eines Dienstes) anzuzeigen, neben Information, die einen Pakettyp anzeigt, wie in dieser Ausführungsform beschrieben. Derartig verschiedene Modifizierungen hinsichtlich der Auswahlinformation werden unten im weiteren Detail beschrieben.
  • Im Folgenden werden auch die oben beschriebenen vier Typen der Auswahlinformation durch „00", „01", „10" bzw. „11" beispielhaft angezeigt.
  • Wenn nun die Auswahlinformation erzeugt wird, überträgt die Auswahlerzeugungseinheit 101 diese Auswahlinformation zusammen mit dem entsprechenden Paket zu der Paketverarbeitungseinheit 102.
  • Die Paketverarbeitungseinheit 102 verarbeitet dieses Paket und gibt es aus durch Verwenden der Auswahlinformation, die mit dem Paket bereitgestellt wird.
  • Zum Beispiel wird, wenn die Auswahlinformation „00" ist, dieses Paket durch Aktivieren einer UDP-Verarbeitungsroutine verarbeitet, die im Voraus bereitgestellt wird (oder durch Erzeugen und Aktivieren einer UDP-Verarbeitungsroutine zu diesem Punkt). Der Fall, in dem die Auswahlinformation „01" oder „10" ist, wird ähnlich gehandhabt. Wenn die Auswahlinformation „11" ist, ist es ein als „anderes" klassifiziertes Paket, so dass das Paket verarbeitet wird, während die Pakettypen wie gewöhnlich klassifiziert werden, durch Aktivieren eines allgemeinen Paketverarbeitungsroutings.
  • Auch die Paketverarbeitungseinheit 102 führt eine Verarbeitung zum Erzeugen und Ausgeben von Übertragungssteuerungsinformation einschließlich Information aus, die ein Ausgabeendgerät (Ausgabeschnittstelle) spezifiziert, an die dieses Paket ausgegeben werden sollte, und Information, die eine Prioritätsebene zum Übermitteln dieses Paketes spezifiziert, in der oben beschriebenen Verarbeitung (oder in der Verarbeitung, die separat aus der oben beschriebenen Verarbeitung aktiviert wird). Das Paket mit der daran angehangenen Übertragungssteuerungsinformation wird dann in die Paketübermittlungseinheit 103 eingegeben.
  • Die Paketübermittlungseinheit 103 führt eine Verarbeitung zum Ausgeben des eingegebenen Paketes aus durch Auswählen eines spezifischen Ausgabeendgerätes gemäß der Übertragungssteuerungsinformation, die an dieses Paket angehangen ist.
  • 2 zeigt eine beispielhafte Konfiguration dieser Auswahlerzeugungseinheit 101.
  • Die Auswahlerzeugungseinheit 101 umfasst eine Kopfinformationsextrahierungseinheit 201 zum Extrahieren vorgeschriebener Abschnitte in dem Kopfteil des eingegebenen Paketes, und eine Musteranpassungseinheit 202 zum Erzeugen der Auswahlinformation zum Beurteilen, ob die durch die Kopfinformationsextrahierungseinheit 201 extrahierte Information in einem vorgeschriebenen Bitmuster ist oder nicht.
  • In dem konkreten Beispiel, das in dieser Ausführungsform verwendet wird, extrahiert die Kopfinformationsextrahierungseinheit 201 die Abschnitte, wie in 3 gezeigt, das bedeutet die folgenden Abschnitte:
    • * ein Protokolltypfeld (301) in dem Ethernetkopf;
    • * ein Versionsfeld (302) in dem IP-Kopf;
    • * ein Protokollfeld (303) in dem IP-Kopf;
    • * ein SYN-Flag (304) in dem TCP-Kopf; und
    • * ein FIN-Flag (305) in dem TCP-Kopf.
  • Die Musteranpassungseinheit 202 beurteilt einen Typ der auszugebenen Auswahlinformation aus den oben beschriebenen vier Typen durch Prüfen der Werte dieser extrahierten Felder.
  • Zum Beispiel wird sie als eine TCP SYN/FIN-Nachricht beurteilt, wenn das Protokolltypfeld in dem Ethernetkopf einen Wert von „0800" aufweist, das Versionsfeld in dem IP-Kopf einen Wert „4", das Protokolltypfeld in dem IP-Kopf einen Wert „6" und das SYN-Flag oder das FIN-Flag in dem TCP-Kopf AN ist.
  • Man bemerke, dass die Auswahlinformation durch Ausführen der Musteranpassung in der Musteranpassungseinheit 202 in der beispielhaften Konfiguration von 2 ausgeführt wird, aber anstelle dessen ist es auch möglich die Auswahlinformation durch Ausführen logischer Berechnungen zum Ausgeben der Auswahlinformation unter Verwenden des Bitmusters zu erhalten, das aus der Kopfinformationsextrahierungseinheit 201 als eine Eingabe gegeben ist.
  • Man bemerke auch, dass die Auswahlerzeugungseinheit 101, die Mehrzahl von zu extrahierenden Bitsequenzen und das in der Musteranpassung verwendete Bitmuster in dem Fall eines Verwendens der Musteranpassung oder des Inhaltes der logischen Berechnungen in dem Fall vom Verwenden der logischen Berechnungen vorzugsweise von außen veränderbar sein sollte. Auf diese Weise wird es möglich die Protokollspezifizierungsveränderung flexibel zu behandeln und die Auswahlinformation gemäß einer Mischungsrate der Pakettypen in der Umgebung zu optimieren, auf die diese Paketverarbeitungsvorrichtung angewendet wird durch Verändern der detaillierten Konfiguration der Auswahlinformation.
  • Wie in 4 gezeigt, ist es auch möglich für die Auswahlerzeugungseinheit 101, eine vorgeschriebene Information zu geben, die aus dem Eingabepaket extrahiert wird (oder eine Information, die durch Verarbeiten einer derartig vorgeschriebenen Information erhalten wird) als zusätzliche Information (Parameter) an die Paketverarbeitungseinheit 102 zusammen mit der Auswahlinformation. Durch Verwenden der empfangenen Parameter kann die Paketverarbeitungseinheit 102 eine schnelle Verarbeitung realisieren.
  • 5 zeigt eine beispielhafte Konfiguration der Paketverarbeitungseinheit 102.
  • Diese Paketverarbeitungseinheit 102 hat einen Programmspeicher 401, einen Prozessor 402, einen Paketpuffer 403 und einen Eingabe-/Ausgabeport 404.
  • Der Programmspeicher 401 speichert die Verarbeitungsroutinen entsprechend der verschiedenen Typen der Auswahlinformation.
  • Im Fall des konkreten Beispieles, das in dieser Ausführungsform verwendet wird, speichert der Programmspeicher 401 das folgende:
    • (1) eine UDP-Verarbeitungsroutine (4011);
    • (2) eine TCP SYN/FIN-Verarbeitungsroutine (4012);
    • (3) eine ICMP-Verarbeitungsroutine (4013); und
    • (4) eine allgemeine Paketverarbeitungsroutine (4014);
    zugehörig zu:
    • (1) IPv4-Paket vom Ethernet-Rahmen, UDP;
    • (2) IPv4-Paket vom Ethernet-Rahmen, TCP SYN/FIN-Nachricht;
    • (3) IPv4-Paket vom Ethernet-Rahmen, ICMP-Nachricht; und
    • (4) Andere.
  • Ein von der Auswahlerzeugungseinheit 104 eingegebenes Paket wird in dem Paketpuffer 403 geschrieben. Die Auswahlinformation, die zusammen mit diesem Paket gegeben wird, wird an den Prozessor 402 als ein Unterbrechungssignal gegeben. Der Prozessor 402 aktiviert das zugehörige Verarbeitungsrouting gemäß der Auswahlinformation, verarbeitet dieses Paket und gibt dieses Paket and die Paketübermittlungseinheit 103 zusammen mit der Übertragungssteuerungsinformation durch den Eingabe-/Ausgabeport 404 aus.
  • Man bemerke, dass es auch möglich ist (nicht ausführbare) Programme bereitzustellen, aus denen die ausführbare Verarbeitungsroutinen erzeugt werden können, und die ausführbare Verarbeitungsroutine aus dem zugehörigen Programm zu erzeugen, zu der Zeit eines Empfangens der Auswahlinformation, anstelle eines Bereitstellens der ausführbaren Verarbeitungsroutinen im Voraus. Dies kann zum Beispiel realisiert werden durch Einbetten von Bitsequenzen, die gemäß der zusätzlichen Information erzeugt werden, die in 4 gezeigt ist, an vorgeschriebenen Teilen der Programme, aus denen die ausführbaren Verarbeitungsroutinen erzeugt werden können, die als binäre Daten aufrecht erhalten werden.
  • Hier werden die Attribute jedes Paketes durch die Auswahlerzeugungseinheit 101 im Voraus unterschieden und die Verarbeitungsroutine gemäß dieser Attribute wird aktiviert, so dass es möglich ist die Anzahl von Ästen innerhalb der Verarbeitungsroutine zu vermindern im Vergleich mit dem Fall zum Ausführen der allgemeinen Paketverarbeitungsroutine für alle Pakete. Folglicherweise ist es möglich die Störungen auf die Pipeline innerhalb des Prozessors zu vermindern und die Optimierung auf die Verarbeitungsroutine gemäß dieser Attribute anzuwenden, so dass es möglich ist den Durchsatz der Paketverarbeitungsvorrichtung zu verbessern.
  • Im folgenden werden verschiedene Variationen einer detaillierteren beispielhaften Konfiguration beschrieben.
  • Als erstes wird der Fall zum Ausführen der Auswahlerzeugungseinheit 101 und der Paketverarbeitungseinheit 102 unabhängig beschrieben.
  • Wie oben beschrieben, ist die konventionelle Weise zum Verarbeiten von Paketen während einem Klassifizieren der Pakettypen mit einem Problem behaftet, dass es viele Äste involviert und es zeitaufwendig ist. Aus diesem Grund sind in dieser Ausführungsform die Äste, die sich auf die Klassifizierung von Typen beziehen, durch die Auswahlerzeugungseinheit 101 gemacht, und eine Verarbeitung zum Erhalten der Ausgaberoute von der Bestimmung des Paketes oder dergleichen wird auf der Paketverarbeitungseinheit 102 ausgeführt.
  • Es ist zu bevorzugen, die Auswahlerzeugungseinheit 101 und die Paketverarbeitungseinheit 102 unabhängig zu betreiben. An dieser Stelle besteht ein Bedarf wie durch beispielsweise Paketschlangen zu verbinden. Im Fall der Implementierung unter Verwendung von LSI ist es zu bevorzugen eine Konfiguration anzupassen, die einen geringeren Umfang vom Speicher und eine geringere Anzahl von Zugriffen auf diesen Speicher fordert. Aus diesem Grund kann eine Konfiguration, wie in 6 gezeigt, als eine Modifizierung der in 1 gezeigten Konfiguration verwendet werden.
  • In der Konfiguration von 6 ist ein von außen eingegebenes Paket in einem Paketspeicher 122 unter einer Steuerung einer Speicherverwaltungseinheit 121 gespeichert. Dann werden eine Speicheradresse, an der das Paket gespeichert ist, und eine Information, die einen Zustand einer Eingabeschnittstelle anzeigt, als ein einzelner Eintrag in eine erste Schlange 123 eingegeben.
  • Die Auswahlerzeugungseinheit 101 nimmt aus der ersten Schlange 123 einen Eintrag, der die Speicheradresse enthält, die das zu verarbeitende Paket speichert, erhält notwendige Information durch Zugreifen auf den Paketspeicher 122 über die Speicherverwaltungseinheit 121 und führt die Auswahlerzeugung durch.
  • Die Erzeugungsauswahlinformation wird zusammen mit einer Speicheradresse des Paketes und der Eingabeschnittstellezustandsinformation als ein einzelner Eintrag in eine zweite Schlange 124 eingegeben.
  • Die Paketverarbeitungseinheit 102 nimmt aus der zweiten Schlange 124 einen Eintrag, der das zu verarbeitende Paket enthält, und führt die Verarbeitung gemäß der Auswahlinformation aus. An diesem Punkt wird die Verarbeitung auf das Paket in dem Paketspeicher 122 gemäß der Notwendigkeit angewendet. Danach wird eine Adresse, die das Paket speichert, auf das die Verarbeitung angewendet wird, und Information, die die Ausgabeschnittstelle spezifiziert, an die Paketübermittlungseinheit 103 übertragen. Die Paketübermittlungseinheit 103 überträgt das spezifizierte Paket an das spezifizierte Ausgabeendgerät gemäß dieser Information.
  • Mit dieser Konfiguration wird es für die Auswahlerzeugungseinheit 101 und die Paketverarbeitungseinheit 102 möglich ihre entsprechende Verarbeitung hinsichtlich gegenseitig unterschiedlicher Pakete auszuführen, so dass die Pipelineparallelbetriebe realisiert werden können, während der erforderliche Umfang von Speicher vermindert kann. Selbst wenn die Verarbeitungszeiten der Auswahlerzeugungseinheit 101 und der Paketverarbeitungseinheit 102 für verschiedene Pakete unterschiedlich sind, ist es auch möglich den Verarbeitungszeitjitter durch Absichern einer ausreichenden Länge für die zweite Schlange 124 zu absorbieren.
  • Als nächstes wird eine in 7 gezeigte Konfiguration und ihr Betrieb betrieben, wie eine weitere Modifizierung der oben beschriebenen beispielhaften Konfiguration.
  • In der Konfiguration von 7 wird ein Paket von außerhalb in die Auswahlerzeugungseinheit 101 zusammen mit Information eingegeben, die den Zustand einer Eingabeschnittstelle anzeigt. Die Auswahlerzeugungseinheit 101 führt die Auswahlerzeugung unmittelbar aus und fügt die erzeugte Auswahlinformation zusammen mit dem Paket und der Eingabeschnittstellenzustandsinformation als einen einzelnen Eintrag in eine dritte Schlange 125 ein.
  • Die Paketverarbeitungseinheit 102 nimmt ein in die dritte Schlange 125 eingegebenes Paket heraus und wendet die Verarbeitung auf das Paket gemäß der angehangenen Auswahlinformation an und gibt dieses Paket zusammen mit Information aus, die das Ausgabeendgerät spezifiziert, an die dieses Paket ausgegeben werden sollte, an die Paketübermittlungseinheit 103. Die Paketübermittlungseinheit 103 überträgt dieses Paket an das spezifizierte Ausgabeendgerät gemäß dieser Information.
  • In diesem Fall führt die Auswahlerzeugungseinheit 101 die Auswahlerzeugung ohne Bezugnahme auf den Paketspeicher 122 aus, und dieses hat den Vorteil, dass Konflikte von Zugriffen auf den Paketspeicher 122 durch die Auswahlerzeugungseinheit 101 und die Paketverarbeitungseinheit 102 vermindert werden können. Es ist auch möglich Funktionen in die Auswahlerzeugungseinheit 101 zu inkorporieren, die ein Teil von Funktionen der Eingabeschnittstelle sind. Ein Beispiel eines derartigen Falles schließt den ein zum Handhaben von Bitströmen, wie durch die Rahmensynchronisierung auf der Verknüpfungsschicht dargestellt, und die CRC-Berechnung.
  • Als nächstes wird eine beispielhafte Konfiguration zum Realisieren der Unterbrechung zu einer Zeit der Paketankunft durch einen genaueren Betrieb der in 5 gezeigten Paketverarbeitungseinheit 102 beschrieben. In dem Fall zum Realisieren der Unterbrechungsverarbeitung bestehen technische Aufgaben einschließlich wie eine Erlaubnis der Unterbrechung verboten wird.
  • In diesem Fall weist der Prozessor 402 zwei Sätze von Registern auf zum Speichern der Auswahlinformation. Eines dient zum Speichern der Auswahlinformation zugehörig zu dem laufend verarbeiteten Paket und das andere dient zum Speichern der Auswahlinformation zugehörig zu einem Paket in dem anhängigen Zustand. Der erstere wird bezeichnet als ein Verarbeitungsregister und das letztere wird bezeichnet als ein anhängiges Register.
  • Wenn die Auswahlinformation an dem Prozessor 402 ankommt, wird diese Auswahlinformation zuerst in dem anhängigen Register gespeichert. Wenn die Auswahlinformation an dem anhängigen Register ankommt, wird eine Unterbrechungsnummer aus der Auswahlinformation erzeugt und die Unterbrechung an den Prozessor 402 wird versucht.
  • Wenn die Unterbrechung zu dem Prozessor 402 erlaubt wird, wird eine Steuerung an das Paketverarbeitungsprogramm übertragen, das die Unterbrechungshandhabungsroutine ist. Zur gleichen Zeit wird die Auswahlinformation an das Verarbeitungsregister übertragen. Wenn eine Schlange zwischen der Paketverarbeitungseinheit 102 und der Auswahlerzeugungseinheit 101 besteht, wird die Auswahlinformation, die sich in dieser Schlange befindet fortgesetzt, und die Spitze wird an das anhängige Register übertragen.
  • Der Prozessor 402 ist in dem Zustand, in dem eine Unterbrechung nicht ermöglicht wird, während das Paketverarbeitungsprogramm ausgeführt wird. Durch Ausführen eines Unterbrechungsermöglichungsbefehls zu der Zeitseinstellung einer Vervollständigung der Paketverarbeitung wird die Verarbeitung der nächsten Auswahlinformation gestartet.
  • Die Auswahlinformationserzeugung und die Paketverarbeitungsroutinenkonfiguration werden oben für einen beispielhaften Fall einer Klassifizierung gemäß eines Unterschiedes in der auf das Paket anzuwendenden Verarbeitung beschrieben, aber die Klassifizierung anders als die gemäß eines Unterschiedes in der Verarbeitung ist auch möglich.
  • Verschiedene Modifizierungen der Auswahlinformation werden nun beschrieben.
  • Zum Beispiel können selbst in dem Fall zum Ausführen der gleichen Verarbeitung mehrere Wege zum Realisieren dieser Verarbeitung bestehen. In der Paketverarbeitungseinheit 102 wird häufig eine Suche durch eine Datenbasis (nicht gezeigt) unter Verwenden eines spezifischen Feldes des Kopfes des Paketes als ein Schlüssel ausgeführt. Es wird angenommen, dass eine Mehrzahl von Algorithmen für die Datenbasissuche bestehen, und dass ein Umfang von Berechnungen oder Verzögerungen der Suche unterschiedlich ist, abhängig von einem Typ des Schlüssels und einer Verteilung dieses Schlüssels auf der Datenbasis. Dieses ist ein Fall, der oft in der Datenbasissuche zum Bestimmen eines Ausgabeendgerätes (Ausgabeschnittstelle) unter Verwenden einer Netzwerkadresse als einen Schlüssel auftritt.
  • Nun wird angenommen, dass vier Suchalgorithmen bestehen und der Suchschlüssel mit einem 32 Bitfeld gegeben ist. Ferner wird angenommen, dass dieser 32 Bitplatz in 128 gleiche Teile geteilt werden soll, und der effizienteste Suchalgorithmus im Mittel für jeden Teil bestimmt werden kann. Dieser Betrieb wird bestimmt gemäß Charakteristiken der Datenbasis und soll offline separat von der Echtzeitverarbeitung der Paketverarbeitung ausgeführt werden. Als ein Ergebnis wird eine Korrespondenz zwischen den oberen 7 Bits von 32 Bits und einem 2 Bitidentifizierer zum Spezifizieren des Suchalgorithmus bestimmt. Es ist auch möglich die Auswahlinformation zu erstellen zum Erhalten des Identifizierers zum Spezifizieren des Suchalgorithmus und ebenso der Auswahlerzeugungseinheit 101 zum Erzeugen der Information zum Spezifizieren des Suchalgorithmus für die oberen 7 Bits einer 32 Bitnetzwerkadresse, wie oben beschrieben. Eine derartige Auswahlinformation kann durch eine Verweistafel erzeugt werden, die durch einen Halbleiterspeicher oder durch einige logische Berechnungen realisiert werden.
  • Man bemerke auch, dass eine Mehrzahl von Bitsequenzen, die in der Auswahlinformation verwendet werden, aus dem Kopf des Paketes an der Auswahlerzeugungseinheit 101 extrahiert werden, und derartige Bitsequenzen auch oft erfordern nochmals an der Paketverarbeitungseinheit 102 extrahiert zu werden. Die Bitsequenzenextrahierung wird normalerweise Verschiebungsberechnungen oder Maskenberechnung zugeordnet, und wenn diese Operationen bzw. Betrieb einmal durchgeführt worden sind in der Auswahlerzeugungseinheit 101, besteht kein Bedarf zum nochmaligen Ausführen dieser Operationen in der Paketverarbeitungseinheit 102. Die extrahierte Information kann als ein Teil der Auswahlinformation direkt an die Paketverarbeitungseinheit 102 mitgeteilt werden zum Auslassen der unnötigen Wiederholung. Auf diese Weise kann die Verarbeitungslast der Paketverarbeitungseinheit 102 vermindert werden und die Leseanfrage unter Berücksichtigung des Paketpuffers kann vermindert werden, so dass der Durchsatz verbessert werden kann.
  • Als nächstes wird der Fall zum Geben der Parameter zusammen mit der Auswahlinformation aus der Auswahlerzeugungseinheit 101 an die Paketverarbeitungseinheit 102 beschrieben.
  • An der Auswahlerzeugungseinheit 101 können eine oder eine Mehrzahl von vorgeschriebenen Bitsequenzen separat aus der Extrahierung einer Mehrzahl von Bitsequenzen extrahiert werden für den Zweck der Auswahlinformation und jeder von: (1) der beschriebenen einen oder Mehrzahl von Bitsequenzen; (2) der vorgeschrieben einen oder einer Mehrzahl von Bitsequenzen mit Daten eines Teils einer Ganzheit der Mehrzahl von extrahierten Bitsequenzen addiert für den Zweck der Auswahlinformation; (3) Daten, die durch Verarbeitung von den obigen (1) Daten erhalten werden; (4) Daten, die durch eine Verarbeitung von den obigen (2) Daten erhalten werden; (5) einen Teil oder eine Ganzheit der Mehrzahl von extrahierten Bitsequenzen für den Zweck der Auswahlinformation, oder (6) Daten, die durch Verarbeiten von den obigen (5) Daten erhalten werden, können als die Parameter an die Paketverarbeitungseinheit gegeben werden. Man bemerke, dass es auch möglich ist den gesamten Paketkopf als zusätzliche Information zu verwenden.
  • Die in einem Prozess zum Erzeugen der Auswahlinformation hergestellten Parameter können effizient ebenso an der Paketverarbeitungseinheit 102 verwendet werden (obwohl derartige Parameter vorzugsweise auf eine Weise verwendet werden sollten, die keinerlei Seiteneffekt bewirken).
  • Zum Beispiel wird der Fall betrachtet, in dem eine Suche durch eine (nicht gezeigte) Datenbasis unter Verwenden eines Wertes von einem Feld, wie einem Schlüssel, ausgeführt werden soll auf der Paketverarbeitungseinheit 102, und eine Hash-Berechnung unter Verwenden eines Teils oder einer Ganzheit des gleichen Feldes ausgeführt werden soll zu einer Zeit zum Erzeugen der Auswahlinformation. In diesem Fall ist es möglich die gesamte Anzahl von Schlüsseln zu vermindern, um Ziele der Suche zu sein durch Teilen der Schlüssel der Datenbasis in ein direktes Produkt von kleinere Datenbasen durch ihr Klassifizieren gemäß dieser Hash-Funktion, so dass es möglich ist eine schnellere Verarbeitung in dem Fall zu realisieren, wo die Suchalgorithmen einen Umfang von Berechnungen erfordern, der proportional zu der gesamten Anzahl von Schlüsseln ist.
  • Es ist auch möglich die Paketverarbeitungseinheit 102 wie folgt konfiguriert zu betrachten.
  • In der Paketverarbeitungseinheit 102 werden häufig verwendete Daten oft zeitweise in einem schnellen Cash-Speicher gespeichert, um eine schnellere Datenbasissuche zu realisieren. In diesem Fall wird die Cash-Trefferrate höher und ein Beitrag zu einer schnellen Realisierung wird größer, wenn eine Korrelation zwischen Daten auf dem Cash und Daten höher ist, die in der Suchoperation erforderlich sind unter Berücksichtigung eines Paketes, das tatsächlich angekommen ist.
  • Als ein Verfahren zum Erhöhen der Möglichkeit zum Erhalten von höher korrelierten Daten auf dem Cash wird oft ein Verfahren verwendet, das als Vor-Hol-Betrieb bzw. Operation (pre-fetch operation) bekannt ist. Dieses ist eine Operation, in der ein Lesen aus einem Hauptspeicher zu dem Cash spekulativ gemacht wird durch im Voraus Lesen von solchen Daten, die eine höhere Möglichkeit aufweisen, dass auf sie in näherer Zukunft Bezug genommen wird. Dieses wird nur getan, wenn keine Randeffekte infolge von Lesen dieser Daten bestehen und es nichts ausmacht, ob die in dem Cash gelesenen Daten tatsächlich verwendet werden oder nicht.
  • Damit diese Vor-Hol-Operation (pre-fetch operation) effektiv ist, sollte die Zeit vom Vor-Holen zum Verwenden hinreichend länger sein als die Verzögerungszeit infolge vom Lesen aus dem Hauptspeicher zu dem Cash. Mit anderen Worten besteht eine Notwendigkeit zum Ausführen der Vor-Hol-Operation hinreichend im Voraus.
  • Jedoch ist es schwierig eine hinreichend lange Verzögerungszeit zu realisieren, um die Vor-Hol-Operation effektiv zu machen, wenn das Vor-Holen durch Extrahieren von Feldern des Paketes und Erhalten einer Adresse der Datenbasis gemäß dem ausgeführt wird, nur nachdem das Paket angekommen ist.
  • Im Hinblick darauf ist es möglich, ein Auswahlerzeugungsverfahren anzupassen, in dem die zu extrahierenden Bitsequenzen an der Auswahlerzeugungseinheit 101 die Bitsequenzen sind, die Teile einschließen, die Schlüssel für die Datenbasissuche sein sollen, und Werte, die als Adressen für die Speicherzugriffe der Datenbasissuche verwendet werden sollen, als ein Zwischenergebnis der Auswahlerzeugung erhalten werden können. Genauer gesagt ist es möglich ein Schema anzupassen, in dem eine Cash-Tafel als ein Datenbasissuchalgorithmus verwendet werden soll und die Auswahlinformation erzeugt wird durch Verwenden der gleichen Cash-Funktion, die auf der Cash-Tafel verwendet wird, wie oben beschrieben.
  • In diesem Fall werden Adressen, die in Zugriffen auf die Cash-Tafel verwendet werden sollen, bereits als ein Zwischenergebnis der Berechnungen berechnet, die sich auf die Auswahlinformation beziehen, so dass diese Adressen als die Parameter an die Paketverarbeitungseinheit 102 mitgeteilt werden, die an die Auswahlinformation angehangen sind. An der Paketverarbeitungseinheit 102 wird die Vor-Hol-Operation ausgeführt unter Verwenden von Werten der empfangenen Parameter als Adressen der Datenbasen, sobald die Paketverarbeitungsroutine aktiviert ist. Auf diese Weise wird es möglich die Vor-Hol-Operation in dem frühest möglichen Zustand der Paketverarbeitung auszuführen, so dass ein größerer Effekt zum Verstecken der Verzögerung realisiert werden kann.
  • Alternativ ist es auch möglich spekulativ die Datenbasissuche durch Berücksichtigung von Werten der empfangenen Parameter als Speicheradressen der Datenbasissuche auszuführen, zu einer Zeiteinstellung, in der die Auswahlinformation an die Paketverarbeitungseinheit 102 mitgeteilt wird. In diesem Fall wird die Zeit bis zum Aktivieren der Paketverarbeitungsroutine auch die Verzögerung in dem Vor-Holen verstecken, so dass es möglich ist einen noch größeren Effekt des Vor-Holens zu erwarten.
  • Als eine weitere Modifizierung der Auswahlinformation ist es auch möglich eine Prioritätssteuerungsinformation eines Paketes in der Auswahlinformation wie folgt einzuschließen.
  • Als erstes wird eine Kombination einer Prioritätssteuerungsinformation eines Pakets und eines Protokollidentifizierers zum Spezifizieren eines oberen Ebenenprotokolls eines Paketes betrachtet werden. Hier unterscheidet sich ein Paketverarbeitungsverfahren stark auf eine Weise, auf die jedes spezifiziert ist. Es ist ineffizient beide von ihnen durch ein einzelnes Programm zu realisieren, wie bereits oben erwähnt.
  • Wenn hier die Prioritätssteuerungsinformation 8 Bit und die oberen Ebenenprotokollspezifizierung 8 Bit ist, würde eine direkte Kombination 16 Bit sein. Es ist auch möglich ein optimiertes Programm für jedes von ihnen bereitzustellen.
  • Es ist auch möglich ähnliche Typen von Verarbeitungen kollektiv zu handhaben. Zum Beispiel kann die Verarbeitung mit beträchtlich weniger Programmen als die direkte Kombination realisiert werden durch Handhaben all der Protokolle, die die gleiche Verarbeitung erfordern durch ein einzelnes Programm.
  • Die 8 Bit-Prioritätssteuerungsinformation wird in einen 3 Bitidentifizierer gemäß einer Klassifizierung von ähnlichen Typen beispielsweise umgewandelt und die 8 Bit-Protokollnummer wird in einen 2 Bit-Identifizierer gemäß einer Klassifizierung von ähnlichen Typen von Verarbeitungen umgewandelt. Der so erhaltene 3 Bit-Identifizierer und der 2 Bit-Identifizierer werden in einen Identifizierer von 5 Bits oder ähnlich umgewandelt, durch Anwenden einiger logischer Berechnungen (was eine einfache Verkettung sein kann). Dies wird dann verwendet als die Auswahlinformation. Die Paketverarbeitungseinheit 102 aktiviert die zu aktivierende Paketverarbeitungsroutine gemäß dieser Auswahlinformation. In dem hier beschriebenen Beispiel kann einer der 32 Typen der Paketverarbeitungsroutinen ausgewählt werden. Jeder dieser Paketverarbeitungsroutinen enthält eine Verarbeitung mit Bezug auf die Prioritätssteuerung, die durch den 3 Bit-Identifizierer spezifiziert wird.
  • Jetzt ist die Anzahl von Bits, die als die Auswahlinformation verwendet werden soll endlich. Zum Beispiel ist es möglich, klassifizierte Typen in Erweiterung der Speicherkapazität der Paketverarbeitungsroutinen (4011 bis 4014 von 5) zu erzeugen. Es besteht auch eine Beschränkung infolge der Bitbreite eines Kommunikationspfades zwischen der Auswahlerzeugungseinheit 101 und der Paketverarbeitungseinheit 102. Andererseits würden mehrklassifizierte Typen von Paketen implizieren, dass die Auswahlerzeugungseinheit 100 eine detaillierter Pakettypbeurteilung ausführen kann, so dass die Paketverarbeitungsroutine mehr spezialisiert sein kann, und die Verarbeitungsleistung der Paketverarbeitungseinheit 102 verbessert werden kann.
  • Folglicherweise ist zu bevorzugen die Bitlänge der Auswahlinformation, die durch die Auswahlerzeugungseinheit 101 erzeugt werden soll, einerseits solang wie möglich einzustellen, aber es ist andererseits vorzuziehen, die Anzahl der gleichzeitig durch die Paketverarbeitungseinheit 102 handzuhabende Auswahlinformation so klein wie möglich einzustellen. Im Folgenden wird ein Verfahren zum Genügen beider dieser Erfordernisse beschrieben.
  • An der Auswahlerzeugungseinheit 101 wird eine durch eine große Anzahl von Bits gegebene Information als eine virtuelle Auswahlinformation erzeugt. Die Paketverarbeitungsroutinen werden im Zusammenhang mit einer derartigen virtuellen Auswahlinformation bereitgestellt.
  • Wie in 8 beschrieben, wird an einer Schnittstelle, die die Auswahlerzeugungseinheit 101 und die Paketverarbeitungseinheit 102 verbindet, eine Auswahlinformationsumwandlungseinheit 120 zum Umwandeln der virtuellen Auswahlinformation in eine physikalische Auswahlinformation, die durch eine Anzahl von Bits gegeben ist, die tatsächlich an die Paketverarbeitungseinheit 102 mitgeteilt werden kann, bereitgestellt. Die an die Paketverarbeitungseinheit 102 zu sendende Auswahlinformation kann durch Umwandeln der virtuellen Auswahlinformation in die physikalische Auswahlinformation unter Verwenden dieser Auswahlinformationsumwandlungseinheit 120 erzeugt werden.
  • Wenn die Korrespondenz zwischen der virtuellen Auswahlinformation und der physikalischen Auswahlinformation durch die Steuerungsfunktion der Auswahlinformationsumwandlungseinheit 120 bestimmt wird, wird diese Korrespondenz in eine Umwandlungstafel innerhalb der Auswahlinformationsumwandlungseinheit 120 durch eine Umwandlungstafelschreibfunktion reflektiert, und die Paketverarbeitungsroutine, die zu dem klassifizierten Typ der virtuellen Auswahlinformation gehört, wird in dem Programmspeicher der Paketverarbeitungseinheit 102 als die Paketverarbeitungsroutine gespeichert, die zu der physikalischen Auswahlinformation gehört.
  • Die virtuelle Auswahlinformation hat eine längere Bitlänge als die physikalische Auswahlinformation, so dass virtuelle Auswahlinformation besteht, die nicht zu irgendeiner spezifischen physikalischen Auswahlinformation zugeordnet werden kann. Eine physikalische Auswahlinformation, dargestellt als „andere", wird zu dieser virtuellen Auswahlinformation zugewiesen, und eine allgemeine Verarbeitungsroutine zum Verarbeiten, ohne irgendeine Pakettypklassifizierung anzunehmen, wird als die Paketverarbeitungsroutine zugewiesen, zugehörig zu der physikalischen Auswahlinformation, die durch „andere" dargestellt wird, und in dem Programmspeicher gespeichert.
  • Die Verarbeitungsleistung der allgemeinen Verarbeitungsroutine ist geringer als die Verarbeitungsleistung der spezifizierten Verarbeitungsroutine, so dass es vorzuziehen ist, die Frequenz zum Aktivieren der allgemeinen Verarbeitungsroutine auf ein Minimum zu unterdrücken. Aus diesem Grund sollte die Umwandlungstafelsteuerungsfunktion eine derartige Korrespondenz zwischen der virtuellen Auswahlinformation und der physikalischen Auswahlinformation herausfinden, die eine Frequenz zum Auswählen von „anderen" so niedrig wie möglich unter der Umgebung macht, in der diese Paketverarbeitungsvorrichtung platziert ist, und eine derartige Zugehörigkeit in der Umwandlungstafel reflektiert.
  • Als ein effizienterer Weg zum Erzeugen der Umwandlungstafel ist es auch möglich die folgende Konfiguration zu verwenden.
  • In der Umwandlungstafel zum Umwandeln aus der virtuellen Auswahlinformation in die physikalische Auswahlinformation wird ein Zähler zum Zählen der Anzahlen von Malen für jede virtuelle Auswahlinformation bereitgestellt, für die die eingegebene virtuelle Auswahlinformation eingegeben wird.
  • Die Umwandlungstafelsteuerungsfunktion kann die Frequenz eines Auftretens jeder virtuellen Auswahlinformation gemäß dem individuellen Zählwert erhalten und die physikalische Auswahlinformation an die virtuelle Auswahlinformation mit einer höheren Frequenz von Auftritten zuweisen.
  • Genauer gesagt ist es möglich die folgende Prozedur anzupassen.
  • Als ein anfänglicher Zustand wird die physikalisch Auswahlinformation, die „andere" darstellt, zu jeder virtuellen Auswahlinformation zugewiesen. Nach einem Betreiben der Paketverarbeitungsvorrichtung in diesem Zustand in einem derartigen Ausmaß, dass eine signifikante Messung einer Frequenz von Auftritten der virtuellen Auswahlinformation geleitet wird, wird die Korrespondenz zwischen der virtuellen Auswahlinformation und der physikalischen Auswahlinformation bestimmt und in die Umwandlungstafel reflektiert. Selbst danach wird die Messung der Frequenz von Auftritten fortgesetzt, und wenn beurteilt wird, dass eine signifikante Differenz von den früher erhaltenen Korrespondenzen erkannt wird, werden die Umwandlungstafel und die Paketverarbeitungsroutine durch die ersetzt, die die neuen Korrespondenzen reflektieren.
  • Bezugnehmend nun auf 9 bis 13 wird die zweite Ausführungsform einer Paketverarbeitungsvorrichtung und eines Paketverarbeitungsverfahrens gemäß der vorliegenden Erfindung im Detail beschrieben.
  • 9 zeigt eine beispielhafte Konfiguration einer Paketverarbeitungsvorrichtung (oder Nachrichtverarbeitungsvorrichtung) gemäß der zweiten Ausführungsform der vorliegenden Erfindung.
  • Wie in 9 gezeigt, umfasst die Paketverarbeitungsvorrichtung der zweiten Ausführungsform ein Systembus 501, einen Hauptspeicher 502, einen Eingabe-/Ausgabeport 503, eine Speicherzugriffssteuerungseinheit 504, einen Cache 505, eine Pipeline 506, ein Register 507, eine Auswahlerzeugungseinheit 508, eine Paketverarbeitungsanweisungssequenzerzeugungseinheit 509, eine Mikroanweisungssequenztafel 510, und eine Anweisungssequenzschlange 511.
  • Hier stellen die Speicherzugriffssteuerungseinheit 504, der Cache 505, die Pipeline 605 und das Register 507 eine Anweisungsverarbeitungseinheit 520 zum Interpretieren und Ausführen von Anweisungssequenzen dar, die in dem Hauptspeicher 502 enthalten sind und Verarbeitungen anwenden, die durch diese Anweisungssequenzen spezifiziert sind auf Daten.
  • Man bemerke hier, dass der Cache 505 in einen Anweisungscache 505-1 zum Cachen eines Teils von Anweisungssequenzen und einen Datencache 505-2 zum Cachen eines Teils von Daten geteilt ist, auf die die Verarbeitungen angewendet werden sollen.
  • Auch dort können viele mögliche Konfiguration der Pipeline 506 zum Ausführen von Anweisungen sein, aber es wird für eine gut bekannte Pipeline angenommen, fünf Stufen zu haben, Holen 506-1, Dekodieren 506-2, Ausführen 506-3, Speicherzugriff 506-4 und Zurückschreiben 506-5.
  • Der Hauptspeicher 502 zum Speichern von Anweisungssequenzen, die Informationsverarbeitungsprozeduren und zu verarbeitenden Daten anzeigen, der Eingabe-/Ausgabeport 503, der eine Hardware zum Eingeben/Ausgeben von Daten unter Berücksichtigung einer äußeren Eingabe ist, die Auswahlerzeugungseinheit 508, die Paketverarbeitungsanweisungssequenzerzeugungseinheit 509 und die Anweisungsverarbeitungseinheit 520 sind durch einen Systembus 501 verbunden.
  • Die grundlegende Konfiguration und Betrieb dieser zweiten Ausführungsform sind ähnlich zu den der ersten Ausführungsform (die Beschreibung von Variationen sind ähnlich anzuwenden), so dass spezifische Merkmale der Konfiguration von 9 hauptsächlich im Folgenden beschrieben werden.
  • Die Auswahlerzeugungseinheit 508 ist ähnlich zu der der ersten Ausführungsform, die den Kopfteil des von außen eingegebenen Paketes empfängt und die Auswahlinformation erzeugt. Sie kann auch zusätzliche Information (Parameter) erzeugen, wie in der ersten Ausführungsform.
  • Die Paketverarbeitungsanweisungserzeugungseinheit 509 hat eine Funktion zum Empfangen der Auswahlinformation aus der Auswahlerzeugungseinheit 508, Erzeugen einer Anweisungssequenz für den Zweck zum Verarbeiten dieses Paketes gemäß einer unten beschriebenen Prozedur, und sein Weitergeben an die Anweisungssequenzschlange 511. Die zu erzeugende Anweisungssequenz wird hier durch Bezugnehmen auf den Inhalt der Mikroanweisungssequenztafel 510 erzeugt.
  • Das von außen ankommende Paket wird in einem vorgeschriebenen Bereich in dem Hauptspeicher 502 gespeichert über den Eingabe-/Ausgabeport 503 und den Systembus 501.
  • Danach werden vorgeschriebene Abschnitte (eine Mehrzahl von Bitsequenzen), wie ein Kopf der Datenverknüpfungsebene, ein Kopf der Netzwerkebene und ein Kopf der Transportebene zum Beispiel, extrahiert und zu der Auswahlerzeugungseinheit 508 gegeben. Diese Verarbeitung kann durch die Anweisungssequenz ausgeführt werden, die in dem Hauptspeicher 502 gespeichert ist. Danach werden diese vorgeschriebenen Abschnitte als Verarbeitungssteuerungsinformation für Erklärungszwecke bezeichnet. Auch diese Verarbeitungssteuerungsinformation kann Information enthalten, die eine Position anzeigt, an der das Paket in dem Hauptspeicher 502 gespeichert ist.
  • Beim Empfangen der Verarbeitungssteuerungsinformation von dem Eingabe-/Ausgabeport 503 erzeugt die Auswahlerzeugungseinheit 508 die Auswahlinformation aus dieser Information.
  • Beim Empfangen der Auswahlinformation aus der Auswahlerzeugungseinheit 508 erzeugt die Paketverarbeitungsanweisungssequenzerzeugungseinheit 509 die Anweisungssequenz.
  • Hier hält die Mikroanweisungssequenztafel 510 ausführbare Anweisungssequenzen (Sequenzen von Mikroanweisungen) für den Zweck einer Realisierung der Verarbeitungen gemäß den entsprechenden Pakettypen, wie in 10 gezeigt ist. Die Paketverarbeitungsanweisungssequenzerzeugungseinheit 509 liest die Anweisungssequenz gemäß der erzeugten Auswahlinformation aus der Mikroanweisungssequenztafel 510 aus und speichert sie in der Anweisungssequenzschlange 511.
  • Andererseits liest die Anweisungsverarbeitungseinheit 520 die Anweisungssequenz aus dem Hauptspeicher 502 in den Anweisungscache 505-1 gemäß einem Programmzähler (nicht gezeigt), der darin bereitgestellt wird, und führt sequentiell diese Anweisungssequenzen durch Verwenden der Pipeline 506 durch.
  • An diesem Punkt spielt jede Stufe der Pipeline 506 die folgende entsprechende zugewiesene Rolle:
    • * Die Holen 506-1 holt eine Anweisung aus dem Anweisungscache 505-1.
    • * Die Decodieren 506-2 decodiert diese Anweisung und bestimmt eine nachfolgende Pipeline und einen Operationsinhalt des Registers 507.
    • * Die Ausführen 506-3 verwendet eine Verarbeitung auf Daten an, die aus dem Register 507 gemäß einem Befehl der Dekodieren 506-2 gegeben wird.
    • * Die Speicherzugriff 506-4 schreibt entweder Daten, die von der Ausführen 506-3 durch der Datencache 505-2 gegeben werden oder gibt sie an die nächste Stufe.
    • * Die Zurückschreiben 506-5 schreibt Daten zurück, die von der Speicherzugriff 506-4 an das Register 507 gegeben werden.
  • In dem Fall dieser Paketverarbeitungsvorrichtung sind verarbeitende Anweisungssequenzen nicht nur auf dem Hauptspeicher 502, sondern auch in der Anweisungssequenzschlange 511, so dass die Holen 506-1 Anweisungen alternativ von den Anweisungssequenzen auf dem Hauptspeicher 502 und der Anweisungssequenzschlange 511 holt und die geholten Anweisungen an die nachfolgenden Stufen gibt, wann immer eine vorgeschriebene Bedingung gehalten wird, wie die, dass die Anweisungssequenzschlange 511 nicht leer ist. Auf diese Weise wird die durch Paketverarbeitungs-Anweisungs- Sequenzerzeugungseinheit 509 erzeugte Anweisungssequenz ausgeführt, und dadurch wird eine gewünschte Verarbeitung unter Berücksichtigung des eingegebenen Paketes ausgeführt.
  • In diesem Fall eines Ausführens einer Mehrzahl von unabhängigen Anweisungssequenzen (das bedeutet, die Anweisungssequenz von dem Hauptspeicher 502 und die Anweisungssequenz von der Anweisungsschlange 511), die sich auf diese Weise abwechseln, kann das Register exklusiv zu jeder Anweisungssequenz zugewiesen werden. Auf diese Weise kann das Anhalten der Pipeline 506 infolge einer Registergefährdung vermieden werden.
  • In der zweiten Ausführungsform ist die Anweisungssequenz für jede Verarbeitungsroutine zugehörig zu der Auswahlinformation in der Mikroanweisungssequenztafel 510 enthalten, aber diese Mikroanweisungssequenztafel 510 kann durch ein wiederbeschreibbares Speichermedium gebildet werden, so dass die Tafel durch Wiederschreiben entsprechender Verarbeitungsroutinen entsprechend des Bedürfnisses wieder konfiguriert werden. Auf diese Weise wird es möglich die Veränderung in detaillierten Teilen der Protokollspezifizierung flexibel zu handhaben. In diesem Fall ist es auch möglich eine Konfiguration anzupassen, in der die Mikroanweisungssequenztafel 510 mit dem Systembus 501 derart verbunden ist, dass die Mikroanweisungssequenztafel 510 durch Ausführen der Anweisungssequenz auf dem Hauptspeicher 502 wiedergeschrieben werden kann.
  • Auch in der zweiten Ausführungsform kann die Anweisungssequenz für den Zweck der Protokollverarbeitung, die durch die Paketverarbeitungsanweisungssequenzerzeugungseinheit 509 erzeugt wird, und die Anweisungssequenz, die aus dem Hauptspeicher 502 gemäß dem Programmzähler (nicht gezeigt) der Anweisungsverarbeitungseinheit 520 gelesen wird, leicht (Datenspeicherbereiche des) Hauptspeichers 502 teilen. Aus diesem Grund ist es auch möglich leicht eine Überwachungssteuerung der Protokollverarbeitungsoperation zu realisieren, die durch die Anweisungssequenz von der Paketverarbeitungssequenzerzeugungseinheit 509 durch Anwenden eines Betriebssystems ausgeführt wird, dass durch die Anweisungssequenz auf dem Hauptspeicher 502 beispielsweise ausgeführt wird.
  • Nun kann die Auswahlinformation nicht nur Information zum Auswählen der Paketverarbeitungsroutine enthalten, sondern auch Information bezüglich des Paketes selbst. In einem derartigen Fall kann die Paketverarbeitungs-Anweisungs-Sequenzerzeugungseinheit 509 eine effiziente Anweisungssequenz durch Verwenden der Auswahlinformation erzeugen anstelle die Anweisungen einfach von der Anweisungstafel in die Pipeline einzugeben. Eine Konfiguration in einem derartigen Fall wird nun beschrieben.
  • 11 zeigt eine beispielhafte Konfiguration der Paketverarbeitungsvorrichtung für einen derartigen Fall. Im Folgenden werden die Unterschiede von der Konfiguration von 9 hauptsächlich beschrieben.
  • Die unter Berücksichtigung des Paketes auszuführenden Verarbeitungsroutinen schließen viele gemeinsame Operationen ein. Zum Beispiel eine Operation zum Auslesen der Bitsequenz von dem Kopf und Wiederschreieben derer in die Paketkopfverarbeitung, und einen Betrieb zum Hashen und Schlüsselanpassen in einer indirekten Mehrfachspeicher-Adressierung oder einer verknüpften Listentraversal, ein inhaltsadressierbarer Speicherzugriff, wie er unter Berücksichtigung der Routingtafel zugreift, sind grundlegende Operationen, die gemeinsam in der Paketverarbeitung verwendet werden. Diese Operationen können durch Mikroanweisungssequenzen realisiert werden, und eine Makroanweisung, die die Mikroanweisungssequenzen als eine einzelne Anweisung codieren, können definiert werden. Dann werden die Paketverarbeitungsroutinen als Makroanweisungssequenzen in einer Makroanweisungssequenztafel 531 von 11 in einer in 12 gezeigten Form gespeichert, während die Mikroanweisungssequenzen für jede Makroanweisung in einer Mikroanweisungssequenztafel 532 von 11 in einer in 13 gezeigten Form gespeichert werden.
  • Nach Empfangen der Auswahlinformation aus der Auswahlerzeugungseinheit 508 liest die Paketverarbeitungsanweisungssequenzerzeugungseinheit 509 eine Makroanweisungssequenz zugehörig zu der Auswahlinformation aus der Makroanweisungssequenztafel 531 aus, liest die zugehörige Mikroanweisungssequenz für jede Makroanweisung der Makroanweisungssequenz aus der Mikroanweisungssequenztafel 532 aus, und schreibt sie in die Anweisungssequenzschlange 511.
  • Die Paketverarbeitung wird durch Ausführen dieser Mikroanweisungssequenzen in der Pipeline 506 der Anweisungsverarbeitungseinheit 520 ausgeführt.
  • Beim Erzeugen der Mikroanweisungssequenzen an der Paketverarbeitungsanweisungssequenzerzeugungseinheit 509 anstelle von Schreiben der Mikroanweisungen, die aus der Mikroanweisungssequenztafel 532 direkt in die Anweisungssequenzschlange 511 gelesen werden, ist es auch möglich die folgende Umwandlung auf die Mikroanweisungen anzuwenden, bevor sie in die Anweisungssequenzschlange 511 geschrieben werden, so dass kürzere, effizientere Mikroanweisungen an der Anweisungsverarbeitungseinheit 520 ausgeführt werden können. Wenn nämlich die Mikroanweisung einen Operand aufweist, der sich auf die Auswahlinformation bezieht, kann die Auswahlinformation in die Mirkoanweisung als ein unmittelbares eingebettet werden.
  • Wenn zum Beispiel eine Auswahlinformation D an der Adresse A des Datencaches 505 sich befindet, kann die Mikroanweisungssequenz zum Ausführen einer Additionsberechnung unter Berücksichtigung auf andere Daten B durch die folgende Anweisungssequenz gegeben werden.
    load R, mem[A] // lade vom Speicher, von Adresse A in Register R
    add R, R, B // füge R und B in Register R hinzu
    Hier ist es durch Umwandeln der Auswahlinformation, die sich auf eine unmittelbare (immediate) bezieht derart, dass ein Speicherzugriff eine Registerersetzung wird, möglich die folgende Anweisungssequenz zu erzeugen.
    move R, D// bewege Wert D in Register R
    add R, R, B // füge R und B in Register R zu
    Als ein anderes Beispiel, wenn es möglich ist eine Nummer bzw. Anzahl zu spezifizieren, die ein Einbetten der Auswahlinformation als ein Immediate einbettet, anstelle der Registernummer, in einem Registernummernteil der Mikroanweisung, kann die obige Anweisungssequenz wie folgt ausgedrückt werden.
    add R, digest-value, B // füge Auswahlwert und B in Register R zu
    In diesem Fall kann die Paketverarbeitungsanweisungssequenzerzeugungseinheit 509 diese Anweisungssequenz durch Ersetzen des Auswahlinformationsteils dieser Anweisungssequenz mit dem tatsächlichen Wert der Auswahlinformation wie folgt umwandeln.
    add R, D, B // füge D und B in Register R zu
    Man bemerke, dass in beiden, der ersten und zweiten Ausführungsform, der Pakettyp zuerst gemäß des Kopfteils in dem eingegebenen Paket klassifiziert ist und dann die Anweisungssequenz für die Paketverarbeitung gemäß dem klassifizierten Typ erzeugt wird, dass die Anzahl von Bedingungsästen, die in der Anweisungssequenz der Protokollverarbeitung enthalten sind, vermindert werden können. In dem Stand der Technik sind viele Bedingungsverästelungen in der Anweisungssequenz der Protokollverarbeitung involviert, da die notwendige Verarbeitung ausgeführt wird, während der Pakettyp durch sequentielles Lesen von Feldern des Headerteils klassifiziert wird, so dass viele Pipelinestörungen aufgetreten sind, und dieses das Haupthindernis zum Realisieren der schnellen Protokollverarbeitung im Stand der Technik war. Diesbezüglich wird es in der vorliegenden Erfindung möglich die Protokollverarbeitung durch die Anweisungssequenz mit der verminderten Anzahl von Bedingungsverästelungen auszuführen derart, dass die Pipelinestörungen auf ein Minimum unterdrückt werden können, und es möglich wird die Protokollverarbeitung zu realisieren, die den vollen Vorteil der Pipelineleistung erhält.
  • Wie gemäß der vorliegenden Erfindung beschrieben, wird eine Auswahlinformation, die in der Lage ist wenigstens einen Teil der Verarbeitung zu spezifizieren, der auf das eingegebene Paket angewendet wird, von dem eingegebenen Paket erzeugt, und das eingegebene Paket wird durch Verwenden der Anweisungssequenz verarbeitet, die auf das eingegebene Paket angewendet wird, das gemäß dieser erzeugten Auswahlinformation erhalten wird, so dass es möglich wird die schnelle Paketverarbeitung zu realisieren, und das es möglich wird, die Protokollveränderung flexibel zu behandeln. Zusätzlich wird es durch geeignetes Verändern der Auswahlinformation gemäß der Netzwerkumgebung wie des Pakettyps möglich, die Protokollverarbeitung effizient zu realisieren.
  • Es muss bemerkt werden, dass, neben diesem bereits oben erwähnten, viele Modifizierungen und Variationen der obigen Ausführungsformen gemacht werden können, ohne von den neuen und vorteilhaften Merkmalen der vorliegenden Erfindung abzurücken. Demgemäß bezwecken alle derartigen Modifizierungen und Variationen innerhalb des Schutzbereiches der beigefügten Ansprüche eingeschlossen zu sein.

Claims (17)

  1. Eine Paketverarbeitungsvorrichtung umfassend: eine Auswahlinformationserzeugungseinheit (101), die konfiguriert ist zum Extrahieren einer Mehrzahl von vorgeschriebenen Bitsequenzen aus einem eingegebenen Paket, und zum Erzeugen einer Auswahlinformation, die in der Lage ist zum Spezifizieren wenigstens eines Teils einer Verarbeitung, die auf das eingegebene Paket angewendet werden soll, gemäß Werten der Mehrzahl von vorgeschrieben Bitsequenzen; und eine Paketverarbeitungseinheit (102), die konfiguriert ist zum Verarbeiten des eingegebenen Paketes unter Verwenden einer Anweisungssequenz, die auf das eingegebene Paket angewendet werden soll, erhalten gemäß der Auswahlinformation, die durch die Auswahlinformationserzeugungseinheit (101) erzeugt wird; wobei die Auswahlinformationserzeugungseinheit (101) die Auswahlinformation bezüglich des nächsten eingegebenen Paketes erzeugt, während die Paketverarbeitungseinheit (102) eine Verarbeitung für ein Paket ausführt; und die Auswahlinformationserzeugungseinheit (101) die Auswahlinformation erzeugt, die ein Pakettyp durch Berücksichtigen eines Kopfteils des eingegebenen Paketes derart anzeigt, dass der Pakettyp zuerst gemäß dem Kopfteil des eingegeben Paketes klassifiziert wird und dann die Anweisungssequenz gemäß einem klassifizierten Typ erzeugt wird; dadurch gekennzeichnet, dass die Auswahlinformationserzeugungseinheit (101) Mittel umfasst, die angepasst sind zum im Voraus Speichern einer Mehrzahl von Auswahlinformation zugehörig zu einer Mehrzahl von Pakettypen gemäß einer Mischungsrate von Pakettypen in einem Netzwerk, mit dem die Paketverarbeitungsvorrichtung verbunden ist, und Mittel zum Erzeugen einer speziellen Auswahlinformation, die andere anzeigt, wenn die Auswahlinformation zugehörig zu einem Pakettyp des eingegebenen Paketes nicht im Voraus gespeichert ist; und die Paketverarbeitungseinheit (102) Mittel umfasst, die angepasst sind zum Verarbeiten des eingegebenen Paketes, ohne einen Pakettyp im Voraus spezifiziert haben zu müssen, während der Pakettyp des eingegebenen Paketes geprüft wird, wenn die spezielle Auswahlinformation, die andere anzeigt, von der Auswahlinformationserzeugungseinheit (101) gegeben ist.
  2. Paketverarbeitungsvorrichtung gemäß Anspruch 1, wobei die Paketverarbeitungseinheit (102) einen Cache aufweist und Daten in dem Cache gemäß der Auswahlinformation, die durch die Auswahlinformationserzeugungseinheit (101) erzeugt wird, vor-holt.
  3. Paketverarbeitungsvorrichtung gemäß Anspruch 1, wobei die Auswahlinformationserzeugungseinheit (101) Bitmuster für die Mehrzahl von vorgeschriebenen Bitsequenzen aufweist, die zu jeder Auswahlinformation gehören, und die Auswahlinformation durch Vergleichen von Werten der Mehrzahl von vorgeschriebenen Bitsequenzen erzeugt, die aus dem eingegebenen Paket mit jedem Bitmuster extrahiert werden.
  4. Paketverarbeitungsvorrichtung gemäß Anspruch 1, wobei die Auswahlinformationserzeugungseinheit (101) die Auswahlinformation erzeugt durch Anwenden logischer Berechnungen, zum Erhalten einer vorgeschriebenen Auswahlinformation als eine Ausgabe aus einer Eingabe eines Bitmusters der Mehrzahl von vorgeschriebenen Bitsequenzen, die zu der vorgeschriebenen Auswahlinformation gehören, auf Werte der Mehrzahl von vorgeschriebenen Bitsequenzen, die aus dem eingegebenen Paket extrahiert werden.
  5. Paketverarbeitungsvorrichtung gemäß Anspruch 1, wobei die Paketverarbeitungsvorrichtung einschließt: einen Programmspeicher (401) zum Speichern einer Mehrzahl von Verarbeitungsroutinen zugehörig zu einer Mehrzahl von Auswahlinformation; und einen Prozessor (402) zum Aktivieren und Ausführen einer der Mehrzahl von Verarbeitungsroutinen, die in dem Programmspeicher (401) gespeichert sind, der durch die Auswahlinformation spezifiziert ist, die durch die Auswahlinformationserzeugungseinheit (101) erzeugt wird, unter Verwenden der Auswahlinformation, die durch die Auswahlinformationserzeugungseinheit (101) als ein Unterbrechungssignal erzeugt wird.
  6. Paketverarbeitungsvorrichtung gemäß Anspruch 1, wobei die Auswahlinformationserzeugungseinheit (101) auch Parameter für eine Verarbeitung des eingegebenen Paketes aus dem eingegebenen Paket extrahiert und die Parameter zusammen mit der Auswahlinformation an die Paketverarbeitungseinheit (102) gibt; und die Paketverarbeitungseinheit (102) das eingegebene Paket durch Verwenden der Parameter und der gemäß der Auswahlinformation erhaltenen Anweisungssequenz verarbeitet.
  7. Paketverarbeitungsvorrichtung gemäß Anspruch 1, wobei die Paketverarbeitungseinheit (102) einschließt: eine Anweisungsverarbeitungseinheit (520), die konfiguriert ist zum Ausführen einer Pipelineverarbeitung von Mikroanweisungssequenzen; eine Anweisungssequenztafel (510), die konfiguriert ist zum Speichern einer Mehrzahl von Mikroanweisungssequenzen zugehörig zu einer Mehrzahl von Auswahlinformation; und eine Einheit (509), die konfiguriert ist zum Geben einer Mikroanweisungssequenz, die aus der Anweisungssequenztafel (510) gemäß der Auswahlinformation ausgewählt ist, die durch die Auswahlinformationserzeugungseinheit (101) erzeugt wird, zu der Anweisungsverarbeitungseinheit (520).
  8. Paketverarbeitungsvorrichtung gemäß Anspruch 7, wobei die Anweisungsverarbeitungseinheit (520) in der Lage ist eine Anweisungssequenz auszuführen, die aus der Anweisungssequenztafel (501) und einer Anweisungssequenz, die in einen Hauptspeicher (502) geschrieben ist, ausgewählt wird, zum abwechselnden Ausführen einer anderen Verarbeitung als eine Verarbeitung unter Berücksichtigung des eingegebenen Paketes.
  9. Paketverarbeitungsvorrichtung gemäß Anspruch 1, wobei die Paketverarbeitungseinheit (102) einschließt: eine Anweisungsverarbeitungseinheit (520), die konfiguriert ist zum Ausführen einer Pipelineverarbeitung von Mikroanweisungssequenzen; eine Anweisungssequenztafel (531), die konfiguriert ist zum Speichern einer Mehrzahl von Makroanweisungssequenzen zugehörig zu einer Mehrzahl von Auswahlinformation; eine Umwandlungseinheit (509, 532), die konfiguriert ist zum Umwandeln einer Makroanweisungssequenz, die aus der Anweisungssequenztafel (531) gemäß der Auswahlinformation ausgewählt wird, die durch Auswahlinformationserzeugungseinheit (101) erzeugt wird, in Mikroanweisungen; und eine Einheit (509), die konfiguriert ist zum Geben der Mikroanweisung, die durch Umwandlungseinheit (509, 532) erhalten wird, an die Anweisungsverarbeitungseinheit (520).
  10. Paketverarbeitungsvorrichtung gemäß Anspruch 9, wobei die Anweisungsverarbeitungseinheit (520) in der Lage ist eine Anweisungssequenz auszuführen, die ausgewählt wird aus der Anweisungssequenztafel (531) und einer Anweisungssequenz, die in einen Hauptspeicher (502) geschrieben ist, zum Ausführen einer abwechselnden anderen Verarbeitung als eine Verarbeitung unter Berücksichtigung des eingegebenen Paketes.
  11. Paketverarbeitungsvorrichtung gemäß Anspruch 1, wobei die Auswahlinformationserzeugungseinheit (101) auch Parameter für eine Verarbeitung des eingegebenen Paketes aus dem eingegebenen Paket extrahiert und die Parameter zusammen mit der Auswahlinformation an die Paketverarbeitungseinheit (102) gibt; und die Paketverarbeitungseinheit (102) einschließt: eine Anweisungsverarbeitungseinheit (520), die konfiguriert ist zum Ausführen einer Pipelineverarbeitung von Mikroanweisungssequenzen; eine Anweisungssequenztafel (531), die konfiguriert ist zum Speichern einer Mehrzahl von Makroanweisungssequenzen zugehörig zu einer Mehrzahl von Auswahlinformation; eine Umwandlungseinheit (509, 532), die konfiguriert ist zum Umwandeln einer Makroanweisungssequenz, die aus der Anweisungssequenztafel (531) gemäß der Auswahlinformation ausgewählt wird, die durch die Auswahlinformationserzeugungseinheit (101) erzeugt wird, in Mikroanweisungen, während die Parameter berechnet werden; und eine Einheit (509), die konfiguriert ist zum Geben der Mikroanweisungen, die durch Umwandlungseinheit (509, 532) erhalten wird, an die Anweisungsverarbeitungseinheit (520).
  12. Paketverarbeitungsvorrichtung gemäß Anspruch 11, wobei die Anweisungsverarbeitungseinheit (520) in der Lage ist zum Ausführen einer Anweisungssequenz, die ausgewählt wird aus der Anweisungssequenztafel (531) und einer Anweisungssequenz, die in einen Hauptspeicher (502) geschrieben ist, zum Ausführen einer abwechselnden anderen Verarbeitung als eine Verarbeitung unter Berücksichtigung des eingegebenen Paketes.
  13. Paketverarbeitungsvorrichtung gemäß Anspruch 1, wobei die Paketverarbeitungseinheit (102) eine Verarbeitung zum Ausgeben des eingegebenen Paketes an ein Netzwerk ausführt, mit dem die Paketverarbeitungsvorrichtung verbunden ist, derart, dass das eingegebene Paket an eine gewünschte Bestimmung übertragen wird.
  14. Paketverarbeitungsvorrichtung gemäß Anspruch 1, wobei die Auswahlinformationserzeugungseinheit (101) die Auswahlinformation, die zusätzliche Information enthält, die von der Bestimmungsinformation des eingegebenen Paketes erzeugt wird, an die Paketverarbeitungseinheit(102) gibt; und die Paketverarbeitungseinheit (102) eine aus einer Mehrzahl von Routinginformationstafelsuchverfahren gemäß der zusätzlichen Information auswählt und einen Ausgabepfad des eingegebenen Paketes bestimmt durch Suchen durch eine Routinginformationstafel unter Verwenden eines ausgewählten Routingformationstafelsuchverfahrens.
  15. Ein Paketverarbeitungsverfahren mit den Schritten zum: (a) Extrahieren einer Mehrzahl von vorgeschriebenen Bitsequenzen aus einem eingegebenen Paket, und Erzeugen einer Auswahlinformation, die in der Lage ist wenigstens einen Teil einer Verarbeitung zu spezifizieren, die auf das eingegebene Paket angewendet werden soll, gemäß Werten der Mehrzahl von vorgeschriebenen Bitsequenzen; und (b) Verarbeiten des eingegebenen Paketes unter Verwenden einer Anweisungssequenz, die auf das eingegebene Paket angewendet werden soll, erhalten gemäß der Auswahlinformation, die durch den Schritt (a) erzeugt wird; wobei der Schritt (a) die Auswahlinformation unter Berücksichtigung des nächsten eingegebenen Paketes erzeugt, während der Schritt (b) eine Verarbeitung für ein Paket ausführt; und der Schritt (a) die Auswahlinformation erzeugt, die einen Pakettyp durch Bezugnahme auf einen Kopfteil des eingegebenen Paketes derart anzeigt, dass der Pakettyp zuerst gemäß dem Kopfteil des eingegebenen Paketes klassifiziert wird, und die Anweisungssequenz gemäß einem klassifizierten Typ erzeugt wird; dadurch gekennzeichnet, dass der Schritt (a) im Voraus in einer Mehrzahl von Auswahlinformation zugehörig zu einer Mehrzahl von Pakettypen gemäß einer Mischungsrate der Pakettypen in einem Netzwerk gespeichert wird, mit dem die Paketverarbeitungsvorrichtung verbunden ist, und eine spezielle Auswahlinformation erzeugt, die andere anzeigt, wenn eine Auswahlinformation zugehörig zu einem Pakettyp des eingegebenen Paketes nicht im Voraus gespeichert ist; und der Schritt (b) das eingegebene Paket verarbeitet, ohne einen Pakettyp im Voraus spezifiziert haben zu müssen, während der Pakettyp des eingegebenen Paketes geprüft wird, wenn die spezielle andere anzeigende Auswahlinformation vom Schritt (a) gegeben wird.
  16. Paketverarbeitungsverfahren gemäß Anspruch 15, wobei der Schritt (b) die Anweisungssequenz durch Auswählen einer Mehrzahl von Anweisungssequenzen erhält, die im Voraus gemäß der in Schritt (a) erzeugten Auswahlinformation bereitgestellt wird.
  17. Paketverarbeitungsverfahren gemäß Anspruch 15, wobei der Schritt (b) die Anweisungssequenz durch Erzeugen der Anweisungssequenz gemäß der durch den Schritt (a) erzeugten Auswahlinformation erhält.
DE2000629710 1999-09-20 2000-09-12 Schnelle und adaptive Paketverarbeitungsvorrichtung und Verfahren unter Verwendung von Eingangspaketenszusammenfassungsinformation Expired - Fee Related DE60029710T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP26521099A JP3643507B2 (ja) 1999-09-20 1999-09-20 パケット処理装置及びパケット処理方法
JP26521099 1999-09-20

Publications (2)

Publication Number Publication Date
DE60029710D1 DE60029710D1 (de) 2006-09-14
DE60029710T2 true DE60029710T2 (de) 2006-11-30

Family

ID=17414066

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2000629710 Expired - Fee Related DE60029710T2 (de) 1999-09-20 2000-09-12 Schnelle und adaptive Paketverarbeitungsvorrichtung und Verfahren unter Verwendung von Eingangspaketenszusammenfassungsinformation

Country Status (7)

Country Link
US (3) US6804240B1 (de)
EP (1) EP1085723B1 (de)
JP (1) JP3643507B2 (de)
KR (1) KR100370937B1 (de)
CN (1) CN1249963C (de)
DE (1) DE60029710T2 (de)
TW (1) TW502516B (de)

Families Citing this family (109)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7075926B2 (en) * 2000-05-24 2006-07-11 Alcatel Internetworking, Inc. (Pe) Programmable packet processor with flow resolution logic
US7747757B2 (en) * 2000-11-17 2010-06-29 Computer Associates Think, Inc. Distributed network query
FR2818066B1 (fr) 2000-12-12 2003-10-10 Eads Airbus Sa Procede et dispositif de transmission deterministe de donnees asynchrones mises en paquet
US8762581B2 (en) * 2000-12-22 2014-06-24 Avaya Inc. Multi-thread packet processor
US7397798B2 (en) * 2001-05-21 2008-07-08 Xelerated Ab Method and apparatus for processing blocks in a pipeline
US20020188732A1 (en) * 2001-06-06 2002-12-12 Buckman Charles R. System and method for allocating bandwidth across a network
US7095715B2 (en) * 2001-07-02 2006-08-22 3Com Corporation System and method for processing network packet flows
US20030033519A1 (en) * 2001-08-13 2003-02-13 Tippingpoint Technologies,Inc. System and method for programming network nodes
US7190695B2 (en) * 2001-09-28 2007-03-13 Lucent Technologies Inc. Flexible application of mapping algorithms within a packet distributor
US7239639B2 (en) 2001-12-27 2007-07-03 3Com Corporation System and method for dynamically constructing packet classification rules
US7421515B2 (en) * 2002-01-17 2008-09-02 Hewlett-Packard Development Company, L.P. Method and system for communications network
US20030185220A1 (en) * 2002-03-27 2003-10-02 Moshe Valenci Dynamically loading parsing capabilities
US7590855B2 (en) * 2002-04-30 2009-09-15 Tippingpoint Technologies, Inc. Steganographically authenticated packet traffic
US7336660B2 (en) * 2002-05-31 2008-02-26 Cisco Technology, Inc. Method and apparatus for processing packets based on information extracted from the packets and context indications such as but not limited to input interface characteristics
US7304999B2 (en) 2002-08-24 2007-12-04 Cisco Technology Inc. Methods and apparatus for processing packets including distributing packets across multiple packet processing engines and gathering the processed packets from the processing engines
US7404015B2 (en) 2002-08-24 2008-07-22 Cisco Technology, Inc. Methods and apparatus for processing packets including accessing one or more resources shared among processing engines
CN100499564C (zh) * 2002-08-24 2009-06-10 思科技术公司 分组处理引擎
JP3886432B2 (ja) * 2002-09-17 2007-02-28 沖電気工業株式会社 ルーティング処理装置及びパケット種類識別装置
US7286483B2 (en) * 2002-11-14 2007-10-23 Intel Corporation Electronic data transfer based on selective storage of incoming packets
US7310337B2 (en) * 2002-12-31 2007-12-18 Intel Corporation Packet header alignment
US7983239B1 (en) 2003-01-07 2011-07-19 Raytheon Bbn Technologies Corp. Systems and methods for constructing a virtual model of a multi-hop, multi-access network
US6981490B2 (en) * 2003-03-13 2006-01-03 Denso Corporation Fuel feed apparatus having sub tank and jet pump
US7747731B2 (en) 2003-03-27 2010-06-29 Nokia Corporation Minimizing message processing latency in a communication network
US20040246902A1 (en) * 2003-06-02 2004-12-09 Weinstein Joseph J. Systems and methods for synchronizing multple copies of a database using datablase digest
US7881229B2 (en) * 2003-08-08 2011-02-01 Raytheon Bbn Technologies Corp. Systems and methods for forming an adjacency graph for exchanging network routing data
US7606927B2 (en) 2003-08-27 2009-10-20 Bbn Technologies Corp Systems and methods for forwarding data units in a communications network
US7668083B1 (en) 2003-10-28 2010-02-23 Bbn Technologies Corp. Systems and methods for forwarding data in a communications network
US7562363B1 (en) 2003-11-25 2009-07-14 Cisco Technology, Inc. Gang scheduling among one or more components or systems
US7903555B2 (en) * 2003-12-17 2011-03-08 Intel Corporation Packet tracing
US7480308B1 (en) 2004-03-29 2009-01-20 Cisco Technology, Inc. Distributing packets and packets fragments possibly received out of sequence into an expandable set of queues of particular use in packet resequencing and reassembly
US7385984B2 (en) * 2004-03-30 2008-06-10 Extreme Networks, Inc. Packet processing system architecture and method
US8161270B1 (en) 2004-03-30 2012-04-17 Extreme Networks, Inc. Packet data modification processor
US7551617B2 (en) 2005-02-08 2009-06-23 Cisco Technology, Inc. Multi-threaded packet processing architecture with global packet memory, packet recirculation, and coprocessor
US7561589B2 (en) 2005-02-23 2009-07-14 Cisco Technology, Inc Virtual address storage which may be of particular use in generating fragmented packets
US7606250B2 (en) 2005-04-05 2009-10-20 Cisco Technology, Inc. Assigning resources to items such as processing contexts for processing packets
US7965708B2 (en) 2005-06-07 2011-06-21 Cisco Technology, Inc. Method and apparatus for using meta-packets in a packet processing system
US8068495B2 (en) * 2005-09-27 2011-11-29 Intel Corporation Mechanisms for data rate improvement in a wireless network
US20070076685A1 (en) * 2005-09-30 2007-04-05 Pak-Lung Seto Programmable routing for frame-packet based frame processing
US7739426B1 (en) 2005-10-31 2010-06-15 Cisco Technology, Inc. Descriptor transfer logic
FI119166B (fi) * 2005-11-30 2008-08-15 Tellabs Oy Menetelmä ja laitteisto palvelunlaatuluokasta riippuvan reitityspäätöksen muodostamiseksi
US8014299B2 (en) * 2006-05-22 2011-09-06 Alcatel Lucent Method and apparatus for detecting forwarding loops
US8289965B2 (en) 2006-10-19 2012-10-16 Embarq Holdings Company, Llc System and method for establishing a communications session with an end-user based on the state of a network connection
US7765294B2 (en) 2006-06-30 2010-07-27 Embarq Holdings Company, Llc System and method for managing subscriber usage of a communications network
US8194643B2 (en) 2006-10-19 2012-06-05 Embarq Holdings Company, Llc System and method for monitoring the connection of an end-user to a remote network
US7948909B2 (en) 2006-06-30 2011-05-24 Embarq Holdings Company, Llc System and method for resetting counters counting network performance information at network communications devices on a packet network
US9094257B2 (en) 2006-06-30 2015-07-28 Centurylink Intellectual Property Llc System and method for selecting a content delivery network
US8000318B2 (en) 2006-06-30 2011-08-16 Embarq Holdings Company, Llc System and method for call routing based on transmission performance of a packet network
US8717911B2 (en) 2006-06-30 2014-05-06 Centurylink Intellectual Property Llc System and method for collecting network performance information
US8488447B2 (en) 2006-06-30 2013-07-16 Centurylink Intellectual Property Llc System and method for adjusting code speed in a transmission path during call set-up due to reduced transmission performance
US8531954B2 (en) 2006-08-22 2013-09-10 Centurylink Intellectual Property Llc System and method for handling reservation requests with a connection admission control engine
US8619600B2 (en) 2006-08-22 2013-12-31 Centurylink Intellectual Property Llc System and method for establishing calls over a call path having best path metrics
US8199653B2 (en) 2006-08-22 2012-06-12 Embarq Holdings Company, Llc System and method for communicating network performance information over a packet network
US8224255B2 (en) 2006-08-22 2012-07-17 Embarq Holdings Company, Llc System and method for managing radio frequency windows
US8223655B2 (en) 2006-08-22 2012-07-17 Embarq Holdings Company, Llc System and method for provisioning resources of a packet network based on collected network performance information
US8307065B2 (en) 2006-08-22 2012-11-06 Centurylink Intellectual Property Llc System and method for remotely controlling network operators
US7940735B2 (en) 2006-08-22 2011-05-10 Embarq Holdings Company, Llc System and method for selecting an access point
US8549405B2 (en) 2006-08-22 2013-10-01 Centurylink Intellectual Property Llc System and method for displaying a graphical representation of a network to identify nodes and node segments on the network that are not operating normally
US8274905B2 (en) 2006-08-22 2012-09-25 Embarq Holdings Company, Llc System and method for displaying a graph representative of network performance over a time period
US8125897B2 (en) 2006-08-22 2012-02-28 Embarq Holdings Company Lp System and method for monitoring and optimizing network performance with user datagram protocol network performance information packets
US8189468B2 (en) 2006-10-25 2012-05-29 Embarq Holdings, Company, LLC System and method for regulating messages between networks
US7808918B2 (en) 2006-08-22 2010-10-05 Embarq Holdings Company, Llc System and method for dynamically shaping network traffic
US7684332B2 (en) 2006-08-22 2010-03-23 Embarq Holdings Company, Llc System and method for adjusting the window size of a TCP packet through network elements
US8102770B2 (en) 2006-08-22 2012-01-24 Embarq Holdings Company, LP System and method for monitoring and optimizing network performance with vector performance tables and engines
US7843831B2 (en) 2006-08-22 2010-11-30 Embarq Holdings Company Llc System and method for routing data on a packet network
US8743703B2 (en) 2006-08-22 2014-06-03 Centurylink Intellectual Property Llc System and method for tracking application resource usage
US8040811B2 (en) 2006-08-22 2011-10-18 Embarq Holdings Company, Llc System and method for collecting and managing network performance information
US8194555B2 (en) 2006-08-22 2012-06-05 Embarq Holdings Company, Llc System and method for using distributed network performance information tables to manage network communications
US8576722B2 (en) 2006-08-22 2013-11-05 Centurylink Intellectual Property Llc System and method for modifying connectivity fault management packets
US8107366B2 (en) 2006-08-22 2012-01-31 Embarq Holdings Company, LP System and method for using centralized network performance tables to manage network communications
US8238253B2 (en) 2006-08-22 2012-08-07 Embarq Holdings Company, Llc System and method for monitoring interlayer devices and optimizing network performance
US8407765B2 (en) 2006-08-22 2013-03-26 Centurylink Intellectual Property Llc System and method for restricting access to network performance information tables
US8130793B2 (en) 2006-08-22 2012-03-06 Embarq Holdings Company, Llc System and method for enabling reciprocal billing for different types of communications over a packet network
US8144586B2 (en) 2006-08-22 2012-03-27 Embarq Holdings Company, Llc System and method for controlling network bandwidth with a connection admission control engine
US8098579B2 (en) 2006-08-22 2012-01-17 Embarq Holdings Company, LP System and method for adjusting the window size of a TCP packet through remote network elements
US8228791B2 (en) 2006-08-22 2012-07-24 Embarq Holdings Company, Llc System and method for routing communications between packet networks based on intercarrier agreements
US9479341B2 (en) 2006-08-22 2016-10-25 Centurylink Intellectual Property Llc System and method for initiating diagnostics on a packet network node
US8144587B2 (en) 2006-08-22 2012-03-27 Embarq Holdings Company, Llc System and method for load balancing network resources using a connection admission control engine
US8015294B2 (en) 2006-08-22 2011-09-06 Embarq Holdings Company, LP Pin-hole firewall for communicating data packets on a packet network
US8537695B2 (en) 2006-08-22 2013-09-17 Centurylink Intellectual Property Llc System and method for establishing a call being received by a trunk on a packet network
US8750158B2 (en) 2006-08-22 2014-06-10 Centurylink Intellectual Property Llc System and method for differentiated billing
WO2008024387A2 (en) 2006-08-22 2008-02-28 Embarq Holdings Company Llc System and method for synchronizing counters on an asynchronous packet communications network
US8064391B2 (en) 2006-08-22 2011-11-22 Embarq Holdings Company, Llc System and method for monitoring and optimizing network performance to a wireless device
US8228896B2 (en) * 2006-09-22 2012-07-24 Avaya Inc. Method and apparatus for verification of at least a portion of a datagram's header information
US8111692B2 (en) 2007-05-31 2012-02-07 Embarq Holdings Company Llc System and method for modifying network traffic
US7852486B2 (en) * 2008-02-07 2010-12-14 Board Of Regents, The University Of Texas System Wavelength and intensity monitoring of optical cavity
JP2009230476A (ja) * 2008-03-24 2009-10-08 Toshiba Corp メッセージを処理する装置、方法およびプログラム
US8175085B2 (en) * 2008-03-25 2012-05-08 Fusion-Io, Inc. Bus scaling device
US8068425B2 (en) 2008-04-09 2011-11-29 Embarq Holdings Company, Llc System and method for using network performance information to determine improved measures of path states
US7911982B1 (en) * 2008-05-01 2011-03-22 Juniper Networks, Inc. Configuring networks including spanning trees
TW201031141A (en) * 2009-02-04 2010-08-16 Univ Nat Taiwan Packets inspection device and method
US8139504B2 (en) * 2009-04-07 2012-03-20 Raytheon Bbn Technologies Corp. System, device, and method for unifying differently-routed networks using virtual topology representations
US8665879B2 (en) * 2009-07-14 2014-03-04 Broadcom Corporation Flow based path selection randomization using parallel hash functions
US8743877B2 (en) * 2009-12-21 2014-06-03 Steven L. Pope Header processing engine
US8605732B2 (en) 2011-02-15 2013-12-10 Extreme Networks, Inc. Method of providing virtual router functionality
US9201796B2 (en) 2012-09-27 2015-12-01 Apple Inc. System cache with speculative read engine
US10305959B2 (en) 2014-12-11 2019-05-28 At&T Intellectual Property I, L.P. Self-organizing network communication
US10015048B2 (en) 2014-12-27 2018-07-03 Intel Corporation Programmable protocol parser for NIC classification and queue assignments
US10044583B2 (en) * 2015-08-21 2018-08-07 Barefoot Networks, Inc. Fast detection and identification of lost packets
US9826071B2 (en) 2015-08-26 2017-11-21 Barefoot Networks, Inc. Configuring a switch for extracting packet header fields
US9825862B2 (en) 2015-08-26 2017-11-21 Barefoot Networks, Inc. Packet header field extraction
KR102343999B1 (ko) 2015-08-27 2021-12-28 한국단자공업 주식회사 커넥터 및 그 조립 방법
US9912774B2 (en) 2015-12-22 2018-03-06 Intel Corporation Accelerated network packet processing
KR101701086B1 (ko) 2016-04-26 2017-01-31 엘에스산전 주식회사 사용자 정의 프로토콜을 적용한 하드웨어 프로토콜 스택과 하드웨어 프로토콜 스택의 사용자 정의 프로토콜 적용 방법
EP3459217B1 (de) * 2016-05-16 2020-07-08 Telefonaktiebolaget LM Ericsson (PUBL) Transport von udp-paketen über eine mptcp-verbindung
US11245572B1 (en) 2017-01-31 2022-02-08 Barefoot Networks, Inc. Messaging between remote controller and forwarding element
US10757028B1 (en) 2017-04-23 2020-08-25 Barefoot Networks, Inc. Configurable forwarding element deparser
US10826840B1 (en) 2017-07-23 2020-11-03 Barefoot Networks, Inc. Multiple copies of stateful tables
US10594630B1 (en) 2017-09-28 2020-03-17 Barefoot Networks, Inc. Expansion of packet data within processing pipeline
US11831743B1 (en) * 2019-01-08 2023-11-28 Xilinx, Inc. Streaming architecture for packet parsing

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4748618A (en) * 1986-05-21 1988-05-31 Bell Communications Research, Inc. Telecommunications interface
US5067104A (en) 1987-05-01 1991-11-19 At&T Bell Laboratories Programmable protocol engine having context free and context dependent processes
US5335325A (en) * 1987-12-22 1994-08-02 Kendall Square Research Corporation High-speed packet switching apparatus and method
US5249292A (en) * 1989-03-31 1993-09-28 Chiappa J Noel Data packet switch using a primary processing unit to designate one of a plurality of data stream control circuits to selectively handle the header processing of incoming packets in one data packet stream
US5544329A (en) * 1992-07-31 1996-08-06 Grumman Aerospace Corporation Interface system with memory map locations for holding flags indicating a priority for executing instructions held within messages received by the interface
US5394394A (en) * 1993-06-24 1995-02-28 Bolt Beranek And Newman Inc. Message header classifier
US5473607A (en) * 1993-08-09 1995-12-05 Grand Junction Networks, Inc. Packet filtering for data networks
GB9326476D0 (en) * 1993-12-24 1994-02-23 Newbridge Networks Corp Network
JPH07182157A (ja) * 1994-10-24 1995-07-21 Mitsubishi Electric Corp ディジタル信号処理プロセッサ
US5598410A (en) * 1994-12-29 1997-01-28 Storage Technology Corporation Method and apparatus for accelerated packet processing
US5566170A (en) * 1994-12-29 1996-10-15 Storage Technology Corporation Method and apparatus for accelerated packet forwarding
US5608662A (en) 1995-01-12 1997-03-04 Television Computer, Inc. Packet filter engine
US5825774A (en) * 1995-07-12 1998-10-20 3Com Corporation Packet characterization using code vectors
US5748905A (en) * 1996-08-30 1998-05-05 Fujitsu Network Communications, Inc. Frame classification using classification keys
US5774739A (en) * 1996-09-20 1998-06-30 Bay Networks, Inc. Using a lockup processor to search a table of keys whose entries contain instruction pointer values of code to execute if key is found
JP3372455B2 (ja) * 1997-07-03 2003-02-04 富士通株式会社 パケット中継制御方法,パケット中継装置およびプログラム記憶媒体
US6141348A (en) * 1997-08-25 2000-10-31 Cisco Technology, Inc. Constant-time programmable field extraction system and method
US6307860B1 (en) * 1998-04-03 2001-10-23 Mmc Networks, Inc. Systems and methods for data transformation and transfer in networks
US6347087B1 (en) * 1998-10-05 2002-02-12 Packet Engines Incorporated Content-based forwarding/filtering in a network switching device
US6463059B1 (en) * 1998-12-04 2002-10-08 Koninklijke Philips Electronics N.V. Direct memory access execution engine with indirect addressing of circular queues in addition to direct memory addressing
FR2796168B1 (fr) 1999-07-08 2001-09-28 Automa Tech Sa Installation d'exposition a la lumiere d'une carte de circuit imprime double face

Also Published As

Publication number Publication date
EP1085723B1 (de) 2006-08-02
TW502516B (en) 2002-09-11
KR100370937B1 (ko) 2003-02-05
EP1085723A3 (de) 2003-05-14
KR20010050528A (ko) 2001-06-15
US7027442B2 (en) 2006-04-11
JP3643507B2 (ja) 2005-04-27
US20050086353A1 (en) 2005-04-21
DE60029710D1 (de) 2006-09-14
CN1249963C (zh) 2006-04-05
US20050030949A1 (en) 2005-02-10
JP2001094596A (ja) 2001-04-06
US6804240B1 (en) 2004-10-12
CN1291032A (zh) 2001-04-11
EP1085723A2 (de) 2001-03-21

Similar Documents

Publication Publication Date Title
DE60029710T2 (de) Schnelle und adaptive Paketverarbeitungsvorrichtung und Verfahren unter Verwendung von Eingangspaketenszusammenfassungsinformation
DE69826930T2 (de) System und Verfahren zur wirksamen Fernplatte Ein-/Ausgabe
DE60305035T2 (de) Anpassen des längsten präfix unter verwendung von baumartigen "bitmap" datenstrukturen
DE60300333T2 (de) Verfahren und Vorrichtung für ein flexibles Rahmenverarbeitungs und Klassifikationssystem
DE10297269B4 (de) Kennzeichnung von Paketen mit einem Nachschlageschlüssel zur leichteren Verwendung eines gemeinsamen Paketweiterleitungs-Cache
DE60311462T2 (de) Verfahren und Vorrichtung zur Protokollverarbeitung in Computersystemen unter Verwendung der Übersetzung von Speicheradressen
DE60203380T2 (de) Verfahren und vorrichtung zur mehrfachsendung
DE60204687T2 (de) Speicherkopierbefehl mit Angabe von Quelle und Ziel, der in der Speichersteuerung ausgeführt wird
DE69628631T2 (de) Dateneingangs/-ausgangsvorrichtung durch Referenzierung zwischen zentralen Verarbeitungseinheiten und Ein-/Ausgabevorrichtungen
DE60015186T2 (de) Verfahren und system für rahmen- und protokollklassifikation
DE60120790T2 (de) Methode und gerät zum durchsuchen von tabellen in hoher geschwindigkeit
DE60010907T2 (de) Sram-steuerungvorrichtung für parallele prozessorarchitektur mit adressen- und befehlswarteschlange und arbiter
DE19855806A1 (de) Vorrichtung und Verfahren zum Durchführen von Unterprogrammaufruf- und Rücksprungoperationen
DE60316774T2 (de) Verkettung von mehrfadenprozessorkernen zur bearbeitung von datenpaketen
DE102014000372A1 (de) Verbesserte steuerung des prefetch-traffics
DE102008048627A1 (de) Zuteilen von Platz in dedizierten Cache-Wegen
DE112011103561T5 (de) Netzwerkprozessor und Verfahren zum Beschleunigen der Datenpaket-Syntaxanalyse
DE19807872A1 (de) Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl.
DE10051024A1 (de) Methode zum Einrichten optimaler intermediärer Cachingpunkte durch Gruppierung von Programmelementen in einem Softwaresystem
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
DE2944757C2 (de) Programmierbare Prozeßsteuerung
DE112019005382T5 (de) Auslegung und durchführung einer zeichenmustererkennung in einer schaltung auf datenebene
DE112016001193T5 (de) Protokollunabhängiger, programmierbarer Schalter für durch Software definierte Datenzentrumsnetzwerke
DE69634464T2 (de) Cachespeicher
DE102021203777A1 (de) Flexibles lenken

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee