DE60217572T2 - System und Verfahren zum zeitschlitzbasierten Erlernen und Durchsuchen von ARL Tabellen unter Verwendung von Schreib-snoop - Google Patents

System und Verfahren zum zeitschlitzbasierten Erlernen und Durchsuchen von ARL Tabellen unter Verwendung von Schreib-snoop Download PDF

Info

Publication number
DE60217572T2
DE60217572T2 DE60217572T DE60217572T DE60217572T2 DE 60217572 T2 DE60217572 T2 DE 60217572T2 DE 60217572 T DE60217572 T DE 60217572T DE 60217572 T DE60217572 T DE 60217572T DE 60217572 T2 DE60217572 T2 DE 60217572T2
Authority
DE
Germany
Prior art keywords
search
port
bit
arl
timing signal
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
DE60217572T
Other languages
English (en)
Other versions
DE60217572D1 (de
Inventor
Jonathan Fremont Lin
David Campbell Billings
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 Corp
Original Assignee
Broadcom Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Broadcom Corp filed Critical Broadcom Corp
Publication of DE60217572D1 publication Critical patent/DE60217572D1/de
Application granted granted Critical
Publication of DE60217572T2 publication Critical patent/DE60217572T2/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
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/36Backward learning
    • 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/109Integrated on microchip, e.g. switch-on-chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/663Transport layer addresses, e.g. aspects of transmission control protocol [TCP] or user datagram protocol [UDP] ports
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching

Description

  • VERWEISE AUF MIT DIESER ANMELDUNG IN BEZIEHUNG STEHENDE ANMELDUNGEN
  • Diese Anmeldung beansprucht Priorität aus der am 7. März 2001 mit der laufenden Eingangsnummer 60/273,515 eingereichten, vorläufigen US-amerikanischen Anmeldung mit dem Titel "Slot Based ARL Table Learning with Concurrent Table Search Using Insertion Write Snoop" (Zeitschlitzbasierter ARL-Tabellen-Lernvorgang mit gleichzeitiger Tabellensuche unter Verwendung von Einfüge-Schreib-Snooping), deren Inhalt hiermit per Bezugnahme in dieses Dokument aufgenommen wird.
  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die Erfindung betrifft Systeme und Verfahren zum gleichzeitigen Durchsuchen und Aktualisieren eines Speichers in einer Netzwerkvorrichtung. Insbesondere betrifft die Erfindung Systeme und Verfahren zum gleichzeitigen Durchsuchen von Speicherbänken, während Datensätze innerhalb einer Netzwerkvorrichtung, wie beispielsweise einem Hochleistungs-Netzwerk-Switch, aktualisiert, eingefügt und mit dem Blasensortierverfahren (Bubble Sorting) sortiert werden.
  • Beschreibung des Stands der Technik
  • Da sich die Leistungsfähigkeit von Computern in den letzten Jahren erhöht hat, sind die Anforderungen an Computer-Netzwerke beträchtlich gestiegen; schnellere Computer-Prozessoren und höhere Speicherleistungen erfordern Netzwerke mit hoher Leistungsfähigkeit hinsichtlich der Bandbreite, um die Hochgeschwindigkeitsübertragung von bedeutenden Datenmengen zu ermöglichen.
  • Das Dokument WO 00/56024 bezieht sich auf einen Netzwerk-Switch zum Vermitteln von Paketen von einer Quelle zu einem Ziel, wobei der Netzwerk-Switch einen Quell-Port zum Empfangen eines ankommenden Paketes von einer Quelle, einen Ziel-Port, der einen Pfad zu einem Ziel für das Paket enthält, und eine Filtereinheit zum Aufbauen und Anwenden eines Filters auf ausgewählte Felder des ankommenden Pakets umfasst. Die Filtereinheit umfasst ferner Filterlogik zum Aus wählen von gewünschten Feldern des ankommenden Pakets und zum Kopieren ausgewählter Feldinformationen aus diesen. Der Switch umfasst eine Regeltabelle, die eine Vielzahl von Regeln enthält. Die Filterlogik ist so konfiguriert, dass sie Suchvorgänge in der Regeltabelle durchführt, um Aktionen zu bestimmen, die auf der Grundlage des Ergebnisses eines Vergleichs zwischen dem Feldwert und den gespeicherten Filtermasken sowie der Suche in der Regeltabelle durchgeführt werden sollen. Nach dem Empfang des Pakets an einem Port des Netzwerk-Switches wird auf der Grundlage einer Quelladresse und einer Zieladresse in dem ankommenden Paket eine Adressauflösung durchgeführt, wobei wenigstens eine Maske auf einen Feldwert in dem Paket angewendet wird, um einen Filterwert zu erzeugen. Dann kann, wie durch die Regeltabelle angegeben, auf der Grundlage einer Übereinstimmung des Suchschlüssels mit einem Eintrag der Regeltabelle eine Aktion durchgeführt werden.
  • Die gut bekannte Ethernet-Technologie, die auf zahlreichen IEEE-Ethernet-Standards basiert, ist ein Beispiel für Computer-Netzwerktechnologie, die so verändert und verbessert werden konnte, dass sie weiterhin eine brauchbare Computer-Technologie darstellt. Eine umfassendere Abhandlung von Netzwerksystemen nach dem Stand der Technik findet sich beispielsweise in SWITCHED AND FAST ETHERNET von Breyer und Riley (Ziff Davis, 1996) und in zahlreichen, sich auf die IEEE 802-Standards beziehenden IEEE-Veröffentlichungen. Die auf dem OSI-7-Schichten-Referenzmodell basierenden Netzwerkfunktionen wurden durch die Entwicklung von Repeatern, Bridges, Routern und in jüngster Zeit "Switches" ausgebaut, die mit verschiedenen Arten von Kommunikationsmedien funktionieren. Thick-Wire-, Thin-Wire-, Twisted-Pair- und Glasfaserkabel sind Beispiele für Medien, die für Computer-Netzwerke eingesetzt wurden und werden. Unter Switches versteht man mit Bezug auf Computer-Netzwerke und Ethernet Hardware-gestützte Vorrichtungen, die den Fluss von Datenpaketen oder Zellen auf der Grundlage von Zieladresseninformationen steuern, die in jedem Paket zur Verfügung stehen. Ein in geeigneter Weise konstruierter und implementierter Switch sollte in der Lage sein, ein Paket zu empfangen und das Paket mit so genannter Leitungsgeschwindigkeit an einen geeigneten Ausgangs-Port weiterzuvermitteln, wobei es sich um die maximale Geschwindigkeit handelt, die in dem betreffenden Netzwerk leistungsmäßig möglich ist. Aktuelle grundlegende Ethernet-Leitungsgeschwindigkeiten reichen von 10 Megabit pro Sekunde (Mps) bis zu 10.000 Mps bzw. 10 Gigabit pro Sekunde. Mit zunehmender Geschwindigkeit sind die Konstruktions-Randbedingungen und -anforderungen im Hinblick auf das Befolgen geeigneter Konstruktions- und Protokollre geln und das Bereitstellen einer preisgünstigen, wirtschaftlich machbaren Lösung immer komplexer geworden.
  • Der Wettbewerb und andere marktbedingte Zwänge erfordern die Herstellung von leistungsfähigeren Netzwerkvorrichtungen, die weniger kosten. Von den Kunden wird eine höhere Geschwindigkeit des Netzwerks und der Vorrichtungen gefordert.
  • Die Netzwerkleistung, das heißt erhöhte Geschwindigkeit der Vorrichtungen und verringerte Latenz der Datenpakete, steht in direktem Bezug zu der Zeit, die die Vorrichtungen benötigen, um den Speicher im Zusammenhang mit dem Weiterleiten eines Pakets zu durchsuchen, beispielsweise wenn ein Switch Speichertabellen nach Zieladressen, Regeln usw. durchsucht. Zusätzlich kann die Zeit, die benötigt wird, um die Datensätze zu aktualisieren, die Leistung beeinträchtigen, indem Suchvorgänge unterbrochen werden. Folglich werden innerhalb von Netzwerkvorrichtungen, wie beispielsweise innerhalb eines Hochleistungs-Switches, neue und verbesserte Systeme und Verfahren benötigt, um Speicherbänke zu durchsuchen, während gleichzeitig derselbe Speicher aktualisiert wird, damit Hochleistungs-Netzwerklösungen unterstützt werden können.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung wird eine Netzwerkvorrichtung bereitgestellt. Die Netzwerkvorrichtung umfasst wenigstens einen Netzwerk-Port, einen Taktgeber, Tabellen für die Adressauflösungslogik (ARL) und Adressauflösungslogik. Der Taktgeber generiert ein Zeitsteuerungssignal. Die ARL-Tabellen sind so konfiguriert, dass sie Netzwerkadressdaten speichern und verwalten. Die Adressauflösungslogik ist mit den ARL-Tabellen und dem Taktgeber gekoppelt und so konfiguriert, dass sie die ARL-Tabellen durchsucht und auf der Grundlage einer Lernfunktion Aktualisierungen und Einfügungen an den ARL-Tabellen durchführt. Das Suchen und das Aktualisieren und das Einfügen werden gleichzeitig während alternierender Zeitschlitze des Zeitsteuerungssignals durchgeführt. Die Adressauflösungslogik ist so konfiguriert, dass sie die ARL-Tabellen auf der Grundlage eines an einem Port des wenigstens einen Ports empfangenen Datenpakets nach einer Zieladresse durchsucht, und wenn der Suchvorgang eine Zieladresse zurückgibt, ist die Adressauflösungslogik so konfiguriert, dass sie einen zugehörigen Datensatz der ARL-Tabellen auf der Grundlage der Lernfunktion aktualisiert.
  • Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung wird ein Verfahren bereitgestellt, um das Durchsuchen und Erlernen innerhalb einer Netzwerkvorrichtung gleichzeitig durchzuführen. Das Verfahren umfasst einen Schritt des Bereitstellens einer Netzwerkvorrichtung, die wenigstens einen Port, ARL-Tabellen, die so konfiguriert sind, dass sie auf Port-Adressen der Netzwerkvorrichtung bezogene Daten speichern und verwalten, und eine Adressauflösungslogik umfasst, die so konfiguriert ist, dass sie auf der Grundlage einer Lernfunktion Daten in den ARL-Tabellen aktualisiert und in diese einfügt. Das Verfahren umfasst außerdem Schritt des Empfangens eines Zeitsteuerungssignals, des Empfangens eines Datenpakets an einem Port des wenigstens einen Ports, und des Einleitens eines Suchvorgangs in den ARL-Tabellen auf der Grundlage des Pakets. Das Verfahren umfasst außerdem einen Schritt des Durchführens des Suchvorgangs gleichzeitig mit Aktualisierungen der auf die Lernfunktion bezogenen ARL-Tabellen. Die Suchvorgänge und Aktualisierungen werden dabei während alternierender Zeitschlitze des Zeitsteuerungssignals durchgeführt.
  • Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung wird eine Netzwerkvorrichtung bereitgestellt. Die Netzwerkvorrichtung umfasst wenigstens einen Netzwerk-Port, ein Taktgebermittel zum Generieren eines Zeitsteuerungssignals, Tabellenmittel für die Adressauflösungslogik (ARL) und Mittel für die Adressauflösungslogik. Die ARL-Tabellenmittel dienen zum Speichern und Verwalten von Netzwerkadressdaten. Die Mittel für die Adressauflösungslogik dienen zum Koppeln mit den ARL-Tabellen und dem Taktgeber sowie zum Durchsuchen der ARL-Tabellen und zum Durchführen von Aktualisierungen und Einfügungen an den ARL-Tabellen auf der Grundlage einer Lernfunktion. Das Suchen und das Aktualisieren und das Einfügen werden gleichzeitig während alternierender Zeitschlitze des Zeitsteuerungssignals durchgeführt. Die Mittel für die Adressauflösungslogik sind so konfiguriert, dass sie die ARL-Tabellenmittel auf der Grundlage eines an einem Port des wenigstens einen Ports empfangenen Datenpakets nach einer Zieladresse durchsuchen, und wenn der Suchvorgang eine Zieladresse zurückgibt, sind die Mittel für die Adressauflösungslogik so konfiguriert, dass sie einen zugehörigen Datensatz der ARL-Tabellenmittel auf der Grundlage der Lernfunktion aktualisieren.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Aufgaben und Merkmale der Erfindung sind unter Bezugnahme auf die folgende Beschreibung und die beigefügten Zeichnungen besser verständlich. Es zeigen:
  • 1 ein allgemeines Blockdiagramm einer beispielhaften erfindungsgemäßen Netzwerkvorrichtung;
  • 2 ein detailliertes Blockdiagramm eines erfindungsgemäßen Netzwerk-Switches;
  • 3 den Datenfluss auf dem CPS-Kanal eines Netzwerk-Switches gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 4 P-Kanal-Nachrichtentypen gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 5 ein Nachrichtenformat für S-Kanal-Nachrichtentypen gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 6 eine Detailansicht von Elementen der PMMU eines Switches gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 7 das CBM-Zellenformat gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 8 ein Funktionsdiagramm eines EPIC-Moduls;
  • 9 einen zeitschlitzbasierten gleichzeitigen Such- und Lernvorgang unter Bezugnahme auf ein Zeitsteuerungssignal gemäß der vorliegenden Erfindung;
  • 10 ein Diagramm einer Binärsuche in einer auf dem Chip befindlichen Tabelle gemäß der vorliegenden Erfindung;
  • 11 einen zeitschlitzbasierten gleichzeitigen Such- und Lernvorgang unter Bezugnahme auf ein Zeitsteuerungssignal gemäß der vorliegenden Erfindung;
  • 12 ein Diagramm eines Blasensortierverfahrens gemäß der vorliegenden Erfindung; und
  • 13 ein Ablaufdiagramm eines Verfahrens zum Durchführen eines gleichzeitigen Lern- und Suchvorgangs innerhalb einer Netzwerkvorrichtung gemäß der vorliegenden Erfindung.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGS-BEISPIELE
  • 1 zeigt ein grundlegendes Blockdiagramm einer beispielhaften Hochgeschwindigkeits-Netzwerkvorrichtung, auf die die vorliegende Erfindung anwendbar ist. Es wird eine beispielhafte Konfiguration eines Netzwerk-Switches gezeigt. Ein Switch auf dem Chip (SOC) 10 ist funktionell mit externen Vorrichtungen 11, externem Speicher 12, Fast-Ethernet-Ports 13 und Gigabit-Ethernet-Ports 15 verbunden. Zum Zweck dieser Erörterung werden Fast-Ethernet-Ports 13 als Ethernet-Ports mit niedriger Geschwindigkeit betrachtet, da sie in der Lage sind, in diesem Beispiel bei Geschwindigkeiten zwischen 10 Mbps und 100 Mbps betrieben werden zu können, während die Gigabit-Ethernet-Ports 15, bei denen es sich um Hochgeschwindigkeits-Ethernet-Ports handelt, in diesem Beispiel bei 1.000 Mbps oder mehr betrieben werden können, und bevorzugt bei 2.500 Mbps. Externe Vorrichtungen 11 könnten weitere Vermittlungsvorrichtungen zum Erweitern der Vermittlungsfunktionen umfassen, oder andere Vorrichtungen, wie sie für eine bestimmte Anwendung erforderlich sein können. Bei dem externen Speicher 12 kann es sich um zusätzlichen, nicht auf dem Chip befindlichen Speicher handeln, der zusätzlich zum internen Speicher (auf dem Chip) vorhanden ist, der sich auf dem weiter unten behandelten SOC 10 befindet. Die Zentralrechnereinheit (CPU) 52 kann nach Wunsch zum Programmieren des SOC 10 mit Regeln verwendet werden, die zum Steuern der Paketverarbeitung geeignet sind. Sobald jedoch der SOC 10 in geeigneter Weise programmiert oder konfiguriert wurde, funktioniert der SOC 10 jedoch, so weit wie möglich, in einer ungebundenen Weise, ohne mit der CPU 52 zu kommunizieren. Die CPU 52 steuert nicht jeden Aspekt des Betriebs des SOC 10, weil die Leistungsanforderungen an die CPU 52 in diesem Beispiel, wenigstens im Hinblick auf den SOC 10, recht niedrig sind. Daher kann eine im Vergleich zu anderen Netzwerk-Switches weniger leistungsfähige und somit weniger teure CPU 52 verwendet werden. Wie außerdem nachfolgend erläutert wird, nutzt der SOC 10 den externen Speicher 12 auf effiziente Weise, so dass die Kosten- und Leistungsanforderungen an den Speicher 12 verringert werden können. Der interne Speicher auf dem SOC 10 könnte, wie weiter unten noch ausgeführt wird, auch so konfiguriert werden, dass der Durchsatz bei der Vermittlung maximiert und die Kosten minimiert werden.
  • Es sei angemerkt, dass die beschriebenen Port-Geschwindigkeiten nur beispielhalber aufgeführt sind und dass die Ports so konfiguriert werden können, dass sie mit einer Vielzahl von höheren und niedrigeren Geschwindigkeiten arbeiten können.
  • 2 veranschaulicht ein detaillierteres Blockdiagramm der Funktionselemente des SOC 10. Wie aus 2 hervorgeht und oben bereits angemerkt wurde, umfasst der SOC 10 eine Vielzahl von modularen Systemen auf dem Chip, wobei jedes modulare System, obwohl es sich auf demselben Chip befindet, funktional von den übrigen modularen Systemen getrennt ist. Daher kann jedes Modul auf effiziente Weise parallel mit anderen Modulen betrieben werden, und diese Konfiguration ermöglicht ein beträchtliches Maß an Freiheit beim Aktualisieren und Re-Engineering des SOC 10. Es können jedoch auch andere Switch-Konfigurationen oder Netzwerkvorrichtungs-Konfigurationen zur Ausführung der vorliegenden Erfindung verwendet werden.
  • Der SOC 10 kann eine Vielzahl von Ethernet-Port-Schnittstellen-Controllern (EPIC) 20a, 20b, 20c, usw., eine Vielzahl von Gigabit-Port-Schnittstellen-Controllern (GPIC) 30a, 30b, usw., einen CPU-Verwaltungs-Schnittstellen-Controller (CMIC) 40, einen gemeinsamen Pufferspeicher-Pool (CBP) 50, eine PMMU (Speicherverwaltungseinheit mit Pipeline-Technologie) 70, einschließlich eines gemeinsamen Puffer-Managers (CBM) 71, und eine systemweite Busstruktur umfassen, die als CPS-Kanal 80 bezeichnet wird. Die PMMU 70 weist Speicherverwaltungsmittel auf und kommuniziert mit dem externen Speicher 12, der einen globalen Pufferspeicher-Pool (GBP) 60 umfasst. Der CPS-Kanal 80 umfasst den C-Kanal 81, den P-Kanal 82 und den S-Kanal 83. Der CPS-Kanal wird auch als "Zellen-Protokoll-Seitenband-Kanal" bezeichnet, und es handelt sich dabei um einen 17 Gbps-Kanal, der die verschiedenen Module miteinander verbindet. Wie auch in 2 veranschaulicht, können weitere Hochgeschwindigkeits-Interconnect-Verbindungen bereitgestellt werden, wie hier als erweiterbare Hochgeschwindigkeits-Interconnect-Verbindung gezeigt ist. In einer Konfiguration kann diese Interconnect-Verbindung in Form eines Interconnect-Port-Schnittstellen-Controllers (IPIC) 90 vorliegen, der in der Lage ist, die Schnittstelle zwischen dem CPS-Kanal 80 und den externen Vorrichtungen 11 über eine erweiterbare Hochgeschwindigkeits-Interconnect-Verbindung zu bilden. Wie weiter unten noch behandelt wird, stehen der EPIC 20a, 20b und 20c, die allgemein als EPIC 20 bezeichnet werden, und der GPIC 30a und 30b, die allgemein als GPIC 30 bezeichnet werden, alle eng mit geeigneten Tabellen für die Adressauflösungslogik und den Schicht-3-Vermittlungstabellen 21a, 21b, 21c, 31a, 31b, den Re geltabellen 22a, 22b, 22c, 31a, 31b und den VLAN-Tabellen 23a, 23b, 23c, 31a, 31b in Beziehung. Diese Tabellen werden allgemein mit 21, 31, 22, 32, 23 bzw. 33 bezeichnet. Diese Tabellen können, wie andere Tabellen auf dem SOC 10, als zweidimensionale Arrays in Silizium implementiert werden.
  • Der EPIC 20 kann eine Anzahl von Fast-Ethernet-Ports 13 (beispielhalber sind 8 gezeigt) unterstützen und vermittelt Pakete nach Bedarf von und/oder zu diesen Ports. Die Ports sind daher unter Verwendung einer bekannten Medienanschlusstechnologie an das Netzwerkmedium (Koaxial-, Twisted-Pair-, Glasfaserkabel, usw.) angeschlossen und kommunizieren mit dem CPS-Kanal 80 auf deren anderer Seite. Die Schnittstelle jedes EPIC 20 zu dem Netzwerkmedium kann durch eine reduzierte interne Medienschnittstelle (RMII) bereitgestellt werden, die den direkten Anschluss des Mediums an den SOC 10 ermöglicht. Wie nach dem Stand der Technik bekannt ist, ist das automatische Aushandeln ein Aspekt von Fast Ethernet, wobei das Netzwerk in der Lage ist, eine höchste Kommunikationsgeschwindigkeit zwischen einer Quelle und einem Ziel auf der Grundlage der Leistungsfähigkeit der jeweiligen Vorrichtungen auszuhandeln. Die Kommunikationsgeschwindigkeit kann, wie zuvor bereits angemerkt, beispielsweise zwischen 10 Mbps und 100 Mbps variieren. Die Funktion zum automatischen Aushandeln ist daher direkt in jedes Modul vom Typ EPIC 20 oder GPIC 30 integriert. Die Tabellen für die Adressauflösungslogik (ARL) und die Schicht-3-Tabellen (ARL/L3) 21a, 21b, 21c, die Regeltabellen 22a, 22b, 22c und die VLAN-Tabellen 23a, 23b und 23c sind so konfiguriert, dass sie auf effiziente und zweckmäßige Weise Bestandteil des zugehörigen EPIC sind bzw. eine Schnittstelle zu diesem bilden, um den Paketfluss mit Leitungsgeschwindigkeit zu unterstützen. Der auf dem Chip befindliche Speicher, der gemäß der vorliegenden Erfindung durchsucht wird, kann diese Tabellen umfassen, wie weiter unten detaillierter beschrieben wird.
  • Jeder EPIC 20 und jeder GPIC 30 weist getrennte Eintritts- und Austrittsfunktionen auf. Auf der Eintrittsseite können das selbst eingeleitete und das von der CPU eingeleitete Erlernen der Schicht-2-Adressinformationen erfolgen. Die Adressauflösungslogik (ARL) ist so konfiguriert, dass sie Daten in die ARL-Tabellen einfügt und darin aktualisiert, um die Lernfunktion zu unterstützen. Die Adressalterung ist als Merkmal integriert, um das Speichern von Adressinformationen zu verhindern, die nicht mehr gültig oder nützlich sind. Die Alterung wird weiter unten noch eingehend beschrieben. Der EPIC und der GPIC können außerdem das Spiegeln auf Schicht 2 durchführen. Ein schneller Filterprozessor (FFP) 141 (siehe 3) kann in den EPIC integriert sein, um die Paketweiterleitung zu beschleunigen und den Paketfluss zu verbessern.
  • Die Eintrittsseite jedes EPIC und GPIC, die in 8 als Eintritts-Submodul 14 veranschaulicht ist, weist eine beträchtliche Komplexität auf, damit sie in der Lage ist, eine beträchtliche Anzahl von verschiedenen Pakettypen einwandfrei zu verarbeiten, die am Port ankommen können, um eine Pufferung bei Leitungsgeschwindigkeit und dann einen geeigneten Transfer zum Austritt zu erreichen. Funktionell kann jeder Port an jedem Modul des SOC 10 ein mit ihm verbundenes, gesondertes Eintritts-Submodul 14 aufweisen. Aus der Sichtweise der Implementierung können jedoch zum Implementieren einer Vielzahl von Eintritts-Submodulen in jedem einzelnen Modul übliche Hardware-Elemente in Silizium verwendet werden, um die Menge der auf dem Einzel-Chip-SOC 10 implementierten Hardware möglichst gering zu halten. Die in diesem Dokument behandelte Konfiguration des SOC 10 erlaubt das gleichzeitige Suchen und Filtern. Das Suchen auf Schicht 2, das Suchen auf Schicht 3 und das Filtern erfolgen gleichzeitig, um ein hohes Leistungsniveau zu erreichen, was nachfolgend noch detaillierter beschrieben wird. Auf der Austrittsseite sind der EPIC und der GPIC in der Lage, das Abfragen von Paketen entweder als Funktion des Austritts-Managements oder der Service-Klasse (COS) zu unterstützen. Eine Umleitung/Planung von zu übertragenden Paketen kann auftreten, sowie eine Benachrichtigung bei Head-of-Line-Blocking (HOL), Paketalterung, Neuzusammensetzen der Zellen (Cell Reassembly) und weitere mit der Ethernet-Port-Schnittstelle verbundene Funktionen.
  • Jeder GPIC 30 ähnelt jedem EPIC 20, allerdings unterstützt er in diesem Ausführungsbeispiel nur einen 2,5-Gigabit-Ethernet-Port und verwendet eine Port-spezifische ARL-Tabelle, anstatt eine ARL-Tabelle zu verwenden, die mit anderen Ports gemeinsam verwendet wird. Außerdem bildet jeder GPIC-Port unter Verwendung einer medienunabhängigen Gigabit-Schnittstelle (GMII) anstelle einer RMII eine Schnittstelle zu dem Netzwerkmedium.
  • Ein CMIC 40 kann als Gateway zwischen dem SOC 10 und der Host-CPU fungieren. Die Kommunikation kann beispielsweise auf einem PCI-Bus oder einem anderen akzeptablen Kommunikationsbus erfolgen. Der CMIC 40 kann sequenzielle, direkte, abgebildete Zugriffe zwischen der Host-CPU 52 und dem SOC 10 bereitstel len. Die CPU 52 ist durch den CMIC 40 in der Lage, auf zahlreiche Ressourcen auf dem SOC 10 zuzugreifen, einschließlich MIB-Zähler, programmierbare Register, Status- und Steuerregister, Konfigurationsregister, ARL-Tabellen, Port-basierte VLAN-Tabellen, VLAN-Tabellen nach IEEE 802.1q, Schicht-3-Tabellen, Regeltabellen, CBP-Adressen- und -Datenspeicher sowie GBP-Adressen- und -Datenspeicher. Optional kann der CMIC 40 DMA-Unterstützung, DMA-Verkettung und Scatter/Gather-Operationen sowie Master- und Ziel-PC164 umfassen.
  • Der gemeinsame Pufferspeicher-Pool bzw. CBP 50 kann als Datenspeicher auf dem Chip betrachtet werden. In einer Konfiguration kann es sich bei dem CBP 50 um First-Level-Hochgeschwindigkeits-SRAM-Speicher handeln, um die Leistung zu optimieren und die Anforderungen für den Hardware-Systemaufwand möglichst gering zu halten. Der CBP kann eine Größe von beispielsweise 720 KByte bei 132 MHz aufweisen. Pakete werden in dem CBP 50 typischerweise als Zellen anstatt als Pakete gespeichert. Wie in der Figur veranschaulicht, beinhaltet die PMMU 70 außerdem den gemeinsamen Puffer-Manager (CBM) 71. Der CBM 71 kann Empfangs-Suchanforderungen und die Warteschlangenverwaltung handhaben und kann für das Zuweisen von Zellenzeigern zu ankommenden Zellen zuständig sein, sowie für das Zuweisen von allgemeinen Paket-IDs (CPID), sobald das Paket vollständig in den CBP geschrieben wurde. Der CBM 71 kann außerdem für die Verwaltung des Pools der freien Adresszeiger auf dem Chip zuständig sein, den tatsächlichen Datentransfer zum und vom Datenpool steuern und eine Speicher-Budget-Verwaltung bereitstellen. Die vorgenannte Erörterung zeigt eine beispielhafte Konfiguration einer beispielhaften Vorrichtung und soll den Schutzumfang der vorliegenden Erfindung nicht beschränken. Dementsprechend können andere Funktionen oder Einrichtungen als Einheiten zur Speicherverwaltung oder Warteschlangenverwaltung gemäß der vorliegenden Erfindung implementiert werden.
  • Der globale Speicherpuffer-Pool bzw. GBP 60 kann als Second-Level-Speicher verwendet werden, und er kann sich auf dem Chip befinden oder Chip-extern vorliegen. In einer Konfiguration liegt der GBP 60 in Bezug auf den SOC 10 Chipextern vor. Wenn er Chip-extern vorliegt, wird der GBP 60 als Teil des externen Speichers 12 oder als dessen Gesamtheit betrachtet. Als Second-Level-Speicher kann es sich bei dem GBP um Hochgeschwindigkeits-SRAMs handeln oder um langsameren, preiswerteren Speicher wie DRAM oder jeden anderen geeigneten Speichertyp. Der GBP kann eng an die PMMU 70 gekoppelt sein und funktioniert insofern wie der CBP, als Pakete als Zellen gespeichert werden. Bei Rundsende- und Mehrfachsende-Nachrichten wird nur ein Exemplar des Pakets im GBP 60 gespeichert.
  • Die PMMU 70 kann zwischen dem GBP 60 und dem CPS-Kanal 80 angeordnet sein und fungiert als Schnittstelle zum externen Speicher. Um die Speicherauslastung zu optimieren, weist die PMMU 70 mehrere Lese- und Schreibpuffer auf und unterstützt zahlreiche Funktionen einschließlich globaler Warteschlangenverwaltung, was ganz allgemein die Zuweisung von Zellenzeigern für umgeleitete ankommende Pakete, die Pflege des globalen FAP, die zeitoptimierte Zellenverwaltung, die Verwaltung des globalen Speicherbudgets, die GPID-Zuweisung und die Benachrichtigung des Austrittsmanagers, die Verwaltung des Schreibpuffers, Lese-Pre-Fetches auf der Grundlage von Anforderungen des Austrittsmanagers/der Service-Klasse und eine intelligente Speichersteuerung umfasst.
  • Wie in 2 gezeigt, kann es sich bei dem CPS-Kanal 80 tatsächlich um drei getrennte Kanäle handelt, die als C-Kanal, P-Kanal und S-Kanal bezeichnet werden. Der C-Kanal kann 128 Bit breit sein und bei 132 MHz laufen. Paketübertragungen zwischen den Ports erfolgen auf dem C-Kanal. Da dieser Kanal allein für die Datenübertragung genutzt wird, gibt es in Verbindung mit seiner Verwendung keinen Systemaufwand. Der P-Kanal bzw. Protokollkanal ist mit dem C-Kanal synchron bzw. mit diesem fixiert. Während der Übertragung von Zellen wird der Nachrichten-Header mittels der PMMU über den P-Kanal gesendet. Der P-Kanal kann 32 Bit breit sein und kann bei 132 MHz laufen.
  • Der S-Kanal bzw. Seitenbandkanal kann beispielsweise bei 132 MHz laufen und 32 Bit breit sein. Jede geeignete Breite und Geschwindigkeit kommen in Frage. Der S-Kanal kann für Funktionen wie das Übermitteln des Port-Verbindungsstatus, von Empfangs-Port-Überlastungsnachrichten, Port-Statistiken, ARL-Tabellensynchronisation, Speicher- und Registerzugriff an die CPU und an andere CPU-Verwaltungsfunktionen dienen, wobei Nachrichten zur Steuerung der Übertragungsgeschwindigkeit und Benachrichtigungen bei Überlastung des globalen Speichers und des gemeinsamen Speichers weitergeleitet werden.
  • Um die Funktionsweise des SOC 10 einwandfrei verstehen zu können, ist ein einwandfreies Verständnis der Funktionsweise des CPS-Kanals 80 erforderlich. Unter Bezugnahme auf 3 ist ersichtlich, dass Pakete im SOC 10 beim Eintritt durch einen EPIC 20 bzw. einen GPIC 30 in 64 Byte große Zellen geteilt werden. Die Verwendung von Zellen auf dem Chip anstelle von Paketen erleichtert es dem SOC, mit zellengestützten Protokollen, wie beispielsweise ATM (Asynchronous Transfer Mode) zu arbeiten. Gegenwärtig verwendet ATM jedoch Zellen mit einer Länge von 53 Byte, davon 48 Byte für Nutzdaten und 5 Byte für den Header. In diesem Beispiel des SOC 10 werden ankommende Pakete, wie oben dargelegt, in Zellen mit einer Länge von 64 Byte geteilt, und die Zellen werden weiter in vier getrennte, 16 Byte große Zellenblöcke Cn0...Cn3 aufgeteilt. Mit dem C-Kanal ist der P-Kanal fixiert, wodurch der Befehlscode bzw. Opcode in Synchronisation mit Cn0 fixiert wird. Ein Port-Bitmuster wird während der Phase Cn1 in den P-Kanal eingefügt. Das nicht mit Tags versehene Bitmuster wird während der Phase Cn2 in den P-Kanal eingefügt, und in Cn3 wird ein Zeitstempel auf dem P-Kanal platziert. Unabhängig von den Vorkommnissen auf dem C- und P-Kanal wird der S-Kanal als Seitenband verwendet und ist somit von den Aktivitäten auf dem C- und P-Kanal entkoppelt.
  • Zellen- oder C-Kanal
  • Die Arbitration für den CPS-Kanal erfolgt außerhalb des Bands. Jedes Modul (EPIC, GPIC, usw.) überwacht den Kanal, und übereinstimmende Ziel-Ports antworten auf geeignete Transaktionen. Bei der C-Kanal-Arbitration handelt es sich um ein Demand-Priority-Verfahren, welches den Round-Robin-Arbitrationsmechanismus verwendet. Wenn keine Anforderungen aktiv sind, kann jedoch das Standard-Modul, das während der Konfiguration des SOC 10 ausgewählt werden kann, auf dem Kanal parken und den vollständigen Zugriff darauf erhalten. Wenn alle Anforderungen aktiv sind, ist das SOC 10 so konfiguriert, dass der PMMU in jedem zweiten Zellenzyklus Zugriff gewährt wird und dass die EPICs 20 und die GPICs 30 gemeinsam gleichen Zugriff auf den C-Kanal haben, wobei das Round-Robin-Verfahren angewendet wird. 4A und 4B veranschaulichen einen C-Kanal-Arbitrationsmechanismus, wobei Abschnitt A die PMMU darstellt und Abschnitt B aus zwei GPICs und drei EPICs besteht. Die Abschnitte wechseln sich beim Zugriff ab, und da die PMMU das einzige Modul in Abschnitt A ist, erhält sie in jedem zweiten Zyklus Zugriff. Die Module in Abschnitt B erhalten, wie bereits angemerkt, Zugriff auf der Grundlage des Round-Robin-Verfahrens.
  • Protokoll- oder P-Kanal
  • Unter nochmaliger Bezugnahme auf den Protokoll- bzw. P-Kanal kann eine Vielzahl von Nachrichten auf dem P-Kanal platziert werden, um den auf dem C-Kanal fließenden Datenfluss ordnungsgemäß zu leiten. Angenommen, der P-Kanal 82 ist 32 Bit breit, und für eine Nachricht sind typischerweise 128 Bit erforderlich, so können vier kleinere 32-Bit-Nachrichten zusammengestellt werden, um eine vollständige P-Kanal-Nachricht zu bilden. Die folgende Liste nennt einige Beispiele der Felder mit Funktion sowie Beispiele der verschiedenen Bit-Anzahlen der 128 Bit langen Nachricht auf dem P-Kanal.
    • Opcode (Befehlscode) Länge 2 Bit Gibt den Typ der Nachricht an, die auf dem C-Kanal 81 anliegt;
    • IP Bit Länge 1 Bit Dieses Bit wird gesetzt, um anzugeben, dass es sich um ein IP-vermitteltes Paket handelt;
    • IPX Bit Länge 1 Bit Dieses Bit wird gesetzt, um anzugeben, dass es sich um ein IPX-vermitteltes Paket handelt;
    • Next Cell (Nächste Zelle) Länge 2 Bit Dies ist eine Folge von Werten, um die gültigen Bytes in der entsprechenden Zelle auf dem C-Kanal 81 zu identifizieren;
    • SRC DEST Port (QUELL-ZIEL-Port) Länge 6 Bit Definiert die Nummer des Ports, der die Nachricht sendet bzw. die Nachricht empfängt, wobei die Interpretation der Quelle bzw. des Ziels vom Befehlscode abhängt;
    • Cos (Service-Klasse) Länge 3 Bit Definiert die Service-Klasse für das aktuelle Paket, das gerade verarbeitet wird;
    • J Länge 1 Bit Beschreibt, ob es sich bei dem aktuellen Paket um ein Jumbo-Paket handelt;
    • S Länge 1 Bit Gibt an, ob es sich bei der aktuellen Zelle um die erste Zelle des Pakets handelt;
    • E Länge 1 Bit Gibt an, ob es sich bei der aktuellen Zelle um die letzte Zelle des Pakets handelt;
    • CRC Länge 2 Bit Gibt an, ob ein Wert für eine zyklischen Redundanzprüfung (CRC) an das Paket angehängt werden soll und ob ein CRC-Wert neu generiert werden soll;
    • P Bit Länge 1 Bit Bestimmt, ob die MMU das gesamte Paket löschen soll;
    • Len (Länge) Länge 7 Bit Gibt die gültige Anzahl von Byte bei der aktuellen Übertragung an;
    • O Länge 2 Bit Definiert eine Optimierung für die Verarbeitung durch die CPU 52; und
    • Bc/Mc Bitmap (Bitmuster für Rundsenden/Mehrfachsenden) Länge 28 Bit Definiert das Rundsende- oder Mehrfachsende-Bitmuster. Gibt Austritts-Ports an, auf die das Paket bezüglich der Rundsende- oder Mehrfachsende-Nachrichten gesetzt werden soll.
    • Untag Bits/Source Port (Bits ohne Tags/Quell-Port) Länge 28/5 Bit Je nach Befehlscode wird das Paket vom Port zur MMU übertragen, und dieses Feld wird als Bitmuster ohne Tags interpretiert. Ein anderer ausgewählter Befehlscode gibt an, dass das Paket von der MMU zum Austritts-Port übertragen wird, und die letzten sechs Bit dieses Felds werden als Quell-Port-Feld interpretiert. Die Bits ohne Tags geben die Austritts-Ports an, welche den Tag-Header entfernen, und die Quell-Port-Bits geben die Nummer des Ports an, auf dem das Paket in den Switch gelangt ist;
    • U Bit Länge 1 Bit Bei Auswahl eines bestimmten Befehlscodes (0 × 01) bedeutet das Setzen dieses Bits, dass das Paket den Port ohne Tags verlassen soll; in diesem Fall wird das Entfernen der Tags vom geeigneten MAC vorgenommen;
    • CPU Opcode (CPU-Befehlscode) Länge 18 Bit Diese Bits werden gesetzt, wenn das Paket aus irgendeinem Grund an die CPU gesendet wird. Befehlscodes werden auf der Grundlage einer Übereinstimmung mit einem Filter, gesetzten Lern-Bits, Weiterleitungs-Bits, dem Scheitern der Zielsuche (DLF), der Verlagerung einer Station, usw. definiert;
    • Time Stamp (Zeitstempel) 14 Bit Das System setzt einen Zeitstempel in diesem Feld, wenn das Paket ankommt, wobei eine Detailgenauigkeit von 1 μs gilt.
  • Das Feld "Opcode" der P-Kanal-Nachricht definiert den Typ der aktuell gesendeten Nachricht. Während der Befehlscode aktuell mit einer Länge von 2 Bit gezeigt wird, kann das Feld "Opcode" nach Bedarf erweitert werden, um neue Nachrichtentypen zu berücksichtigen, die gegebenenfalls in der Zukunft definiert werden. In 4 ist jedoch der oben definierte P-Kanal-Nachrichtentyp grafisch gezeigt.
  • Eine Nachricht für eine vorzeitige Beendigung wird verwendet, um dem CBM 71 anzugeben, dass das aktuelle Paket beendet werden soll. Während des Betriebs wird, wie weiter unten noch detaillierter behandelt wird, das Statusbitfeld (P) in der Nachricht gesetzt, um anzugeben, dass das gesamte Paket aus dem Speicher gelöscht werden soll. Außerdem würden alle betroffenen Austritts-Ports als Reaktion auf das Statusbit das aktuelle Paket vor der Übertragung löschen.
  • Das Feld "Src Dest Port" der P-Kanal-Nachricht gibt, wie oben angegeben, die Adresse des Ziel- bzw. des Quell-Ports an. Jedes dieser Felder ist 6 Bit lang und ermöglicht daher die Adressierung von vierundsechzig Ports.
  • Das Feld "CRC" der Nachricht ist zwei Bit lang und definiert CRC-Aktionen. Bit 0 des Felds stellt eine Angabe bereit, ob der zugehörige Austritts-Port einen CRC an das aktuelle Paket anhängen soll. Ein Austritts-Port würde einen CRC an das aktuelle Paket anhängen, wenn Bit 0 des Felds "CRC" auf eine logische Eins gesetzt ist. Bit 1 des Felds "CRC" stellt eine Angabe bereit, ob der zugehörige Austritts-Port einen CRC für das aktuelle Paket neu generieren soll. Ein Austritts-Port würde einen CRC neu generieren, wenn Bit 1 des Felds "CRC" auf eine logische Eins gesetzt ist. Das Feld "CRC" ist nur für die letzte übertragene Zelle gültig, wie sie durch das auf eine logische Eins gesetzte E-Bit-Feld der P-Kanal-Nachricht definiert ist.
  • Wie beim Feld "CRC" sind das Statusbitfeld (st), das Feld "Len" und das Feld "Cell Count" der Nachricht in diesem Beispiel nur für die letzte Zelle eines übertragenen Pakets gültig, wie es durch das E-Bit-Feld der Nachricht definiert ist.
  • Schließlich weist das Feld "Time Stamp" der Nachricht in diesem Beispiel eine Auflösung von 1 μs auf und ist nur für die erste Zelle des Pakets gültig, die durch das S-Bit-Feld der Nachricht definiert ist. Eine Zelle wird als erste Zelle eines empfangenen Pakets definiert, wenn das S-Bit-Feld der Nachricht auf eine logische Eins gesetzt ist.
  • Der C-Kanal 81 und der P-Kanal 82 sind synchron so miteinander verknüpft, dass Daten auf dem C-Kanal 81 über den CPS-Kanal 80 übertragen werden, während gleichzeitig eine entsprechende P-Kanal-Nachricht übertragen wird.
  • S-Kanal oder Seitenbandkanal
  • Bei dem S-Kanal 83 kann es sich um einen 32 Bit breiten Kanal handeln, der einen getrennten Kommunikationspfad innerhalb des SOC 10 bereitstellt. Der S-Ka nal 83 wird für die Verwaltung durch die CPU 52 verwendet, ferner zur internen Datenfluss-Steuerung im SOC 10 und zur Nachrichtenübermittlung zwischen den Modulen des SOC 10. Der S-Kanal 83 ist ein Seitenbandkanal des CPS-Kanals 80 und elektrisch und physisch von dem C-Kanal 81 und dem P-Kanal 82 isoliert. Da der S-Kanal von dem C-Kanal 81 und von dem P-Kanal 82 getrennt und unterschiedlich ist, ist es wichtig, darauf hinzuweisen, dass der Betrieb des S-Kanals 83 ohne Leistungseinbußen in Bezug auf den Betrieb des C-Kanals 81 und des P-Kanals 82 fortgesetzt werden kann. Da umgekehrt der C-Kanal nicht für die Übertragung von Systemnachrichten verwendet wird, sondern nur für Daten, gibt es in Verbindung mit dem C-Kanal 81 keinen Systemaufwand, und somit ist der C-Kanal 81 in der Lage, wie erforderlich ungebunden zu laufen, um die ankommenden und abgehenden Paketinformationen zu handhaben.
  • Der S-Kanal 83 des CPS-Kanals 80 stellt einen systemweiten Kommunikationspfad zum Übertragen von Systemnachrichten bereit, beispielsweise, indem er für die CPU 52 den Zugriff auf die Steuerstruktur des SOC 10 bereitstellt. Die Systemnachrichten umfassen Port-Statusinformationen, einschließlich Port-Verbindungsstatus, Empfangs-Port-Überlastungsnachrichten und Port-Statistiken, Synchronisation der ARL-Tabelle 22, Zugriff der CPU 52 auf die Speicherpuffer des GBP 60 und des CBP 50 und die Steuerregister des SOC 10, und Benachrichtigungen bei Überlastung des Speichers, der dem GBP 60 und/oder dem CBP 50 entspricht.
  • 5 veranschaulicht ein beispielhaftes Nachrichtenformat für eine S-Kanalnachricht auf dem S-Kanal 83. Die Nachricht wird aus vier 32-Bit-Datenwörtern gebildet; die Bits der Felder der einzelnen Wörter sind wie folgt definiert:
    • Opcode (Befehlscode) Länge 6 Bit Gibt den Typ der Nachricht an, die auf dem S-Kanal anliegt;
    • Dest Port (Ziel-Port) Länge 6 Bit Gibt die Nummer des Ports an, an den die aktuelle S-Kanalnachricht adressiert ist;
    • Src Port (Quell-Port) Länge 6 Bit Definiert die Nummer des Ports, von dem die aktuelle S-Kanalnachricht stammt;
    • COS (Service-Klasse) Länge 3 Bit Definiert die Service-Klasse, die mit der aktuellen S-Kanalnachricht verbunden ist; und
    • C Bit Länge 1 Bit Definiert logisch, ob die aktuelle S-Kanalnachricht für die CPU 52 gedacht ist.
    • Error Code (Fehlercode) Länge 2 Bit Definiert einen gültigen Fehler, wenn das E-Bit gesetzt ist.
    • DataLen (Datenlänge) Länge 7 Bit Definiert die Gesamtanzahl der Datenbytes im Feld Data;
    • E Bit Länge 1 Bit Gibt logisch an, ob bei der Ausführung des durch den Befehlscode definierten, aktuellen Befehls ein Fehler aufgetreten ist;
    • Address (Adresse) Länge 32 Bit Definiert die Speicheradresse, die mit dem durch den Befehlscode definierten, aktuellen Befehl verbunden ist;
    • Data (Daten) Länge 0 bis 127 Bit Enthält die mit dem aktuellen Befehlscode verbundenen Daten.
  • Durch die oben erläuterte Konfiguration des CPS-Kanals 80 ist der S-Kanal so von dem C-Kanal und dem P-Kanal entkoppelt, dass die Bandbreite auf dem C-Kanal für die Übertragung von Zellen reserviert werden kann und die Überladung des C-Kanals keine Auswirkungen auf die Kommunikation auf dem Seitenbandkanal hat.
  • Betrieb des SOC
  • Die Konfiguration des SOC 10 kann, wie oben erörtert, Fast-Ethernet-Ports, Gigabit-Ports und erweiterbare Interconnect-Verbindungen unterstützen. Die Konfiguration des SOC kann auch "gestapelt" oder "verbunden" sein, wodurch eine erhebliche Leistungsfähigkeit hinsichtlich der Port-Erweiterung ermöglicht wird. Sobald Datenpakete vom SOC 10 empfangen, in Zellen geteilt und auf dem CPS-Kanal 80 platziert wurden, können gestapelte SOC-Module eine Schnittstelle mit dem CPS-Kanal bilden und den Kanal überwachen und nach Bedarf die geeigneten Informationen extrahieren. Wie weiter unten noch erörtert wird, erfolgen im Hinblick auf die Suche auf Schicht 2 und Schicht 3 und eine schnelle Filterung gemäß der vorliegenden Erfindung eine erhebliche Anzahl von gleichzeitigen Such- und Filtervorgängen, sowie das Paket an dem Eintritts-Submodul 14 eines EPIC 20 oder GPIC 30 ankommt.
  • Die Tabellenverwaltung kann auch durch die Verwendung der CPU 52 erreicht werden. Die CPU 52 kann, über den CMIC 40, dem SOC 10 Softwarefunktionen bereitstellen, was in der Bezeichnung der Identifikation eines Benutzers an einem bestimmten Port 24 resultiert. Wie oben bereits erörtert, ist es nicht wünschenswert, dass die CPU 52 auf die Paketinformationen in ihrer Gesamtheit zugreift, da dies zu Leistungseinbußen führen würde. Vielmehr wird der SOC 10 durch die CPU 52 mit Identifikationsinformationen bezüglich des Benutzers programmiert. Der SOC 10 kann einen Echtzeit-Datenfluss aufrechterhalten, da die Kommunikation bezüglich der Tabellendaten zwischen der CPU 52 und dem SOC 10 ausschließlich auf dem S-Kanal 83 erfolgt. Während der SOC 10 der CPU 52 direkte Paketinformationen über den C-Kanal 81 bereitstellen kann, ist eine solche Systemeinrichtung aus den vorgenannten Gründen nicht wünschenswert. Wie oben erwähnt, wird als Eintrittsfunktion eine Adressauflösungs-Suche durchgeführt, indem die ARL-Tabelle 21a untersucht wird. Wenn das Paket an einen der Schicht-3-Switches (S3) des SOC 10 adressiert ist, führt das Eintritts-Submodul 14a die S3- und die Standardtabellensuche durch. Sobald der Ziel-Port bestimmt wurde, setzt der EPIC 20a ein Fertig-Flag in der Versandeinheit 18a, die dann für den C-Kanal 81 eine Vereinbarung trifft.
  • Bei dem Arbitrations-Schema des C-Kanals 81 kann es sich, wie zuvor bereits erörtert, um ein Demand-Priority-Verfahren nach dem Round-Robin-Mechanismus handeln. Jedes E/A-Modul, jeder EPIC 20, GPIC 30 und CMIC 40 kann zusammen mit der PMMU 70 eine Anforderung für den Zugriff auf den C-Kanal 81 einleiten. Wenn zu einem bestimmten Zeitpunkt keine Anforderungen vorhanden sind, wird einem Standard-Modul, das mit einer hohen Priorität definiert wurde, vollständiger Zugriff auf den C-Kanal 81 erteilt. Wenn irgendein einzelnes E/A-Modul oder die PMMU 70 Zugriff auf den C-Kanal 81 anfordert, erhält dieses einzelne Modul den Zugriff auf den C-Kanal 81 nach Anforderung (on Demand).
  • Wenn die EPIC-Module 20a, 20b, 20c und die GPIC-Module 30a und 30b sowie der CMIC 40 gleichzeitig Zugriff auf den C-Kanal anfordern, wird dieser Zugriff mittels des Round-Robin-Verfahrens gewährt. Während eines bestimmten Arbitrations-Zeitraums würde jedem E/A-Modul Zugriff auf den C-Kanal 81 gewährt. So würde beispielsweise jedem der GPIC-Module 30a und 30b Zugriff gewährt, anschließend den EPIC-Modulen und schließlich dem CMIC 40. Nach jedem Arbitrations-Zeitraum würde dem nächsten E/A-Modul mit einer gültigen Anforderung Zugriff auf den C-Kanal 81 gewährt. Dieses Muster würde so lange fortgesetzt, wie jedes der E/A-Module eine aktive Anforderung zum Zugriff auf den C-Kanal 81 bereitstellt.
  • Wenn alle E/A-Module einschließlich der PMMU 70 Zugriff auf den C-Kanal 81 anfordern, wird der PMMU 70 der Zugriff wie in 4B gezeigt gewährt, da die PMMU einen wesentlichen Datenpfad für alle Module auf dem Switch bereitstellt. Wenn die Versandeinheit 18a Zugriff auf den Kanal 81 erhält, fährt sie fort, das empfangene Paket 112 jeweils zellenweise an den C-Kanal 81 zu übergeben.
  • Unter nochmaliger Bezugnahme auf 3 sind die einzelnen Kanäle C, P und S des CPS-Kanals 80 gezeigt. Sobald die Versandeinheit 18a die Erlaubnis erhalten hat, auf den CPS-Kanal 80 zuzugreifen, platziert die Versandeinheit 18a während des ersten Zeitraums Cn0 die ersten 16 Byte der ersten Zelle 112a des empfangenen Pakets 112 auf dem C-Kanal 81. Gleichzeitlich platziert die Versandeinheit 18a die erste P-Kanalnachricht, die der aktuell übertragenen Zelle entspricht. Wie oben bereits erwähnt, definiert die erste P-Kanalnachricht unter anderem den Nachrichtentyp. Daher würde in diesem Beispiel die erste P-Kanalnachricht definieren, dass es sich bei der aktuellen Zelle um eine Nachricht vom Typ "Unicast" handelt, die zum Ziel-Austritts-Port 21c geleitet werden soll.
  • Während des zweiten Takts Cn1 werden die zweiten 16 Byte (16:31) der aktuell übertragenen Datenzelle 112a auf dem C-Kanal 81 platziert. Analog wird während des zweiten Takts Cn1 das Bc/Mc-Port-Bitmuster auf dem P-Kanal 82 platziert.
  • Wie durch die Schraffur des S-Kanals 83 während der Zeiträume Cn0 bis Cn3 in 3 angegeben, ist der Betrieb des S-Kanals 83 von dem Betrieb des C-Kanals 81 und des P-Kanals 82 entkoppelt. So kann beispielsweise die CPU 52 über den CMIC 40 Nachrichten auf Systemebene an nicht aktive Module weiterleiten, während ein aktives Modul Zellen auf dem C-Kanal 81 weiterleitet. Wie zuvor bereits erwähnt, ist dies ein wichtiger Aspekt des SOC 10, weil der Betrieb des S-Kanals eine parallele Aufgabenverarbeitung erlaubt, wodurch die Übertragung von Zellendaten auf dem C-Kanal 81 in Echtzeit ermöglicht wird. Sobald die erste Zelle 112a des ankommenden Pakets 112 auf dem CPS-Kanal 80 platziert wird, bestimmt die PMMU 70, ob die Zelle an einen Austritts-Port 21 übertragen werden soll, der sich lokal auf dem SOC 10 befindet.
  • Wenn die PMMU 70 bestimmt, dass die aktuelle Zelle 112a auf dem C-Kanal 81 für einen Austritts-Port des SOC 10 bestimmt ist, übernimmt die PMMU 70 die Steuerung des Zelldatenflusses.
  • 7 veranschaulicht auf detailliertere Weise die funktionalen Austrittsmerkmale der PMMU 70. Die PMMU 70 umfasst den CBM 71 und bildet eine Schnittstelle zwischen dem GBP, dem CBP und einer Vielzahl von Austritts-Managern (EgM) 76 des Austritts-Submoduls 18, wobei für jeden Austritts-Port ein Austritts-Manager 76 bereitgestellt wird. Der CBM 71 ist in einer Parallelkonfiguration über den R-Kanal-Datenbus 77 mit jedem Austritts-Manager 76 verbunden. Der R-Kanal-Datenbus 77 ist ein 32 Bit breiter Bus, der vom CBM 71 und den Austritts-Managern 76 bei der Übertragung von Speicherzeigern und Systemnachrichten verwendet wird. Jeder Austritts-Manager 76 ist außerdem zur Übertragung der Datenzellen 112a und 112b mit dem CPS-Kanal 80 verbunden.
  • Zusammenfassend lässt sich sagen, dass der CBM 71 die Funktionen einer auf dem Chip befindlichen Verwaltung des Pools der freien Adressen (FAP), die Übertragung von Zellen an den CBP 50, die Zusammenstellung von Paketen und die Benachrichtigung an die jeweiligen Austritts-Manager, die Weiterleitung von Paketen an den GBP 60 über einen globalen Puffer-Manager sowie die Handhabung des Paketflusses von dem GBP 60 zu dem CBP 50 vornimmt. Speicherbereinigung, Speicherbudgetverwaltung, Kanalschnittstelle und Zellenzeiger-Zuweisung sind ebenfalls Funktionen des CBM 71. Im Hinblick auf den Pool der freien Adressen verwaltet der CBM 71 den Pool der freien Adressen und weist ankommenden Zellen freie Zellenzeiger zu. Der Pool der freien Adressen wird auch von dem CBM 71 zurückgeschrieben, so dass die von verschiedenen Austritts-Managern 76 freigegebenen Zellenzeiger auf geeignete Weise gelöscht werden. Ausgehend davon, dass in dem CBP 50 genügend Speicherplatz verfügbar ist und dass genügend freie Adresszeiger verfügbar sind, verwaltet der CBM 71 wenigstens zwei Zellenzeiger pro Austritts-Manager 76, der gerade verwaltet wird. Die erste Zelle eines Pakets kommt an einem Austritts-Manager 76 an, und der CBM 71 schreibt diese Zelle in die CBM-Speicherzuweisung an der Adresse, auf die der erste Zeiger gezeigt hat. Der zweite Zeiger wird in das Header-Feld "Next Cell" geschrieben. Das Format der Zelle, wie sie in dem CBP 50 gespeichert wird, ist in 7 gezeigt; jede Zeile ist 18 Byte lang. Zeile 0 enthält geeignete Informationen im Hinblick auf Informationen zur ersten und zur letzten Zelle, zum Rundsenden/Mehrfachsenden, die Anzahl der Austritts-Ports für das Rundsenden oder Mehrfachsenden, die Zellenlänge bezüglich der Anzahl von gültigen Bytes in der Zelle, den Zeiger auf die nächste Zelle, die Gesamtanzahl der Zellen in dem Paket und den Zeitstempel. Die übrigen Zeilen enthalten Zellendaten als 64-Byte-Zellen. Der Pool der freien Adressen innerhalb der PMMU 70 speichert alle freien Zeiger für den CBP 50. Jeder Zeiger in dem Pool der freien Adressen zeigt auf eine 64-Byte-Zelle in dem CBP 50; die tatsächlich in dem CBP gespeicherte Zelle weist insgesamt 72 Byte auf, wobei 64 Byte Bytedaten sind und 8 Byte Steuerinformationen. Funktionen wie HOL-Blocking, Hinweis auf Hoch- und Niedrigstände, Budget-Register für Ausgangswarteschlangen, CPID-Zuweisung und weitere Funktionen werden in dem CBM 71 innerhalb der PMMU 70 behandelt.
  • Wenn die PMMU 70 beispielsweise durch eine Tabellensuche (das heißt eine weiter unten näher beschriebene Suche) bestimmt, dass Zelle 112a für einen geeigneten Austritts-Port im SOC 10 bestimmt ist, steuert die PMMU 70 den Fluss der Zellen von dem CPS-Kanal 80 zu dem CBP 50. Wenn das Datenpaket 112 von dem CPS-Kanal 80 an der PMMU 70 ankommt, bestimmt der CBM 71, ob in dem CBP 50 genügend Speicher für das Datenpaket 112 verfügbar ist. Ein (nicht gezeigter) Pool der freien Adressen kann pro Service-Klasse Speicherplatz für wenigstens zwei Zellenzeiger pro Austritts-Manager 76 bereitstellen. Wenn in dem CBP 50 genügend Speiher für das Speichern und Identifizieren des ankommenden Datenpakets verfügbar ist, platziert der CBM 71 die Datenzelleninformationen auf dem CPS-Kanal 80. Die Datenzelleninformationen werden dem CBP 50 von dem CBM 71 an der zugewiesenen Adresse bereitgestellt. Wenn neue Zellen von der PMMU 70 empfangen werden, weist der CBM 71 Zellenzeiger zu. Der anfängliche Zeiger für die erste Zelle 112a zeigt auf den Austritts-Manager 76, der dem Austritts-Port entspricht, an den das Datenpaket 112 gesendet wird, nachdem es in dem Speicher platziert worden ist. Im Beispiel von 6 kommen Pakete an dem Port 24a des EPIC 20c an und sind für Port 24c des EPIC 20c bestimmt. Für jede zusätzliche Zelle 112b weist der CBM 71 einen entsprechenden Zeiger zu. Dieser entsprechende Zellenzeiger wird als NC_Header mit einem Wert von zwei Byte bzw. 16 Bit an einer geeigneten Stelle in einer Steuernachricht gespeichert, wobei der anfängliche Zeiger auf den entsprechenden Austritts-Manager 76 und die folgenden Zellenzeiger Teil jedes Zellen-Headers sind, und es wird eine verknüpfte Liste von Speicherzeigern ausgebildet, die das Paket 112 definiert, wenn das Paket über den geeigneten Austritts-Port übertragen wird, in diesem Fall 24c. Sobald das Paket vollständig in den CBP 50 geschrieben worden ist, wird dem geeigneten Austritts-Manager 76 eine entsprechende CBP-Paket-ID (CPID) bereitgestellt; diese CPID zeigt auf die Speicherposition der anfänglichen Zelle 112a. Die CPID für das Datenpaket wird dann verwendet, wenn das Datenpaket 112 an den Ziel-Austritts-Port 24c gesendet wird. Tatsächlich verwaltet der CBM 71 zwei Puffer, die einen CBP-Zellenzeiger enthalten, wobei die Zulassung zu dem CBP auf der Grundlage einer Reihe von Faktoren erfolgt.
  • Da der CBM 71 den Datenfluss innerhalb des SOC 10 steuert, kann der Datenfluss, der mit jedem beliebigen Eintritts-Port verbunden ist, gleichermaßen gesteuert werden. Wenn das Paket 112 empfangen und in dem CBP 50 gespeichert wurde, wird dem zugehörigen Austritts-Manager 76 eine CPID bereitgestellt. Die Gesamtzahl von Datenzellen, die mit dem Datenpaket verbunden sind, wird in einem Budget-Register (nicht gezeigt) gespeichert. Wenn weitere Datenpakete 112 empfangen werden und so bezeichnet werden, dass sie zu demselben Austritts-Manager 76 gesendet werden sollen, wird der Wert des Budget-Registers, das dem zugehörigen Austritts-Manager 76 entspricht, um die Anzahl der Datenzellen 112a, 112b der empfangenen neuen Datenzellen erhöht. Das Budget-Register stellt daher dynamisch die Gesamtanzahl der Zellen dar, die so bezeichnet sind, dass sie von einem beliebigen speziellen Austritts-Port auf einem EPIC 20 gesendet werden sollen. Der CBM 71 steuert den eingehenden Strom von zusätzlichen Datenpaketen, indem er das Budget-Register mit einem Höchststand-Registerwert bzw. einem Niedrigststand-Registerwert für denselben Austritt vergleicht.
  • 8 veranschaulicht einige der Details für gleichzeitiges Filtern und Suchen eines auf der Eintrittsseite eines EPIC 20 ankommenden Pakets gemäß der vorliegenden Erfindung. 8 behandelt die Anwendung von Filterungs-, Adressauflösungs- und Regelanwendungs-Segmenten des SOC 10. Diese Funktionen werden hinsichtlich der Zulassung zum CBP gleichzeitig durchgeführt. Das Paket 112 wird am Eingangs-Port 24 des EPIC 20 empfangen. Es wird dann an den Eingangs-FIFO 142 geleitet. Sobald die ersten sechzehn Byte des Pakets im Eingangs-FIFO 142 ankommen, führt die Adressauflösungslogik eine Suche in den ARL-/S3-Tabellen 21 durch. Die Adressauflösungslogik kann eine ARL-Maschine 143 umfassen, die eine Anforderung zur Adressauflösung empfängt, um eine Suche in den ARL-/S3-Tabellen 21 einzuleiten.
  • Es folgt eine Beschreibung der Felder, die in einer ARL-Tabelle der ARL-/S3-Tabellen 21 enthalten sein können:
    • Mac Address (MAC-Adresse) Länge 48 Bit Mac-Adresse, eine Adresse, die zum Vermitteln, Erlernen und für andere Netzwerkadressfunktionen verwendet wird;
    • VLAN Tag Länge 12 Bit VLAN-Tag-ID, wie in dem Standard IEEE 802.1q für Pakete mit Tags beschrieben. Bei einem Paket ohne Tags wird dieser Wert der Port-basierten VLAN-Tabelle entnommen.
    • CosDst (Ziel-Service-Klasse) Länge 3 Bit Service-Klasse auf der Grundlage der Zieladresse. Die Service-Klasse gibt die Priorität dieses Pakets an. In dem Standard IEEE 802.1q sind 8 Prioritätsebenen beschrieben.
    • Port Number (Port-Nummer) Länge 6 Bit Die Port-Nummer bezeichnet den Port, auf dem diese MAC-Adresse erlernt wird.
    • SD_Disc Bits (Bits zum Verwerfen Quelle/Ziel) Länge 2 Bit Diese Bits geben an, ob das Paket auf der Grundlage der Quelladresse oder der Zieladresse verworfen werden soll. Der Wert 1 bedeutet, dass das Paket anhand der Quelle verworfen werden soll. Der Wert 2 bedeutet, dass das Paket anhand des Ziels verworfen werden soll.
    • C Bit Länge 1 Bit Das C-Bit gibt an, dass das Paket an den CPU-Port geleitet werden soll.
    • St Bit (Statik-Bit) Länge 1 Bit Das St-Bit gibt an, dass es sich um einen statischen Eintrag handelt (er wird nicht dynamisch erlernt) und bedeutet, dass er nicht durch Alterung verworfen werden darf. Nur die CPU 52 kann diesen Eintrag löschen.
    • Ht Bit (Treffer-Bit) Länge 1 Bit Treffer-Bit, dieses Bit wird jedes Mal gesetzt, wenn es eine Übereinstimmung mit der Quelladresse gibt. Es wird im Alterungsmechanismus verwendet.
    • CosSrc (Quell-Service-Klasse) Länge 3 Bit Service-Klasse auf der Grundlage der Quelladresse. Die Service-Klasse gibt die Priorität dieses Pakets an.
    • L3 Bit (Schicht-3-Bit) Länge 1 Bit Das Schicht-3-Bit gibt an, dass dieser Eintrag als Ergebnis der Konfiguration der Schicht-3-Schnittstelle erstellt wurde. Die MAC-Adresse in diesem Eintrag ist die MAC-Adresse der Schicht-3-Schnittstelle, und alle Pakete, die an diese MAC-Adresse adressiert sind, müssen weitergeleitet werden.
    • T Bit Länge 1 Bit Das T-Bit gibt an, dass diese MAC-Adresse von einem der Trunk-Ports erlernt wurde. Wenn es eine Übereinstimmung bezüglich der Zieladresse gibt, erfolgt die Entscheidung über den Ausgabe-Port nicht anhand der Port-Nummer in diesem Eintrag, sondern über den Trunk-Identifikationsprozess auf der Grundlage der von den RTAG-Bits angegebenen Regeln und der durch die TGID angegebenen Trunk-Gruppe.
    • TGID Länge 3 Bit Die TGID gibt die Trunk-Gruppe an, wenn das T-Bit gesetzt ist. Der SOC 10 unterstützt 6 Trunk-Gruppen pro Switch.
    • RTAG Länge 3 Bit Mit RTAG wird das Kriterium zur Trunk-Auswahl angegeben, wenn die Zieladresse mit diesem Eintrag übereinstimmt und das T-Bit in diesem Eintrag gesetzt ist. Wert 1 – auf der Grundlage der Quell-MAC-Adresse. Wert 2 – auf der Grundlage der Ziel-MAC-Adresse. Wert 3 – auf der Grundlage der Quell- und der Zieladresse. Wert 4 – auf der Grundlage der Quell-IP-Adresse. Wert 5 – auf der Grundlage der Ziel-IP-Adresse. Wert 6 – auf der Grundlage der Quell- und der Ziel-IP-Adresse.
    • SCP (Quell-Service-Klassen-Priorität) Länge 1 Bit Quell-Service-Klassen-Prioritäts-Bit – Wenn dieses Bit gesetzt ist (in dem übereinstimmenden Quell-MAC-Eintrag), hat die Service-Klasse der Quelle Priorität gegenüber der Service-Klasse des Ziels.
  • Es sei außerdem angemerkt, dass die VLAN-Tabellen 23 eine Reihe von Tabellenforrnaten aufweisen können; in diesem Dokument werden nicht alle Tabellen und Tabellenformate behandelt. Als Beispiel werden jedoch die Felder der Port-basierten VLAN-Tabelle wie folgt beschrieben:
    • Port VLAN Id Länge 12 Bit Hierbei handelt es sich um die Port-VLAN-ID, die vom Port-basierten VLAN verwendet wird.
    • Sp State (SP-Status) Länge 2 Bit Dieses Feld gibt den aktuellen Spanning-Tree-Status an. Wert 0 × 00 – Der Port ist im Status "Deaktiviert". In diesem Status werden keine Pakete angenommen, nicht einmal BPDUs. Wert 0 × 01 – Der Port ist im Status "Blockiert" oder "Empfangsbereit". In diesem Status werden außer BPDUs keine Pakete vom Port angenommen. Wert 0 × 02 – Der Port ist im Status "Lernen". In diesem Status werden die Pakete nicht an einen anderen Port weitergeleitet, werden aber zum Lernen angenommen. Wert 0 × 03 – Der Port ist im Status "Weiterleiten". In diesem Status werden die Pakete sowohl zum Lernen als auch zum Weiterleiten angenommen.
    • Port Discard Bits (Bits für das Verwerfen am Port) Länge 6 Bit Dieses Feld umfasst 6 Bit, von denen jedes das Kriterium zum Verwerfen der Pakete angibt, die an diesem Port ankommen. Hinweis: Die Bits 0 bis 3 werden nicht verwendet. Bit 4 – Wenn dieses Bit gesetzt ist, werden alle an diesem Port ankommenden Rahmen verworfen. Bit 5 – Wenn dieses Bit gesetzt ist, werden alle Rahmen mit Prioritäts-Tag gemäß 802.1q (vid = 0) und Rahmen ohne Tags, die an diesem Port ankommen, verworfen.
    • J Bit Länge 1 Bit Das J-Bit steht für Jumbo-Bit. Wenn dieses Bit gesetzt ist, sollte dieser Port Jumbo-Rahmen annehmen.
    • RTAG Länge 3 Bit Mit RTAG wird das Kriterium zur Trunk-Auswahl angegeben, wenn die Zieladresse mit diesem Eintrag übereinstimmt und das T-Bit in diesem Eintrag gesetzt ist. Wert 1 – auf der Grundlage der Quell-MAC-Adresse. Wert 2 – auf der Grundlage der Ziel-MAC-Adresse. Wert 3 – auf der Grundlage der Quell- und der Zieladresse. Wert 4 – auf der Grundlage der Quell-IP-Adresse. Wert 5 – auf der Grundlage der Ziel-IP-Adresse. Wert 6 – auf der Grundlage der Quell- und der Ziel-IP-Adresse.
    • T Bit Länge 1 Bit Dieses Bit gibt an, dass der Port ein Mitglied der Trunk-Gruppe ist.
    • C Learn Bit (C-Lern-Bit) Länge 1 Bit CPU-Lern-Bit – Wenn dieses Bit gesetzt ist, wird das Paket jedes Mal, wenn die Quelladresse erlernt wird, an die CPU gesendet.
    • PT Länge 2 Bit Dieses Bit gibt den Port-Typ an. Wert 0–10 MBit-Port. Wert 1–100 MBit-Port. Wert 2–1 GBit-Port. Wert 3 – CPU-Port.
    • VLAN Port Bitmap (VLAN-Port-Bitmuster) Länge 28 Bit Das VLAN-Port-Bitmuster gibt alle Austritts-Ports an, an denen das Paket abgehen soll.
    • B Bit Länge 1 Bit Das B-Bit ist ein BPDU-Bit. Wenn dieses Bit gesetzt ist, weist der Port BPDUs zurück. Dieses Bit wird für Trunk-Ports gesetzt, die keine BPDUs annehmen sollen.
    • TGID Länge 3 Bit Dieses Feld gibt die Trunk-Gruppe an, zu der dieser Port gehört.
    • Untagged Bitmap (Bitmuster ohne Tags) Länge 28 Bit Dieses Bitmuster gibt die Mitglieder des VLAN ohne Tag an, das heißt ob der Rahmen, der aus diesen Mitglieds-Ports heraus gesendet werden soll, ohne Tag-Header übertragen werden soll.
    • M Bit Länge 1 Bit Das M-Bit wird für die Spiegelungs-Funktionalität verwendet. Wenn dieses Bit gesetzt ist, wird das Spiegeln am Eintritt aktiviert.
  • Die ARL-Maschine 143 liest das Paket; wenn das Paket einen VLAN-Tag gemäß dem Standard IEEE 802.1q aufweist, führt die ARL-Maschine 143 eine Suche auf der Grundlage der Tag-VLAN-Tabelle 231 durch, die Bestandteil der VLAN-Tabelle 23 ist. Wenn das Paket dieses Tag nicht enthält, führt die ARL-Maschine eine VLAN-Suche auf der Grundlage der Port-basierten VLAN-Tabelle 232 durch. Sobald das VLAN für das ankommende Paket identifiziert wurde, führt die ARL-Maschine 143 eine ARL-Tabellensuche auf der Grundlage der Quell-MAC-Adresse und der Ziel-MAC-Adresse durch. Bei dieser Suche kann es sich um eine binäre Suche handeln. Wenn das Ergebnis der Zielsuche eine S3-Schnittstellen-MAC-Adresse ist, wird eine S3-Suche in einer S3-Tabelle innerhalb der ARL-/S3-Tabellen 21 durchgeführt. Wenn die S3-Suche erfolgreich ist, wird das Paket entsprechend den Paket-Weiterleitungsregeln geändert, und die ARL-Tabellen werden entsprechend der vorgenannten Beschreibung aktualisiert.
  • Um die Vorgänge des Suchens, Lernens und Vermittelns besser zu verstehen, erscheint es ratsam, nochmals die Handhabung des Pakets 112 unter Bezugnahme auf 6 zu erörtern. Wenn das Datenpaket 112 von einer Quellstation A an den Port 24a von EPIC 20a gesendet wird und für eine Zielstation B an Port 24c von EPIC 20c bestimmt ist, teilt das Eintritts-Submodul 14a das Datenpaket 112 in die Zellen 112a und 112b auf. Das Eintritts-Submodul liest dann das Paket, um die Quell-MAC-Adresse und die Ziel-MAC-Adresse zu bestimmen. Wie zuvor bereits erwähnt, führt das Eintritts-Submodul 14a, insbesondere die ARL-Maschine 143, die Suche in den geeigneten Tabellen innerhalb der ARL-/S3-Tabellen 21a und der VLAN-Tabelle 23a durch, um festzustellen, ob die Ziel-MAC-Adresse in den ARL-/S3-Tabellen 21a vorhanden ist; wenn die Adresse nicht gefunden wird, aber die VLAN-IDs für die Quelle und das Ziel identisch sind, legt das Eintritts-Submodul 14a fest, dass das Paket an alle Ports gesendet wird. Das Paket wird dann an die geeignete Zieladresse weitergegeben. Bei einer Suche nach der Quelle und einer Suche nach dem Ziel kann es sich um binäre Suchen handeln, und sie können parallel durchgeführt werden. Gleichzeitig kann die Quell-MAC-Adresse des ankommenden Pakets erlernt und daher zu einer ARL-Tabelle innerhalb der ARL-/S3-Tabellen 21a hinzugefügt (in diese eingefügt) werden. Nachdem das Paket vom Ziel empfangen wurde, wird eine Bestätigung von der Zielstation B an die Quellstation A gesendet. Da die Quell-MAC-Adresse des ankommenden Pakets von der geeigneten Tabelle von B erlernt wird, wird die Bestätigung auf geeignete Weise an den Port gesendet, auf dem sich A befindet. Wenn die Bestätigung am Port 24a empfangen wird, erlernt daher die ARL- Tabelle die Quell-MAC-Adresse von B aus dem Bestätigungspaket. Es sei angemerkt, dass die vorgenannte Schicht-2-Vermittlung durchgeführt wird, solange die VLAN-IDs (für Pakete mit Tags) der Quell-MAC-Adressen und der Ziel-MAC-Adressen identisch sind. Die S2-Vermittlung und -Suche werden daher auf der Grundlage der ersten 16 Byte eines ankommenden Pakets durchgeführt. Bei Paketen ohne Tags wird das Feld für die Port-Nummer in dem Paket anhand der Port-basierten VLAN-Tabelle innerhalb der VLAN-Tabelle 23a indiziert, und die VLAN-ID kann dann bestimmt werden. Wenn die VLAN-IDs voneinander abweichen, ist jedoch eine S3-Vermittlung erforderlich, wobei die Pakete zu einem anderen VLAN gesendet werden. Die S3-Vermittlung basiert jedoch auf dem Feld für den IP-Header des Pakets. Der IP-Header umfasst die Quell-IP-Adresse, die Ziel-IP-Adresse und die TTL (Lebenszeit).
  • Um die Schicht-3-Vermittlung besser zu verstehen, wird im Folgenden beschrieben, wie das Paket 112 von der Quellstation A an den Port 24a von EPIC 20a gesendet und dann an die Zielstation B geleitet wird; es ist jedoch davon auszugehen, dass die Station B in einem anderen VLAN angeordnet ist, was dadurch deutlich wird, dass die Quell-MAC-Adresse und die Ziel-MAC-Adresse unterschiedliche VLAN-IDs aufweisen. Die Suche nach B würde scheitern, weil sich B in einem anderen VLAN befindet, und das alleinige Senden des Pakets an alle Ports in dem VLAN würde dazu führen, dass B das Paket niemals empfangen würde. Durch die Schicht-3-Vermittlung wird daher das Überbrücken der VLAN-Grenzen ermöglicht, es erfordert allerdings das Lesen von mehr Paketinformationen als nur der MAC-Adressen für die S2-Vermittlung. Zusätzlich zum Lesen der Quell- und der Ziel-MAC-Adresse liest daher der Eintritt 14a außerdem die IP-Adresse der Quelle und des Ziels. Wie zuvor bereits angemerkt, sind Pakettypen durch IEEE-Standards und andere Standards definiert und nach dem Stand der Technik bekannt. Durch das Lesen der IP-Adresse des Ziels ist der SOC 10 in der Lage, das Paket zu einer geeigneten Router-Schnittstelle zu leiten, die mit der Ziel-IP-Adresse konsistent ist. Das Paket 112 kann daher mittels der Versandeinheit 18a an den CPS-Kanal 80 gesendet werden und ist für eine geeignete Router-Schnittstelle bestimmt (nicht gezeigt, kein Teil des SOC 10), auf der sich das Ziel B befindet. Steuerrahmen, die durch ihre Zieladresse als solche identifiziert sind, werden über den CMIC 40 an die CPU 52 gesendet. Die Ziel-MAC-Adresse ist daher die Router-MAC-Adresse für B. Die Router-MAC-Adresse kann mittels Hardware oder der Unterstützung durch die CPU 52 erlernt werden, welche eine Adressauflösungsprotokoll-Anforderung (ARP-Anforde rung) verwendet, um die Ziel-MAC-Adresse für den Router für B auf der Grundlage der IP-Adresse von B anzufordern. Durch die Verwendung der IP-Adresse kann der SOC 10 daher die Ziel-MAC-Adresse erlernen. Wenn die CPU 52 zum Erlernen verwendet wird, wird allerdings durch den Bestätigungs- und Lernvorgang nur das erste Paket dieser "langsamen" Behandlung aufgrund der Einbindung der CPU 52 unterzogen. Nachdem die geeigneten MAC-Adressen erlernt wurden, kann das Vermitteln bei Leitungsgeschwindigkeit durch die Verwendung von gleichzeitigen Tabellen-Suchvorgängen erfolgen, da die erforderlichen Informationen von den Tabellen erlernt werden. Das Implementieren der Tabellen in Silizium als zweidimensionale Arrays ermöglicht solche schnellen, gleichzeitigen Suchvorgänge. Sobald die MAC-Adresse für B erlernt wurde, ändert daher der Eintritt 14a, wenn Pakete mit der IP-Adresse für B ankommen, die IP-Adresse in die Ziel-MAC-Adresse, um die Vermittlung bei Leitungsgeschwindigkeit zu ermöglichen. Außerdem wird die Quelladresse des ankommenden Pakets in die Router-MAC-Adresse für A und nicht in die IP-Adresse für A geändert, so dass die Bestätigung von B an A schnell erfolgen kann, ohne dass hierzu eine CPU auf der Ziel-Seite verwendet zu werden braucht, um die Quell-MAC-Adresse als Ziel für die Bestätigung zu identifizieren. Außerdem wird ein TTL-Feld (Lebenszeit) in dem Paket auf geeignete Weise entsprechend dem Standard der IETF (Internet Engineering Task Force) geändert. Ein einzigartiges Merkmal des SOC 10 besteht darin, dass alle Vermittlungs-, Paketverarbeitungs- und Tabellensuchvorgänge in der Hardware durchgeführt werden, anstatt zu erfordern, dass die CPU 52 oder eine andere CPU Zeit mit der Verarbeitung von Anweisungen verbringt. Es sei angemerkt, dass die Schicht-3-Tabellen für den EPIC 20 sich ändernde Größen aufweisen können.
  • Unter nochmaliger Bezugnahme auf die Erörterung von 8 wird, sobald die ersten vierundsechzig Byte des Pakets in dem Eingangs-FIFO 142 ankommen, eine Filteranforderung an den FFP 141 gesendet. Bei dem FFP 141 handelt es sich um einen umfassenden Filtermechanismus, mit dem der SOC 10 auf jedes beliebige Feld eines Pakets von Schicht 2 bis Schicht 7 des OSI-7-Schichtenmodells einschließende und ausschließende Filter setzen kann. Filter werden zur Klassifikation von Paketen auf der Grundlage eines Protokollfelds in den Paketen verwendet. Verschiedene Aktionen können auf der Grundlage der Paketklassifikation durchgeführt werden, hierzu gehören das Verwerfen von Paketen, das Senden des Pakets an die CPU, das Senden des Pakets an andere Ports, das Senden des Pakets an bestimmte Warte schlangen entsprechend der Priorität der Service-Klasse, das Ändern des Vorrangs des Service-Typs (TOS).
  • Ein ausschließender Filter wird hauptsächlich zum Implementieren von Sicherheitsmerkmalen verwendet und erlaubt es einem Paket nur dann weiterzukommen, wenn eine Übereinstimmung mit dem Filter vorhanden ist. Wenn keine Übereinstimmung besteht, wird das Paket verworfen.
  • Es sei angemerkt, dass der SOC 10 eine einzigartige Funktion zum Behandeln von ankommenden Paketen sowohl mit als auch ohne Tags aufweist. Pakete mit Tags weisen Tags gemäß den IEEE-Standards auf und enthalten ein spezielles Prioritätsfeld für das Paket gemäß IEEE 802.1p. Pakete ohne Tags hingegen weisen kein Prioritätsfeld gemäß IEEE 802.1p auf. Auf der Grundlage entweder der Zieladresse oder der Quelladresse des Pakets, je nachdem, was für eine Übereinstimmung in einem der Tabellensuchvorgänge gefunden wurde, kann der SOC 10 einen geeigneten Wert für die Service-Klasse für das Paket zuweisen, der als Entsprechung zu einer gewichteten Priorität angesehen werden kann. Wie in der Erörterung des ARL-Tabellenformats in diesem Dokument bereits angemerkt, ist ein SCP-Bit (Quell-Service-Klassen-Prioritäts-Bit) als eines der Felder in der Tabelle enthalten. Wenn dieses SCP-Bit gesetzt ist, kann der SOC 10 auf der Grundlage eines Quellen-Service-Klassen-Werts in der ARL-Tabelle eine gewichtete Priorität zuweisen. Wenn das SCP-Bit nicht gesetzt ist, weist der SOC 10 eine Service-Klasse für das Paket auf der Grundlage des Felds für die Ziel-Service-Klassen in der ARL-Tabelle zu. Bei diesen Service-Klassen-Werten handelt es sich um drei Bit lange Felder in der ARL-Tabelle, wie bereits weiter oben in der Beschreibung der ARL-Tabellenfelder angemerkt.
  • Bei dem FFP 141 handelt es sich im Wesentlichen um eine programmierbare Regel-Maschine, die durch einen Zustandsautomaten angesteuert wird. Die von dem FFP verwendeten Filter können beispielsweise 64 (vierundsechzig) Byte lang sein, und sie werden auf ein ankommendes Paket angewendet; es kann ein beliebiger Offset verwendet werden, bei einem bevorzugten Ausführungsbeispiel wird jedoch ein Offset von null verwendet, und daher wirkt er auf die ersten 64 Byte bzw. 512 Bit eines Pakets. Die von dem Filter durchgeführten Aktionen können das Einfügen von Tags, das Zuordnen von Prioritäten, das Einfügen von TOS-Tags, das Senden des Pakets an die CPU, das Löschen des Pakets, das Weiterleiten des Pakets an einen Austritts-Port und das Senden des Pakets an einen gespiegelten Port umfassen. Die von dem FFP 141 verwendeten Filter sind durch die Regeltabelle 22 definiert. Die Regeltabelle 22 kann über den CMIC 40 von der CPU 52 programmierbar sein. Die Regeltabelle kann beispielsweise 256 Einträge lang sein und kann in einschließende und ausschließende Filter unterteilt sein, mit, wiederum beispielsweise, 128 Einträgen für einschließende Filter und 128 Einträgen für ausschließende Filter.
  • Es sei außerdem angemerkt, dass das Blockdiagramm des SOC 10 in 2 veranschaulicht, dass jeder GPIC 30 seine eigenen ARL-/S3-Tabellen 31, Regeltabelle 32 und VLAN-Tabellen 33 aufweist und dass außerdem jeder EPIC 20 ebenfalls seine eigenen ARL-/S3-Tabellen 21, Regeltabelle 22 und VLAN-Tabellen 23 aufweist. In einem bevorzugten Ausführungsbeispiel der Erfindung können jedoch zwei getrennte Module eine ARL-/S3-Tabelle und eine VLAN-Tabelle gemeinsam verwenden. Jedes Modul kann allerdings seine eigene Regeltabelle 22 aufweisen. Daher kann beispielsweise der GPIC 30a die ARL-/S3-Tabelle 21a und die VLAN-Tabelle 23a mit dem EPIC 20a gemeinsam verwenden. Analog dazu kann der GPIC 30b die ARL-/S3-Tabelle 21b und die VLAN-Tabelle 23b mit dem EPIC 20b gemeinsam verwenden. Diese gemeinsame Verwendung von Tabellen verringert die Anzahl der Gatter, die zum Implementieren der Erfindung erforderlich sind, und ermöglicht vereinfachte Such- und Synchronisationsvorgänge, wie weiter unten noch erörtert wird.
  • Zur Unterstützung der Hochgeschwindigkeitsvermittlung weist die vorliegende Erfindung verbesserte Systeme und Verfahren zum gleichzeitigen Durchführen des Such- und des Lernvorgangs auf. Der Tabellensuchvorgang hat typischerweise Vorrang vor dem Lernvorgang. Um jedoch die Leistung bei der Vermittlung zu optimieren, ist es erwünscht, etwas Bandbreite für den Lernvorgang sicherzustellen. Somit wird gemäß der vorliegenden Erfindung der Tabellenzugriff unter Verwendung von Zeitschlitzen delegiert. Unter Bezugnahme auf 9 kann beispielsweise ein Zeitsteuerungssignal (zum Beispiel ein Taktgebersignal, eine Rechteckschwingung, usw.) auf drei Zeitschlitze aufgeteilt sein. Jeder Zeitschlitz kann für das Suchen oder Lernen reserviert sein. So kann beispielsweise der Zugriff auf die Regeltabelle 22 auf der Grundlage von Zeitschlitzen des Zeitsteuerungssignals begrenzt sein. SA0 und SB0 stellen die ersten Schritte von zwei binären Suchvorgängen SA und SB dar. L0 stellt einen oben beschriebenen Lernschritt dar, wie beispielsweise einen Aktualisierungs- oder Einfügevorgang. Jeder der drei Zeitschlitze stellt einen einzelnen Zyklus dar. Wie gezeigt, besteht jeder vollständige Zyklus aus einem Lern- und einem Such zyklus. Somit ist ein Teil (Zeitschlitz) jedes Zyklus für das Durchführen von Suchfunktionen reserviert, und ein Teil jedes Zyklus ist für Lernfunktionen reserviert.
  • Wenn jedoch erlaubt wird, dass das Lernen erfolgt, während Suchvorgänge durchgeführt werden, werden dadurch einige Probleme verursacht, die nicht vernachlässigt werden dürfen (das heißt Probleme, die durch den gemeinsamen Tabellenzugriff verursacht werden). Um die Beziehung zwischen dem Lernvorgang und dem Suchvorgang besser zu verstehen, folgt als Nächstes eine kurze Erörterung der binären Suche gemäß der vorliegenden Erfindung.
  • Unter Bezugnahme auf 10 wird eine beispielhafte zu durchsuchende Tabelle 1000 gezeigt, wobei es sich um eine beliebige der bereits weiter oben beschriebenen, auf dem Chip befindlichen Tabellen handeln könnte. Wenn davon ausgegangen wird, dass die Tabelle 1000 in einer Reihenfolge sortiert ist und mit einem Index oder Schlüssel versehen ist, ist eine binäre Suche äußerst effizient. Die Schritte bei der binären Suche sind durch gekrümmte Pfeile veranschaulicht. Zunächst beginnt eine Suche in der Mitte einer Speicherbank (es sei denn, sie ist indiziert). Die Tabelle weist zum Beispiel 128 Zeilen bzw. Speichereinheiten auf (Wortzeilen, usw.). Daher beginnt die Suche bei Zeile 64. Die Suchmaschine oder Einrichtung, die die Suche steuert, wie beispielsweise der FFP 141, die PMMU 70 oder der CBM 71 oder die ARL-Logik vergleicht den in Zeile 64 gespeicherten Wert mit dem Suchkriterium. Wenn der Wert größer oder kleiner als das Suchkriterium ist, springt die Suche um eine Anzahl von Zeilen gleich 2(m-n) nach oben bzw. unten, wobei m der Logarithmus der Anzahl von Zeilen in der Tabelle ist und n die Nummer des aktuellen Suchschritts. So beginnt beispielsweise in einer Tabelle mit 128 Zeilen Schritt 1 bei Zeile 64 = 2(m-n) = 27-1 = 26. Bei Schritt 2 ist der nächste Sprung plus oder minus 25 = 32, daher springt die Suche, je nach Ergebnis des Vergleichs nach unten zu 32 oder nach oben zu 96.
  • Die Suche springt weiter, bis eine Übereinstimmung gefunden wird, das heißt, bis der Wert nicht größer oder kleiner als das Suchkriterium ist. Wenn sich beispielsweise die Übereinstimmung in einer Zeile 21 befindet, springt der Prozess in Schritt 1 von 64 zu 32, weil 21 kleiner ist als 64. Als Nächstes springt die Suche in Schritt 2 von 32 zu 16. Da 21 größer ist als 16, springt die Suche dann von 16 zu 20, dann von 20 zu 22 und schließlich in Schritt 6 von 22 zurück zu 21. Es ist zu beachten, dass die Suche insgesamt sechs Schritte benötigt. Wenn man in Betracht zieht, dass die Speicherbank 128 Zeilen enthält, wobei ein voller Durchlauf von 128 Schritten erforderlich sein könnte, um eine Übereinstimmung zu finden, ist eine binäre Suche viel effizienter.
  • Wie oben beschrieben, umfasst die ARL-/S3-Tabelle zu Alterungszwecken ein Treffer-Bit. Sowie bei Tabellensuchen Übereinstimmungen gefunden werden, werden die geeigneten Treffer-Bits in den ARL-Tabellen zu Alterungszwecken aktualisiert (Aktualisierungen von Treffer-Bits können als Teil der Suchfunktion und während der Such-Zeitschlitze durchgeführt werden). Daher können mehrere potenzielle Probleme auftreten, wenn Lernfunktionen und Suchfunktionen gleichzeitig in denselben Tabellen durchgeführt werden. Beispielsweise können Lernaktualisierungen, wie weiter unten noch beschrieben wird, Datensätze verschieben, wodurch der Suchvorgang einschließlich der Aktualisierungen von Treffer-Bits unterbrochen wird. Dies führt dazu, dass Aktualisierungen von Treffer-Bits möglicherweise nicht stimmen oder scheitern, oder dass das Erlernen möglicherweise tote Bereiche in den Suchvorgängen bewirkt. Um diese Probleme zu überwinden, ist eine spezielle Handhabung erforderlich.
  • Das erste Problem, das auftreten kann, wenn versucht wird, Such- und Lernvorgänge gleichzeitig durchzuführen, wird durch das Einfügen eines Datensatzes in die ARL-Tabelle verursacht, während gleichzeitig versucht wird, einen Datensatz in der ARL-Tabelle zu aktualisieren. Wenn beispielsweise bei einer Suche, wie zum Beispiel einer Tabellensuche für ein ankommendes Paket, eine Übereinstimmung gefunden wird, wird das Treffer-Bit für den übereinstimmenden Datensatz zu Alterungszwecken aktualisiert. Wenn jedoch während desselben Zyklus eine neue Adresse erlernt wird und daher ein neuer Datensatz in die ARL-Tabelle eingefügt wird, was wiederum dazu führen könnte, dass der aktualisierte Datensatz verschoben wird, kann die Aktualisierung des Treffer-Bits an der falschen Zeile bzw. dem falschen Datensatz erfolgen. Um dies zu verhindern, können die Lernfunktionen für den Zyklus, nachdem für eine Suche eine Übereinstimmung gefunden wurde, blockiert werden, so dass die Aktualisierung des Treffer-Bits an genau dem Datensatz vorgenommen werden kann, bei dem die Übereinstimmung aufgetreten ist.
  • Unter Bezugnahme auf 11 könnte beispielsweise während des ersten Zyklus einer Suche ein Treffer bei der Suche SA0 oder SB0 erfolgen. Daher wird während des zweiten Zyklus eine Aktualisierung des Treffer-Bits in der ARL-Tabelle durchgeführt. Während des zweiten Zyklus gibt es keine Lernaktivität, weil das Lernen blockiert ist, um zu verhindern, dass ein Einfügevorgang in die ARL-Tabelle die Aktualisierung des Treffer-Bits beeinflusst. Nach der Aktualisierung im dritten Zyklus kann der Lernvorgang fortgesetzt werden.
  • Es sei angemerkt, dass das Lernen blockiert werden kann, bis die Aktualisierung des Treffer-Bits beendet ist, oder, falls weitere Aktualisierungen für eine Übereinstimmung durchgeführt werden, bis alle auf die Suche bezogenen Aktualisierungen beendet sind. ARL-Logik oder andere Logik des Switches kann verwendet werden, um das Erlernen und die Aktualisierungen von Treffer-Bits zu überwachen, damit die Funktionen gemäß der vorliegenden Erfindung blockiert oder priorisiert werden. Interne Logik des Switches wird der Verwendung der CPU 52 vorgezogen, weil durch die Verwendung der CPU 52 zum Durchführen von Funktionen, die sich auf die Netzwerkleistung beziehen, die Gesamtleistung deutlich herabgesetzt wird. Des Weiteren kann die ARL-Logik so konfiguriert werden, dass sie Lese- und Schreibvorgänge in den verschiedenen Tabellen steuert, um Blockierungs- und Priorisierungsfunktionen gemäß der vorliegenden Erfindung durchzuführen.
  • Ein zweites Problem, das auftreten kann, wenn Such- und Lernvorgänge gleichzeitig durchgeführt werden, wird durch die Blasensortierung einer Tabelle nach einem Einfügevorgang bei gleichzeitig laufender Suche verursacht. Die Blasensortierung wird im Folgenden unter Bezugnahme auf 12 kurz beschrieben.
  • Wie oben beschrieben, können Suchvorgänge mittels binärer Suche durchgeführt werden, die es erfordert, dass die zu durchsuchenden Tabellen vor der Suche in einer Sortierreihenfolge vorliegen (oder dass die Tabelle vor der Suche vorsortiert wird). Daher müssen neue Datensätze, die in eine Tabelle eingefügt werden, an der in Sortierreihenfolge richtigen Stelle eingefügt werden. Alle Datensätze müssen nach oben oder unten verschoben werden, damit der neue Datensatz aufgenommen werden kann und die Sortierung der Tabelle beibehalten wird. Dies wird im Allgemeinen über eine Blasensortierung (Bubble Sort) erreicht.
  • Wenn beispielsweise während des Lernvorgangs ein neuer Datensatz in die Tabelle 1000 eingefügt wird, zum Beispiel nachdem eine neue mit dem SOC 10 verbundene Adresse gefunden wurde, wird eine Blasensortierung durchgeführt, um stufenweise alle Zeilen zu aktualisieren, um die Sortierung der Tabelle 1000 beizubehal ten. Wenn eine neue Adresse in Zeile 20 der Tabelle 1000 eingefügt werden soll, wird Zeile 20 ausgelesen und in Zeile 19 eingefügt. Außerdem wird Zeile 19 ausgelesen und in Zeile 18 eingefügt, usw. Um die Blasensortierung erfolgreich durchzuführen wird aus praktischen Gründen die Sortierung oben in der Tabelle begonnen und nach unten bis zu dem neu eingefügten Datensatz fortgesetzt. Demgemäß wird Zeile 2 ausgelesen und in Zeile 1 geschrieben, Zeile 3 wird ausgelesen und in Zeile 2 geschrieben, und so weiter bis zu Zeile 20. Nachdem Zeile 20 ausgelesen und in Zeile 19 geschrieben wurde, wird der neue Datensatz in Zeile 20 eingefügt. Die Fachleute mit normalen Kenntnissen auf diesem Gebiet werden eine Blasensortierung leicht verstehen und erkennen, dass viele Ausbildungen der Blasensortierung mit der vorliegenden Erfindung verwendet werden können. Da die Datensätze in der Tabelle wie Blasen nach oben bewegt werden, wird dieser Vorgang oft als Blasensortierung bzw. Bubbling bezeichnet.
  • Im Folgenden wird ein Beispiel dafür genannt, wie die Blasensortierung das Suchen und Erlernen gemäß der vorliegenden Erfindung beeinträchtigt. Unter nochmaliger Bezugnahme auf 10 springt die Suche während einer binären Suche in Abhängigkeit von dem aktuellen Schritt eine Anzahl von Zeilen nach oben oder nach unten. Die Fachleute mit normalen Kenntnissen auf diesem Gebiet werden verstehen, dass die Datensätze bei einer Blasensortierung nach einer Einfügung in die Tabelle von der Einfügestelle aus oder zu der Einfügestelle hin wie Blasen nach oben bzw. unten sortiert werden. Wenn eine Blasensortierung gleichzeitig mit einer Suche in derselben Tabelle erfolgt, kann dies daher zu toten Bereichen führen. Wenn beispielsweise davon ausgegangen wird, dass bei Schritt 1 die Bestimmung erfolgt, dass ein zu suchender Datensatz sich unterhalb von Zeile 64 befindet, springt die Suche von 64 auf 32. Als Nächstes wird in Schritt 2 bestimmt, dass sich der zu suchende Datensatz oberhalb von Zeile 32 befindet, und deshalb springt die Suche zu Zeile 16. Wenn sich der zu suchende Datensatz jedoch während des Zyklus, in dem in dem Suchvorgang bestimmt wurde, wohin der Sprung für Schritt 3 ausgeführt werden soll, in Zeile 17 befunden hat, dann aber durch die Blasensortierung in Zeile 16 verschoben wurde, wird die Suche den Datensatz niemals finden können. Dies liegt daran, dass eine binäre Suche nicht in der Lage ist, mathematisch in eine Zeile zurückzukehren, die bereits geprüft worden ist. In dem soeben genannten Beispiel würde in dem Suchvorgang versucht, von Zeile 16 zu Zeile 24 zu springen, dann wieder nach unten in Zeile 28, dann nach unten in Zeile 30 und dann die Suche bei Zeile 31 beenden, ohne jemals tatsächlich zu Zeile 32 zurückzukehren. Daher kann eine Blasensortierung, die gleichzeitig mit einer binären Suche durchgeführt wird, tote Bereiche verursachen und bewirken, dass eine Suche fehlschlägt.
  • Um zu verhindern, dass die Suche fehlschlägt, können Vorsichtsmaßnahmen getroffen werden. Eine Möglichkeit, um zu verhindern, dass die Blasensortierung eine binäre Suche stört, besteht darin, die Schreibvorgänge der Blasensuche mittels Snooping zu überwachen. ARL-Logik kann so konfiguriert werden, dass sie Suchtreffer und Aktualisierungen an der ARL-Tabelle überwacht. Treffern bei der Überwachung (Lesevorgängen) kann eine höhere Priorität eingeräumt werden als regulären Treffern bei der binären Suche. Wenn ein bei der Suche erfolgter Treffer und ein bei der Blasensortierung erfolgter Treffer gleichzeitig für denselben Datensatz vorkommen, bedeutet dies, dass die mit dem Treffer aus der Blasensortierung in Beziehung stehenden Daten von der ARL-Logik für beide Funktionen verwendet werden, weil diese Daten korrekt sein werden (das heißt, weil die Daten dabei sind, verschoben zu werden). Wenn die Trefferergebnisse der regulären Suche verwendet werden, könnte weitere Logik in dem Switch, welcher die Daten empfängt, beeinträchtigt werden, weil die Daten über einen Blasensortier-Schreibvorgang dabei sind, verschoben zu werden. Die toten Bereiche einer Suche sind bei jedem Suchschritt nur einen Zyklus weit entfernt. Daher brauchen Aktualisierungen für eine bestimmte Suche immer nur einen Schritt weiter überwacht zu werden. Wenn beispielsweise die Suche im nächsten Schritt bei Zeile 32 ankommt, brauchen nur die Zeilen 31, 32 und 33 überwacht zu werden.
  • Wie oben beschrieben, werden während einer Blasensortierung durch den Lernvorgang Lese- und Schreibvorgänge in alternierenden Zyklen durchgeführt, bis die Tabelle nach einer Einfügung wieder ordnungsgemäß sortiert ist. Wenn wie oben beschrieben ein Schreibvorgang zu einer Stelle geht, den eine Suchanfrage zu treffen versucht, wird der Schreibvorgang blockiert. Um den Schreibvorgang zu blockieren, kann der Schreibvorgang einfach in einen Lesevorgang geändert werden, und der Schreibvorgang kann in dem nächsten Zyklus durchgeführt werden. Demgemäß kann die ARL-Logik des SOC 10 so konfiguriert sein, dass sie Überwachungs- und Blockiervorgänge durchführt, wie in diesem Dokument beschrieben.
  • Unter Bezugnahme auf 13 ist ein Ablaufdiagramm eines Verfahrens zum Durchführen eines gleichzeitigen Such- und Lernvorgangs innerhalb einer Netzwerkvorrichtung, wie einem Switch, gezeigt. Die Verarbeitung beginnt bei Schritt S131 und wird als Nächstes bei Schritt S132 in einer Netzwerkvorrichtung fortgesetzt. In einer Netzwerkvorrichtung, wie dem oben unter Bezugnahme auf 1 bis 8 beschriebenen Switch SOC 10, wird ein Datenpaket an einem Netzwerk-Port empfangen. Wie oben beschrieben, muss das Datenpaket behandelt werden. In Schritt S133 kann eine Reihe von Suchvorgängen in ARL-Tabellen eingeleitet werden, um eine Position zu finden. Der Switch SOC 10 ist so konfiguriert, dass er, während Datenpakete empfangen und an Netzwerkvorrichtungen vermittelt werden, außerdem einen Lernvorgang durchführt. Wie bereits weiter oben beschrieben, können Such- und Lernvorgänge gleichzeitig durchgeführt werden, indem für jede Funktion Zeitschlitze eines Zeitsteuerungssignals reserviert werden. Beispielsweise kann jede dritte Rechteckschwingung eines Zeitsteuerungssignals für den Lernvorgang reserviert sein, während zwei von drei Schwingungen für die parallelen Suchvorgänge reserviert sein können. In diesem Fall würde ein vollständiger Zyklus drei Zeitschlitze umfassen, von denen zwei für den Suchvorgang reserviert wären und einer für den Lernvorgang.
  • In Schritt S134 werden Aktualisierungen mittels Snooping überwacht. Wie oben beschrieben, kann die ARL-Logik oder weitere Logik innerhalb des Switches so konfiguriert werden, dass sie Aktualisierungen in der Tabelle einschließlich Aktualisierungen durch Treffer-Bits und Aktualisierungen durch Blasensortierung überwacht. In Schritt S135 können Aktualisierungen blockiert werden, nachdem ein Suchvorgang eine Übereinstimmung geliefert hat. Sobald ein Suchvorgang, wie bereits weiter oben beschrieben, eine Übereinstimmung liefert (das heißt eine Zieladresse für ein Datenpaket findet), wird im nächsten Zyklus das Treffer-Bit für die Übereinstimmung aktualisiert. Demgemäß wird, nachdem eine Übereinstimmung gefunden wurde, der Lernvorgang in dem Zyklus blockiert, um zu verhindern, dass die Aktualisierung des Treffer-Bits fehlschlägt.
  • Als Nächstes werden in Schritt S136 Aktualisierungen blockiert, wenn sie Zeilen betreffen, die sich innerhalb eines Suchzyklus für einen beliebigen, derzeit durchgeführten Suchvorgang befinden. Wie bereits weiter oben beschrieben, springt eine binäre Suche beispielsweise in der Tabelle nach oben und nach unten, und die Blasensortierung kann tote Bereiche verursachen, wenn der Datensatz während des nächsten Suchzyklus an den Rand verschoben wird. Deshalb werden Aktualisierungen überwacht, und wenn bestimmt wird, dass eine Aktualisierung einer Zeile inner halb eines Suchzyklus (das heißt im nächsten Sprung) erfolgen soll, wird die Aktualisierung einen Zyklus lang blockiert. Die Verarbeitung endet dann bei Schritt S137.
  • Die Fachleute mit normalen Kenntnissen auf diesem Gebiet werden leicht verstehen, dass das vorgenannte System und Verfahren zum Durchführen einer schlüsselbasierten binären Suche gemäß der vorliegenden Erfindung auf viele auf dem Chip ablaufende Suchvorgänge anwendbar sein können. Demgemäß soll die vorliegende Erfindung nicht auf die oben beschriebenen Ausführungsbeispiele oder Netzwerk-Switches beschränkt sein.
  • Obwohl die Erfindung auf der Grundlage dieser bevorzugten Ausführungsbeispiele beschrieben wurde, sollte es für Fachleute auf diesem Gebiet offensichtlich sein, dass bestimmte Modifikationen, Variationen und Alternativkonstruktionen offensichtlich wären. Um die Grenzen der Erfindung zu bestimmen, ist daher Bezug auf die angehängten Ansprüche zu nehmen.

Claims (17)

  1. Netzwerkvorrichtung mit wenigstens einem Netzwerk-Port; einem Taktgebermittel zum Generieren eines Zeitsteuerungssignals, das Zyklen mit einer Anzahl von Zeitschlitzen aufweist; Tabellenmitteln für die Adressauflösungslogik, ARL, (21, 31, 22, 32, 23, 33, 1000) zum Speichern und Verwalten von Netzwerkadressdaten; und Mitteln für die Adressauflösungslogik, ARL, zum Koppeln der ARL-Tabellenmittel (21, 31, 22, 32, 23, 33, 1000) und des Taktgebers sowie zum Suchen in den ARL-Tabellenmitteln (21, 31, 22, 32, 23, 33, 1000), dadurch gekennzeichnet, dass das Suchen über wenigstens zwei Zyklen des Zeitsteuerungssignals durchge-führt wird; das Mittel für die Adressauflösungslogik so konfiguriert ist, dass es Aktualisierungen und Einfügungen an den ARL-Tabellenmitteln (21, 31, 22, 32, 23, 33, 1000) auf der Grundlage einer Lernfunktion durchführt, wobei das Suchen und die Aktualisierungen und Einfügungen innerhalb desselben Zyklus des Zeitsteuerungssignals während alternierender Zeitschlitze des Zeitsteuerungssignals durchgeführt werden; wobei das Mittel für die Adressauflösungslogik so konfiguriert ist, dass es die ARL-Tabellenmittel (21, 31, 22, 32, 23, 33, 1000) auf der Grundlage eines an einem Port (24) des wenigstens einen Ports empfangenen Datenpakets (112) nach einer Zieladresse durchsucht, und wenn der Suchvorgang eine Zieladresse zurückgibt, wird das Mittel für die Adressauflösungslogik so konfiguriert, dass es einen zugehörigen Datensatz der ARL-Tabellenmittel (21, 31, 22, 32, 23, 33, 1000) auf der Grundlage der Lernfunktion aktualisiert.
  2. Netzwerkvorrichtung nach Anspruch 1, wobei das Mittel für die Adressauflösungslogik so konfiguriert ist, dass es mehrere Suchvorgänge in den ARL-Tabellenmitteln (21, 31, 22, 32, 23, 33, 1000) durchführt und die Aktualisierungen und Einfügungen gleichzeitig während alternierender Zeitschlitze des Zeitsteuerungssignals durchführt, und dass es die Aktualisierungen und Einfügungen auf der Grundlage von wenigstens einem Ergebnis der mehreren Suchvorgänge durchführt.
  3. Netzwerkvorrichtung nach Anspruch 1, wobei das Mittel für die Adressauflösungslogik so konfiguriert ist, dass es einen Datenlesevorgang nutzt, der sich auf Lern-Aktualisierungen für Suchvorgänge bezieht, wenn ein Suchvorgang und eine Aktualisierung versuchen, in einem selben Zyklus einen selben Datensatz zu lesen.
  4. Netzwerkvorrichtung nach Anspruch 1, wobei das Mittel für die Adressauflösungslogik so konfiguriert ist, dass es auf die Lernfunktion bezogene Aktualisierungen und Einfügungen während eines Suchzyklus des Zeitsteuerungssignals blockiert, wenn bei einem Suchvorgang eine Zieladresse gefunden wird.
  5. Netzwerkvorrichtung nach Anspruch 1, wobei das Mittel für die Adressauflösungslogik so konfiguriert ist, dass es während des Lernens Datensätze in das ARL-Tabellenmittel (21, 31, 22, 32, 23, 33, 1000) einfügt, eine Blasensortierung durchführt, wenn es einen Datensatz in die ARL-Tabellenmittel (21, 31, 22, 32, 23, 33, 1000) einfügt, durch die Blasensortierung verursachte Aktualisierungen durch Snooping überwacht, und alle Aktualisierungen an Datensätzen innerhalb der ARL-Tabellenmittel (21, 31, 22, 32, 23, 33, 1000) innerhalb eines Suchschritts eines gerade durchgeführten Suchvorgangs blockiert.
  6. Netzwerkvorrichtung nach Anspruch 5, wobei die Suchvorgänge binäre Suchvorgänge umfassen.
  7. Netzwerkvorrichtung nach Anspruch 4, wobei das Mittel für die Adressauflösungslogik so konfiguriert ist, dass es von der Blasensortierung verursachte Aktualisierungen während eines Suchzyklus des Zeitsteuerungssignals blockiert, wenn bei einem Suchvorgang eine passende Zieladresse für das Datenpaket (112) gefunden wird.
  8. Netzwerkvorrichtung nach Anspruch 1, wobei das Mittel für die Adressauflösungslogik so konfiguriert ist, dass es Aktualisierungen blockiert, indem es einen Datenschreibvorgang, der mit einer gerade blockierten Aktualisierung verbunden ist, während eines Zyklus des Zeitsteuerungssignals in einen Datenlesevorgang ändert.
  9. Netzwerkvorrichtung nach Anspruch 7, wobei das Mittel für die Adressauflösungslogik so konfiguriert ist, dass es Aktualisierungen blockiert, indem es einen Datenschreibvorgang, der mit einer gerade blockierten Aktualisierung verbunden ist, während eines Zyklus des Zeitsteuerungssignals in einen Datenlesevorgang ändert.
  10. Verfahren zum gleichzeitigen Durchführen von Such- und Lernvorgängen innerhalb einer Netzwerkvorrichtung, wobei das Verfahren folgende Schritte aufweist: Bereitstellen einer Netzwerkvorrichtung mit wenigstens einem Port, ARL-Tabellen (21, 31, 22, 32, 23, 33, 1000), die so konfiguriert sind, dass sie auf Port-Adressen der Netzwerkvorrichtung bezogene Daten speichern und verwalten, sowie Adressauflösungslogik, die so konfiguriert ist, dass sie Daten auf der Grundlage einer Lernfunktion in den ARL-Tabellen (21, 31, 22, 32, 23, 33, 1000) aktualisiert und in diese einfügt; Empfangen eines Zeitsteuerungssignals, das Zyklen mit einer Anzahl von Zeitschlitzen aufweist; Empfangen eines Datenpakets (112) an einem Port (24) des wenigstens einen Ports; Einleiten eines Suchvorgangs in den ARL-Tabellen (21, 31, 22, 32, 23, 33, 1000) auf der Grundlage des Pakets, dadurch gekennzeichnet, dass der Suchvorgang über wenigstens zwei Zyklen des Zeitsteuerungssignals durchgeführt wird; es die auf die Lernfunktion bezogenen Such- und Aktualisierungsvorgänge an den ARL-Tabellen (21, 31, 22, 32, 23, 33, 1000) innerhalb desselben Zyklus des Zeitsteuerungssignals durchführt, wobei die Such- und Aktualisierungsvorgänge während alternierender Zeitschlitze des Zeitsteuerungssignals durchgeführt werden.
  11. Verfahren nach Anspruch 10, wobei der Schritt des Empfangens das Empfangen einer Vielzahl von Datenpaketen (112) an einer Vielzahl von Ports des wenigstens einen Ports (24) umfasst, und der Schritt des Einleitens das parallele Einleiten einer Vielzahl von Suchvorgängen auf der Grundlage der Vielzahl von Datenpaketen (112) umfasst.
  12. Verfahren nach Anspruch 10, das ferner folgende Schritte aufweist: Bestimmen, ob ein auf einen Suchvorgang bezogener Datenlesevorgang denselben Datensatz als Treffer findet wie ein auf eine Lern-Aktualisierung bezogener Datenlesevorgang, und Verwenden der Daten des auf die Lern-Aktualisierung bezogenen Datenlesevorgangs für den Suchvorgang.
  13. Verfahren nach Anspruch 10, das ferner den folgenden Schritt aufweist: Blockieren der Aktualisierungen während eines Suchzyklus des Zeitsteuerungssignals, nachdem bei einem beliebigen Suchvorgang eine passende Entsprechung gefunden wurde.
  14. Verfahren nach Anspruch 12, wobei der Schritt des Verwendens das Verwerfen aller Daten umfasst, die von dem auf einen Suchvorgang bezogenen Datenlesevorgang gelesen wurden.
  15. Verfahren nach Anspruch 13, wobei das Mittel für die Adressauflösungslogik so konfiguriert ist, dass es eine Blasensortierung durchführt, wenn es einen Datensatz in das Adressspeichermittel einfügt, und der Schritt des Einleitens eines Suchvorgangs das Einleiten einer Vielzahl von Suchvorgängen umfasst, und der Schritt des Blockierens das Blockieren von auf die Blasensortierung bezogene Suchvorgängen während eines Suchzyklus des Zeitsteuerungssignals umfasst, nachdem bei einem beliebigen Suchvorgang eine passende Entsprechung gefunden wurde.
  16. Verfahren nach Anspruch 13, wobei der Schritt des Blockierens das Ändern eines auf eine Aktualisierung bezogenen Schreibvorgangs während eines Zyklus des Zeitsteuerungssignals in einen Lesevorgang umfasst.
  17. Verfahren nach Anspruch 15, wobei der Schritt des Blockierens das Ändern eines auf eine Aktualisierung bezogenen Schreibvorgangs während eines Zyklus des Zeitsteuerungssignals in einen Lesevorgang umfasst.
DE60217572T 2001-03-07 2002-03-01 System und Verfahren zum zeitschlitzbasierten Erlernen und Durchsuchen von ARL Tabellen unter Verwendung von Schreib-snoop Expired - Lifetime DE60217572T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US27351501P 2001-03-07 2001-03-07
US273515P 2001-03-07
US83594P 2002-02-27
US10/083,594 US6981058B2 (en) 2001-03-07 2002-02-27 System and method for slot based ARL table learning with concurrent table search using write snoop

Publications (2)

Publication Number Publication Date
DE60217572D1 DE60217572D1 (de) 2007-03-08
DE60217572T2 true DE60217572T2 (de) 2007-10-18

Family

ID=26769472

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60217572T Expired - Lifetime DE60217572T2 (de) 2001-03-07 2002-03-01 System und Verfahren zum zeitschlitzbasierten Erlernen und Durchsuchen von ARL Tabellen unter Verwendung von Schreib-snoop

Country Status (4)

Country Link
US (1) US6981058B2 (de)
EP (1) EP1253765B1 (de)
AT (1) ATE352149T1 (de)
DE (1) DE60217572T2 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7660292B2 (en) * 2002-06-27 2010-02-09 Broadcom Corporation System and method for isolating network clients
US7035995B2 (en) * 2002-12-11 2006-04-25 Lsi Logic Corporation Method and apparatus for performing a high speed binary search in time critical environments
US20050013261A1 (en) * 2003-07-18 2005-01-20 Seaman Michael John Reducing address learning in virtual bridged local area networks
KR20090031022A (ko) * 2007-09-21 2009-03-25 삼성전자주식회사 온 칩 네트워크 제어 장치 및 방법
US8949260B2 (en) * 2009-10-09 2015-02-03 Ricoh Co., Ltd. Method and apparatus for secure and oblivious document matching
US9773036B2 (en) * 2014-05-28 2017-09-26 Cavium, Inc. Method and apparatus for table aging in a network switch

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69319757T2 (de) * 1992-01-10 1999-04-15 Digital Equipment Corp Verfahren zur Verbindung einer Leitungskarte mit einer Adressenerkennungseinheit
US5940597A (en) * 1995-01-11 1999-08-17 Sony Corporation Method and apparatus for periodically updating entries in a content addressable memory
US5892922A (en) * 1997-02-28 1999-04-06 3Com Corporation Virtual local area network memory access system
US6308218B1 (en) * 1997-09-17 2001-10-23 Sony Corporation Address look-up mechanism in a multi-port bridge for a local area network
US6751225B1 (en) * 1997-09-17 2004-06-15 Sony Corporation Port within a multi-port bridge including a buffer for storing routing information for data packets received in the port
US6446173B1 (en) * 1997-09-17 2002-09-03 Sony Corporation Memory controller in a multi-port bridge for a local area network
US6122670A (en) * 1997-10-30 2000-09-19 Tsi Telsys, Inc. Apparatus and method for constructing data for transmission within a reliable communication protocol by performing portions of the protocol suite concurrently
US6049834A (en) * 1998-05-08 2000-04-11 Cisco Technology, Inc. Layer 3 switch unicast protocol
US6683885B1 (en) * 1999-02-24 2004-01-27 Hitachi, Ltd. Network relaying apparatus and network relaying method
DE60031515T2 (de) * 1999-03-17 2007-08-23 Broadcom Corp., Irvine Netzwerkvermittlung
AU6214300A (en) * 1999-07-13 2001-01-30 Alteon Web Systems, Inc. Method and apparatus for conducting the ip longest prefix match search
US6678274B1 (en) * 1999-07-30 2004-01-13 Riverstone Networks, Inc. Method and system for managing forwarding tables
US6798777B1 (en) * 2000-04-17 2004-09-28 Juniper Networks, Inc. Filtering and route lookup in a switching device
US6820134B1 (en) * 2000-12-28 2004-11-16 Cisco Technology, Inc. Optimizing flooding of information in link-state routing protocol
US6813620B2 (en) * 2001-03-07 2004-11-02 Broadcom Corporation Binary search engine and method

Also Published As

Publication number Publication date
ATE352149T1 (de) 2007-02-15
US6981058B2 (en) 2005-12-27
EP1253765A3 (de) 2005-12-07
DE60217572D1 (de) 2007-03-08
US20020133623A1 (en) 2002-09-19
EP1253765A2 (de) 2002-10-30
EP1253765B1 (de) 2007-01-17

Similar Documents

Publication Publication Date Title
DE60133352T2 (de) Gebundene Netzvermittlungskonfiguration
DE60126222T2 (de) Verbundene Netzvermittlungskonfiguration
DE60127794T2 (de) Gebundene Netzschalterkonfiguration
DE60010328T2 (de) Spiegelung in einer netzwerkvermittlungsstapelanordnung
DE60126223T2 (de) Anordnung zur Verbindung von Netzvermittlungsstellen
DE60005993T2 (de) Verfahren und netzwerkvermittlungsstelle mit datenserialisierung durch gefahrlose mehrstufige störungsfreie multiplexierung
DE60309947T2 (de) Hochgeschwindigkeitsprotokoll für die Verbindung von modularen Netzwerkelementen
DE60031515T2 (de) Netzwerkvermittlung
DE60115154T2 (de) Verfahren und Vorrichtung zum Datenrahmenweiterleiten in einer Vermittlungsstelle
DE60212916T2 (de) Verfahren und Vorrichtung zum Ermöglichen von Zugriffen in einer Vermittlungsstelle
DE60103789T2 (de) Wiederabbildung von Prioritäten basierend auf einen virtuellen Bündelwert für eine Datenkommunikationsvermittlungsstelle
DE69819303T2 (de) Verfahren und vorrichtung zur übertragung von mehrfachkopien durch vervielfältigung von datenidentifikatoren
DE69817328T2 (de) Warteschlangenstruktur und -verfahren zur prioritätszuteilung von rahmen in einem netzwerkkoppelfeld
DE60120790T2 (de) Methode und gerät zum durchsuchen von tabellen in hoher geschwindigkeit
US7593403B2 (en) Stacked network switch configuration
DE69823483T2 (de) Mehrfachkopiewarteschlangestruktur mit einem suchbaren cachespeicherbereich
DE60030737T2 (de) Hochleistungs-Vermittlungselement und -Vermittlungssystem
DE69832769T2 (de) Netzwerkkommunikationsvorrichtung mit gebundenen Toren für erhöhte Bandbreite
DE102005032479B4 (de) Fernsteuerung eines Vermittlungsknotens in einem Stapel von Vermittlungsknoten
US6842457B1 (en) Flexible DMA descriptor support
DE60112011T2 (de) Verfahren und Vorrichtung zum Filtern von Paketen basierend auf Datenströme unter Verwendung von Addressentabellen
DE69937598T2 (de) Auf Identifikationsmarken basierendes Paketvermittlungssystem
US7764674B2 (en) Address resolution snoop support for CPU
DE60317155T2 (de) Netzwerkeinheiten zur Verwendung in und Organisation von Kaskadensystemen
US20010012294A1 (en) Network switching architecture with fast filtering processor

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