-
BEZUG AUF VERWANDTE ANMELDUNGEN:
-
Die
vorliegende Anmeldung beansprucht die Priorität der am 03.10.2000 eingereichten
Vorläufigen US-Patentanmeldung
mit dem amtlichen Aktenzeichen 60/237,764. Auf den Inhalt dieser
Vorläufigen
Anmeldung wird hiermit Bezug genommen.
-
HINTERGRUND DER ERFINDUNG:
-
Gebiet der Erfindung:
-
Die
Erfindung betrifft ein Verfahren und eine Vorrichtung für die Hochleistungsvermittlung
in Lokalbereichs-Kommunikationsnetzen wie etwa Token Ring-, ATM-,
Ethernet-, Fast Ethernet- und Gigabit Ethernet-Umgebungen, die allgemein
als LANs bekannt sind. Insbesondere bezieht sich die Erfindung auf
eine neue Vermittlungsarchitektur, die für leistungseffiziente und kostensensitive
Märkte
ausgelegt ist und die auf einem Halbleitersubstrat wie etwa einem
Siliziumchip implementiert werden kann.
-
Beschreibung des einschlägigen Standes
der Technik:
-
Mit
der Erhöhung
der Leistungsfähigkeit
von Computern in den letzten Jahren haben sich die Anforderungen
an Computernetze beträchtlich
erhöht;
schnellere Computerprozessoren und höhere Speicherkapazitäten benötigen Netze
mit hohen Bandbreitenfähigkeiten,
um einen Hochgeschwindigkeitstransfer beträchtlicher Datenmengen zu ermöglichen.
Die allgemein bekannte Ethernet-Technologie, die auf zahlreichen IEEE-Ethernetstandards
basiert, ist ein Beispiel für
eine Computervernetzungstechnologie, die modifiziert und verbessert
werden konnte, um sich als eine gangbare Computertechnologie zu
behaupten. Eine vollständigere Diskussion
früherer
Vernetzungssysteme ist beispielsweise in SWITCHED AND FAST ETHERNET
von Breyer und Riley (Ziff-Davis, 1996) und zahlreichen IEEE-Veröffentlichungen
im Zusammenhang mit IEEE 802-Standards zu finden. Auf der Grundlage
des Open Systems Interconnect (OSI)-Siebenschicht-Referenzmodells sind
die Netzfähigkeiten
durch die Entwicklung von Repeatern, Bridges, Routern und neuerdings "Switches" gewachsen, die mit
verschiedenen Typen von Kommunikationsmedien arbeiten. Dickdraht,
Dünndraht,
verdrilltes Paar und Optikfaser sind Beispiele für Medien, die für Computernetze
verwendet wurden. Switches im Zusammenhang mit Computervernetzung
und Ethernet sind Hardware-basierte Vorrichtungen, die den Fluss
von Datenpaketen oder Zellen auf der Grundlage von Bestimmungsadressinformationen
steuern, die in jedem Paket verfügbar
sind. Ein auf geeignete Weise entworfener und ausgeführter Switch
sollte in der Lage sein, ein Paket zu empfangen und das Paket mit
der so genannten Wirespeed oder Lnespeed, bei der es sich um die maximale
Geschwindigkeit handelt, zu der das jeweilige Netz fähig ist,
an einen richtigen Ausgangsanschluss zu vermitteln. Die Wirespeed
bei Basic Ethernet beträgt
bis zu 10 Megabits pro Sekunde, und bei Fast Ethernet bis zu 100
Megabits pro Sekunde. Ein Gigabit-Ethernet ist in der Lage, Daten über ein
Netz mit einer Rate von bis zu 1000 Megabits pro Sekunde zu übertragen.
Mit zunehmend höheren
Geschwindigkeiten wurden Entwurfseinschränkungen und Entwurfsanforderungen
im Hinblick auf die Befolgung der angemessenen Entwurfs- und Protokollregeln
und die Bereitstellung einer kostengünstigen, kommerziell gangbaren
Lösung
immer komplexer.
-
Unter
Bezugnahme auf das vorausgehend diskutierte OSI-Siebenschicht-Referenzmodell
weisen die höheren
Schichten typischerweise mehr Informationen auf. Verschiedene Typen
von Produkten sind für
die Durchführung
von Funktionen im Zusammenhang mit der Vermittlung auf verschiedenen
Niveaus des OSI-Modells verfügbar.
Hubs oder Repeater arbeiten auf Schicht 1 und kopieren und "broadcast" im Wesentlichen
ankommende Daten zu einer Mehrzahl von Zweigen der Hub. Vorrichtungen
im Zusammenhang mit Schicht 2-Vermittlung werden typischerweise
als Multiport-Bridges bezeichnet und sind in der Lage, zwei separate
Netze zu überbrücken. Bridges
können
eine Tabelle von Weiterleitungsregeln auf der Grundlage davon aufbauen, welche
MAC (Media Access Controller)-Adressen auf welchen Anschlüssen der
Bridge vorhanden sind, und Pakete weitergeben, die für eine auf
einer gegenüber
liegenden Seite der Bridge befindliche Adresse bestimmt sind. Bridges
verwenden typischerweise einen als "Spanning Tree" bezeichneten Algorithmus, um potenzielle Datenschleifen
zu eliminieren; eine Datenschleife ist eine Situation, in der ein
Paket auf der Suche nach einer bestimmten Adresse endlose Schleifen
in einem Netz durchläuft.
Der Spanning Tree-Algorithmus definiert ein Protokoll zum Verhindern
von Datenschleifen. Schicht 3-Switches, die zuweilen als Router
bezeichnet werden, können
Pakete auf der Grundlage der Bestimmungs netzadresse weiter leiten.
Schicht 3-Switches sind in der Lage, Adressen zu lernen und Tabellen
davon zu führen,
die Anschlussmappings entsprechen. Die Verarbeitungsgeschwindigkeit
für Schicht
3-Switches kann durch die Verwendung von spezialisierter Hochleistungs-Hardware
und Offloading der Host-CPU verbessert werden, so dass Anweisungsentscheidungen
die Weiterleitung von Paketen nicht verzögern.
-
Die
WO 00/52858 kann sich auf ein Verfahren und eine Vorrichtung zum
Verwalten von mehreren ATM-Zellenwarteschlangen in einem gemeinsamen
Speicher beziehen.
-
Die
US 6084856 kann sich auf
ein Verfahren und eine Vorrichtung für die Flusssteuerung zum Verwalten
individueller Ausgangsanschluss-FIFO-Warteschlangen beziehen, die
nach einander gefüllt
werden.
-
Es
ist eine Aufgabe der vorliegenden Erfindung, den Fluss von Daten
in einem Netz-Switch
zu verwalten.
-
Diese
Aufgabe wird durch das Verfahren nach Patentanspruch 1 und den Switch
nach Patentanspruch 8 gelöst.
Vorteilhafte Ausführungsformen
der Erfindung sind in den Unteransprüchen definiert.
-
Die
Erfindung ist auf einen Switch mit Flusssteuerungsverwaltung gerichtet.
-
Die
Erfindung ist in einer Ausführungsform
ein Verfahren zur Flusssteuerungsverwaltung von Datenpaketen in
einem Switch. Das Verfahren umfasst die folgenden Schritte: ein
Bestimmen jedes Mal, wenn Daten in einen Speicher geschrieben werden,
um einen Betrag von verwendetem Speicher zu berechnen; ein Bestimmen
jedes Mal, wenn Daten aus dem Speicher freigegeben werden, um einen
Betrag von freigesetztem Speicher zu berechnen; und Berechnen, wie
viel Speicher insgesamt in Verwendung ist, unter Verwendung des
Betrags von freigesetztem Speicher und des Betrags von verwendetem
Speicher. Schließlich
wird ein Vergleich vorgenommen, um den insgesamt in Verwendung befindlichen
Speicher mit einem ersten vorgegebenen Schwellwert zu vergleichen.
Wenn der erste vorgegebene Schwellwert erreicht ist, wird ein erster
Schwellwertbefehl ausgegeben, der anzeigt, dass der erste vorgegebene
Schwellwert erreicht worden ist.
-
Bei
einer alternativen Ausführungsform
ist die Erfindung ein Verfahren zur Flusssteuerungsverwaltung von
Datenpaketen in einem Switch unter Verwendung von Verknüpfungslistenspeicher
("linked list memory"). Das Verfahren
umfasst die Schritte des Bestimmens, auf welche Speicheradresse
ein Anfangszeiger weist, wobei der Anfangszeiger auf den nächsten Speicherplatz
in einer Verknüpfungsliste
weist, die aus dem Speicher ausgelesen werden soll. Dann wird eine
Bestimmung vorgenommen, um zu bestimmen, auf welche Speicheradresse
ein Listenendezeiger weist, wobei der Listenendezeiger auf den letzten
Speicherplatz in der Verknüpfungsliste
weist. Eine Berechnung wird dann durchgeführt, welche aus dem Anfangszeiger
und dem Listenendezeiger errechnet, wie viele Speicheradressen von
der Verknüpfungsliste
verwendet werden, um einen Gesamtbetrag von in Verwendung befindlichem
Speicher zu bestimmen. Dann wird ein Vergleich durchgeführt, welcher
den Gesamtbetrag von in Verwendung befindlichem Speicher mit einem
ersten vorgegebenen Schwellwert vergleicht, wobei, wenn der erste
vorgegebene Schwellwert erreicht ist, ein erster Schwellwertbefehl
ausgegeben wird, welcher anzeigt, dass der erste vorgegebene Schwellwert
erreicht worden ist.
-
Bei
einer anderen Ausführungsform
ist die Erfindung ein Switch. Der Switch weist einen Bus, eine Speicherschnittstelle,
die mit dem Bus und mit einem Speicher verbunden ist, und einen
mit dem Bus verbundenen Empfangsanschluss auf. Der Empfangsanschluss
empfängt
Datenpakete für
die Übertragung
an den Speicher durch den Bus und die Speicherschnittstelle. Ein
Sendeanschluss ist auch mit dem Bus verbunden. Der Sendeanschluss überträgt Datenpakete
von dem Speicher durch den Sendeanschluss aus dem Switch. Es ist
auch ein Flusssteuerungsmanager vorhanden, der mit dem Bus verbunden
ist. Der Flusssteuerungsmanager weist eine Busüberwachungseinrichtung auf,
die bestimmt, wann die Datenpakete an den Speicher übertragen
werden, und wann die Datenpakete von dem Speicher an den Sendeanschluss übertragen
werden. Es ist auch ein Zähler
vorhanden, der jedes Mal inkrementiert wird, wenn Datenpakete an
den Speicher übertragen
werden, und jedes Mal dekrementiert wird, wenn Datenpakete von dem
Speicher zu dem Sendeanschluss übertragen
werden. Der Zähler
gibt einen Wert des in Verwendung befindlichen Speichers an. Es
gibt auch einen ersten Komparator, der den Zähler mit einem ersten vorgegebenen
Schwellwert vergleicht, wobei ein erster Schwellwertbefehl über den
Bus übertragen
wird, wenn der Zähler
mit dem ersten vorgegebenen Schwellwert übereinstimmt.
-
Bei
einer alternativen Ausführungsform
ist die Erfindung ein Switch unter Verwendung von Verknüpfungslistenspeicher.
Der Switch weist einen Bus auf sowie eine Speicherschnittstelle,
die mit dem Bus und mit einem Speicher verbunden ist. Ein Empfangsanschluss
ist mit dem Bus verbunden. Der Empfangsanschluss empfängt Datenpakete
für die Übertragung
an den Speicher durch den Bus und die Speicherschnittstelle. Ein Sendeanschluss
ist mit dem Bus verbunden. Der Sendeanschluss überträgt Datenpakete von dem Speicher durch
den Sendeanschluss aus dem Switch hinaus. Der Switch weist auch
einen Flusssteuerungsmanager auf, der mit dem Bus verbunden ist.
Der Flusssteuerungsmanager weist eine Anfangszeiger-Bestimmungseinrichtung
auf, die bestimmt, auf welche Speicheradresse ein Anfangszeiger
weist, wobei der Anfangszeiger auf den nächsten Speicherplatz in einer
Verknüpfungsliste
weist, die aus dem Speicher ausgelesen werden soll. Der Flusssteuerungsmanager
weist auch eine Listenendezeiger-Bestimmungseinrichtung auf, die
bestimmt, auf welche Speicheradresse ein Listenendezeiger weist,
wobei der Listenendezeiger auf den letzten Speicherplatz in der
Verknüpfungsliste
weist. Ein Verwendeter-Speicher-Rechner bestimmt, wie viele Speicheradressen
von der Verknüpfungsliste
verwendet werden, um einen Gesamtbetrag von in Verwendung befindlichem Speicher
zu bestimmen. Ein erster Komparator vergleicht den Gesamtbetrag
von in Verwendung befindlichem Speicher mit einem ersten vorgegebenen
Schwellwert. Wenn der Gesamtbetrag von in Verwendung befindlichem
Speicher mit dem ersten vorgegebenen Schwellwert übereinstimmt,
wird ein erster Schwellwertbefehl über den Bus übertragen.
-
KURZBESCHREIBUNG DER ZEICHNUNG:
-
Ein
besseres Verständnis
der Aufgaben und Merkmale der Erfindung ergibt sich unter Bezugnahme auf
die nachfolgende Beschreibung und die beigefügte Zeichnung; es zeigt:
-
1A ein
allgemeines Blockdiagramm von Elementen der vorliegenden Erfindung;
-
1B den
Datenfluss auf dem CPS-Kanal eines Netz-Switch gemäß der vorliegenden
Erfindung;
-
2A ein
Flussdiagramm einer Ausführungsform
der Erfindung;
-
2B ein
Blockdiagramm eines Flusssteuerungsmanagers in einer Ausführungsform
der Erfindung.
-
2C ein
Flussdiagramm einer anderen Ausführungsform
der Erfindung;
-
2D ein
Blockdiagramm eines Flusssteuerungsmanagers in einer anderen Ausführungsform
der Erfindung.
-
3A eine
Verknüpfungslistenstruktur
von Paketpufferspeicher;
-
3B eine
Verknüpfungslistenstruktur
von Paketpufferspeicher mit zwei Datenpaketen;
-
3C eine
Verknüpfungslistenstruktur
von Paketpufferspeicher, nachdem der von einem Datenpaket belegte
Speicher freigesetzt ist;
-
3D eine
Verknüpfungslistenstruktur
von Paketpufferspeicher, nachdem der von einem anderen Datenpaket
belegte Speicher freigesetzt ist.
-
DETAILLIERTE BESCHREIBUNG
DER ERFINDUNG:
-
1A ist
ein Beispiel für
ein Blockdiagramm eines Switch 100 der vorliegenden Erfindung.
Bei diesem Beispiel weist der Switch 100 12 Anschlüsse 102(1)–102(12) auf,
bei denen es sich um vollintegrierte Anschlüsse gemäß IEEE handeln kann. Alle diese
12 Anschlüsse 102(1)-102(12) können 10BASE-T/100BASE-TX/FX-Anschlüsse sein,
von denen jeder ein physikalisches Element (PHY) aufweist, das IEEE-Standards
erfüllen
kann. Jeder der Anschlüsse 102(1)–102(12) besitzt
bei einem Beispiel der Erfindung eine Anschlussgeschwindigkeit,
die zwangsweise auf eine bestimmte Konfiguration eingestellt oder
so eingestellt werden kann, dass ein automatische Verhandlung die
optimale Geschwindigkeit für
jeden Anschluss unabhängig
von einander einstellt. Jedes PHY von jedem der Anschlüsse kann
mit einer Verdrilltes-Paar-Schnittstelle unter Verwendung von TXOP/N
und RXIP/N als Sende- und Empfangsprotokolle oder einer Faserschnittstelle
unter Verwendung von FXOP/N und FXIP/N als Sende- und Empfangsprotokolle
verbunden sein.
-
Jeder
der Anschlüsse 102(1)–102(12) weist
einen Media Access Controller (MAC) auf, der mit jedem entsprechenden
PHY verbunden ist. Bei einem Beispiel der Erfindung ist jeder MAC
völlig
in Übereinstimmung mit
IEEE 802.3. Jeder MAC kann mit 10 Mbps oder 100 Mbps arbeiten und
sowohl einen Vollduplexmodus, der ein gleichzeitiges Senden und
Empfangen von Daten ermöglicht,
als auch einen Halbduplexmodus, der entweder ein Senden oder Empfangen
von Daten, aber nicht beides ermöglicht,
unterstützen.
-
Eine
Flusssteuerung wird von jedem der MACs zur Verfügung gestellt. Wenn eine Flusssteuerung
implementiert wird, wird der Fluss von ankommenden Datenpaketen
so verwaltet oder gesteuert, dass die Wahrscheinlichkeit einer Ausschöpfung von
Systemressourcen verringert wird. Obgleich die vorliegende Ausführungsform
ein nicht-blockierender Wirespeed-Switch sein kann, kann der verfügbare Speicherplatz
die Datenübertragungsgeschwindigkeiten
einschränken.
Beispielsweise während
Perioden einer Überflutung
mit Paketen (d.h. Paketsendegewittern) kann der verfügbare Speicher
ziemlich schnell ausgeschöpft
werden. Um die Betriebsfähigkeit
des Switch bei diesen Arten von Situationen zu verbessern, kann
die vorliegende Erfindung zwei verschiedene Typen von Flusssteuerung
implementieren. Im Vollduplexmodus kann die vorliegende Erfindung
beispielsweise die IEEE 802.3x-Flusssteuerung implementieren. Im
Halbduplexmodus kann die vorliegende Erfindung ein Collision Backpressure-Verfahren
implementieren.
-
Bei
einem Beispiel der vorliegenden Erfindung weist jeder Anschluss
einen Latenzblock auf, der mit dem MAC verbunden ist. Jeder der
Latenzblöcke
weist Sende- und Empfangs-FIFOs auf, die eine Schnittstelle mit
dem Hauptpaketspeicher zur Verfügung
stellen. Falls bei diesem Beispiel ein Paket nicht innerhalb einer vorgegebenen
Zeitspanne erfolgreich von einem Anschluss zu einem anderen Anschluss übertragen
wird, wird das Paket aus der Sendewarteschlange fallengelassen.
-
Zusätzlich zu
den Anschlüssen 102(1)–102(12) kann
eine Gigabit-Schnittstelle 104 an dem Switch 100 vorgesehen
sein. Die Gigabit-Schnittstelle 104 kann eine Gigabit Media-Independent
Interface (GMII) und ein Ten Bit Interface (TBI) unterstützen. Die
GMII kann völlig
in Übereinstimmung
mit IEEE 802.3ab sein, das nur einen Vollduplexbetrieb unterstützt. Die
GMII kann Daten mit einer Rate von 8 Bits alle 8 ns weitergeben,
was in einem Durchsatz von 2 Gbps einschließlich sowohl von Sende- als
auch Empfangsdaten resultiert. Zusätzlich zu der GMII kann die
Gigabit-Schnittstelle 104 als
eine TBI konfiguriert sein, die mit vielen Industriestandard-Fasertreibern kompatibel
ist. Da bei einigen Ausführungsformen
der Erfindung die MDIO/MDC-Schnittstellen (optische Schnittstellen)
nicht unterstützt
werden, wird die Gigabit-PHY (Bitübertragungsschicht) vom Systemdesigner
in den geeigneten Modus eingestellt.
-
Die
Gigabit-Schnittstelle 104 weist wie die Anschlüsse 102(1)–102(12) ein
PHY, einen Gigabit Media Access Controller (GMAC) und einen Latenzblock
auf. Der GMAC kann ein MAC sein, der mit IEEE 802.3z völlig in Übereinstimmung
nur im 1 Gbps-Vollduplex arbeitet und sich durch das PHY mit einer
völlig übereinstimmenden
GMII- oder TBI-Schnittstelle verbindet. Bei diesem Beispiel stellt
der GMAC 108 Vollduplex-Flusssteuerungsmechanismen und
eine kostengünstige
Stapellösung
für entweder
verdrilltes Paar- oder TBI-Modus unter Verwendung von Inbandsignalisierung
für die
Verwaltung zur Verfügung.
Diese kostengünstige
Stapellösung
ermöglicht
es, dass eine Ringstruktur unter Verwendung von nur einem Gigabit-Anschluss
mit jedem Switch verbunden wird.
-
Eine
CPU-Schnittstelle 106 ist an dem Switch 100 vorgesehen.
Bei einem Beispiel der vorliegenden Erfindung ist die CPU-Schnittstelle 106 eine
asynchrone 8Bit- oder 16Bit-I/O-Vorrichtungsschnittstelle. Durch diese
Schnittstelle kann eine CPU interne Register lesen, Pakete empfangen,
Pakete senden und Interrupts ermöglichen.
Die CPU-Schnittstelle 106 ermöglicht auch die Implementierung
eines Spanning Tree-Protokolls. Bei
einem Beispiel der vorliegenden Erfindung ist ein Chipwahlstift
verfügbar,
der es ermöglicht,
dass eine einzelne CPU zwei Switches steuert. Bei diesem Beispiel
ermöglicht
es ein Interrupt-Stift, wenn er niedrig angesteuert wird (d.h. auf
den aktiven Zustand angesteuert wird), was einen Endwiderstand erfordert,
dass mehrere Switches von einer einzelnen CPU gesteuert werden.
-
Ein
Switching-Fabric 108 befindet sich bei einem Beispiel der
vorliegenden Erfindung ebenfalls an dem Switch 100. Das
Switching-Fabric 108 kann einen Betrieb aller Anschlüsse mit
voller Wirespeed ermöglichen.
Ein Lösungsansatz
mit einem hybriden geteilten Speicher kann auch implementiert werden,
um Bandbreiten- und Speichererfordernisse zu minimieren. Diese Architektur
ermöglicht
einen effizienten und Transfer von Paketen mit geringer Latenzzeit
durch den Switch und unterstützt
auch Adressenlern- und Alterungsmerkmale, VLAN, Anschluss-Trunking
und Anschluss-Spiegelung.
-
Die
Speicherschnittstellen 110, 112 und 114 können sich
an dem Switch 100 befinden und ermöglichen die Trennung von Daten
und Steuerinformationen. Die Paketpuffer-Speicherschnittstelle (PBM)
ist für
die Paketdatenspeicherung zuständig,
während
die Sendewarteschlange-Speicherschnittstelle (TXM) 112 eine
Liste von Paketen führt,
die zu übertragen
sind, und die Adresstabelle/Steuerungsspeicherschnittstelle (ATM) 114 ist
für die
Adresstabelle- und Header-Informationen zuständig. Jede dieser Schnittstellen
kann einen Speicher wie etwa SSRAM verwenden, der in verschiedenen
Gesamtbeträgen
und Chipgrößen konfiguriert
sein kann.
-
Die
PBM 110 befindet sich an dem Switch 100 und kann
einen externen Paketpufferspeicher (nicht gezeigt) aufweisen, der
verwendet wird, um das Paket während
Vermittlungsoperationen zu speichern. Bei einem Beispiel der Erfindung
besteht der Paketpufferspeicher aus einer Vielzahl von 256Byte-Puffern.
Daher kann ein Paket mehrere Puffer in dem Speicher überspannen.
Diese Struktur ermöglicht
eine effiziente Speichernutzung und minimiert den Bandbreiten-Overhead.
Der Paketpufferspeicher kann so konfigurierbar sein, dass bis zu
4 Mbyte Speicher pro Chip für
insgesamt 8 Mbyte pro 24+2 Anschlüsse verwendet werden können. Bei
diesem Beispiel wird eine effiziente Speichernutzung durch das Zuweisen
von 256Byte-Blöcken
beibehalten, was eine Speicherung für bis zu 32K Pakete ermöglicht.
Die PBM 110 kann 64 Bit breit sein und kann entweder einen
64 Bit oder 32 Bit breiten Speicher verwenden und mit 100 MHz arbeiten.
-
Die
TXM 112 befindet sich an dem Switch 100 und kann
einen externen Sendewarteschlangenspeicher (nicht gezeigt) aufweisen.
Die TXM 112 führt
bei diesem Beispiel 4 Prioritätswarteschlangen
pro Anschluss und ermöglicht
64K Pakete pro Chip und bis zu 128K Pakete pro System. Die TXM 112 kann
mit einer Geschwindigkeit von bis zu 100 MHz arbeiten.
-
Die
ATM 114 kann sich an dem Switch 100 befinden und
kann einen externen Adresstabelle/Steuerungsspeicher (nicht gezeigt)
aufweisen, der verwendet wird, um die Adresstabelle und Header Informationen entsprechend
jeder 256Byte-Sektion der PBM 110 zu speichern. Der Adresstabelle/Steuerungsspeicher
ermöglicht
bis zu 16K individuelle Unicast-Adressen. Der übrige verfügbare Speicher kann für Steuerungsinformationen
verwendet werden. Die ATM 114 arbeitet bei diesem Beispiel
mit bis zu 133 MHz.
-
Der
Switch 100 weist bei einem Beispiel der Erfindung einen
Flusssteuerungsmanager 116 auf, der den Fluss von Paketdaten
verwaltet. Sobald jeder Anschluss mehr und mehr Daten an den Switch
sendet, kann der Flusssteuerungsmanager 116 den Betrag
von Speicher überwachen,
der von jedem Anschluss 102(1)–102(12) des Switch 100 und
von dem Switch insgesamt verwendet wird. Wenn bei diesem Beispiel
einer der Anschlüsse 102(1)–102(12) oder
der Switch insgesamt zu viel Speicher verbraucht, was durch eine Registereinstellung
vorgegeben ist, die vorausgehend vom Hersteller oder von einem Anwender
definiert wurde, gibt der Flusssteuerungsmanager 116 Befehle über den
ATM-Bus aus, welche anfordern, dass der Anschluss oder der Switch
verlangsamt, und kann letztlich Pakete fallenlassen, falls dies
nötig ist.
-
Zusätzlich zu
dem Flusssteuerungsmanager 116 weist der Switch 100 auch
einen Anfangspunktmanager (SPM) 118 auf, der mit dem Switching
Fabric 108 verbunden ist, einen Weiterleitungsmanager (FM) 120, der
mit dem Switching Fabric 108 verbunden ist, und einen Adressmanager
(AM) 122, der mit dem Switching Fabric 108 verbunden
ist.
-
Der
Anfangspunktmanager (SPM) 118 verfolgt bei einem Beispiel
der vorliegenden Erfindung durch das Switching Fabric 108,
welche Speicherblöcke
in der PBM 110 in Verwendung sind und welche Speicherblöcke frei
sind.
-
Der
Weiterleitungsmanager 120 kann Paketdaten durch das Switching
Fabric 108 an geeignete Anschlüsse für die Übertragung weiter leiten.
-
Der
Adressmanager (AM) 122 kann durch das Switching Fabric 108 die
Adresstabelle einschließlich der
Lernquellenadressen verwalten, Paketen Header zuweisen, und diese
Adressen verfolgen. Bei einem Beispiel der Erfindung verwendet der
AM 122 eine Alterung, um Adressen, die während eines
bestimmten Zeitraums nicht verwendet wurden, oder nach einer Sequenz
von Ereignissen aus der Adresstabelle zu entfernen.
-
Ein
Erweiterungsanschluss 124 kann auch an dem Switch 100 vorgesehen
sein, um zwei Switches mit einander zu verbunden. Dies ermöglicht einen
Betrieb mit voller Wirespeed an fünfundzwanzig 100M-Anschlüssen (einschließlich eines
CPU-Anschlusses)
und zwei Gigabit-Anschlüssen.
Der Erweiterungsanschluss 124 ermöglicht bei diesem Beispiel
die Übertragung
von 4,6 Gbps Daten zwischen Switches.
-
Ein
LED-Controller 126 kann an dem Switch 100 vorgesehen
sein. Der LED-Controller 126 aktiviert geeignete
LEDs, um einem Anwender notwendige Statusinformationen zur Verfügung zu
stellen. Jeder Anschluss der Anschlüsse 102(1)–102(12) weist
bei einem Beispiel der Erfindung 4 separate LEDs auf, die für jeden
Anschluss Statusinformationen zur Verfügung stellen. Die LEDs sind
voll programmierbar und bestehen aus Anschluss-LEDs und anderen
LEDs. Jede LED kann einen vorgegebenen Zustand für jede der vier Anschluss-LEDs
besitzen. Ein Beispiel für
die vorgegebene Operation jeder der Anschluss-LEDs ist nachstehend gezeigt.
-
-
Zusätzlich zu
den vorgegebenen Operationen für
die Anschluss-LEDs kann jede der Anschluss-LEDs durch Register programmiert
werden. Diese Register können
bei einem Beispiel der Erfindung durch eine CPU erstellt werden.
Mithilfe programmierbarer Register, welche LEDs steuern, kann eine
vollständige
kundenspezifische Anpassung der Systemarchitektur einschließlich der
Programmierbarkeit der Blinkrate verwirklicht werden.
-
Jede
der LEDs kann gemäß der nachfolgenden
Darstellung eine Tabelle im Zusammenhang mit der LED aufweisen,
wobei die Registerbits RAx, RBx und
RCx eingestellt werden können, um einen weiten Bereich von
Informationen zur Verfügung
zu stellen.
-
-
Beispielsweise
können
die Registerbits RAx, RBx und
RCx eingestellt sein, um zu bestimmen, wann
LEDEIN, LEDBLINKEN und
LEDAUS aktiviert oder deaktiviert sind.
Zusätzlich
zu den Anschluss-LEDs gibt es weitere LEDs, welche den Status des
Switch anzeigen.
-
Die
Register 128 befinden sich bei diesem Beispiel der vorliegenden
Erfindung an dem Switch 100. Die Register 128 sind
Vollregister, welche Konfiguration, Status- und Remote Monitoring (RMON)-Verwaltung ermöglichen.
Bei diesem Beispiel sind die Register 128 in Gruppen und
Absätzen
angeordnet. Es gibt 32 Adressengruppen, von denen jede bis zu 64
Register enthalten kann.
-
1B ist
eine Veranschaulichung einer Ausführungsform der Erfindung mit
einem PBM-Bus, einem ATM-Bus und einem TXM-Bus für Kommunikationen mit anderen
Teilen des Switch. Bei diesem Beispiel ist der PBM 110 mit
dem PBM-Bus und einem externen PBM-Speicher verbunden; die TXM 112 ist
mit dem TXM-Bus und einem externen TXM-Speicher verbunden; und die
ATM 114 ist mit dem ATM-Bus und einem externen ATM-Speicher
verbunden. Alle der Sende (TX) und Empfangs (RX)-Abschnitte der
Anschlüsse 102(1)–102(12) sind
für Kommunikationen
mit anderen Komponenten des Switch mit dem PBM-Bus, dem ATM-Bus
und dem TXM-Bus verbunden.
-
Der
FM 120 ist mit jedem der Anschlüsse 102(1)–102(12) direkt
verbunden und auch mit dem ATM-Bus für Kommunikationen mit anderen
Abschnitten des Switch verbunden. Der FCM 116, der SPM 118 und
der AM 122 sind auch mit dem ATM-Bus für Kommunikationen mit anderen
Abschnitten des Switch verbunden.
-
Der
Betrieb des Switch 100 für die Übertragung eines Unicast-Paketes
(d.h. eines Paketes, das für
ein einzelnen Anschluss für
die Ausgabe bestimmt ist) bei einem Beispiel der Erfindung wird
unter Bezugnahme auf 1B wie folgt angegeben.
-
Bei
diesem Beispiel wird der Switch 100 im Anschluss an die
Freigabe eines Hardware-Rücksetzstiftes initialisiert.
Es findet eine Reihe von Initialisierungsschritten statt, einschließlich der
Initialisierung von externem Pufferspeicher und der Adresstabelle.
Alle Anschlüsse
an dem Switch sind dann blockiert, und die CPU kann daraufhin Paketverkehr
durch Einstellen eines Freigaberegisters freigeben. Sobald Verbindungen
an den Anschlüssen
(Anschlüsse 102(1)–102(12) und
Gigabit-Anschluss 104)
verfügbar
werden, bestätigt
ein SPT-Protokoll diese Anschlüsse,
und die Anschlüsse
werden aktiviert. Nach dem Abschluss des Initialisierungsvorgangs
kann der normale Betrieb des Switch 100 beginnen.
-
Bei
diesem Beispiel wird ein PORT_ACTIVE-Befehl von der CPU ausgegeben,
sobald ein Anschluss initialisiert und aktiviert ist. Dies zeigt
an, dass der Anschluss bereit ist, Datenpakete zu senden und zu
empfangen. Falls aus irgendeinem Grund ein Anschluss funktionsunfähig wird
oder blockiert ist, wird ein PORT INACTIVE-Befehl von der CPU ausgegeben.
-
Während der
Unicast-Übertragung
wird ein Paket von einer externen Quelle am Anschluss 102(1) am Empfangs
(RX)-PHY von Anschluss 102(1) empfangen.
-
Der
RX MAC von Anschluss 102(1) beginnt typischerweise nicht
mit der Verarbeitung des Pakets, bis ein Start of Frame Delimiter
(SFD) für
das Paket erfasst wird. Wenn der SFD von dem RX MAC-Abschnitt von Anschluss 102(1) erfasst
wird, platziert der RX MAC das Paket in einem Empfangs (RX)-FIFO
des Latenzblocks von Anschluss 102(1). Sobald der RX FIFO
voll wird, fordert der Anschluss 102(1) an, eine Nachricht über den
ATM-Bus an den Adressmanager (AM) 122 um einen leeren Empfangspuffer
zu schicken. Sobald der Zugang zu dem ATM-Bus gewährt ist,
sendet der RX FIFO-Latenzblock von Anschluss 102(1) Pakete,
die in dem RX FIFO empfangen wurden, durch den PBM-Bus und den PBM 110 an
den externen PBM-Speicher, bis das Ende des Paketes erreicht ist.
-
Der
PBM-Speicher besteht bei diesem Beispiel aus 256Byte-Puffern. Daher
kann ein Paket mehrere Puffer in dem Paketpufferspeicher überspannen,
falls die Paketgröße 256 Bytes übersteigt.
Verbindungen zwischen Paketpuffern können bei einem Beispiel der
vorliegenden Erfindung durch ein Verknüpfungslistensystem beibehalten
werden. Ein Verknüpfungslistensystem
ermöglicht
eine effiziente Speichernutzung und einen minimierten Bandbreite-Overhead
und wird in weiterem Detail unter Bezugnahme auf die 3A–3D erläutert.
-
Gleichzeitig
werden Pakete an den externen PBM-Speicher gesendet; der Anschluss
sendet auch die Quelladresse an den Adressmanager (AM) 122 und
fordert eine Filtertabelle vom AM 122 an.
-
Falls
das Paket "gut" ist, wie durch normale,
standardmäßige Prozeduren
bestimmt wird, die dem Durchschnittsfachmann bekannt sind, wie etwa
Hash-Funktionen oder IEEE-Standard-Paketüberprüfung wie etwa einen Cyclic
Redundancy Check (CRC), schreibt der Anschluss die Header-Informationen
durch den ATM-Bus und den ATM 114 in den ATM-Speicher.
Der AM 122 sendet einen RECPE_COMPL-Befehl über den ATM-Bus,
was bedeutet, dass der Paketempfang abgeschlossen ist. Andere Informationen
werden auch mit dem RECEP_COMPL-Befehl gesendet, wie etwa die Anfangsadresse
und Filtertabelle, welche angibt, auf welchen Anschlüssen das
Paket ausgesendet werden soll. Beispielsweise würde eine Filtertabelle mit
einem String wie etwa "011111111111" das Paket an alle
Anschlüsse
außer
Anschluss 1 senden und hätte
einen Zählwert
von 11. Der Zählwert
ist einfach die Anzahl von Anschlüssen, an die das Paket gesendet
werden soll, wie durch die Anzahl von "Einsen" angegeben ist.
-
Der
Weiterleitungsmanager (FM) 120 überwacht ständig den ATM-Bus, um zu bestimmen,
ob ein RECEP_COMPL-Befehl ausgegeben wurde. Sobald der FM 120 bestimmt
hat, dass ein RECEP_COMPL-Befehl ausgegeben wurde, verwendet der
Weiterleitungsmanager (FM) 120 die Filtertabelle, um Pakete
an geeignete Anschlüsse
zu senden. Es wird angemerkt, dass ein Paket nicht weiter geleitet
wird, falls eine der folgenden Bedingungen zutrifft:
- a. Das Paket enthält
einen CRC-Fehler
- b. Das PHY signalisiert einen Empfangsfehler
- c. Das Paket ist kleiner als 64 Bytes
- d. Das Paket ist größer als
1518 Bytes oder 1522 Bytes, je nach den Registereinstellungen
- e. Das Paket wird nur an den Empfangsanschluss weiter geleitet
-
Falls
der FM 120 einen RECEP_COMPL-Befehl auf dem ATM-Bus erfasst,
entscheidet der FM 120, ob das Paket dazu bestimmt ist,
an einen seiner Anschlüsse übertragen
zu werden. Der RECEP_COMPL-Befehl enthält Informationen wie etwa eine
Filtertabelle, einen Anfangszeiger, Prioritätsinformationen und andere vermischte
Informationen. Der FM 120 liest die Filtertabelle, um zu
bestimmen, ob das Paket von einem seiner Anschlüsse übertragen werden soll. Falls
bestimmt wird, dass das Paket von einem seiner Anschlüsse übertragen
werden soll, sendet der FM 120 die RECEP_COMPL-Befehlsinformationen
direkt an den Anschluss. In diesem Fall werden die RECEP_COMPL-Befehlsinformationen
an den TX-FIFO von Anschluss 102(12) gesendet.
-
Falls
der Anschluss belegt ist, werden die RECEP_COMPL-Befehlsinformationen
durch den TXM-Bus und den TXM 112 an den TXM-Speicher transferiert.
Der TXM-Speicher enthält
eine Warteschlange von Paketen, die übertragen werden sollen. Der
TXM-Speicher ist auf einer pro-Anschluss-Basis zugeordnet, so dass es
bei zehn Anschlüssen
zehn Warteschlangen in dem TXM-Speicher gibt, die jedem Anschluss
zugeordnet sind. Sobald jeder der Sender der Anschlüsse in den
Leerlauf übergeht,
liest jeder Anschluss die nächsten RECEP_COMPL-Befehlsinformationen,
die in dem TXM-Speicher gespeichert sind. Der TX-FIFO von Anschluss 102(12) empfängt als
Teil der RECEP_COMPL-Befehlsinformationen einen Anfangszeiger, der
auf einen Header in dem ATM Speicher weist, über den ATM-Bus, der wiederum
auf die Stelle eines Paketes in dem PBM-Speicher über den
PBM-Bus weist. Der Anschluss fordert dann an, das Paket in den Sende
(TX)-FIFO von Anschluss 102(12) zu laden und es durch den
MAC und das PHY von Anschluss 102(12) auszusenden.
-
Falls
sich der Anschluss im Halbduplexmodus befindet, ist es möglich, dass
sich eine Kollision ereignen könnte
und eine erneutes Starten der Paketübertragung erzwingt. Falls
dies geschieht, stellt der Anschluss einfach eine erneute Anforderung
beim Bus-Master
und lädt
das Paket erneut und beginnt wieder von vorne. Falls jedoch die Anzahl
von aufeinander folgenden Kollisionen übermäßig groß wird, wird das Paket aus der Übertragungswarteschlange
fallengelassen.
-
Sobald
der Anschluss ein Paket erfolgreich überträgt, signalisiert der Anschluss
dem FM 120, dass er mit dem gegenwärtigen Puffer fertig ist. Der
FM 120 dekrementiert dann einen Zähler, der anzeigt, wie viele Anschlüsse mehr
das Paket übertragen
müssen.
Falls beispielsweise ein Paket für
elf Anschlüsse
für die
Ausgabe bestimmt ist, wird der Zähler
bei diesem Beispiel auf 11 eingestellt. Jedes Mal, wenn ein Paket
erfolgreich übertragen
wird, dekrementiert der FM 120 den Zähler um Eins. Wenn der Zähler Null
erreicht, zeigt dies an, dass alle bezeichneten Anschlüsse das
Paket erfolgreich übertragen
haben. Der FM 120 gibt dann einen FREE-Befehl über den
ATM-Bus aus, der anzeigt, dass der von dem Paket in dem PBM-Speicher
eingenommene Speicher nicht mehr gebraucht wird und jetzt für eine andere
Verwendung frei gemacht werden kann.
-
Wenn
der SPM 118 einen FREE-Befehl über den ATM-Bus erfasst, werden
Schritte ergriffen, um anzuzeigen, dass die von dem Paket eingenommene
Stelle nun freier Speicher ist.
-
Der
Flusssteuerungsmanager FCM 116 ist mit dem ATM-Bus verbunden
und überwacht
den ATM-Bus, um zu bestimmen, wie viel Speicher zum Speichern von
Daten verwendet wird und wie viel Speicher für das Speichern von Daten frei
ist. Auf der Grundlage dieser Informationen kann der FCM 116 Befehle
an jeden Anschluss senden, um den Anschluss zu informieren, ob der
Anschluss zu viel Speicher verwendet, oder ob der Speicher insgesamt
fast voll ist. In beiden Fällen
sendet der FCM 116 einen Befehl an den Anschluss, der anfordert,
dass der Anschluss das Senden von Paketdaten an den Speicher verlangsamt.
Falls der Speicher zu voll wird, kann der FCM 116 einen
Befehl über
den ATM-Bus senden, der den AM 122 in Kenntnis setzt, mit dem
Fallenlassen von Paketdaten zu beginnen, weil der Speicher zu voll
ist.
-
Bei
einem Beispiel der Erfindung überwacht
der FCM 116 RECEP_COMPL-Befehle und FREE-Befehle, die über den
ATM-Bus ausgegeben werden. Wenn ein RECEP_COMPL-Befehl ausgegeben
wird, zeigt dies an, dass Speicher verwendet wird. Somit befindet
sich Speicher in Verwendung, und der FCM 116 kann einen Zähler inkrementieren,
der anzeigt, dass sich ein Speicherplatz in Verwendung befindet.
Falls jedoch ein FREE-Befehl an dem ATM-Bus erfasst wird, wird Spei cher
für die
Verwendung freigesetzt, und der FCM 116 kann einen Zähler dekrementieren,
was anzeigt, dass eine Speicherplatz für eine zukünftige Verwendung freigesetzt
ist.
-
Schwellwerte
können
durch die Register des Switch eingestellt werden. Beispielsweise
kann ein niedriger Schwellwert von 80% in einem der Register in
dem Switch für
den PBM-Speicher eingestellt werden, um anzuzeigen, wann der FCM 116 einen
Befehl an die Anschlüsse
senden soll, wann das Senden von f Paketdaten an den Speicher verlangsamt
werden soll, und ein hoher Schwellwert von 90% kann in einem anderen Register
in dem Switch für
den PBM-Speicher eingestellt werden, um anzuzeigen, wann der FCM 116 einen Befehl
an den AM 122 senden soll, mit dem Fallenlassen von Paketen
zu beginnen.
-
Da
der FCM 116 die RECEP_COMPL-Befehle und die FREE-Befehle
zählt,
kann ein Vergleich zwischen dem Zählwert und dem insgesamt in
Verwendung befindlichen PBM-Speicher vorgenommen werden. Beispielsweise
falls der PBM-Speicher 1000 Speicherplätze umfasst und der Zählwert 600
beträgt,
dann sind 60% (600/1000) des PBM-Speichers in Verwendung. Falls
der Zählwert
800 beträgt,
sind 80% des PBM-Speichers in Verwendung. Da dies der niedrige Schwellwert
ist, gibt der FCM 116 einen Befehl über den ATM-Bus an die Anschlüsse aus,
der anzeigt, dass die Anschlüsse
mit dem Verlangsamen des Sendens von Paketdaten an den Speicher
beginnen sollen, weil der Speicher voll wird.
-
Falls
sich der Zählwert
des FCM 116 auf 900 erhöht,
sind 90% (900/1000) des PBM-Speichers
in Verwendung. Der FCM gibt dann einen Befehl über den ATM-Bus an den AM 122 aus,
mit dem Fallenlassen von Paketdaten zu beginnen. Bei einer Ausführungsform
der Erfindung wird das Fallenlassen von Paketdaten fortgesetzt,
bis der Betrag von PBM-Speicher bei diesem Beispiel unter den unteren
Schwellwert von 80% abfällt.
-
Bei
einer Ausführungsform
der Erfindung kann eine Flusssteuerung für den PBM-Speicher implementiert werden. Beispielsweise
können
ein oberer und ein unterer Schwellwert für den Gesamtbetrag von in Verwendung
befindlichem Speicher in dem PBM-Speicher eingestellt werden, und
ein oberer und ein unterer Schwellwert können auf der Grundlage davon
eingestellt werden, wie viel Speicher jeder Anschluss verwendet.
-
Bei
einer Ausführungsform
der Erfindung kann ein oberer Schwellwert von 98% für den gesamten PBM-Speicher
eingestellt werden, und ein unterer Schwellwert von 90% kann für den gesamten
PBM-Speicher eingestellt werden. Wenn also der Gesamtbetrag von
in Verwendung befindlichem Speicher 90% erreicht, gibt der FCM 116 einen
Befehl über
den ATM-Bus an die Anschlüsse
aus, der anzeigt, dass fast der gesamte PBM-Speicher nicht mehr
verfügbar
ist und dass die Anschlüsse
das Senden von Paketdaten an den PBM-Speicher verlangsamen sollen.
Wenn der obere Schwellwert von 98% erreicht ist, sendet der FCM 116 einen
Befehl an den AM 122, welcher anzeigt, dass der PBM-Speicher übervoll
ist und dass Paketdaten fallengelassen werden müssen. Das Fallenlassen von
Paketdaten wird bei diesem Beispiel fortgesetzt, bis der untere
Schwellwert von 90% erreicht ist.
-
Bei
anderen Ausführungsformen
der Erfindung können
der obere und der untere Schwellwert auf einer pro-Anschluss-Basis
eingestellt werden. Beispielsweise können ein oberer und ein unterer
Schwellwert auf einer pro-Anschluss-Basis für den PBM-Speicher eingestellt
werden. Wenn der untere Schwellwert auf 50% eingestellt ist, würde dies
bedeuten, falls irgend ein einzelner Anschluss 50% oder mehr des
PBM-Speichers verwenden würde,
dass der FCM 116 einen Befehl über den ATM-Bus an den Anschluss ausgeben würde, welcher
anzeigt, dass der Anschluss zu viel PBM-Speicher verwendet, und
dass der Anschluss das Senden von Paketdaten für ein Speichern in dem PBM-Speicher
verlangsamen soll. Wenn der obere Schwellwert auf 65% eingestellt
war, würde
dies bedeuten, falls irgend ein einzelner Anschluss 65% oder mehr
des PBM-Speichers verwenden würde,
dass der FCM 116 einen Befehl über den ATM-Bus an den AM 122 ausgeben
würde,
jegliche Paketdaten fallen zu lassen, die von dem Anschluss gesendet
werden, der 65% des PBM-Speichers verwendet.
-
Zu
Veranschaulichungszwecken wird ein anderer Aspekt des FCM 116 in
Betracht gezogen, der keinen Teil der Erfindung darstellt:
Für andere
Speichertypen kann der Betrieb des FCM 116 variieren. Beispielsweise
kann der TXM-Speicher so aufgeteilt werden, dass jeder Anschluss
einen bestimmten Speicherbetrag hat. Der TXM-Speicher kann eine geordnete
Liste von Paketen sein, die übertragen
werden müssen.
Ein erster Zeiger würde
auf das nächste Paket
in der Liste weisen, das übertragen
werden soll, und ein zweiter Zeiger kann auf das letzte Paket in
der Liste weisen. Somit kann der Betrag von TXM-Speicher, der von
einem Anschluss verwendet wird, durch Berechnen der Differenz zwischen
dem ersten Zeiger und dem zweiten Zeiger berechnet werden. Falls
beispielsweise zehn Speicherplätze
vorhanden sind und der erste Zeiger auf Platz Drei weist und der
zweite Zeiger auf Platz Sechs weist, würde dies anzeigen, dass die
Liste vier Speicherplätze
einnimmt, nämlich
Platz Drei, Vier, Fünf
und Sechs. Anstatt die Anzahl von RECEP_COMPL-Befehlen und FREE-Befehlen
zu zählen,
die über den
ATM-Bus übertragen
werden, kann der Betrag von in Verwendung befindlichem Speicher
daher unter Verwendung von Zeigern berechnet werden.
-
2A veranschaulicht
die Schritte, die von dem FCM 116 bei einer Ausführungsform
der Erfindung durchgeführt
werden. In Schritt 200 bestimmt der FCM 116, ob
in den Speicher geschrieben wird. Falls in den Speicher geschrieben
wird, wird ein Zähler,
der den Gesamtbetrag von in Verwendung befindlichem Speicher anzeigt,
in Schritt 202 inkrementiert.
-
In
Schritt 204 bestimmt der FCM 116, ob Speicher
freigesetzt wird. Wie vorausgehend erörtert wurde, kann Speicher
als freigesetzt betrachtet werden, sobald alle Anschlüsse, die
ein in einem Speicherplatz gespeichertes Datenpaket übertragen
sollen, das Datenpaket übertragen
haben. Wenn Speicher freigesetzt ist, wird der Zähler in Schritt 206 dekrementiert.
-
In
Schritt 208 wird der Zähler
mit einem ersten Schwellwertbetrag verglichen. Wie z.B. vorausgehend erörtert wurde,
kann der erste Schwellwert als Anzeige eingestellt werden, dass
der Speicher voll wird. Wenn der Zähler mit dem ersten Schwellwert übereinstimmt,
wird in Schritt 210 ein erster Befehl übertragen. Dieser Befehl kann
ein Befehl sein, der über
den ATM-Bus zu einem Anschluss übertragen
wird und anfordert, dass der Anschluss die Übertragung von Datenpaketen,
die im PBM-Speicher
gespeichert werden sollen, verlangsamt.
-
In
Schritt 212 wird der Zähler
mit einem zweiten Schwellwertbetrag verglichen. Wie z.B. vorausgehend erörtert wurde,
kann der zweite Schwellwert als Anzeige dafür eingestellt werden, dass
der Speicher übervoll ist,
und Datenpakete werden fallengelassen. Wenn der zweite Schwellwertbetrag
erreicht ist, wird in Schritt 214 ein zweiter Befehl übertragen,
der anzeigt, dass Pakete fallengelassen werden.
-
2B ist
eine Veranschaulichung einer Ausführungsform des FCM 116.
Bei dieser Ausführungsform weist
der FCM 116 eine Busüberwachungseinrichtung 216 auf,
die den ATM-Bus auf RECEP_COMPL-Befehle überwachen kann, welche anzeigen,
dass Datenpakete in den Speicher geschrieben werden. Die Busüberwachungseinrichtung 216 kann
auch den ATM-Bus auf FREE-Befehle überwachen, die anzeigen, dass
Datenpakete nicht mehr im Speicher gespeichert zu werden brauchen.
-
Der
Zähler 218 kann
jedes Mal inkrementiert werden, wenn die Busüberwachungseinrichtung 216 einen
RECEP_COMPL-Befehl erfasst, und kann jedes Mal dekrementiert werden,
wenn die Busüberwachungseinrichtung 216 einen
FREE-Befehl erfasst. Der Zähler 218 gibt
den Betrag von insgesamt in Verwendung befindlichem Speicher an.
-
Der
erste Schwellwertvergleicher 220 vergleicht den Zähler 218 mit
einem ersten Schwellwert. Wenn der Zähler 218 mit dem ersten
Schwellwert übereinstimmt,
kann ein Befehl über
den ATM-Bus an einen Anschluss gesendet werden, welcher anzeigt,
dass der Speicher voll wird.
-
Der
zweite Schwellwertvergleicher 222 vergleicht den Zähler 218 mit
einem zweiten Schwellwert. Wenn der Zähler 218 mit dem zweiten
Schwellwert übereinstimmt,
kann ein Befehl über
den ATM-Bus an einen Anschluss gesendet werden, welcher anzeigt,
dass Datenpakete fallengelassen werden.
-
Multicast-
und Broadcast-Pakete werden genau gleich wie Unicast-Pakete behandelt,
mit der Ausnahme, dass ihre Filtertabellen anzeigen, dass alle oder
die meisten Anschlüsse
das Paket übertragen
sollen. Dies erzwingt von den Weiterleitungsmanagern, das Paket
auf allen oder den meisten ihrer Anschlüsse auszusenden.
-
2C zeigt
die Schritte, welche von einem anderen Aspekt des FCM 116 durchgeführt werden
können,
wenn ein Verknüpfungslistenspeicher
verwendet wird (eine Diskussion des Verknüpfungslistenspeichers wird
nachstehend unter Bezugnahme auf die 3A–3D gegeben),
wobei dieser Aspekt des FCM 116 keinen Teil der Erfindung
darstellt, sondern für
das Verständnis
der Erfindung nützlich
ist.
-
In
Schritt 224 wird eine Bestimmung vorgenommen, auf welche
Speicheradresse ein Anfangszeiger (d.h. free_head) weist.
-
In
Schritt 226 wird eine Bestimmung vorgenommen, auf welche
Speicheradresse ein Listenendezeiger (d.h. free_tail) weist.
-
In
Schritt 228 kann der Betrag von in Verwendung befindlichem
Speicher unter Verwendung des Anfangszeigers und des Listenendezeigers
berechnet werden. Beispielsweise kann die Differenz zwischen dem Anfangszeiger
und dem Listenendezeiger verwendet werden, um den Betrag von in
Verwendung befindlichem Speicher zu bestimmen.
-
In
Schritt 230 kann der Betrag von in Verwendung befindlichem
Speicher mit einem ersten Schwellwertbetrag verglichen werden. Falls
der in Verwendung befindliche Speicher mit dem ersten Schwellwert übereinstimmt,
kann in Schritt 232 ein Befehl über den ATM-Bus an den Anschluss übertragen
werden, welcher anzeigt, dass der Speicher voll wird und dass der
Anschluss das Senden von Datenpaketen an den Speicher verlangsamen
soll.
-
In
Schritt 234 kann der Betrag von in Verwendung befindlichem
Speicher mit einem zweiten Schwellwertbetrag verglichen werden.
Wenn der in Verwendung befindliche Speicher mit dem zweiten Schwellwert übereinstimmt,
kann in Schritt 236 ein Befehl über den ATM-Bus an den Anschluss übertragen
werden, welcher anzeigt, dass der Speicher voll ist, und dass Datenpakete,
die an den Speicher gesendet werden, fallengelassen werden.
-
2D zeigt
einen anderen Aspekt des FCM 116, der keinen Teil der Erfindung
darstellt, sondern für das
Verständnis
der Erfindung nützlich
ist. Bei dieser Ausführungsform
weist der FCM 116 eine Anfangszeiger-Bestimmungseinrichtung 238 auf,
welche verfolgt, auf welchen Speicherplatz der Anfangszeiger weist. Eine
Listenende-Bestimmungseinrichtung 240 verfolgt, auf welchen
Speicherplatz der Listenendezeiger weist. Um zu bestimmen, wie viel
Speicher von dem Switch verwendet wird, bestimmt ein Verwendeter-Speicher-Rechner 242,
wie viel Speicher verwendet wird, indem er die Differenz zwischen
dem Anfangszeiger und dem Listenendezeiger bestimmt.
-
Der
erste Schwellwertvergleicher 244 vergleicht den Betrag
von in Verwendung befindlichem Speicher mit einem ersten Schwellwert.
Wenn der in Verwendung befindliche Speicher mit dem ersten Schwellwert übereinstimmt,
kann ein Befehl über
den ATM-Bus an den Anschluss übertragen
werden, welcher anzeigt, dass der Speicher voll wird, und dass der
Anschluss das Senden von Datenpaketen an den Speicher verlangsamen
soll.
-
Der
zweite Schwellwertvergleicher 246 vergleicht den Betrag
von in Verwendung befindlichem Speicher mit einem zweiten Schwellwert.
Wenn der in Verwendung befindliche Speicher mit dem zweiten Schwellwert übereinstimmt,
kann ein Befehl über
den ATM-Bus an den Anschluss übertragen
werden, welcher anzeigt, dass der Speicher voll ist, und dass an
den Speicher gesendete Datenpakete fallengelassen werden.
-
3A ist
eine Veranschaulichung einer PBM-Speicherstruktur bei einem Beispiel
der Erfindung. Die PBM-Speicherstruktur 300 ist eine Verknüpfungsliste
von 256Byte-Segmenten 302, 304, 306, 308, 310, 312, 314 und 316.
Bei diesem Beispiel ist das Segment 302 der free_head,
der den Anfang der Freier-Speicher-Verknüpfungsliste anzeigt, und das
Segment 316 ist der free_tail, der das letzte Segment von
freiem Speicher anzeigt.
-
In 3B wurden
zwei Pakete empfangen und in dem PBM-Speicher gespeichert. Paket
1 nimmt die Segmente 302, 306 und 308 ein,
und Paket 2 nimmt das Segment 304 ein. Die Segmente 310, 312, 314 und 316 sind
freier Speicher. Das Segment 310 ist der free_head, der
den Anfang des freien Speichers anzeigt, und das Segment 316 ist
der free_tail, der das Ende des freien Speichers anzeigt.
-
In 3C wurde
Paket 1 vollständig übertragen,
und der Weiterleitungsmanager (FM) hat einen FREE-Befehl ausgegeben.
Da sich das Paket 1 bereits in einem Verknüpfungslistenformat befindet,
kann der SPM den von Paket 1 eingenommenen Speicher zu der Freier-Speicher-Verknüpfungsliste
hinzufügen.
Der free_head, Segment 310, bleibt gleich. Der free_tail
wird jedoch verändert.
Dies wird bewerkstelligt, indem das Segment 316 mit dem
Anfang von Paket 1, Segment 302, verknüpft wird, und das letzte Segment
von Paket 1, Segment 308, als der free_tail bezeichnet
wird. Im Ergebnis gibt es eine Verknüpfungsliste beginnend mit Segment 310,
das mit Segment 312 verknüpft ist, Segment 312,
das mit Segment 314 verknüpft ist, Segment 314,
das mit Segment 316 verknüpft ist, Segment 316,
das mit Segment 302 verknüpft ist, Segment 302,
das mit Segment 306 verknüpft ist, und Segment 306,
das mit Segment 308 verknüpft ist, wobei Segment 308 der free_tail
ist.
-
3D veranschaulicht
bei diesem Beispiel einfach den PBM-Speicher, nachdem das Paket
2 erfolgreich übertragen
wurde und der Weiterleitungsmanager einen FREE-Befehl über den
ATM-Bus ausgegeben hat. Der SPM erfasst den FREE-Befehl und fügt dann den von Paket 2 im
PBM-Speicher eingenommenen Speicherplatz zu der Speicher-Verknüpfungsliste
hinzu. Bei diesem Beispiel ist das Segment 308 mit dem
von Paket 2 eingenommenen Speicher, Segment 304, verknüpft, und
Segment 304 ist als der free_tail identifiziert.
-
Die
oben stehend diskutierte Konfiguration der Erfindung ist bei einer
bevorzugten Ausführungsform auf
einem Halbleitersubstrat wie etwa Silizium ausgeführt, mit
geeigneten Halbleiterherstellungsverfahren und auf der Grundlage
eines Schaltungslayouts, das auf der Grundlage der oben stehend
diskutierten Ausführungsformen
für den
Fachmann ersichtlich wäre.
Ein Fachmann auf dem Gebiet des Halbleiterentwurfs und der Halbleiterherstellung
wäre in
der Lage, die verschiedenen Module, Schnittstellen und Tabellen,
Puffer u. dgl. der vorliegenden Erfindung auf einem einzelnen Halbleitersubstrat
auf der Grundlage der oben stehend diskutierten Architekturbeschreibung
auszuführen.
Es würde
auch im Schutzbereich der Erfindung liegen, die offen gelegten Elemente
der Erfindung als diskrete elektronische Komponenten auszuführen und
dadurch die funktionalen Aspekte der Erfindung zu nutzen, ohne die
Vorteile durch die Verwendung eines einzelnen Halbleitersubstrates
zu maximieren.