DE60125678T2 - Vermittlungstelle mit Flusssteurungverwaltung - Google Patents

Vermittlungstelle mit Flusssteurungverwaltung Download PDF

Info

Publication number
DE60125678T2
DE60125678T2 DE60125678T DE60125678T DE60125678T2 DE 60125678 T2 DE60125678 T2 DE 60125678T2 DE 60125678 T DE60125678 T DE 60125678T DE 60125678 T DE60125678 T DE 60125678T DE 60125678 T2 DE60125678 T2 DE 60125678T2
Authority
DE
Germany
Prior art keywords
memory
bus
command
switch
threshold
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60125678T
Other languages
English (en)
Other versions
DE60125678D1 (de
Inventor
Jiann-Jyh Lay (James)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Broadcom Inc
Original Assignee
Altima Communications Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Altima Communications Inc filed Critical Altima Communications Inc
Application granted granted Critical
Publication of DE60125678D1 publication Critical patent/DE60125678D1/de
Publication of DE60125678T2 publication Critical patent/DE60125678T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9078Intermediate storage in different physical parts of a node or terminal using an external memory or storage device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/062Synchronisation of signals having the same nominal but fluctuating bit rates, e.g. using buffers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5665Interaction of ATM with other protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management
    • H04L2012/5682Threshold; Watermark
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/103Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/205Quality of Service based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches

Description

  • 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.
  • Figure 00120001
  • 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.
  • Figure 00130001
  • 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 3A3D 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 3A3D 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.

Claims (11)

  1. Verfahren zur Flusssteuerungsverwaltung von Datenpaketen, wobei das Verfahren die folgenden Schritte umfasst: ein Bestimmen (200) jedes Mal, wenn Daten in einen Speicher geschrieben werden; ein Bestimmen (204) jedes Mal, wenn Daten aus dem Speicher freigegeben werden; dadurch gekennzeichnet, dass der Schritt des Bestimmens jedes Mal, wenn Daten in den Speicher geschrieben werden, durchgeführt wird, um einen Betrag von verwendetem Speicher zu berechnen, und den Schritt des Bestimmens umfasst, wann ein erster Befehl, der anzeigt, dass der Speicher ein Datenpaket erfolgreich empfangen hat, über einen Bus übertragen wird, dass der Schritt des Bestimmens jedes Mal, wenn Daten aus dem Speicher freigegeben werden, durchgeführt wird, um einen Betrag von freigesetztem Speicher zu berechnen, und den Schritt des Bestimmens umfasst, wann ein zweiter Befehl, der anzeigt, dass ein Datenpaket im Speicher nicht mehr gebraucht wird, über einen Bus übertragen wird, und dass das Verfahren ferner die folgenden Schritte aufweist: Berechnen, wie viel Speicher insgesamt in Verwendung ist, unter Verwendung des Betrags von freigesetztem Speicher und des Betrags von verwendetem Speicher; Vergleichen (208) des insgesamt in Verwendung befindlichen Speichers mit einem ersten vorgegebenen Schwellwert, wobei, wenn der erste vorgegebene Schwellwert erreicht ist, ein erster Schwellwertbefehl ausgegeben (210) wird, welcher anzeigt, dass der erste vorgegebene Schwellwert erreicht worden ist.
  2. Verfahren nach Anspruch 1, wobei der erste Befehl ein Empfangabgeschlossen-Befehl ist.
  3. Verfahren nach Anspruch 1, wobei der zweite Befehl ein Speicher-frei-Befehl ist.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Schritt des Berechnens, wie viel Speicher insgesamt von dem Switch verwendet wird, die folgenden Schritte umfasst: Inkrementieren (202) eines Zählers jedes Mal, wenn Daten in den Speicher geschrieben werden; und Dekrementieren (206) des Zählers jedes Mal, wenn Daten aus dem Speicher freigegeben werden, wobei der Zähler den insgesamt in Verwendung befindlichen Speicher angibt.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei der erste Schwellwertbefehl anzeigt, dass der Speicher voll wird.
  6. Verfahren nach einem der vorhergehenden Ansprüche, welches ferner den folgenden Schritt umfasst: Vergleichen des von dem Switch insgesamt verwendeten Speichen mit einem zweiten vorgegebenen Schwellwert, wobei, wenn der zweite vorgegebene Schwellwert erreicht ist, ein zweiter Schwellwertbefehl ausgegeben wird (214), welcher anzeigt, dass der zweite vorgegebene Schwellwert erreicht worden ist.
  7. Verfahren nach Anspruch 6, wobei der zweite Schwellwertbefehl anzeigt, dass Datenpakete fallengelassen werden.
  8. Switch, welcher aufweist: einen Bus; eine Speicherschnittstelle (114), die mit dem Bus und mit einem Speicher verbunden ist; einen Empfangsanschluss, der mit dem Bus verbunden ist, wobei der Empfangsanschluss Datenpakete für die Übertragung an den Speicher durch den Bus und die Speicherschnittstelle empfängt; einen Sendeanschluss, der mit dem Bus verbunden ist, wobei der Sendeanschluss Datenpakete von dem Speicher durch den Sendeanschluss aus dem Switch hinaus überträgt; dadurch gekennzeichnet, dass der Switch (100) ferner aufweist: einen Flusssteuerungsmanager (116), der mit dem Bus verbunden ist, wobei der Flusssteuerungsmanager aufweist: eine Busüberwachungseinrichtung (216), die dazu konfiguriert ist zu bestimmen, dass die Datenpakete an den Speicher übertragen werden, wenn ein Empfang-abgeschlossen-Befehl über den Bus übertragen wird; wobei die Busüberwachungseinrichtung ferner dazu konfiguriert ist zu bestimmen, dass die Datenpakete aus dem Speicher übertragen werden, wenn ein Speicher-frei-Befehl über den Bus übertragen wird; einen Zähler (218), der dazu konfiguriert ist, jedes Mal inkrementiert zu werden, wenn der Empfang-abgeschlossen-Befehl über den Bus übertragen wird, und der Zähler (218) ferner dazu konfiguriert ist, jedes Mal dekrementiert zu werden, wenn ein Speicher-frei-Befehl über den Bus übertragen wird; und einen ersten Komparator (220), der dazu konfiguriert ist, den Zähler mit einem ersten vorgegebenen Schwellwert zu vergleichen, wobei, wenn der Zähler mit dem ersten vorgegebenen Schwellwert übereinstimmt, ein erster Schwellwertbefehl über den Bus übertragen wird.
  9. Switch nach Anspruch 8, wobei der erste Schwellwertbefehl anzeigt, dass der Speicher zu voll wird.
  10. Switch nach Anspruch 8 oder 9, welcher ferner einen zweiten Komparator (222) aufweist, der dazu konfiguriert ist, den Zähler (218) mit einem zweiten vorgegebenen Schwellwert zu vergleichen, und, wenn der Zähler (218) mit dem zweiten vorgegebenen Schwellwert übereinstimmt, einen zweiten Schwellwertbefehl über den Bus zu übertragen, welcher anzeigt, dass der zweite vorgegebene Schwellwert erreicht worden ist.
  11. Switch nach Anspruch 10, wobei der zweite Schwellwertbefehl anzeigt, dass Datenpakete fallengelassen werden.
DE60125678T 2000-10-03 2001-10-03 Vermittlungstelle mit Flusssteurungverwaltung Expired - Lifetime DE60125678T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US23776400P 2000-10-03 2000-10-03
US09/808,997 US6851000B2 (en) 2000-10-03 2001-03-16 Switch having flow control management
US808997 2001-03-16
US237764P 2009-08-28

Publications (2)

Publication Number Publication Date
DE60125678D1 DE60125678D1 (de) 2007-02-15
DE60125678T2 true DE60125678T2 (de) 2007-10-11

Family

ID=26931017

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60125678T Expired - Lifetime DE60125678T2 (de) 2000-10-03 2001-10-03 Vermittlungstelle mit Flusssteurungverwaltung

Country Status (3)

Country Link
US (2) US6851000B2 (de)
EP (1) EP1195956B1 (de)
DE (1) DE60125678T2 (de)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6988177B2 (en) * 2000-10-03 2006-01-17 Broadcom Corporation Switch memory management using a linked list structure
US6851000B2 (en) * 2000-10-03 2005-02-01 Broadcom Corporation Switch having flow control management
TWI227080B (en) * 2001-05-31 2005-01-21 Via Tech Inc Network switch providing congestion control and method thereof
US7466668B2 (en) * 2001-08-24 2008-12-16 Hewlett-Packard Development Company, L.P. Reduced pin-count system interface for gigabit ethernet physical layer devices
US8145787B1 (en) * 2001-10-16 2012-03-27 Cisco Technology, Inc. Adaptive bandwidth utilization over fabric links
US7464180B1 (en) 2001-10-16 2008-12-09 Cisco Technology, Inc. Prioritization and preemption of data frames over a switching fabric
US7602713B2 (en) * 2002-09-02 2009-10-13 Infineon Technologies Ag Data switch and a method for broadcast packet queue estimation
JP2004318540A (ja) * 2003-04-17 2004-11-11 Hitachi Ltd 性能情報監視装置、方法およびプログラム
US7089380B1 (en) * 2003-05-07 2006-08-08 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system to compute a status for a circular queue within a memory device
US7542425B2 (en) * 2003-05-21 2009-06-02 Agere Systems Inc. Traffic management using in-band flow control and multiple-rate traffic shaping
KR100500515B1 (ko) * 2003-06-30 2005-07-14 삼성전자주식회사 패킷 플로 제어 장치 및 방법
US7428463B2 (en) * 2003-08-07 2008-09-23 Broadcom Corporation System and method for adaptive flow control
JP4376040B2 (ja) * 2003-11-27 2009-12-02 株式会社日立製作所 複数のプロセッサを用いて情報処理を行う装置及び方法
KR100619873B1 (ko) * 2004-06-29 2006-09-14 엘지전자 주식회사 고속무선데이터 통신 시스템에서의 역방향 트래픽 채널의전송속도 제어방법
US7523284B1 (en) * 2004-08-10 2009-04-21 American Megatrends, Inc. Method and apparatus for providing memory management within a system management mode
US7680053B1 (en) * 2004-10-29 2010-03-16 Marvell International Ltd. Inter-device flow control
KR20060099687A (ko) * 2005-03-14 2006-09-20 삼성전자주식회사 타임스탬프를 이용한 비디오 동기화 장치 및 방법
CN100414882C (zh) * 2005-03-31 2008-08-27 华为技术有限公司 无线网络控制器存储资源监控方法及系统
US8614954B2 (en) * 2006-10-26 2013-12-24 Hewlett-Packard Development Company, L.P. Network path identification
FR2916925B1 (fr) * 2007-05-30 2009-07-17 Alcatel Lucent Sas Procede et dispositif de tamponnage de paquets de donnees transmis via une communication plesiochrone.
US7773504B2 (en) * 2007-11-13 2010-08-10 Intel Corporation Bandwidth allocation for network packet traffic
US8819161B1 (en) 2010-01-18 2014-08-26 Marvell International Ltd. Auto-syntonization and time-of-day synchronization for master-slave physical layer devices
EP2562970B1 (de) * 2010-04-19 2015-01-07 Nec Corporation Vermittlungseinheit und flusstabellen-steuerverfahren
CN101989956A (zh) * 2010-11-30 2011-03-23 北京中交通信科技有限公司 一种浪涌gnss数据的令牌流控方法及系统
CN102622643B (zh) * 2011-12-19 2015-12-16 华为终端有限公司 一种能通过无线网络传输数据的安全数码卡
US20140321473A1 (en) * 2013-04-26 2014-10-30 Mediatek Inc. Active output buffer controller for controlling packet data output of main buffer in network device and related method

Family Cites Families (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4899334A (en) 1987-10-19 1990-02-06 Oki Electric Industry Co., Ltd. Self-routing multistage switching network for fast packet switching system
EP0439507B1 (de) 1988-10-20 1996-04-24 CHUNG, David Siu Fu Speicherstruktur und verwendung
US5253248A (en) 1990-07-03 1993-10-12 At&T Bell Laboratories Congestion control for connectionless traffic in data networks via alternate routing
GB9023867D0 (en) * 1990-11-02 1990-12-12 Mv Ltd Improvements relating to a fault tolerant storage system
JPH04189023A (ja) 1990-11-22 1992-07-07 Victor Co Of Japan Ltd パルス同期化回路
JPH04214290A (ja) * 1990-12-12 1992-08-05 Mitsubishi Electric Corp 半導体記憶装置
US5535197A (en) 1991-09-26 1996-07-09 Ipc Information Systems, Inc. Shared buffer switching module
US5442797A (en) * 1991-12-04 1995-08-15 Casavant; Thomas L. Latency tolerant risc-based multiple processor with event driven locality managers resulting from variable tagging
JPH05183828A (ja) * 1991-12-27 1993-07-23 Sony Corp 電子機器
DE69319757T2 (de) 1992-01-10 1999-04-15 Digital Equipment Corp Verfahren zur Verbindung einer Leitungskarte mit einer Adressenerkennungseinheit
WO1994009458A1 (en) * 1992-10-13 1994-04-28 Gilbarco Inc. An apparatus and method for displaying video information
US5390173A (en) 1992-10-22 1995-02-14 Digital Equipment Corporation Packet format in hub for packet data communications system
DE69324204T2 (de) 1992-10-22 1999-12-23 Cabletron Systems Inc Aufsuchen von Adressen bei Paketübertragung mittels Hashing und eines inhaltsadressierten Speichers
US5696899A (en) 1992-11-18 1997-12-09 Canon Kabushiki Kaisha Method and apparatus for adaptively determining the format of data packets carried on a local area network
US5473607A (en) 1993-08-09 1995-12-05 Grand Junction Networks, Inc. Packet filtering for data networks
US5499295A (en) * 1993-08-31 1996-03-12 Ericsson Inc. Method and apparatus for feature authorization and software copy protection in RF communications devices
US5802287A (en) 1993-10-20 1998-09-01 Lsi Logic Corporation Single chip universal protocol multi-function ATM network interface
US5887187A (en) 1993-10-20 1999-03-23 Lsi Logic Corporation Single chip network adapter apparatus
US5579301A (en) * 1994-02-28 1996-11-26 Micom Communications Corp. System for, and method of, managing voice congestion in a network environment
US5459717A (en) 1994-03-25 1995-10-17 Sprint International Communications Corporation Method and apparatus for routing messagers in an electronic messaging system
US5555398A (en) 1994-04-15 1996-09-10 Intel Corporation Write back cache coherency module for systems with a write through cache supporting bus
FR2725573B1 (fr) 1994-10-11 1996-11-15 Thomson Csf Procede et dispositif pour le controle de congestion des echanges sporadiques de paquets de donnees dans un reseau de transmission numerique
EP0719065A1 (de) 1994-12-20 1996-06-26 International Business Machines Corporation Mehrzweck-Paketvermittlungsknoten für ein Datenübertragungsnetz
US5598113A (en) * 1995-01-19 1997-01-28 Intel Corporation Fully asynchronous interface with programmable metastability settling time synchronizer
US5790539A (en) 1995-01-26 1998-08-04 Chao; Hung-Hsiang Jonathan ASIC chip for implementing a scaleable multicast ATM switch
US5644784A (en) 1995-03-03 1997-07-01 Intel Corporation Linear list based DMA control structure
US5664116A (en) 1995-07-07 1997-09-02 Sun Microsystems, Inc. Buffering of data for transmission in a computer communication system interface
US5684800A (en) 1995-11-15 1997-11-04 Cabletron Systems, Inc. Method for establishing restricted broadcast groups in a switched network
US5781549A (en) 1996-02-23 1998-07-14 Allied Telesyn International Corp. Method and apparatus for switching data packets in a data network
US5940596A (en) * 1996-03-25 1999-08-17 I-Cube, Inc. Clustered address caching system for a network switch
US5828653A (en) 1996-04-26 1998-10-27 Cascade Communications Corp. Quality of service priority subclasses
US5748631A (en) 1996-05-09 1998-05-05 Maker Communications, Inc. Asynchronous transfer mode cell processing system with multiple cell source multiplexing
US5787084A (en) 1996-06-05 1998-07-28 Compaq Computer Corporation Multicast data communications switching system and associated method
US5870628A (en) * 1996-06-11 1999-02-09 International Business Machines Corporation Adaptor for receiving and processing asynchronous transfer mode cells within a computer network
US5802052A (en) * 1996-06-26 1998-09-01 Level One Communication, Inc. Scalable high performance switch element for a shared memory packet or ATM cell switch fabric
US5898687A (en) * 1996-07-24 1999-04-27 Cisco Systems, Inc. Arbitration mechanism for a multicast logic engine of a switching fabric circuit
GB9618132D0 (en) 1996-08-30 1996-10-09 Sgs Thomson Microelectronics Improvements in or relating to an ATM switch
US5845081A (en) 1996-09-03 1998-12-01 Sun Microsystems, Inc. Using objects to discover network information about a remote network having a different network protocol
US5831980A (en) 1996-09-13 1998-11-03 Lsi Logic Corporation Shared memory fabric architecture for very high speed ATM switches
US5842038A (en) * 1996-10-10 1998-11-24 Unisys Corporation Optimized input/output memory access request system and method
JP3123447B2 (ja) 1996-11-13 2001-01-09 日本電気株式会社 Atm交換機のスイッチ制御回路
EP0849917B1 (de) 1996-12-20 2005-07-20 International Business Machines Corporation Vermittlungssystem
US6233246B1 (en) 1996-12-30 2001-05-15 Compaq Computer Corporation Network switch with statistics read accesses
US6064649A (en) * 1997-01-31 2000-05-16 Nec Usa, Inc. Network interface card for wireless asynchronous transfer mode networks
DE19703833A1 (de) 1997-02-01 1998-08-06 Philips Patentverwaltung Koppeleinrichtung
US5893162A (en) * 1997-02-05 1999-04-06 Transwitch Corp. Method and apparatus for allocation and management of shared memory with data in memory stored as multiple linked lists
US6452933B1 (en) 1997-02-07 2002-09-17 Lucent Technologies Inc. Fair queuing system with adaptive bandwidth redistribution
US6185630B1 (en) 1997-02-14 2001-02-06 Advanced Micro Devices, Inc. Device initializing system with programmable array logic configured to cause non-volatile memory to output address and data information to the device in a prescribed sequence
US6175902B1 (en) 1997-12-18 2001-01-16 Advanced Micro Devices, Inc. Method and apparatus for maintaining a time order by physical ordering in a memory
US6061351A (en) 1997-02-14 2000-05-09 Advanced Micro Devices, Inc. Multicopy queue structure with searchable cache area
US5892922A (en) 1997-02-28 1999-04-06 3Com Corporation Virtual local area network memory access system
US6011795A (en) 1997-03-20 2000-01-04 Washington University Method and apparatus for fast hierarchical address lookup using controlled expansion of prefixes
US6119196A (en) 1997-06-30 2000-09-12 Sun Microsystems, Inc. System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates
US6115378A (en) 1997-06-30 2000-09-05 Sun Microsystems, Inc. Multi-layer distributed network element
US6021132A (en) 1997-06-30 2000-02-01 Sun Microsystems, Inc. Shared memory management in a switched network element
US6246680B1 (en) 1997-06-30 2001-06-12 Sun Microsystems, Inc. Highly integrated multi-layer switch element architecture
US6094435A (en) 1997-06-30 2000-07-25 Sun Microsystems, Inc. System and method for a quality of service in a multi-layer network element
US5909686A (en) 1997-06-30 1999-06-01 Sun Microsystems, Inc. Hardware-assisted central processing unit access to a forwarding database
US6016310A (en) 1997-06-30 2000-01-18 Sun Microsystems, Inc. Trunking support in a high performance network device
US6088356A (en) 1997-06-30 2000-07-11 Sun Microsystems, Inc. System and method for a multi-layer network element
US5920566A (en) 1997-06-30 1999-07-06 Sun Microsystems, Inc. Routing in a multi-layer distributed network element
US6014380A (en) 1997-06-30 2000-01-11 Sun Microsystems, Inc. Mechanism for packet field replacement in a multi-layer distributed network element
US5918074A (en) * 1997-07-25 1999-06-29 Neonet Llc System architecture for and method of dual path data processing and management of packets and/or cells and the like
US6553002B1 (en) * 1997-08-29 2003-04-22 Ascend Communications, Inc. Apparatus and method for routing data packets through a communications network
US6041053A (en) 1997-09-18 2000-03-21 Microsfot Corporation Technique for efficiently classifying packets using a trie-indexed hierarchy forest that accommodates wildcards
US5950205A (en) * 1997-09-25 1999-09-07 Cisco Technology, Inc. Data transmission over the internet using a cache memory file system
JP2959539B2 (ja) 1997-10-01 1999-10-06 日本電気株式会社 バッファ制御方法および装置
US6223172B1 (en) * 1997-10-31 2001-04-24 Nortel Networks Limited Address routing using address-sensitive mask decimation scheme
US6185185B1 (en) 1997-11-21 2001-02-06 International Business Machines Corporation Methods, systems and computer program products for suppressing multiple destination traffic in a computer network
US6084856A (en) 1997-12-18 2000-07-04 Advanced Micro Devices, Inc. Method and apparatus for adjusting overflow buffers and flow control watermark levels
US5963499A (en) * 1998-02-05 1999-10-05 Cypress Semiconductor Corp. Cascadable multi-channel network memory with dynamic allocation
US6052683A (en) * 1998-02-24 2000-04-18 Nortel Networks Corporation Address lookup in packet data communication networks
US6430527B1 (en) * 1998-05-06 2002-08-06 Avici Systems Prefix search circuitry and method
US6067574A (en) * 1998-05-18 2000-05-23 Lucent Technologies Inc High speed routing using compressed tree process
GB2337905B (en) 1998-05-28 2003-02-12 3Com Technologies Ltd Buffer management in network devices
US6466832B1 (en) * 1998-08-24 2002-10-15 Altec Lansing R & D Center Israel High quality wireless audio speakers
US6178473B1 (en) * 1998-10-15 2001-01-23 Compaq Computer Corporation System for selectively incrementing a count number of an associated node only when the node is put in use in conjunction with a successful compare and swap operation
US6269413B1 (en) * 1998-10-30 2001-07-31 Hewlett Packard Company System with multiple dynamically-sized logical FIFOs sharing single memory and with read/write pointers independently selectable and simultaneously responsive to respective read/write FIFO selections
TW468116B (en) * 1999-02-08 2001-12-11 Wen-Shian Chen High speed Internet protocol address lookups method for saving memory
US6246682B1 (en) 1999-03-05 2001-06-12 Transwitch Corp. Method and apparatus for managing multiple ATM cell queues
US6594268B1 (en) * 1999-03-11 2003-07-15 Lucent Technologies Inc. Adaptive routing system and method for QOS packet networks
US6631419B1 (en) * 1999-09-22 2003-10-07 Juniper Networks, Inc. Method and apparatus for high-speed longest prefix and masked prefix table search
US6581106B1 (en) * 2000-01-13 2003-06-17 Pierluigi Crescenzi Fast address lookup in routing tables
US6535942B1 (en) * 2000-02-09 2003-03-18 Telefonaktiebolaget L M Ericsson (Publ) Method for reducing processor interrupt load
US6694388B1 (en) * 2000-05-31 2004-02-17 3Com Corporation Dynamic queuing system incorporating multiple queues sharing a single memory
US6715007B1 (en) * 2000-07-13 2004-03-30 General Dynamics Decision Systems, Inc. Method of regulating a flow of data in a communication system and apparatus therefor
US6973077B1 (en) * 2000-07-17 2005-12-06 3Com Corporation Method and apparatus for auto-detection of LAN, Modem, or ISDN utilizing a common connection to a peripheral component
US6345001B1 (en) * 2000-09-14 2002-02-05 Sandisk Corporation Compressed event counting technique and application to a flash memory system
US7016349B1 (en) * 2000-09-29 2006-03-21 Cypress Semiconductor Corp. Logic for generating multicast/unicast address (es)
US6851000B2 (en) * 2000-10-03 2005-02-01 Broadcom Corporation Switch having flow control management
US6644784B2 (en) * 2001-10-30 2003-11-11 Hewlett-Packard Development Company, L.P. Method and apparatus for printing with multiple recording mechanisms

Also Published As

Publication number Publication date
US6851000B2 (en) 2005-02-01
US20050073957A1 (en) 2005-04-07
EP1195956B1 (de) 2007-01-03
DE60125678D1 (de) 2007-02-15
EP1195956A3 (de) 2004-01-14
EP1195956A2 (de) 2002-04-10
US20020176357A1 (en) 2002-11-28

Similar Documents

Publication Publication Date Title
DE60125678T2 (de) Vermittlungstelle mit Flusssteurungverwaltung
DE69731519T2 (de) Mehrfachtor-Abfragesystem für ein Netzwerkkoppelfeld
US7656907B2 (en) Method and apparatus for reducing clock speed and power consumption
DE69731936T2 (de) Netzwerkkoppelfeld mit Mehrfachbusarchitektur
DE69732086T2 (de) Netzwerkschalter mit verschachteltem Speichersystem
DE60211837T2 (de) Verfahren und Vorrichtung zur Paketkopfteilverarbeitung
DE69731366T2 (de) Netzwerkkoppelfeld mit Lesezugriffen auf Statistiken
DE60005993T2 (de) Verfahren und netzwerkvermittlungsstelle mit datenserialisierung durch gefahrlose mehrstufige störungsfreie multiplexierung
DE60309947T2 (de) Hochgeschwindigkeitsprotokoll für die Verbindung von modularen Netzwerkelementen
DE60126222T2 (de) Verbundene Netzvermittlungskonfiguration
DE60031515T2 (de) Netzwerkvermittlung
DE60133352T2 (de) Gebundene Netzvermittlungskonfiguration
DE60010328T2 (de) Spiegelung in einer netzwerkvermittlungsstapelanordnung
DE60127794T2 (de) Gebundene Netzschalterkonfiguration
DE69937598T2 (de) Auf Identifikationsmarken basierendes Paketvermittlungssystem
DE60126223T2 (de) Anordnung zur Verbindung von Netzvermittlungsstellen
DE60313780T2 (de) Multiport serielles hochgeschwindigkeits-vermittlungsquerverbindungschip in einer vermaschten konfiguration
DE60115154T2 (de) Verfahren und Vorrichtung zum Datenrahmenweiterleiten in einer Vermittlungsstelle
US20050235129A1 (en) Switch memory management using a linked list structure
DE60125300T2 (de) Schaltungsanordnung zum Übertragen von Daten mit Datenpacketierung und-Depacketierung
DE60034320T2 (de) Verfahren zur vermeidung von nichtsequentiellen rahmen in einer netzwerkvermittlungsstelle
DE60215416T2 (de) Zeigerbasierte binäre Suchmaschine und dafür geeignetes Verfahren
DE60217988T2 (de) System und Verfahren zum zeitschlitzbasierten Erlernen und Durchsuchen von ARL Tabellen mit Blockierung der Einfügung
DE60121727T2 (de) Vermittlungsstelle mit virtuellem geteiltem Speicher
DE60120072T2 (de) Verfahren und Vorrichtung zur Verteilung eines Zwischenchipbusses für Nachrichtenübertragung und Speicherzugriff

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, 80639 M