-
TECHNISCHES
GEBIET
-
Die
vorliegende Erfindung betrifft eine Vorrichtung für Datenübertragungsnetze,
wie sie zum Verbinden von Datenverarbeitungssystemen oder Computern
unterschiedlicher Art und Leistungsfähigkeit verwendet wird, und
Komponenten für
eine solche Vorrichtung. Insbesondere betrifft die vorliegende Erfindung
eine skalierbare Vermittlungsvorrichtung und zum Aufbau einer solchen
Vorrichtung geeignete Komponenten. Die vorliegende Erfindung betrifft
eine verbesserte und multifunktionale Schnittstelleneinheit und
die Kombination dieser Einheit mit anderen Elementen zum Erstellen
einer Netzvermittlungseinheit (Netzwerkschalter) für Mediengeschwindigkeiten.
Ferner betrifft die Erfindung Verfahren zum Betreiben eines solchen
Vorrichtung, welche die Datenverarbeitungsleistung von Netzvermittlungseinheiten
verbessert.
-
ZUGRUNDELIEGENDE TECHNIK
-
Die
folgende Beschreibung setzt Kenntnisse über Datenübertragungsnetze und die in
solchen Datenübertragungsnetzen
verwendeten Vermittlungseinheiten (switch) und Leitwegrechner (router)
voraus. Insbesondere setzt die Beschreibung die Kenntnis des ISO-Modells
der Netzwerkarchitektur voraus, welche den Netzbetrieb in Schichten
aufteilt. Eine typische auf dem ISO-Modell basierende Architektur
geht aus von der Schicht 1 (oft auch als „L1" bezeichnet), die
den physischen Pfad oder das Medium darstellt, durch welches Signale
zu den Schichten 2, 3, 4 und so weiter
bis zur Schicht 7 gelangen, wobei in der letzteren Schicht
die Anwendungsprogramme in einem mit dem Netz verbundenen Computersystem
laufen. Im vorliegenden Dokument beziehen sich die Begriffe L1,
L2 und so weiter auf die entsprechende Schicht einer Netzwerkarchitektur. Die
Beschreibung setzt ferner grundlegende Kenntnisse von Bitfolgen
voraus, die bei einer solchen Datenübertragung in Netzwerken in
Form von Paketen und Rahmen bekannt sind.
-
In
der vernetzten Welt von heute stellt die Bandbreite eine kritische
Größe dar.
Mit dem zunehmenden Datenverkehr im Netz, der durch das Internet
und weitere neuere Anwendungen ausgelöst wird, wird die Leistungsfähigkeit
von Netzwerkarchitekturen belastet. Um Schritt halten zu können, suchen
die beteiligten Unternehmen nach besseren Technologien und Methoden,
um den zunehmenden Datenverkehr sowie das Zusammenwachsen von Sprache
und Daten zu unterstützen
und zu bewältigen.
-
Der
gegenwärtig
dramatisch zunehmende Datenverkehr im Netz lässt sich auf die Beliebtheit
des Internet, einen steigenden Bedarf für den Fernzugriff auf Informationen
und neue Anwendungen zurückführen. Allein
das Internet mit seiner explosionsartigen Zunahme des elektronischen
Handels (e-commerce)
belastet die zentralen Netzwerkleitungen mitunter bis an die Leistungsgrenze.
Für sich
genommen stellt dies den wichtigsten Grund für das zunehmende Volumen des
Datenverkehrs dar, das zum ersten Mal den Umfang der Sprachübertragung überschreitet.
Die zunehmende Nachfrage nach Anwendungen für den Fernzugriff einschließlich eMail,
Datenbankzugriffen und Dateiübertragung
belastet die Netze noch weiter.
-
Für die Entwicklung
moderner Netzwerkumgebungen wird das Zusammenwachsen von Sprache
und Daten eine große
Rolle spielen. Gegenwärtig
ist die Übertragung
von Daten über
IP-Netze (gemäß Internetprotokoll)
gebührenfrei.
Da selbstverständlich
auch die Sprachübertragung
den Weg mit den niedrigsten Kosten einschlagen wird, wird es zwangsläufig zum
Zusammenwachsen von Sprache und Daten kommen. In diesem sich verändernden
Markt stellen Technologien wie VoIP (Voice over IP, Sprache über Internetprotokoll), AoATM
(Voice over ATM, Sprache über
asynchronen Übertragungsmodus)
und VoFR (Voice over Frame Relay, Sprache über Frame-Relay-Übertragung)
kostengünstige
Alternativen dar. Um jedoch den Übergang
zu diesen Technologien zu ermöglichen,
muss die Industrie die Dienstqualität (Quality of Service, QoS)
für die Sprachübertragung
gewährleisten
und die Bezahlung der Sprachübertragung über Datenleitungen
regeln. Diese Umgebung wird durch das Telecommunications Deregulation
Act von 1996 noch stärker
kompliziert. Diese Gesetzgebung verstärkt noch die gegenseitige Beziehung
zwischen dem bevorzugten Sprachprotokoll ATM und dem bevorzugten
Datenprotokoll IP.
-
In
dem Maße,
wie neue Produkte und Kapazitäten
verfügbar
werden, spielt für
die Unternehmen die Eigentumssicherung ebenfalls eine enorme Rolle.
Um ihre vorhandenen Investitionen in Anlagen und Software zu sichern,
fordern die Unternehmen Lösungen,
die ihnen den Wechsel zu neuen Technologien gestatten, ohne ihre
derzeitigen Aktivitäten
zu unterbrechen.
-
Die
Beseitigung von Engpässen
im Netz hat für
die Diensteanbieter (service providers) weiterhin allerhöchste Priorität. Router
sind oft die Ursache für
diese Engpässe.
Allerdings wird der Datenstau im Internet im Allgemeinen oft fälschlicherweise
als Bandbreitenproblem angesehen und durch die Suche nach höheren Bandbreiten
gelöst.
Dieses Problem haben die Hersteller heute erkannt. Sie gehen zu
Technologien mit Netzwerkprozessoren über, um die vorhandenen Bandbreiten
besser auszunutzen und die in Routern und Netzwerk-Anwendungsservern
angebotenen neuen Datendienste mit Leitungsgeschwindigkeit bereitzustellen.
Zu diesen Diensten gehören
die Lastausgleichung, QoS, Gateways, Firewalls, Sicherheit und Webcaching
(Zwischenspeichern im Internet).
-
Bei
Anwendungen für
den Fernzugriff sind die Leistungsparameter, die Bandbreitenbereitstellung
bei Bedarf, die Sicherheit und der Nachweis der Identität (authentication)
von größter Bedeutung.
Die Forderung nach Verbindung von QoS und CoS, integrierter Sprachverarbeitung
und ausgefeilten Sicherheitslösungen werden
die Ausgestaltung von zukünftigen
Netzvermittlungseinheiten für
den Fernzugriff ebenfalls beeinflussen. Darüber hinaus muss für den Fernzugriff
eine zunehmende Anzahl von physischen Medien berücksichtigt werden, zum Beispiel
ISDN, T1, E1, OC-3 bis OC-48, Kabel und xDSL-Modems.
-
Industriefachleute
haben für
eine programmierbare integrierte Datenübertragungsschaltung einen Netzwerkprozessor
(im Folgenden als „NP" bezeichnet) definiert,
der in der Lage ist, eine oder mehrere der folgenden Funktionen
auszuführen:
Paketklassifizierung – Einstufen
eines Paketes nach bekannten Eigenschaften, zum Beispiel der Adresse
oder dem Protokoll
Paketmodifizierung – Veränderung des Paketes zum Anpassen
an IP, ATM oder andere Protokolle (zum Beispiel beim IP das Aktualisieren
des Feldes Verweildauer im Datenvorsatz (header))
Warteschlangen-/Strategiesteuerung – widerspiegelt
die Aufbaustrategie für
das Einreihen von Paketen in und das Entnehmen von Paketen aus Warteschlangen
sowie die Ablaufsteuerung für
Pakete in besonderen Anwendungen
Paketweiterleitung – Senden
und Empfangen von Daten über
das Koppelnetz und Weiterleiten oder Transportieren des Pakets zur
richtigen Adresse.
-
Obwohl
diese Definition eine genaue Beschreibung der Hauptmerkmale von
früheren
NPs ist, müssen deren
ganze Möglichkeiten
und Vorteile erst noch in die Wirklichkeit umgesetzt werden. Netzwerkprozessoren können bei
einer Vielzahl von Anwendungen zur Vergrößerung der Bandbreite und zur
Lösung
von Latenzproblemen beitragen, indem bisher durch Software ausgeführte Netzaufgaben
durch Hardware erledigt werden. Außerdem können NPs die Geschwindigkeit
durch Architekturen steigern, zum Beispiel durch verteilte Parallelverarbeitung
und Pipelineverarbeitung. Durch diese Fähigkeiten wird es möglich, leistungsfähige Suchmaschinen
zu schaffen, den Durchsatz zu steigern und komplexe Aufgaben schnell
auszuführen.
-
Netzwerkprozessoren
dürften
bald ebenso zum Grundbaustein von Netzwerken werden wie CPUs in Rechnern.
Typische Eigenschaften eines NP sind Echtzeitverarbeitung, Sicherheit,
Speichern und Weiterleiten, Koppelnetzvermittlung, Verarbeitung
von IP-Paketen und
Lernfähigkeit.
NPs arbeiten in den ISO-Schichten zwei bis fünf und sind auf die Optimierung
von netzspezifischen Aufgaben ausgerichtet.
-
Der
NP gemäß dem Prozessormodell
beinhaltet mehrere Standardprozessoren und eine spezielle Schaltlogik.
Die Hersteller kehren zu diesem Aufbau zurück, um skalierbare flexible
Lösungen
zu schaffen, die schnelle und kostengünstige Änderungen ermöglichen.
Ein NP gemäß dem Prozessormodell
gestattet die verteilte Verarbeitung mit niedrigerem Integrationsgrad
und ermöglicht
einen höheren
Datendurchsatz sowie eine bessere Flexibilität und Steuerung. Durch Programmierbarkeit
kann der Übergang
zu neuen Protokollen und Technologien erleichtert werden und auf
neue ASIC-Entwicklungen
verzichtet werden. Bei Prozessormodell-NPs profitieren NEVs von
den verringerten Einmalkosten für
Entwicklungsarbeiten und einer schnelleren Vermarktung.
-
BESCHREIBUNG DER ERFINDUNG
-
Eine
Aufgabe der vorliegenden Erfindung besteht darin, eine skalierbare
Vermittlungsarchitektur zur Verwendung in einem Datenübertragungsnetz
bereitzustellen, mit dem die Verarbeitungsressourcen an eine Größenordnung
des zu erwartenden Bedarfs angepasst werden können und gleichzeitig die Verarbeitungsgeschwindigkeit
der zu übertragenden
Daten erhöht
werden kann. Diese Aufgabe wird durch die Bereitstellung von Komponenten
und deren Verknüpfung
gelöst,
die den beteiligten Verarbeitungseinheiten einen größeren Umfang
an Datenverarbeitung abnehmen, als dies bisher der Fall war.
-
Eine
anderes Ziel besteht darin, eine Schnittstelleneinheit oder einen
Netzwerkprozessor (die beiden Ausdrücke werden synonym gebraucht)
bereitzustellen, die eine Vielzahl von Untereinheiten beinhalten,
die auf einem einzigen Substrat integriert sind und gemeinsam die
Vermittlung von Rahmen der Schichten 2 bis 5 mit Mediengeschwindigkeit
durchführen.
Die Schnittstelleneinheit kann als unabhängige Einzellösung (standalone)
zur Schaffung einer ersten Ebene von Fähigkeiten für eine Arbeitsgruppenvermittlung,
als verknüpfte
Lösung
zur Schaffung einer höheren
Ebene von Fähigkeiten
für eine
Arbeitsgruppenvermittlung verwendet werden oder durch Zusammenarbeit
mit einem Koppelnetz mit weiteren Fähigkeiten aufgewertet werden.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
Während einige
der Ziele der Erfindung bereits erwähnt wurden, zeigen sich andere
im Laufe der Beschreibung in Verbindung mit den beiliegenden Zeichnungen,
wobei:
-
1 ein
Blockschaltbild einer Schnittstelleneinheit gemäß der vorliegenden Erfindung
zeigt.
-
1A ein
Blockschaltbild für
die MAC zeigt.
-
die 2A bis 2D die
mit anderen Komponenten verbundene Schnittstelleneinheit in verschiedenen Systemkonfigurationen
zeigen.
-
3 den
Datenfluss und die Verarbeitung eines gekapselten geleiteten Rahmens
zeigt.
-
4 den
Datenfluss und die Verarbeitung eines internen geleiteten Rahmens
zeigt.
-
5 das
verallgemeinerte Format einer geleiteten Zelle zeigt.
-
6 das
Format von Rahmensteuerdaten zeigt.
-
7 das
Format des Korrelators zeigt.
-
8 das
Format der Befehlssteuerdaten zeigt.
-
9 das
Format der Adressdaten zeigt.
-
10 die
allgemeine Form der Strukturadressierung zeigt.
-
11 eine
Tabelle der Adressierung mit Bereichscodierung zeigt.
-
12A ein Blockschaltbild des integrierten Prozessorkomplexes
zeigt.
-
12B ein Schema der integrierten Prozessoren zeigt.
-
12C eine Struktur eines GxH-Prozessors zeigt.
-
13 ein
Blockschaltbild des Speicherkomplexes zeigt.
-
14 ein
Flussdiagramm des Suchalgorithmus für feste Übereinstimmungen (Fixed Match,
FM) zeigt.
-
15 Datenströme zeigt,
welche die Datenstruktur mit oder mit ohne Verwendung einer Zuordnungstabelle
veranschaulichen.
-
16 ein
Blockschaltbild eines Vermittlungssystems wie zum Beispiel PRIZMA
zeigt.
-
17 ein Blockschaltbild eines Steuerpunkts (CP)
zeigt.
-
18 ein Blockschaltbild des Einchip-Netzwerkprozessors
zeigt, in dem die Funktionen im EDS-UP, EDS-DOWN und im EPC hervorgehoben
ist.
-
BETRIEBSART(EN) ZUM DURCHFÜHREN DER
ERFINDUNG
-
Während die
vorliegenden Erfindungen im Folgenden unter Bezug auf die beiliegenden
Zeichnungen ausführlich
beschrieben werden, in denen bevorzugte Ausführungsarten der vorliegenden
Erfindung dargestellt sind, ist bei der folgenden Beschreibung von
vornherein klar, dass ein Fachmann die hier beschriebenen Erfindungen
modifizieren und dabei dennoch die vorteilhaften Ergebnisse der
Erfindungen erzielen kann. Demzufolge ist die folgende Beschreibung
nicht als Einschränkung
der vorliegenden Erfindungen, sondern als umfassende Beschreibung
zur Unterrichtung von Fachleuten zu verstehen.
-
Die
hier beschriebene Vorrichtung kann skaliert werden und dient zur
Verbindung von Einzelrechner- oder Arbeitsgruppenvermittlungen,
zur Einbindung solcher Vermittlungen in eine zentrale Netzwerkleitung
und zur Bereitstellung von Vermittlungsdiensten für zentrale
Netzwerkleitungen. Die Vorrichtung kann durch Hardware die Weiterleitung
von Daten in Schicht 2, Schicht 3 und Schicht 4+ unterstützen. Bestimmte
Ausführungen
der Vorrichtung sind zur Zusammenschaltung von Einzelrechner- oder
Arbeitsgruppenvermittlungen und andere für zentrale Netzwerkleitungen
vorgesehen.
-
Die
für die
Vorrichtung verwendete Architektur basiert auf einer Schnittstelleneinheit
oder einem Netzwerkprozessor als Hardwareteilsystem und einer an
einem Steuerpunkt betriebene Softwarebibliothek, die im vorliegenden
Dokument an anderer Stelle ausführlich
beschrieben werden. Das Teilsystem in Form einer Schnittstelleneinheit
oder eines Netzwerkprozessors stellt eine Hochleistungseinheit zur
Rahmenweiterleitung dar, die zum Analysieren und Übersetzen
von Protokoll-Datenvorsätzen (protocol
headers) in den Schichten L2, L3 und L4+ geeignet ist. Durch den
Einsatz dieser Hardware können
Protokolle mit höherer
Geschwindigkeit vermittelt werden. Das Teilsystem in Form einer
Schnittstelleneinheit oder eines Netzwerkprozessors stellt einen
schnellen Pfad durch die Einheit zur Verfügung, während die Softwarebibliothek
und der Steuerpunktprozessor die zur Sicherung des schnellen Pfades
erforderlichen Steuerungs- und Routingfunktionen übernehmen.
Der Steuerpunktprozessor und die darin aktive Softwarebibliothek
definieren gemeinsam den Steuerpunkt (Control Point, CP) des Systems.
Im CP werden die eigentlichen Brücken-
und Routingprotokolle ausgeführt,
zum Beispiel Transparent Bridging und OSPF. Dieser kann auch als
langsamer Pfad des Systems bezeichnet werden.
-
Während die
vorliegende Vorrichtung durch Hardware die Weiterleitung in mehreren
Schichten unterstützt,
kann sie auch als Vermittlung ausschließlich in L2 fungieren, was
ihrem Standardbetriebsmodus in der einfachsten beschriebenen Form
entspricht. Jeder Anschluss (Port) wird einem einzigen Bereich zugeordnet, damit
jede Einheit mit jeder anderen Einheit in Verbindung treten kann.
Die Vorrichtung kann in L2 konfiguriert werden, sodass ein Systemadministrator
Merkmale wie: Zusammenfassen von Anschlüssen zu separaten Bereichen
oder Leitungsbündeln,
virtuelle LAN-Segmente (Virtual LAN, VLAN) oder Filter zur Steuerung
des Rundsendens (broadcast) und des selektives Rundsendens (multicast
traffic).
-
Diese
skalierbare Vorrichtung weist viele Vorteile auf. Zum Ersten ist
der Systemadministrator in der Lage, die Weiterleitung und das Routing
von IP- und IPX-Datenverkehr in L3 unter Verwendung derselben Hardware
wie für
L2 und mit derselben Geschwindigkeit zu konfigurieren. Zum Zweiten
entfällt
die Notwendigkeit externer Router zur Verbindung von mehreren zusammengehörigen Gebäuden, während die
Leistungsfähigkeit
gleichzeitig verbessert wird. Zum Dritten wird die Steuerung des
L2/L3-Dienstes für
ein Gebäude
zu einem einzigen Steuerpunkt zusammengefasst und somit vereinfacht.
-
Und
schließlich
bietet die Vorrichtung zusätzliche
Merkmale mit L4+-Funktionen, die es dem Systemadministrator ermöglichen,
dem Datenverkehr verschiedene Klassifikationen zuzuweisen, um Anwendungen mit
kritischen Aufgaben zu unterstützen,
und die Abwicklung der Lastausgleichung zwischen Servern im Netz.
-
Die
Vorrichtung ist modular ausgelegt und verwendet als Grundbausteine
eine Schnittstelleneinheit oder einen Netzwerkprozessor, einen Steuerpunkt
(CP) und optional ein Koppelnetz. Die Schnittstelleneinheit stellt
vorzugsweise die Datenweiterleitung über einen schnellen Pfad in
L2/L3/L4+ sicher, während
der CP für die
zur Sicherung des schnellen Pfades erforderlichen Steuerungs- und
Routingfunktionen sorgt. Das optionale Koppelnetz wird eingesetzt,
wenn mehr als zwei Teilsysteme in Form einer Schnittstelleneinheit
miteinander verbunden werden.
-
Ein
geeignetes optionales Koppelnetz wird in der US-Patentschrift 5 008 878 mit dem Titel „High Speed
Modular Switching Apparatus for Circuit and Packet Switched Traffic", erteilt am 16.
April 1991, beschrieben.
-
Für die Vorrichtung
ist vorgesehen, dass sie aus Leiterplattenelementen zusammengesetzt
wird, die in der englischen Literatur auch als „blades" (Lamellen, Blätter) bezeichnet werden. Die
Leiterplattenelemente sind mit Schaltkreisbauteilen bestückt und
in Steckplätze
eingesetzt, die sich in Gehäusen
der Vorrichtung befinden. Ähnliche
Einheiten sind als „Wechselkarten" bekannt. Die Vorrichtung
sieht vor, dass die Leiterplattenelemente zwischen verschiedenen
Chassis oder Gehäusen
ausgetauscht werden können,
wenn an der Rückwandplatine
geeignete Steckplätze
und elektrische Kontakte vorhanden sind. Die Grundkomponente aller
Leiterplattenelemente ist ein Trägerteilsystem.
Ausgehend von dem Trägerteilsystem
können
drei Arten von Leiterplattenelementen hergestellt werden. Die erste
Art ist das Nur-CP-Leiterplattenelement, das aus einem Trägerteilsystem
und einem CP-Teilsystem besteht. Das Nur-CP-Leiterplattenelement wird vor allem
dort eingesetzt, wo die Redundanz von besonderer Wichtigkeit ist.
Die zweite Art ist ein CP+Medien-Leiterplattenelement, das aus einem
Trägerteilsystem,
einem CP-Teilsystem und 1 bis 3 Medienteilsystemen besteht. Ein CP+Medien-Leiterplattenelement
wird vorrangig dort eingesetzt, wo die Anschlussdichte als wichtiger
angesehen wird als die Redundanz. Die dritte Art ist ein Medien-Leiterplattenelement,
das aus einem Trägerteilsystem und
1 bis 4 Medienteilsystemen besteht. Die Medien-Leiterplattenelemente
können
in jedem Chassis eingesetzt werden und die Art des verwendeten Medienteilsystems
kann konfiguriert werden.
-
Zu
den Aufgaben eines Leiterplattenelements gehören Fehlererkennung, Verwaltung
der Stromaufnahme, Erkennung neuer Einheiten, Initialisierung und
Konfigurierung. Diese Aufgaben werden unter Verwendung verschiedener
Register, E/A-Signale und einer Schnittstelle für geleitete Zellen ausgeführt, die
zur Datenübertragung
zwischen dem CP und den Trägerteilsystemen
dient. Im Gegensatz zum Chassis gibt es auf allen Leiterplattenelementen
programmierbare Einheiten und Speicher. Das Ausmaß der Programmierbarkeit hängt von
der Art des Leiterplattenelements ab. Wenn sich das CP-Teilsystem
auf einem Leiterplattenelement befindet, sind sowohl das CP- als
auch das Trägerteilsystem
programmierbar. Die Medienteilsysteme können ebenfalls programmiert
werden, aber nur indirekt über
das Trägerteilsystem.
-
Bei
leistungsfähigeren
Produkten gibt es auch ein Vermittlungs-Leiterplattenelement mit
einem Koppelnetzteilsystem. Zu den Aufgaben dieses Leiterplattenelements
gehören
Fehlererkennung, Verwaltung der Stromaufnahme, Erkennung neuer Geräte und Initialisierung.
Diese Aufgaben werden unter Verwendung verschiedener Register und
E/A-Signale erledigt, die im CP-Teilsystem gespeichert sind.
-
In
ihrer einfachsten Form weist eine Vermittlungsvorrichtung im Sinne
der vorliegenden Erfindung einen Steuerpunktprozessor und eine funktionell
mit dem Steuerpunktprozessor verbundene Schnittstelleneinheit auf.
Vorzugsweise und gemäß der vorliegenden
Beschreibung ist die Schnittstelleneinheit (auch unter der Bezeichnung
Netzwerkprozessor bekannt) ein einziges (hochintegriertes) VLSI-Bauelement
bzw. ein Chip, der Folgendes aufweist: ein Halbleitersubstrat; eine
Vielzahl auf dem Substrat gebildeter Schnittstellenprozessoren;
einen auf dem Substrat gebildeten internen Befehlsspeicher zur Speicherung
von Befehlen, auf welche die Schnittstellenprozessoren zugreifen
können;
einen auf dem Substrat gebildeten internen Datenspeicher zur Speicherung
der durch die Einheit gelangenden Daten, auf welche die Schnittstellenprozessoren
zugreifen können;
und eine Vielzahl von Eingangs-/Ausgangs-Anschlüssen. Im vorliegenden Dokument
werden die Schnittstellenprozessoren mitunter auch als Picoprozessoren
oder Verarbeitungseinheiten bezeichnet. Die zur Verfügung stehenden
Anschlüsse
beinhalten mindestens einen Anschluss zum Verbinden des internen
Datenspeichers mit einem externen Datenspeicher und mindestens zwei
andere Anschlüsse
zum Austauschen der durch die Schnittstelleneinheit geleiteten Daten
mit einem externen Netzwerk unter der Steuerung der Schnittstellenprozessoren.
Der Steuerpunkt arbeitet mit der Schnittstelleneinheit zusammen,
indem durch die Schnittstellenprozessoren auszuführende Befehle in den Befehlsspeicher
lädt und
so den Datenaustausch zwischen den für den Datenaustausch bestimmten
Eingangs-/Ausgangsanschlüssen
und den Datenstrom durch den Datenspeicher steuert.
-
Der
hier beschriebene Netzwerkprozessor ist im Sinne der Erfindung als
unabhängig
von den Vermittlungseinheiten anzusehen, in die er eingebaut wird.
Ferner ist davon auszugehen, dass an den Elementen des hier beschriebenen
Netzwerkprozessors noch andere und weitere Erfindungen, die hier
nicht vollständig
erörtert
werden, beteiligt sind.
-
1 zeigt
ein Blockschaltbild für
den Chip der Schnittstelleneinheit, der ein Substrat 10 und
eine Vielzahl auf dem Substrat integrierter Teilschaltungen beinhaltet.
Die Teilschaltungen sind als Aufwärtskonfiguration und als Abwärtskonfiguration
angeordnet.
-
Im
vorliegenden Dokument bezieht sich der Ausdruck „Aufwärts" auf Datenströme, die von einem Netzwerk
in die hier beschriebene Vorrichtung gelangen, während sich der Ausdruck „Abwärts" auf Daten bezieht,
die aus der Vorrichtung in ein durch die Vorrichtung versorgtes
Netzwerk gelangen. Der Datenfluss verläuft entlang den entsprechenden
Konfigurationen. Daraus ergibt sich, dass es einen Aufwärts-Datenfluss und einen
Abwärts-Datenfluss
gibt. Die Teilschaltungen im Aufwärtszweig beinhalten eine EDS-UP-Logik 16 (Enqueue-Dequeue-Scheduling,
Steuerung für
das Speichern und Lesen einer Aufwärts-Warteschlange), eine gemultiplexte
MAC-UP 14 (PPM-UP), eine SDM-UP (Switch Data Mover, Vermittlungsdatenübertrager) 18,
eine Systemschnittstelle 20 (System Interface, SIF), eine
DASL A 22 (Data Align Serial Link A, serielle Leitung A für die Datenanpassung)
und eine DASL B 24 (Data Align Serial Link B, serielle
Leitung B für
die Datenanpassung). Eine serielle Leitung für die Datenanpassung wird in
der gleichzeitig anhängigen
US-Patentanmeldung 09/330
968 mit dem Titel „High
Speed Parallel/Serial Link for Data Communication", eingereicht am
11. Juni 1999, genauer beschrieben. Obwohl die bevorzugte Form der
Vorrichtung der hier beschriebenen vorliegenden Erfindung eine DASL-Leitung
verwendet, können
für die
vorliegende Erfindung auch andere Formen von Leitungen verwendet
werden, um relativ hohe Datenraten zu erreichen, insbesondere da,
wo die Datenströme auf
die VLSI-Struktur begrenzt sind.
-
Die
Teilschaltungen im Abwärtszweig
beinhalten Folgendes: DASL-A 26, DASL-B 28, SIF 30, SDM-DN 32,
EDS-DN 34 und PPM-DN 36. Der Chip beinhaltet auch
eine Vielzahl von internen SRAMs, eine Datenverkehrs-Ablaufsteuerung 40 und
einen integrierten Prozessorkomplex 12 (Embedded Processor
Complex, EPC). Eine Schnittstelleneinheit 38 ist durch
entsprechende DMU-Busse mit den PMM 14 und 36 verbunden.
Als Schnittstelle 38 kann eine beliebige geeignete L1-Schaltung
dienen, zum Beispiel ENET PHY (Ethernet Physical), ATM Framer usw.
Die Art der Schnittstelle hängt
zum Teil vom Netzwerkmedium ab, an das der Chip angeschlossen ist.
Dem Chip stehen eine Vielzahl externer DRAMs und SRAMs zur Verfügung.
-
Obwohl
die vorliegende Erfindung insbesondere für Netzwerke beschrieben wurde,
in denen der normale Datenfluss außerhalb der jeweiligen Vermittlungs-
und Routingeinheiten durch elektrische Leiter wie beispielsweise
Drähte
und Kabel verläuft,
die in Gebäuden
verlegt sind, geht die vorliegende Erfindung davon aus, dass die
hier beschriebenen Netzwerkvermittlungen und deren Komponenten ebenso
in einer drahtlosen Umgebung verwendet werden können. Beispielsweise können die
hier beschriebenen MAC-Elemente (Media Access Control, Medienzugriffssteuerung)
durch geeignete Funkfrequenzelemente, möglicherweise nach der bekannten
Silicium-Germanium-Technologie hergestellt, ersetzt werden, so dass
die hier beschriebenen Elemente direkt mit einem Funknetz verbunden
werden können.
Bei geeigneter Anwendung einer solchen Technologie können die
Funkfrequenzelemente durch einen technisch versierten Fachmann in
die hier beschriebenen VLSI-Strukturen integriert werden. Alternativ
können
auch Funkfrequenzeinheiten oder andere drahtlose Einheiten, die
zum Beispiel auf Infrarot ansprechen, zusammen mit anderen hier
beschriebenen Elementen auf einem Leiterplattenelement angebracht
werden, um eine für
drahtlose Netzwerksysteme geeignete Vermittlungsvorrichtung zu erhalten.
-
Die
Pfeile zeigen den allgemeinen Datenfluss in der Schnittstelleneinheit.
Von einem Ethernet-MAC (Media Access Controller, Medienzugriffssteuerung)
empfangene Rahmen werden durch die EDS-UP in interne Datenpufferspeicher
eingetragen. Diese Rahmen werden entweder als normale Datenrahmen
oder als geleitete Rahmen (Guided Frames) zur Systemsteuerung erkannt
und im EPC als Warteschlange gespeichert (1). Der
EPC enthält
N Protokollprozessoren, die bis zu N Rahmen (N > 1) parallel verarbeiten können. Bei
einer Ausführungsart
mit zehn Protokollprozessoren (12B)
sind zwei der zehn Protokollprozessoren spezialisiert; einer auf
die Verarbeitung geleiteter Rahmen (Generic Central Handler, GCH)
und einer auf die Erstellung von Suchdaten im Steuerspeicher (Generic
Tree Handler, GTH). 12A zeigt, dass der EPC auch eine
Abwicklungseinheit (Dispatcher) zur Zuteilung neuer Rahmen auf freie
Prozessoren enthält,
ferner eine Abschlusseinheit zur Fortführung der Rahmensequenz, einen
von allen zehn Prozessoren genutzten gemeinsamen Befehlsspeicher,
eine Routine zur Klassifizierungshardwareunterstützung für die Ermittlung der Rahmenklassifizierung
und einen Coprozessor zur Ermittlung der Anfangsbefehlsadresse des
Rahmens, Schnittstellen für
Eingangs- und Ausgangsdatenspeicher zur Steuerung der Lese- und
Schreiboperationen von Rahmenpufferspeichern, eine Steuerspeicherzugriffssteuerung
(Control Memory Arbiter) zur gemeinsamen Nutzung des Steuerspeichers
durch die zehn Prozessoren, eine Websteuereinheit, einen Zuteiler
(arbiter) und eine Schnittstelle zur Fehlersuche beim Zugriff auf
Datenstrukturen der internen Schnittstelleneinheit sowie weitere
Hardwareeinheiten.
-
Geleitete
Rahmen werden durch die Abwicklungseinheit zum GCH-Prozessor gesendet,
sobald dieser frei wird. Dort werden Operationen ausgeführt, die
im geleiteten Rahmen codiert sind, zum Beispiel Registerschreiboperationen,
Zählerleseoperationen,
Konfigurationsänderungen
des Ethernet-MAC
und so weiter. Änderungen
der Suchtabelle, zum Beispiel das Eingeben von MAC- oder IP-Einträgen, werden
zum Suchdatenprozessor weitergegeben, um Steuerspeicheroperationen
auszuführen,
zum Beispiel Speicherlese- und -schreiboperationen. Einige Befehle,
zum Beispiel für
MIB- Zählerleseoperationen,
erfordern das Erstellen und Weiterleiten eines Antwortrahmens zum
passenden Anschluss in der entsprechenden Schnittstelleneinheit.
In manchen Fällen
ist der geleitete Rahmen für
die Ausgangsseite der Schnittstelleneinheit codiert. Diese Rahmen
werden zur Ausgangsseite der abgefragten Schnittstelleneinheit weitergeleitet,
welche dann die codierten Operationen ausführt und einen passenden Antwortrahmen
erstellt.
-
Datenrahmen
werden zur Ausführung
von Rahmensuchoperationen dem nächsten
freien Protokollprozessor zugeteilt. Rahmendaten werden zusammen
mit den Ergebnissen der Routine zur Klassifizierungshardwareunterstützung (CHA)
zum Protokollprozessor geschickt. Die CHA unterscheidet nach IP
oder IPX. Die Ergebnisse sind dann bestimmend für den Baumsuchalgorithmus und
die allgemeine Anfangsbefehlsadresse (Common Instruction Address,
CIA). Zu den unterstützten
Baumsuchalgorithmen gehören
Suchbäume mit
festen Übereinstimmungen
(Muster mit feststehender Größe, deren Übereinstimmung
genau sein muss, zum Beispiel L2-Ethernet-MAC-Tabellen), Suchbäume für längste Präfixübereinstimmung (Muster mit
variabler Länge,
bei denen nach Übereinstimmungen
mit variabler Länge
gesucht wird, zum Beispiel IP-Teilnetz-Weiterleitung) und softwaregesteuerte
Bäume (bei
denen zwei Muster einen Bereich oder eine Bitmaskengruppe definieren,
wie es für
Filterregeln gebräuchlich
ist).
-
Die
Suche wird mit Hilfe des TSE-Koprozessors (Tree Search Engine, Baumsuchroutine)
durchgeführt,
der Bestandteil jedes Protokollprozessors ist. Der TSE-Koprozessor
führt die
Zugriffe auf den Steuerspeicher aus, sodass der Protokollprozessor
seine Arbeit fortsetzen kann. Im Steuerspeicher sind alle Tabellen, Zähler und
andere für
den Picocode benötigte
Daten gespeichert. Die Steuerspeicheroperationen werden durch die
Steuerspeicherzugriffssteuerung verwaltet, der die Speicherzugriffe
zwischen den zehn Prozessorkomplexen regelt.
-
Die
Rahmendaten werden durch den Datenspeicher-Koprozessor abgerufen.
Der Datenspeicher-Koprozessor enthält einen primären Datenpuffer
(der bis zu acht 16-Byte-Segmente der Rahmendaten aufnimmt), einen
Arbeitsdatenpuffer (der ebenfalls bis zu acht 16-Byte-Segmente der
Rahmendaten aufnimmt) und einige Steuerregister für Datenspeicheroperationen.
Sobald eine Übereinstimmung
gefunden wurde, kann der Eingangsrahmen verändert werden, indem beispielsweise
ein VLAN-Datenvorsatz eingefügt
oder überschrieben
wird. Diese Veränderung
wird nicht durch den Prozessorkomplex der Schnittstelleneinheit
erledigt, sondern es werden Hardwaremarkierungen angebracht und
die Veränderungen
durch eine andere Hardware in Form der Eingangsschnittstelle der
Vermittlung durchgeführt.
Andere Veränderungen
des Rahmens können durch
den Picocode und den Datenspeicher-Koprozessor durchgeführt werden,
indem der im Eingangsdatenspeicher gespeicherte Rahmeninhalt modifiziert
wird.
-
Außerdem werden
noch Daten erfasst, um Vermittlungs-Datenvorsätze und Rahmen-Datenvorsätze zu erzeugen,
bevor die Rahmen zum Koppelnetz gesendet werden. Als Steuerdaten
dienen Vermittlungsdaten, zum Beispiel über das Ziel-Leiterplattenelement
des Rahmens, sowie Daten für
die Ausgangsschnittstelle, um die Suche nach den Zielanschlüssen des
Rahmens, sowie Multicast- oder Unicast-Operationen (unidirektionale Übertragung)
und Änderungen
des Ausgangsrahmens zu beschleunigen.
-
Wenn
das erledigt ist, erzeugt der Warteschlangen-Koprozessor die für das Speichern
des Rahmens in den Warteschlangen im Koppelnetz erforderlichen Formate
und sendet diese zur Abschlusseinheit. Die Abschlusseinheit sorgt
für die
Einhaltung der Rahmenreihenfolge von den zehn Protokollprozessoren
bis zu den Warteschlangen des Koppelnetzes. Rahmen aus den Warteschlangen
des Koppelnetzes werden in 64-Byte-Zellen segmentiert, in die Rahmen-Datenvorsatzbytes
und Vermittlungs-Datenvorsatzbytes eingefügt werden, wenn die Rahmen
zur PRIZMA-E-Vermittlung übertragen
werden.
-
Vom
Koppelnetz übertragene
Rahmen werden durch einen Ausgangs-EDS (34) in Ausgangsdatenspeicher-Puffern
(Egress Data Store, Egress DS) gespeichert und in die Warteschlange
des EPC (integrierter Prozessorkomplex) eingegeben. Einen Teil des
Rahmens sendet die Abwicklungseinheit an einen freien Protokollprozessor,
um die Rahmensuche durchzuführen.
Rahmendaten werden zusammen mit Daten von der Klassifizierungshardwareunterstützung dem
Protokollprozessor zugeführt.
Die Klassifizierungshardwareunterstützung nutzt die von der Eingangs-Schnittstelleneinheit
erzeugten Rahmensteuerdaten, um die Ermittlung der Codebefehl-Anfangsadresse (Code
Instruction Address, CIA) zu unterstützen.
-
Die
Ausgangsbaumsuche unterstützt
dieselben Algorithmen, die für
die Eingangssuche unterstützt werden.
Die Suche erfolgt mit Hilfe des TSE-Koprozessors, sodass der Protokollprozessor seine
Arbeit fortsetzen kann. Alle Steuerspeicheroperationen werden durch
die Steuerspeicherzugriffssteuerung verwaltet, welcher die Speicherzugriffe
der zehn Prozessorkomplexe regelt.
-
Die
Ausgangsrahmendaten werden durch den Datenspeicher-Koprozessor abgerufen.
Der Datenspeicher-Koprozessor enthält einen primären Datenpuffer
(der bis zu acht 16-Byte-Segmente Rahmendaten aufnimmt), einen Arbeitsdatenpuffer
(der ebenfalls bis zu acht 16-Byte-Segmente Rahmendaten aufnimmt)
und Steuerregister für
Datenspeicheroperationen. Das Ergebnis einer erfolgreichen Suche
besteht aus Weiterleitungsdaten und in manchen Fällen aus Rahmenänderungsdaten.
Zu Rahmenänderungen
können
das Löschen
des VLAN-Datenvorsatzes, die Verlängerung (IPX) oder Verkürzung der
Aufenthaltsdauer, die Neuberechnung der Prüfsummen der IP-Datenvorsätze, das Überschreiben
oder Einfügen
von Ethernetrahmen-CRC und das Überschreiben
oder Einfügen
von MAC-DA/SA gehören.
Die Prüfsummen
der IP-Datenvorsätze
werden durch den Prüfsummen-Koprozessor ermittelt. Änderungen
werden nicht durch den Prozessorkomplex der Schnittstelleneinheit
durchgeführt,
sondern es werden nur Hardwaremarkierungen erzeugt und die Änderungen
selbst durch eine PMM-Ausgangshardware durchgeführt. Nachdem das geschehen
ist, werden mit Hilfe des Warteschlangen-Koprozessors die erforderlichen
Formate erzeugt, um die Rahmen in den EDS-Ausgangswarteschlangen
zu speichern und zur Abschlusseinheit zu senden. Die Abschlusseinheit
sorgt dafür, dass
die Reihenfolge der Rahmen von den zehn Protokollprozessoren bis
zu den EDS-Ausgangswarteschlangen
beibehalten wird, von wo sie zu den Ausgangs-Ethernet-MACs 36 gelangen.
-
Die
fertigen Rahmen werden zum Schluss durch eine PMM-Ausgangshardware
zu den Ethernet-MACs gesendet und verlassen dann die Ethernetanschlüsse.
-
Ein
interner Bus, der auch als das Web bezeichnet wird, ermöglicht den
Zugriff auf interne Register, Zähler
und Speicher. Das Web beinhaltet auch eine interne Schnittstelle,
welche zum Zwecke der Fehlersuche und -auswertung die Befehlsschritte
und die Unterbrechungen steuert.
-
Der
Suchmaschinen-Koprozessor kann Speicherbereiche prüfen, unzulässige Speicherzugriffe
melden und führt
Baumsuchbefehle aus (zum Beispiel Speicher Lesen, Schreiben oder
Lesen-Einfügen-Schreiben),
die parallel zur Arbeit der Protokollprozessoren abgewickelt werden.
-
Der
allgemeine Befehlsspeicher besteht aus einem RAM 1024 × 128 und
zwei Gruppen eines doppelten RAM 512 × 128. Jede Gruppe der doppelten
RAMs liefert zwei Exemplare desselben Picocodes, sodass die Prozessoren
innerhalb desselben Adressbereichs unabhängig voneinander auf Befehle
zugreifen können. Jedes
128-Bit-Wort enthält
vier 32-Bit-Befehle, sodass insgesamt ein Vorrat von 8192 Befehlen
zur Verfügung steht.
-
Die
Abwicklungssteuerung steuert die Weiterleitung von Rahmen zu den
zehn Protokollprozessoren und verwaltet die Unterbrechungen und
die Zeitgeber.
-
Die
Abschlusseinheit sorgt für
die Einhaltung der Reihenfolge der Rahmen vom Prozessorkomplex bis zum
Koppelnetz und den Zielausgangswarteschlangen. Ein umfangreicher
Befehlssatz beinhaltet bedingte Ausführung, Packen (für Eingabe- Hashschlüssel), bedingte
Verzweigung, signierte und unsignierte Operationen, Zählung führender
Nullen und mehr.
-
Die
Klassifizierungs-Hardwareunterstützungsroutine
analysiert den L2- und L3-Protokolldatenvorsatz jedes Rahmens und
liefert diese Information zusammen mit den Rahmen, während sie
den Protokollprozessoren zugestellt werden.
-
Die
Steuerspeicherzugriffssteuerung steuert den Zugriff der Prozessoren
sowohl auf das Internet als auch auf externe Speicher.
-
Als
externe Steuerspeicher sind 5 bis 7 DRAM-Teilsysteme möglich, die
jeweils ein Paar von 2M × 16Bit × 4-Gruppen
oder ein Paar von 4M × 16Bit × 4-Gruppen
DDR-DRAMs unterstützen.
Die DDR-DRAM-Schnittstelle
läuft mit
einer Taktrate von 133 MHz und einer Datenabtastrate von 266 MHz
und unterstützt
eine konfigurierbare CAS-Latenz und Signalstärke. Zusätzlich kann ein ZBT-SRAM mit
einer Taktfrequenz von 133 MHz und einer Konfiguration von 128K × 36, 2 × 256K × 18 oder
2 × 512K × 18 hinzugefügt werden.
-
Ausgangsrahmen
können
entweder in einem externen Datenpuffer (z.B. DS0) oder zwei externen
Datenpuffern (DS0 und DS1) gespeichert werden. Jeder Puffer kann
aus einem Paar von 2M × 16Bit × 4-Gruppen DDR-DRAM
(die bis zu 256K 64-Byte-Rahmen aufnehmen) oder aus einem Paar von
4M × 16Bit × 4-Gruppen DDR-DRAM
bestehen (die bis zu 512K 64-Byte-Rahmen aufnehmen). Man kann sich
mit dem einzelnen externen Datenpuffer (z.B. DS0) für eine Rate
von 2,28 MBit/s zufrieden geben oder zusätzlich den zweiten Puffer (z.B.
DS1) verwenden, um die L2- und L3-Vermittlung mit 4,57 MBit/s zu unterstützen. Durch
das Hinzufügen des
zweiten Puffers nimmt zwar die Leistung, nicht aber die Rahmenkapazität zu. Die
Schnittstelle des externen Datenpuffers läuft mit einer Taktrate von
133 MHz und einer Datenabtastrate von 266 MHz und unterstützt die
konfigurierbare CAS-Latenz und Signalstärke.
-
Der
interne Steuerspeicher beinhaltet zwei RAMs zu 512 × 128 Bit,
zwei RAMs zu 1024 × 36
Bit und einen RAM zu 1024 × 64
Bit.
-
Der
interne Datenspeicher gestattet die Pufferung von bis zu 2048 64-Byte-Rahmen
in Eingangsrichtung (Aufwärts,
UP).
-
Als Änderungen
an fest vorgegebenen Rahmen kommen die Einfügung von VLAN-Markierungen
in Eingangsrichtung und das Löschen
von VLAN-Markierungen, Verlängerung/Verkürzung(IP,
IPx) der Aufenthaltsdauer, Ethernet-CRC-Überschreiben/Einfügen und
MAC-DA/SA-Überschreiben/Einfügen in Ausgangsrichtung
(Abwärts,
DOWN) in Frage.
-
Durch
Spiegelung der Anschlüsse
können
ein Empfangsanschluss und ein Sendeanschluss ohne Inanspruchnahme
von Ressourcen des Protokollprozessors in einen Beobachtungsanschluss
des Systems kopiert werden. Gespiegelte Anschlüsse der Schnittstelleneinheit
sind für
das Hinzufügen
von Rahmen- und Vermittlungssteuerdaten konfiguriert. Über einen
separaten Datenpfad können
Rahmen direkt in einer Warteschlange für die Eingangs-Vermittlungsschnittstelle
gespeichert werden.
-
Die
Schnittstelleneinheit vereint in sich vier Ethernet-Makros. Jedes Makro
kann einzeln so konfiguriert werden, dass es entweder im 1-Gigabit-Modus
oder im 10/100-Fast-Ethernet-Modus
arbeitet. Jeder Ethernet-Modus unterstützt für jedes der vier Makros bis
zu 10 10/100-MBit/s MACs oder einen 1000 MBit/s MAC.
-
1A zeigt
ein Blockschaltbild für
den MAC-Kern. Jedes Makro beinhaltet für den Ethernet-Kern drei verschiedene
Ausführungen;
den 10/100-MBit/s MAC-Multiportkern (Fenet), den 1000-MBit/s-MAC-Kern
(Genet) und den 1000-MBit/s-Kern der Bitübertragungs-Codierungsteilschicht
(Physical Coding Sublayer – PCS).
-
Der
10/100-Multiport-Ethernet-MAC-Kern weist die folgenden Merkmale
auf:
Unterstützung
von 10 seriellen medienunabhängigen
Schnittstellen zur Bitübertragungsschicht
(physical layer).
Verarbeitung von zehn Anschlüssen mit
Mediengeschwindigkeiten von 10 MBit/s oder 100 MBit/s in beliebiger Kombination.
Versorgung
aller zehn Anschlüsse
mit einem einzigen MAC über
eine Zeitmultiplex-Schnittstelle.
Unterstützung von Voll-/Halbduplexoperationen
an allen Anschlüssen
mit Mediengeschwindigkeit.
Unterstützung der binären exponentiellen
Verzichtszeit nach IEEE 802.3
-
Der
1000-MBit/s-Ethernet-MAC-Kern weist die folgenden Merkmale auf:
Unterstützung der
unabhängigen
Gigabit-Medienschnittstelle (Gigabit Medium Independent Interface,
GMII) zur PCS-Bitübertragungschicht
oder direkt zur Bitübertragungschicht.
Unterstützung einer
kompletten TBI(8b/10b)-Lösung
mittels des PCS-Kerns.
Unterstützung von Vollduplex-Punkt-zu-Punkt-Verbindungen
mit Mediengeschwindigkeit.
Unterstützung mit dem IBM PCS-Kern
die Anzeige der gültigen
Bytes.
-
Der
1000-MBit/s-Kern der Bitübertragungs-Codierungsteilschicht
(PCS) weist die folgenden Merkmale auf:
Durchführen der
7b/10b-Codierung und Decodierung.
Unterstützen der PMA(10-Bit)-Dienstschnittstelle
nach IEEE 802.3z, die zu jedem PMA gemäß IEEE 802.3z passt.
Synchronisieren
der vom PMA empfangenen (zweiphasigen) Daten mit dem MAC empfangenen
(einphasigen) Takt.
Unterstützen
der Auto-Navigation einschließlich
zwei Folgeseiten.
Umwandeln eines in den Standards definierten
Systems mit zweiphasigem Takt in einen einphasigen Takt.
Liefern
eines Signals zum MAC, um diejenigen Taktzyklen anzuzeigen, die
neue Daten enthalten.
Prüfen
der empfangenen Codegruppen (10 Bits) auf COMMAs und Herstellung
der Wortsynchronisation.
Berechnen und Prüfen der Laufzeitunterschiede
nach 8b/10b.
-
Die 2A bis 2D zeigen
verschiedene Konfigurationen für
den Chip der Schnittstelleneinheit. Diese Konfigurationen werden
durch DASL und Verbindung mit einem Koppelnetz ermöglicht.
Jede DASL enthält zwei
Kanäle,
einen Sendekanal und einen Empfangskanal.
-
2A zeigt eine Rückkopplungskonfiguration für eine einzelne
Schnittstelleneinheit. Bei dieser Konfiguration ist der Sendekanal
zum Empfangskanal rückgekoppelt.
-
2B zeigt die Konfiguration, bei der zwei
Chips mit Schnittstelleneinheiten miteinander verbunden sind. Jeder
Chip einer Schnittstelleneinheit ist mit mindestens zwei DASLs versehen.
Bei dieser Konfiguration sind die Kanäle einer DASL auf einem Chip
funktionell mit den Kanälen
einer passenden DASL auf dem anderen Chip verbunden. Die jeweils
andere DASL auf jedem Chip ist rückgekoppelt.
-
2C zeigt die Konfiguration, bei der mehrere
Schnittstelleneinheiten mit einem Koppelnetz verbunden sind. Doppelpfeile
zeigen die bidirektionale Übertragung
an.
-
2D zeigt die Konfiguration, bei der eine
Hauptvermittlung und eine Reservevermittlung mit mehreren Schnittstelleneinheiten
verbunden sind. Wenn die Hauptvermittlung ausfällt, springt die Reservevermittlung
ein.
-
Ein
Steuerpunkt (Control Point, CP) enthält einen Systemprozessor, der
mit jeder der Konfigurationen verbunden ist. Der Systemprozessor
am CP besorgt für
den Chip unter anderem die Initialisierung und Konfigurierung. Der
CP kann sich an einer von drei Stellen befinden: auf dem Chip der
Schnittstelleneinheit; auf dem Leiterplattenelement, auf welchem
der Chip installiert ist; oder außerhalb des Leiterplattenelements.
Wenn sich der CP außerhalb
des Leiterplattenelements befindet, kann er fern von diesem, d.h.
an einer beliebigen Stelle, angeordnet sein und über das Netzwerk erreicht werden,
an das die Schnittstelleneinheit und der CP angeschlossen sind.
Die Elemente eines CP sind in 17 dargestellt
und beinhalten Speicherelemente (Cache-Speicher, Flash-Speicher und SDRAM),
eine Speichersteuerung, einen PCI-Bus und Steckplätze für eine Rückwandplatine
und für
L1-Netzwerkmedien.
-
18 zeigt den Einchip-Netzwerkprozessor und die
durch den EDS-UP, die Datenverkehrssteuerung (MGT) und den EDS-DOWN
(DN) ausgeführten
Funktionen. Die U-förmigen
Symbole stellen Warteschlangen dar, und die Steuerblöcke (CB),
die den Inhalt in den Warteschlangen verfolgen, sind durch Rechtecke
dargestellt.
-
Im
Folgenden werden die Elemente, ihre Funktionen und Wirkungen beschrieben.
PMM:
Dieser Teil des Netzwerkprozessors enthält die MACs (FEnet, POS, GEnet)
und ist an die externen PHY-Einheiten angeschlossen.
UP-PMM:
Diese Logik übernimmt
Bytes von den PHYs, formatiert diese als FISH (16 Bytes) und leitet
sie zum UP-EDS weiter. Im PMM gibt es 4 DMUs, die mit 1 GEnet- oder
10 FEnet-Einheiten zusammenarbeiten können.
UP-EDS: Diese Logik übernimmt
die FISH-Bytes vom UP-PMM und speichert diese im UP-Datenspeicher
(interner RAM). Sie kann 40 Rahmen gleichzeitig verarbeiten und
stellt den Rahmen nach dem Empfangen der entsprechenden Anzahl von
Bytes in die Warteschlange des EPC ein. Wenn der EPC den Rahmen
fertig verarbeitet hat, speichert der UP-EDS den Rahmen in der Warteschlange
des zuständigen
Zielanschlusses und beginnt mit dem Senden des Rahmen zum UP-SDM.
Der UP-EDS ist für
die Verwaltung aller Puffer und Rahmen zuständig und überführt diese wieder in das Reservoir
der freien Puffer/Rahmen zurück,
wenn die Übertragung
zum UP-SDM abgeschlossen ist.
EPC: Diese Logik enthält die Picoprozessoren
und kann einen integrierten Leistungs-Prozessorkomplex (PowerPC)
enthalten. Die Logik kann den Rahmen-Datenvorsatz lesen und entscheiden,
was mit dem Rahmen geschehen soll (Weiterleiten, Verändern, Filtern,
usw.). Der EPC kann auf mehrere Suchtabellen und Hardwareunterstützung zugreifen,
damit die Picoprozessoren die hohen Bandbreitenanforderungen des
Netzwerkprozessors erfüllen
können.
UP-SDM:
Diese Logik übernimmt
die Rahmen und formatiert sie zu PRIZMA-Zellen zur Übertragung
zum Koppelnetz. Diese Logik kann auch den VLAN-Datenvorsatz in den
Rahmen einfügen.
UP-SIF:
Diese Logik enthält
die UP-DASL-Makros und ist mit den externen E/A-Anschlüssen der
Vermittlung verbunden.
DN-SIF: Diese Logik enthält die DN-DASL-Makros
und empfängt
die PRIZMA-Zellen von den externen E/A-Anschlüssen.
DN-SDM: Diese Logik
empfängt
die PRIZMA-Zellen und beginnt mit deren Verarbeitung, um die Wiederherstellung
der Rahmen vorzubereiten.
DN-EDS: Diese Logik übernimmt
jede Zelle und ordnet sie wieder als Rahmen an. Die Zelle wird im
externen Datenspeicher gespeichert, und die Rahmen werden durch
miteinander verbundene Puffer erzeugt. Wenn der gesamte Rahmen empfangen
wurde, wird dieser in der Warteschlange des EPC gespeichert. Wenn
der Rahmen im EPC fertig verarbeitet worden ist, wird er in der
Warteschlange der Ablaufsteuerung (falls vorhanden) oder in den
Warteschlangen des Zielanschlusses gespeichert. Dann sendet der
DN-EDS die Rahmen zum entsprechenden Anschluss, indem er den Rahmen,
alle Änderungsinformationen
und Steuerinformationen zum DN-PMM sendet.
DN-PMM: Übernimmt
die Informationen vom DN-EDS und formatiert den Rahmen als Ethernet,
POS, usw. und sendet den Rahmen zur externen PHY-Einheit.
Speichermanager:
Diese Logik dient der Verbindung des Netzwerkprozessors mit externen
Einheiten (PHY, LED, FLASH, usw.), benötigt dafür jedoch nur 3 E/A-Anschlüsse. Der
Netzwerkprozessor benutzt für
die Kommunikation mit dem SPM eine serielle Schnittstelle und dieser
führt die
erforderlichen Funktionen zur Verwaltung dieser externen Einheiten
aus.
-
Aufwärts-Datenfluss
-
- 1) Rahmen kommt bei PHY an
- 2) Bytes werden durch den UP-PMM empfangen
- 3) UP-PMM sendet FISH zum UP-EDS (FISH ist Teil eines Rahmens)
- 4) UP-EDS speichert FISH im UP-DS
- 5) UP-EDS sendet Datenvorsatz zum EPC
- 6) EPC verarbeitet den Datenvorsatz und sendet Daten zur Warteschlangenspeicherung
zurück
zum UP-EDS
- 7) UP-EDS empfängt
nun den Rest des Rahmens vom UP-PMM
- 8) UP-EDS sendet Daten zum UP-SDM, wenn genügend Daten bereitstehen, um
sie zur Vermittlung zu senden
- 9) UP-SDM liest Rahmendaten und formatiert diese zu PRIZMA-Zellen
- 10) UP-SDM sendet Zellen zum UP-SIF
- 11) UP-SIF überträgt Zellen über serielle
DASL-Leitungen an PRIZMA
- 12) UP-EDS leert Puffer/Rahmen, wenn alle Daten übernommen
worden sind
-
Abwärts-Datenfluss
-
- 1) DN-SIF empfängt PRIZMA-Zellen
- 2) DN-SDM speichert Zellen und beginnt mit deren Verarbeitung
für die
Wiederherstellungsdaten
- 3) DN-EDS empfängt
die Zellendaten und die Wiederherstellungsdaten und verknüpft die
Zelle mit einem neuen Rahmen auf der Abwärtsseite
- 4) DN-EDS speichert die Zelle im DN-DS
- 5) DN-EDS speichert die Zelle in der Warteschlange des EPC,
wenn alle Daten empfangen worden sind
- 6) EPC verarbeitet den Datenvorsatz und sendet Information über die
Speicherung in der Warteschlange zurück zum DN-EDS
- 7) DN-EDS stellt den Rahmen in eine Warteschlange der Ablaufsteuerung
(falls vorhanden) oder in eine Warteschlange des Zielanschlusses
ein
- 8) DN-EDS verarbeitet die Warteschlangen und sendet Rahmendaten
zum PCB
- 9) DN-EDS benutzt den PCB zum „Sortieren" des Rahmens, liest die entsprechenden
Daten und sendet diese zum DN-PMM
- 10) DN-PMM formatiert die Daten (und ändert sie gegebenenfalls) und
sendet den Rahmen zur externen PHY-Einheit
- 11) DN-PMM teilt dem DN-EDS mit, wenn Puffer nicht mehr benötigt werden,
damit dieser die Ressourcen wieder freigeben kann
-
Datenfluss
der Rahmensteuerung
-
- 1) Datenvorsatz wird vom UP-Datenspeicher oder
DN-Datenspeicher
zum EPC gesendet.
- 2) EPC sucht in Suchtabellen nach Datenvorsatzinformationen
und empfängt
Daten zur Speicherung des Rahmens in der Warteschlange
- 3) EPC sendet die Daten zur Speicherung in der Warteschlange
wieder zum EPC zurück
und speichert den Rahmen in der entsprechenden Warteschlange
- 4) Die Zellen-Datenvorsätze
und Rahmen-Datenvorsätze
werden zusammen mit den Rahmendaten gesendet, um die Neuordnung
und Weiterleitung des Rahmens zu unterstützen
-
Datenfluss des Steuerpunktes
CP
-
- 1) Der Steuerpunkt formatiert einen geleiteten
Rahmen und sendet diesen zum Netzwerkprozessor
- 2) Der Netzwerkprozessor speichert den geleiteten Rahmen in
der Warteschlange des GCH-Picoprozessors
- 3) Der GCH verarbeitet den geleiteten Rahmen und liest oder
schreibt die verlangten Bereiche des Rainier-Prozessors
- 4) Der GCH übergibt
GTH alle Anforderungen zur Tabellenaktualisierung
- 5) Der GTH aktualisiert die entsprechende Tabelle durch die
Daten des geleiteten Rahmens
- 6) Zum CP wird eine Bestätigung
des geleiteten Rahmens zurückgesendet
-
Datenfluss der Netzwerkprozessorsteuerung
-
- 1) Ein Picoprozessor kann einen geleiteten
Rahmen erzeugen, um Daten zu einem anderen Rainier-Prozessor oder
zum Steuerpunkt zu senden
- 2) Der geleitete Rahmen wird zur Verarbeitung an die entsprechende
Stelle gesendet.
-
Eine
einzelne Schnittstelleneinheit bedient bis zu 40 Fast-Ethernet-Anschlüsse (2A) mit Mediengeschwindigkeit. 80 Fast-Ethernet-Anschlüsse werden
unterstützt,
wenn zwei Schnittstelleneinheiten nach der DASL-Technologie (Data Aligned
Synchronous Link, synchrone Leitung mit Datenanpassung) unterstützt werden.
Jedes DASL-Differenzialpaar überträgt 440 MBit/s
Daten. Zwei Gruppen zu acht Paaren bilden eine Duplexverbindung
mit 3,5 GBit/s (8 mal 440 MBit/s in jeder Richtung). 2C und 2D zeigen,
dass durch Verbinden mehrerer Schnittstelleneinheiten zu einer Vermittlung,
zum Beispiel zu einer IBM PRIZMA-E-Vermittlung, größere Systeme
aufgebaut werden können.
Die Schnittstelleneinheit liefert zwei (eine primäre und eine
sekundäre)
Duplex-DASL-Verbindungen mit 3,5 GBit/s, die als gemeinsamer Rückkopplungspfad
für lokalen Rahmenverkehr
(wenn zwei Schnittstelleneinheiten gemäß 2B direkt
miteinander verbunden sind) oder als Verbindung mit einem redundanten
Koppelnetz (2D, Reservevermittlungseinheit)
genutzt werden können.
Aus dem oben Gesagten ergibt sich, dass der einfache Netzwerkprozessor-Chip
insofern skaliert werden kann, als ein Chip für ein System mit geringer (mit
relativ wenigen, zum Beispiel 40 Anschlüssen) bis zu hoher Leistungsfähigkeit
(mit relativ vielen, zum Beispiel 80 Anschlüssen) ausgelegt werden kann.
-
Eine
Schnittstelleneinheit im System ist über einen der bis zu zehn Fast-Ethernet-Anschlüsse zu 10/100
MBit/s oder einen Ethernet-Anschluss zu 1000 MBit/s mit dem Systemprozessor
verbunden. Die Ethernet-Konfiguration mit dem Systemprozessor ist
auf einem EEPROM in der Schnittstelleneinheit untergebracht, der
während
der Initialisierung geladen wird. Der Systemprozessor tauscht mit
allen Schnittstelleneinheiten in einem System (siehe 2)
oder mit anderen Schnittstellen Daten mittels spezieller geleiteter
Rahmen aus, die zum Beispiel als Ethernet-Rahmen gekapselt sind.
Die gekapselten geleiteten Rahmen werden über die DASL-Leitung zu anderen Einheiten
weitergeleitet, wodurch alle Schnittstelleneinheiten im System von
einem einzigen Punkt aus gesteuert werden können.
-
Geleitete
Rahmen werden zum Übertragen
von Steuerdaten zwischen dem Steuerpunkt (CP) und dem integrierten
Prozessorkomplex und innerhalb der Schnittstelleneinheit verwendet.
Eine frühere
Beschreibung von geleiteten Zellen in der US-Patentschrift 5 724
348 mit dem Titel „Efficient
Hardware/Software Interface for a Data Switch", erteilt am 3. März 1998, trägt zur Klärung der obigen Sachverhalte
bei.
-
Der
vom CP ausgehende Datenverkehr der geleiteten Rahmen wird durch
den CP in Datenpuffern in dessen lokalem Speicher gespeichert. Der
Einheitentreiber des CP sendet den geleiteten Rahmen zu einer der
Medienschnittstellen des Netzwerkprozessors. Die MAC-Hardware ruft
den geleiteten Rahmen ab und speichert ihn in ihrem internen Datenspeicher
(U_DS). Der geleitete Rahmen wird zum entsprechenden Leiterplattenelement
weitergeleitet, dort verarbeitet und bei Bedarf wieder zum CP zurückgeschickt.
Zwischen einem externen CP und der Schnittstelleneinheit transportierte
geleitete Rahmen werden so gekapselt, dass sie mit dem Protokoll
des externen Netzwerks vereinbar sind. Wenn das externe Netzwerk
zum Beispiel ein Ethernet ist, werden die geleiteten Rahmen folglich
als Ethernet-Rahmen gekapselt und so weiter.
-
Die
Ethernet-Kapselung stellt ein Transportmittel für die Übertragung von geleiteten Rahmen
zwischen dem CP und der Schnittstelleneinheit dar. Die Ethernet-MAC
(Enet MAC) der Schnittstelleneinheit analysiert beim Empfang der
Rahmen weder die Zieladresse (Destination Address, DA) noch die Quelladresse
(Source Address, SA). Diese Analyse wird durch den EPC-Picocode
vorgenommen. Der geleitete Rahmenverkehr geht davon aus, dass die
Schnittstelleneinheit nicht konfiguriert worden ist und die DA und
die SA durch den EPC-Picocode nicht analysiert werden können. Deshalb
sind diese Rahmen von Haus aus so beschaffen, dass sie die Leitwegwahl
selbst vornehmen (Self-Routing). Die Enet-MAC hingegen analysiert
das Feld Ethernet-Typ, um den geleiteten Rahmenverkehr vom Datenverkehr
zu unterscheiden. Der Wert dieses Feldes Ethernet-Typ des geleiteten
Rahmens muss mit dem in das Register E_Type_C geladenen Wert übereinstimmen.
Dieses Register wird durch den Boot-Picocode der Schnittstelleneinheit
aus dem Flash-Speicher geladen.
-
Der
CP speichert den geleiteten Rahmen in Datenpuffern in seinem lokalen
Speicher. Der Inhalt eines 32-Bit-Registers im CP-Prozessor wird
im Big-Endian-Format (Adressierung des höchstwertigen Bits) im lokalen
Speicher gemäß 3 gespeichert.
Nach dem Erzeugen des geleiteten Rahmens sendet der Einheitentreiber
des CP einen Ethernet-Rahmen, der eine DA für den speziellen Prozessor
für geleitete
Zellen (Guide Cell Handler, GCH), eine der globalen MAC-Adressen
für den
CP oder der MAC-Adresse für
die spezielle Schnittstelle entsprechende SA, ein spezielles Feld
Ethernet-Typ zum Anzeigen eines geleiteten Rahmens und die Daten
des geleiteten Rahmens enthält.
Alle am Anschluss ankommenden Ethernet-Rahmen werden durch die MAC
empfangen und analysiert. Bei Rahmen, bei denen der Wert des Feldes
Ethernet-Typ dem Inhalt des Registers E_Type_C entspricht, entfernt
die Enet-MAC die Felder DA, SA und Ethernet-Typ und speichert die
Daten des geleiteten Rahmens im U_DS-Speicher. Die Bytes werden
durch die Enet-MAC gleichzeitig zu einem 16 Byte großen Block
mit der Bezeichnung FISH (Flash International Semiconductor Harddrive, internationaler
Flash-Halbleiterspeicher) zusammengefasst. Diese Bytes werden im
Bit-Endian-Format gespeichert, wobei das erste Byte des geleiteten
Rahmens an dem Speicherplatz des höchstwertigen Bytes (Byte 0)
des FISH gespeichert wird. Die folgenden Bytes werden im FISH an
den folgenden Speicherplätzen (Byte
1, Byte 2, ..., Byte 15) gespeichert. Diese 16 Bytes werden dann
beginnend mit dem Speicherplatz FISH 0 in einem Puffer im U_DS gespeichert.
Nachfolgende FISH-Daten
werden auf anschließenden
FISH-Speicherplätzen
im Puffer gespeichert (FISH 1, FISH 2, FISH 3, usw.). Bei Bedarf
können
weitere Puffer aus einem Reservoir freier Speicher genutzt werden,
um den Rest des geleiteten Rahmens zu speichern.
-
Der
Fluss des geleiteten Datenverkehrs in der Schnittstelleneinheit 10 ist
in 4 dargestellt. Die Funktion Enet-MAC der Schnittstelleneinheit
prüft die
Rahmen-Datenvorsatzinformationen
und ermittelt, ob es sich bei dem Rahmen um einen geleiteten Rahmen
handelt. Die Enet-MAC entfernt den Rahmen-Datenvorsatz aus dem geleiteten
Rahmen und puffert den restlichen Inhalt im internen U_DS-Speicher
der Schnittstelleneinheit. Die Enet-MAC zeigt an, dass der Rahmen
zur Verarbeitung durch den GCH in der allgemeinen Steuerwarteschlange
(General Control, GC) gespeichert werden soll. Sobald das Ende des
geleiteten Rahmens erreicht worden ist, speichert die Logik zum
Speichern, Lesen und Steuern (Enqueue, Dequeue and Schedule, EDS)
den Rahmen in der GC-Warteschlange.
-
Der
auf dem Leiterplattenelement lokal im CP gespeicherte GCH-Picocode prüft die Rahmensteuerdaten
(siehe 6) und ermittelt, ob der geleitete Rahmen für andere Leiterplattenelemente
im System vorgesehen ist und ob der geleitete Rahmen auf der Abwärtsseite
der Schnittstelleneinheit verarbeitet werden soll. Wenn der Rahmen
für weitere
Leiterplattenelemente neben dem lokalen Leiterplattenelement vorgesehen ist,
aktualisiert der GCH-Picocode
den Wert TB im Rahmensteuerblock (Frame Control Block, FCB) durch
den Wert TB aus den Rahmensteuerdaten des geleiteten Rahmens und
weist den EDS an den Rahmen in der Multicast-Warteschlange für den Rahmenanfang
im Ziel-Leiterplattenelement
(Target Blade Start of Frame, TB_SOF) zu speichern. Zur Leistungssteigerung
wird der gesamte geleitete Rahmenverkehr unabhängig von der Anzahl der angegebenen
Ziel-Leiterplattenelemente
in der TB_SOF-Multicast-Warteschlange gespeichert.
-
Wenn
der Rahmen nur für
das lokal angeschlossene Leiterplattenelement vorgesehen ist, prüft der GCH-Picocode
das Feld Aufwärts/Abwärts in den
Rahmensteuerdaten und ermittelt, ob der geleitete Rahmen auf der
Aufwärtsseite
oder der Abwärtsseite
der Schnittstelleneinheit ausgeführt
werden soll (siehe 6). Wenn der geleitete Rahmen
auf der Abwärtsseite
der Schnittstelleneinheit ausgeführt
werden soll, aktualisiert der GCH-Picocode den Wert TB im FCB durch
den Wert TB aus den Rahmensteuerdaten des geleiteten Rahmens und
weist den EDS an, den Rahmen in der Multicast-Rahmenanfangswarteschlange des Ziel-Leiterplattenelements
(TB_SOF) zu speichern. Wenn die Rahmensteuerdaten anzeigen, dass
der geleitete Rahmen auf der Aufwärtsseite ausgeführt werden
soll, prüft
der GCH-Picocode den geleiteten Rahmen und führt die Operationen der in
ihm enthaltenen geleiteten Befehle aus.
-
Vor
der Ausführung
der geleiteten Befehle prüft
der Picocode den Wert des Feldes ack/noack (Bestätigung/keine Bestätigung)
der Rahmensteuerdaten. Wenn dieser Wert gleich „0"b ist, wird der geleitete Rahmen nach
der Verarbeitung gelöscht.
Geleitete Lesebefehle gehören
nicht zu dieser Kategorie.
-
Wenn
der Wert des Feldes ack/noack gleich „1"b und der Wert des Feldes early/late
(früh/spät) gleich „1"b ist, erzeugt der
Picocode vor der Verarbeitung eines geleiteten Befehls im geleiteten
Rahmen einen geleiteten Rahmen Early_Ack (frühe Bestätigung), wobei der Wert des
Feldes TB der Rahmensteuerdaten gleich dem Inhalt des geleiteten
Rahmens Early_Ack und der Wert des Feldes TB der Rahmensteuerdaten
gleich dem Inhalt des Registers My_TB ist. Der Picocode schickt
den geleiteten Rahmen Early_Ack zurück zum CP, indem er den Wert
TB im FCB des Rahmens mit dem im Feld TB des Adressregisters des
LRN-Steuerpunktes (LAN_CP_Addr) enthaltenen Wert aktualisiert und
den EDS anweist, den Rahmen in der Multicastwarteschlange TB_SOF
zu speichern. Dann verarbeitet der Picocode die geleiteten Befehle
des geleiteten Rahmens und löscht
den geleiteten Rahmen. Die geleiteten Lesebefehle gehören nicht
zu dieser Kategorie.
-
Wenn
hingegen der Wert des Feldes ack/noack gleich „1"b und der Wert des Feldes early/late
gleich „0"b ist, ändert der
Picocode das Feld resp/req der Rahmensteuerdaten in „1"b und zeigt so eine
Antwort des geleiteten Rahmens an, ersetzt das Feld TB durch den
Inhalt des Registers My_TB und führt
jeden geleiteten Befehl im geleiteten Rahmen aus. Während der
Ausführung
eines geleiteten Befehls aktualisiert der Picocode das Feld Abschlusscode
des nächsten
geleiteten Befehls mit dem Codewert Abschlussstatus für den aktuellen geleiteten
Befehl.
-
Der
Picocode leitet die Antwort zurück
zur Quelle, indem er den Wert TB im FCB mit dem dem Ziel-Leiterplattenelement
entsprechenden Wert (Registerwert LAN_CP_Addr für den CP) aktualisiert, und
weist den EDS an, den Rahmen in der Multicast-Warteschlange TB_SOF
zu speichern.
-
In
der TB_SOF-Warteschlange befindliche Rahmen werden durch den EDS
der Reihe nach weitergeleitet. Der Vermittlungsdatenübertrager
(Switch Data Mover, SDM) erzeugt aus den im FCB enthaltenen Daten den
Koppelnetz-Zellendatenvorsatz
und den Schnittstelleneinheit-Rahmendatenvorsatz.
Diese Zellen gelangen durch das Koppelnetz und kommen am Ziel-Leiterplattenelement
an, wo die Zellen im D-DS-Speicher wieder zu einem Rahmen zusammengesetzt
werden. Der SDM auf der Abwärtsseite
erkennt den Rahmen als geleiteten Rahmen und teilt dem EDS mit,
dass dieser in der GC-Warteschlange
gespeichert werden soll.
-
Auf
Veranlassung durch die GC-Warteschlange und die GT-Warteschlange greift
der Picocode auf die geleiteten Rahmen zu und analysiert diese.
Alle auf der Abwärtsseite
ankommenden geleiteten Rahmen werden zuerst in der GC-Warteschlange
gespeichert. Der Wert gth/gch der Rahmensteuerdaten für diese
Rahmen wird durch den GCH-Picocode geprüft. Wenn der Wert gth/gch gleich „0"b ist, wird der geleitete
Rahmen in der GT-Warteschlange
gespeichert. Ansonsten prüft
der GCH-Picocode das Feld resp/req der Rahmensteuerdaten und ermittelt,
ob der geleitete Rahmen bereits verarbeitet worden ist. Wenn der
Wert resp/req gleich „1"b ist, ist der geleitete
Rahmen bereits verarbeitet worden und wird zum CP weitergeleitet.
Die Werte der den CP-Anschlüssen
entsprechenden Zielanschlüsse
werden durch den EPC-Picocode unverändert gelassen. Rahmen aus
den Warteschlangen dieser Zielanschlüsse werden von der Schnittstelleneinheit
zum CP zurück übertragen.
-
Wenn
der Wert des Feldes resp/req gleich „0"b ist, kann es sich um ein bezüglich des
CP lokales oder fernes Leiterplattenelement handeln. Diese Unterscheidung
wird durch den Vergleich zwischen dem Wert des Feldes TB des Registers
LAN_CP_Addr mit dem Inhalt des Registers My Target Blade (My-TB) getroffen. Wenn
die beiden Werte übereinstimmen,
handelt es sich um ein bezüglich
des CP lokales Leiterplattenelement, ansonsten um ein vom CP fernes
Leiterplattenelement. In beiden Fällen prüft der Picocode den Wert up/down
der Rahmensteuerdaten. Wenn der Wert up/down gleich „1"b ist, wird der Rahmen
in der Warteschlange Wrap TP gespeichert, um ihn von dort zum U_DS
weiterzuleiten und auf der Aufwärtsseite
durch den GCH zu verarbeiten. Ansonsten führt der Picocode (GCH oder
Gth) die Operationen aus, die durch die im geleiteten Rahmen enthaltenen
geleiteten Befehle angezeigt werden. Vor der Ausführung der
geleiteten Befehle prüft
der Picocode den Wert des Feldes ack/noack der Rahmensteuerdaten.
Wenn der Wert gleich „0"b ist, wird der geleitete
Rahmen nach der Verarbeitung gelöscht.
Die geleiteten Lesebefehle gehören
nicht zu dieser, Kategorie.
-
Wenn
der Wert des Feldes ack/noack gleich „1"b und der Wert des Feldes early/late
gleich „1"b ist, erzeugt der
Picocode vor der Ausführung
eines der geleiteten Befehle im geleiteten Rahmen einen geleiteten Rahmen
Early Ack, wobei der Wert des Feldes TB der Rahmensteuerdaten gleich
dem Inhalt des Registers My_TB ist. Wenn das Leiterplattenelement
vom CP fern ist, leitet der Picocode den geleiteten Rahmen Early Ack
zum Rückkopplungsanschluss.
Ansonsten ist es ein bezüglich
des CP lokales Leiterplattenelement, und der Rahmen wird zu der
dem CP entsprechenden Anschlusswarteschlange geleitet. Der Picocode
führt die
geleiteten Befehle aus, während
entweder der Rückkopplungsanschluss
den geleiteten Rahmen Early Ack vom D_DS zum U_DS transportiert
und den Rahmen in der GC-Warteschlange
auf der Aufwärtsseite
speichert oder der Rahmen von der Anschlusswarteschlange zurück zum CP übertragen
wird. Bei den wieder zum U_DS zurückgeleiteten Rahmen erkennt
der GCH-Picocode wieder diesen Rahmen, wobei jedoch der Wert des
Feldes resp/req gleich „1"b ist. Der GCH-Picocode
leitet den Rahmen wieder zurück
zum CP, indem er das Feld TB im FCB durch den im Feld TB des Registers
LAN_CP_Addr enthaltenen Wert aktualisiert und den EDS anweist, den
Rahmen in der Multicast-Warteschlange
TB_SOF zu speichern. In der Warteschlange TB_SOF gespeicherte Rahmen
werden der Reihe nach zum EDS geleitet. Der SDM erzeugt aus den
im FCB enthaltenen Daten den PRIZMA-Zellen-Datenvorsatz und den Rahmen-Datenvorsatz
der Schnittstelleneinheit. Die Zellen dieses Rahmens gelangen durch
die PRIZMA-Einheit und werden im lokalen Leiterplattenelement des
CP wieder zu einem Rahmen zusammengesetzt. Der SDM auf der Abwärtsseite
erkennt den Rahmen als geleiteten Rahmen und weist den EDS an, den
Rahmen in der GC-Warteschlange zu speichern. Zu dem Zeitpunkt, da der
GCH-Picocode den Rahmen analysiert, ist der Wert des Feldes resp/req
gleich „1"b. Das bedeutet,
dass dieses Leiterplattenelement lokal mit dem CP verbunden ist
und der geleitete Rahmen zu der Anschlusswarteschlange geleitet
wird, die zu dem CP gehört.
Die Rahmen aus dieser Warteschlange werden von der Schnittstelleneinheit
wieder zurück
zum CP übertragen.
-
Wenn
hingegen der Wert des Feldes ack/noack gleich „1"b und der Wert des Feldes early/late
gleich „0"b ist, ändert der
Picocode den Wert des Feldes resp/req in „1"b, um eine Antwort auf den geleiteten
Rahmen anzuzeigen, und ersetzt den Wert des Feldes TB durch den
Inhalt des Registers My_TB und führt
dann jeden geleiteten Befehl im geleiteten Rahmen aus. Während der
Ausführung
eines geleiteten Befehls aktualisiert der Picocode das Feld Abschlusscode
des nächsten
geleiteten Befehls durch den Wert des Abschlussstatuscodes für den aktuellen
geleiteten Befehl. Wenn das Leiterplattenelement fern vom CP ist,
leitet der Picocode den geleiteten Rahmen zum Rückkopplungsanschluss. Andernfalls
handelt es sich bezüglich
des CP um ein lokales Leiterplattenelement, und der Rahmen wird
zu der dem CP entsprechenden Anschlusswarteschlange geleitet. Entweder überträgt der Rückkopplungsanschluss
den geleiteten Rahmen vom D_DS zum U_DS und speichert den Rahmen
in der GC-Warteschlange an der Aufwärtsseite oder der Rahmen wird
von der Anschlusswarteschlange zurück zum CP übertragen. Bei den zum U_DS
zurück übertragenen
Rahmen erkennt der GCH-Picocode wiederum diesen Rahmen, wobei jedoch
der Wert des Feldes resp/req gleich „1"b ist. Der GCH-Picocode leitet den Rahmen
wieder zurück
zum CP, indem er das Feld TB im FCB durch den im Feld TB des Registers
LAN_CP_Addr enthaltenen Wert aktualisiert und den EDS anweist, den
Rahmen in der Multicast-Warteschlange
TB_SOF zu speichern. In der Warteschlange TB_SOF gespeicherte Rahmen
werden durch den EDS der Reihe nach weitergeleitet. Der SDM erzeugt
aus den im FCB enthaltenen Daten den PRIZMA-Zellendatenvorsatz und
den Rahmen-Datenvorsatz
der Schnittstelleneinheit. Zellen dieses Rahmens gelangen durch
die PRIZMA-Einheit und werden auf der Abwärtsseite des lokalen Leiterplattenelements
des CP wieder zu einem Rahmen zusammengesetzt. Der SDM der Abwärtsseite erkennt
den Rahmen als geleiteten Rahmen und weist den EDS, den Rahmen in
der GC-Warteschlange zu speichern. Zu dem Zeitpunkt, da der GCH-Picocode
den Rahmen aus dem D_DS analysiert, ist der Wert des Feldes resp/req
gleich „1"b. Das bedeutet,
dass dieses Leiterplattenelement lokal mit dem CP verbunden ist
und der geleitete Rahmen zu der Anschlusswarteschlange geleitet
wird, die dem CP entspricht. Rahmen aus dieser Warteschlange werden
von der Schnittstelleneinheit wieder zurück zum CP übertragen.
-
Wenn
der GCH-Picocode aus irgendeinem Grunde einen geleiteten Rahmen
verarbeiten soll, bei dem der Wert des Feldes TB der Rahmensteuerdaten
gleich „0000"h ist, geht der GCH-Picocode
davon aus, dass dieser Rahmen ausschließlich zu diesem Leiterplattenelement
gehen soll, und handelt entsprechend. Diese Maßnahme muss während der
Initialisierung durchgeführt
werden, wenn der Wert des Registers My_TB für alle Leiterplattenelementgleich „0000"h ist. Der CP initialisiert
das Register My_TB des lokal angeschlossenen Leiterplattenelements
durch Senden eines geleiteten Befehls Schreiben in einem geleiteten
Rahmen, dessen Feld TB in den Rahmensteuerdaten einen Wert „0000"h hat.
-
Jeder
der Picoprozessoren im EPC kann einen geleiteten Rahmen erzeugen.
Dieser Rahmen kann ein nicht erwarteter geleiteter Rahmen oder eine
andere Form eines geleiteten Rahmens sein. Intern erzeugte Rahmen
dieser Art werden auf eine Weise erzeugt, die keine Bestätigung zulassen
(d.h. ack/noack = „0"b). Diese Rahmen
können
zu einem der beiden Picoprozessoren (GCH oder GTH) innerhalb desselben
EPC oder zum GCH oder FTH eines anderen Leiterplattenelements gesendet
werden.
-
Nicht
erwartete geleitete Rahmen können
ebenfalls zum CP gesendet werden. Für denselben EPC vorgesehene
geleitete Rahmen werden unter Verwendung der Datenpuffer im D_DS
erzeugt. Diese Rahmen werden dann zur weiteren Verarbeitung in der
GC- oder der GT-Warteschlange gespeichert. Diese Rahmen werden dann
in der üblichen
Weise verarbeitet und anschließend
gelöscht.
Für den
lokal angeschlossenen CP vorgesehene nicht erwartete geleitete Rahmen
werden unter Verwendung der Datenpuffer im D_DS erzeugt. Diese Rahmen
werden auf eine Weise erzeugt, dass klar ist, dass sie durch den
EPC verarbeitet worden sind (d.h. resp/req = „1"b und TB = My_TB). Diese Rahmen werden
in der dem CP entsprechenden Anschlusswarteschlange gespeichert.
Die Rahmen aus dieser Warteschlange werden wieder zurück zum CP übertragen.
-
Für ein anderes
Leiterplattenelement vorgesehene geleitete Rahmen können unter
Verwendung der Datenpuffer im D_DS oder im U_DS erzeugt werden.
Für den
CP vorgesehene nicht erwartete geleitete Rahmen werden auf eine
Weise erzeugt, dass klar ist, dass die durch den EPC verarbeitet
worden sind (d.h. resp/req = „1"b und TB = My_TB).
Die unter Verwendung der Puffer des D_DS erzeugten Rahmen werden
in der Warteschlange des Rückkopplungsanschlusses
gespeichert. Diese Rahmen werden zum U_DS übertragen und in der GC-Warteschlange
auf der Aufwärtsseite
gespeichert. Nicht erwartete geleitete Rahmen mit einem Wert resp/req
gleich „1"b werden anhand des
Wertes TB im Register LAN_CP_Addr zum CP geleitet. Ansonsten leitet
der GCH-Picocode diese Rahmen anhand des Wertes TB der Rahmensteuerdaten
des geleiteten Rahmens weiter. Beim Empfang an einem entsprechenden
Leiterplattenelement wird der Rahmen in der GC-Warteschlange auf
der Abwärtsseite
gespeichert. Der GCH dieses Leiterplattenelements verarbeitet den Rahmen
und löscht
ihn anschließend
(resp/req = „0"b und gth/gch = „1") oder speichert
den Rahmen in der GT-Warteschlange (resp/req = „0"b und gth/gch = „0") oder speichert den Rahmen in der dem
CP entsprechenden Anschlusswarteschlange (resp/req = „1"b). Die unter Verwendung
der Datenpuffer im U_DS erzeugten Rahmen werden direkt in der GC-Warteschlange
auf der Aufwärtsseite
gespeichert. Von hier ab werden diese Rahmen genauso verarbeitet
wie die unter Verwendung der Datenpuffer des D_DSA erzeugten Rahmen
und folgen demselben Weg. 5 zeigt
das verallgemeinerte Format für
geleitete Rahmen.
-
Das
Format wird als logische Darstellung gezeigt, bei der das höchstwertige
Byte links und das niedrigstwertige Byte rechts steht. Vier Bytewörter beginnen
oben mit dem Wort 0 und werden nach unten zu größer.
-
Da
geleitete Rahmen weitergeleitet und verarbeitet werden müssen, bevor
die Schnittstelleneinheit durch den CP konfiguriert worden ist,
müssen
diese Rahmen ihre Weiterleitung selbst durchführen. Die normalerweise durch
Suchen und Klassifizieren erhaltenen Ergebnisse sind in diesem Feld
Rahmensteuerdaten des geleiteten Rahmens enthalten, sodass der Chip
den FCB ohne Ausführen
einer Suchoperation durch diese Daten aktualisieren kann. Die in
dem geleiteten Rahmen enthaltene Information zum Ziel-Leiterplattenelement
wird von der Steuerroutine für
geleitete Rahmen dazu verwendet, das Feld Blattseite im FCB zu erstellen. Die
Ziel-Leiterplattenelement-Daten
kommen vom CP, während
der GCH-Picocode
die anderen Felder des FCB ausfüllt.
Diese FCB-Daten werden durch den SDM zum Erstellen der Zellen- und
Rahmen-Datenvorsatz verwendet.
Das Format des Feldes Rahmensteuerdaten des geleiteten Rahmens ist
in 6 dargestellt.
-
Im
Folgenden werden die Abkürzungen
für jede
Bitposition in
6 erläutert:
resp/req | Wert
der Anzeige Antwort und Keine Anforderung. Dieses Feld dient der
Unterscheidung zwischen geleiteten Anforderungsrahmen (nicht verarbeitet)
und Antwortrahmen.
0 Anforderung
1 Antwort |
ack/noack | Steuerwert
Bestätigung
oder Keine Bestätigung.
Dieses Feld dient der Prüfung,
ob der GCH-Picocode den geleiteten Rahmen bestätigt (ack) oder nicht bestätigt (noack).
Geleitete Rahmen, die nicht bestätigt
werden sollen, enthalten keinerlei geleitete Befehle in irgendeiner
Form, die eine Leseoperation bewirken.
0 Keine Bestätigung
1
Bestätigung |
early/late | Steuerwert
Frühe und
späte Bestätigung.
Dieses Feld dient der Prüfung,
ob die angeforderte Bestätigung (ack/noack
= „1"b) vor (früh) oder
nach (spät)
der Verarbeitung des geleiteten Rahmens ausgegeben wurde. Dieses
Feld wird übergangen,
wenn ack/noack = „0"b ist.
0 Bestätigung nach
Verarbeitung des geleiteten Rahmens
1 Bestätigung vor Verarbeitung des
geleiteten Rahmens |
neg/all | Steuerwert
Negative Bestätigung
oder Alle bestätigen.
Dieses Feld wird übergangen,
wenn der Wert des Feldes ack/noack gleich „0"b ist, nicht aber, wenn ein geleiteter
Befehl nicht vollständig
ausgeführt
worden ist.
0 Alle geleiteten Rahmen bestätigen, wenn ack/noack = „1"b ist. Frühe oder
späte Bestätigung wird
durch den Wert von early/late bestimmt.
1 Nur die geleiteten
Rahmen bestätigen,
die nicht vollständig
ausgeführt
worden sind. Diese Bestätigung erfolgt
unabhängig
von den Werten ack/noack und early/late und stellt natürlich eine
späte Bestätigung dar. |
up/down | Steuerwert
Aufwärts-
oder Abwärtsseite.
Mit diesem Wert wird geprüft,
ob der Rahmen auf der Aufwärtsseite
oder auf der Abwärtsseite
verarbeitet wird. Dieses Feld wird übergangen, wenn der Wert des
Feldes resp/req gleich „1"b ist. Der Wert des
Feldes up/down von allen geleiteten Multicast-Rahmen ist gleich „0"b. Außerdem ist
der Wert des Feldes up/down von geleiteten Befehlen, die der Verwendung
von Befehlen zur Unterstützung
der GTH-Hardware bedürfen,
gleich „0"b.
0 Verarbeitung
auf der Abwärtsseite
1
Verarbeitung auf der Aufwärtsseite |
gth/gch | Steuerwert
GTH-Prozessor oder GCH-Prozessor. Dieser Wert leitet die geleiteten
Rahmen zum richtigen Picoprozessor.
0 GCH-Picoprozessor
1
GTH-Picoprozessor |
TB | Steuerwert
Ziel-Leiterplattenelement. Wenn der Wert des Feldes resp/req gleich „0"b ist, enthält dieses
Feld Leitwegdaten zur Nutzung durch PRIZMA. Jede Bitposition entspricht
einem Ziel-Leiterplattenelement. Wenn
dieser Wert gleich „0000"h ist, heißt dies,
dass der geleitete Rahmen zu diesem Leiterplattenelement gehört und entsprechend
verarbeitet wird. Ein Wert „1"b an einer oder mehreren
Bitpositionen im Feld TB zeigt an, dass die Zelle zu dem(den) entsprechenden Ziel-Leiterplattenelement(en)
geleitet wird. Wenn der Wert des Feldes resp/req gleich „1"b ist, enthält das Feld
den Wert My_TB des entsprechenden Leiterplattenelements. |
-
Das
Wort 1 des geleiteten Rahmens enthält einen Korrelatorwert (7).
Dieser wird durch die CP-Software zugewiesen und ordnet die Antworten
der geleiteten Rahmen den entsprechenden Anforderungen zu. Der Korrelator
enthält
eine Vielzahl von Bits, zu denen jeweils eine Funktion gehört.
-
Am
Anfang jedes geleiteten Befehls steht ein Feld Befehlssteuerdaten.
Diese Befehlssteuerung enthält
Daten zum Unterstützen
der Verarbeitung eines geleiteten Rahmens durch den GCH-Picocode.
Das Format dieser Daten ist in 8 dargestellt.
-
Wert
Länge:
Dieser Wert zeigt die Gesamtzahl der 32-Bit-Wörter an, die in den Steuerdaten
(Befehlswort 0), den Adressdaten (Befehlswort 1) und in den Operanden
(Befehlswörter
2+) des geleiteten Rahmens enthalten sind.
-
Wert
Abschlusscode: Dieses Feld wird durch den CP initialisiert und bei
der Verarbeitung der geleiteten Befehle durch den GCH-Picocode modifiziert.
Der GCH-Picocode nutzt dieses Feld als Abschlussstatus für den vorangehenden
geleiteten Befehl in der Befehlsliste. Da am Ende aller Listen der
geleiteten Befehle der geleitete Schlussbefehl steht, ist der Abschlussstatus
des letzten Befehls im Feld Abschlusscode des Schlussbefehls enthalten.
-
Typwerte
der geleiteten Befehle (symbolische Bezeichnung)
-
-
Die
in dem geleiteten Rahmen enthaltenen Adressdaten kennzeichnen ein
Element in der Adressstruktur des Netzwerkprozessors. Die allgemeine
Form des Feldes Adressstruktur ist in 9 dargestellt.
-
Die
Schnittstelleneinheit verwendet eine 32-Bit-Adressstruktur. Dieses Adressierungssystem
weist jeder zugänglichen
Struktur der Schnittstelleneinheit einen Adresswert zu. Diese Strukturen
sind entweder im Prozessor angelegt oder gehören zu den durch den Prozessor
gesteuerten Schnittstellen. Auf einige dieser Strukturen greift
der integrierte Prozessorkomplex (EPC) über eine interne Schnittstelle
mit der Bezeichnung Web-Schnittstelle zu. Der Zugriff auf den Rest
der Strukturen erfolgt über
die Schnittstellen der Speichersteuerung. Auf alle Fälle trifft
die in 10 dargestellte allgemeine Form
der Adressen zu.
-
Die
Netzwerksteuereinheit ist auf eine Reihe größerer Chipbereiche verteilt.
Jeder Bereich erhält
eine eindeutige Bereichs-ID. Diese 5-Bit-Bereichs-ID entspricht
den 5 höchstwertigen
Bits der Adresse für
die durch diesen Chipbereich beherrschten Strukturen. Die Zuordnung
zwischen der codierten Bereichs-ID und dem Namen des Chipbereichs
ist in 11 dargestellt. Der zweite Teil
der Webadresse besteht aus den nächsten
23 höchstwertigen
Bits. Dieses Adressfeld ist in einen Teil für die Strukturadresse und einen
Teil für
die Elementadresse unterteilt. Die Anzahl der für jedes Segment verwendeten
Bits kann von Bereich zu Bereich variieren. Manche Bereiche können nur
wenige große
Strukturen, andere Bereiche viele kleine Strukturen enthalten. Aus diesem
Grunde ist die Größe dieser
Adresssegmente nicht fest vorgegeben. Der Teil für die Strukturadresse dient
zur Adressierung einer Matrix innerhalb des Bereichs und der Teil
für die
Elementadresse für
die Adressierung eines Elements innerhalb der Matrix. Der Rest der
Adresse soll der Beschränkung
des Datenbusses der Web-Schnittstelle
auf die Breite von 32 Bit Rechnung tragen. Diese aus einem 4-Bit-Wort
bestehende Adresse dient zum Auswählen von 32 Bit breiten Segmenten
des adressierten Elements. Das ist erforderlich, damit Strukturelemente
mit einer Breite von über
32 Bit über
den Webdatenbus des Netzwerkcontrollers transportiert werden können. Der
Wert „0"h der Wortadresse
bezieht sich auf die 32 höchstwertigen
Bits des Strukturelements, während
die nachfolgenden Werte der Wortadresse den nächsten niedrigerwertigen Segmenten des
Strukturelements entsprechen. Der Wortadressteil der Adresse wird
für Strukturen,
auf die über
die Web-Schnittstelle nicht zugegriffen wird, nicht benötigt. Aus
diesem Grunde verwenden der Aufwärts-Datenspeicher,
die Steuerspeicher und der Abwärts-Datenspeicher
alle 27 niedrigstwertigen Bits der Adresse für den Zugriff auf Strukturelemente.
Eine weitere Ausnahme von diesem Format stellt die Adresse für die SPM- Schnittstelle dar.
In diesem Fall werden alle 27 Bits der Adresse verwendet, wobei
kein Element breiter als 32 Bit ist.
-
Der
integrierte Prozessorkomplex (EPC) gewährleistet und steuert die Programmierbarkeit
des Chips der Schnittstelleneinheit. Er enthält die folgenden Komponenten
(siehe auch 12A):
N Verarbeitungseinheiten
GxH: Die GxHs führen
gleichzeitig den in einem allgemeinen Befehlsspeicher gespeicherten
Picocode aus. Jede GxH besteht aus einem Kern der Verarbeitungseinheit
(Processing Unit Core, CLP), der eine dreistufige Pipeline, 16 GPRs
und eine ALU enthält.
Jede GxH enthält
auch mehrere Koprozessoren, zum Beispiel die Baumsuchroutine.
Befehlsspeicher:
Dieser Speicher wird während
der Initialisierung geladen und enthält Picocode zum Weiterleiten
von Rahmen und zum Verwalten des Systems.
Eine Abwicklungseinheit:
Diese entnimmt Rahmenadressen aus den Warteschlangen der Aufwärts- und
Abwärts-Abwicklungseinheiten.
Nach dem Entnehmen der Adressen ruft die Abwicklungseinheit vorab
einen Teil des Rahmen-Datenvorsatzes aus dem Aufwärts- oder Abwärts-Datenspeichers
(DS) ab und speichert diesen in einem internen Speicher. Sobald
eine GxH frei wird, schickt die Abwicklungseinheit den Rahmen-Datenvorsatze
zusammen mit den passenden Steuerdaten, zum Beispiel der Codebefehlsadresse
(CIA), zur GxH. Die Abwicklungseinheit verwaltet auch Zeitgeber
und Unterbrechungen.
Ein Zuteiler für den Baumsuchspeicher (Tree
Search Memory, TSM): Für
jede GxH stehen eine Anzahl gemeinsam genutzter interner und externer
Speicherplätze
zur Verfügung.
Da dieser Speicher der gemeinsamen Nutzung unterliegt, steuert der
Zuteiler den Zugriff auf den Speicher. Der Zugriff auf den TSM kann
mittels des Picocodes direkt erfolgen, der zum Beispiel zur Speicherung
von Verweildauertabellen im TSM verwendet werden kann.
Die
Abschlusseinheit (Completion Unit, CU): Die Abschlusseinheit führt zwei
Funktionen aus. Erstens verbindet sie die N Verarbeitungseinheiten
mit dem Aufwärts-
und einem Abwärts-EDS
(Speichern und Lesen der Warteschlange und Steuerung der Chipbereiche).
Der EDS führt
die Speicheraufgaben aus: eine Rahmenadresse wird zusammen mit entsprechenden
Parametern mit der Bezeichnung FCBPage entweder in einer Sendewarteschlange,
einer Löschwarteschlange
oder einer Ausgabe-Warteschlange gespeichert. Zweitens sorgt die
Abschlusseinheit für
die Einhaltung der Reihenfolge der Rahmen. Da es vorkommen kann,
dass mehrere GxHs zu ein und demselben Datenfluss gehörende Rahmen
verarbeiten, muss dafür
gesorgt werden, dass diese Rahmen in der richtigen Reihenfolge in
der Aufwärts-
oder Abwärts-Sendewarteschlange
gespeichert werden. Die Abschlusseinheit verwendet eine Markierung,
die nach der Verteilung des Rahmens durch die Klassifizierungshardwareunterstützung erzeugt
wird.
Klassifizierungshardwareunterstützung: Für Rahmen in Aufwärtsrichtung
führt die
Klassifizierungshardwareunterstützung
eine Klassifizierung von allgemein bekannten Rahmenformaten durch.
Die Klassifizierungsergebnisse werden während der Verteilung der Rahmen
entsprechend der CIA und dem Inhalt eines oder mehrerer Register
zur GxH übertragen.
Für Rahmen
in Abwärtsrichtung ermittelt
die Klassifizierungshardwareunterstützung die CIA in Abhängigkeit
vom Rahmen-Datenvorsatz. Sowohl für die Verteilung der Rahmen
in Aufwärtsrichtung
als auch in Abwärtsrichtung
erzeugt die Klassifizierungshardwareunterstützung eine Markierung, mit
deren Hilfe die Abschlusseinheit die Reihenfolge der Rahmen einhält.
Schnittstelle
und Zuteiler für
Datenspeicherung in Aufwärts- und Aufwärtsrichtung:
Jede GxH kann auf den Aufwärts-
und den Abwärts-Datenspeicher
zugreifen: der Lesezugriff erfolgt, wenn „mehr Fish-Daten" gelesen werden,
und der Schreibzugriff, wenn der Inhalt des Reservoirs FishPool
in den Datenspeicher zurückgeschrieben
wird. Da N Verarbeitungseinheiten zur Verfügung stehen und jeweils nur
eine gleichzeitig auf den Aufwärts-Datenspeicher
und den Abwärts-Datenspeicher
zugreifen kann, wird für
jeden Datenspeicher eine Zugriffssteuerung benötigt.
WEB-Zuteiler und
WEBWatch-Schnittstelle: Der WEB-Zuteiler steuert den Zugriff aller
GxHs auf das WEB. Da alle GxHs auf das WEB zugreifen können, können sie
auf alle Speicher und Register in einer Schnittstelleneinheit zugreifen.
Dadurch kann jede GxH alle Konfigurierungsbereiche modifizieren
oder lesen. Das WEB kann als Speicherabbildung der Schnittstelleneinheit
angesehen werden. Die WEBWatch-Schnittstelle
vermittelt von außerhalb
des Chips über
3 E/A-Anschlusskontakte
des Chips den Zugriff auf das gesamte WEB.
Fehlersuche, Unterbrechungen
und Einzelschrittsteuerung: Das WEB gestattet dem GCH oder dem WEBWatch,
bei Bedarf jede GxH auf dem Chip zu kontrollieren. Zum Beispiel
kann das WEB vom GCH oder vom WEBWatch für Einzelschrittbefehle auf
einer GxH genutzt werden.
-
Einen
integrierten Universalprozessor, zum Beispiel einen PowerPC.
-
Es
gibt drei Arten von GxH-Verarbeitungseinheiten (12B):
GDH (General Data Handler, Allgemeine
Datenverarbeitungseinheit). Es gibt acht GDHs. Jede GDH hat einen vollen
CLP mit den fünf
Koprozessoren (die im nächsten
Abschnitt beschrieben werden). Die GDHs werden vor allem zum Weiterleiten
von Rahmen verwendet.
GCH (Verarbeitungseinheit für geleitete
Zellen). Die GCH weist genau dieselbe Hardware die eine GDH auf. Ein
geleiteter Rahmen kann jedoch nur durch die GCH verarbeitet werden.
Diese kann im WEB (Register CLP_Ena) programmiert werden, wenn sie
auch zur Verarbeitung von Datenrahmen in der Lage ist (in diesem Fall
fungiert sie als GDH). Die GCH weist zusätzlich zur GDH noch weitere
Hardware auf: Hardwareunterstützung
zum Ausführen
von drei Einfügungen
und Löschungen.
Die GCH dient zur Ausführung
von Picocode für geleitete
Zellen, von Picocode für
die Chip- und Baumverwaltung, zum Beispiel die Verweildauertabelle,
und zum Austauschen von Steuerdaten mit dem CP und/oder anderen
GCHs. Wenn keine derartigen Aufgaben anstehen, führt die GCH den Picocode für die Weiterleitung
von Rahmen aus, sodass sie sich genauso wie eine. GDH verhält.
GTH
(General Tree Handler, Allgemeine Baumverarbeitungseinheit). Die
GTH verfügt über zusätzliche
Hardwareunterstützung
zum Ausführen
von drei Einfügungen,
drei Löschungen
und Warteschlangensteuerung. Die GTH verarbeitet Datenrahmen, wenn
sich in der GPQ keine Rahmen (welche Befehle zur Baumverwaltung enthalten)
befinden.
GPH (General PowerPC Handler, Allgemeine PowerPC-Verarbeitungseinheit).
Die GPH verfügt
im Vergleich zur GDH und zur GTH über zusätzliche Hardware. Die GPH ist über eine
Mailboxschnittstelle (i/f) mit dem Universalprozessor verbunden.
-
Die
Anzahl der GxHs (zehn) ist von Fall zu Fall zu ermitteln. Aus der
Leistungsprüfung
ergibt sich die Anzahl der wirklich benötigten GxHs. Die Architektur
und die Struktur können
im Prinzip unbegrenzt durch GxHs erweitert werden, wobei die Grenzen
lediglich durch die zur Verfügung
stehende Chip-Fläche
gesetzt sind (weil außerdem
auch der Zuteiler und der Befehlsspeicher vergrößert werden müssen).
-
Jede
GxH ist wie in 12C dargestellt strukturiert.
Zusätzlich
zum CLP mit Universalregistern (General Purpose Register, GPR) und
der Arithmetischen Logikeinheit (Arithmetic Logic Unit, ALU) enthält jede GxH
die folgenden fünf
Prozessoren:
(DS) Koprozessor-Schnittstelle. Diese verbindet
die Abwicklungseinheit und die Teilbereiche auf dem Chip miteinander,
um den Schreib- und Lesezugriff auf die Aufwärts- und Abwärts-Datenspeicher zu ermöglichen.
Die DS-Schnittstelle enthält
das so genannte FishPool-Reservoir.
Der Koprozessor für die Baumsuchroutine
(Tree Search Engine, TSE). Der TSE-Koprozessor sucht in den Bäumen und
stellt eine Verbindung zum Baumsuchspeicher (Tree Search Memory,
TSM) her.
Warteschlangen-Koprozessor. Dieser ist mit der Schnittstelle
der Abschlusseinheit verbunden und enthält die FCBPage. Dieser Koprozessor
enthält
ein 256-Bit-Register mit zusätzlicher
Hardwareunterstützung,
derer sich der Picocode bei der Erstellung der FCBPage bedienen
muss, welche die Warteschlangenparameter enthält. Nach der Erstellung der
FCBPage kann der Picoprozessor einen Speicherbefehl für die Warteschlange
ausführen,
sodass dieser Koprozessor die FCBPage zur Abschlusseinheit weiterleitet.
WEB-Schnittstellenkoprozessor
(WEB InterfaceCoprocessor). Dieser Koprozessor stellt eine Schnittstelle
zum WEB-Zuteiler bereit und ermöglicht
das Lesen und Schreiben von der bzw. in die WEB-Schnittstelleneinheit.
Prüfsummen-Koprozessor.
Dieser Koprozessor erzeugt Prüfsummen
für die
im (nachfolgend beschriebenen) FishPool gespeicherten Rahmen.
-
Die
Verarbeitungseinheiten stehen für
die Eingangsverarbeitung und die Ausgangsverarbeitung gleichermaßen zur
Verfügung.
Es kann programmiert werden, wie viel Bandbreite für die Eingangsverarbeitung und
wie viel Bandbreite für
die Ausgangsverarbeitung reserviert werden soll. Bei der vorliegenden
Ausführungsform
gibt es zwei Betriebsmodi: 50/50 (d.h., Eingang- und Ausgangsverarbeitung
erhalten dieselbe Bandbreite zugeteilt) oder 66/34 (d.h., der Eingang
erhält
doppelt so viel Bandbreite wie der Ausgang).
-
Die
Arbeit der Verarbeitungseinheiten ist ereignisgesteuert. Das heißt, die
Ankunft eines Rahmens sowie das Aufrufen eines Zeitgebers oder einer
Unterbrechung wird als Ereignis behandelt. Die Abwicklungseinheit
behandelt unterschiedliche Ereignisse gleich, obwohl es hierfür eine Priorität gibt (zuerst
die Unterbrechungsereignisse, dann die Zeitgeberereignisse und zum
Schluss die Rahmenankunftsereignisse). Wenn einer Verarbeitungseinheit
ein Ereignis übergeben
wird, erhält
diese dafür
entsprechende Daten. Bei Rahmenankunftsereignissen sind dies ein
Teil des Rahmen-Datenvorsatzes und Daten aus der Klassifizierungshardware.
Bei Zeitgebern und Unterbrechungen sind dies der Code-Eingangspunkt
sowie andere das Ereignis betreffende Daten.
-
Wenn
ein Rahmen an der Eingangsseite ankommt und die Anzahl der empfangenen
Bytes dieses Rahmens einen programmierten Schwellenwert überschritten
hat, wird die Adresse des Rahmensteuerblocks in eine GQ geschrieben.
-
Wenn
ein kompletter Rahmen an der Ausgangsseite wieder zusammengesetzt
worden ist, wird die Rahmenadresse in eine GQ geschrieben. Es gibt
vier Arten von GQs (und wie in 12B für jede Art
eine Eingangsversion und eine Ausgangsversion):
GCQ: diese
Warteschlange muss durch die GCH verarbeitet werden.
GTQ: diese
Warteschlange muss durch die GTH verarbeitet werden.
GPQ: diese
Warteschlange enthält
Rahmen, die durch die GPH verarbeitet werden müssen.
GDQ: diese Warteschlange
enthält
Rahmen, die durch eine beliebige GDH (oder eine GCH/GTH, wenn diese zur
Verarbeitung von Datenrahmen freigegeben sind) verarbeitet werden
können.
Für die
GDQ gibt es mehrere Prioritäten,
wobei die in einer GDQ mit höherer
Priorität
gespeicherten Rahmen vorrangig vor Rahmen verarbeitet werden, die
in einer Warteschlange mit niedrigerer Priorität gespeichert sind.
-
Einige
Verarbeitungseinheiten können
spezialisiert sein. Bei der vorliegenden Ausführungsform gibt es vier Arten
von Verarbeitungseinheiten (GxH) (siehe auch 12B):
GDH
(General Data Handler, Allgemeine Datenverarbeitungseinheit). Die
GDHs dienen vor allem zur Weiterleitung von Rahmen.
GCH (Verarbeitungseinheit
für geleitete
Zellen). Die GCH weist genau dieselbe Hardware wie eine GDH auf. Ein
geleiteter Rahmen kann jedoch nur durch die GCH verarbeitet werden.
Diese kann im WEB (Register CLP_Ena) programmiert werden, wenn sie
auch zur Verarbeitung von Datenrahmen in der Lage ist (in diesem Fall
fungiert sie als GDH).
GTH (General Tree Handler, Allgemeine
Baumverarbeitungseinheit). Die GTH verfügt gegenüber der GDH/GCH über zusätzliche
Hardware: Hardwareunterstützung
zum Ausführen
von drei Einfügungen,
drei Löschungen
und Warteschlangensteuerung. Die GTH verarbeitet Datenrahmen, wenn sich
in der GPQ keine Rahmen (welche Befehle zur Baumverwaltung enthalten)
befinden.
GPH (General PowerPC Handler, Allgemeine PowerPC-Verarbeitungseinheit).
Die GPH verfügt
im Vergleich zur GDH/GTH über
zusätzliche
Hardware. Die GPH ist über
eine Mailboxschnittstelle mit dem integrierten PowerPC verbunden.
-
Bei
der vorliegenden Ausführungsform
kann die Funktion der GCH, GTH und GPH durch eine einzige Verarbeitungseinheit
realisiert werden. Bei einer Ausführungsform kann beispielsweise
eine Verarbeitungseinheit für
die GCH und die GPH eingesetzt werden. Dasselbe gilt für die GCQ,
die GTQ und die GPQ.
-
Die
Aufgabe des Datenspeicher-Koprozessors besteht in Folgendem:
Eine
Verbindung zum Aufwärts-Datenspeicher,
der vom Medium empfangene Rahmen enthält, und zum Abwärts-Datenspeicher
herstellen, der die wieder zusammengesetzten und vom PRIZMA-Atlantic-Vermittlungssystem
empfangenen Rahmen enthält.
-
Der
Datenspeicher-Koprozessor empfängt
während
der Abwicklung eines Zeitgeberereignisses oder einer Unterbrechung
auch Konfigurierungsdaten.
-
Der
Datenspeicher-Koprozessor kann auch Prüfsummen von Rahmen berechnen.
-
Der
Datenspeicher-Koprozessor enthält
einen FishPool (der 8 Fish aufnehmen kann), einen Arbeitsdatenspeicher
(der 8 Fish aufnehmen kann) sowie Steuerregister zum Lesen/Schreiben
von FishPool-Inhalten aus dem bzw. in den Aufwärts- oder Abwärts-Datenspeicher. Der
FishPool kann als eine Art Arbeitsbereich für den Datenspeicher angesehen
werden: anstatt einen Datenspeicher direkt auszulesen/in ihn zu
schreiben, wird eine größere Menge
von Rahmendaten aus dem Datenspeicher gelesen und im FishPool gespeichert oder
eine größere Menge
von Rahmendaten aus dem FishPool in den Datenspeicher geschrieben.
Ein Fish ist eine Übertragungseinheit
von 16 Bytes.
-
Der
FishPool kann als Speicher angesehen werden, der 8 Fish bzw. 8 Wörter zu
je 128 Bit aufnehmen kann. Bei der CLP-Prozessorarchitektur ist der FishPool
eine Registeranordnung von 128 Byte. Jedes Byte im FishPool hat
eine Byteadresse von 7-Bit (0 ... 127) und der Zugriff erfolgt in
Schritten zu 16 Bits oder 32 Bits. Wie alle Registeranordnungen
weist auch der FishPool ein Ringadressiersystem auf. Das heißt, die
Adressierung eines Wortes (d.h. von vier Bytes) ab dem Speicherplatz
126 im FishPool umfasst die Bytes 126, 127, 0 und 1. Aus der Sicht
des Datenspeicher-Koprozessors haben die Fish-Speicherplätze im FishPool
eine 3-Bit-Fish-Adresse.
-
Nach
der Abwicklung des Rahmens werden die ersten N Fish eines Rahmens
automatisch durch die Abwicklungseinheit in den FishPool kopiert.
Der Wert N kann im Speicher PortConfigMemory programmiert werden. Üblicherweise
ist N gleich vier für
die Abwicklung von Rahmen in Aufwärtsrichtung, gleich zwei für die Abwicklung
von Unicast-Rahmen in Abwärtsrichtung,
gleich vier für
die Abwicklung von Multicast-Rahmen in Abwärtsrichtung und gleich null
für Unterbrechungen
und Zeitgeber.
-
Der
Picocode kann aus einem Rahmen mehr Bytes lesen, wobei der Datenspeicher-Koprozessor
die Rahmendaten automatisch unter der nächsten Fish-Adresse im FishPool
speichert und automatisch wieder auf null zurückspringt, wenn die Grenze
des FishPool erreicht wurde. Darüber
hinaus kann der Picocode den Aufwärts/Abwärtsspeicher an einer absoluten
Adresse auslesen bzw. in ihn hineinschreiben.
-
Der
WEB-Koprozessor ist mit dem EPC-WEB-Zuteiler verbunden. Der EPC-WEB-Zuteiler
regelt die Prioritäten
zwischen den zehn GxH und der WEB-Überwachung und kontrolliert
die WEB-Schnittstelle
der Schnittstelleneinheit komplett. Dadurch können alle GxH im WEB lesen
und schreiben.
-
Der
Speicherkomplex der Schnittstelleneinheit stellt Speicherkapazität für den integrierten
Prozessorkomplex (Embedded Processing Complex, EPC) in 12A bereit. Der Speicherkomplex enthält den Baumsuch-Zuteiler
(Tree-Search Memory, TSM) und eine Vielzahl von Speichern auf dem
Chip und externen Speichern. Die Speicher speichern Baumstrukturen,
Zähler
und alles Mögliche,
auf das der Picocode zugreifen muss. Außerdem dienen die Speicher
zur Speicherung von Datenstrukturen, die durch die Hardware angewendet
werden, zum Beispiel leere Listen, Warteschlangen-Steuerblöcke usw.
Alle Speicherplätze,
die nicht für
Bäume reserviert
sind oder durch die Hardware nicht genutzt werden, stehen grundsätzlich für Anwendungen
des Picocodes zur Verfügung,
zum Beispiel für
Zähler
und Verweildauertabellen.
-
13 zeigt
ein detaillierteres Blockschaltbild des Speicherkomplexes. Der Baumsuchspeicher(TSM)-Zuteiler
stellt die Datenübertragungsverbindung
zwischen den integrierten Prozessoren (GxH) und den Speichern zur
Verfügung.
Zu den Speichern gehören
fünf auf
dem Chip befindliche SRAMs, ein externer SRAM und sieben externe
DRAMs. Der TSM-Zuteiler enthält
zehn Anforderungssteuereinheiten (die jeweils mit einem der integrierten
Prozessoren GxH verbunden sind) und 13 Speicher-Zugriffssteuereinheiten,
von denen für
jeden Speicher jeweils eine vorgesehen ist. Eine Busstruktur verbindet
die Anforderungssteuereinheiten und die Zuteilereinheiten so, dass
jede Steuereinheit und die mit ihr verbundene GxH auf alle Speicher
zugreifen kann.
-
Die
Steuereinheit enthält
die erforderliche Hardware zur Steuerung der Daten zwischen dem
integrierten Prozessor (GxH) und den Zuteilern.
-
Die
SRAM-Zuteilereinheiten steuern unter Anderem den Datenfluss zwischen
dem integrierten Prozessor GxH und den SRAMs auf dem Chip sowie
den externen SRAMs.
-
Die
DRAM-Zuteilereinheiten steuern unter Anderem den Datenfluss zwischen
dem integrierten Prozessor (GxH) und den externen DRAM-Speichern.
-
Jeder
Zuteiler (Speicherzugriffssteuerung) enthält eine Zugriffsmöglichkeit „durch
die Hintertür", die normalerweise
durch andere Teile des Chips genutzt wird und die höchste Zugriffspriorität aufweist.
-
Die
DRAM-Speicher können
in zwei Betriebsmodi betrieben werden:
TDM-Modus. Der Speicherzugriff
auf die vier Gruppen im DDRAM erfolgt abwechselnd zwischen Lese-„Fenstern" und Schreibfenstern,
wobei in einem Lesefenster ein Nur-Lesezugriff auf eine der vier Speichergruppen und
in einem Schreibfenster ein Nur-Schreibzugriff auf eine der vier
Speichergruppen erfolgt. Durch die Verwendung des TDM-Modus für mehrere
DDRAMs können
einige Steuersignale in den DDRAMs gemeinsam genutzt und somit einige
(der knappen) E/A-Anschlüsse
des Chips eingespart werden.
Nicht-TDM-Modus. Der Speicherzugriff
auf die vier Speichergruppen im DDRAM kann als Kombination von Lese- und Schreibzugriffen
erfolgen, der einigen speziellen Regeln unterliegt. Zum Beispiel
kann innerhalb eines Zugriffsfensters ein Lesezugriff auf die Speichergruppe
A und ein Schreibzugriff auf die Speichergruppe C erfolgen.
Der
TSM-Zuteiler ermöglicht
N anfordernden Einheiten den gleichzeitigen Zugriff auf M Speicher.
Wenn mehrere anfordernde Einheiten auf ein und denselben Speicher
zugreifen wollen, wird die Zuteilungsreihenfolge im Umlaufverfahren
geregelt.
Die M Speicher können
unterschiedliche Eigenschaften haben. Bei der vorliegen Ausführungsform
liegen drei Arten von Speichern vor: interner SRAM, externer SRAM
und externer DDRAM.
Die M Speicher und die N anfordernden Einheiten
sind homogen: jede anfordernde Einheit kann auf jeden Speicher zugreifen.
Einige
Speicher sind logisch in mehrere Teilspeicher (zum Beispiel vier
Gruppen im DDRAM) eingeteilt, auf die logisch gleichzeitig zugegriffen
werden kann.
Teile der M Speicher werden als Steuerspeicher
verwendet, in denen intern verwendete Datenstrukturen gespeichert
sind, auf welche die Picoprozessoren mit höherer Priorität zugreifen
können.
Da die Picoprozessoren den Inhalt der Steuerspeicher lesen können, wird
so die Fehlersuche auf dem Chip ermöglicht.
Der Zuteiler unterstützt den
Lesezugriff, den Schreibzugriff und den Lese-Einfüge-Schreibzugriff,
wobei in einer autarken Operation eine N-Bit-Ganzzahl in den Inhalt
des Speicher eingefügt
wird.
Für
den Zugriff auf die M Speicher wird ein allgemeines Adressierungssystem
in der Weise verwendet, dass der physische Speicherplatz eines Objektes
im Speicher transparent ist.
-
Zum
Speichern und Abrufen von Daten bedient sich die Baumsuchroutine
des Konzeptes der Baumstruktur. Das Abrufen, d.h. die Suche in der
Baumstruktur, sowie die Einfügungen
und Löschungen
werden anhand eines Schlüssels
durchgeführt,
der entweder aus einem Bitmuster wie beispielsweise einer MAC-Quellenadresse oder
der Verkettung einer IP-Quellenadresse und einer IP-Zieladresse
besteht. Die Daten werden in einem Steuerblock mit der Bezeichnung
Blatt Leaf) gespeichert, der zumindest den Schlüssel enthält (später wird gezeigt werden, dass
das gespeicherte Bitmuster eigentlich der hashcodierte Schlüssel ist).
Ein Blatt kann auch noch weitere Daten wie Verweildauerdaten oder
Benutzerdaten enthalten, zum Beispiel Daten für die Weiterleitung wie die
Nummern der Ziel-Leiterplattenelemente
und der Zielanschlüsse.
-
Es
gibt verschiedene Arten von Baumstrukturen (FM, LPM und SMT) und
entsprechend verschiedene Suchprozeduren: feste Übereinstimmung, softwaregesteuerter
Baum und längste
Präfixübereinstimmung.
Als weiteres Kriterium für
das Durchsuchen eines Blattes während
der Baumsuche kann die VectorMask (Vektormaske) in Frage kommen.
Zur Verbesserung der Suchleistung werden die Verkettung, die Prioritätssteuerung nach
Verweildauer und ein Signalspeicher verwendet.
-
14 zeigt
den Suchalgorithmus für
FM-Baumstrukturen. Der Suchalgorithmus verwendet Eingabeparameter,
zum Beispiel den Schlüssel,
führt an
dem Schlüssel
eine Hash-Operation aus, greift auf eine Zuordnungstabelle (Direct
Table, DT) zu, durchläuft
die Mustersuch-Steuerblöcke
der Baumstruktur (Pattern Search Control Block, PSCB) und kommt
bei einem Blatt an (14). Es gibt drei Arten von
Baumstrukturen mit jeweils einem eigenen Suchalgorithmus, der die
Suche in der Baumstruktur nach unterschiedlichen Regeln verlaufen
lässt.
Bei FM-Bäumen
(Fixed Match, feste Übereinstimmung)
besteht die Datenstruktur beispielsweise aus einem Patricia-Baum.
Wenn ein Blatt gefunden worden ist, kommt dieses Blatt als einziges
für eine Übereinstimmung
mit dem Eingabeschlüssel
in Frage. Bei softwaregesteuerten Baumstrukturen kann es mehrere
Blätter
geben, die in einer verknüpften
Liste aneinandergereiht sind. In diesem Fall werden alle Blätter in der
Reihe mit Hilfe des Eingabeschlüssels
geprüft,
bis entweder eine Übereinstimmung
gefunden wurde oder die Reihe ohne Ergebnis abgearbeitet wurde.
Eine so genannte abschließende
Vergleichsoperation („compare at
the end") vergleicht
den Eingabeschlüssel
mit dem im Blatt gespeicherten Muster und bestätigt, ob das Blatt wirklich
mit dem Eingabeschlüssel übereinstimmt.
Das Suchergebnis ist positiv, wenn das Blatt gefunden und eine Übereinstimmung
nachgewiesen wurde, in allen anderen Fällen jedoch negativ.
-
Die
Eingabe für
eine Suchoperation besteht aus den folgen Parametern:
Key | (128
Bit). Der Schlüssel
muss vor der Suche (oder dem Einfügen/Löschen) durch spezielle Picocodebefehle
erzeugt werden. Es gibt nur ein Schlüssel-Register. Nach Beginn
der Suche in der Baumstruktur kann das Schlüssel-Register jedoch durch
den Picocode wieder zum Erzeugen des Schlüssels für die nächste Suche genutzt werden,
wobei die TSE gleichzeitig die Suche fortsetzt. Dies ist möglich, weil
die TSE den Schlüssel
einer Hash-Operation unterzieht und das Ergebnis in einem internen
Register HashedKey speichert (auf diese Weise gibt es in Wirklichkeit zwei
Schlüssel-Register). |
KeyLength | (7
Bit). Dieses Register enthält
die in Bit ausgedrückte
Länge des
Schlüssels.
Das Register wird während der
Erzeugung des Schlüssels
automatisch durch die Hardware aktualisiert. |
LUDefindes | (8
Bit). Dieser Index wird in die Tabelle LUDefTable eingetragen, welche
die gesamte Definition der Baumstruktur enthält, in der gesucht wird. Die
Tabelle LUDefTable wird später
ausführlich
beschrieben. |
TSRNr | (1
Bit). Die Suchergebnisse können
entweder im TSR0 (Tree Search Result Area 0, Baumsuchergebnisspeicher
0) oder TSR1 gespeichert werden. Dieser Speicherbereich wird durch
den Wert TSRNr bezeichnet. Während
die TSE mit der Suche fortfährt,
kann der Picocode auf die anderen TSR zugreifen, um die Ergebnisse
einer vorangehenden Suche zu analysieren. |
VectorIndex | (6
Bit). Für
Baumstrukturen, bei denen die Maske VectorMask (die in der Tabelle
LUDefTable aufgeführt ist)
aktiviert wurde, stellt der Wert VectorIndex ein Bit in der VectorMask
dar. Nachdem die Suche beendet wurde, wird der Wert dieses Bits
zurückgegeben
und kann durch den Picocode verwendet werden. |
-
Der
Eingabeschlüssel
wird durch eine Hash-Operation zum HashedKey (siehe 14).
Es stehen sechs fertige Hash-Algorithmen
zur Verfügung
(wobei ein „Algorithmus" keine Hash-Operation ausführt). In
der Tabelle LUDefTable ist angegeben, welcher Algorithmus zu verwenden
ist. Durch eine programmierbare Hash-Funktion kann die Flexibilität weiter
verbessert werden.
-
Das
Ergebnis der Hash-Funktion ist immer eine 128-Bit-Zahl, deren Eigenschaft
darin besteht, dass immer eine Eins-zu-eins-Beziehung zwischen dem ursprünglichen
Eingabeschlüssel
und dem Ergebnis der Hash-Funktion besteht. Durch diese Eigenschaft
wird, wie im Folgenden erläutert
wird, die Suchtiefe der Baumstruktur verringert, mit der nach der
Zuordnungstabelle begonnen wird.
-
Wenn
sich die Suche in der Baumstruktur, wie bei dem Beispiel von 14,
auch auf Farben erstrecken soll, wird in das 128-Bit-Ergebnis der Hash-Funktion das 16-Bit-Farbregister
eingefügt.
Die Einfügung
erfolgt unmittelbar nach der Zuordnungstabelle, d.h., wenn die Zuordnungstabelle
2N Einträge
enthält,
wird der 16-Bit-Farbwert gemäß der Figur
an der Bitposition N eingefügt.
Das Ergebnis der Hash-Funktion wird zusammen mit dem eingefügten Farbwert
(falls aktiviert) im Register HashedKey gespeichert.
-
Die
Hash-Funktion ist so definiert, die größte Entropie in ihrem Ergebnis
in den höchsten
Bits zu finden ist. Die N höchsten
Bits des Registers HashedKey werden zur Berechnung eines Index für die Zuordnungstabelle
(DT) herangezogen.
-
Die
Suche beginnt mit einem Zugriff auf die Zuordnungstabelle: aus der
Zuordnungstabelle wird ein Eintrag DTEntry gelesen. Die zum Lesen
des DTEntry verwendete Adresse wird aus den N höchsten Bits des Wertes HashedKey
sowie anhand der in der Tabelle LUDefTable definierten Eigenschaften
der Baumstruktur berechnet. Dies wird im Folgenden ausführlich erläutert. Der
DTEntry kann als Stamm einer Baumstruktur angesehen werden. Die
tatsächlich
verwendete Datenstruktur hängt
von der Art der Baumstruktur ab. An diesem Punkt reicht die Aussage,
dass eine Patricia-Baum-Datenstruktur für FM-Bäume verwendet wird, während Erweiterungen
der Patricia-Baume für
LPM- und SMT-Bäume verwendet
werden.
-
15 zeigt
ein Beispiel für
die Verwendung einer DT mit 8 Einträgen. Zu sehen ist, dass die
Suchzeit (d.h. die Anzahl der erforderlichen PSCB-Zugriffe) durch
die Verwendung einer DT verringert werden kann. Auf diese Weise
kann durch Vergrößerung der
DT ein Optimum zwischen Speicheraufwand und Suchleistung erzielt
werden.
-
15 zeigt,
dass ein DTEntry die folgenden Informationen enthalten kann:
Leer.
Mit diesem DTEntry sind keine Blätter
verknüpft.
Zeiger auf ein Blatt. Mit diesem DTEntry ist ein einziges Blatt
verknüpft.
Zeiger
auf einen PSCB. Mit diesem DTEntry sind mehrere Blätter verknüpft. Der
DTEntry definiert den Stamm einer Baumstruktur.
-
Der
Suchalgorithmus für
eine softwaregesteuerte Baumstruktur und ein Algorithmus zur Erzeugung des
Baums sind in der US-Patentanmeldung
09/312 148 beschrieben.
-
Ein
Algorithmus mit der Bezeichnung „Choice Bit Algorithm" wendet zur Erstellung
eines binären
Suchbaums eine bestimmte Maßzahl
an und geht dabei von Bits aus, die von bestimmten „Regeln" aus einer Gesamtheit
von Regeln ausgewählt
werden. Alle hier angegebenen Beispiele sind in Form von IP-Headern
(Internetprotokoll-Datenvorsatz) formuliert, jedoch kann auch ein
beliebiger anderer Datenvorsatz mit fest vorgegebenem Format verwendet
werden.
-
Im
Internetprotokoll ist jede Regel bestimmten Schlüsseln zugeordnet, die aus den
folgenden Abschnitten bestehen können: Quellenadresse
(Source Address, Station), Zieladresse (Destination Address, DA),
Quellenanschluss (Source Port, SP), Zielanschluss (Destination Port,
DP) und Protokoll (P). Diese Daten sind 32, 32, 16, 16 bzw. 8 Bit
lang, sodass der zu prüfende
Schlüssel
aus 104 Bits besteht. Der Choice-Bit-Algorithmus ermittelt daraus bestimmte
Bits, die besonders nützlich
sind. Dadurch, dass nur diese wenigen Bits geprüft werden müssen, kann letztlich bis auf
eine oder einige wenige Regeln auf die Anwendung von Regeln verzichtet
werden. Bei einigen Regeln ist auch die Prüfung von Ungleichheiten durch
einfache Vergleichsoperationen denkbar. Die Bitprüfungen und
Vergleichsoperationen sind logisch als binärer Baum organisiert. Die Baumstruktur
ist auf eine hardwaregestützte
Struktur abgebildet, welche die Bitprüfung mit hoher Geschwindigkeit
vornimmt. Eine solche Prüfung
erfordert nur eine oder nur wenige Regeln (die als Blattkette bezeichnet werden),
die der Schlüssel
erfüllen
kann. Im ersteren Falle wird der Schlüssel dann regelkonform geprüft. Im letzteren
Falle wird der Schlüssel
nach einem System von Tests geprüft,
das Vergleichsoperationen und regelkonforme Prüfungen umfasst.
-
Jede
aus der Gruppe der Regeln ist mit einer Aktion verknüpft, die
ausgeführt
wird, wenn diese Regel die höchste
Priorität
für den
Schlüssel
hat. Regeln können
sich auch überschneiden
(ein Schlüssel
erfüllt
zwei oder mehr Regeln.). In diesem Falle können den Regeln Prioritäten (1,
2, 3, ...) zugewiesen werden, sodass zwei sich überschneidende Regeln verschiedene
Prioritäten
haben (dabei muss ein Administrator entscheiden, welche Regel Vorrang
hat, wenn ein Schlüssel
zwei oder mehr Regeln erfüllt).
Wenn also nach den Bitprüfungen
und den Vergleichsoperationen noch mehr als eine Regel geprüft werden
muss, werden die Regeln in der Reihenfolge ihrer Prioritäten geprüft. Eine
niedrigere Prioritätszahl
kennzeichnet eine Regel mit einer höheren Priorität.
-
Wenn überhaupt
keine Übereinstimmung
gefunden wurde, können
Standardlösungen
vorgegeben werden.
-
Der
Suchalgorithmus für
das Verfahren zur Suche nach der längsten Präfixübereinstimmung wird in der
US-Patentschrift 5 787 430 beschrieben. Bei dem Verfahren sind folgende
Schritte erforderlich: Einsteigen an einem Knoten der Datenbank
(Stammknoten); Ermitteln eines Suchpfades durch die baumartige Datenbank von
einem zu einem anderen Knoten der Reihe nach durch Verarbeitung
von Segmenten des Sucharguments, die nur diejenigen Teile der Einträge enthalten,
die zur Erkennung des nächsten
Knotens (Kindknoten) erforderlich sind, und durch Verarbeitung der
zweiten Verbindungsinformation, bis die Segmente abgearbeitet sind oder
ein (Blatt-)Knoten erreicht wurde, dem die zweite Verbindungsinformation
fehlt; Vergleichen eines in dem Knoten, an welchem der Suchpfad
ankommt, gespeicherten Eintrags mit dem Suchargument; und, wenn
im aktuellen Knoten nicht wenigstens eine Teilübereinstimmung zwischen dem
Suchargument und dem Eintrag gefunden wurde, Zurückverfolgen des Suchpfades
durch Verarbeitung der ersten Verbindungsinformation des aktuellen
Knotens; und Wiederholen der beiden obigen Schritte, bis zumindest
eine Teilübereinstimmung
gefunden oder der Stammknoten erreicht wurde.
-
16 zeigt
eine Ausführungsart
des Hauptkoppelnetzes. Vorzugsweise ist jeder Chip einer Schnittstelleneinheit
mit mindestens zwei integrierten Parallel-Seriell-Anschlüssen ausgestattet,
die Daten parallel empfangen und die Daten in einen seriellen Hochgeschwindigkeitsdatenstrom
umsetzen, der über
eine serielle Verbindung zum Koppelnetz weitergeleitet wird. Die
durch das Koppelnetz über
eine serielle Hochgeschwindigkeitsverbindung empfangenen Daten werden
durch eine andere DASL in parallele Daten übertragen. Im Folgenden wird
eine Ausführungsart
des Seriell/Parallel-Umsetzers mit der Bezeichnung serielle Leitung
für die
Datenanpassung (Data Align Serial Link, DASL) beschrieben.
-
Mindestens
eine DASL verbindet das Koppelnetz mit den seriellen Leitungen.
Von den seriellen Leitungen kommende Daten werden in parallele Daten
umgesetzt, die zum Koppelnetz geleitet werden. Desgleichen werden
vom Koppelnetz kommende parallele Daten in serielle Daten umgesetzt,
die zu den seriellen Leitungen geleitet werden. Die seriellen Leitungen
können
gebündelt
werden, um den Durchsatz zu erhöhen.
-
Ferner
zeigt 16, dass das Vermittlungssystem
ein Koppelnetz 11, Eingangs-Vermittlungsadapter 13 (13-l
... 13-k), die mit
den Eingangsanschlüssen 15 (15-l
... 15-k) des Koppelnetzes verbunden sind, und Ausgangs-Vermittlungsadapter 17 (17-l
... 17-p), die mit den Ausgangsanschlüssen 19 (19-l ...
19-p) des Koppelnetzes verbunden sind, beinhaltet.
-
Die
ankommenden und die abgehenden Übertragungsleitungen 21 (21-l
... 21-q) und 23 (23-l ... 23-r) sind durch Leitungsadapter 25 (25-l
... 25-q) bzw. 27 (27-l ... 27-r) mit dem Vermittlungssystem
verbunden. Über
die Übertragungsleitungen
läuft leitungsvermittelter
oder paketvermittelter Datenverkehr von oder zu solchen Einheiten
wie Arbeitsplatzrechnern, Telefonapparaten oder Ähnlichem (Leitungen mit WS
gekennzeichnet), von oder zu lokalen Netzen (Leitungen mit LAN gekennzeichnet)
zu oder von digitalen Netzen mit integrierten Diensten (Leitungen
mit ISDN gekennzeichnet) oder von und zu einem anderen Datenübertragungssystem.
Darüber
hinaus können
direkt an die Vermittlungsadapter 13 und 17 Prozessoren
angeschlossen sein. Die Leitungsadapter (LA) und die Vermittlungsadapter
(SA) haben eine gemeinsame Schnittstelle.
-
An
den Eingangs-Vermittlungsadaptern kommen von paketvermittelten und
leitungsvermittelten Schnittstellen verschiedene Dienste an, die
in gleich große
Minipakete (mit einer von mehreren möglichen fest vorgegebenen Längen) umgewandelt
werden, deren Datenvorsatz Routingdaten über den benötigten Ausgangsanschluss (und
die entsprechende Abgangsleitung) enthält. Einige Einzelheiten über das
Format und die Erzeugung von Minipaketen in den Eingangs-Vermittlungsadaptern
und das Entpacken der Minipakete in den Ausgangs-Vermittlungsadaptern
werden in den nächsten
Abschnitten beschrieben.
-
Das
Koppelnetz leitet die Minipakete von einem beliebigen Eingangsanschluss über ein
schnelles Selbstvermittlungsnetz zu einem beliebigen Ausgangsanschluss.
Die Struktur des Selbstvermittlungsnetzes ist so beschaffen, dass
Minipakete intern gleichzeitig konfliktfrei weitergeleitet werden
können.
-
Das
Koppelnetz ist das Herzstück
des Vermittlungssystems. Zwei verschiedene Ausführungsformen sollen ins Auge
gefasst und einzeln beschrieben werden. Bei einer Ausführungsform
umfasst das Koppelnetz einen selbstvermittelnden binären Baum
für jeden
Eingangsanschluss, der den betreffenden Eingangsanschluss mit allen
Ausgangsanschlüssen
verbindet; das Koppelnetz umfasst insgesamt k solcher Bäume (wenn k
Eingangsanschlüsse
vorhanden sind). Bei der anderen Ausführungsform wird als Scheibe
für jeden
Ausgangsanschluss eine Busstruktur mit einem Ausgangs-RAM bereitgestellt,
der alle Eingangsanschlüsse
mit dem jeweiligen Ausgangsanschluss verbindet; das Koppelnetz umfasst
insgesamt p solcher Scheiben (wenn p Ausgangsanschlüsse vorhanden
sind).
-
Die
DASL wird in der US-Patentanmeldung 09/330 968, eingereicht am 11.
Juni 1999, beschrieben. Die DASL-Schnittstelle
empfängt
Daten von einer parallelen Schnittstelle wie beispielsweise einer
CMOS ASIC, verteilt die von der parallelen Schnittstelle kommenden
Bits auf eine kleinere Anzahl paralleler Bitströme. Die kleinere Anzahl paralleler
Bitströme
wird dann in einen seriellen Hochgeschwindigkeitsstrom umgesetzt, der
dann über
ein Übertragungsmedium
zum Empfänger
des anderen Moduls transportiert wird. Ein differenzieller Treiber
mit Steuerfunktion schickt den seriellen Bitstrom der Daten auf
das Übertragungsmedium.
-
Durch
die DASL wird das Verfahren zur Aufteilung eines Datenstroms von
N parallelen Bits in eine Vielzahl von Abschnitten zu je n Bits
realisiert, wobei n ein Bruchteil von N ist; jeder Abschnitt des
Datenstroms zu je n Bits wird serialisiert; jeder serialisierte
Abschnitt wird über
einen entsprechenden aus einer Vielzahl von parallelen Kanälen übertragen;
und jeder übertragene
Abschnitt des Datenstroms wird wieder deserialisiert, um den Datenstrom
wiederherzustellen und in der Form von N parallelen Bits darzustellen.
Während
die DASL bei bestimmten oben beschriebenen Ausführungsarten verwendet wird,
ist klar, dass an solchen Stellen in einem Netzwerkprozessor zur
Realisierung der hier beschriebenen Erfindungen andere Formen der
Datenübertragung
verwendet werden können.
-
Obwohl
in den Zeichnungen und der Beschreibung bevorzugte Ausführungsarten
der Erfindungen dargelegt und spezielle Begriffe verwendet wurden,
ist die zur Beschreibung verwendete Terminologie lediglich im allgemeingültigen Sinne
und zum Zwecke der Beschreibung zu verstehen, nicht aber als Begrenzung
aufzufassen.