-
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.