DE60015186T2 - Verfahren und system für rahmen- und protokollklassifikation - Google Patents

Verfahren und system für rahmen- und protokollklassifikation Download PDF

Info

Publication number
DE60015186T2
DE60015186T2 DE60015186T DE60015186T DE60015186T2 DE 60015186 T2 DE60015186 T2 DE 60015186T2 DE 60015186 T DE60015186 T DE 60015186T DE 60015186 T DE60015186 T DE 60015186T DE 60015186 T2 DE60015186 T2 DE 60015186T2
Authority
DE
Germany
Prior art keywords
unit
processing
frame
data
input information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60015186T
Other languages
English (en)
Other versions
DE60015186D1 (de
Inventor
Mitchell Brian BASS
Louis Jean CALVIGNAC
Taylor Gordon DAVIS
Matteo Anthony GALLO
Marco Heddes
Kenneth Steven JENKINS
Boyd Ross LEAVENS
Steven Michael SIEGEL
Jean Fabrice VERPLANKEN
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/479,027 external-priority patent/US6775284B1/en
Priority claimed from US09/479,028 external-priority patent/US6633920B1/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE60015186D1 publication Critical patent/DE60015186D1/de
Application granted granted Critical
Publication of DE60015186T2 publication Critical patent/DE60015186T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • 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
    • 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

  • Der Erfindung zugrunde liegender allgemeiner Stand der Technik
  • Bereich der Erfindung
  • Die vorliegende Erfindung betrifft eine Kommunikationsnetzwerk-Vorrichtung, wie sie beispielsweise verwendet wird, um Datenverarbeitungssysteme oder Rechner unterschiedlicher Art und mit unterschiedlichem Leistungsvermögen zu verbinden, sowie Komponenten und Verfahren zur Datenverarbeitung in einer solchen Vorrichtung. Insbesondere betrifft die vorliegende Erfindung ein verbessertes System und ein verbessertes Verfahren zur Verwaltung des Datenflusses in einer Verarbeitungseinheit, die an ein Datenübertragungsnetzwerk angeschlossen ist, einschließlich eines Verfahrens und Systems zur Verwaltung einer Vielzahl von Eingangsdateneinheiten (im Übrigen als "Pakete" oder "Rahmen" bekannt), die von einer Vielzahl von unabhängigen Prozessoren gleichzeitig verarbeitet werden können und wobei diese Eingangsdateneinheiten eines von vielen verschiedenen Protokollen haben können.
  • Stand der Technik
  • Die vorliegende Ausführungsform betrifft die folgenden Schriftstücke, die alle auf die Rechtsnachfolgerin der vorliegenden Erfindung übertragen wurden:
    die Patentanmeldung EP-A-1 226 509 von Brian Bass u.a. mit dem Titel "Network Processor Processing Complex and Methods", die hier manchmal als Netzwerkverarbeitungseinheit-Patentschrift oder NPU-Patentschrift bezeichnet wird;
    die US-Patentschrift 5 724 348 mit dem Titel "Efficient Hardware/Software Interface for a Data Switch", veröffentlicht am 3. März 1998, die manchmal als die Schnittstellen-Patentschrift bezeichnet wird;
    die US-Patentschrift A-6 222 380 mit dem Titel "High Speed Parallel/Serial Link for Data Communications", die manchmal als die Verbindungspatentschrift bezeichnet wird;
    verschiedene weitere Patentschriften und Patentanmeldungen, die auf die IBM für ihre Mehrprotokoll-Vermittlungsdienste, welche manchmal als "MSS" (multiprotocol switching services) bezeichnet werden, übertragen wurden und die manchmal als die MSS-Patentschriften bezeichnet werden und von denen einige auf Cedric Alexander als einen der Erfinder zurückgehen.
  • Die nachfolgende Beschreibung der vorliegenden Ausführungsform setzt voraus, dass der Leser über grundlegende Kenntnisse der Datenübertragung in Netzwerken sowie der Router und Vermittlungsstellen (switches) verfügt, die bei solchen Netzwerkübertragungen von Nutzen sind. Insbesondere setzt diese Beschreibung voraus, dass der Leser mit dem Netzwerkarchitekturmodell der International Standards Organization ("ISO") für vertraut ist, das Netzwerkoperationen in Schichten einteilt. Eine typische auf dem ISO-Modell beruhende Architektur erstreckt sich von einer Schicht 1 (Layer 1, die manchmal auch als "L1" bezeichnet wird), die den physischen Pfad oder das physische Medium darstellt, über das Signale durch die Schicht 2 (oder "L2"), die Schicht 3 (oder "L3") und so weiter bis hinauf zur Schicht 7 (oder "L7") geleitet werden, bei der es sich um die Schicht der Anwendungsprogrammierung handelt, die sich auf einem an das Netzwerk angeschlossenen Rechnersystem befindet. In diesem gesamten Schriftstück wird mit den Bezeichnungen L1, L2, L3 Bezug auf die entsprechende Schicht der Netzwerkarchitektur genommen. Die vorliegende Beschreibung setzt auch ein grundlegendes Verständnis der als Pakete oder Rahmen bekannten Bitfolgen voraus, die bei der Netzwerkübertragung verwendet werden.
  • Überlegungen hinsichtlich der Bandbreite (oder der Datenmenge, die ein System in einer Zeiteinheit abwickeln kann) gewinnen aus der heutigen Sicht der Netzwerkoperationen immer mehr an Bedeutung. In den letzten Jahren hat der Netzwerkverkehr enorm zugenommen, wozu größtenteils das explosionsartige Wachstum des Internet (eines öffentlichen Netzwerks aus lose miteinander verbundenen Rechnern, das manchmal als World Wide Web bezeichnet wird) und in geringerem Maße auch die zunehmende Beliebtheit privater Datenübertragungsnetzwerke oder Intranets beigetragen hat. Im Internet und den Intranets werden große Datenmengen zwischen fernen Standorten übertragen, um dem stetig wachsenden Bedarf nach dem Fernzugriff auf Daten und neu aufkommenden Anwendungen gerecht zu werden. Das Internet hat einer großen Zahl von Benutzern in geografisch verstreuten Gebieten eine gewaltige Menge an fernen Daten erschlossen und eine Vielzahl neuer Anwendungen wie zum Beispiel den elektronischen Handel (eCommerce) möglich gemacht, was zu der höheren und auch weiter zunehmenden Belastung von Netzwerken geführt hat. Andere Anwendungen wie zum Beispiel elektronische Post (eMail), Dateiübertragungen und der Datenbankzugriff stellen eine weitere Belastung für die Netzwerke dar, von denen manche aufgrund des hohen Verkehrsaufkommens bereits stark beansprucht sind.
  • Der Verkehr über Netzwerke wird auch immer unterschiedlicher. Früher wurden bestimmte Netzwerke hauptsächlich für eine bestimmte Art des Übertragungsverkehrs genutzt wie zum Beispiel Sprache in einem Telefonnetzwerk und digitale Daten, die über ein Datenübertragungsnetzwerk versendet wurden. Zusätzlich zu den Sprachsignalen übertrug ein Telefonnetzwerk natürlich auch eine begrenzte Menge von "Daten" (wie zum Beispiel die Rufnummer des Anrufers und die angerufene Nummer zu Vermittlungs- und Abrechnungszwecken), aber zu einem bestimmten Zeitpunkt wurden bestimmte Netzwerke hauptsächlich zur Übertragung von weitgehend homogenen Paketen genutzt.
  • Derzeit laufen der Sprach- und der Datenverkehr jedoch immer mehr in denselben Netzwerken zusammen. Mit der zunehmenden Erweiterung des Internet und den technologischen Verbesserungen im Bereich der Zuverlässigkeit und der Sicherheit bietet es die Möglichkeit, viele verschiedene Arten von Daten, unter anderem auch gemischte Datenarten wie zum Beispiel Sprache und Daten, weitgehend gleichzeitig zu übertragen.
  • Derzeit werden Daten kostenlos über das Internet (über das Internet Protocol oder IP) übertragen, und der Sprachverkehr folgt gewöhnlich dem kostengünstigsten Pfad. Technologien wie "voice over IP" (VoIP) und "voice over asynchronous transfer mode oder ATM" (VoATM) oder "voice over frame relay" (VoFR) sind kostengünstige Alternativen für die Übertragung von Sprachverkehr in der heutigen Umgebung. Da diese Dienste abwandern, wird sich die Industrie mit Themen wie die sich verändernde Kostenstruktur und kritischen Fragen wie dem Verhältnis zwischen den Kosten für die Dienste und der Qualität der Dienste bei der Übertragung von Daten zwischen Prozessoren befassen.
  • Zu Aspekten der Dienstequalität gehören die Kapazität oder die Bandbreite, die Antwortzeit (wie viel Zeit nimmt die Verarbeitung eines Rahmens in Anspruch?) und die Flexibilität bei der Verarbeitung (spricht sie auf verschiedene Protokolle und Rahmenkonfigurationen wie zum Beispiel verschiedene Kapselungsverfahren oder Verfahren zur Gestaltung des Kopfbereichs von Rahmen an?). Diejenigen Benutzer, die eine Ressource verwenden, werden sowohl die Dienstequalität als auch die Kosten für den Dienst mit den in Abhängigkeit von der gegebenen Situation verbundenen Kompromissen sorgfältig prüfen.
  • Manche Systeme nach dem Stand der Technik, die Datenpakete weiterleiten, verlangen, dass die Pakete ein einziges Protokoll oder Format oder ein Protokoll oder ein Format einer begrenzten Anzahl derjenigen Protokolle oder Formate, die erlaubt sind, haben. Ein solches System hat aufgrund der verhältnismäßig einfachen Struktur – wenn Pakete von nur einem einzigen Protokolltyp (oder einer begrenzten Anzahl von Protokollen) in dem System angetroffen werden – Vorteile in Form von einer höheren Geschwindigkeit und einem schnelleren Ansprechverhalten, da das System auf das/die zulässige(n) Protokoll(e) gezielt abgestimmt werden kann. Als das ganze Datenübertragungssystem von einer einzigen Instanz gesteuert wurde, war es für die steuernde Instanz einfach, Benutzern ein einziges standardmäßiges Übertragungsprotokoll aufzuzwingen (entweder befolgten Benutzer das/die zulässigen Protokoll(e), oder sie konnten das Netzwerk nicht nutzen, da das Netzwerk so programmiert war, dass es nur dem/den festgelegten Protokoll(en) Rechnung trug und mit abweichenden Protokollen, nicht einmal mit scheinbar geringfügigen Abweichungen bei den Protokollen, nicht umgehen konnte).
  • Selbst Rahmen von einem Kommunikations-"Standard" wie dem Ethernet können jedoch mittels mehrerer Protokolle formatiert und mit Hilfe von verschiedenen Kapselungsverfahren in eine Nachricht gekapselt werden. Diese verschiedenen Protokolle und Kapselungsverfahren stellen eine unterschiedliche Datenmenge, üblicherweise zu Beginn eines Rahmens und vor anderen Schlüsselinformationen wie zum Beispiel dem Beginn der L3-Nachricht, bereit. Somit können sich Schlüsselinformationen von einem Ethernet-Rahmen in Abhängigkeit von dem Ethernet-L3-Protokoll oder der Form des Ethernet und dem Kapselungsverfahren, sofern es eines gibt, an verschiedenen Stellen in dem Rahmen befinden. Ein System, das die Verarbeitung der L3-Nachricht ermöglicht, muss sie zuerst finden, was in einem Mehrprotokollsystem eine Herausforderung darstellen kann. So weicht beispielsweise das Ethernet DIX Version. 2 vom Ethernet 802.3 ab, und "IPX over Ethernet" weicht vom "IPX over Ethernet 802.3" ab, das selbst drei verschiedene Formate (Novell Proprietary, LLC und SNAP) hat. Außerdem kann jede Version von IPX ein virtuelles LAN (oder VLAN), das den so genannten IEEE-802.1q-Standard verwendet, der sich ebenfalls dahingehend auswirkt, dass er das Format des Rahmens und folglich die Position der L3-Nachricht ändert, unterstützen oder auch nicht.
  • Bei denjenigen Systemen nach dem Stand der Technik, bei denen Rahmen in einer Vielzahl von Protokollen unterstützt wurden, musste manchmal ein beträchtlicher zusätzlicher Aufwand (wie zum Beispiel die Programmierung des Rechners, die zuweilen mehr als einhundert Zeilen Code mit Vergleichen und Verzweigungsbefehlen beinhaltete) betrieben werden, um das Protokoll zu erkennen und einen Rahmen aus einem Protokoll in ein anderes zu übersetzen oder um unnötige Daten (wie zum Beispiel Kapselungsdaten) aus einem Rahmen zu entfernen. Eine solche Verarbeitung von mehreren Protokollen war zeitaufwändig, und die Erkennung des jeweiligen Protokolls nahm außerdem unterschiedlich viel Zeit in Anspruch. Wenn solche Systeme unterschiedlich viel Zeit in Anspruch nahmen, um das Protokoll zu erkennen und die notwendige Verarbeitung zu ermöglichen, musste das System so konfiguriert werden, dass es der maximal benötigten Verarbeitungsdauer Rechnung trug (um den ungünstigsten Fall abwickeln zu können), was die Verarbeitung aller Rahmen auf die Verarbeitungsgeschwindigkeit im ungünstigsten Fall verlangsamte oder es möglich machte, dass manche Rahmen in der für die Kategorisierung zulässigen Zeit nicht verarbeitet wurden.
  • Die meisten Prozessoren beginnen mit der Verarbeitung an der Stelle, an der ein Befehlssatz gemeinhin beginnt (an derselben Stelle bei allen Daten), und setzen Markierungen, die der Prozessor gezielt liest, wenn er feststellen muss, wohin er schalten und welche Befehle er ausführen muss. Folglich werden bei der Ausführung durch viele Prozessoren mehrere Tests durchlaufen, um festzustellen, über welche Art von Daten er verfügt und wo er mit der umfangreichen Verarbeitung beginnen soll, Tests, die mehrere Zyklen in Anspruch nehmen und einen hohen Verarbeitungsaufwand mit sich bringen könnten.
  • Mehrprozessorsysteme zur Verarbeitung von Daten, die sich an eine strenge FIFO-Verarbeitung der Daten halten, sind nach dem Stand der Technik bekannt. Während dies bei einer routinemäßigen Verarbeitung gut funktioniert, kommt es bei einem solches System zu einer Überlastung, und es funktioniert nicht mehr, wenn es bei der Verarbeitung einer einzelnen Eingabe zu Verzögerungen kommt. Die Verzögerung bei der Verarbeitung von einer Eingabe wirkt sich dahingehend aus, dass die Verarbeitung von anderen Eingaben angehalten wird.
  • Andere Systeme nach dem Stand der Technik sind bekannt, die Eingangsnachrichteneinheiten während der Verarbeitung überwachen. Die Einschränkung und der Nachteil dieser Systeme bestehen darin, dass eine beträchtliche Verarbeitungsleistung aufgewendet werden muss, um zu überwachen, wo sich jede einzelne Dateneinheit in dem System befindet, und manche Systeme nehmen keine zusätzlichen Eingangsdateneinheiten zum Beispiel von neuen Datenflüssen oder von intern erzeugen Nachrichten auf.
  • Die veröffentlichte US-Patentschrift 5 748 905 legt einen Rahmenprozessor offen, der Rahmen mit unterschiedlichen Formaten erkennen und kategorisieren kann und die Ausführung von verschiedenen Brücken-(Bridging-) und Weiterleitungsprotokollen zulässt. Die Zustandsmaschine einer Suchmaschine führt den Rahmenerkennungsprozess aus. Sie greift auf eine Suchtabelle zu, um eine Vektorkennung zuzuordnen, damit diese als Zeiger auf einen bestimmten Microcode zur anschließenden Verarbeitung des Rahmens in den jeweiligen Rahmenprozessormaschinen verwendet werden kann. Obgleich der Rahmenprozessor den jeweiligen Prozessormaschinen Rahmen zuweist, wäre es vorteilhaft, wenn Eingangsrahmen aus einem einzelnen Datenfluss einem Prozessor einer Vielzahl von unabhängigen Prozessoren zugewiesen werden könnten und die Ausgabe dann in derselben Reihenfolge, in der die Eingangsrahmen empfangen wurden, wieder zusammengefügt werden könnte.
  • Die veröffentlichte US-Patentschrift 5 357 632 betrifft die dynamische Zuweisung von Tasks in einem Mehrprozessorsystem, das verteilte Steuerungsprozessoren sowie verteilte Steuerungsprozessoren und verteilte mathematische Prozessoren einsetzt.
  • Folglich hatten Systeme nach dem Stand der Technik zur Verarbeitung von Datenpaketen unerwünschte Nachteile und Einschränkungen, die sich entweder auf die Einsatzflexibilität des Systems oder die Geschwindigkeit, mit der es betrieben werden konnte, oder aber auf beides auswirkten. Weitere Nachteile und Einschränkungen der Systeme nach dem Stand der Technik werden für den Fachmann angesichts der folgenden Beschreibung der vorliegenden Erfindung offensichtlich werden.
  • Zusammenfassung der Erfindung
  • Die vorliegende Ausführungsform der Erfindung überwindet die Nachteile und Einschränkungen der Systeme nach dem Stand der Technik, indem sie eine einfache, aber dennoch wirksame Weise zur Abwicklung des Datenflusses von Rahmen oder Paketen über ein Netzwerk bereitstellt, die mittels eines Protokolls einer Vielzahl von unterschiedlichen zulässigen Nachrichtenprotokollen erzeugt wurden und die ein virtuelles lokales Netzwerk-(oder VLAN-)System nutzen können oder auch nicht. Indem jedes Paket oder jeder Rahmen schnell und wirksam ausgewertet wird, können die Art des Rahmens und seine Schlüsseleigenschaften zur zukünftigen Bezugnahme auf diesen Rahmen und zu dessen Verarbeitung beispielsweise in einem Netzwerkprozessor des Typs, der in der vorstehend in Bezug genommenen NPU-Patentschrift beschrieben ist, ermittelt und gespeichert werden.
  • Es ist ein Vorteil der vorliegenden Ausführungsform, dass sie bei der Abwicklung von Paketen mit unterschiedlichen Protokollen schnell und leistungsfähig ist und eine schnellere und einfachere Verarbeitung der Pakete ermöglicht, wodurch das ganze System Rahmen sehr schnell verarbeiten kann.
  • Die vorliegende Ausführungsform ermöglicht einem Router oder einer Vermittlungsstelle (switch), aufeinanderfolgende Pakete oder Rahmen in unterschiedlichen Formaten zu verarbeiten, ohne dass diese im Voraus wissen, in welchem Format der betreffende Rahmen oder das betreffende Paket erzeugt wurden. Diese Ausführungsform beinhaltet die Feststellung des Kapselungsformats der Schicht 2 (L2) der Nachricht oder des Pakets und die anschließende Anwendung von gespeicherten Regeln, um die L2-Kapselung, das L3-Protokoll und das Vorhandensein eines virtuellen lokalen Netzwerks (VLAN) festzustellen. Infolge einer solchen Feststellung ist der Prozessor an einer Startbefehlsadresse ausführungsbereit; das heißt, der Prozessor wird mit der Startadresse des Befehls, die auf der Erkennung des Rahmens beruht, konditioniert. Der Prozessor hat somit eine Startbefehlsadresse, einen Zeiger auf den Anfang des L3-Kopfbereichs in dem Datenteil des Rahmens sowie Markierungen (flags), die das Protokoll, das Vorhandensein eines VLAN und das Kapselungsformat anzeigen.
  • Die vorliegende Ausführungsform hat den Vorteil, dass sie während der anfänglichen Verarbeitung eines Pakets Schlüsseldaten über dieses Paket anlegt und speichert, und diese gespeicherten Daten über das Paket oder den Rahmen können dann später bei der Verarbeitung vorteilhaft genutzt werden, da sie eine schnellere und wirksamere Verarbeitung des Pakets in seinen späteren Phasen, beispielsweise durch aus Netzwerkverarbeitungseinheiten bestehenden Komplexen, die in der NPU-Patentschrift beschrieben sind, zulassen.
  • Die vorliegende Ausführungsform hat den Vorteil, dass Eingangspakete oder Eingangsrahmen von einem einzelnen Datenfluss einem Prozessor einer Vielzahl von unabhängigen Prozessoren zur Verarbeitung zugewiesen werden können und die Ausgangspakete (die verarbeiteten Pakete) oder die Ausgangsrahmen (die verarbeiteten Rahmen) anschließend in derselben Reihenfolge, in der die Eingangspakete oder Eingangsrahmen empfangen wurden, wieder zusammengefügt werden können.
  • Die vorliegende Ausführungsform hat den Vorteil, dass mehrere Datenflüsse verarbeitet werden können, ohne einander zu beeinflussen und ohne dass ein Datenfluss die anderen Datenflüsse blockiert. Das heißt, wenn die Verarbeitung von einem Datenfluss angehalten wird, während auf die Fertigstellung der Verarbeitung von einem Teil dieses Datenflusses gewartet wird, kann die Verarbeitung der anderen Datenflüsse fortgesetzt werden.
  • Die vorliegende Ausführungsform ermöglicht auch, dass die vorgegebene Verarbeitungsreihenfolge des Systems von Paketen und Rahmen außer Kraft gesetzt wird ("flushing") oder fertiggestellte Rahmen sofort zugeteilt werden – sofern gewünscht, ungeachtet der Reihenfolge -, wobei die normale Vorgehensweise, bei der jeder Datenfluss in der Reihenfolge abgewickelt wird, in der er empfangen wurde, überschrieben wird.
  • Die vorliegende Ausführungsform hat auch den Vorteil, dass sie Pufferspeicher und Speichereinheiten wirksam nutzt und schnell arbeitet, so dass die Verarbeitungsgeschwindigkeit durch den zusätzlichen Aufwand, der durch die Verwaltung der Datenflüsse entsteht, nicht herabgesetzt wird.
  • Es ist vorgesehen, die vorliegende Ausführungsform auf demselben Halbleitersubstrat wie eine Gruppe von Netzwerkprozessoren und ihre zugehörigen Speicherkomponenten zu realisieren, was eine schnelle Datenübertragung zwischen den Komponenten ermöglicht.
  • Die vorliegende Ausführungsform kann auch in Hardware statt in Software realisiert werden, und die erforderlichen Formattests können ungeachtet des Formats und der Anzahl der Vergleiche, die durchgeführt werden müssen, bevor das Format oder die Kapselungsverfahren ermittelt werden können, in einem gleichbleibenden Zeitraum abgeschlossen werden. Bei der gezeigten Ausgestaltung kann die Klassifizierung eines Rahmens innerhalb von zwei Taktzyklen durchgeführt werden, wobei die notwendigen Anzeiger so gesetzt werden, dass sie anzeigen, welche Art von Rahmen vorhanden ist (zum Beispiel welches Kapselungsverfahren und welches Protokoll der Schicht 3 verwendet wurden) und ob ein virtuelles LAN (oder VLAN) unterstützt wird, sowie Schlüsseldaten über den Rahmen angeben. Während derselben beiden Zyklen kann ein Rahmen von einer Zuteilungseinheit (Dispatcher) an eine inaktive Netzwerkverarbeitungseinheit (wie sie in der in Bezug genommenen NPU-Patentschrift beschrieben ist) weitergeleitet werden. Infolge der Verarbeitung des Rahmens, um das Protokoll und das Kapselungsverfahren zu ermitteln, kann eine Startadresse für den Prozessor festgestellt und an diesen weitergereicht werden, so dass der Prozessor mit seiner Arbeit an dem Rahmen beginnen kann, und zwar mit der vorab in ihn geladenen Anfangsadresse (einem Zeiger auf den entsprechenden Befehlsspeicher) und anderer für seine Verarbeitung wichtigen Daten. Dieses Vorabladen des Prozessors mit einer Startadresse zur Verarbeitung wird manchmal als Vorab-Konditionieren des Prozessors bezeichnet und ermöglicht dem Prozessor eine leistungsorientierte Verarbeitung – er braucht nicht mehrere Test- und Sprungbefehle entsprechend den Ergebnissen des Tests zu durchlaufen, sondern beginnt stattdessen an der Anfangsadresse für das jeweilige Format der übergebenen Nachricht.
  • Das System der vorliegenden Ausführungsform hat auch den Vorteil, dass die Klassifizierung und die Vorverarbeitung eines Rahmens parallel zur Verteilung dieses Rahmens an einen Netzwerkverarbeitungskomplex stattfinden können. Diese Parallelverarbeitung lässt eine zügigere Abwicklung der Rahmen und ein schnelleres Arbeiten des Systems zu.
  • Durch die Verwendung der vorliegenden Ausführungsform können mehrere Verarbeitungseinheiten jeweils unabhängig voneinander sein, aber dennoch denselben Datenfluss verarbeiten, ohne dabei zuzulassen, dass Teile des Datenflusses in eine andere und unerwünschte Reihenfolge geraten. Die Ausgabe der verarbeiteten Pakete oder Rahmen für einen bestimmten Datenfluss erfolgt in derselben Reihenfolge, in der das System Eingangspakete oder Eingangsrahmen von diesem Datenfluss empfangen hat, außer wenn die Reihenfolge von einem Löschbefehl ("flush") überschrieben wurde.
  • Schließlich ermöglicht die vorliegende Erfindung, dass das System neue Datenflüsse einfügt und Pakete oder Rahmen erzeugt, ohne die Verarbeitung, bei der die Reihenfolge der vom Netzwerk empfangenen Datenflüssen beibehalten wird, zu beeinflussen.
  • Eine Weiterentwicklung der vorliegenden Ausführungsform ermöglicht nicht nur die Vorab-Konditionierung des Prozessors (indem die Adresse des ersten Befehls gespeichert wird), sondern auch die Speicherung von weiteren Adressen von Befehlen zur späteren Ausführung. Auf diese Weise hat der Prozessor die Adresse des ersten Befehls und auch die Adresse für Befehle an späteren Verzweigungspunkten (oder Aufspaltungspunkten), wodurch unnötige Testläufe (if-Bedingung, dann springe zum Befehl Nr. 1, andernfalls zum Befehl Nr.2) bei der Ausführung des Codes vermieden werden. Dadurch kann der Code rascher ausgeführt werden.
  • Weitere Aufgaben und Vorteile der vorliegenden Erfindung werden sich für den Fachmann in dem betreffenden Bereich der Technik aus der folgenden Beschreibung der bevorzugten Ausführungsform in Verbindung mit den beigefügten Zeichnungen und den beigefügten Ansprüchen ergeben.
  • Kurze Beschreibung der Zeichnungen
  • Nachdem somit einige der Einschränkungen und Nachteile des Stands der Technik und einige Aufgaben und Vorteile der vorliegenden Erfindung dargelegt wurden, werden sich weitere Aufgaben und Vorteile für den Fachmann in dem betreffenden Bereich der Technik aus der folgenden Beschreibung der Zeichnungen ergeben, die die vorliegende Erfindung in Form eines verbesserten Weiterleitungssystems und -verfahrens veranschaulichen und in denen:
  • 1 ein Blockschaltbild einer Schnittstelleneinheit ist, die einen darin eingebetteten Prozessorkomplex hat, der in der NPU-Patentschrift beschrieben und bei der Umsetzung der vorliegenden Erfindung in die Praxis von Nutzen ist;
  • 2 ein Blockschaltbild eines eingebetteten Prozessorkomplexes des in 1 gezeigten Typs mit einem Hardware-Klassifizierungsassistenten ist, der bei der vorliegenden Erfindung nützlich ist;
  • die 3A bis 3T Darstellungen sind, die die verschiedenen Ethernet-Protokollformate zeigen, die bei dem Hardware-Klassifizierer der vorliegenden Erfindung verwendet werden;
  • 4 ein Flussdiagramm des Hardware-Klassifizierungsassistenten der vorliegenden Erfindung ist, das die von dem Klassifizierer verwendete Logik zeigt, um Teile eines Rahmens in der vorliegenden Erfindung zu verarbeiten;
  • 5 eine Funktionsübersicht ist, die den Klassifizierer der vorliegenden Erfindung zeigt;
  • 6 eine alternative Ausführungsform des Hardware-Klassifizierers der vorliegenden Erfindung mit gezeigten optionalen Erweiterungsmöglichkeiten ist, der es ermöglicht, dass zusätzlich zu der Adresse des ersten Befehls mehrere Adressen in einem Stapelspeicher gespeichert werden können;
  • 7 die Warteschlangen schematisch darstellt, die jedem Rahmen zugeordnet sind;
  • 8 die Abarbeitungseinheit (completion unit) der vorliegenden Erfindung mit zwei Kennsatzspeichern (label stores) für jeden der n Prozessoren ausführlich zeigt;
  • 9 das Format eines Kennsatzspeichers schematisch darstellt, der dazu dient, den Datenfluss, der von jedem der N Prozessoren abgewickelt wird, zu überwachen;
  • 10 ein Flussdiagramm ist, das die Logik veranschaulicht, die von der Abarbeitungseinheit beim Empfang und bei der Verarbeitung eines Hinweises darauf, dass ein neuer Rahmen einer der Verarbeitungseinheiten zugeteilt wurde, ausgeführt wird;
  • 11 ein Flussdiagramm ist, das den logischen Prozess zeigt, den die Abarbeitungseinheit bei der Verarbeitung eines Berichts, dass die Verarbeitung eines Rahmens abgeschlossen ist, durchführt; und
  • 12 eine weitere Ansicht der Abarbeitungseinheit von 8 ist, die Daten enthält, um die Funktionsweise der Abarbeitungseinheit in ihrer bevorzugten Ausführungsform zu veranschaulichen.
  • Ausführliche Beschreibung der bevorzugten Ausführungsform
  • In der folgenden Beschreibung der bevorzugten Ausführungsform werden die besten Realisierungsmöglichkeiten der Erfindung, die den Erfindern derzeit bekannt sind, mit einigen Besonderheiten ausführlicher beschrieben. Diese Beschreibung ist jedoch als umfassende, allgemeine Lehre der Konzepte der vorliegenden Erfindung in einer ganz bestimmten Ausführungsform und nicht als Einschränkung der vorliegenden Erfindung auf die in dieser Ausführungsform gezeigte Erfindung zu verstehen, insbesondere, da der Fachmann in dem betreffenden Bereich der Technik versteht, dass viele Ab- und Veränderungen an dem bestimmten Aufbau und der bestimmten Betriebsweise, die mit Bezug auf die beigefügten Figuren gezeigt und beschrieben werden, möglich sind.
  • 1 ist ein funktionales Blockschaltbild eines Verarbeitungssystems, das zum Anschluss an ein Datenübertragungsnetzwerk geeignet ist, um Daten in Form von Paketen oder Dateneinheiten (die manchmal auch als Rahmen bezeichnet werden, wobei diese Begriffe im Rahmen des vorliegenden Schriftstücks austauschbar verwendet werden) von dem Netzwerk zu empfangen, sie zu verarbeiten und wieder an das Netzwerk zu senden. Wie in 1 gezeigt ist, enthält das System zur Datenverarbeitung eine Vielzahl von Teilbaugruppen, die, wie in der NPU-Patentschrift beschrieben ist, vorteilhaft auf einem einzigen Substrat integriert sind. Die Integration der gesamten Baugruppe auf einem einzigen Substrat ermöglicht es, die verschiedenen Komponenten des Systems dicht gepackt unterzubringen, wodurch die Zeit für die Kommunikation zwischen Komponenten verringert und folglich die Geschwindigkeit, mit der das System arbeiten kann, gesteigert wird. Indem ein einziges Teilsubstrat für die diversen Prozessoren, die Unterstützungslogik und den Speicher verwendet wird, kann auch das Entstehen von Verbindungsfehlern verringert und die Unempfindlichkeit gegen Stör- oder andere Streusignale erhöht werden, die die Datenübertragung in dem Netzwerk beeinträchtigen könnten.
  • Die auf dem Substrat 10 aufgebrachten Teilbaugruppen werden in einer Netzwerk-zum-Chip-("Upside"-)Konfiguration und einer Chip-zum-Netzwerk-("Downside"-)Konfiguration angeordnet, wobei sich die „Eintritts"-Konfiguration ("Upside"-Configuration, die manchmal auch als "Ingress" bezeichnet wird) auf diejenigen Komponenten bezieht, die Daten betreffen, welche von einem Datenübertragungsnetzwerk hin zum Chip (bis zum oder in den Chip) übertragen werden, und "Austritts"-Konfiguration („Downside" Configuration, die manchmal auch als "Egress" bezeichnet) bezieht sich auf diejenigen Komponenten, deren Funktion in der vom Chip abgehenden Übertragung von Daten hin zum Datenübertragungsnetzwerk besteht (weg vom Chip oder hin zum und in das Netzwerk). Die Datenflüsse folgen den jeweiligen Anordnungen der Netzwerk-zum-Chip- und der Chip-zum-Netzwerk-Konfigurationen; somit gibt es im System von 1 einen Datenfluss vom Netzwerk in Richtung Chip (upside) und einen Datenfluss vom Chip in Richtung Netzwerk (downside). Zu den Elementen der Netzwerk-zum-Chip- oder Ingress-Konfiguration gehören eine Enqueue-Dequeue-Scheduling-UP-(EDS-UP-)Logik 16 zur Steuerung des Einreihens und der Entnahme von Einträgen in die beziehungsweise aus der Warteschlange, mehrere gemultiplexte MAC-UPs (PMM-UP) 14, ein Vermittlungsstellen-Datenübertragungsprogramm für die Netzwerk-zum-Chip-Übertragung (Switch-Data-Mover-UP (SDM-UP)) 18, eine Systemschnittstelle (SIF) 20, eine serielle Datenausrichtungsverbindung A (Data-Align-Serial-Link A (DASL-A)) 22 und eine serielle Datenausrichtungsverbindung B (Data-Align-Serial-Link B (DASL-B)) 24. Datenübertragungsverbindungen sind in der vorstehend in Bezug genommenen Verbindungspatentschrift (Link Patent) ausführlicher beschrieben, und es empfiehlt sich, auf dieses Schriftstück Bezug zu nehmen, damit sich dieser Teil des Systems besser verstehen lässt. Die bevorzugte Ausführungsform der vorliegenden Erfindung verwendet zwar die Datenübertragungsverbindungen, die in dieser Patentschrift ausführlicher beschrieben sind, doch versteht es sich, dass auch andere Systeme vorteilhaft mit der vorliegenden Erfindung eingesetzt werden können, insbesondere solche, die verhältnismäßig hohe Datenflüsse und Systemanforderungen unterstützen, da die vorliegende Erfindung nicht auf diese ganz bestimmten Zusatzeinrichtungen wie die Datenübertragungsverbindungen beschränkt ist, die in der bevorzugten Ausführungsform eingesetzt werden.
  • Zu den auf der Chip-zum-Netzwerk-Übertragungsseite (oder Egress-Seite) des Systems gezeigten Komponenten gehören die Datenübertragungsverbindungen DASL-A 26 und DASL-B 28, die Systemschnittstelle SIF 30, das Vermittlungsstellen-Datenübertragungsprogramm (switch data mover) SDM-DN 32, das Steuerprogramm zum Einreihen und Entnehmen von Einträgen in die beziehungsweise aus der Warteschlange EDS-DN 34 und mehrere gemultiplexte MACs für das Egress-PMM-DN 36. Das Substrat 10 enthält auch eine Vielzahl von internen statischen Direktzugriffspeicherkomponenten (SRAMs), ein Verkehrssteuerungsprogramm (traffic management scheduler) 40 und einen eingebetteten Prozessorkomplex 12, der in der vorstehend in Bezug genommenen NPU-Patentschrift ausführlicher beschrieben ist. Eine Schnittstelleneinheit 38 ist über die jeweiligen DMU-Busse mit dem PMM 14, 36 verbunden. Die Schnittstelleneinheit 38 könnte eine beliebige geeignete Vorrichtung zum Anschluss an die L1-Schaltkreise sein, wie zum Beispiel physische Ethernet-(ENET-PHY-)Einheiten oder Einrichtungen zur Weiterleitung von Rahmen im asynchronen Transfermodus (ATM FRAMER), die beides Beispiele für bekannte und handelsübliche Einheiten zu diesem Zweck sind. Die Art und die Größe der Schnittstelleneinheit werden zumindest teilweise von dem Netzwerkmedium bestimmt, an den der hier genannte Chip und sein System angeschlossen werden. Eine Vielzahl von externen dynamischen Direktzugriffspeichereinheiten (DRAMs) und ein SRAM stehen zur Verwendung durch den Chip zur Verfügung.
  • Während die vorliegende Erfindung hier zwar insbesondere für Netzwerke offen gelegt wird, in denen der allgemeine Datenfluss außerhalb der betreffenden Vermittlungs- und Weiterleitungseinheiten über in Gebäude installierten elektrischen Leitungen wie Drähten und Kabel vonstatten geht, sieht die vorliegende Erfindung vor, dass die Netzwerk-Vermittlungsstellen und -Komponenten der Erfindung ebenso in einer drahtlosen Umgebung verwendet werden könnten. Beispielsweise können die hier offen gelegten Medienzugriffsteuerungs-(MAC-)Elemente durch geeignete Hochfrequenzeinheiten wie beispielsweise mit Hilfe der Siliziumgermaniumtechnologie hergestellte Hochfrequenzeinheiten ersetzt werden, was dazu führen würde, dass die offen gelegte Einheit direkt an ein drahtloses Netzwerk angeschlossen werden könnte. Bei entsprechender Anwendung dieser Technologie können die Hochfrequenzelemente von einem Fachmann in den entsprechenden Bereichen der Technik in die hier offen gelegten VLSI-Strukturen integriert werden. Alternativ dazu können Hochfrequenz- oder andere Einheiten mit drahtloser Antwortübermittlung wie zum Beispiel Einheiten, bei denen die Antwort mittels Infrarot-(IR-)Strahlung übermittelt wird, zusammen mit den anderen hier offen gelegten Elementen auf einer Auflage montiert werden, um eine Vermittlungsvorrichtung zu erhalten, die bei einer drahtlosen Netzwerkvorrichtung nützlich ist.
  • Die Pfeile zeigen den allgemeinen Fluss der Daten in dem in 1 gezeigten Schnittstellensystem. Daten- oder Nachrichtenrahmen, die von einer Ethernet-MAC 14 außerhalb des ENET-PHY-Blocks 38 über den DMU-Bus empfangen werden, werden von der EDS-UP-Einheit 16 in die internen Datenpufferspeicher 16a gestellt. Die Rahmen können entweder als normale Rahmen oder als gekennzeichnete Rahmen ausgewiesen werden, was sich dann auf das Verfahren und den Ort der anschließenden Verarbeitung in der Vielzahl der Prozessoren auswirkt.
  • 2 ist ein Blockschaltbild eines Verarbeitungssystems 100, das die vorliegende Erfindung vorteilhaft nutzen kann. In dieser 2 befinden sich eine Vielzahl von Verarbeitungseinheiten 110 zwischen einer Zuteilungseinheit (dispatcher unit) 112 und einer Abarbeitungseinheit 114. Jeder ankommende Rahmen F (von einem Netzwerk, nicht gezeigt, das an das hier beschriebene Datenverarbeitungssystem angeschlossen ist) wird empfangen und in einem UP-Datenspeicher 116 abgelegt, der über eine Schnittstelle UP DS i/f 117, die Daten in den Datenspeicher schreiben und aus dem Datenspeicher lesen kann, mit den Verarbeitungseinheiten 110 verbunden ist. Die Zuteilungseinheit 112 entnimmt die Rahmen nacheinander dem Speicher und weist sie einer der Vielzahl der Verarbeitungseinheiten 110 zu, und zwar auf der Grundlage einer von ihr getroffenen Feststellung, dass die Verarbeitungseinheit zur Verarbeitung des Rahmens zur Verfügung steht. Der Hinweis darauf könnte in der Form erfolgen, dass die eine Verarbeitungseinheit, welcher der Rahmen F zugewiesen wird, der Zuteilungseinheit 112 ein Signal gesendet hat, das anzeigt, dass eben diese Verarbeitungseinheit inaktiv war und zur Übernahme von Verarbeitungsaufträgen bereitstand, obgleich alternative Verfahren zur Zuweisung von Arbeit (wie zum Beispiel eine Zuweisung im Rotationsverfahren oder mittels eines Algorithmus, der die am längsten nicht benutzte Verarbeitungseinheit ausweist (LRU-Algorithmus), in dem vorliegenden System ebenfalls vorteilhaft zur Anwendung kommen könnten. Nähere Einzelheiten über den Aufbau und die Funktion der Verarbeitungseinheiten 110 im Besonderen und des Verarbeitungssystems im Allgemeinen finden sich in der vorstehend in Bezug genommenen NPU-Patentschrift.
  • Zwischen der Zuteilungseinheit 112 und der Vielzahl der Verarbeitungseinheiten 110 ist ein Hardware-Klassifizierungsassistent 118 angeordnet, der später in diesem Schriftstück ausführlicher beschrieben wird, insbesondere in Verbindung mit den 4 und 5. Zu der Vielzahl der Verarbeitungseinheiten 110 gehört auch ein Befehlsspeicher 122 (in 4 gezeigt), in dem eine Vielzahl von verschiedenen Befehlssätzen zum Abruf und zur Ausführung durch die einzelnen Verarbeitungseinheiten 110 gespeichert wird. Wie später beschrieben wird, wird der Startbefehl im Befehlsspeicher 122 entsprechend einer Adresse angesprochen, die auf der Art der Nachricht – ihrem Protokoll und ihrem Kapselungsverfahren – beruht, was von dem Hardware-Klassifizierungsassistenten 118 festgestellt wird.
  • Eine Abarbeitungseinheit 114 ist funktionsmäßig zwischen der Vielzahl der Prozessoren 110 und dem System zum Einreihen von Einträgen in die Warteschlange zur Übertragung vom Chip zum Netzwerk (das in 1 mit "DN Enqueue" – Element 34 bezeichnet ist) sowie einem System zum Einreihen von Einträgen in die Warteschlange zur Übertragung vom Netzwerk zum Chip (Element 16 in 1) angeschlossen. Das System zum Einreihen von Einträgen in die Warteschlange zur Übertragung vom Chip zum Netzwerk (DN-Enqueue-System) 34 dient dazu, verarbeitete Rahmen vom Verarbeitungskomplex hin zum Netzwerk oder an ein anderes System zu versenden, an das der Komplex angeschlossen ist, und das System zum Einreihen von Einträgen in die Warteschlange zur Übertragung vom Netzwerk zum Chip (UP-Enqueue-System) 16 dient dazu, verarbeitete Rahmen an das Schaltnetzwerk (switch fabric) zu senden. Die Zuteilungseinheit 112 kann so ausgelegt werden, dass sie Kennzeichnungsinformationen, die sich auf jeden Rahmen und auf die Verarbeitungseinheit, die zur Verarbeitung dieses Rahmens zugewiesen wird, beziehen, zuordnet und speichert. Diese Kennzeichnungsinformationen können dann von der Abarbeitungseinheit 114 verwendet werden, um sicherzustellen, dass verarbeitete Rahmen, die einen einzelnen Datenfluss bilden, in der Reihenfolge weitergeleitet werden, in der sie empfangen wurden. Dieser Aspekt der vorliegenden Erfindung wird in dieser Beschreibung später ausführlicher erörtert.
  • 3 (die aus verschiedenen Teilzeichnungen, den 3A bis 3T, besteht) zeigt eine Vielzahl von Nachrichtenformaten (Komponenten und abgeänderte Versionen des Ethernet-Nachrichtenformats), für deren Annahme und Verarbeitung das hier beschriebene Verarbeitungssystem programmiert ist, doch kann der Fachmann an den verschiedenen vorhandenen Nachrichten- oder Rahmenformaten Änderungen vornehmen, um sie der Umgebung des im Einzelfall betrachteten Systems anzupassen. Das hier beschriebene System kann auch so umgestaltet werden, dass es andere Nachrichtenformate zulässt, darunter solche Nachrichtenformate und Abweichungen von diesen Nachrichtenformaten, die in der Zukunft möglicherweise eingesetzt werden. Als solches dienen die Nachrichtenformate von 3 lediglich dazu, verschiedene Formate von Rahmen mit verschiedenen Protokoll- und Kapselungsarten zu veranschaulichen, und die vorliegende Erfindung ist ein flexibles System, das so ausgelegt ist, dass es viele verschiedene Protokoll- und Kapselungsformate zulässt und bei der Verarbeitung dieser Rahmen unterstützend mitwirkt, indem es einen Zeiger auf die Art der Kapselung und auf die Art des Protokolls sowie eine Startadresse im Befehlsspeicher für den Prozessor, der einen bestimmten Rahmen verarbeitet, bereitstellt.
  • 3A zeigt das allgemeine oder grundlegende Ethernet-Nachrichtenformat, das manchmal auch als Ethernet Version 2.0/DIX bezeichnet wird. Dies ist ein Nachrichtenformat, bei dem die Nachricht eine Zieladresse (destination address, DA), eine Quellenadresse (source address, SA), einen Block, der die Art der Nachricht (Type) anzeigt, den Nachrichtentext oder Daten und einen Nachsatz für die zyklische Blockprüfung (CRC), die zur Prüfung der Unversehrtheit der Nachricht dient, enthält. Die Zieladresse DA und die Quellenadresse SA haben beide eine festgelegte Länge von 6 Byte (48 Bit), und der den Nachrichtentyp anzeigende Block hat eine festgelegte Länge von 2 Byte, während der CRC-Nachsatz eine festgelegte Länge von 4 Byte hat. Im Allgemeinen kann der Rest der Nachricht – die Daten – eine beliebige Länge, bis zu 1500 Byte, aufweisen, obgleich diese Flexibilität bei manchen Ethernet-Arten zugunsten anderer Vorteile eingeschränkt wird, wie wir später sehen werden. Die Quellenadresse SA kann entweder angeben, dass die Nachricht eine einzelne Nachricht ist, die für eine einzige Netzwerkadresse an einem Knoten des Netzwerks bestimmt ist, oder dass es eine Multicast-Nachricht oder eine Broadcast-Nachricht ist. Eine Multicast-Nachricht ist an eine Gruppe von Knoten im Netzwerk gerichtet, und eine Broadcast-Nachricht ist an alle Stationen gerichtet. Der den Nachrichtentyp anzeigende Block hat eine Länge von 16 Bit und weist das Protokoll der höheren Schicht aus, das verwendet wird. Jedes eingetragene Ethernet-Protokoll erhält einen eindeutigen Typ-Code, einen Wert, der immer größer als der Höchstwert im Längenfeld des Ethernet 802.3 ist, damit dieses Feld gleichzeitig mit dem anderen vorhanden sein kann. Das Datenfeld hat gewöhnlich eine Länge zwischen 46 Byte und 1500 Byte, wobei davon ausgegangen wird, dass die oberen Schichten sicherstellen, dass die Mindestfeldlänge von 46 Byte eingehalten wird, bevor Daten an die MAC-Schicht weitergeleitet werden. Nachrichten, die die zulässige Länge eines Rahmens überschreiten, müssen in mehrere Nachrichten aufgeteilt werden, die kürzer als die maximal zulässige Länge des Datenfeldes sind.
  • 3B zeigt eine Abweichung von der allgemeinen Ethernet-Form, die als Ethernet-Format IEEE 802.3 bezeichnet wird. Sie ist dem Format des allgemeinen Ethernet-Nachrichtenformats von 1 ähnlich, mit der Ausnahme, dass das Feld "Typ" durch ein Längenfeld LEN ersetzt wird, das eine Länge von 16 Bit hat und die Länge des nachfolgenden Datenfeldes ohne irgendwelche Füllzeichen angibt. Dieser Standard schreibt 64 Byte als Mindestgröße für das Paket vor, so dass das Datenfeld "Data" mindestens 46 Byte lang sein muss. Wenn die eigentlichen Daten für das Datenfeld "Data" weniger als 46 Byte ausmachen, muss die MAC-Schicht Platzhalter (Füllzeichen) zum LLC-Datenfeld hinzufügen, um die Mindestgröße zu erreichen, bevor sie das Paket über das Netzwerk sendet. Das Längenfeld gibt jedoch die Länge ohne die Füllzeichen an, wodurch ein Empfangssystem Füllzeichen, die hinzugefügt wurden, erkennen und diese unberücksichtigt lassen kann.
  • 3C zeigt ein Markersteuerungsdatenformat (Tag Control Information Format) für die Ethernet-Nachrichten, insbesondere mit Bezug auf den IEEE-Standard 802.1q. Es besteht aus 3 Bits für die Benutzerpriorität, 1 Bit eines kanonischen Formatanzeigers "Canonical Format Indicator" oder CFI und 12 Bits einer VID, einer Kennung eines virtuellen LAN (oder VLAN). Ein virtuelles LAN oder lokales Netzwerk ist eine Kennzeichnung einer Gruppe von Knoten, die als ein virtuelles lokales Netzwerk ausgewiesen wurden, indem die Adressen als Adressen angegeben wurden, die ein VLAN bilden, wodurch diejenigen Knoten, die nicht physisch zugeordnet sind, logisch zugeordnet und als Gruppe statt als einzelne Knoten angesprochen werden können.
  • 3D zeigt ein eingebettetes RIF-Format (Embededed-RIF oder E-RIF-Format), das in manchen Nachrichtenformaten des Ethernet-Protokolls verwendet wird, wobei wieder der IEEE-Standard 802.1q eingehalten wird. Bei diesem Format wird ein Leitwegtyp (route type) RT von den ersten 3 Bits, eine Länge LTH von den nächsten 5 Bits (die die Länge des gesamten E-RIF-Teils einschließlich der E-RIF-Leitwegsteuerung und des E-RIF-Leitwegdeskriptors in Byte angeben) und eine Leitwegdeskriptorrichtung D von einem Bit (das normalerweise den Wert "0" hat, der anzeigt, dass der Leitwegdeskriptor vorwärts durchlaufen werden soll, doch hat dieses Bit bei manchen speziell weitergeleiteten Rahmen den Wert "1", um anzuzeigen, dass der Leitwegdeskriptor die umgekehrte Reihenfolge aufweist) angegeben. Das E-RIF-Format enthält einen aus 6 Bits bestehenden Anzeiger des größten Rahmens und einen aus 1 Bit bestehenden Anzeiger eines nichtkanonischen Formats (Non Canonical Format Indicator – NCFI). Der Leitwegtyp RT hat entweder den Wert 00X, 01X, 10X oder 11X, um anzuzeigen, dass der Rahmen entweder ein speziell weitergeleiteter Rahmen, ein transparenter Rahmen, ein Rahmen vom Typ "All Route Explorer" oder ein Rahmen vom Typ "Spanning Tree Explorer" ist. Das LF-Feld zur Angabe des größten Rahmens hat gemäß dem Standard IEEE 802.3 für Ethernet eine Länge von 1470 Byte oder weniger. Das NCFI zeigt an, dass die angegebenen MAC-Adressen entweder nichtkanonisch (wenn sie den Wert "0" haben) oder kanonisch (wenn sie den Wert "1" haben) sind.
  • 3E veranschaulicht das E-RIF Route Descriptor Format als ein Format, das eine aus 12 Bits bestehende LAN-ID zur Kennzeichnung des lokalen Netzwerks und eine aus 4 Bits bestehende Brückennummer (Bridge#) enthält. Ein Feld "E-RIF Route Descriptor Format" ist in der Industrie ebenfalls bekannt, und es wird dem Standard für diese Felder entsprechend verwendet.
  • Die 3F und 3G veranschaulichen Bestandteile von LLC-Formaten zur Verwendung in einer Ethernet-Nachricht, einschließlich eines 802.2-LPDU-Formats in 3F und eines "Generic SNAP"-Formats in 3G. Das LPDU-Format von 3F enthält einen aus 1 Byte (8 Bit) bestehenden Zieldienst-Zugriffspunkt (Destination Service Access Point – DSAP), ein aus 1 Byte bestehenden Quelldienst-Zugriffspunkt (Source Service Access Point – SSAP) und ein aus 1 Byte bis 2 Byte bestehenden Steuerfeld "Control", das einen oder mehrere Befehle, eine oder mehrere Antworten, eine oder mehrere Folgenummern und Abfrage-/Schlussbits enthält. In diesem Zusammenhang hat ein Dienstzugriffspunkt eine Länge von 6 Bit sowie ein zusätzliches U-Bit und ein Schlussbit (ein einzelnes I-Bit für den Zieldienst-Zugriffspunkt und ein C-Bit für den Befehls-/Antwortanzeiger für die Quelle). 3G veranschaulicht das SNAP-Format, das drei Bytes enthält, die das Unternehmen angeben (die als Organizationally Unique Identifier oder OUI bezeichnete Kennung), und zwei Bytes, die den Typ angeben, der dem Format unter dem Internet-Standard 0002 zugewiesen ist. Beispiele für das Typ-Feld sind 0800 für IP, 8137 für IPX, 0806 für ARP, 8035 für RARP, 8100 für 802.1q VLAN, 86DD für Ipv6, 80DB für Appletalk und 80F3 für Appletalk AARP.
  • 3H veranschaulicht eine Nachricht im Format „IPX over Ethernet", das einen Ethernet-MAC-Kopfbereich und einen IPX-Kopfbereich enthält, wobei der Ethernet-MAC-Kopfbereich eine Quellenadresse SA und eine Zieladresse DA mit einer Länge von jeweils 6 Byte hat, gefolgt von einem 2-Byte-Typ-Feld "8137", das anzeigt, dass dieser Rahmen das IPX-Format hat. Der IPX-Kopfbereich enthält dann die angegebenen Komponenten, nämlich 2 Bytes für eine Prüfsumme, 2 Bytes für die Paketlänge, 1 Byte für TC, 1 Byte für PT, 4 Bytes für das Zielnetzwerk, 6 Byte für den Zielknoten, 2 Bytes für den Zielkommunikationsendpunkt (destination socket), 4 Bytes für den Quellenknoten, 6 Bytes für den Quellenknoten und 2 Bytes für den Quellenkommunikationsendpunkt (source socket).
  • 3I zeigt das Nachrichtenformat für IPX über eine herstellereigene Version des Ethernet 802.3 (die manchmal auch als ein Novell-Format bezeichnet wird), das einen Ethernet-802.3-MAC-Kopfbereich enthält, wobei die Länge der Nachricht im dritten Feld (im Gegensatz zum in 3H gezeigten "IPX over Ethernet", wo im dritten Feld der Typ angegeben wird) angegeben wird. Die Prüfsumme wird bei diesem Format entsprechend seinem Protokoll auf "FFFF" gesetzt.
  • 3J veranschaulicht IPX over Ethernet 802.3 mit 802.2, wobei die Nachricht einen MAC-Kopfbereich mit einem IPX-Kopfbereich (wie die in 3H gezeigten) enthält, die durch die LLC-LPDU-Felder für 802.2 getrennt sind.
  • 3K veranschaulicht das Format eines Rahmens "IPX over 802.3" mit SNAP, wobei die Nachricht wie bei dem in Verbindung mit 3J beschriebenen Format einen 802.3-MAC-Kopfbereich, auf den das LLC-LPDU-Feld folgt, enthält und mit dem IPX-Kopfbereich abschließt. zwischen dem LLC-LPDU-Teil und dem IPX-Kopfbereich ist das SNAP-Feld angeordnet, um die OUI und einen E-Typ von 8137 anzugeben.
  • 3L veranschaulicht das Format eines Rahmens "IPX over Ethernet" mit 802.1q-VLAN-Unterstützung, wobei das Feld "Typ" auf 8100 lautet und das VLAN-Paket zwischen dem Ethernet-MAC-Kopfbereich und dem IPX-Kopfbereich angeordnet ist (wobei der IPX-Kopfbereich dasselbe Format wie das in Verbindung mit den vorstehenden 3H, 3J und 3K beschriebene hat). Das VLAN-Paket enthält das aus 2 Bytes bestehende TCI-Feld und ein aus 2 Bytes bestehendes Längen-(LEN-) oder E-Typ-Feld, dann ein e-rif-Steuerfeld und eine veränderliche Anzahl von e-rif-Deskriptorfeldern, deren Anzahl von der Formel (LEN-2)/2 angegeben wird.
  • 3M veranschaulicht das Format für einen Rahmen "IPX over Ethernet 802.3" (herstellereigen) mit 802.1q-VLAN-Unterstützung. Das Typ-Feld lautet 8100, und das VLAN-Paket ist ähnlich dem Paket im vorherigen VLAN-Beispiel in 3L. Der IPX-Kopfbereich ist ähnlich dem Kopfbereich, der in dem vorstehend erwähnten herstellereigenen 802.3-Rahmen in 3I gezeigt ist, wobei das Prüfsummenfeld auf "FFFF" gesetzt ist.
  • 3N zeigt die Rahmenanordnung für einen Rahmen, der „IPX over Ethernet 802.3" mit VLAN-Unterstützung verwendet. Er enthält einen 802.3-MAC-Kopfbereich mit dem Typ "8100", der das Vorhandensein eines VLAN-Pakets (wie 3M) anzeigt, ein VLAN-Paket (das ebenfalls ein Format wie in 3M hat), ein LLC-LPDU-Feld (das ähnlich dem in Verbindung mit 3J gezeigten und beschriebenen ist) und einen IPX-Kopfbereich (wie er in 3H gezeigt ist).
  • 3O zeigt die Konfiguration oder das Format einer Nachricht entsprechend „IPX over Ethernet 802.3" mit SNAP- und VLAN-Unterstützung unter Verwendung von 802.1q. Es ist ähnlich dem Format von 3N, wobei jedoch zwischen dem LLC-LPDU-Feld und dem IPX-Kopfbereich ein SNAP-Feld eingefügt wurde.
  • 3P zeigt das Format von IPv4 over Ethernet, wobei die Nachricht einen Ethernet-MAC-Kopfbereich und einen IPv4-Kopfbereich enthält. In dieser Ansicht ist die Länge eines jeden der Felder gezeigt.
  • 3Q veranschaulicht das Nachrichtenformat für „IPv4 over Ethernet 802.3" mit 802.2, wobei hier das LLC-LPDU-Feld und anschließend der IPv4-Kopfbereich auf den MAC-Kopfbereich folgen.
  • 3R veranschaulicht das Nachrichtenformat für einen Rahmen "IPv4 over Ethernet 802.3" mit SNAP, wobei auf den 802.3-MAC-Kopfbereich das LLC-LPDU-Feld und anschließend der IPv4-Kopfbereich folgen (und gegebenenfalls ein optionaler Nachsatz für UDP oder TCP).
  • 3S veranschaulicht das Nachrichtenformat für „IPv4 over Ethernet" mit 802.1q-VLAN-Unterstützung. Dieses Format hat die Merkmale von IPv4 sowie des VLAN-Pakets, die in anderen Fällen mit 802.1q-VLAN-Unterstützung zu sehen waren.
  • 3T veranschaulicht das Nachrichtenformat für „IPv4 over Ethernet 802.3" (mit 802.2) mit 802.1q VLAN-Unterstützung, wobei die Attribute von „Ipv4 over 802.3" mit 802.3 mit den Nachrichteneigenschaften des VLAN-Pakets verknüpft werden.
  • In jeder der 3H bis 3T stellt die unterste Zeile den die Schicht 3 (Layer 3, L3) bildenden Teil des Rahmens oder der Nachricht dar, und aufgrund der Abweichungen bei der Größe des Materials, das dem L3-Teil der Nachricht vorausgeht, beginnt der L3-Teil der Nachricht in Abhängigkeit von der Art der Nachricht – dem Protokoll und dem Kapselungsverfahren – an unterschiedlichen Stellen. Obgleich die Verarbeitung einer L3-Nachricht erwünscht ist (wobei die Kapselung außer Acht gelassen wird), kann es bei einem Mehrprotokoll- und Mehrfachkapselungssystem schwierig sein, den Anfang der L3-Nachricht zu finden. Da die Befehle, die von dem einen der Vielzahl der Prozessoren 110 an dem Rahmen ausgeführt werden, von der Art des Rahmenprotokolls und des Kapselungsverfahrens abhängen, ist es außerdem wünschenswert, dass etwas (in diesem Fall der Hardware-Klassifizierungsassistent 118) einen Zeiger auf den richtigen Startbefehl für den Prozessor im Befehlsspeicher 122 bereitstellt.
  • 4 ist ein Blockschaltbild, das den in 2 als das Element 118 gezeigten Hardware-Klassifizierungsassistenten zusammen mit ausgewählten Teilen des Befehlsspeichers 122 und einer der Vielzahl der Verarbeitungseinheiten 110 veranschaulicht. Der Hardware-Klassifizierungsassistent 118 arbeitet an 128-Bit-Segmenten, die zu der Eingabedateneinheit (oder dem Rahmen) gehören, wobei diese 128-Bit-Segmente manchmal als "FISH" bezeichnet und von dem Hardware-Klassifizierungsassistenten 118 (sowie von einer der einzelnen Verarbeitungseinheiten 110) von der Zuteilungseinheit 112 empfangen werden. Diese Klassifizierungsfunktion führt an bis zu den ersten 3 FISH-Segmenten (oder den ersten 384 Bits, die zu einem Rahmen gehören und manchmal als FISH1, FISH2 und FISH3 bezeichnet werden, um ein FISH-Segment von einem anderen zu unterscheiden) Operationen durch. Das erste FISH-Segment (FISH1) ist eigentlich nicht der empfangene Rahmen, sondern ein Satz von auf diesen Rahmen bezogenen Daten, wie zum Beispiel der Anschluss (port), an dem der Rahmen ankam, ein Einstiegspunkt 291 in den Standardcode und ein Anzeiger 292 ("ja" oder "nein") zur Angabe, ob die Rahmenklassifizierung mit Hilfe des Hardware-Klassifizierers der vorliegenden Erfindung aktiviert werden soll.
  • Am Block 210 wird der Ethernet-Typ an verschiedenen Stellen in dem Rahmen verglichen, um festzustellen, ob die Felder einem gerade konfigurierten Protokoll entsprechen, zum Beispiel einer ersten Ethernet-Version (z.B. IPX) oder einer zweiten Ethernet-Version (z.B. IPv4). Am Block 220 wird festgestellt, ob das Feld "Dienstzugriffspunkt" (service access point, SAP) einem gerade konfigurierten Protokoll, ebenfalls wie in einem Register angegeben (z.B. einem bestimmten gespeicherten Wert, der einen Protokolltyp angibt), entspricht. Das System stellt auch fest, ob im Block 240 ein SNAP-Feld, das eine andere Art der Kapselung darstellt, vorhanden ist (ein bestimmtes Feld wie zum Beispiel "AAAA03"), und am Block 250 erkennt es das Vorhandensein und die Nutzung eines virtuellen lokalen Netzwerks (VLAN) in der Nachricht. Der Block 260 stellt die Klassifizierungssteuerung dar, die, wenn sie durch "Klassifizierung aktivieren" 292 aktiviert wird, für die Speicherung der zu dem Rahmen gehörenden Parameter und der Bereitstellung einer Ausgabe, die den Protokolltyp angibt, eines Zeigers auf die Schicht 3 und von Klassifizierungsmarkierungen auf den Leitungen 270, 272, 274 verantwortlich ist.
  • Ein Steuerungseinstiegspunkt für jede Nachricht (den Beginn der Verarbeitung, die Adresse des ersten Befehls im Befehlsspeicher 122) kann für jedes bezeichnete Format im Voraus festgelegt und in einer Tabelle 280 gespeichert werden.
  • Das heißt, bei ETYPE = 0 und keinem VLAN ist der Steuerungseinstiegspunkt (die Anfangsadresse) die Adresse 122a im Befehlsspeicher, und bei ETYPE = 1 und ohne das VLAN ist der Steuerungseinstiegspunkt die Adresse 122b. Ebenso sind bei ETYPE = 0 mit einem VLAN und ETYPE = 1 mit einem VLAN die jeweiligen Steuerungseinstiegspunkte (die Stelle, an der die Verarbeitung der eigentlichen Nachricht beginnt) der Befehl 122c beziehungsweise der Befehl 122d. Bei Rahmen mit einem ERIF-Feld beginnt die Verarbeitung am Befehl 122f, und bei Standardprogrammen, bei denen das Protokoll oder das Kapselungsverfahren nicht festgestellt werden kann, beginnt sie ebenfalls am Befehl 122f.
  • In jedem Fall ist im Segment FISH1 der Nachricht ein Standardsteuerungseinstiegspunkt enthalten, der am Block 290 ausgelesen wird. Der Block 295 stellt dann fest, ob der Standardsteuerungseinstiegspunkt verwendet werden soll – wenn die Hardwareklassifizierung auf der Leitung 295 aktiviert ist und vom Block 280 kein anderer Steuerungseinstiegspunkt festgestellt wird, wird der Standardeintrag verwendet; andernfalls wird der Steuerungseinstiegspunkt aus der Tabelle 280 verwendet.
  • Die Leitungen 270, 272 (mit den Klassifizierungsmarkierungen und der L3-Basisadresse, die jeweils vom Hardware-Klassifizierungsassistenten 118 festgelegt werden) vom Hardware-Klassifizierer 118 werden dem einzelnen Prozessor 110 zugeführt, der zur Verarbeitung des Rahmens zugewiesen wird, und ihr Inhalt wird in den Mehrzweckregistern 110a gespeichert, die zu der einen Verarbeitungseinheit gehören, welche den Rahmen verarbeitet, der im Datenspeicher 110b gespeichert ist. Die Ausgangsleitung 276 von der Einheit 295 stellt die Startadresse für den Befehlsspeicher 122 für die jeweilige Art des Rahmens bereit, Daten, die in der Befehlssteuerlogik 110c gespeichert werden. Ein Rechenwerk (arithmetic/logic unit, ALU) ist Teil der Verarbeitungseinheit 110. Mit Hilfe des Befehlszählers in der Befehlssteuerlogik 110c ruft der Prozessor 110 einen Befehl aus dem Befehlsspeicher 122 ab. Auf diese Weise wird die Verarbeitungseinheit 110 entsprechend dem Protokoll und dem Kapselungsverfahren, die von dem Hardware-Klassifizierungsassistenten 118 festgestellt werden, mit der Startadresse des Befehlssatzes vorkonditioniert, die für den Rahmen, der gerade verarbeitet wird, geeignet ist, und entsprechende Markierungen, die die Art des Rahmens angeben, werden gesetzt, damit der Prozessor 110 mit der Verarbeitung des Rahmens unter Verwendung der richtigen Befehle beginnen kann.
  • 5 veranschaulicht die Logik, den dieser Klassifizierer bei der Kategorisierung des Nachrichtenformats verwendet hat. Der Prozess beginnt am Block 310, in dem FISH 2 ausgewählt wird, und anschließend werden am Block 320 die Bytes 13 und 14 des Rahmens (die beiden Bytes, die die Informationen über den Typ in einem Rahmen, der die 6-Byte-Zieladresse DA und die 6-Byte-Quellenadresse SA, gefolgt vom Typ enthält, enthalten würden) geprüft. Wenn diese Bytes dem Inhalt für ETYPE0 oder aber ETYPE 1 entsprechen, kennzeichnet der Prozess am Block 323 die Protokollinformationen, indem er die entsprechende Markierung setzt, und schließt den Prozess am Block 325 ab. Andernfalls, wenn der Typ-Block einen geringeren Wert als 0600H (hexadezimal) hat, hat der Rahmen das Rahmenformat Ethernet 802.3 und nicht das Format Ethernet V2.ODIX, und das Feld ist ein Längenfeld und kein Typ-Feld und wird auf der linken Seite des Diagramms von 5 verarbeitet. Wenn dieser Typ-Block auf "8100" lautet, handelt es sich bei dem Rahmen um einen Rahmen, der 802.1-VLAN-Unterstützung in Anspruch nimmt (siehe beispielsweise die 3L, 3M, 3N, 30, 3S und 3T), und er wird auf der rechten Seite des Diagramms von 5 verarbeitet. Wenn das Typ-Feld anderslautend ist, wird die Steuerung dem Block 325 übergeben, wo die Klassifizierung als abgeschlossen betrachtet wird, ohne dass Protokollinformationen verzeichnet werden, da dieser Rahmen offenbar ein unbekanntes Protokoll hat.
  • Wenn am Block 320 festgestellt wurde, dass die Bytes 13 und 14 einen kleineren Wert als 0600H hatten, werden die Bytes 15 bis 17 am Block 322 ausgewertet, um festzustellen, ob sie als ein SAP-Feld oder als ein Feld zur Steuerung logischer Verbindungen (Logical-Link-Control-(LLC-)Feld) dieser Art bekannt sind (z.B. AAAA03, die in 3K verwendet wird). Wenn dieses Feld als eines der SAP-Felder erkannt wird, wird das SAP-Feld gesetzt, und am Block 323 werden Protokollinformationen gespeichert, bevor die Klassifizierung an Block 325 als abgeschlossen betrachtet wird. Wenn dies ein SNAP-Feld ist, schaltet die Steuerung zum Block 324, wo FISH3 abgerufen und dessen Bytes 2 bis 6 auf die Erkennung des ETYPE ausgewertet werden. Wenn der ETYPE erkannt wird, werden die Protokollinformationen am Block 323 gespeichert, bevor der Prozess am Block 325 verlassen wird.
  • Wenn am Block 320 festgestellt wurde, dass die Bytes 13 und 14 gleich 8100 waren, was anzeigt, dass dies ein virtuelles lokales Netzwerk (VLAN) ist, wie es im IEEE-Standard 802.1q festgelegt ist, wird die Information über das Vorhandensein des VLAN am Block 330 gespeichert, und am Block 340 wird anschließend geprüft, ob ein CFI-Feld vorhanden ist. Wenn ein CFI-Feld vorhanden ist, ist die Klassifizierung abgeschlossen, und die Steuerung wird dem Block 325 übergeben. Wenn kein CFI-Feld vorhanden ist, werden die Bytes 1 und 2 von FISH3 am Block 350 geprüft, um festzustellen, ob sie einen bekannten ETYPE (wie im Test am Block 320) oder eine Länge (ein kleinerer Wert als 0600H) bereitstellen. Wenn sie einen ETYPE bereitstellen, werden die Protokollinformationen am Block 323 gespeichert, und die Steuerung schaltet zum Block 325, wo die Klassifizierung als abgeschlossen betrachtet wird. Wenn das Feld im Block 350 nicht als ETYPE erkannt wird, wird der Klassifizierungsprozess am Block 325 als abgeschlossen betrachtet. Wenn der Test am Block 350 eine Länge (einen kleineren Wert als 0600H) ergeben hat, werden die Bytes 3 bis 5 am Block 360 auf einen bekannten SAP geprüft. Wenn es auf "AAAA03" lautet, schaltet die Steuerung zum Block 370, um die Bytes 6 bis 10 auf die Erkennung eines bekannten ETYPE auszuwerten.
  • 6 veranschaulicht eine verbesserte Version des Hardware-Klassifizierers, insbesondere der Elemente von 4. In dieser 6 enthält der Hardware-Klassifizierer die Elemente von 4, wobei an der Befehlssteuerlogik 110c eine Verbesserung in der Weise vorgenommen wurde, dass sie statt einer einzigen Anfangsadresse mehrere Adressen enthält, die in einem Befehlsstapelspeicher 110d gespeichert werden. Dieser Befehlsstapelspeicher enthält die Anfangsbefehlsadresse, auf die andere Adressen folgen, die benötigt werden, wenn der Prozessor eine Aufspaltung oder Verzweigung erreicht, um weitere Testläufe oder bedingte Anweisungen an späteren Verzweigungen zu vermeiden. Die Anfangsadressen werden dann entsprechend ihrer Reihenfolge in einem Stapelspeicher gespeichert und dem Stapelspeicher entnommen, wenn ein Verzweigungsbefehl benötigt wird.
  • Bezüglich weiterer Informationen über den Definitionsgehalt von Ethernet-Nachrichten verschiedener Protokolle oder Kapselungsverfahren sei der Leser auf den entsprechenden Standard oder das Referenzhandbuch für den Aufbau von Ethernet-Rahmen verwiesen. Nachstehend sind einige allgemein erhältliche Schriftstücke aufgeführt, die gegebenenfalls für das Verständnis von Ethernet-Protokollen und Kapselungsverfahren sowie damit verbundener Standards und Optionen hilfreich sind: ISO/IEC Final CD 15802-3, IEEE P802.1D/D15, 24. November 1997, Annex C; IEEE Draft Standard 802.1Q/D9 vom 20. Februar 1998; RFC 1700 – Assigned Numbers von J. Reynolds und J. Postel, Oktober 1994 (dieses Schriftstück kann auch unter http://www/isi.edu/rfc-editor/rfc.html abgerufen werden); IBM Token Ring Network Architecture Reference und IBM LAN Bridge and Switch Summary, Veröffentlichungsnummer SG24-5000-00, Version 1.3, Januar 1996, insbesondere Kapitel 1.1.1.
  • Der Hardware-Klassifizierer kann auf unterschiedliche Weise ausgelegt werden, unter anderem kann er mit Hilfe eines Software-Werkzeugs einer Vielzahl von allgemein erhältlichen Software-Werkzeugen für den Entwurf und die Herstellung von Logikschaltungen in einer Hardware-Konfiguration (oder in der hier vorliegenden Ausführung auf dem Silizium-Substrat) entworfen werden, oder er kann von einem Schaltungsentwickler manuell entsprechend der herkömmlichen Entwurfsgestaltung entworfen werden. In diesem Beispiel werden die gewünschten Tests mit Hilfe einer Software-Sprache programmiert, die als VLSI-Hardwaredefinitionssprache oder abgekürzt "VHDL" bekannt ist, und anschließend durchlaufen sie eine bekannte Software (wie zum Beispiel eine von IBM oder von Synopsis vertriebene Software), um eine Ausführung mit den notwendigen Gattern und der notwendigen Logik zu erzeugen, damit die gewünschten Tests in Hardware durchgeführt werden können. Es gibt andere ähnliche Entwurfssysteme, die vorteilhaft eingesetzt werden können, so dass der Schaltungsentwickler nicht zu wissen braucht, wie die Gatter aufgebaut sind oder wo sie sich befinden, sondern nur Kenntnis der logischen Funktion der gewünschten Eingänge, der gewünschten Tests und der gewünschten Ausgänge haben muss.
  • Wie vorstehend erwähnt wurde, kann es bei manchen Systemen erwünscht sein, in das Verarbeitungssystem der vorliegenden Erfindung die Fähigkeit einzubinden, verarbeitete Rahmen eines Datenflusses in der Reihenfolge weiterzuleiten, in der sie empfangen wurden, und zwar unabhängig davon, welche Prozessoren zur Verarbeitung eines jeden Rahmens zugewiesen werden. Bei solch einem System erzeugt und speichert die Zuteilungseinheit 112, nachdem sie eine freie Verarbeitungseinheit festgestellt und ihr einen empfangenen Rahmen zur Verarbeitung zugewiesen hat, Kenndaten für den Rahmen und die Verarbeitungseinheit, welcher er zugewiesen wurde.
  • Rahmen kommen gewöhnlich mit Kenndaten wie zum Beispiel einer Nachrichtennummer (die manchmal als MAC bezeichnet wird), der Adresse der Quelle (die manchmal als SA bezeichnet wird) und der Adresse des Ziels (die manchmal als DA bezeichnet wird) des Rahmens an. Der Ort und der Inhalt solcher Daten können in Abhängigkeit von dem Format der Nachricht und ihrem Kapselungsverfahren unterschiedlich sein, aber durch diese Daten kann der Rahmen durch das System und die Vermittlungsstellen und Router ordnungsgemäß ans Ziel geleitet und in der richtigen Reihenfolge zu einer vollständigen Nachricht zusammengesetzt werden, selbst wenn die ganze Nachricht länger als ein einziger Rahmen ist. Üblicherweise werden die Bestandteile einer Nachricht als ein Datenfluss bezeichnet, und jeder Teil des Datenflusses würde dieselben Kenndaten (wie eine MAC, SA und DA) enthalten. Der eigentliche Kennsatz (oder die Kenndaten), der einem Eingangsrahmen von der Zuteilungseinheit 112 zugewiesen wird, kann auf vielerlei Arten erzeugt werden, beispielsweise durch Kombination von MRC-SA+DA oder indem das LID-Feld mit den MID-Feldern in anderen Nachrichtenformaten durch eine Exklusiv-ODER-Funktion verknüpft wird.
  • Wie in 7 gezeigt ist, kann für jeden Rahmen ein Speicherplatz in drei Listen oder Warteschlangen erzeugt werden. Zuerst wird festgelegt, dass eine Warteschlange 400 mit verarbeiteten Rahmen abgeschlossene Arbeiten (einen Ausgangs- oder verarbeiteten Rahmen, der von dem Prozessor empfangen wurde, welcher einen bestimmten Rahmen verarbeitet hat) speichert, was einen Pufferspeicher oder Speicherbereich für mindestens einen abgeschlossenen Rahmen für jeden Prozessor erfordert, die als die Rahmen-0 bis Rahmen-N gezeigt sind, wobei die mit NPU-0 bis NPU-N bezeichneten Prozessoren mit dem jeweiligen Rahmen verbunden sind. Wenn die Zuteilungseinheit 112 einen Rahmen an eine Verarbeitungseinheit sendet, sendet sie die Kennung für diesen Rahmen an einen zweiten Speicher oder eine zweite Warteschlange 410, die die Speicherplätze 0 bis n enthält, welche den jeweiligen Netzwerkverarbeitungseinheiten NPU-0 bis NPU-N entsprechen. Wenn ein Rahmen mit der Kennung oder dem Kennsatz m an die NPU-0 gesendet wird, wird dem Speicher 0, der dem Kennsatz für NPU-0 entspricht, das erkannte "m" zur Speicherung gesendet, was anzeigt, dass NPU-0 eine Eingangsdateneinheit verarbeitet, deren Kennung "m" ist. Man erinnere sich, dass ein späterer Rahmen, der dieselbe Kennung "m" hat, zu demselben Datenfluss gehört, und dass ein Rahmen mit einer anderen Kennung oder einem anderen Kennsatz einen anderen Datenfluss darstellt. Wenn eine Eingangsdateneinheit mit dem Kennsatz 0 empfangen und der NPU-1 zugeteilt wird, wird im Speicher 1, der der NPU-1 entspricht, folglich eine 0 eingetragen. Wenn dann später eine zweite Eingangsdateneinheit von demselben Datenfluss (ebenfalls mit einem Kennsatz 0) von der Zuteilungseinheit 112 empfangen und dem Prozessor NPU-N zugewiesen wird, wird im Speicher N ebenfalls der Kennsatz 0 gespeichert, der die dem Prozessor N zugewiesene Dateneinheit darstellt.
  • Der dritte Speicher 420 enthält Speicherplatz für jeden der Kennsätze, die von den n Verarbeitungseinheiten gerade verarbeitet werden. Für jeden der Kennsätze wird die Kennung des zugewiesenen Prozessors gespeichert, und da die Auflistung der Reihe nach stattfindet, erscheint der erste Prozessor, der einem bestimmten Nachrichtenfluss zugewiesen wird, als Erster im Speicher. In diesem Fall zeigt ein Eintrag 0 im Speicher 422 für den Kennsatz m an, dass der NPU-0 gerade eine Eingangsdateneinheit von diesem Datenfluss verarbeitet, und für den Kennsatz 0 wird gerade eine erste Einheit vom Prozessor NPU-N verarbeitet, wie durch den Speicher 424 gezeigt ist, und eine zweite Einheit wird gerade vom Prozessor NPU-1 verarbeitet, wie durch den Speicher 426 gezeigt ist. Bei einem bestimmten Datenfluss muss die Reihenfolge, in der die Eingangsdateneinheiten an der Zuteilungseinheit ankamen, beibehalten werden, damit die nachfolgende Übertragung desselben Datenflusses in derselben Reihenfolge stattfinden kann, in der er empfangen wurde; folglich ist zu sehen, dass die Kennsatzspeicher 424 und 426 veranlassen, dass die NPUs oder die Verarbeitungseinheiten in der Reihenfolge aufgeführt werden, in der die Eingangsrahmen vom Netzwerk empfangen und den N Prozessoren zugeteilt wurden.
  • 8 zeigt den Aufbau der Abarbeitungseinheit 114 ausführlicher, die bei der Verarbeitung von Eingangsrahmen und der Anwendung der beschriebenen Datenverwaltungsverfahren verwendet wird. Die in dieser Ausführungsform gezeigte Abarbeitungseinheit 114 kommuniziert mit einer Vielzahl von Rundlauf-(Round-Robin-)Einheiten, um die Ausgabe (z.B. verarbeitete Dateneinheiten) der Verarbeitungseinheiten, die in dieser 4 nicht gezeigt sind, zu verteilen. Zu der Vielzahl der Rundlaufeinheiten gehören eine "Up"-Rundlaufeinheit 450 und zwei "Down"-Rundlaufeinheiten, wobei die mit 460 gekennzeichnete Rundlaufeinheit für Zielanschlüsse (eine kleine Anzahl von häufig benutzten Anschlüssen, die in einer ganz bestimmten Weise adressiert werden) vorgesehen ist und die mit 470 gekennzeichnete Rundlaufeinheit zur allgemeinen Verteilung (verarbeitete Daten, die an andere Anschlüsse als die in einer ganz bestimmten Weise adressierten Zielanschlüsse adressiert werden) vorgesehen ist.
  • Die logischen UND-Gatter 452, 462, 472 ermöglichen die Weiterleitung von Rahmen durch die Gatter für die Rundlaufeinheiten 450, 460 beziehungsweise 470. Für das UND-Gatter 452, das der UP-Rundlaufeinheit 450 einen Rahmen liefert, lauten die eingegebenen Vorgaben, dass es ein UP-Rahmen (vom Block UP, der zu dem als "Ready FCB Page" 510 bezeichneten Speicher gehört) ist, dass der Rahmen ein gültiger Rahmen ist (der Anzeiger VF zeigt an, dass es ein gültiger, übertragungsbereiter Rahmen ist), dass das Kennsatzfeld in dem zugehörigen Rahmenkennsatzfeld gültig ist (M01 bis M92) und dass der Kennsatz einem Kopfrahmen (oder dem als erstes erscheinenden Rahmen) eines Datenflusses zugeordnet ist.
  • Die Zuteilungseinheit 112 stellt der Warteschlange 480 für das Einreihen von Kennsätzen (label enqueue 480) zwei Informationen bereit, wenn ein Rahmen einem bestimmten Prozessor zugeteilt wird – einen Kennsatz für den Rahmen auf des Leitung 482 und den Bezeichner des Prozessors, dem der Rahmen zugewiesen wurde, auf der Leitung 484. Der Kennsatz für dem Rahmen kennzeichnet den Datenfluss, zu dem der Rahmen gehört, welcher in der bevorzugten Ausführungsform auf dem MAC plus der Quellenadresse abzüglich der Zieladresse beruht, mit dem Ziel, für jeden Datenfluss eine eindeutige Kennung bereitzustellen, so dass Rahmen von demselben Datenfluss demselben Kennsatz und Rahmen von verschiedenen Datenflüssen unterschiedliche Kennsätze oder Kennungen haben.
  • 9 veranschaulicht ein Format für das Kennsatzfeldelement 500, das zu jedem der N Prozessoren gehörende Daten speichert. Jeder der N Prozessoren hat zwei solche Kennsatzfelder, die zu ihm gehören, eines für den Rahmen, der gerade verarbeitet wird, und eines für einen Rahmen, der verarbeitet wurde und auf seine Übertragung aus dem Verarbeitungskomplex hinaus wartet. Der verarbeitete und übertragungsbereite Rahmen wird in einem Speicher 510 gehalten, der manchmal als "Ready FCB Page" bezeichnet wird, und für jeden der N Prozessoren gibt es einen solchen Speicher.
  • Das Kennsatzfeldelement 500 enthält einen Kennsatz L, ein Anfangsfeld H, ein Feld "Gültig" V, ein Endefeld T und ein Feld "Nächster" N. Der Kennsatz L wird vom Inhalt der Nachricht abgeleitet und stellt eine eindeutige Kennung für jeden der Datenflüsse dar. Das Anfangsfeld H kennzeichnet den Anfang eines Datenflusses oder einer Kette von zusammengehörenden Rahmen, die von den N Verarbeitungseinheiten gerade abgewickelt werden, als gerade in Verarbeitung befindliche Arbeit oder aber als verarbeitete Rahmen, die auf ihre Übertragung aus dem Verarbeitungskomplex hinaus warten. Jeder Datenfluss, der in dem aus N Prozessoren bestehenden Verarbeitungskomplex verarbeitet wird, hat irgendwo in den N Prozessoren einen Kopf oder einen Anfang (oder einen zuerst empfangenen Rahmen für diesen Datenfluss), und dieser Anfang wird als sein "Kopf" mit einer 1 im Anfangsfeld H für sein zugehöriges Kennsatzfeldelement gekennzeichnet. Ebenso hat jeder Datenfluss in den Prozessoren auch einen letzten Rahmen, der sich gerade in den N Prozessoren befindet, und dieser letzte Rahmen wird durch eine 1 im Endefeld T als das Ende gekennzeichnet.
  • Das Feld "Gültig" V zeigt an, ob der Prozessor echte Daten enthält (was nach einer Verarbeitung der Fall wäre), was durch eine 1 im Feld "Gültig" angegeben wird, oder ob er keine echten Daten enthält, was durch eine 0 im Feld "Gültig" V angegeben wird. Wenn die Verarbeitung eingangs beginnt, sind in dem System keine echten oder gültigen Daten vorhanden, so dass das Feld "Gültig" V als Teil der Initialisierung des Systems auf 0 gesetzt wird. Später, wenn Daten aus dem mit "Ready FCB Page" 510 bezeichneten Speicher für einen bestimmten Prozessor ausgelesen werden, wird das Feld "Gültig" V, das dem FCB Page dieser Prozessoren entspricht, auf 0 gesetzt, was anzeigt, dass der Prozessor keine gültigen Daten mehr hat, die diesem Kennsatz entsprechen (da die Daten im FCB Page bereits an die Rundlaufeinheiten weitergereicht wurden, obwohl der Prozessor nach wie vor gültige Daten in dem anderen zu diesem Prozessor gehörenden Kennsatzfeld haben kann, da er selbst möglicherweise gerade an einem anderen Rahmen arbeitet). Das Feld "Nächster" N zeigt das Kennsatzfeld an, das zu dem nächsten Rahmen in demselben Datenfluss gehört – ein anderes der 2N Kennsatzfelder, die zu den N Prozessoren gehören. Eine Warteschlange 480 für das Einreihen von Kennsätzen empfängt von der Zuteilungseinheit eine Nachricht für jede Eingangsdateneinheit oder jeden Rahmen, die besagt, dass ein bestimmter Rahmen mit seiner Kennung für den Datenfluss zugeteilt wurde, und den Prozessor angibt, dem der Rahmen zugeteilt wurde.
  • 10 veranschaulicht den Datenfluss der Warteschlange 480 für das Einreihen von Kennsätzen von 4. Wenn ein Rahmen von der Zuteilungseinheit 112 einem der n Prozessoren zugeteilt wird, werden am Block 600 auf der Leitung 482 ein Kennsatz für eine Eingangsdateneinheit oder einen Rahmen an die Warteschlange 480 für das Einreihen von Kennsätzen und auf der Leitung 484 die Angabe, welcher der n Prozessoren den Rahmen abwickelt, gesendet. Die erste Verarbeitung durch die Warteschlange 550 für das Einreihen von Kennsätzen erfolgt am Block 602, um festzustellen, ob das Feld "Gültig" V den Wert 1 für den einen Speicher hat, auf den das erste Kennsatzfeld zeigt. Wenn das Feld "Gültig" V den Wert 1 hat, ist der Speicher, auf den gezeigt wird, belegt, und die Daten sollten in dem anderen Speicher gespeichert werden, wie vom Block 606 angegeben wird, andernfalls sollte der Speicher, auf den gezeigt wird, am Block 604 verwendet werden. Am Block 650 wird dann das Feld "Gültig" V für den entsprechenden Speicher auf 1 gesetzt, um anzuzeigen, dass in diesem Speicher gültige Daten gespeichert werden, und am Block 640 wird der Endeanzeiger T für den aktuellen Speicherplatz gesetzt, um anzuzeigen, dass dies der letzte Rahmen des aktuellen Datenstroms ist (bis der nächste Rahmen für denselben Datenfluss empfangen wird, wobei das Endefeld T zu diesem Zeitpunkt dann zurückgesetzt wird). Als Nächstes wird der Kennsatz am Block 610 mit den aktuellen Kennsätzen verglichen, die von beliebigen der Prozessoren verarbeitet werden (natürlich muss das Feld "Gültig" V bei diesen Kennsätzen den Wert 1 haben, was anzeigt, dass dies ein gültiger Rahmen ist). Bei diesem Vergleich stellt sich entweder heraus, dass der aktuelle Kennsatz gleich einem Kennsatz ist, der bereits verarbeitet wird, wobei die Steuerung in diesem Fall dem Block 670 übergeben wird, oder dass er mit keinem Kennsatz übereinstimmt, der gerade verarbeitet wird, wobei die Steuerung in diesem Fall dem Block 630 übergeben wird. Wenn es eine Übereinstimmung mit einem der aktuellen Kennsätze gibt, ist der Rahmen Teil eines bestehenden Datenflusses, so dass das Endefeld T am Ende des vorhergehenden Datenflusses am Block 670 zurückgesetzt wird (so dass T = 0 ist), und der Zeiger auf das Feld "Nächster" für dieses Kennsatzfeld wird so gesetzt, dass er auf die Position des aktuellen Rahmens zeigt. Am Block 680 wird das Anfangsfeld H dann auf 0 gesetzt, was anzeigt, dass der aktuelle Rahmen nicht der Anfang eines Datenflusses ist. Wenn der Kennsatz für den aktuellen Rahmen ungleich einem gerade gespeicherten Kennsatz war, stellt der aktuelle Rahmen einen neuen Datenfluss dar, und der aktuelle Rahmen ist sein Anfang, so dass das Anfangsfeld H auf 1 gesetzt wird, um diesen Status am Block 630 anzuzeigen. Nach der Verarbeitung des Blocks 630 oder des Blocks 680, um die entsprechenden Markierungen festzulegen, insbesondere die des Anfangsfelds H, ist der Prozess der Verknüpfung mit bestehenden Datenflüsse und der Festlegung der Felder oder Markierungen abgeschlossen.
  • In 11 ist der Prozess zur Verarbeitung oder zur Lieferung eines Rahmens aus den Prozessoren hinaus gezeigt. Zuerst wird der Anzeiger für das erste Feld am Block 710 umgedreht, so dass der Zeiger auf den anderen Speicher als das erste oder nächste Feld für den Prozessor zeigt. Am Block 720 wird dann das Feld "Gültig" V auf 0 zurückgesetzt, was anzeigt, dass die Daten nicht mehr gültig sind (der Rahmen wurde hinaus versandt, und die Daten stellen keinen Rahmen dar, der gerade verarbeitet wird). Der Block 725 prüft, ob das Endefeld T gesetzt ist (T = 1), was anzeigt, dass dies der letzte Rahmen eines bestimmten Datenflusses ist. Wenn ja, schaltet die Steuerung zum Block 740, was anzeigt, dass der Prozess abgeschlossen ist. Wenn nicht, wird am Block 730 der nächste Rahmen in der Folge lokalisiert (von dem Zeiger im Feld "Nächster"), und sein Kopfbit oder seine Markierung H wird so gesetzt, dass sie anzeigt, dass er der erste Rahmen in diesem Datenfluss ist, der sich gerade in den Prozessoren befindet. Das Setzen der Markierungen durch den Block 730 ist dann abgeschlossen, wie vom Block 740 angezeigt wird.
  • 12 veranschaulicht das System der vorliegenden Erfindung anhand eines Beispiels, das zeigt, wie die vorstehend beschriebene Abarbeitungseinheit mit der Logik von 10 mehreren Datenflüssen Rechnung tragen könnte. Die N Prozessoren mit der Zuteilungseinheit 112 und der Abarbeitungseinheit arbeiten schon seit einiger Zeit, so dass 12 eine Momentaufnahme der Daten darstellt, die in einem Teil der Abarbeitungseinheit gespeichert sind, insbesondere mit Bezug auf den Kennsatzspeicher. Wie in dieser Figur gezeigt ist, ist die Warteschlange für das Einreihen von Kennsätzen mit der Vielzahl der Kennsatzspeicher, zwei für jeden der N Prozessoren, verbunden. Jeder der Prozessoren hat auch einen ihm zugeordneten Ausgabepufferspeicher (der manchmal als "Ready FCB Page" bezeichnet wird) für diejenigen verarbeiteten Rahmen, die auf ihre Übertragung an die drei gezeigten Rundlaufeinheiten warten. Jedem Kennsatzspeicher des Paares von Kennsatzspeichern ist der erste Kennsatz zugeordnet, um anzuzeigen, welcher der Kennsatzspeicher zuerst empfangen wurde (und wenn beide Kennsatzspeicher gültig sind, stellt der erste Kennsatz denjenigen dar, der sich im Ready-FCB-Page-Pufferspeicher befindet, und der zweite oder später empfangene Kennsatz stellt denjenigen dar, der gerade in dem jeweiligen Prozessor verarbeitet wird). Zwar sind in dieser Figur fünf getrennte Datenflüsse gezeigt, doch hängt die Anzahl der zu einem bestimmten Zeitpunkt in Verarbeitung befindlichen Datenflüsse vom System ab (insbesondere von seiner Größe und dem Netzwerkverkehr) und kann sich mit der zeit verändern. In diesem Beispiel sind die zehn Prozessoren als die Prozessoren 0 bis 9 gekennzeichnet, und die Kennsatzspeicher sind als die Speicher M01 und M02 für den Prozessor 0 bis hin zu den Kennsatzspeichern M91 und M92 für den Prozessor 9 gekennzeichnet, doch ist die Anzahl der Prozessoren eine Gestaltungsfrage, und auf Wunsch kann diese Zahl geändert werden. Ein erster Datenfluss mit der Kennung A beginnt am Kennsatzspeicher M01. Wie durch die Angabe (H = 1) gezeigt ist, stellt dieser Kennsatzspeicher M01 (und der entsprechende Verweis auf den Prozessor 0) einen Anfang einer Kette oder eines Datenflusses dar. Das Feld "Nächster" (NEXT, N) des Kennsatzspeichers M01 zeigt auf den Kennsatzspeicher M21, um anzuzeigen, dass der Prozessor 2 die nächste zu diesem Datenfluss gehörende Dateneinheit verarbeitet. Das Feld "Nächster" des Kennsatzspeichers M21 zeigt auf den Kennsatzspeicher M52, was anzeigt, dass der Prozessor 5 den nächsten Teil dieses Datenflusses hat. Das gesetzte Endefeld für den Kennsatzspeicher M52 zeigt an, dass dies der letzte Teil dieses Datenflusses ist, der gerade in den N Prozessoren verarbeitet wird. Die Abfolge der Datenflüsse in diesem Beispiel ist durch den Pfeil A1 gezeigt, der vom Kennsatzspeicher M01 auf den Kennsatzspeicher M21 zeigt, und durch den Pfeil A2, der vom Kennsatzspeicher M21 auf den Kennsatzspeicher M52 zeigt, um die logische Verbindung zwischen Elementen des Datenflusses zu veranschaulichen (die Pfeile stellen die Zeiger im Feld "Nächster" logisch dar und sind in der tatsächlichen Ausführung physisch nicht vorhanden). Genauso zeigt ein Datenfluss vom Kennsatzspeicher M02 zum Kennsatzspeicher M11 mittels des Pfeils A3 eine Reihenfolge in demselben Datenfluss an (obwohl sich dieser Datenfluss von dem Datenfluss unterscheidet, der in Verbindung mit den Kennsatzspeichern M01, M21 und M52 beschrieben wurde). Ein dritter Datenfluss ist mit dem Pfeil A4 in Verbindung mit den Kennsatzspeichern M31 und M42 angegeben, und ein vierter Datenfluss ist mit dem Pfeil A5 zwischen den Kennsatzspeichern M71 und M72 angegeben. Ein fünfter Datenfluss ist schließlich am Kennsatzspeicher M41 angegeben, der keinen Pfeil hat, da es ein Datenfluss ist, der derzeit nur einen einzigen Kennsatzspeicher enthält. Dieser Kennsatzspeicher M41 ist sowohl der Anfang als auch das Ende des Datenflusses und hat kein Feld "Nächster", da diesem Datenfluss kein weiterer Kennsatzspeicher zugeordnet ist.
  • Man erinnere sich, dass es zwei Kennsatzspeicher gibt, die einem einzigen Prozessor zugeordnet sind, wobei einer der Kennsatzspeicher eine abgeschlossene oder verarbeitete Dateneinheit darstellt, die in einem Pufferspeicher abgelegt und manchmal als "Ready FCB Page" bezeichnet wird und bereit zur Weitergabe an die entsprechende Rundlaufeinheit ist, um von dem Verarbeitungskomplex je nach Gegebenheit entweder "up" oder "down" übertragen zu werden, wobei sie bei "Up"-Übertragungen an die Schnittstelleneinheit und bei "Down"-Übertragungen zurück zum Datenübertragungsnetzwerk übertragen wird. In diesem Fall enthalten der Prozessor 0, der Prozessor 4 und der Prozessor 7 Daten in den beiden zugehörigen Kennsatzspeichern. Zu jeder "Ready FCB Page" gehört auch ein UP-Feld (das anzeigt, ob dies eine "Up"- oder eine "Down"-Seite ist) sowie ein Anzeiger, der anzeigt, ob der Rahmen in dem Fall, in dem es sich um eine "Down"-Seite handelt, an einen Zielanschluss oder an einen allgemeinen Anschluss gerichtet ist, womit festgelegt wird, ob eine "Down"-Seite an die Rundlaufeinheit mit dem "Down"-Zielanschluss oder an die Rundlaufeinheit mit dem allgemeinen Anschluss übertragen wird. Wenn der zu einem früheren Zeitpunkt empfangene Rahmen für den Prozessor 0 der Kennsatzspeicher M02 war und es sich dabei sowohl um einen Anfang eines Datenflusses als auch um einen "Up"-Rahmen handelt, der von der "Up"-Rundlaufeinheit zur nächsten Übertragung aus dem Prozessorkomplex und dessen Pufferspeicher hinaus ausgewählt worden war, werden die FCB Page und die zugehörigen Datenfelder aus "Ready FCB Page" entfernt, und die Daten werden an die "Up"-Rundlaufeinheit übertragen. Anschließend wird der Anzeiger für den ersten Kennsatz umgeschaltet, um anzuzeigen, dass nun der andere Kennsatzspeicher M01 für den Prozessor 1 der erste ist, und das Feld "Gültig" V für den Kennsatzspeicher M02 wird auf 0 gesetzt, was anzeigt, dass dieser Kennsatzspeicher nicht mehr aktiv oder gültig ist, und das Feld "Gültig" V für die zugehörige FCB Page wird auf 0 zurückgesetzt.
  • Die vorliegende Erfindung unterstützt neue Datenflüsse, ohne die bestehenden Datenflüsse zu stören und ohne im Voraus Kenntnis von einem neuen Datenfluss haben zu müssen. Ein Paket, das einen neuen Datenfluss darstellt (zum Beispiel eine Nachricht von einer der Verarbeitungseinheiten über ihren Status), wird einfach mit seinen Kenndaten und ohne Verweis auf einen anderen Datenfluss gespeichert. Da er keine Kennung besitzt, kann seine Kennung auch nicht mit der Kennung von einem der bestehenden Datenflüsse mit einem gesetzten Feld "kein Kennsatz" übereinstimmen – eine Nachricht, die jederzeit versendet werden kann.
  • Die vorliegende Erfindung gestattet auch, die Verarbeitung des Datenflusses in der jeweiligen Reihenfolge mit einem Löschbefehl zu überschreiben, indem sie dem System ermöglicht, abgeschlossene Rahmen in der Reihenfolge, in der die abgeschlossenen Rahmen empfangen werden, zu verarbeiten und dabei die Kettung des Kennsatzfeldes (die Zeiger "Nächster" und das Erfordernis, dass ein bestimmter Rahmen ein Kopfrahmen sein muss, bevor er Zugriff auf die Rundlaufeinheiten haben kann, die die Rahmen weiterleiten) unberücksichtigt zu lassen. Dies kann bewerkstelligt werden, indem man auf FCB Page "kein Kennsatzfeld" erzwingt.
  • Ein einzelner Datenfluss bleibt so lange gesperrt, bis der Kopf des Datenflusses verarbeitet worden ist, da im normalen Betrieb (ohne die Lösch-Alternative "flush") nur Rahmen, die den Kopf des Nachrichtenflusses bilden, für die Abarbeitungseinheit zum Versand an die Rundlaufeinheiten in Betracht kommen. Jeder Datenfluss hat jedoch seinen eigenen Kopf, so dass ein Datenfluss gesperrt werden kann, die anderen Datenflüsse ihre Verarbeitung aber fortsetzen und abgeschlossene Dateneinheiten weiterhin ohne Unterbrechung oder ungehindert und ohne eingreifen zu müssen an die Rundlaufeinheiten versenden können. Dies ist besonders in dem Fall von Nutzen, in dem ein einzelner Datenfluss angehalten wird (zum Beispiel, weil ein Prozessor ausfällt oder ein Element eines einzelnen Datenflusses nicht verarbeiten kann), da die anderen Datenflüsse dann nicht angehalten werden. Andernfalls würde die gesamte Verarbeitung still stehen, bis die Sperrung des einzelnen Datenflusses aufgehoben werden würde.
  • Natürlich ist es für den Fachmann in dem entsprechenden Bereich der Technik in Anbetracht der vorstehenden Beschreibung der bevorzugten Ausführungsform zusammen mit den beigefügten Zeichnungen offensichtlich, dass an der vorliegenden Erfindung viele Änderungen vorgenommen werden können. Zum Beispiel könnten die Kennsätze, die gespeichert werden, auf andere Arten erzeugt werden, die nicht auf dem Inhalt der Nachricht beruhen, oder sie könnten einfach eine fortlaufende Nummerierung der von der Zuteilungseinheit gekennzeichneten Datenflüsse sein.

Claims (12)

  1. Vorrichtung, die Folgendes umfasst: ein Halbleitersubstrat; N Verarbeitungseinheiten (110), die auf dem Substrat hergestellt werden, wobei N > 1; einen ersten internen Datenspeicher, der auf dem Substrat hergestellt wird, wobei die N Verarbeitungseinheiten auf den Datenspeicher zur Speicherung von Daten zugreifen können; eine Zuteilungseinheit (112), die funktionsmäßig mit den N Verarbeitungseinheiten verbunden ist, um von einer der N Verarbeitungseinheiten eine Eingangsdateneinheit zu empfangen und an eine der N Verarbeitungseinheiten eine Eingangsdateneinheit zu senden; einen Klassifizierer (118), der mit der Zuteilungseinheit verbunden ist, wobei der Klassifizierer eine Vergleichseinheit (114) enthält, um für eine Eingangsdateneinheit ein Datenformat zu ermitteln und um Folgendes zu erzeugen und in dem internen Datenspeicher zu speichern: Ausgangsanzeiger für die Eingangdateneinheit, Ausgangsanzeiger, die das Datenformat der Eingangsdateneinheit und eine Startadresse für die Eingangsdateneinheit angeben, Anzeiger und die Startadresse, die für die eine der N Verarbeitungseinheiten während deren Verarbeitung der Eingangsdateneinheit zur Verfügung stehen und bei der Verarbeitung der Eingangsdateneinheit verwendet werden; und eine Abarbeitungseinheit (114), die sich auf dem Halbleitersubstrat befindet und funktionsmäßig mit den N Verarbeitungseinheiten (110) verbunden ist, um die von der einen der N Verarbeitungseinheiten (110) verarbeitete Dateneinheit zu empfangen.
  2. Vorrichtung nach Anspruch 1, wobei die Vergleichseinheit einen Test für ein Feld eines virtuellen lokalen Netzwerks beinhaltet, das in den Eingangsinformationsdaten enthalten ist, und die erzeugten Ausgangsanzeiger einen Anzeiger zur Angabe des Vorhandenseins des Feldes des virtuellen lokalen Netzwerks in der Eingangsinformationseinheit beinhalten.
  3. Vorrichtung nach den Ansprüchen 1 oder 2, wobei die Anzeiger des Weiteren den Bezeichner der einen der N Verarbeitungseinheiten (110) enthalten, der die Eingangsinformationseinheit zugewiesen wurde.
  4. Vorrichtung nach Anspruch 3, die des Weiteren eine Markierung enthält, die anzeigt, dass die verarbeiteten Informationseinheiten (110) von dem Substrat in der Reihenfolge gesendet werden sollen, in der sie empfangen werden, wobei die Abarbeitungseinheit (114) auf die Markierung, verarbeitete Informationseinheiten bei Fertigstellung durch eine der N Verarbeitungseinheiten (110) zuzuteilen, reagiert.
  5. Vorrichtung nach Anspruch 4, wobei der Klassifizierer (118) ein System enthält, um für jede Eingangsinformationseinheit eine Kennung, die deren Datenfluss anzeigt, zu erzeugen und im internen Datenspeicher zu speichern, und um spätere Informationseinheiten von demselben Datenfluss mit der früheren Informationseinheit von demselben Datenfluss zu verknüpfen, wobei die frühere Informationseinheit in den Prozessoren (110) als die erste Informationseinheit in einem bestimmten Datenfluss gekennzeichnet wird und die Übertragung von Informationseinheiten von den Verarbeitungseinheiten (110) auf diejenigen Informationseinheiten beschränkt wird, die als die erste Informationseinheit für den jeweiligen Datenfluss gekennzeichnet sind.
  6. Vorrichtung nach einem der Ansprüche 1 bis 5, wobei die Zuteilungseinheit (112) des Weiteren eine Kennung für jede Informationseinheit und den Bezeichner der Verarbeitungseinheit, der die Informationseinheit zur Verarbeitung zugeteilt wurde, fortlaufend in einer Warteschlange speichert; und wobei die Abarbeitungseinheit (114) darüber hinaus mit der fortlaufenden Warteschlange verbunden ist und die Kennung für jede Informationseinheit, die von der Zuteilungseinheit zugewiesen wird, und den Bezeichner der Verarbeitungseinheit, der die Informationseinheit zugeteilt wurde, verwendet, um die verarbeiteten Informationseinheiten in derselben Reihenfolge, in der die Informationseinheiten empfangen wurden, zusammenzusetzen.
  7. Verfahren zur Verarbeitung einer Eingangsinformationseinheit, das die folgenden Schritte umfasst: Empfangen der Eingangsinformationseinheit an der Zuteilungseinheit (112); Senden der Eingangsinformationseinheit von der Zuteilungseinheit (112) an einen Prozessor einer Vielzahl von Prozessoren (110) zur Verarbeitung; Lesen von ausgewählten Bits aus der Eingangsinformationseinheit, während die Informationseinheit von der Zuteilungseinheit (112) an den einen Prozessor der Vielzahl der Prozessoren (110) geschickt wird; Prüfen der aus der Eingangsinformationseinheit gelesenen Bits gegen bekannte Anzeiger, die vorher festgelegte Arten von Eingangsinformationseinheiten kennzeichnen, um die Art und das Protokoll der Eingangsinformationseinheit zu kennzeichnen oder um anzugeben, dass die Eingangsinformationseinheit keiner vorher festgelegten kennzeichnenden Art einer Eingangsinformationseinheit entspricht; und auf der Grundlage der Ergebnisse der Prüfung der Bits aus der Eingangsinformationseinheit Speichern von Anzeigern, die die Art der Eingangsinformationseinheit anzeigen, sowie anderer Informationen über diese Eingangsinformationseinheit; und an der einen Verarbeitungseinheit einer Vielzahl von Verarbeitungseinheiten (110) Verwenden der gespeicherten Anzeiger und der anderen gespeicherten Informationen über die Eingangsinformationseinheit bei der Verarbeitung der Eingangsinformationseinheit.
  8. Verfahren, das die Schritte nach Anspruch 7 beinhaltet, wobei der Schritt der Erzeugung der Anzeiger und der Speicherung der Anzeiger stattfindet, während die Eingangsinformationseinheit an einen der Vielzahl der Prozessoren (110) gesendet wird, so dass, wenn der eine der Vielzahl der Prozessoren (110) die Eingangsinformationseinheit verarbeitet, die Anzeiger und die anderen Informationen ermittelt und gespeichert worden sind und der eine der Vielzahl der Prozessoren (110) die Anzeiger und andere Informationen über die Eingangsinformationseinheit bei der Verarbeitung dieser Eingangsinformationseinheit nutzt.
  9. Verfahren, das die Schritte nach Anspruch 7 oder Anspruch 8 und darüber hinaus den Schritt der Erzeugung einer Startadresse für die weitere Verarbeitung der Eingangsinformationseinheit auf der Grundlage des Inhalts der Eingangsinformationseinheit beinhaltet und wobei der Schritt der Verwendung der gespeicherten Anzeiger an der einen der Vielzahl der Verarbeitungseinheiten (110) die Verwendung der Startadresse beinhaltet.
  10. Verfahren, das die Schritte nach Anspruch 7, 8 oder 9 beinhaltet, wobei der Schritt des Lesens und Prüfens in Hardware ausgeführt wird, wodurch der Prozess in einer geringeren Anzahl von Verarbeitungszyklen durchgeführt wird, als wenn der Schritt des Lesens und Prüfens durch Ausführung einer Reihe von gespeicherten Befehlen durchgeführt würde.
  11. Verfahren, das die Schritte nach Anspruch 10 beinhaltet, wobei der Schritt der Verwendung von Hardware zur Durchführung der Feststellung, um welche Art von Eingangsinformationseinheit es sich handelt, und der Speicherung von Anzeigern innerhalb von zwei Maschinenzyklen durchgeführt wird, wobei der Schritt der Verwendung der Anzeiger in einer der Vielzahl der Verarbeitungseinheiten (110) zu einem früheren Zeitpunkt stattfindet, als wenn die Tests durchgeführt würden, indem eine Reihe von programmierten Befehlen nacheinander ausgeführt würde.
  12. Verfahren, das die Schritte nach einem der Ansprüche 7 bis 11 und darüber hinaus die folgenden Schritte beinhaltet: Erzeugen und Speichern einer Kennung für die Eingangsinformationseinheit; Speichern des Bezeichners der Verarbeitungseinheit, der die Informationseinheit zugewiesen wurde, in Verbindung mit der Kennung; und Verwenden der Kennung und des Bezeichners der Verarbeitungseinheit (110), der die Informationseinheit zugewiesen wurde, um verarbeitete Informationseinheiten in der Reihenfolge zu senden, in der sie empfangen wurden.
DE60015186T 2000-01-07 2000-12-21 Verfahren und system für rahmen- und protokollklassifikation Expired - Lifetime DE60015186T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US09/479,027 US6775284B1 (en) 2000-01-07 2000-01-07 Method and system for frame and protocol classification
US479027 2000-01-07
US479028 2000-01-07
US09/479,028 US6633920B1 (en) 2000-01-07 2000-01-07 Method and system for network data flow management with improved completion unit
PCT/GB2000/004950 WO2001050259A1 (en) 2000-01-07 2000-12-21 Method and system for frame and protocol classification

Publications (2)

Publication Number Publication Date
DE60015186D1 DE60015186D1 (de) 2004-11-25
DE60015186T2 true DE60015186T2 (de) 2006-02-02

Family

ID=27046095

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60015186T Expired - Lifetime DE60015186T2 (de) 2000-01-07 2000-12-21 Verfahren und system für rahmen- und protokollklassifikation

Country Status (19)

Country Link
EP (1) EP1244964B1 (de)
JP (1) JP4095802B2 (de)
KR (1) KR100505498B1 (de)
CN (1) CN100339832C (de)
AT (1) ATE280411T1 (de)
AU (1) AU2016601A (de)
BR (2) BRPI0015717B8 (de)
CA (1) CA2385339C (de)
CZ (1) CZ20021442A3 (de)
DE (1) DE60015186T2 (de)
ES (1) ES2226958T3 (de)
HK (1) HK1054098A1 (de)
HU (1) HUP0203823A2 (de)
IL (1) IL150587A0 (de)
MX (1) MXPA02005419A (de)
MY (1) MY122998A (de)
PL (1) PL355786A1 (de)
TW (1) TW526453B (de)
WO (1) WO2001050259A1 (de)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002065259A1 (en) * 2001-02-14 2002-08-22 Clearspeed Technology Limited Clock distribution system
US6973503B2 (en) 2002-05-23 2005-12-06 International Business Machines Corporation Preventing at least in part control processors from being overloaded
US7242682B1 (en) 2002-10-09 2007-07-10 Storage Technology Corporation Hardware frame modifier apparatus and method for storage virtualization
US7715350B2 (en) 2003-06-12 2010-05-11 Broadcom Corporation Classifier for communication device
CN100438492C (zh) * 2003-09-30 2008-11-26 美国博通公司 用于IEEE802.11g接收器的分类器
FR2867642B1 (fr) * 2004-03-09 2006-08-18 Cit Alcatel Dispositif et procede de traitement de trames a champ a utilisation multiprotocolaire, pour un reseau de communications
CN100466594C (zh) * 2004-10-09 2009-03-04 华为技术有限公司 一种对报文进行分类处理的方法
CN100421481C (zh) * 2005-03-09 2008-09-24 华为技术有限公司 基站中处理帧协议控制帧的方法
US7881475B2 (en) 2005-05-17 2011-02-01 Intel Corporation Systems and methods for negotiating security parameters for protecting management frames in wireless networks
KR100713483B1 (ko) 2005-08-05 2007-04-30 삼성전자주식회사 연성 재질을 이용한 슬라이딩 타입 휴대 단말기
US8229525B2 (en) 2006-09-26 2012-07-24 Samsung Electronics Co., Ltd. Semi-automatic sliding device for a portable terminal and portable terminal having the same
KR100800769B1 (ko) 2007-01-29 2008-02-01 삼성전자주식회사 멀티미디어 휴대 통신 장치
CN101242344B (zh) * 2007-02-05 2013-03-20 财团法人工业技术研究院 网络封包分类器与其方法
KR100891775B1 (ko) 2007-05-14 2009-04-07 삼성전자주식회사 멀티미디어 휴대 전자 장치
TWI387268B (zh) * 2009-04-03 2013-02-21 Hon Hai Prec Ind Co Ltd 路由器及其處理IPv6資料包的方法
RU2620989C2 (ru) 2011-04-06 2017-05-30 Роберт Бош Гмбх Способ и устройство для повышения пропускной способности при передаче данных в последовательной шинной системе
AU2012238884B2 (en) 2011-04-06 2017-07-27 Robert Bosch Gmbh Method and apparatus for adapting the data transmission security in a serial bus system
ES2549640T3 (es) 2011-04-26 2015-10-30 Robert Bosch Gmbh Método y dispositivo de transmisión en serie de datos adaptada a la capacidad de memoria
EP2726999B1 (de) 2011-06-29 2015-09-09 Robert Bosch GmbH Verfahren und vorrichtung zur seriellen datenübertragung mit flexibler nachrichtengrösse und variabler bitlänge
WO2014038582A1 (ja) * 2012-09-04 2014-03-13 日本電気株式会社 パケット振分装置、パケット振分方法、およびパケット振分プログラム
US10579578B2 (en) * 2017-10-24 2020-03-03 Micron Technology, Inc. Frame protocol of memory device
WO2020062181A1 (zh) * 2018-09-29 2020-04-02 Oppo广东移动通信有限公司 无线通信方法、终端设备和接入网设备
CN112260896B (zh) * 2020-10-16 2022-05-10 山东云海国创云计算装备产业创新中心有限公司 一种网络传输测试方法、装置、设备及可读存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5357632A (en) * 1990-01-09 1994-10-18 Hughes Aircraft Company Dynamic task allocation in a multi-processor system employing distributed control processors and distributed arithmetic processors
US5870394A (en) * 1996-07-23 1999-02-09 Northern Telecom Limited Method and apparatus for reassembly of data packets into messages in an asynchronous transfer mode communications system
US5748905A (en) * 1996-08-30 1998-05-05 Fujitsu Network Communications, Inc. Frame classification using classification keys

Also Published As

Publication number Publication date
MXPA02005419A (es) 2002-11-29
ATE280411T1 (de) 2004-11-15
PL355786A1 (en) 2004-05-17
CZ20021442A3 (cs) 2002-07-17
HUP0203823A2 (en) 2003-05-28
BRPI0015717B8 (pt) 2020-05-26
BR0015717A (pt) 2002-07-23
DE60015186D1 (de) 2004-11-25
CA2385339A1 (en) 2001-07-12
CA2385339C (en) 2005-06-28
IL150587A0 (en) 2003-02-12
HK1054098A1 (en) 2003-11-14
WO2001050259A1 (en) 2001-07-12
EP1244964B1 (de) 2004-10-20
KR20020071911A (ko) 2002-09-13
JP4095802B2 (ja) 2008-06-04
JP2003519944A (ja) 2003-06-24
BRPI0015717B1 (pt) 2018-03-13
EP1244964A1 (de) 2002-10-02
AU2016601A (en) 2001-07-16
MY122998A (en) 2006-05-31
ES2226958T3 (es) 2005-04-01
CN100339832C (zh) 2007-09-26
KR100505498B1 (ko) 2005-07-29
CN1433543A (zh) 2003-07-30
TW526453B (en) 2003-04-01

Similar Documents

Publication Publication Date Title
DE60015186T2 (de) Verfahren und system für rahmen- und protokollklassifikation
DE60031516T2 (de) Verfahren und gerät für die verwaltung eines netzflusses in einer hochleistungs-netzschnittstelle
DE60120790T2 (de) Methode und gerät zum durchsuchen von tabellen in hoher geschwindigkeit
DE10297269B4 (de) Kennzeichnung von Paketen mit einem Nachschlageschlüssel zur leichteren Verwendung eines gemeinsamen Paketweiterleitungs-Cache
DE60221030T2 (de) Verfahren, einrichtung und rechnerprogramm für die entkapselung und verkapselung von paketen mit mehreren kopffeldern
DE69934192T2 (de) Verfahren und Einrichtung zur Netzverbindung mittels Brücken
DE60203380T2 (de) Verfahren und vorrichtung zur mehrfachsendung
DE60222575T2 (de) Verfahren zur Generierung eines DFA-Automaten, wobei Übergänge zwecks Speichereinsparung in Klassen gruppiert werden
Bailey et al. PathFinder: A Pattern-Based Packet Classifier.
DE60305035T2 (de) Anpassen des längsten präfix unter verwendung von baumartigen "bitmap" datenstrukturen
DE112020002498T5 (de) System und verfahren zur erleichterung einer effizienten paketweiterleitung in einer netzwerkschnittstellensteuerung (nic)
DE60024228T2 (de) Dynamische zuweisung verkehrsklassen an einer prioritätswarteschlange in einer paketbeförderungsvorrichtung
DE60126222T2 (de) Verbundene Netzvermittlungskonfiguration
DE60127794T2 (de) Gebundene Netzschalterkonfiguration
DE60133352T2 (de) Gebundene Netzvermittlungskonfiguration
DE69825596T2 (de) System und verfahren für ein vielschicht-netzelement
DE60307241T2 (de) Vlan tabellenverwaltungssystem in hardwarebasierten paketvermittlungsstellen für speichereffizientes auslesen und einschreiben
DE60016574T2 (de) Verfahren und vorrichtung zur belastungsverteilung uphänging von datenflussen
DE69935683T2 (de) Paketversendegerät mit einer Flussnachweistabelle
DE60018780T2 (de) Verfahren und vorrichtung zur erkennung von datenpaketen in echtzeit in dem anschluss einer netzwerkvermittlungsstelle
DE69908295T2 (de) Virtuelles lokales netz mit mehrfachsendeschutz
DE60216938T2 (de) Gleichzeitiges durchsuchen verschiedener tabellen in einem inhaltsadressierbaren speicher
DE60126223T2 (de) Anordnung zur Verbindung von Netzvermittlungsstellen
DE60029710T2 (de) Schnelle und adaptive Paketverarbeitungsvorrichtung und Verfahren unter Verwendung von Eingangspaketenszusammenfassungsinformation
DE10393053B4 (de) Bereichsbasierte Mehrfeldkorrelation - Paketklassifizierung mit logorithmischem Zeitverhalten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7