DE60126533T2 - Vermittlungsstelle mit einer Speicherverwaltungeinheit zur Verbesserung der Flusssteurung - Google Patents

Vermittlungsstelle mit einer Speicherverwaltungeinheit zur Verbesserung der Flusssteurung Download PDF

Info

Publication number
DE60126533T2
DE60126533T2 DE60126533T DE60126533T DE60126533T2 DE 60126533 T2 DE60126533 T2 DE 60126533T2 DE 60126533 T DE60126533 T DE 60126533T DE 60126533 T DE60126533 T DE 60126533T DE 60126533 T2 DE60126533 T2 DE 60126533T2
Authority
DE
Germany
Prior art keywords
packet
port
data
queue
package
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
DE60126533T
Other languages
English (en)
Other versions
DE60126533D1 (de
Inventor
Mohan.Broadcom Corporation San Jose Kalkunte
Shekhar.Broadcom Corporation San Jose Ambe
Soma.Broadcom Corporation San Jose Pullela
San Jose Lund Martin.Broadcom Corporation
San Jose Kadambi Shiri.Broadcom Corporation
Jim.Broadcom Corporation Irvine Battle
Daniel.Broadcom Corporation Irvine Tai
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
Application granted granted Critical
Publication of DE60126533D1 publication Critical patent/DE60126533D1/de
Publication of DE60126533T2 publication Critical patent/DE60126533T2/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
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • H04L45/245Link aggregation, e.g. trunking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2408Traffic characterised by specific attributes, e.g. priority or QoS for supporting different services, e.g. a differentiated services [DiffServ] type of service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2425Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/245Traffic characterised by specific attributes, e.g. priority or QoS using preemption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/286Time to live
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6205Arrangements for avoiding head of line blocking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6215Individual queue per QOS, rate or priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • H04L47/6225Fixed service order, e.g. Round Robin
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • H04L49/203ATM switching fabrics with multicast or broadcast capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • H04L49/309Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • H04L49/352Gigabit ethernet switching [GBPS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/608ATM switches adapted to switch variable length packets, e.g. IP packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
    • H04L49/9094Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1881Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with schedule organisation, e.g. priority, sequence management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5651Priority, marking, classes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5665Interaction of ATM with other protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management
    • H04L2012/5683Buffer or queue management for avoiding head of line blocking
    • 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/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/205Quality of Service based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Description

  • BEZUGNAHME AUF VERWANDTE ANMELDUNGEN:
  • Die vorliegende Anmeldung beansprucht die Priorität der vorläufigen US-Patentanmeldung mit der laufenden Eingangsnummer 60/212,592, eingereicht am 19. Juni 2000, und der vorläufigen US-Patentanmeldung mit der laufenden Eingangsnummer 60/229,305, eingereicht am 1. September 2000.
  • HINTERGRUND DER ERFINDUNG
  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft eine Vorrichtung zur Hochleistungsvermittlung (High Performance Switching) in lokalen Kommunikationsnetzwerken wie z.B. Token Ring, ATM, Ethernet, Fast Ethernet und 1- und 10-Gigabit-Ethernet-Umgebungen, die allgemein als LANs bekannt sind. Insbesondere betrifft die Erfindung eine neue Vermittlungsarchitektur in einer integrierten, modularen Ein-Chip-Lösung, die auf einem Halbleitersubstrat wie etwa einem Siliziumchip implementiert werden kann, sowie eine Switching-Fabric (Vermittlungsstelle), die eine schnelle Kommunikation zwischen den Switches erlaubt.
  • BESCHREIBUNG DES STANDES DER TECHNIK
  • Da sich die Computerleistung in den letzten Jahren gesteigert hat, sind die Anforderungen an Computernetzwerke beträchtlich gestiegen; schnellere Computerprozessoren und höhere Speicherfähigkeiten erfordern Netzwerke mit hohen Bandbreitenfähigkeiten, um einen Hochgeschwindigkeitstransfer von beträchtlichen Mengen an Daten zu ermöglichen. Die bekannte Ethernet-Technologie, die auf zahlreichen IEEE-Ethernet-Standards beruht, ist ein Beispiel für eine Computervernetzungstechnologie, die bis heute derart modifiziert und verbessert werden konnte, dass sie eine lebensfähige Rechentechnologie bleibt. Eine vollständigere Diskussion von Netzwerksystemen des Standes der Technik kann zum Beispiel in "SWITCHED AND FAST ETHERNET" von Breyer und Riley (Ziff-Davis, 1996) und in zahlreichen IEEE-Veröffentlichungen gefunden werden, die sich auf die IEEE-802-Standards beziehen. Auf der Grundlage des "Open Systems Interconnect (OSI)"-7-Schichten-Referenzmodells sind die Netzwerkfähigkeiten durch die Entwicklung von Verstärkern (repeaters), Brücken (bridges), Routern, und neuerdings "Switches" gewachsen, die mit verschiedenen Arten von Kommunikationsmedien arbeiten. Grobdraht (thickwire), Dünndraht (thinwire), verdrilltes Leitungspaar (twisted pair) und Glasfasern sind Beispiele für Medien, die bis heute für Computernetzwerke verwendet werden. Switches sind, wenn sie die Computervernetzung und das Ethernet betreffen, Vorrichtungen auf Hardwarebasis, die den Fluss von Datenpaketen oder Zellen auf der Grundlage von Zieladressinformationen steuern, die in jedem Paket zur Verfügung stehen. Ein richtig ausgelegter und implementierter Switch sollte in der Lage sein, ein Paket zu empfangen und das Paket an einen geeigneten Ausgangsport mit einer Geschwindigkeit zu vermitteln, die als Leitungsgeschwindigkeit (wire speed, line speed) bezeichnet wird, welches die maximale Geschwindigkeit ist, zu der das spezielle Netzwerk fähig ist.
  • Die Grund-Ethernet-Leitungsgeschwindigkeit beträgt bis zu 10 Megabits pro Sekunde, und bei dem Fast Ethernet beträgt diese bis zu 100 Megabits pro Sekunde. Das neueste Ethernet wird als ein 10-Gigabit-Ethernet bezeichnet, und es ist in der Lage, Daten über ein Netzwerk mit einer Geschwindigkeit von bis zu 1.000 Megabits pro Sekunde zu übertragen. Da die Geschwindigkeit höher geworden ist, sind Entwurfsbeschränkungen und Entwurfsanforderungen, was das Beachten von zweckdienlichen Entwurfs- und Protokollregeln und das Bereitstellen einer kostengünstigen kommerziell lebensfähigen Lösung betrifft, immer komplexer geworden. Zum Beispiel benötigt die Hochgeschwindigkeitsvermittlung einen Hochgeschwindigkeitsspeicher, um ein geeignetes Puffern von Paketdaten vorzusehen; ein herkömmliches dynamisches RAM (Dynamic Random Access Memory (DRAM)) ist relativ langsam und benötigt ein Hardware-gesteuertes Auffrischen. Deshalb führt die Geschwindigkeit von DRAMs als Pufferspeicher bei der Netzwerkvermittlung zum Verlust von wertvoller Zeit, und es wird beinahe unmöglich, den Switch oder das Netzwerk bei Leitungsgeschwindigkeit zu betreiben.
  • Außerdem sollte die Einbeziehung einer externen Zentraleinheit (CPU) verhindert werden, da die Einbeziehung einer CPU es auch beinahe unmöglich macht, den Switch bei Leitungsgeschwindigkeit zu betreiben. Da außerdem Netz-Switches in Bezug darauf, dass Regeltabellen und eine Speichersteuerung benötigt werden, zusehends komplizierter geworden sind, ist eine komplexe Multichip-Lösung notwendig, die einen logischen Schaltungsaufbau benötigt, der manchmal als Klebstoff-Logikschaltung (glue logic circuitry) bezeichnet wird, um zu ermöglichen, dass die verschiedenen Chips miteinander kommunizieren können. Außerdem kann die Einrichtung, über die die Elemente miteinander kommunizieren, die Betriebsgeschwindigkeit des Switch begrenzen, wenn Elemente so ausgelegt sind, dass sie auf diese Kommunikationen warten.
  • Unter Bezugnahme auf das OSI-7-Schichten-Referenzmodell, das vorher diskutiert worden ist, besitzen die höheren Schichten typischerweise mehr Informationen. Verschiedene Arten von Produkten stehen zur Durchführung der vermittlungsbezogenen Funktionen auf den verschiedenen Schichten des OSI-Modells zur Verfügung. Verteiler (hubs) oder Verstärker (repeaters) arbeiten bei Schicht Eins, und im Wesentlichen kopieren und "rundsenden" sie ankommende Daten zu einer Vielzahl von Speichen des Verteilers. Vermittlungsbezogene Vorrichtungen der Schicht 2 werden normalerweise als Multiport-Brücken bezeichnet und sind in der Lage, zwei separate Netzwerke zu überbrücken. Brücken können eine Tabelle von Weiterleitungsregeln auf der Grundlage dessen aufbauen, welche MAC-(media access controller; Medienzugangskontroll)-Adressen an welchen Ports der Brücke existieren, und können die Pakete übermitteln, die für eine Adresse bestimmt sind, die sich auf einer gegenüberliegenden Seite der Brücke befindet. Brücken verwenden typischerweise das, was als "Spannbaum"-Algorithmus ("spanning tree" algorithm) bekannt ist, um potentielle Datenschleifen zu eliminieren; eine Datenschleife ist eine Situation, in der ein Paket endlos in einem Netzwerk Runden dreht und nach einer bestimmten Adresse sucht. Der Spannbaum-Algorithmus definiert ein Protokoll zur Verhinderung von Datenschleifen. Schicht-Drei-Switches, die manchmal als Router bezeichnet werden, können Pakete auf der Grundlage der Zielnetzadresse weiterleiten. Schicht-Drei-Switches sind in der Lage, Adressen zu lernen und Tabellen davon zu verwalten, die den Port-Mappings entsprechen. Die Verarbeitungsgeschwindigkeit für die Schicht-Drei-Switches kann verbessert werden, indem eine spezialisierte Hochleistungs-Hardware verwendet wird, und indem die Host-CPU ausgeschaltet wird (off loading), so dass die Befehlsentscheidungen nicht das Weiterleiten des Pakets verzögern.
  • Außerdem spielt auch die Switch Fabric eine wichtige Rolle bei den Betriebsgeschwindigkeiten eines Netzwerks. Bei der Verwendung mit Netz- Switches erlaubt es die Fabric, dass Vermittlungseinheiten mit skalierbaren Portdichten aufgebaut werden können. Die Fabric empfängt vermittelte Daten von den Netz-Switches und muss verschiedene Typen von Daten (d.h. Multicast, Unicast, Broadcast, etc.) an andere angeschlossene Netz-Switches weiterleiten. Aber Switch Fabrics aus dem Stand der Technik stellen nicht den benötigten Durchsatz bereit und können die Gesamtverarbeitungsfähigkeiten der angeschlossenen Netz-Switches beschränken.
  • Die US 4,872,159 offenbart eine Paketnetzwerkarchitektur zur Bereitstellung einer schnellen Ansprechzeit in Form eines Stadtbereichsnetzwerks (MAN; metropolitan area network) mit hoher Kapazität. Datenverkehr von Benutzern wird mit Datenkonzentratoren an dem Rand des Netzwerks verbunden und wird über Glasfaserdatenverknüpfungen zu einem Verteiler übertragen, bei dem die Daten vermittelt werden. Der Verteiler umfasst eine Vielzahl von Datenvermittlungsmodulen, die jeweils eine Steuereinrichtung aufweisen und jeweils mit einem Raumvielfachschalter (space division switch) mit verteilter Steuerung verbunden sind. Vorteilhafterweise führen die Datenvermittlungsmodule, deren Eingänge mit den Konzentratoren verbunden sind, alle Prüf- und Routing-Funktionen durch, während der maximal 1024 × 1024 große Raumvielfachschalter, dessen Ausgänge mit den Konzentratoren verbunden sind, ein großes Fan-Out-Verteilnetz zum Erreichen vieler Konzentratoren von jedem Datenvermittlungsmodul aus bereitstellt. Die verteilte Steuerung des Raummultiplex erlaubt mehrere Millionen Verbindungs- und Trennungsaktionen, die jede Sekunde durchgeführt werden können, während die dem Pipelining unterzogene und parallele Operation innerhalb der Steuereinrichtung es jedem der 256 Vermittlungsmodule erlaubt, wenigstens 50.000 Transaktionen pro Sekunde zu verarbeiten. Die Datenvermittlungsmodule verketten Gruppen der ankommenden Pakete, die für einen gemeinsamen Auslass des Raumvielfachschalters bestimmt sind, so dass nur eine Verbindung in diesem Schalter für die Übertragung jeder Gruppe von verketteten Paketen von einem Datenvermittlungsmodul zu einem Konzentrator benötigt wird. Das MAN stellt Sicherheitsmerkmale bereit, die eine Portidentifikation, die von den Datenkonzentratoren geliefert wird, und eine Kontrolle umfassen, dass jedes Paket von einem autorisierten Ursprungsbenutzer stammt, der auf einem Port, der mit dem Benutzer assoziiert ist, zu einem autorisierten Zielbenutzer überträgt, der sich in der gleichen Gruppe (virtuelles Netz) wie der Ursprungsbenutzer befin det. Jedes Paket weist eine assoziierte Angabe einer hohen oder niedrigen Priorität auf. Anforderungen für Verbindungen in dem Raumvielfachschalter für eine verkettete Gruppe von Paketen, deren erstes Paket eine Angabe einer hohen Priorität aufweist, erhalten den Vorrang.
  • Die WO 99/56432 offenbart ein Verfahren zum gemeinsamen Gruppieren, wobei ein Internet-Router mehrere Ausgangsports mit einem gemeinsamen Ziel als einen gemeinsamen Port behandelt. Eine Routingtabelle verwendet die IP-Adresse, um einen zusammengesetzten Trunk zu bestimmen, zu dem das Paket weitergeleitet werden soll. Eine Weiterleitungstabelle identifiziert eine Route entlang einer Routing-Fabric innerhalb des Routers zu einem spezifischen Ausgangsport des zusammengesetzten Ports. Ausgangsports und Routen in der Fabric werden so ausgewählt, dass die Reihenfolge innerhalb eines Flusses aufrechterhalten wird, indem der Fluss entlang einer einzigen Fabric-Route zu einem einzigen Ausgangs-Trunk geroutet wird. Die Weiterleitungstabelle kann Ausgangsports bevorzugen, die am nächsten zu einem Paketeingangsport liegen, und die Weiterleitungstabelle kann so modifiziert werden, dass sie dynamisch die Belastung quer durch die Trunks eines zusammengesetzten Trunk ausgleicht.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung ist auf eine Switch-auf-Chip-Lösung für eine selbstroutende Fabric ausgerichtet, die in der Lage ist, das Ethernet, Fast Ethernet sowie 1- und 10-Gigabit-Ethernet-Systeme zu verwenden, wobei die gesamte Hardware auf einem einzigen Mikrochip angeordnet ist. Die vorliegende Erfindung ist auch auf Verfahren gerichtet, die verwendet werden, um die gewünschte Verarbeitung und das Weiterleiten der Daten zu erzielen. Die vorliegende Erfindung ist so konfiguriert, dass sie die Fähigkeit des Paketweiterleitens bei Leitungsgeschwindigkeit maximiert, und auch dass sie eine modulare Konfiguration bereitstellt, in der eine Vielzahl von separaten Modulen auf einem gemeinsamen Chip konfiguriert sind, und wobei individuelle Entwurfsänderungen bei bestimmten Modulen nicht die Beziehung dieses bestimmten Moduls zu anderen Modulen in dem System beeinträchtigen.
  • Die vorliegende Erfindung ist auf ein Verfahren zum Steuern eines Flusses von Paketdaten in einer Speicherverwaltungseinheit einer Netz-Switch Fabric ausgerichtet. Ein erster Abschnitt eines Datenpakets wird an einem Port in einem Eingangsbusring der Netz-Switch Fabric empfangen. Eine Dienstklasse für das Datenpaket wird auf der Grundlage des ersten Abschnitts bestimmt, und der Abschnitt wird in einem Packer-RAM des Ports auf der Grundlage der Dienstklasse gespeichert. Nachfolgende Abschnitte des Datenpakets werden in dem Packer-RAM gespeichert. Wenn die vorbestimmte Anzahl an Abschnitten empfangen worden ist, wird die vorbestimmte Anzahl an Abschnitten zu einem Paketpool-RAM gesendet. Ein Referenzzeiger zu einer ersten vorbestimmten Anzahl von Abschnitten wird zu einer Transaktions-Warteschlange gesendet, wenn ein Ende des Pakets erfasst wird und ein Ausgangs-Scheduler ein Vorhandensein eines fertigen Pakets in der Transaktions-Warteschlange erfasst und einen Entpacker von dem fertigen Paket informiert. Der Entpacker stellt das fertige Paket in einen FIFO, und das fertige Paket wird zu einem Eingangs-/Ausgangsmodul gesendet.
  • Das Verfahren kann auch die Schritte des Wartens auf die vorbestimmte Anzahl von Abschnitten, die empfangen werden sollen, das Zugreifen auf einen Zeiger zu einem aktuellen freien Abschnitt des Paketpool-RAM durch eine Linklisten-Array, das Schreiben der vorbestimmten Anzahl an Abschnitten in das Paketpool-RAM durch eine Linklisten-Array unter Verwendung des Zeigers, das Setzen oder Aktualisieren einer Linkliste für das Datenpaket und den Zeiger, und das Wiederholen der oben genannten Prozessschritte für nachfolgende Abschnitte des Datenpakets umfassen. Die Benachrichtigung des Entpackers von dem fertigen Paket kann das Bestimmen eines nächsten Pakets, das das fertige Paket sein soll, aus einer Vielzahl von Paketen, die von einer Vielzahl von Ports empfangen worden sind und in dem Paketpool-Speicher gemäß vorbestimmten Prioritätsregeln gespeichert worden sind, umfassen. Die vorausbestimmten Prioritätsregeln, die verwendet werden, können ein Defizit-Round-Robin-Scheduling-Algorithmus und ein gewichteter Round-Robin-Scheduling-Algorithmus sein.
  • Außerdem kann der Schritt des Erfassens des Vorhandenseins des fertigen Pakets das Überwachen eines Alters von Paketdaten in der Transaktions-Warteschlange und das Löschen der Paketdaten umfassen, wenn das Alter grö ßer als ein vorbestimmter Wert ist. Auch kann der Schritt des Sendens eines Referenzzeigers das Bestimmen, ob eine Dienstklasse in der Transaktions-Warteschlange ein Limit erreicht hat, und das Löschen des Datenpakets umfassen, wenn die Transaktions-Warteschlange das Limit erreicht hat.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Aufgaben und Merkmale der Erfindung werden unter Bezugnahme auf die nachfolgende Beschreibung und die beigefügten Zeichnungen besser verständlich, in denen:
  • 1 ein Blockdiagramm ist, das ein Ausführungsbeispiel der vorliegenden Erfindung veranschaulicht, das mit Netz-Switches verwendet wird, um eine 64-Port-Gigabit-Lösung zu erzielen;
  • 2 eine schematische Darstellung ist, die Elemente der Fabric der vorliegenden Erfindung zeigt;
  • 3 eine schematische Darstellung ist, die die interne Blockstruktur eines Ausführungsbeispiels zeigt;
  • 4 ein Ablaufdiagramm für die Eingangslogik für die vorliegende Erfindung ist;
  • 5 ein Unterablaufdiagramm für die Eingangslogik für die vorliegende Erfindung ist;
  • 6 ein Unterablaufdiagramm für die Eingangslogik für die vorliegende Erfindung ist;
  • 7 ein anderes Ablaufdiagramm für die Eingangslogik für ein Ausführungsbeispiel der vorliegenden Erfindung ist;
  • 8 die Topologie des Eingangsbusrings veranschaulicht;
  • 9 eine Abbildung des kürzesten Weges von Port zu Port veranschaulicht;
  • 10 eine schematische Darstellung ist, die die Speicherverwaltungseinheit-Warteschlangenbildungsarchitektur veranschaulicht;
  • 11 ein Kontoführungsblock-Pausenverhalten veranschaulicht;
  • 12 eine schematische detaillierte Darstellung einer Station des Eingangsbusrings ist;
  • 13 eine schematische Darstellung der Ringkonnektivität des Eingangsbusrings ist;
  • 14 eine schematische Darstellung ist, die die verschiedenen Paketbegrenzungsfälle in einer Zelle des Speichers veranschaulicht;
  • 15 ein Ablaufdiagramm ist, das das Wiederherstellungsschema der vorliegenden Erfindung bei Speicherfehlern veranschaulicht;
  • 16 ein Blockdiagramm für den Entpacker (unpacker) der vorliegenden Erfindung ist.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
  • Die vorliegende Erfindung ist auf eine selbstroutende Fabric mit 4/8 10 Gigabit-Schnittstellen gerichtet. Die externe Bandbreite der Fabric gemäß einem Ausführungsbeispiel der vorliegenden Erfindung beträgt 80/160 Gbps. Die vorliegende Erfindung erlaubt den Aufbau von skalierbaren Gigabit-Portdichten zusammen mit anderen Netzwerkvermittlungsvorrichtungen.
  • Die vorliegende Erfindung sieht eine Fabric mit einer Ein-Chip-Lösung vor, die einen Durchsatz von bis zu 160 Gbps unterstützt. Die vorliegende Erfindung unterstützt 8 Ports bei 10 Gbps Vollduplex und erlaubt das Weiterleiten mit voller Leitungsgeschwindigkeit an jedem Port. Die Fabric unterstützt auch acht IEEE 802.1p Prioritätsklassen sowie eine Warteschlangenbildung nach strenger Priorität und nach gewichtetem Round-Robin-Verfahren. Die Fabric der vorliegenden Erfindung unterstützt 4096 VLANs für unbekannte Unicasts/Broadcasts und unterstützt die IEEE 802.3x Flusskontrolle an jedem Port. Die vorliegende Erfindung unterstützt auch einen Mechanismus zur Verhinderung der Leitungskopfblockierung (Head of Line (HOL) blocking) an einem Übertragungsport und bietet auch Unterstützung für das Gruppieren (Trunking) und das Spiegeln sowie auch für die Redundanz. Schließlich stellt die vorliegende Erfindung in einem Ausführungsbeispiel eine 66 MHz 32-Bit-PCIX-Erweiterungsschnittstelle für die CPU und andere PCI-konforme Vorrichtungen bereit.
  • 1 veranschaulicht ein Beispiel der Fabric der vorliegenden Erfindung in einem bestimmten Anwendungsfall. 1 veranschaulicht ein Beispiel einer 64-Port-Gigabit-Lösung (blockierungsfrei), die die Fabric der vorliegenden Erfindung und Netz-Switches verwendet. Die allgemeine Konfiguration der Fabric der vorliegenden Erfindung ist in 2 veranschaulicht. Ein bevorzugtes Ausführungsbeispiel der Fabric besitzt 8 Port-Schnittstellen mit Datenübertragungsgeschwindigkeiten von 10 Gbps und einen internen Ring, der den Transfer von Informationen und Paketdaten zwischen den Port-Schnittstellen erlaubt.
  • Die vorliegende Erfindung ist eine Fabric mit einer sehr hohen Geschwindigkeit, die im Sinne der Logik für die Datenrahmenweiterleitentscheidungen einfach ist. Jedes Paket, das die Fabric betritt, muss einen Modul-Zellkopf (module header) aufweisen, der Informationen für Unicast-Pakete über das/die Zielmodule) enthält, zu dem/denen ein Rahmen weitergeleitet werden muss. Der Modul-Zellkopf wird an dem Ausgang von dem Netz-Switch vorne angehängt.
  • In einem bevorzugten Ausführungsbeispiel besteht die Fabric aus 8 Ports, von denen jeder bei einer Geschwindigkeit von 10 Gigabit arbeitet. An jedem Port wird der Modul-Zellkopf geprüft und die Ausgangsport-Bitmap wird auf der Grundlage davon bestimmt, ob das Paket ein bekanntes Unicast, unbekanntes Unicast, Broadcast, Multicast oder ein IP Multicast ist. Die oben genannten Pakettypen werden unten besprochen.
  • UNICAST-PAKET
  • Wenn ein Rahmen (Frame) von dem Fabric-Eingang (fabric ingress) empfangen wird, zeigt der Opcode-Wert von 1 in dem Zellkopf (header) an, dass das Paket ein Unicast-Paket ist und die Ausgangsport- und Zielmodul-id-(DST_MODID)-Informationen in dem Modul-Zellkopf gültig sind. Die Fabric wird das Paket zu dem Ausgangsport (egress port) in der Fabric weiterleiten, welches der Pfad zu dem Zielmodul ist. Alternativ dazu kann es in einigen Konfigurationen mehr als einen Pfad zu dem Zielmodul in der Fabric geben. Deshalb kann es sein, dass die Fabric einen Ausgangsport auf der Grundlage des Fabric-Eingangsports und der Zielmodul-id auswählen muss. In Konfigurationen, in denen die Zielmodule direkt mit der Fabric verbunden sind, basiert die Auswahl des Fabric-Ausgangsports (fabric egress port) auf dem Zielmodul und ist unabhängig von dem Fabric-Eingangsport (fabric ingress port).
  • Zur Unterstützung der Datenrahmenweiterleitung eines Unicast-Pakets in der Fabric in jeglichem Typ von Konfiguration ist eine einfache Routingtabelle vorgesehen. Das Format dieser Tabelle ist folgendermaßen:
    Figure 00100001
    Tabelle 1
  • Diese Tabelle ist 32 Einträge tief, und wenn ein bekanntes Unicast-Paket an dem Fabric-Eingang ankommt, wird das DST_MODID aus dem Modul-Zellkopf extrahiert und in der obigen Tabelle nachgesehen. Die sich ergebende Bitmap wird dazu verwendet, um die Weiterleitung zu den passenden Ports, die den Bitfeldern entsprechen, durchzuführen.
  • BROADCAST-PAKET/DLF-WEITERLEITUNG
  • Wenn ein Paket an dem Fabric-Eingang mit dem Opcode-Wert 2 ankommt, zeigt dies an, dass das Paket entweder ein Broadcast oder ein unbekanntes (Domain Lookup Failure; Domänenanfragefehler) Unicast ist. In diesem Fall wird die VLAN-ID dazu verwendet, um alle die Ports anzuzeigen, zu denen das Paket geliefert werden soll. Eine Tabelle ist an jedem Port vorgesehen:
    Figure 00100002
    Tabelle 2
  • Die Tabelle ist 4096 Einträge tief und erlaubt alle Werte der VLAN-Klassifikation.
  • MULTICAST-PAKET-WEITERLEITUNG
  • Wenn ein Paket an dem Fabric-Eingang mit dem Opcode-Wert 3 oder 4 ankommt, handelt es sich jeweils entweder um ein Multicast (MC) oder ein IP MC. Eine Tabelle ist implementiert, um diese Pakete weiterzuleiten. Der Index zu dieser Tabelle ist die Kombination aus der Zielport-ID (DST_PORTID) und der Zielmodul-ID (DST_MODID), die aus dem Modul-Zellkopf extrahiert werden.
  • Figure 00110001
    Tabelle 3
  • Es gibt 8 Kopien von allen oben genannten Tabellen bzw. eine pro Port. Die Konfiguration der Fabric der vorliegenden Erfindung umfasst ein Ausgangsmaskenregister (EGRESS_MASK). Dieses Register identifiziert den Satz von Ports, aus denen das Paket von einem Eingangsport aus nicht gesendet werden darf. Dieses Register ist 9 Bits breit, und es gibt ein Register pro Port.
  • Jeder Eingangs-Port besitzt die folgenden Blöcke: einen Kern für die physikalische Übertragung (SerDes), einen 10-Gigabit-Ethernet-Vollduplex-MAC und einen Eingangslogik-Block, der das Datenrahmenweiterleiten (ING) bestimmt. Jeder Ausgangsport besitzt die folgenden Blöcke: einen Eingangsbusringknoten (IBR); eine Speicherverwaltungseinheit (MMU), und ein Paketpool-RAM.
  • Die vorliegende Erfindung unterstützt auch viele spezielle Merkmale. Die Fabric unterstützt die Linkgruppierung (Trunking) ihrer acht 10-Gbps-Ports. Bis zu 4 Trunk Groups (Leitungsbündel) können unterstützt werden, jeweils bis zu einem Maximum von vier Mitgliedern. Die Trunk-Group-Tabelle wird verwendet, um den Ausgangsport abzuleiten, wenn ein Paket auf einem Trunk Port herausgehen muss. Der RTAG wird von der Trunk-Group-Tabelle durch die Trunk-Verteilungslogik aufgenommen, um den Verteilungsalgorithmus zu bestimmen.
    Figure 00120001
    Tabelle 4
  • Es gibt vier Kopien der obigen Tabelle, die vier Trunk Groups erlauben.
  • Die Fabric der vorliegenden Erfindung unterstützt auch das dynamische Ausschalten (shutting down) der Ports in dem Falle, dass der Link (Verbindung) schlechter wird. Die Fabric unterbricht die CPU in so einem Fall. Dann ist die CPU dafür verantwortlich, das EPC-Link-Register so zu programmieren, dass es das Austreten von Paketen aus dem deaktivierten Port nicht mehr zulässt. Das EPC_Link-Register ist eine Bitmap, die Ports repräsentiert, die ein Link-Valid-Signal besitzen. Außerdem wird auch das Spiegeln (mirroring) unterstützt. Das Spiegelung-zum-Port-Register zeigt das Spiegeln zum Port in der Vorrichtung an und spezifiziert das Weiterleiten der Pakete, die gespiegelt werden sollen. Die Spiegelungsinformation wird aus dem Modul-Zellkopf extrahiert. Ein CPU-zum-Port-Register wird ebenfalls unterstützt.
  • Ein Priorität-zu-Dienstklasse-Warteschlangen-Mapping-Register (Priority to COS Queue Mapping Register) (COS_SEL) wird verwendet, um die ankommende Paketpriorität oder die abgeleitete Paketpriorität (nach der Adressauflösung und dem Filterungsmechanismus) der Ausgang-Dienstklasse-Warteschlange zuzuordnen. Das Priorität-zu-Dienstklasse-Warteschlangen-Mapping wird ausgeführt, nachdem das Paket durch die Adressauflösung und den Filterungsmechanismus gegangen ist, gerade bevor das Paket auf dem CP-Kanal gesendet wird. Dieses Mapping ändert nicht das Prioritätsfeld in dem Tag-Zellkopf (tag header) des Pakets, es entscheidet nur, aus welcher Dienst klasse-Warteschlange das Paket an dem Ausgangsport herausgehen soll. Der Bedarf an diesem Register ergibt sich aufgrund der empfohlenen Benutzer-Priorität-zu-Verkehrsklasse-Mappings (User Priority to Traffic Class Mappings), die in dem 802.1p-Standard definiert sind.
  • Außerdem stehen in der Fabric Konfigurationsregister zur Verfügung. Jedes der folgenden besitzt 8 Kopien dieser Register, d.h. 1 pro Port. Ein MODUS-Register wird gesetzt, wenn alle Ports in der Fabric im HiGig-Modus arbeiten, sonst wird die Vorrichtung in einem Modus mit einer niedrigen Bitrate arbeiten. Es werden auch Register unterstützt, um Auslöser für sowohl die hohen als auch die niedrigen Flutmarken für die Eingangs-Rückstau-Flusskontrolle bereitzustellen. Ein anderes Register spezifiziert auch den Prioritätswarteschlangenbildungsalgorithmus, einschließlich eines strengen Prioritätsmodus, eines gewichteten Round-Robin-Modus und eines Defizit-Round-Robin-Modus. Es sind auch Register vorgesehen, die die Prioritätswertungen für die Dienstklassen und das jeweilige HOL-Blockierungslimit speichern.
  • Die folgenden Zähler sind ebenfalls auf einer pro Port Basis auf der Übertragungs- und der Empfangsseite vorgesehen. Eine Eingangswortzählung (ingress word count) liefert die Anzahl an Worten, die von dem MAC empfangen werden, und eine Ausgangswortzählung (egress word count) liefert die in dem Ausgang gespeicherte Anzahl an Worten auf einer Basis der Dienstklasse (COS; Class of Service). Zählungen für fallen gelassene Pakete werden für die Anzahl an Paketen bestimmt, die von der Eingangslogik fallen gelassen werden, und eine Paketzählung der aufgrund von HOL fallengelassenen Pakete liefert die Anzahl an Paketen, die pro COS fallen gelassen werden. Es wird auch eine Zählung im Hinblick auf die Anzahl an Paketen verwaltet, die aufgrund von Alterung fallen gelassen werden.
  • Außerdem stellt die Fabric der vorliegenden Erfindung eine gesicherte Weiterleitungsunterstützung (assured forwarding support) bereit. Dieses Merkmal stellt ein bevorzugtes Fallenlassen von Paketen in der Fabric bereit, wenn ein bestimmtes Bit in dem Modul-Zellkopf gesetzt ist. Dieses Bit in dem Modul-Zellkopf wird von dem Netz-Switch gesetzt, wenn ein gewisser Vorrang für das Fallenlassen (drop precedence) gesetzt wird. Wenn ein Paket in der Fabric-MMU ankommt und das Bit gesetzt ist, dann wird die Anzahl an Paketzeigern für die COS-Warteschlange, die dem Paket zugeordnet ist, gegenüber einem CNGTHRESHOLD-Register überprüft. Wenn die Anzahl an Einträgen in der COS-Warteschlange für den Port den Wert in dem CNGTHRESHOLD-Register überschreitet, wird das Paket fallen gelassen.
  • Anderenfalls wird das Paket in die COS-Warteschlange in der MMU aufgenommen. Wenn das Paket fallen gelassen wird, wird ein CNGDROPCOUNT-Zähler aktualisiert. Wenn das bestimmte Bit nicht in dem Modul-Zellkopf gesetzt ist, werden alle Pakete in die COS-Warteschlange aufgenommen, bis der COS-Warteschlangen-Schwellwert (COS Queue Threshold) erreicht ist.
  • LOGISCHER FLUSS AM EINGANG
  • Der logische Fluss am Eingang in die Fabric wird im Folgenden diskutiert. 4 zeigt ein Ablaufdiagramm, das einen Teil der Logik vorsieht. In dem ersten Schritt wird die Port-Bitmap initialisiert und die COS wird von dem Modul-Zellkopf bezogen. Ein Opcode wird ebenfalls aus dem Modul-Zellkopf ausgelesen. Wenn das Paket nur gespiegelt wird, dann wird keine weitere Auswertung des Zellkopfs benötigt. Anderenfalls wird der Typ des Pakets aus dem Opcode bestimmt, wobei die Port-Bitmap oder eine andere Bitmap gesetzt ist. Die unterstützten Typen umfassen ein CPU-Paket, das zu der CPU gesendet wird, Unicast, Broadcast, Schicht-2-Multicast und IP-Multicast. Wenn die richtigen Variablen gesetzt sind, geht der logische Fluss zum Unterablaufdiagramm M, es sei denn, dass die Logik diktiert, dass das Paket fallen gelassen werden soll. Im letzteren Fall wird ein Eingangszähler inkrementiert.
  • Der logische Fluss setzt sich bei M, 5, fort, wobei dann, wenn das Paket nur gespiegelt wird, ein Register überprüft wird, und wenn das Paket noch nicht gespiegelt ist, dann wird das Spiegeln-zum-Port-Register gesetzt und die Port-Bitmap wird gesetzt, um das Paket zu spiegeln. Als nächstes wird dann, wenn der Eingangsport ein Mitglied einer Trunk Group ist, die Port-Bitmap entsprechend gesetzt. Die Verarbeitung von Ports in einer Trunking Group wird genauer in 6 behandelt.
  • 7 veranschaulicht einen anderen Betriebsmodus für die Evaluierung der Pakete. Das alternative Verfahren untersucht Bits der Quell- und Zielports. In diesem Fall wird eine Vorrichtungs-Port-Mapping-Tabelle verwendet, um den Switch-Ausgangsport zu bestimmen. Es sei angemerkt, dass die Betriebsmodi nicht gemischt werden sollten, wobei der letztgenannte Modus alle Broadcast, Multicast und unbekannten Unicast zu allen Ports sendet und das Spiegeln in dem letztgenannten Modus nicht unterstützt wird.
  • AUFBAU DER SPEICHERVERWALTUNGSEINHEIT
  • Als nächstes werden der Aufbau und die Funktion der Speicherverwaltungseinheit der Fabric genauer besprochen.
  • Die Hauptfunktionen der Fabric der vorliegenden Erfindung können in mehrere Bereiche gruppiert werden. Erstens, und das betrifft die Switch Fabric-Bandbreite, absorbiert die Fabric Paketströme von acht Eingangsports mit einer Gesamtrate von maximal 80 Gbps. Die Fabric erlaubt es den Paketen, an einem geeigneten Ausgang für Unicast und Multicast mit einer Gesamtrate von 80 Gbps auszutreten und berücksichtigt die Kapazitätsverwendung durch den Eingang/Ausgang. Die Fabric verwaltet effektiv den Multicast-Verkehr und verarbeitet den zusätzlichen Modul-Zellkopf, der mit jedem Paket hereinkommt. Auch kann ein CPU-Verkehr von oder zu einem Port kommen und hat eine maximale Burstrate von ~ 2 Gbps.
  • Die Fabric unterstützt auch die 802.1p Warteschlangenbildung. Die Fabric priorisiert Pakete durch COS und unterstützt bis zu 8 Warteschlangen. Die Fabric unterstützt auch die Warteschlangenbildung nach strenger Priorität und das Fair Queuing (faire Warteschlangenbildung) mit gewichteter Zuordnung durch die Paketzählung. Die Fabric stellt auch eine geeignete Flusskontrolle und ein geeignetes Kapazitätsmanagement bereit. Wenn ein gegebener Eingang einen Kapazitätsschwellwert überschreitet, erhält der Anstoß gebende Eingangsport eine Benachrichtigung. Der MAC sollte einen PAUSEN-Rahmen an seinen Link-Partner schicken, um den Fluss der Pakete zu stoppen. Wenn ein gegebener Ausgang einen Zellenkapazitätsschwellwert überschreitet, existiert eine HOL-(Leitungskopfl-Blockierung. Wenn ein gegebener Ausgang in dem HOL-Zustand ist, wird jedes Paket von einem Port, das für diesen Ausgang bestimmt ist, fallen gelassen. Wenn eine Transaktions-Warteschlange für eine gegebene COS für einen gegebenen Ausgang voll wird, tritt sie in einen HOL-(Leitungskopf)-Blockierungs-Zustand. Jedes neue Paket von irgendeinem Port, das für dieses COS-/Ausgangs-Paar bestimmt ist, wird verworfen.
  • Zusätzlich sind die folgenden Merkmale weiterentwickelte Merkmale, die in bestimmten bevorzugten Ausführungsbeispielen integriert werden können. Die Fabric unterstützt das Fair Queuing mit gewichteter Zuordnung durch eine Bytezählung und stellt ein Speicherfehler-Wiederherstellungsschema bereit.
  • EINGANGSBUSRING
  • Die Architektur der Fabric umfasst bestimmte Abschnitte, die die Fähigkeit der Fabric, Pakete weiterzuleiten, verbessern. Ein erster Abschnitt ist ein Eingangsbus-"Ring". Zum Beispiel kann die Architektur für die MMU ein verteiltes feststehendes Kapazitätsschema sein, bei dem eine lokale Kopie des RAM (128K Bytes) für jeden Port reserviert ist. Jeder Port ist mit den benachbarten Ports über eine Ansammlung von unidirektionalen Bussen verbunden, die effektiv einen Ring bilden, der alle neun (8 + CPU) Ports verbindet. Dieser Bus wird nachfolgend der Eingangsbusring (IBR; Ingress Bus Ring) genannt. Die Busse sind 64 Bits breit, und es gibt einen Bus für jeden Eingang (folglich insgesamt 64·8 = 512 Bits). Diese Busse sind verkettet und jeder hat seinen Ursprung von dem Ausgang eines Flops eines Ports und endet an dem Eingang eines Flops an seinem benachbarten Port. Dies ist in 3 veranschaulicht. Dieses Punkt-zu-Punkt-Schema spricht viele physikalischen Designaufgaben an, die vorliegen, wenn anderenfalls ein gemeinsamer globaler Speicher mit breiten (512 Bits) Datenleitungen verwendet wird. Dieses Schema macht auch jeden Port zu einer separaten logischen Entität, was für die Prüfbarkeit von Wert ist.
  • Der IBR übermittelt den Paketverkehr, der von dem Port-Eingangs-/Ausgangsblock (PIE) weitergereicht worden ist, und tritt bei jedem Taktzyklus bei einer 64-Bit-Breite auf. Die Daten werden sofort auf die lokalen Flops auf dem Bus zwischengespeichert (latched). Und bei jedem Takt wird dieses Wort in die Flops des/der benachbarten Port(s) zwischengespeichert. Dann überwacht die MMU an jedem Port die Wortströme auf dem Ring und erfasst das Paket, wenn sie eine Zielportübereinstimmung feststellt. Die Zielportinformation wird über ein Steuerwort kommuniziert, das mit dem Paket über einen Seitenbandbus synchronisiert ist.
  • Eine Leistungsoptimierung, die durchgeführt werden kann, ist, die Datenfortpflanzung zu deaktivieren, wenn keiner der Ports abwärts auf dem Ring der Empfänger dieses Paketes ist. Auch leitet in einem Ausführungsbeispiel jeder Buskanal das Wort in einer Richtung weiter, was eine maximale Latenzzeit von 8 Takten (oder 8 Sprüngen) ergibt, um den am entferntesten gelegenen Port zu erreichen. Dies kann verbessert werden, wenn die Worte in entgegengesetzten Richtungen weitergeleitet werden (im Uhrzeigersinn und im Gegenuhrzeigersinn), so dass der maximale Sprung bis runter auf 4 geht. Das folgende Diagramm, das in 8 vorgesehen ist, trifft auf jeden Port zu.
  • Effektiverweise gibt es 9 Busse in dem Fabric-Chip (9 = 8 Ports + CPU-Port). Aber wenn ein Querschnitt zwischen irgendwelchen zwei Ports genommen wird, wird ein Bereich für nur 8 Busse benötigt, weil für jeden Port n seine Nachbarn n + 4 und n – 4 nicht verknüpft sind. Kein Bus ist eine tatsächlich geschlossene Schleife. Eine Abbildung für die kürzesten Wege von einem Port zu einem anderen Port in diesem Schema ist in 9 veranschaulicht.
  • PORT-COS-PAARE
  • Ein anderer Abschnitt der Fabric spricht die Port-COS-Paare an. Pakete kommen als 8-Byte-Worte an, aber die RAM-Breite beträgt 80-Byte-Zellen. Diese Inkongruenz birgt in sich einige Verwendungsprobleme, und zwar vor allem dann, wenn die Paketlängen pathologische Fälle wie etwa ein CELLSIZE (Zellengröße) + 1 (d.h. 65-Bytes-Pakete) sind. Wenn eine solche Bedingung fortdauert, wird die RAM-Bandbreite beträchtlich gefährdet und ergibt eine schwierige Anforderung von 3,6 Lese-/Schreibvorgängen pro Takt.
  • Um dieses Problem zu lösen, werden Pakete zwischen RAM-Grenzen gepackt und entpackt. Worte werden in einem Registerdatei-(oder SRAM)-FIFO gesammelt, bis eine Zellgröße vor dem Schreibvorgang fertig ist. Die Zellen werden aus einem Speicher, der in einem FIFO platziert ist, ausgelesen und dann langsam an den PIE als Worte gegeben.
  • Dies wirft aber ein weiteres Problem auf, da, um das SAP-zu-SAP-Sequentialisieren aufrechtzuerhalten, die Pakete an sehr spezifischen Stellen in dem RAM platziert werden müssen, damit ihr Eingang-zum-Ausgang-Pfad nicht von Paketen von anderen Ports und Dienstklassen korrumpiert wird. Folglich wird die Verwendung eines "Port-COS"-Paares eingeführt. Ein Port-COS-Paar besteht aus zwei Zahlen P:C. P bezeichnet, von welchem Port das Paket kam, und C bezeichnet, zu welcher Dienstklasse dieses Paket gehört. Jedes Paket, das das Fabric-System betritt, wird mit einer P:C-Bezeichnung versehen (obwohl dies nicht von irgendwelchen Speicherelementen repräsentiert sein muss), und sie müssen einem bestimmten P:C-Strom in dem System folgen.
  • Im Hinblick auf dieses System ist P = 9 – 1 = 8, da keine Pakete für seinen eigenen Port bestimmt sein werden, und C = 4 und P·C – 32. Folglich können in der Fabric bis zu 32 Ströme bestehen. Für jeden Port existieren logischerweise 8 Pack-FIFOs, 8 Warteschlangen im Speicher und 8 Entpack-FIFOs.
  • NACHRICHTENRING
  • Ein anderer Abschnitt der Fabric ist ein Nachrichtenring (MR; Message Ring). Um alles Stationen für die Steuerung zu verknüpfen, wird ein anderer Ring verwendet, der unidirektional ist und an jeder Station gefloppt (flopped) ist und eine geschlossene Schleife ist. Dieser Ring stellt eine generische Art der Übermittlung von Nachrichten zwischen Stationen bereit (einschließlich der CPU). Augenblicklich dient er zwei Hauptzwecken: CPU-Register-/Speicherbild-Zugriff zwischen allen Stationen und Kontoführung zwischen Eingangs- und Ausgangsstationen.
  • Das Nachrichtenprotokoll auf dem MR kann analog zu dem eines IEEE 802.5 Token-Ring-Netzes oder eines ISO-8802.7 Slotted-Ring-Netzes sein. Register-/Zähler-Lesevorgänge/Schreibvorgänge sowie auch Speicheranforderungen und -gewährungen auf dem MR werden unter Verwendung dieses Protokolls übermittelt. Es gibt zwei Bedingungen bei der Auswahl eines Protokolls, es muss 1) die benötigte Bandbreite für den ungünstigsten Betriebsfall zufrieden stellen, und 2) das Protokoll selber muss robust und deterministisch (prüfbar) sein und darf niemals eine gegenseitige Blockierung (deadlock) hervorrufen.
  • Die Bandbreite für den ungünstigsten Betriebsfall ist im Augenblick durch die interstationäre Kontoführung (inter-station accounting) begrenzt. Die interstationäre Kontoführung ist ein Verfahren, mit dem für den Eingang berechnet werden kann, wie viele Bytes von jedem Ausgang für alle Pakete, die den Port betreten haben, ausgesendet wurden. Wenn nicht genug Bytes gutgeschrieben (credited) werden, wird es in den RÜCKSTAU-Zustand eintreten, nachdem der Zähler eine programmierte Flutmarke erreicht.
  • Bei diesem Mechanismus verwaltet jeder Ausgang einen Zähler, der verfolgt, wie viele Bytes er für Pakete ausgesendet hat, die von anderen Ports kamen. Folglich muss er 8 Zähler verwalten. Nach einem programmierten Schwellwert muss jeder Ausgang diesen Zählerwert zurück an den entsprechenden Ursprungseingang berichten. Der MR besitzt auf sich 9 Stationen, und es wird ein Takt pro Station benötigt. Der ungünstigste Betriebsfall ist 9·8 = 72 Takte, bevor ein Ausgang alle seine Gutschriften (credits) auf Null stellen kann.
  • ADAPTIVER ERWEITERTER SPEICHER
  • Die obige Speicherarchitektur hat aber einen Nachteil. Wenn nur 3 Ports aktiviert sind, stehen nur 3·256 KB oder 768 KB für die Paketspeicherung zur Verfügung. Tatsächlich können nur 256 KB verwendet werden, wenn der einzige Verkehr darin besteht, dass zwei dieser Ports an den dritten Port senden. Die RAMs in dem Rest des Chips sind vergeudet.
  • Die adaptive erweiterte Speicherarchitektur ist so erweitert, dass sie ein adaptives Protokoll umfasst, um eine Flexibilität bei der Speicherbenutzung vorzusehen. Zur automatischen Einstellung auf die Anpassung wird ein Nachrichtenprotokoll verwendet (über den MR). Ein Port tritt in den PANIK-Modus ein, wenn seine Anzahl an freien Zellen eine untere Flutmarke erreicht. In diesem Zustand wird der Port von dem nächsten verfügbaren Slot auf dem MR Besitz ergreifen und sendet eine Speicheranforderungsnachricht. Nur deaktivierte Ports können an der Gewährung von Speicherverwendung an in Panik ausbrechende Ports teilnehmen. Wenn die Originalanforderung zu dem Requester zurückkehrt, nachdem sie die Schleife durchquert hat, zeigt sie an, dass ent weder kein Port deaktiviert ist oder dass alle deaktivierten Ports bereits jemand anderem helfen.
  • Wenn die Anforderungsnachricht verarbeitet wird und eine Speichergewährungsnachricht zurückschickt, wird der anfordernde Port aufhören, Pakete zu akzeptieren, die an ihn selber gerichtet sind. Der gewährende Port wird damit beginnen, die Pakete in dessen Namen anzunehmen. Da alle Pakete allen Ports sichtbar sind, kann dieser Austausch von Paketeigentumsrechten durchgeführt werden, aber nicht ohne Vorsichtsmaßnahmen zu treffen. Es gibt verschiedene Übertragungs- und Übergabe-Timing-Schwierigkeiten, die berücksichtigt werden müssen.
  • Beispielshalber nimmt man drei aktive Ports an: mit den Nummern 0, 4 und 8, und fünf nicht benutzte Ports mit den Nummern 1–3 und 5–7. Jeder aktive Port verwendet einen erweiterten Speicher von mehr als 256 KB Speicher. Helfer-MMUs wie z.B. in Ports 5, 6 und 7 nehmen Pakete in Vertretung von Port 4 entgegen und speichern Pakete in Vertretung von Port 4, wobei sie Port 4 eine effektive Speicherbenutzung von 1 MByte geben. Jede Helfer-MMU muss Paar-COS-Ströme aufrechterhalten sowie auch den Prioritätsalgorithmen folgen, die in dem System vorhanden sind.
  • Pakete werden sich aus Port 4 entleeren, und wenn dessen Zählung der freien Zellen eine untere Flutmarke erreicht, wird er eine Ablöseanforderungsnachricht (detach request message) für seinen Helferport aktivieren. Dann wird der Port 5, der nächste Helferport in der Leitung, "langsam" seine Ströme im Speicher zu Port 4 entleeren. Dieser Effekt pflanzt sich die Leitung der Helfer hinunter fort. Bis der Speicher von Port 7 vollständig geleert ist, wird Port 7 eine Ablöseversuchsnachricht und eine Ablösebestätigungsnachricht ausgeben. Wenn sie abgelöst ist, wird die MMU 7 zur Verfügung stehen, um Speicheranforderungen von irgendeinem anderen Port zu gewähren, einschließlich Port 4. Eine Helfer-MMU kann, wenn sie sich festgelegt hat, nicht mehr als einem einzigen anderen Port dienen. Jede MMU kann Daten vom IBR bei 80 Gbps abgreifen. Jede MMU kann Daten bei 10 Gbps entleeren.
  • Die Absicht der Architektur ist Flexibilität beim Anschließen und Ablösen jeglicher Anzahl von "Helfer"-MMUs an bzw. von jedem Port. Dadurch wird eine dynamische Zuordnung eines eingebetteten Speichers erlaubt. Die Speicherarchitektur erlaubt eine höhere momentane Speicherkapazität pro Port und ein besseres Puffern.
  • MMU-OPERATIONSTHEORIE
  • Es wird nun die Operationstheorie der MMU besprochen. Mit der beschriebenen MMU-Warteschlangenbildungsarchitektur wird jedes Paket, das an der Switch Fabric ankommt, global an jeden Port über den IBR rundgesendet. Die Architektur ist in 10 veranschaulicht. Eine Kopie des Pakets wird nur gespeichert, wenn die lokale MMU dies so entscheidet. Im Folgenden werden die lokalen Datenstrukturen beschrieben, wenn Pakete gespeichert und weitergeleitet werden.
  • Der Pack-FIFO besteht aus 8 einzelnen RAMs, die für acht Eingangsports reserviert sind und folglich das parallele Ankommen von Paketen erlauben. Jedes RAM enthält einen Speicherplatz, der zwei Zellen tief ist. Zwei Zellen erlauben eine Speicherung von 20 Worten oder 160 Bytes. Jeder FIFO wird verwendet, um Pakete von dem gleichen Port zu speichern. Worte werden in dem FIFO gesammelt, bis sich eine Zelle angehäuft hat, und diese wird dann in den Speicher geschrieben. Der Vorgang des Packens von Worten in Zellen ist unabhängig von Paketgrößen. Dies dient dazu, das Problem der vergeudeten "Löcher" im Speicher abzumildern, wenn sich Paketgrößen von Zellgrenzen unterscheiden. Es gibt insgesamt 32 logische FIFOs, wobei jeder zu einem eindeutigen Port-COS-Paar gehört. Dies garantiert eine Paketzustellung in der richtigen Reihenfolge und die korrekte Reassemblierung von Zellen an dem Ausgang des Speichers.
  • Der Paketpool-Schiedsrichter arbitriert die 8 Packer-FIFOs für den Schreibzugriff auf den Hauptspeicher (Paketpool) auf eine Round-Robin-Weise. Nur FIFOs mit einer bereitstehenden vollständigen Zelle oder ein FIFO, der abgelaufen ist (timed out) (siehe Abschnitt zum Zeitüberwachungsmechanismus) dürfen den Zugriff beenden.
  • Ein FreeQ ist ein Zeiger auf die im Augenblick freie Zelle (oder Block, was später noch diskutiert wird), in die eine neue Zelle geschrieben werden kann. Eine freie Warteschlange (free queue) für alle zur Verfügung stehenden Speicherzellen wird von dem LLA verwaltet.
  • Transaktions-Warteschlangen (XQ) stellen ein Array dar, das 8 Warteschlangen enthält, eine für jede COS. Die Größe jeder Warteschlange ist programmierbar. Jeder Warteschlangeneintrag zeigt auf den Kopf eines Pakets in dem Speicher, und der Rest des Pakets wird durch eine Linkliste (link list; Verbindungsangabenliste) in dem LLA verwaltet. Die XQ verwaltet einen Zeitstempel, der jedem Paket in dem Speicher einen Alterswert zuordnet. Pakete, die gemäß einem programmierbaren Wert zu "alt" sind, werden fallen gelassen. Die XQ hat ein Limit von 2048 Einträgen. Folglich kann jeder Ausgang nur bis zu 2048 Pakete speichern (siehe PP).
  • Das Linklisten-Array (LLA) ist ein Array, das ein 1-zu-1-Mapping zu dem Paketpool-Speicher aufweist. Jeder Offset in dem Array entspricht einer Zellenposition in dem Paketpool. In dem LLA sind Zeiger auf andere Zellen gespeichert. Das LLA sieht ein praktisches Verfahren für einen Adressumweg (address indirection) vor, wenn Datenstrukturen manipuliert werden. Das LLA verwaltet n + 2 Linklisten, wobei "n" für die Anzahl an Paketen steht, die augenblicklich gespeichert werden, und 2 die freie Warteschlange plus eine "Mülldeponie"-Warteschlange (graveyard queue) ist. Das LLA verwaltet auch einen Referenzzähler für jede Zelle. Dies ist notwendig, da die Zelle aktiv bleiben muss und nicht in die freie Liste zurückkehren darf, bis alle, die sich auf die Zelle beziehen, nicht mehr länger die Zelle benützen müssen.
  • Der Paketpool (PP) ist ein 128 KByte SRAM, das für die Hauptspeicherung der Ausgangspakete für diesen Port benutzt wird. Bei einer Breite von 640 Bits besitzt er 1600 Einträge. Die Größe dieses RAM bestimmt letztendlich, wie viel gespeichert werden kann. Zum Beispiel kann es aufgrund der XQ-Limits bis zu 2048 Pakete in Minimalgröße speichern, aber es kann nur bis zu 82 Pakete in Maximalgröße (1518 Bytes) und nur 14 Pakete in Riesengröße (9 KBytes) speichern.
  • Der Ausgangs-Scheduler (EGS) bestimmt das Paket, das als nächstes aus dem PIE übertragen werden soll. Er befolgt die Prioritätsregeln, die in dem Sys tem programmiert sind, und ruft ein Paket Zelle für Zelle gemäß den Informationen ab, die von XQ und LLA geliefert werden.
  • Der Entpacker (UPK; unpacker) ist ein Zwilling zu dem Pack-FIFO dahingehend, dass er die Inkongruenzen zwischen Wort und Zelle in diesem System auf dem Weg nach draußen glättet. Aber er unterscheidet sich, weil zu einem Zeitpunkt nur ein Port bei 1/8 der Geschwindigkeit aus ihm lesen muss, so dass nur ein RAM benutzt wird.
  • Das MMU-Design ist eine reine Paket-Speicher-Weiterleitungs-Maschine. Die Notwendigkeit, in das Paket hineinzuspähen, ist beseitigt worden, um die Unterstützung von verschiedenen Protokollen zu erleichtern. Die MMU unterstützt die folgenden Paketformate: Minimalgröße-Pakete von 64 Bytes, Maximalgröße-Pakete von 9 KBytes, einen Modul-Zellkopf und einen Präambel-Zellkopf. Außerdem ist die Unterstützung des Trunking und des Spiegelns nahtlos, da die MMU nur auf ein Port-Bitmap-Seitenbandsignal reagiert, das auf dem IBR transferiert wird.
  • Der Grundfluss eines Paketes ist folgendermaßen: das erste Wort des Pakets wird auf dem IBR für den Port m gesehen, angezeigt durch RXSTART für Port m, und die COS (Dienstklasse) des Pakets wird festgestellt, was von dem Feld in dem Wort-Header-Bereich angezeigt wird. Dieses Wort wird in das Packer-RAM des Ports m in einem logischen FIFO gemäß der COS gespeichert. Nachfolgende Worte werden in dem gleichen COS-FIFO gespeichert, bis RXEND für Port m erfasst wird.
  • Wenn sich inzwischen in einem der COS-FIFOs für Port m eine Zelle (10 Worte) angesammelt hat, ist die Zelle bereit, in das Paketpool-RAM zu gehen. Es sei angemerkt, dass alle anderen Ports das Gleiche tun. Folglich können potentiell alle acht Ports zur gleichen Zeit eine Zelle haben, die bereit ist, in den Speicher geschrieben zu werden. Der Paketpool-Schiedsrichter gewährt unter allen acht Ports bei jedem Takt Schreibzugriffe auf das RAM in einer Round-Robin-Weise, und da acht Takte notwendig sind, um eine Zelle anzuhäufen, ist die Bandbreite ausreichend. Wenn eine Zelle bereit ist zu gehen, verwendet der Paketpool-Schiedsrichter den FreeQ-Zeiger und schreibt die Zelle in den Speicher. Eine Linkliste wird für das Paket aufgebaut (wenn dies nicht schon bereits geschehen ist). Dann wird das LLA mit der neuen freien Warteschlange und der neuen Paket-Linkliste aktualisiert. Dieser Vorgang wird für jede neue Zelle wiederholt.
  • Ein RXEND wird erfasst und der Zeiger zu der Kopfzelle dieses Pakets wird auf die XQ geschoben, zu der er gehört. Der Ausgangs-Scheduler bemerkt, dass ein Paket in der XQ ist, das gemäß seinem Prioritätsalgorithmus versorgt werden muss. Es teilt dies dem UPK mit, wobei er ihm die COS-Nummer gibt. Der UPK urteilt, dass es für die Übertragung bereit ist, holt den Zeiger von der Spitze der gegebenen COS aus dem XQ und verwendet ihn, um die erste Zelle aus dem Speicher aus dem LLA zu lesen. Der UPK legt die Zelle in dem FIFO gemäß dem Port-COS-Paar ab, zu dem sie gehört. TXSTART wird dem PIE bestätigt, und im Falle von TXREADY werden die Worte auf den PIE für die Übertragung getaktet.
  • Alle Zellen von dem RAM werden für das Paket abgerufen, bis EOP erscheint (was durch das Größenfeld von der XQ angezeigt wird). Die Zeiger für jede Zelle werden von dem LLA bereitgestellt, das gleichzeitig die Referenzzählung für diese Zelle dekrementiert. Wenn die erneute Zählung Null erreicht, wird die Zelle zurück in die freie Warteschlange gestellt. TXEND wird bei dem letzten Wort bestätigt. Der Entpack-FIFO stellt die Zelle gemäß dem Port-COS-Paar, zu dem sie gehört, in den FIFO.
  • Es sind mehrere Szenarien möglich. Ein Szenarium ist auf mehrere Pakete gerichtet, die an Nichtzellgrenzen enden. Es sei zum Beispiel angenommen, dass für die gleiche Port-COS ein weiteres Paket, z.B. B, direkt nach dem obigen Beispiel ankommt. Es beträgt 81 Bytes. Sofort danach kommen zwei weitere Pakete an, z.B. C und D, die ebenfalls jeweils sowohl 81 Bytes als auch N Bytes aufweisen.
  • Nach 81 Bytes (oder 10 Worten) beim Empfangen von B wird ihm eine Zelle in dem PP gegeben, und ein Eintrag dafür wird in dem LLA erstellt. Nach 1 Byte von B und 72 Bytes von C wird eine weitere Zelle gewährt und zusammen werden sie in den Speicher geschrieben. Ein entsprechender Eintrag in dem LLA wird modifiziert, um die Verknüpfung zu der Zelle herzustellen, die in 1 verwendet ist. Da RXEND für das Paket B empfangen worden ist, wird für dieses ein Eintrag in einer COS-Warteschlange in der XQ erstellt. Der EGS entscheidet, dass das Paket B übertragen wird. Er ruft die erste Zelle aus dem Speicher ab und der UPK platziert diese in seinem FIFO. Wenn 81 Bytes von B übertragen sind, ruft der EGS die nächste Zelle für das Paket B ab und platziert diese in dem gleichen Port-COS-Entpack-FIFO.
  • Dann wird 1 Byte von B übertragen. Während dieses Vorgangs beendet auch das Paket C sein Ankommen. C wird als Zellen in dem Speicher gespeichert und Einträge werden in dem XQ mit einem Offset-Wert von 1 erstellt. Die Referenzzählung für die Zellen, in denen B+D und C+D gespeichert sind, wird 2 sein. Da er den neuen Eintrag für C in der XQ bemerkt, kann der EGS/UPK den Rest von C (da ein Teil davon bereits über B ausgelesen wurde) in den Entpack-FIFO holen, wenn der Übertragungsvorgang den FIFO auf einen vorbestimmten Schwellwert entleert. Nun kann C ausgesendet werden. Schließlich werden Teile von D in dem Entpack-FIFO, in dem PP RAM und in dem Pack-FIFO zurückgelassen.
  • Ein zweites Szenarium ist auf Zeitüberwachungsmechanismen (time out mechanisms) ausgerichtet. Nun wird angenommen, dass das Paket D das letzte für diese Port-COS ist und nicht an einer sauberen 80-Byte-Grenze endet. Einige Bytes davon sitzen in dem Pack-FIFO, mehrere Zellen in dem PP und 64 Bytes davon sitzen in dem Entpack-FIFO. Wenn an dieser Port-COS nach der Zeit TLeeren (Tflush) kein Paket ankommt, wird dem Inhalt des Pack-FIFO grünes Licht signalisiert, um in das RAM zu gehen. Und es wird aufs Geratewohl eine Zelle in dem Speicher mit den restlichen Bytes einnehmen. Und ein Eintrag wird für D in der XQ erstellt. Dieser "Entleerungs"-Timer-Mechanismus ("flush" timer mechanism) wird dazu verwendet, stagnierende FIFO-Daten zu verhindern. Der XQ-Eintrag für D wird einen Offset von 2 haben, und wenn einmal ein Eintrag in der XQ für D erstellt ist, dann wird der EGS in der Lage sein, das Paket aus dem RAM gemäß den oben beschriebenen Schritten abzurufen.
  • Wenn der Ausgangs-MAC überlastet ist, (d.h. einige Ströme mit hoher Bandbreite reißen den Port an sich, oder TXREADY wird nie beobachtet), kann das Paket D im Speicher gefangen sein. Es gibt zwei Handlungsweisen: 1) Im Falle einer Überlastung des Pack-FIFO wird TLeeren eine spezielle Bedingung auslösen und es den restlichen Bytes des Pakets D erlauben, dass sie in den Speicher geschrieben werden können. 2) Wenn der Port untätig ist, wird das Paket nach der Zeit TFallenlassen (Tdrop) als zu alt betrachtet und wird fallen gelassen, und zwar sowohl von dem PP als auch möglicherweise von dem Entpack-FIFO, wenn es teilweise auch dort gespeichert ist. Das Alter des Pakets wird von seinem Zeit-Tick-Feld in der XQ bestimmt.
  • Ein drittes Szenarium umfasst das Verhungern oder die Überindizierung (over-subscription) der Ports. Im Falle der Überindizierung oder einer schlechten Verbindung werden sich die Pakete schnell in dem PP ansammeln, und wenn ein Schwellwert in der XQ erreicht ist, wird der Rückstau an alle Anstoß gebenden Ports bestätigt, um einen RÜCKSTAU-Zustand anzuzeigen. Dies erfolgt durch ein Kreditierungssystem (crediting system) auf dem MR. Wenn die Pakete in der XQ für über die Zeit TFallenlassen hinaus bleiben, werden sie fallen gelassen.
  • Im Allgemeinen wird keinem Paket ein Eintrag in der XQ erlaubt, wenn es unvollständig ist, aufgrund von Verfall fallen gelassen wird oder aufgrund von Mangel an Pufferung fallen gelassen wird. Ein Paket verlässt, wenn es einmal einer Port-COS zugewiesen ist, niemals diesen Port-COS-Strom. Dies gilt für das Leben des Pakets in dem System, ungeachtet dessen, in welchem physikalischen RAM es gespeichert ist. Da jedes Paket einer Port-COS zugewiesen wird und jedes Schreiben in den Speicher nur von einer Port-COS erfolgt, wird keine Zelle in dem Speicher zwei Pakete von unterschiedlichen Port-COSs enthalten. Da die Pakete eine Minimalgröße von nicht weniger als 64 Bytes haben müssen, können bei einer gegebenen Zellengröße von 80 Byte nie mehr als drei Pakete in der gleichen Zelle gespeichert sein. Hierbei ist TFallenlassen > TLeeren und deshalb wird kein Ereignis, bei dem ein Paket fallen gelassen wird, das Löschen der Entpack-FIFOs benötigen.
  • NACHRICHTENRINGPROTOKOLL
  • Der Nachrichtenring wird ein Token-Passing-Protokoll mit einigen Einschränkungen bezüglich der Token-Haltezeit (token holding time) verwenden, um eine Fairness bei der Bandbreitenzuweisung zu garantieren und um die maximale Zeit einer Station, für die diese ein Token gewährt bekommt, wenn sie eines benötigt, zu bestimmen. Der Ring selber ist ein 33-Bit-Bus. Die Bits [31:0] enthalten ein 32-Bit-Nachrichtenwort, und das Bit [32] ist das Token. Jeweils zu einer Zeit ist entweder eine Null oder ein Token auf dem Ring. Nachrichten bestehen aus einem Wort bis drei Worten; das erste Wort der Nachricht beschreibt den Nachrichtentyp, der auch die Nachrichtenlänge impliziert. Ein Token-Bit ist nur immer an dem letzten Wort einer Nachricht angehängt.
  • Alle Nachrichten beginnen mit einem gemeinsamen Format, das ein erstes Wort einer MR-Nachricht besitzt. Der Sechs-Bit-Opcode spezifiziert den Nachrichtentyp und spezifiziert implizit die Nachrichtenlänge. Die Fünf-Bit-Zielstation kommt als nächstes, dann die Fünf-Bit-Quellenstation (diejenige, von der die Nachricht stammt), und schließlich ein 16-Bit-Nachrichtenabhängiger Abschnitt. Einige Nachrichten haben ein zweites und eventuell ein drittes 32b Datenwort, das Dinge wie Speicheradressen, Lesedaten und Schreibdaten enthält.
  • Bestimmte Nachrichten werden als eine geteilte Transaktion behandelt; dies bedeutet, dass eine Anforderung von einer Station generiert wird, und einige Zeit später, vielleicht nachdem viele andere Nachrichten durch den Ring gewandert sind, schickt die antwortende Station eine Bestätigungsmeldung zurück.
  • KONTOFÜHRUNGSBLOCK
  • Ein anderer Abschnitt des MMU ist ein Kontoführungsblock (ACT; accounting block). Diese Logik akzeptiert einen Strom von 64b Worten bei der Kerntaktfrequenz von dem MAC, zusammen mit gewissen Seitenbandinformationen, die von dem PIE generiert werden. Es gibt keine direkte Fähigkeit, den Strom an Worten, der von dem MAC kommt, anzuhalten. Alle Pakete müssen angenommen werden (obwohl sie vielleicht später aus Mangel an Kapazität fallen gelassen werden). Der Block ist auch dafür verantwortlich, Ressourcen zu verfolgen, die von Paketen verwendet werden, die an diesem Eingang angekommen sind, und anzufordern, dass der MAC in einen PAUSEN-Zustand eintritt oder aus diesem austritt, je nachdem, wie dies angemessen ist.
  • Der ACT verwaltet einen 16-Bit-Zähler, der die Anzahl an OktByte-Worten anzeigt, die ein gegebener Eingang in die MMU abgefeuert hat und voraussichtlich Ressourcen erschöpfen wird. Der Name des Registers ist MMU_REG_IngressWord Count. Es wird auf Null zurückgesetzt und jedes Mal dann inkrementiert, wenn PIE ein gültiges Word auf dem IBR sendet (wie von dem PIE_mmu_vf-Bit angezeigt ist). Da Okt-Worte aus welchen Gründen auch immer austreten oder fallen gelassen werden, wird die Zählung dieser OktByte-Worte gelegentlich über die MR-IngressCredit-Nachricht zurück zu dem Eingang geschickt und von der Zählung der ausstehenden Worte subtrahiert.
  • Somit geht diese Zählung im Laufe der Zeit hoch und runter. Wenn die Zählung zu hoch ist, wird der Eingang den MAC bitten, eine PAUSE an seine Verknüpfungspartner zu schicken, um den Verkehr zu verlangsamen, der in den Chip eintritt. Wenn die Eingaberate fällt und sich wieder in vernünftigeren Grenzen bewegt, wird der ACT den MAC bitten, den PAUSEN-Zustand zu verlassen. Das Verhalten ist in 11 gezeigt. Obwohl der MAC das Anfordern eines jeden PAUSEN-Timer-Wertes von 0x0000 bis 0xFFFF erlaubt, benutzt der ACT-Block immer nur die beiden Werte 0x0000 oder 0xFFFF. 0xFFFF wird verwendet, wenn die PAUSE angefordert wird, und 0x0000 wird verwendet, um anzufordern, dass die PAUSE aufgehoben wird. Es ist möglich, dass der PAUSEN-Zustand, in den er für die niedrigere Hysteresegrenze eingetreten ist, trotzdem 64K Zyklen lang nicht erhalten wird. In diesem Fall wird die ACT-Einheit den MAC bitten, eine weitere PAUSEN-Anforderung zu senden, um zu gewährleisten, dass der PAUSEN-Zustand aufrechterhalten wird. Dies ist ebenfalls in 11 gezeigt.
  • EINGANGSBUSRING
  • Das Eingangsbusring-(IBR)-Modul ist relativ einfach und besitzt nur ein paar Zwecke. Erstens werden die Eingangsbusse getaktet, bevor die Daten zu der nächsten Station weitergeleitet werden. Dies vereinfacht das Top-Level-Timing, da der Pfad von Punkt zu Punkt ausgehend von benachbarten Stationen auf dem Ring geht. Zweitens ist der IBR dort, wo das Port-Umordnen stattfindet. Das heißt, die Eingangsbusse werden eine Position weitergeschoben, bevor sie auf den Ausgangsbussen hinausgesendet werden. Dies erlaubt es den Stationen, eine einheitliche, sich nicht überlappende Busverdrahtung zu besit zen, und dennoch immer noch eine aneinander angrenzende Platzierung auf dem höchsten Level zu haben. Drittens implementiert der IBR eine Leistungsoptimierungsstrategie. Während jedes Wort an einem Eingangsbus ankommt, wird seine Ausgangs-Map inspiziert. Wenn keine stromabwärtige Station dieses Wort benötigt, wird der Ausgangsbus konstant gehalten, mit Ausnahme des gültigen Bit (valid bit), das falsch gesetzt wird.
  • Jedes der Bits der acht Stränge auf dem IBR besitzt eine fest zugewiesene Bedeutung. Obwohl es neun Stationen auf dem IBR gibt, gibt es aufgrund der "Flügel"-Topologie des "Rings" nur acht Stränge im Querschnitt. Im Hinblick auf alle Stationen befinden sich vier Stationen stromaufwärts und vier stromabwärts. Jede Station registriert ihre eigenen Ausgaben, wodurch verhindert wird, dass so viele Signale den ganzen Weg um den Chip herum in einem Zyklus gesendet werden müssen. Stattdessen wird dies ersetzt durch die Komplexität, von einer Station zu jedem anderen Paar von Stationen eine andere Latenzzeit zu haben. Die unterschiedlichen Bits jeder Leitung sind exakt die gleichen Informationen, die von dem PIE-Block generiert werden. Als eine Leistungsoptimierung kann eine Station alle Bits eines Busses konstant halten und ein FALSCHES "gültiges" Bit fortpflanzen, wenn entweder das ankommende Wort nicht gültig ist oder wenn die Station feststellt, dass die Ausgangsport-Map keine stromabwärtigen Ziele aufweist. Jede Station auf dem Ring besitzt acht Eingangsbusse und acht Ausgangsbusse; vier laufen im Uhrzeigersinn, vier laufen im Gegenuhrzeigersinn.
  • 12 zeigt, wie eine Station aussieht, während 13 zeigt, wie die Ports jeder Station miteinander in Verbindung stehen. Es sei angemerkt, dass sich zwar das logische Mapping von Ports zu Eingangsbussen an jeder Station ändert, aber die Topologie von Eingängen zu Ausgängen konstant bleibt. Dies bedeutet, dass nur ein Layout benötigt wird.
  • Die Fähigkeit, ein einziges Layout zu verwenden, ist wichtig für die Erfindung. Diese Topologie bedeutet, dass Stationen, die sich auf dem Ring nebeneinander befinden, auf dem physikalischen Chip benachbart sein können und ohne irgendeinen verschwendeten Raum zwischen ihnen aneinander anliegen können, um sie miteinander zu verbinden. Jede andere Topologie würde das Verschwenden von Raum zwischen physikalischen Blöcken erfordern, um die Ausgänge eines Blocks mit den entsprechenden Eingängen des benachbarten Blocks zu verbinden. Dies erleichtert auch das Testen, da jede "Kachel" des IBR gleich ist. Es sei auch angemerkt, dass der Port 0 in 13 in beide Richtungen läuft, während die anderen Ports alle durch die Station hindurchwandern oder an dieser enden. Dies liegt daran, dass Station 0 die Quelle für die Eingang-O-Daten ist. Ein 4-Bit-Identifizierer ist jeder Station auf dem Ring gegeben, damit sie ihre Identität kennt.
  • NACHRICHTENRING
  • Der Nachrichtenring (MR) beruht auf dem folgenden Protokoll. Zu anfangs bei der Rücksetzung gibt es kein Token. Nachdem ein paar Zyklen vergangen sind, wird die Station 0 ein Token prägen und dieses auf den Ring schicken. Dieses Token-Wort wird weiterhin zirkulieren, bis eine Station Bedarf hat, eine Nachricht zu senden. Solch eine Station wird warten, bis sie an ihrem Eingangsbus ein Token ankommen sieht. Da dieses Token mit dem letzten Wort der ankommenden Nachricht verknüpft ist, wird die Station die Bits [31:0] an ihren MR-Ausgangsport weiterreichen, aber sie wird das Token-Bit entfernen. In dem nächsten Zyklus wird die Station, die sich gerade das Token gegriffen hat, damit beginnen, irgendwelche Nachrichten ausströmen zu lassen, die sie ausströmen lassen möchte, was den unten aufgeführten Bedingungen unterliegt. Wenn die Station das Aussenden von Nachrichten beendet hat, setzt sie das Token-Bit ihres Ausgangsbusses bei dem letzten Wort der letzten Nachricht auf "1".
  • Es gibt drei Klassen von Nachrichten: 1) ReadRegister (Register lesen), WriteRegister (Register schreiben), ReadMemory (Speicher lesen), WriteMemory (Speicher schreiben); 2) ReadRegisterACK (Bestätigung für Register lesen), WriteRegisterACK (Bestätigung für Register schreiben), ReadMemoryACK (Bestätigung für Speicher lesen), WriteMemoryACK (Bestätigung für Speicher schreiben); und 3) IngressCredit (Eingangsgutschrift). Nur die Station, die mit der Verbindung zu einer CPU verknüpft ist, kann Nachrichten des Typs (1) senden. Außerdem kann nur eine solche Nachricht zu jeweils einem Zeitpunkt ausstehen. "Ausstehen" bedeutet, dass die Nachricht des Typs (2), die eine Nachricht des Typs (1) vervollständigt, von dem Sender der Nachricht des Typs (1) noch nicht empfangen worden ist. Eine Station sendet eine Nachricht des Typs (2) nur in Reaktion auf eine Nachricht des Typs (1).
  • Während einer Token-Besitzzeit kann nur jeweils eine Nachricht von jeder der drei Klassen gesendet werden. Das hat die folgenden Konsequenzen. Die mit der CPU verbundene Station kann das Token für höchstens vier Zyklen halten, da sie einen WriteMemory-Befehl in drei Zyklen und eine IngressCredit-Nachricht in einem Zyklus senden kann. Obwohl sie eine Nachricht des Typs (2) in Reaktion auf eine Anforderung des Typs (1) generieren kann, wird dies nicht in der gleichen Token-Haltezeit passieren. Andere Stationen werden das Token ebenfalls für höchstens vier Zyklen halten, da sie eine ReadRegisterACK-Nachricht in drei Zyklen und eine IngressCredit-Nachricht in einem Zyklus senden können. Mit neun Stationen auf dem Ring (die mit der CPU verbundene Station plus acht XAUI-Ports) wird ein Token höchstens 15 Takte brauchen, bis es einen kompletten Kreislauf durchlaufen hat. Dies liegt daran, weil während eines Zyklus des Token immer nur eine Typ-(1)- und eine Typ-(2)-Nachricht erzeugt werden kann, und deshalb benutzen zwei Stationen jeweils vier Zyklen und sieben Stationen benutzen jeweils einen Zyklus.
  • PACKER
  • Der Zweck des Packer-(PK)-Blocks bzw. der Packer-Einheit liegt darin, einen Strom von 64-Bit-Worten von jeder der acht anderen Stationen anzunehmen. Die Ausgangsport-Map, die jedem Paket zugeordnet ist, wird dazu verwendet, zu bestimmen, welche Pakete von dem Ring durch eine gegebene Station abgelesen werden sollen. Da die Datenworte von einem gegebenen Eingang über den IBR ankommen, wird jeder Strom in 640b "Zellen" assembliert. Wenn eine Zelle vollständig ist, wird sie innerhalb von 8 Taktzyklen zu dem PP (Paketpool) transferiert. Die acht Packungseinheiten (eine entsprechend jedem Eingang) führen untereinander selber unter Verwendung einer strengen Priorität die Arbitrierung durch, um Zugriff auf den PP zu bekommen. Da jede Zelle zehn Worte enthält und ein Paket in einer Minimalgröße aus nur acht Worten bestehen kann, ist es möglich, mehrere Paketfragmente in einer Zelle zu haben.
  • 14 zeigt einige mögliche Fälle, wie Pakete in einer Zelle gruppiert sein können. Jedes kleine Kästchen in der Zelle repräsentiert ein 8-Byte-Wort. Die Pfeile mit der Bezeichnung "A", "B" oder "C" oberhalb davon zeigen Pakete. Die grau hinterlegten Kästchen zeigen unbenutzte Abschnitte von Zellen; die Gründe dafür werden weiter unten noch aufgeführt. Die halbfetten Balken zeigen die Grenzen eines Pakets. Es sei angemerkt, dass eine Zelle Fragmente von bis zu drei verschiedenen Paketen enthalten kann, und dass eine Zelle höchstens zwei Grenzen zwischen Zellen enthalten kann. Pakete sind aufgrund der toten Worte in den grau hinterlegten Kästchen nicht notwendigerweise in einer Zelle zusammenhängend.
  • Die grau hinterlegten Kästchen in 14 können aus etlichen Gründen entstehen: ein Fall wie #2 kann entstehen, wenn ein Eingang das Senden von Paketen für eine Weile stoppt; schließlich wird die PK-Einheit trotzdem die unvollendete Zelle einfach an die PP-Einheit senden, um das Stranden des Pakets "A" in der PK-Einheit zu verhindern. Andere graue Kästchen können auftreten, wenn die MAC-Einheit eine Löschanforderung signalisiert, nachdem das Paket bereits gestartet ist. Statt all die Zeiger zurückzusetzen und dergleichen, signalisiert die PK-Einheit einfach, dass die damit verbundenen Worte tot sind. Ein letzter Grund für grau hinterlegte Kästchen ereignet sich, wenn die PK-Einheit versucht, ein Paket in das LLA zu schreiben und ein oder mehrere Fragmente aufgrund von irgendeiner Art von Ressourcenbeschränkung nicht erfolgreich geschrieben werden können.
  • Die Funktion des Packens ist, Bandbreite zu sparen und die engen IGB-Bahnen geschwindigkeitsmäßig an die breite PP-Schnittstelle anzupassen. Wenn die PK-Einheit nicht mehrere Paketfragmente in einer Zelle erlauben würde, könnte es zu einer unglaublichen Insuffizienz bei der Speicherbenutzung und der Bandbreite kommen. Wenn zum Beispiel der Verkehr gänzlich aus 88-Byte-Paketen besteht, würde ein Paket zwei ganze Zellen benötigen, von denen nur 11 der 20 Worte belegt wären (55% Ausnutzung).
  • LINKLISTEN-ARRAY
  • Der Linklisten-Array-Block ist das Linklistengehirn der MMU. Es führt die folgenden Funktionen durch: es akzeptiert Schreibanforderungen von dem PK für jedes Paket, erstellt eine Linkliste für jedes Paket und regelt dessen XQ-Eintragseinfügung, und akzeptiert Leseanforderungen von dem UPK, befreit Zellen, die nicht mehr länger von Paketen benötigt werden. Das LLA verwaltet auch eine 'freie Warteschlangen'-Linkliste, verwaltet Referenzzähler für jede Zelle und führt das Löschen von Paketen aufgrund von expliziten oder impliziten Bedingungen durch, gibt die gelöschten Linklisten zurück an die freie Warteschlange.
  • Zusammenfassend gibt es 8 unterschiedliche Fälle, in denen Pakete (A, B und C) in einer 80-Byte-Zelle gespeichert werden können (siehe 14).
  • Figure 00330001
  • Die acht Fälle sind entsprechend mit den 4 Signalen (sof0, sof1, eof0, eof1) von dem PK codiert. Indem es diese decodiert, führt das LLA eine spezielle Transaktion für jeden Befehl durch.
  • Es gibt zwei Lösch-Typen in dem LLA: Explizit und implizit.
  • Explizites Löschen: Der PK bestätigt das "Lösch"-Bit bei EOF, um ein schlechtes Paket anzuzeigen. Demgemäß wird das LLA das Löschen durchführen.
  • Implizites Löschen: Der PK macht Schreibversuche, aber da der vorherige Schreibvorgang verarbeitet wird, wird "voll" zutreffend. Somit hat das LLA nicht mehr länger den Platz, das Paket zu speichern und wird das Paket fallen lassen. Im nächsten Zyklus muss der PK realisieren, was geschehen ist. Er sollte die restlichen Bytes PLUS die Bytes, die gerade dem LLA gegeben wurden, verwerfen und zurückgutschreiben. Es sei angemerkt, dass der PK niemals ein explizites Löschen durchführt. Selbst wenn er ein Voll-Signal von dem LLA abtastet, wird der PK den nächsten Takt abtasten, um zu sehen, ob der Versuch erfolgreich war. Der Grund dafür ist, weil es sein kann, dass während des vorhergehenden Zyklus eine Zelle frei wird.
  • Es existieren vier Auslöser für die volle Bedingung:
    • 1) PP wird voll – im Speicher ist kein Zellenpuffer mehr frei
    • 2) Die COS-Klasse in der XQ erreicht das Paketbenutzungslimit
    • 3) Die COS-Klasse in der XQ erreicht das Wortbenutzungslimit
    • 4) Der XQ-Anforderungs-FIFO wird in dem LLA-Block voll (selten)
  • Die Bedingungen 1) und 2) sowie 4) werden in dem LLA-Block implementiert, während 3) in dem XQ-Block implementiert wird.
  • Wenn ein Löschen benötigt wird, entweder explizit oder implizit, muss das LLA die Linkliste, die von dem Anstoß gebenden Paket besetzt ist, an die freien Warteschlange abtreten. Da jede Zelle bis zu drei Pakete aufweisen kann, die darin gespeichert sind, schafft dies eine ziemlich ressourcenschwere Operation. Die Operation bei dem ungünstigsten Betriebsfall, in dem dies durchgeführt wird, ist:
    • 1 LLA (Port.Tail) = LLA (FreeHead);
    • 2 FreeHead = LLA (Port.Head);
    • 3 UsedCellCount = UsedCellCount – Port.CellCount;
    • 4 LLARefCnt (Port.Head) = LLARefCnt (Port.Head) – 1;
    • #1,2: Linklistenoperation, um die gelöschte Zelle zu säubern und zurück in die freie Liste zu verpflanzen.
    • #3: Zellenzählung in dem System aktualisieren.
    • #4: Referenzzähler für die Kopfzelle des Pakets aktualisieren.
  • Da die Operationen 1, 2, 3, 4 Ressourcenkonflikte verursachen, hat man die folgende parallele Logik ersonnen:
    • 1 GraveYardHead = Port.HeadPtrPurge;
    • LLA(Port.Tail) = GraveYardTail;
    • 2 FreeHead = Port.HeadPtrPurge;
    • 3 PurgedCellCount = PurgedCellCount + Port.CellCount;
    • 4 LLARefCnt2 (Port.Head) = 1;
  • #1) GraveYard-Zeiger nehmen eine einzige Linkliste für alle gelöschten Zellen in Anspruch. Diese Linkliste fügt sich (durch Dolncarnate) während eines UPK-Lesevorgangs oder eines zur Verfügung stehenden freien Zyklus wieder zusammen. Dies verhindert, dass die gelöschte Linkliste zum gleichen Zeitpunkt wie der Schreibvorgang erneut verknüpft werden muss.
  • #2) HeadPtrPurge verfolgt korrekt, wo die verpflanzte Linkliste des Pakets starten sollte, indem es auf SOF schaut und für die SOF-Zelle und nachfolgende DoMID-Zellen, die die nächsten in der Leitung sind, Löschvorgänge durchführt. Dadurch wird ein extra Nachschauen in dem LLA vermieden, wenn die HeadPtr-Zelle für das gelöschte Paket auch von einem anderen Paket benutzt wird.
  • #3) PurgedCellCount ist ein separater Zähler, der genau das verfolgt, was er aussagt (Zählung der gelöschten Zellen). Er wird mit dem UsedCell-Count beim Dolncarnate-Zyklus zusammengeführt.
  • #4) LLARefCnt2 ist ein sekundärer Referenzzählungsspeicher, der bei DoReadCell benutzt wird, um die endgültige Referenzzählung für diese Zellenposition zu bestimmen. Dies ist nützlich, wenn die HeadPtr-Zelle der gelöschten Linkliste auch von einem anderen Paket benutzt wird, und folglich muss ihr FragCount –1 sein.
  • Mit der obigen Implementation können gelöschte Zellen unter schweren Schreibbedingungen eine Verzögerung in der Verfügbarkeit des freien Pools bis zum nächsten freien Zyklus oder Lesezyklus mit sich bringen. Da der Takt und die Speicherzugriffsbandbreite überdimensioniert (over designed) worden sind, steht ein freier Zyklus unmittelbar innerhalb von 8 Ticks bevor.
  • SPEICHERFEHLER-WIEDERHERSTELLUNG
  • Als Schutzmaßnahme gegen einen möglichen Speicherfehler bei einem riskanten 0,13um-Vorgang und einer RAM-Verwendung hat die Fabric der vorliegenden Erfindung einen Weg für die Software bewerkstelligt, um Speicherfehler zu entdecken und sich von solchen Störungen wieder zu erholen, um die Funktion fortzusetzen. Das MMU-Speicherwiederherstellungsmerkmal ist in 15 veranschaulicht. Die linke Seite der Figur veranschaulicht die Hardware-Zustände und die rechte Seite zeigt das Software-Ablaufdiagramm. Das Software-Ablaufdiagramm steuert den Zustandsübergang der Hardware, und der Fluss ist horizontal ausgerichtet. Dieses Diagramm zeigt die Fähigkeit der Fabric, korrupte Adressen in dem Hauptspeicher dynamisch auszublenden (masked out), sowie auch die Wiederherstellung durch eine Software-Rücksetz-Sequenz. Es ist wichtig anzumerken, dass es zwei Typen von Speicherfehlern gibt, die das System erfasst: #1) ECC-Fehler in dem Hauptspeicherpool, und #2 Paritätsfehler in verschiedenen Hilfs-SRAMs. Wie gezeigt ist, kann #1 dynamisch erfasst und durch Software ausgeblendet werden, und #2 kann nur durch eine Software-Rücksetz-Sequenz wiederhergestellt werden.
  • PAKETPOOLSPEICHER
  • Der Paketpool-(PP)-Speicherblock ist ein Wrapper für die Paketpool-SRAM-Makros, die Paketdaten von dem PK-Modul speichern. Nachdem die PK-Einheit eine Reihe von Worten in eine Zelle gepackt hat, wird die Zelle automatisch in den PP geschrieben, und zwar bei einer Adresse, die von dem LLA bestimmt wird. Das Paket wird in dem PP leben, bis der UPK-Block alle Paketfragmente aus der Zelle herausliest. Je nach der Ausrichtung können 1, 2 oder 3 Paketfragmente in der Zelle sein.
  • Dieses SRAM unterstützt einen Lesevorgang oder einen Schreibvorgang pro Kerntaktzyklus. Unter maximaler augenblicklicher Belastung gibt es acht Schreibvorgänge (einen von jedem Eingang) und zwei Lesevorgänge (für den Ausgang) pro neun Zyklen. Diese maximale Belastungsbedingung kann tole riert werden, bis der PP voll ist. Aber typischerweise (und ertragbarerweise) gibt es einen Schreibvorgang und zwei Lesevorgänge pro neun Zyklen.
  • PAKETPOOLSTEUERUNG
  • Das Paketpoolsteuerungsmodul berechnet Fehlerprüf- und korrektur(ECC)-Bits für Schreibdaten aus dem PK, prüft (und korrigiert möglicherweise) Lesedaten zu dem UPK und sieht einen Host-Lese-/Schreibzugriff (über den MR) vor. ECC-Fehler werden protokolliert und gezählt und dem Host zur Verfügung gestellt, um über den MR einen Lesevorgang durchzuführen.
  • Um einen Schutz gegen mögliche Fehler in dem Paketpoolspeicher vorzusehen, sind Extra-ECC-Bits an die Daten angehängt. Wegen der extrem breiten Schnittstelle zu dem RAM wäre es unpraktisch, eine einzige ECC-Paritätsgruppe für alle Bits zu haben. Stattdessen wird die ECC auf vier 160-Bit-Worte berechnet. Jedes Wort ist von 9 ECC-Bits geschützt. Dies ist ausreichend, um eine volle SECDED-(single error correcddouble error detect = Einfachfehlerkorrektur-/Doppelfehlererfassungs-)Abdeckung bereitzustellen. Um einen weiteren Schutz gegenüber SRAM-Fehlern vorzusehen, wird jede Gruppe der ECC-Bits mit der Adresse berechnet, die an die Daten angehängt ist. Dies hilft dabei, Fälle zu entdecken, in denen das SRAM vielleicht die falsche Adresse liest.
  • TRANSAKTIONS-WARTESCHLANGEN
  • Die Transaktions-Warteschlangen (XQ) liefern die Ordnungsinformationen an die Pakete. Die XQ implementiert eine FIFO-(first in first out; zuerst hinein, zuerst hinaus)-Warteschlange für acht COS. Im Wesentlichen ist der Eintrag ein Zeiger in den PP, der anzeigt, wo das Paket gespeichert ist, zusammen mit einer Anzeige der Größe des Pakets. Diese Information wird durch die PK-Schnittstelle zu dem Zeitpunkt geliefert, an dem die Zelle, die das letzte Wort eines Pakets enthält, in den PP geschrieben wird. Die Informationen werden in der XQ gespeichert und umfassen Felder für einen Tick, die Paketgröße, den Offset, die Eingangsport-# und einen Zeiger.
  • Der Zeiger ist der Kopfzeiger auf das Paket in dem Speicher. Die Eingangsportnummer gibt an, von welchem Port dieses Paket gekommen ist, und wird für den UPK verwendet. Der Offset zeigt an, wo in der Zelle dieses Paket wirklich beginnt (Effekte des PK-Packens). Die Paketgröße unterstützt ein auf Bytes basierendes, gewichtetes Fair Queuing und wird auch von dem UPK verwendet. Der Tick ist eine Zeitstempelersetzung, was oben bereits diskutiert worden ist.
  • Die 2K-Einträge können in bis zu acht verschiedene Warteschlangen für unterschiedliche COS-Levels aufgeteilt werden. Die Größe jeder COS-Klasse ist über Paketbegrenzungsregister programmierbar, aber der Gesamtwert aller definierter Klassen muss 2K oder weniger betragen. Durch das Sortieren der Pakete in separate Warteschlangen für unterschiedliche COS-Klassen wird es Paketen mit höherer Priorität erlaubt, vor Paketen mit niedrigerer Priorität auszutreten, selbst wenn die Pakete mit der niedrigeren Priorität zuerst angekommen sind. Während das LLA-Modul Daten für die XQ-Einträge liefert, liest der Ausgangs-Scheduler-Block (EGS) die vier ältesten Einträge von jeder der acht COS-Klassen aus, um zu entscheiden, welches Paket als nächstes gesendet werden soll.
  • Die XQ implementiert einen speziellen Weg für das Paketaltern, der das Problem des Speicherns von breiten Zeitstempelvektoren für jedes Paket sowie auch das zyklische Adressfolgeproblem (wraparound problem) für den Vektorwert erleichtert. Der 3-Bit-Tick-Wert stellt den "Zeitstempel" für ein Paket dar. Jeder Tick repräsentiert eine Zeit, die von dem Register für die maximale Ausgangszeit spezifiziert wird, wobei das Register ein 24-Bit-Register ist. Die Granularität ist 34us und sie spezifiziert, wie oft ein Tick stattfindet. Der "Tick"-Wert saturiert bei 7 und ein 7-Tick-Wert für ein Paket zeigt an, dass das Paket zu alt ist und gelöscht werden wird.
  • Zum Beispiel wird für einen Wert von EgrMaxtime = 24'h1E6928 (= 1,993·106 in dec) alle 1,993E6·34us = 68 Sekunden ein Tick vorkommen. Der Tick saturiert nach 7 Ticks, was 68·7 = 480 s = 8 Minuten ist. Folglich werden alle Pakete, die 8 Minuten oder älter sind, verworfen.
  • AUSGANGS-SCHEDULER
  • Während die XQ die Reihenfolge der Pakete in einer gegebenen COS-Klasse enthält, ist es die Verantwortung des Ausgangs-Scheduler (EGS), herauszufinden, welche der acht COS-Klassen als nächste ein Paket senden wird. Der EGS kann programmiert werden, um verschiedene Typen von Warteschlangen-Scheduling-Algorithmen zu ermöglichen.
  • In einem Ausführungsbeispiel wird ein Scheduling-Algorithmus auf der Basis einer strengen Priorität verwendet. Mit diesem Algorithmus treten alle ausstehenden Pakete in der Warteschlange mit der höchsten Priorität aus, bevor irgendeine Warteschlange mit einer niedrigeren Priorität eine Chance dazu erhält. Wenn die Warteschlange mit der höchsten Priorität leer ist, dann können die Pakete aus der Warteschlange mit der nächstniedrigeren Priorität austreten, und so weiter. Wenn ein Paket in die Warteschlange einer Warteschlange mit einer höheren Priorität eintritt, beendet das laufende Paket das Austreten und die Warteschlange mit der höheren Priorität wird bedient. Der Hauptnachteil dieses Schemas ist das potentielle Verhungern der Warteschlangen mit einer niedrigen Priorität.
  • In einem bevorzugten Ausführungsbeispiel wird ein gewichtetes Round-Robin-Scheduling (WRR-Scheduling) verwendet. Dieses Schema mildert den Nachteil des Schedulingschemas auf der Basis einer strengen Priorität dadurch ab, dass es eine bestimmte Minimumbandbreite für alle Warteschlangen bereitstellt, so dass keine der Warteschlangen verhungert. Die Bandbreite ist tatsächlich in einem gewissen Sinne ein programmierbarer Parameter in dem EGS und wird durch die Switch-Applikation programmiert.
  • Jeder COS wird durch ein Register eine Wertigkeit zugeordnet. Diese Wertigkeit wird an ein Zählerregister weitergegeben, das bei jedem Paketausgangsereignis für diese COS dekrementiert. Wenn alle COS-Zähler Null erreichen, werden die Zähler mit den programmierten Wertungen neu geladen. Eine "Markierung" (peg) wird beibehalten, um eine Round-Robin-Arbitrierung zwischen den achts COSs vorzusehen, d.h. jede Warteschlange darf in jeder Arbitrierungsrunde ein Paket senden, bis ihr Wertigkeitswert auf Null dekrementiert.
  • Wenn kein Paket für die COS zur Verfügung steht, bei der sich die Markierung befindet, können sich die anderen COS-Warteschlangen um den Slot bewerben, wobei eine Kreisprioritätsbehandlung verwendet wird, d.h. wenn die Markierung bei 2 ist, dann werden 1 -> 0 -> 3 in dieser Reihenfolge evaluiert. Wenn die Markierung bei 3 ist, dann werden 2 -> 1 -> 0 in dieser Reihenfolge evaluiert. COSs, deren Wertigkeiten zu dem Zeitpunkt Null betragen, dürfen sich nicht bewerben. Aber wenn keine anderen COSs Pakete zur Verfügung haben, dürfen diese gehen, damit die Bandbreite nicht vergeudet wird (dies ist der arbeitseinsparende Aspekt).
  • Es sei angemerkt, dass es der tatsächlichen Übertragungslogik in dem WRR-Modus erlaubt ist, es auszuwählen, eine andere COS-Warteschlange austreten zu lassen, obwohl der Schiedsrichter es dem COS X gewähren könnte, zu gehen. Dies ist in der Tat erlaubt und wird nicht die WRR-interne Operation beeinflussen. Aber die entkoppelnde Natur einer solchen Operation wird wahrscheinlich von der Fairness/Wertigkeit abweichen, die ursprünglich durch die Programmierung beabsichtigt worden ist.
  • Ein Nachteil des WRR ist, dass es in pathologischen Fällen unfair wird. Zum Beispiel dann, wenn ein Kanal viele lange Pakete mit maximaler Größe überträgt und ein anderer 64-Byte-Pakete überträgt. Die "Mini-Gram"-Bandbreite ("mini-gram" bandwidth) des Kanals wird gefährdet, wenn die Bandbreitenzuweisung auf einer Paketzählung basiert. Es sind viele Studien bezüglich des fairen Scheduling (Fair Scheduling) durchgeführt worden. Während der theoretisch idealste Warteschlangenbildungsalgorithmus, der als allgemeines Prozessormodell (GPS; general processor model) bekannt ist, in der Implementierung nicht durchführbar ist, kann eine bessere Annäherung mit einem Defizit-Round-Robin-Algorithmus erreicht werden. Der letztgenannte Algorithmus kann in unterschiedlichen Ausführungsbeispielen unterstützt werden. Der Algorithmus passt sehr gut zu der Min-Max-Voraussetzung für das gewichtete Prioritäts-Scheduling. Der Algorithmus ist arbeitsersparend, d.h. die Ressource ist nie im Ruhezustand, wenn ein Paket darauf wartet, versorgt zu werden. Er basiert auf Bytes und erlaubt ein strengeres Protokollieren des realen Verkehrsdurchsatzes.
  • Die "Wertigkeit" für jeden Kanal ist relativ zu einem "Quanten"-Wert, der dem Algorithmus zugewiesen wird. Tatsächlich ist die Wertigkeit jedes Kanals ein ganzzahliges Vielfaches des Quantenwertes. Der Quantenwert sollte auf eine angemessene Bytelänge des Verkehrsverlaufs gesetzt sein. In der Ethernet-Welt hat das Verkehrsprofil eine zweigipflige Verteilung, die um Paketlängen von 64 Byte und 1500 Byte zentriert ist.
  • ENTPACKER
  • Der Entpacker (UPK; unpacker) liest Zellen für Pakete aus, die von dem EGS ausgewählt werden, und reformatiert sie in 64-Bit-Worte für den MAC. Ein Blockdiagramm für den Entpacker ist in 16 veranschaulicht. Der Entpacker fordert ein neues Paket über ein Signal an, und wenn sowohl dieses Signal als auch ein Bereit-Signal wahr sind, dann wird in dem nächsten Zyklus ein neuer Satz von Paketinformationen von der XQ ankommen.
  • Der Entpacker verwendet die Informationen von der XQ (Größe, Zeiger, Port, etc.), um eine Sequenz von Leseanforderungen an das LLA für jedes Paket zu erstellen. Die erste Adresse, die für ein Paket ausgelesen wird, ist der Zeiger, der von der XQ empfangen wird. Nachfolgende Lesevorgänge verwenden den Wert, der von dem LLA empfangen worden ist. Es sei angemerkt, dass die Schnittstelle erlaubt, dass LLA-Lesevorgänge in aufeinander folgenden Zyklen auftreten. Wenn der UPK dies tun muss, bestätigt er ein Signal, das bewirkt, dass das LLA anstatt aus dem Zellenzeiger aus der nächsten Zellenzeigerposition liest. Dies erleichtert das Timing, indem die Notwendigkeit eliminiert wird, dass der UPK kombinatorisch den Zellenzeiger aus dem nächsten Zellenzeiger generieren muss. Es sei angemerkt, dass das LLA UPK-Lesevorgänge blockieren kann, falls dies notwendig ist.
  • Die gelesenen Daten von dem PP-Speicher kommen an dem Eingang des Paketpool-Steuerungsmodul nach einer festgelegten Verzögerung (4 Zyklen) von einer erfolgreichen Leseanforderung an das LLA an. Die ECC-Pipeline in dem Paketpool-Steuerungsmodul benötigt zwei Zyklen zum Überprüfen und möglicherweise Korrigieren von Fehlern von dem RAM. Diese zwei Pipe-Stufen werden von dem UPK-Modul als Puffer verwendet. Die geeigneten Worte der Zellendaten von dem Paketpool-Steuerungsmodul werden gemultiplext und in den Ausgangs-FIFO mit der Geschwindigkeit von einem Wort pro Zyklus eingefügt.
  • Wenn Pakte in der XQ altern, werden die Pakete von dem PP-Speicher gelöscht, aber nicht an den MAC gesendet. Informationen bezüglich veralteter Pakete werden in den Löschpuffer platziert, so dass ein anderes Paket entnommen werden kann. Durch das Plazieren der Informationen bezüglich gelöschter Pakete in den Löschpuffer kann der UPK weiter nach guten Paketen suchen, wodurch irgendwelche Unterbrechungen in dem Datenfluss zu dem MAC minimiert werden. Der UPK kann Lesevorgänge für gute Pakete sowie auch gelöschte Pakete auf einer Zyklus-um-Zyklus-Basis ausgeben. Wenn sowohl gute als auch gelöschte Pakete versorgt werden, wird den guten Paketen die Priorität gegeben. Gelöschte Pakete werden von dem LLA genauso wie gute Pakete ausgelesen, mit der Ausnahme, dass ein Löschsignal bestätigt wird. Dies bewirkt, dass das LLA die indizierte Zelle befreit, aber die Ausgabe eines Lesevorgangs an den PP-Speicher vermeidet (wodurch die Verfälschung (corruption) von Daten zu dem MAC vermieden wird).
  • Da die Paketpipeline zu dem MAC in dem UPK ziemlich lang ist (bis zu 13 Pakete, je nach Größe und Ausrichtung), ist es wahrscheinlich, dass Pakete, die in dem UPK gespeichert sind, gelegentlich veralten. Um sich dem anzupassen, wird das Alter jedes Pakets in dem Alterpuffer verwaltet. Wenn Pakete von der XQ ankommen, wird deren Alter in dem Alterpuffer aufgezeichnet (der als ein FIFO organisiert ist). Wann immer der Eingangs-Zeittick aktiviert wird, werden alle Alter um 1 inkrementiert (aber bei 7 tritt eine Sättigung ein). Immer wenn ein Paket zu dem MAC gesendet wird, wird sein Alter aus dem Alterpuffer entnommen. Bei Paketen, deren Alter 7 ist, wird bei dem letzten Wort ein Fehlersignal aktiviert.
  • Um zu erlauben, dass das ACT-Modul korrekt Pausen an den MAC ausgibt, wenn der PP-Speicher eines Ports voll ist, sendet der UPK Gutschriften an das PK-Modul über Signale, die nach jedem erfolgreichen Lesevorgang zu dem LLA gesendet werden (sowohl für gute Pakete als auch für diejenigen, die gelöscht werden). Bei jedem Zyklus gibt der UPK die Anzahl an veralteten Paketen aus, die von der XQ empfangen wurden, oder die veralten, wenn sie an den MAC ausgegeben werden. Eine Gesamtzählung an veralteten Paketen wird ebenfalls verwaltet.
  • Die oben diskutierte Konfiguration der Erfindung ist in einem bevorzugten Ausführungsbeispiel auf einem Halbleitersubstrat wie z.B. Silizium verkörpert, mit geeigneten Halbleiterherstellungstechniken und auf der Grundlage eines Schaltungslayouts, das – basierend auf den oben diskutierten Ausführungsbeispielen – den Fachleuten auf diesem Gebiet offensichtlich sein würde. Ein Fachmann auf dem Gebiet des Halbleiterdesigns und der Halbleiterherstellung wäre in der Lage, die verschiedenen Module, Schnittstellen und Tabellen, Puffer, etc. der vorliegenden Erfindung auf der Grundlage der oben diskutierten Architekturbeschreibung auf einem einzigen Halbleitersubstrat zu implementieren. Es würde auch im Rahmen der vorliegenden Erfindung liegen, die offenbarten Elemente der Erfindung in diskreten elektronischen Bauteilen zu implementieren, wodurch die funktionalen Aspekte der Erfindung ausgenutzt würden, ohne die Vorteile durch die Verwendung eines einzigen Halbleitersubstrats zu maximieren.
  • Obwohl die Erfindung auf der Grundlage dieser bevorzugten Ausführungsbeispiele beschrieben worden ist, sollte es den Fachleuten auf diesem Gebiet offensichtlich sein, dass bestimmte Modifikationen, Variationen und alternative Konstruktionen offensichtlich wären, obwohl innerhalb des Schutzumfangs der Erfindung geblieben wird. Um die Grenzen der Erfindung zu bestimmen, sollte deshalb Bezug auf die angehängten Ansprüche genommen werden.

Claims (8)

  1. Verfahren zum Weiterleiten von Daten in einer Netz-Switch Fabric, wobei das Verfahren folgende Schritte umfasst: Lesen eines ersten Paketabschnitts, der kleiner ist als eine volle Paketlänge, um bestimmte Paketinformationen zu ermitteln, wobei die bestimmten Paketinformationen eine Quelladresse und eine Zieladresse umfassen; Bestimmen wenigstens eines Ausgangsports auf der Grundlage eines Nachschlagens in einer Weiterleitungstabelle; gekennzeichnet durch das Bestimmen einer Dienstklasse für das ankommende Datenpaket auf der Grundlage der bestimmten Paketinformationen; Zuweisen von Daten aus dem ankommenden Datenpaket zu einer Warteschlange auf der Grundlage des wenigstens einen Ausgangsports und der Dienstklasse; Wiederholen der oben genannten Schritte für weitere ankommende Datenpakete und Zuweisen von Daten aus diesen ankommenden Datenpaketen zu einer Reihe von Warteschlangen; Weiterleiten der Datenpakete sequentiell aus jeder Warteschlange der Reihe von Warteschlangen.
  2. Verfahren nach Anspruch 1, wobei der Schritt des Zuweisens von Daten aus dem ankommenden Datenpaket zu einer Warteschlange das Packen der Daten aus dem ankommenden Datenpaket in Zellen, die eine spezifische Zellenlänge aufweisen, und das Zuweisen der gepackten Daten zu der Warteschlange umfasst.
  3. Verfahren nach Anspruch 1, wobei der Schritt des Bestimmens einer Ausgangsport-Bitmap die folgenden Schritte umfasst: Bestimmen, ob ein Ziel für das ankommende Datenpaket ein Trunked Port ist; Lesen aus einer Trunk Group Tabelle, und Ableiten der Ausgangsport-Bitmap auf der Grundlage von Einträgen in der Trunk Group Tabelle.
  4. Verfahren nach Anspruch 1, wobei die bestimmten Paketinformationen einen Opcode-Wert umfassen, der identifiziert, ob das ankommende Datenpaket ein Unicast-Paket, ein Multicast-Paket, ein Broadcast-Paket ist oder zu einem Zielanfrage-Fehler geführt hat.
  5. Netz-Switch Fabric zum Weiterleiten von Daten, mit: Einrichtungen zum Empfangen eines ankommenden Datenpakets an einem ersten Port der Fabric; Einrichtungen zum Lesen eines ersten Paketabschnitts, der kleiner ist als eine volle Paketlänge, um bestimmte Paketinformationen zu ermitteln, wobei die bestimmten Paketinformationen eine Quelladresse und eine Zieladresse umfassen; Einrichtungen zum Bestimmen wenigstens eines Ausgangsports auf der Grundlage eines Nachschlagens in einer Weiterleitungstabelle; dadurch gekennzeichnet, dass die Netz-Switch Fabric des Weiteren Folgendes umfasst: Einrichtungen zum Bestimmen einer Dienstklasse für das ankommende Datenpaket auf der Grundlage der bestimmten Paketinformationen; Einrichtungen zum Zuweisen von Daten aus dem ankommenden Datenpaket zu einer Warteschlange einer Reihe von Warteschlangen auf der Grundlage des wenigstens einen Ausgangsports und der Dienstklasse; und Einrichtungen zum Weiterleiten von Datenpaketen sequentiell aus jeder Warteschlange der Reihe von Warteschlangen.
  6. Netz-Switch Fabric nach Anspruch 5, wobei die Einrichtungen zum Zuweisen von Daten aus dem ankommenden Datenpaket zu einer Warteschlange Einrichtungen zum Packen der Daten aus dem ankommenden Datenpaket in Zellen, die eine spezifische Zellenlänge aufweisen, und Einrichtungen zum Zuweisen der gepackten Daten zu der Warteschlange umfassen.
  7. Netz-Switch Fabric nach Anspruch 5, wobei die Einrichtungen zum Bestimmen einer Ausgangsport-Bitmap Folgendes umfassen: Einrichtungen zum Bestimmen, ob ein Ziel für das ankommende Datenpaket ein Trunked Port ist; Einrichtungen zum Lesen aus einer Trunk Group Tabelle, und Einrichtungen zum Ableiten der Ausgangsport-Bitmap auf der Grundlage von Einträgen in der Trunk Group Tabelle.
  8. Netz-Switch Fabric nach Anspruch 5, wobei die bestimmten Paketinformationen einen Opcode-Wert umfassen, der identifiziert, ob das ankommende Datenpaket ein Unicast-Paket, ein Multicast-Paket, ein Broadcast-Paket ist oder zu einem Zielanfrage-Fehler geführt hat.
DE60126533T 2000-06-19 2001-06-19 Vermittlungsstelle mit einer Speicherverwaltungeinheit zur Verbesserung der Flusssteurung Expired - Lifetime DE60126533T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US21259200P 2000-06-19 2000-06-19
US212592P 2000-06-19
US22930500P 2000-09-01 2000-09-01
US229305P 2000-09-01

Publications (2)

Publication Number Publication Date
DE60126533D1 DE60126533D1 (de) 2007-03-29
DE60126533T2 true DE60126533T2 (de) 2007-11-22

Family

ID=26907293

Family Applications (4)

Application Number Title Priority Date Filing Date
DE60115154T Expired - Lifetime DE60115154T2 (de) 2000-06-19 2001-06-19 Verfahren und Vorrichtung zum Datenrahmenweiterleiten in einer Vermittlungsstelle
DE60126533T Expired - Lifetime DE60126533T2 (de) 2000-06-19 2001-06-19 Vermittlungsstelle mit einer Speicherverwaltungeinheit zur Verbesserung der Flusssteurung
DE60119224T Expired - Lifetime DE60119224T2 (de) 2000-06-19 2001-06-19 Speicherverwaltungseinheit für eine Vermittlungsstelle
DE60111457T Expired - Lifetime DE60111457T2 (de) 2000-06-19 2001-06-19 Vermittlungsanordnung mit redundanten Wegen

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE60115154T Expired - Lifetime DE60115154T2 (de) 2000-06-19 2001-06-19 Verfahren und Vorrichtung zum Datenrahmenweiterleiten in einer Vermittlungsstelle

Family Applications After (2)

Application Number Title Priority Date Filing Date
DE60119224T Expired - Lifetime DE60119224T2 (de) 2000-06-19 2001-06-19 Speicherverwaltungseinheit für eine Vermittlungsstelle
DE60111457T Expired - Lifetime DE60111457T2 (de) 2000-06-19 2001-06-19 Vermittlungsanordnung mit redundanten Wegen

Country Status (4)

Country Link
US (7) US6567417B2 (de)
EP (4) EP1168726B1 (de)
AT (1) ATE354227T1 (de)
DE (4) DE60115154T2 (de)

Families Citing this family (205)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6405258B1 (en) * 1999-05-05 2002-06-11 Advanced Micro Devices Inc. Method and apparatus for controlling the flow of data frames through a network switch on a port-by-port basis
US7315552B2 (en) * 1999-06-30 2008-01-01 Broadcom Corporation Frame forwarding in a switch fabric
US6681270B1 (en) * 1999-12-07 2004-01-20 Texas Instruments Incorporated Effective channel priority processing for transfer controller with hub and ports
US6502097B1 (en) * 1999-12-23 2002-12-31 Microsoft Corporation Data structure for efficient access to variable-size data objects
JP2001203739A (ja) * 2000-01-18 2001-07-27 Fujitsu Ltd 通信経路制御方法及びその装置
GB2359692B (en) * 2000-02-26 2003-06-25 3Com Corp Stackable network unit including registers for identifying stack members and trunk ports
US6901452B1 (en) * 2000-03-02 2005-05-31 Alcatel Selectable prioritization for data communication switch
DE60115154T2 (de) * 2000-06-19 2006-08-10 Broadcom Corp., Irvine Verfahren und Vorrichtung zum Datenrahmenweiterleiten in einer Vermittlungsstelle
JP3646638B2 (ja) * 2000-09-06 2005-05-11 日本電気株式会社 パケット交換装置及びそれに用いるスイッチ制御方法
US7227862B2 (en) * 2000-09-20 2007-06-05 Broadcom Corporation Network switch having port blocking capability
US6914881B1 (en) * 2000-11-28 2005-07-05 Nortel Networks Ltd Prioritized continuous-deficit round robin scheduling
FR2818066B1 (fr) 2000-12-12 2003-10-10 Eads Airbus Sa Procede et dispositif de transmission deterministe de donnees asynchrones mises en paquet
GB2370380B (en) 2000-12-19 2003-12-31 Picochip Designs Ltd Processor architecture
US20020080808A1 (en) * 2000-12-22 2002-06-27 Leung Mun Keung Dynamically modifying network resources for transferring packets in a vlan environment
US6965602B2 (en) * 2001-01-12 2005-11-15 Peta Switch Solutions, Inc. Switch fabric capable of aggregating multiple chips and links for high bandwidth operation
US20020131412A1 (en) * 2001-01-12 2002-09-19 Dipak Shah Switch fabric with efficient spatial multicast
US20030021230A1 (en) * 2001-03-09 2003-01-30 Petaswitch Solutions, Inc. Switch fabric with bandwidth efficient flow control
US7051115B2 (en) * 2001-04-19 2006-05-23 Lenovo (Singapore) Pte. Ltd. Method and apparatus for providing a single system image in a clustered environment
US7167480B1 (en) * 2001-06-21 2007-01-23 Lighthouse Capital Partners Iv, Lp Multi-service data transport architecture
US20030016668A1 (en) * 2001-07-17 2003-01-23 Antonio Mugica Method of device-to-device communications in hybrid distributed device control networks
US7415031B2 (en) * 2001-07-30 2008-08-19 Null Networks Llc Data link/physical layer packet diversion and insertion
US7646782B1 (en) 2001-07-30 2010-01-12 Primrose Donald R Data link/physical layer packet buffering and flushing
US7227841B2 (en) 2001-07-31 2007-06-05 Nishan Systems, Inc. Packet input thresholding for resource distribution in a network switch
US7031331B2 (en) * 2001-08-15 2006-04-18 Riverstone Networks, Inc. Method and system for managing packets in a shared memory buffer that serves multiple output links
EP1461890B1 (de) * 2001-09-04 2008-12-17 Rumi Sheryar Gonda Verfahren zum unterstützen von sdh/sonet-aps auf ethernet
US7715437B2 (en) * 2001-09-27 2010-05-11 Broadcom Corporation Highly integrated media access control
US7295563B2 (en) 2001-10-01 2007-11-13 Advanced Micro Devices, Inc. Method and apparatus for routing packets that have ordering requirements
US7274692B1 (en) * 2001-10-01 2007-09-25 Advanced Micro Devices, Inc. Method and apparatus for routing packets that have multiple destinations
US7046660B2 (en) * 2001-10-03 2006-05-16 Internet Machines Corp. Switching apparatus for high speed channels using multiple parallel lower speed channels while maintaining data rate
US20030076826A1 (en) * 2001-10-23 2003-04-24 International Business Machine Corporation Reliably transmitting a frame to multiple destinations by embedding sequence numbers in the frame
US6862293B2 (en) * 2001-11-13 2005-03-01 Mcdata Corporation Method and apparatus for providing optimized high speed link utilization
US6973082B2 (en) 2002-02-01 2005-12-06 Fujitsu Limited Forwarding packets to aggregated links using distributed ingress card processing
US7586909B1 (en) * 2002-03-06 2009-09-08 Agere Systems Inc. Striping algorithm for switching fabric
US7319695B1 (en) 2002-03-06 2008-01-15 Agere Systems Inc. Deficit-based striping algorithm
US7519066B1 (en) 2002-05-09 2009-04-14 Silicon Image, Inc. Method for switching data in a crossbar switch
US7274690B1 (en) 2002-05-09 2007-09-25 Silicon Image, Inc. Age selection switching scheme for data traffic in a crossbar switch
US7734812B2 (en) * 2002-06-06 2010-06-08 International Business Machines Corporation Method and apparatus for processing outgoing internet protocol packets
US7023843B2 (en) * 2002-06-26 2006-04-04 Nokia Corporation Programmable scheduling for IP routers
US7660292B2 (en) * 2002-06-27 2010-02-09 Broadcom Corporation System and method for isolating network clients
GB0215505D0 (en) * 2002-07-04 2002-08-14 Univ Cambridge Tech Packet routing
US7697526B2 (en) * 2002-08-06 2010-04-13 Broadcom Corporation Packet filtering based on port bit map
CN1232081C (zh) * 2002-08-06 2005-12-14 华为技术有限公司 网络通信中组播报文的转发方法
US7327692B2 (en) * 2002-09-10 2008-02-05 International Business Machines Corporation System and method for selecting fibre channel switched fabric frame paths
US7334086B2 (en) * 2002-10-08 2008-02-19 Rmi Corporation Advanced processor with system on a chip interconnect technology
KR100488478B1 (ko) * 2002-10-31 2005-05-11 서승우 다중 입력/출력 버퍼형 교환기
US7269180B2 (en) 2002-11-04 2007-09-11 World Wide Packets, Inc. System and method for prioritizing and queuing traffic
GB0227048D0 (en) * 2002-11-20 2002-12-24 3Com Corp Network units for use in and organisation of cascade systems
US7461167B1 (en) * 2002-11-22 2008-12-02 Silicon Image, Inc. Method for multicast service in a crossbar switch
US7274694B1 (en) * 2003-01-09 2007-09-25 Cisco Technology, Inc. Defining link aggregation across a stack
US7417985B1 (en) * 2003-01-30 2008-08-26 Pmc-Sierra, Inc. Egress selection switch architecture with power management
US7313146B2 (en) * 2003-01-31 2007-12-25 Broadcom Corporation Transparent data format within host device supporting differing transaction types
TW200416522A (en) 2003-02-25 2004-09-01 Asustek Comp Inc Portable computer carrying desktop computer processor and power management method thereof
US8225389B2 (en) * 2003-04-11 2012-07-17 Broadcom Corporation Method and system to provide physical port security in a digital communication system
US7522641B2 (en) * 2003-04-25 2009-04-21 Farrokh Mohamadi Ten gigabit copper physical layer system
US20040225734A1 (en) * 2003-05-07 2004-11-11 Schober Richard L. Method and system to control the communication of data between a plurality of inteconnect devices
US7352764B1 (en) 2003-05-08 2008-04-01 Silicon Image, Inc. Content addressable merged queue architecture for switching data
US20040230997A1 (en) * 2003-05-13 2004-11-18 Broadcom Corporation Single-chip cable set-top box
US7320100B2 (en) * 2003-05-20 2008-01-15 Cray Inc. Apparatus and method for memory with bit swapping on the fly and testing
US7184916B2 (en) * 2003-05-20 2007-02-27 Cray Inc. Apparatus and method for testing memory cards
CN1302645C (zh) * 2003-05-26 2007-02-28 华为技术有限公司 网络处理器系统端口捆绑中实现流量均担的方法
US7551557B2 (en) * 2003-06-19 2009-06-23 International Business Machines Corporation Method and system for ensuring arbitration fairness in bus ring topology
US7626985B2 (en) * 2003-06-27 2009-12-01 Broadcom Corporation Datagram replication in internet protocol multicast switching in a network device
US7286469B2 (en) * 2003-07-17 2007-10-23 Intel Corporation Network synchronization device, system and method
ES2228266B1 (es) * 2003-07-28 2006-06-01 Diseño De Sistemas En Silicio, S.A. Procedimiento de conmutacion de paquetes en un medio de transmision con multiples estaciones conectadas mediante distintos enlaces.
US7522620B2 (en) * 2003-08-12 2009-04-21 Intel Corporation Method and apparatus for scheduling packets
US7336606B2 (en) * 2003-08-14 2008-02-26 Intel Corporation Circular link list scheduling
EP1673683A4 (de) * 2003-10-14 2010-06-02 Raptor Networks Technology Inc Vermittlungssystem mit verteiltem koppelfeld
US7593336B2 (en) * 2003-10-31 2009-09-22 Brocade Communications Systems, Inc. Logical ports in trunking
US7619974B2 (en) * 2003-10-31 2009-11-17 Brocade Communication Systems, Inc. Frame traffic balancing across trunk groups
US7363387B1 (en) 2003-12-09 2008-04-22 Cisco Technology, Inc. System and method for reducing information being transmitted in a network environment
US7308505B2 (en) 2003-12-17 2007-12-11 International Business Machines Corporation Method, system and program product for facilitating forwarding of data packets through a node of a data transfer network using multiple types of forwarding tables
US7298707B2 (en) * 2004-01-21 2007-11-20 Cisco Technology, Inc. System and method for controlling the flooding of information in a network environment
US7904584B2 (en) * 2004-02-12 2011-03-08 Broadcom Corporation Source identifier-based trunking for systems of network devices
DE102004015861B4 (de) * 2004-03-31 2006-02-09 Advanced Micro Devices, Inc., Sunnyvale Rahmengestützte MAC-Steuerung in WLAN-Kommunikationseinrichtungen
US20050249229A1 (en) * 2004-05-07 2005-11-10 Nortel Networks Limited Dynamically scalable edge router
US7185138B1 (en) 2004-05-14 2007-02-27 Peter Galicki Multi-dimensional data routing fabric
US8732788B2 (en) * 2004-05-21 2014-05-20 Broadcom Corporation Integrated set-top box
US8578434B2 (en) 2004-05-21 2013-11-05 Broadcom Corporation Integrated cable modem
US7457244B1 (en) 2004-06-24 2008-11-25 Cisco Technology, Inc. System and method for generating a traffic matrix in a network environment
US7391730B1 (en) 2004-07-21 2008-06-24 Cisco Technology System and method for synchronizing link state databases in a network environment
US8239914B2 (en) * 2004-07-22 2012-08-07 Broadcom Corporation Highly integrated single chip set-top box
US8000322B2 (en) * 2004-07-30 2011-08-16 Hewlett-Packard Development Company, L.P. Crossbar switch debugging
US7738385B2 (en) * 2004-11-30 2010-06-15 Broadcom Corporation Mirroring of data in a network device
US7680107B2 (en) * 2004-11-30 2010-03-16 Broadcom Corporation High speed trunking in a network device
US8014390B2 (en) * 2004-11-30 2011-09-06 Broadcom Corporation Policy based routing using a fast filter processor
US7715384B2 (en) * 2004-11-30 2010-05-11 Broadcom Corporation Unicast trunking in a network device
US8005084B2 (en) * 2004-11-30 2011-08-23 Broadcom Corporation Mirroring in a network device
US7826481B2 (en) * 2004-11-30 2010-11-02 Broadcom Corporation Network for supporting advance features on legacy components
US7830892B2 (en) 2004-11-30 2010-11-09 Broadcom Corporation VLAN translation in a network device
US7814280B2 (en) * 2005-01-12 2010-10-12 Fulcrum Microsystems Inc. Shared-memory switch fabric architecture
US7254768B2 (en) * 2005-02-18 2007-08-07 Broadcom Corporation Memory command unit throttle and error recovery
US7600214B2 (en) 2005-04-18 2009-10-06 Broadcom Corporation Use of metadata for seamless updates
US7882554B2 (en) * 2005-08-19 2011-02-01 Cpacket Networks, Inc. Apparatus and method for selective mirroring
US7937756B2 (en) * 2005-08-19 2011-05-03 Cpacket Networks, Inc. Apparatus and method for facilitating network security
US8024799B2 (en) * 2005-08-19 2011-09-20 Cpacket Networks, Inc. Apparatus and method for facilitating network security with granular traffic modifications
US8346918B2 (en) * 2005-08-19 2013-01-01 Cpacket Networks, Inc. Apparatus and method for biased and weighted sampling of network traffic to facilitate network monitoring
US7890991B2 (en) * 2005-08-19 2011-02-15 Cpacket Networks, Inc. Apparatus and method for providing security and monitoring in a networking architecture
US8665868B2 (en) * 2005-08-19 2014-03-04 Cpacket Networks, Inc. Apparatus and method for enhancing forwarding and classification of network traffic with prioritized matching and categorization
US8296846B2 (en) * 2005-08-19 2012-10-23 Cpacket Networks, Inc. Apparatus and method for associating categorization information with network traffic to facilitate application level processing
US7937483B2 (en) * 2005-11-30 2011-05-03 At&T Intellectual Property I, L.P. System and method of routing data packets using trunk ports and access ports
US7688818B2 (en) * 2005-12-20 2010-03-30 Honeywell International Inc. Apparatus and method for traffic filtering in a communication system
US20070140282A1 (en) * 2005-12-21 2007-06-21 Sridhar Lakshmanamurthy Managing on-chip queues in switched fabric networks
JP4903815B2 (ja) * 2006-01-23 2012-03-28 アライドテレシスホールディングス株式会社 通信ネットワークを通じたトラフィック分配を向上させる方法およびシステム
JP4547339B2 (ja) * 2006-01-30 2010-09-22 アラクサラネットワークス株式会社 送信制御機能を備えるパケット中継装置
US20070294738A1 (en) * 2006-06-16 2007-12-20 Broadcom Corporation Single chip cable set-top box supporting DOCSIS set-top Gateway (DSG) protocol and high definition advanced video codec (HD AVC) decode
US7894435B2 (en) * 2006-09-14 2011-02-22 Intel Corporation Indicator packets for process/forward decision
US8289966B1 (en) * 2006-12-01 2012-10-16 Synopsys, Inc. Packet ingress/egress block and system and method for receiving, transmitting, and managing packetized data
US8127113B1 (en) 2006-12-01 2012-02-28 Synopsys, Inc. Generating hardware accelerators and processor offloads
US8706987B1 (en) 2006-12-01 2014-04-22 Synopsys, Inc. Structured block transfer module, system architecture, and method for transferring
US7697525B2 (en) 2006-12-21 2010-04-13 Corrigent Systems Ltd. Forwarding multicast traffic over link aggregation ports
US8078657B2 (en) * 2007-01-03 2011-12-13 International Business Machines Corporation Multi-source dual-port linked list purger
US7796625B2 (en) * 2007-01-10 2010-09-14 International Business Machines Corporation Recovery flushing for a network packet dispatcher
US8238344B1 (en) 2007-03-30 2012-08-07 Juniper Networks, Inc. Multicast load balancing
US7916718B2 (en) * 2007-04-19 2011-03-29 Fulcrum Microsystems, Inc. Flow and congestion control in switch architectures for multi-hop, memory efficient fabrics
US9081901B2 (en) * 2007-10-31 2015-07-14 Raytheon Company Means of control for reconfigurable computers
GB2454865B (en) * 2007-11-05 2012-06-13 Picochip Designs Ltd Power control
GB2457310B (en) * 2008-02-11 2012-03-21 Picochip Designs Ltd Signal routing in processor arrays
US9047421B2 (en) * 2008-04-30 2015-06-02 Alcatel Lucent Serial link buffer fill-level compensation using multi-purpose start of protocol data unit timing characters
JP4992835B2 (ja) * 2008-06-25 2012-08-08 ソニー株式会社 ディスク記憶装置およびプログラム
US9237100B1 (en) 2008-08-06 2016-01-12 Marvell Israel (M.I.S.L.) Ltd. Hash computation for network switches
US8938590B2 (en) * 2008-10-18 2015-01-20 Micron Technology, Inc. Indirect register access method and system
US9094343B1 (en) * 2008-11-13 2015-07-28 Qlogic, Corporation Method and system for taking a network port offline
GB2466661B (en) * 2009-01-05 2014-11-26 Intel Corp Rake receiver
US8547971B1 (en) 2009-01-07 2013-10-01 Marvell Israel (M.I.S.L) Ltd. Multi-stage switching system
JP5168166B2 (ja) * 2009-01-21 2013-03-21 富士通株式会社 通信装置および通信制御方法
JP5419493B2 (ja) * 2009-03-03 2014-02-19 キヤノン株式会社 データ処理装置、データ処理装置の制御方法、およびプログラム
GB2470037B (en) 2009-05-07 2013-07-10 Picochip Designs Ltd Methods and devices for reducing interference in an uplink
GB2470891B (en) 2009-06-05 2013-11-27 Picochip Designs Ltd A method and device in a communication network
GB2470771B (en) 2009-06-05 2012-07-18 Picochip Designs Ltd A method and device in a communication network
US8644140B2 (en) * 2009-09-09 2014-02-04 Mellanox Technologies Ltd. Data switch with shared port buffers
US8358651B1 (en) 2009-09-21 2013-01-22 Marvell International Ltd. Switch device having a plurality of processing cores
EP2482194B1 (de) * 2009-09-25 2013-12-25 Fujitsu Limited Speichersystem und steuerverfahren für ein speichersystem
US9426083B2 (en) * 2009-09-29 2016-08-23 Hewlett Packard Enterprise Development Lp Consistency checking for credit-based control of data communications
GB2474071B (en) 2009-10-05 2013-08-07 Picochip Designs Ltd Femtocell base station
US9274851B2 (en) * 2009-11-25 2016-03-01 Brocade Communications Systems, Inc. Core-trunking across cores on physically separated processors allocated to a virtual machine based on configuration information including context information for virtual machines
NO332162B1 (no) * 2009-12-21 2012-07-09 Cisco Systems Int Sarl Anordning og fremgangsmate for a filtrere mediapakker
CN101808037B (zh) * 2010-03-15 2014-09-10 中兴通讯股份有限公司 交换网中流量管理的方法和装置
US8996720B2 (en) * 2010-03-16 2015-03-31 Brocade Communications Systems, Inc. Method and apparatus for mirroring frames to a remote diagnostic system
US8769155B2 (en) * 2010-03-19 2014-07-01 Brocade Communications Systems, Inc. Techniques for synchronizing application object instances
US20110228772A1 (en) 2010-03-19 2011-09-22 Brocade Communications Systems, Inc. Providing multicast services without interruption upon a switchover
US9104619B2 (en) 2010-07-23 2015-08-11 Brocade Communications Systems, Inc. Persisting data across warm boots
US8495418B2 (en) 2010-07-23 2013-07-23 Brocade Communications Systems, Inc. Achieving ultra-high availability using a single CPU
GB2482869B (en) 2010-08-16 2013-11-06 Picochip Designs Ltd Femtocell access control
US8520522B1 (en) * 2010-10-15 2013-08-27 Juniper Networks, Inc. Transmit-buffer management for priority-based flow control
US8756424B2 (en) 2010-11-30 2014-06-17 Marvell Israel (M.I.S.L) Ltd. Load balancing hash computation for network switches
US8868700B2 (en) 2010-12-28 2014-10-21 Nant Holdings Ip, Llc Distributed network interfaces for application cloaking and spoofing
CN102065014B (zh) 2010-12-29 2014-12-31 中兴通讯股份有限公司 数据信元处理方法和装置
GB2489919B (en) 2011-04-05 2018-02-14 Intel Corp Filter
GB2489716B (en) 2011-04-05 2015-06-24 Intel Corp Multimode base system
GB2491098B (en) 2011-05-16 2015-05-20 Intel Corp Accessing a base station
KR101873526B1 (ko) * 2011-06-09 2018-07-02 삼성전자주식회사 에러 정정회로를 구비한 온 칩 데이터 스크러빙 장치 및 방법
US9172659B1 (en) 2011-07-12 2015-10-27 Marvell Israel (M.I.S.L.) Ltd. Network traffic routing in a modular switching device
CN102281192B (zh) 2011-07-19 2017-09-29 中兴通讯股份有限公司 交换网络芯片的信元处理方法及装置
US8699491B2 (en) 2011-07-25 2014-04-15 Mellanox Technologies Ltd. Network element with shared buffers
US9143335B2 (en) 2011-09-16 2015-09-22 Brocade Communications Systems, Inc. Multicast route cache system
US9417803B2 (en) * 2011-09-20 2016-08-16 Apple Inc. Adaptive mapping of logical addresses to memory devices in solid state drives
US9171030B1 (en) 2012-01-09 2015-10-27 Marvell Israel (M.I.S.L.) Ltd. Exact match lookup in network switch devices
US9507756B2 (en) 2012-01-18 2016-11-29 Marvell Israel (M.I.S.L) Ltd. Space efficient counters in network devices
US9036629B2 (en) 2012-04-27 2015-05-19 Hewlett-Packard Development Company, L.P. Switch module
US10581763B2 (en) 2012-09-21 2020-03-03 Avago Technologies International Sales Pte. Limited High availability application messaging layer
US9203690B2 (en) 2012-09-24 2015-12-01 Brocade Communications Systems, Inc. Role based multicast messaging infrastructure
US9967106B2 (en) 2012-09-24 2018-05-08 Brocade Communications Systems LLC Role based multicast messaging infrastructure
US9225672B1 (en) * 2012-11-15 2015-12-29 Qlogic, Corporation Systems and methods for packet grouping in networks
US9170768B2 (en) 2012-12-24 2015-10-27 Apple Inc. Managing fast to slow links in a bus fabric
ES2766861T3 (es) * 2013-01-29 2020-06-15 Huawei Tech Co Ltd Método de procesamiento de paquetes y elemento de reenvío
US9582440B2 (en) 2013-02-10 2017-02-28 Mellanox Technologies Ltd. Credit based low-latency arbitration with data transfer
CN105122745B (zh) 2013-02-27 2019-06-28 马维尔国际贸易有限公司 用于网络设备的高效最长前缀匹配技术
US8989011B2 (en) 2013-03-14 2015-03-24 Mellanox Technologies Ltd. Communication over multiple virtual lanes using a shared buffer
US9537771B2 (en) 2013-04-04 2017-01-03 Marvell Israel (M.I.S.L) Ltd. Exact match hash lookup databases in network switch devices
CN104113486A (zh) * 2013-04-18 2014-10-22 中兴通讯股份有限公司 一种信元数据处理方法、装置和交换网元
CN105308906B9 (zh) * 2013-05-03 2019-04-12 马维尔国际贸易有限公司 一种用于在网络设备中对事件进行计数的方法及计数器设备
US9178832B2 (en) 2013-07-11 2015-11-03 International Business Machines Corporation Queue credit management
US9641465B1 (en) 2013-08-22 2017-05-02 Mellanox Technologies, Ltd Packet switch with reduced latency
GB2542220A (en) * 2013-09-13 2017-03-15 Smg Holdings-Anova Tech Llc Packet sharing data transmission system and relay to lower latency
US8964739B1 (en) 2013-09-13 2015-02-24 SMG Holdings—Anova Technologies, LLC Self-healing data transmission system and method to achieve deterministic and lower latency
GB2533532A (en) * 2013-09-13 2016-06-22 Smg Holdings-Anova Tech Llc High payload data packet transmission system and relay to lower latency
US9548960B2 (en) 2013-10-06 2017-01-17 Mellanox Technologies Ltd. Simplified packet routing
US9325641B2 (en) 2014-03-13 2016-04-26 Mellanox Technologies Ltd. Buffering schemes for communication over long haul links
US9906592B1 (en) 2014-03-13 2018-02-27 Marvell Israel (M.I.S.L.) Ltd. Resilient hash computation for load balancing in network switches
US10587516B1 (en) 2014-07-15 2020-03-10 Marvell Israel (M.I.S.L) Ltd. Hash lookup table entry management in a network device
US9584429B2 (en) 2014-07-21 2017-02-28 Mellanox Technologies Ltd. Credit based flow control for long-haul links
EP3143698B1 (de) 2014-07-29 2019-10-30 Seakr Engineering, Inc. Robuste serdes-verpackung
CN105573711B (zh) * 2014-10-14 2019-07-19 深圳市中兴微电子技术有限公司 一种数据缓存方法及装置
US9619349B2 (en) 2014-10-14 2017-04-11 Brocade Communications Systems, Inc. Biasing active-standby determination
US10002099B2 (en) * 2014-11-13 2018-06-19 Cavium, Inc. Arbitrated access to resources among multiple devices
CN105701019A (zh) 2014-11-25 2016-06-22 阿里巴巴集团控股有限公司 一种内存管理方法以及装置
WO2016105393A1 (en) * 2014-12-23 2016-06-30 Intel Corporation Generic queue
CN107580769B (zh) 2015-03-06 2021-02-02 马维尔亚洲私人有限公司 用于网络交换机中的负载均衡的方法与装置
US9606942B2 (en) * 2015-03-30 2017-03-28 Cavium, Inc. Packet processing system, method and device utilizing a port client chain
US10623258B2 (en) 2015-06-22 2020-04-14 Arista Networks, Inc. Data analytics on internal state
US10904150B1 (en) 2016-02-02 2021-01-26 Marvell Israel (M.I.S.L) Ltd. Distributed dynamic load balancing in network systems
US10757111B1 (en) * 2016-09-08 2020-08-25 Rockwell Collins, Inc. Information flow enforcement for multilevel secure systems
US10243857B1 (en) 2016-09-09 2019-03-26 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for multipath group updates
US10476814B2 (en) * 2017-07-21 2019-11-12 Aruba Networks Inc. Arbiter circuit for crossbar
US11489789B2 (en) * 2018-06-29 2022-11-01 Intel Corporation Technologies for adaptive network packet egress scheduling
CN109284234B (zh) * 2018-09-05 2020-12-04 珠海昇生微电子有限责任公司 一种存储地址分配方法及系统
US11275632B2 (en) 2018-09-14 2022-03-15 Advanced Micro Devices, Inc. Broadcast command and response
CN111147372B (zh) * 2018-11-05 2021-05-18 华为技术有限公司 下行报文发送、转发方法和装置
US10951549B2 (en) 2019-03-07 2021-03-16 Mellanox Technologies Tlv Ltd. Reusing switch ports for external buffer network
CN113010173A (zh) 2019-12-19 2021-06-22 超威半导体(上海)有限公司 并行处理中矩阵数据广播的方法
CN113094099A (zh) 2019-12-23 2021-07-09 超威半导体(上海)有限公司 矩阵数据广播架构
US20210390022A1 (en) * 2020-06-16 2021-12-16 Samsung Electronics Co., Ltd. Systems, methods, and apparatus for crash recovery in storage devices
US11403221B2 (en) 2020-09-24 2022-08-02 Advanced Micro Devices, Inc. Memory access response merging in a memory hierarchy
US11558316B2 (en) 2021-02-15 2023-01-17 Mellanox Technologies, Ltd. Zero-copy buffering of traffic of long-haul links
US11949605B2 (en) * 2021-10-28 2024-04-02 Avago Technologies International Sales Pte. Limited Systems for and methods of unified packet recirculation

Family Cites Families (122)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US555398A (en) * 1896-02-25 Mary f
IT1118355B (it) * 1979-02-15 1986-02-24 Cselt Centro Studi Lab Telecom Sistema di interconnessione tra processori
US4752924A (en) * 1985-09-05 1988-06-21 American Telephone And Telegraph Company, At&T Bell Laboratories Ring packet switch
US4760570A (en) 1986-08-06 1988-07-26 American Telephone & Telegraph Company, At&T Bell Laboratories N-by-N "knockout" switch for a high-performance packet switching system
US4899334A (en) 1987-10-19 1990-02-06 Oki Electric Industry Co., Ltd. Self-routing multistage switching network for fast packet switching system
US5119481A (en) * 1987-12-22 1992-06-02 Kendall Square Research Corporation Register bus multiprocessor system with shift
US4872157A (en) * 1988-03-31 1989-10-03 American Telephone And Telegraph Company, At&T Bell Laboratories Architecture and organization of a high performance metropolitan area telecommunications packet network
US4872159A (en) * 1988-03-31 1989-10-03 American Telephone And Telegraph Company At&T Bell Laboratories Packet network architecture for providing rapid response time
EP0439507B1 (de) 1988-10-20 1996-04-24 CHUNG, David Siu Fu Speicherstruktur und verwendung
US5253248A (en) 1990-07-03 1993-10-12 At&T Bell Laboratories Congestion control for connectionless traffic in data networks via alternate routing
JP3107216B2 (ja) * 1990-08-17 2000-11-06 株式会社日立製作所 ルーチング方法および無瞬断テーブル変更方法
GB9023867D0 (en) 1990-11-02 1990-12-12 Mv Ltd Improvements relating to a fault tolerant storage system
JPH04189023A (ja) 1990-11-22 1992-07-07 Victor Co Of Japan Ltd パルス同期化回路
JPH04214290A (ja) 1990-12-12 1992-08-05 Mitsubishi Electric Corp 半導体記憶装置
US5612964A (en) * 1991-04-08 1997-03-18 Haraszti; Tegze P. High performance, fault tolerant orthogonal shuffle memory and method
JPH05183828A (ja) 1991-12-27 1993-07-23 Sony Corp 電子機器
EP0556148B1 (de) 1992-01-10 1998-07-22 Digital Equipment Corporation Verfahren zur Verbindung einer Leitungskarte mit einer Adressenerkennungseinheit
JPH0637797A (ja) * 1992-05-20 1994-02-10 Xerox Corp パケット交換網の予約リング機構
US5274642A (en) * 1992-06-05 1993-12-28 Indra Widjaja Output buffered packet switch with a flexible buffer management scheme
JP3104429B2 (ja) * 1992-10-08 2000-10-30 株式会社日立製作所 コピー機能を有する共通バッファ形atmスイッチ及びそのコピー方法
DE69324204T2 (de) 1992-10-22 1999-12-23 Cabletron Systems Inc Aufsuchen von Adressen bei Paketübertragung mittels Hashing und eines inhaltsadressierten Speichers
US5390173A (en) 1992-10-22 1995-02-14 Digital Equipment Corporation Packet format in hub for packet data communications system
US5696899A (en) 1992-11-18 1997-12-09 Canon Kabushiki Kaisha Method and apparatus for adaptively determining the format of data packets carried on a local area network
WO1994018766A1 (en) 1993-02-09 1994-08-18 Dsc Communications Corporation High-speed packet bus
US5905723A (en) * 1993-06-23 1999-05-18 Cabletron Systems, Inc. System for achieving scalable router performance
US5515376A (en) * 1993-07-19 1996-05-07 Alantec, Inc. Communication apparatus and methods
US5473607A (en) 1993-08-09 1995-12-05 Grand Junction Networks, Inc. Packet filtering for data networks
US5499295A (en) 1993-08-31 1996-03-12 Ericsson Inc. Method and apparatus for feature authorization and software copy protection in RF communications devices
JP3095314B2 (ja) * 1993-08-31 2000-10-03 株式会社日立製作所 パス切替方式
US6356973B1 (en) * 1993-10-15 2002-03-12 Image Telecommunications Corporation Memory device having a cyclically configured data memory and having plural data portals for outputting/inputting data
US5802287A (en) 1993-10-20 1998-09-01 Lsi Logic Corporation Single chip universal protocol multi-function ATM network interface
US5887187A (en) 1993-10-20 1999-03-23 Lsi Logic Corporation Single chip network adapter apparatus
US5579301A (en) 1994-02-28 1996-11-26 Micom Communications Corp. System for, and method of, managing voice congestion in a network environment
US5459717A (en) 1994-03-25 1995-10-17 Sprint International Communications Corporation Method and apparatus for routing messagers in an electronic messaging system
US5537400A (en) * 1994-04-15 1996-07-16 Dsc Communications Corporation Buffered crosspoint matrix for an asynchronous transfer mode switch and method of operation
US5526344A (en) * 1994-04-15 1996-06-11 Dsc Communications Corporation Multi-service switch for a telecommunications network
US5555398A (en) 1994-04-15 1996-09-10 Intel Corporation Write back cache coherency module for systems with a write through cache supporting bus
GB9408574D0 (en) * 1994-04-29 1994-06-22 Newbridge Networks Corp Atm switching system
EP0685949A3 (de) * 1994-06-03 2002-07-10 Philips Patentverwaltung GmbH Paketübermittlungssystem
US5617421A (en) * 1994-06-17 1997-04-01 Cisco Systems, Inc. Extended domain computer network using standard links
FR2725573B1 (fr) 1994-10-11 1996-11-15 Thomson Csf Procede et dispositif pour le controle de congestion des echanges sporadiques de paquets de donnees dans un reseau de transmission numerique
EP0719065A1 (de) 1994-12-20 1996-06-26 International Business Machines Corporation Mehrzweck-Paketvermittlungsknoten für ein Datenübertragungsnetz
US5790539A (en) 1995-01-26 1998-08-04 Chao; Hung-Hsiang Jonathan ASIC chip for implementing a scaleable multicast ATM switch
US5644784A (en) 1995-03-03 1997-07-01 Intel Corporation Linear list based DMA control structure
US5664116A (en) 1995-07-07 1997-09-02 Sun Microsystems, Inc. Buffering of data for transmission in a computer communication system interface
US5809024A (en) * 1995-07-12 1998-09-15 Bay Networks, Inc. Memory architecture for a local area network module in an ATM switch
US5781980A (en) * 1995-08-07 1998-07-21 Golston Company Display with molded spring
US5684800A (en) 1995-11-15 1997-11-04 Cabletron Systems, Inc. Method for establishing restricted broadcast groups in a switched network
US5781549A (en) 1996-02-23 1998-07-14 Allied Telesyn International Corp. Method and apparatus for switching data packets in a data network
US5742597A (en) * 1996-03-14 1998-04-21 Motorola, Inc. Method and device for multipoint switching and arbitration in output-request packet switch
US5940596A (en) 1996-03-25 1999-08-17 I-Cube, Inc. Clustered address caching system for a network switch
US5828653A (en) 1996-04-26 1998-10-27 Cascade Communications Corp. Quality of service priority subclasses
US5748631A (en) 1996-05-09 1998-05-05 Maker Communications, Inc. Asynchronous transfer mode cell processing system with multiple cell source multiplexing
US5787084A (en) 1996-06-05 1998-07-28 Compaq Computer Corporation Multicast data communications switching system and associated method
US5802052A (en) 1996-06-26 1998-09-01 Level One Communication, Inc. Scalable high performance switch element for a shared memory packet or ATM cell switch fabric
US5872783A (en) * 1996-07-24 1999-02-16 Cisco Systems, Inc. Arrangement for rendering forwarding decisions for packets transferred among network switches
US5898687A (en) 1996-07-24 1999-04-27 Cisco Systems, Inc. Arbitration mechanism for a multicast logic engine of a switching fabric circuit
GB9618132D0 (en) 1996-08-30 1996-10-09 Sgs Thomson Microelectronics Improvements in or relating to an ATM switch
US5845081A (en) 1996-09-03 1998-12-01 Sun Microsystems, Inc. Using objects to discover network information about a remote network having a different network protocol
US5831980A (en) 1996-09-13 1998-11-03 Lsi Logic Corporation Shared memory fabric architecture for very high speed ATM switches
US6122275A (en) * 1996-09-26 2000-09-19 Lucent Technologies Inc. Real-time processing for virtual circuits in packet switching
US5842038A (en) 1996-10-10 1998-11-24 Unisys Corporation Optimized input/output memory access request system and method
JP3123447B2 (ja) 1996-11-13 2001-01-09 日本電気株式会社 Atm交換機のスイッチ制御回路
EP0849917B1 (de) 1996-12-20 2005-07-20 International Business Machines Corporation Vermittlungssystem
US6233246B1 (en) 1996-12-30 2001-05-15 Compaq Computer Corporation Network switch with statistics read accesses
US6260073B1 (en) * 1996-12-30 2001-07-10 Compaq Computer Corporation Network switch including a switch manager for periodically polling the network ports to determine their status and controlling the flow of data between ports
US5978379A (en) * 1997-01-23 1999-11-02 Gadzoox Networks, Inc. Fiber channel learning bridge, learning half bridge, and protocol
DE19703833A1 (de) 1997-02-01 1998-08-06 Philips Patentverwaltung Koppeleinrichtung
US6452933B1 (en) 1997-02-07 2002-09-17 Lucent Technologies Inc. Fair queuing system with adaptive bandwidth redistribution
US6175902B1 (en) 1997-12-18 2001-01-16 Advanced Micro Devices, Inc. Method and apparatus for maintaining a time order by physical ordering in a memory
US6151316A (en) * 1997-02-14 2000-11-21 Advanced Micro Devices, Inc. Apparatus and method for synthesizing management packets for transmission between a network switch and a host controller
US6061351A (en) 1997-02-14 2000-05-09 Advanced Micro Devices, Inc. Multicopy queue structure with searchable cache area
US5892922A (en) 1997-02-28 1999-04-06 3Com Corporation Virtual local area network memory access system
US6011795A (en) 1997-03-20 2000-01-04 Washington University Method and apparatus for fast hierarchical address lookup using controlled expansion of prefixes
US5887477A (en) * 1997-04-15 1999-03-30 Nike, Inc. Apparatus and method for testing waterproofness and breathing fabrics
US6260072B1 (en) * 1997-06-12 2001-07-10 Lucent Technologies Inc Method and apparatus for adaptive routing in packet networks
JPH1114391A (ja) * 1997-06-20 1999-01-22 Yamaha Motor Co Ltd ナビゲーション装置の画面表示方法
US6016310A (en) 1997-06-30 2000-01-18 Sun Microsystems, Inc. Trunking support in a high performance network device
US6119196A (en) 1997-06-30 2000-09-12 Sun Microsystems, Inc. System having multiple arbitrating levels for arbitrating access to a shared memory by network ports operating at different data rates
US6094435A (en) 1997-06-30 2000-07-25 Sun Microsystems, Inc. System and method for a quality of service in a multi-layer network element
US6014380A (en) 1997-06-30 2000-01-11 Sun Microsystems, Inc. Mechanism for packet field replacement in a multi-layer distributed network element
US5920566A (en) 1997-06-30 1999-07-06 Sun Microsystems, Inc. Routing in a multi-layer distributed network element
US6088356A (en) 1997-06-30 2000-07-11 Sun Microsystems, Inc. System and method for a multi-layer network element
US6115378A (en) 1997-06-30 2000-09-05 Sun Microsystems, Inc. Multi-layer distributed network element
US6021132A (en) 1997-06-30 2000-02-01 Sun Microsystems, Inc. Shared memory management in a switched network element
US5909686A (en) 1997-06-30 1999-06-01 Sun Microsystems, Inc. Hardware-assisted central processing unit access to a forwarding database
US6246680B1 (en) 1997-06-30 2001-06-12 Sun Microsystems, Inc. Highly integrated multi-layer switch element architecture
US6151297A (en) * 1997-07-08 2000-11-21 Hewlett-Packard Company Method and system for link level server/switch trunking
US5918074A (en) 1997-07-25 1999-06-29 Neonet Llc System architecture for and method of dual path data processing and management of packets and/or cells and the like
US5991297A (en) * 1997-08-28 1999-11-23 Ascend Communications Independently sizable memory pages for a plurality of connection ID types in a network switch
US6041053A (en) 1997-09-18 2000-03-21 Microsfot Corporation Technique for efficiently classifying packets using a trie-indexed hierarchy forest that accommodates wildcards
JP2959539B2 (ja) 1997-10-01 1999-10-06 日本電気株式会社 バッファ制御方法および装置
US6185185B1 (en) 1997-11-21 2001-02-06 International Business Machines Corporation Methods, systems and computer program products for suppressing multiple destination traffic in a computer network
US6060351A (en) * 1997-12-24 2000-05-09 Micron Technology, Inc. Process for forming capacitor over bit line memory cell
US6259699B1 (en) * 1997-12-30 2001-07-10 Nexabit Networks, Llc System architecture for and method of processing packets and/or cells in a common switch
US6310875B1 (en) * 1998-03-30 2001-10-30 Nortel Networks Limited Method and apparatus for port memory multicast common memory switches
CA2227655A1 (en) * 1998-04-03 1999-10-03 Alberto Leon-Garcia The single-queue switch
US6359879B1 (en) * 1998-04-24 2002-03-19 Avici Systems Composite trunking
US6628609B2 (en) * 1998-04-30 2003-09-30 Nortel Networks Limited Method and apparatus for simple IP-layer bandwidth allocation using ingress control of egress bandwidth
US6046979A (en) * 1998-05-04 2000-04-04 Cabletron Systems, Inc. Method and apparatus for controlling the flow of variable-length packets through a multiport switch
GB2337905B (en) 1998-05-28 2003-02-12 3Com Technologies Ltd Buffer management in network devices
US6728206B1 (en) * 1998-08-03 2004-04-27 Silicon Grpahics, Inc. Crossbar switch with communication ring bus
US6356546B1 (en) * 1998-08-11 2002-03-12 Nortel Networks Limited Universal transfer method and network with distributed switch
US6430181B1 (en) * 1999-01-15 2002-08-06 Lsi Logic Corporation Crossbar switch fabric with deterministic maximal scheduling of connection requests with strict scheduling prioritization derived from requested service delays
US6501761B1 (en) * 1999-02-25 2002-12-31 Fairchild Semiconductor Corporation Modular network switch with peer-to-peer address mapping communication
US6658016B1 (en) * 1999-03-05 2003-12-02 Broadcom Corporation Packet switching fabric having a segmented ring with token based resource control protocol and output queuing control
US7031324B1 (en) * 1999-03-22 2006-04-18 Cisco Technology, Inc. Local area network/wide area network switch
GB2349312B (en) * 1999-04-21 2001-03-07 3Com Corp Ageing of data packets using queue pointers
US6243359B1 (en) * 1999-04-29 2001-06-05 Transwitch Corp Methods and apparatus for managing traffic in an atm network
US6501758B1 (en) * 1999-06-03 2002-12-31 Fujitsu Network Communications, Inc. Hybrid ATM/TDM transport over a common fiber ring
US7315552B2 (en) * 1999-06-30 2008-01-01 Broadcom Corporation Frame forwarding in a switch fabric
US6888802B1 (en) * 1999-06-30 2005-05-03 Nortel Networks Limited System, device, and method for address reporting in a distributed communication environment
US6687247B1 (en) * 1999-10-27 2004-02-03 Cisco Technology, Inc. Architecture for high speed class of service enabled linecard
JP3417369B2 (ja) * 1999-11-05 2003-06-16 日本電気株式会社 バススイッチ用アダプタ、バススイッチ用ブリッジ、バススイッチ、およびバススイッチシステム
US6681270B1 (en) * 1999-12-07 2004-01-20 Texas Instruments Incorporated Effective channel priority processing for transfer controller with hub and ports
US6771654B1 (en) * 2000-01-24 2004-08-03 Advanced Micro Devices, Inc. Apparatus and method for sharing memory using a single ring data bus connection configuration
US6721316B1 (en) * 2000-02-14 2004-04-13 Cisco Technology, Inc. Flexible engine and data structure for packet header processing
US6501757B1 (en) * 2000-02-29 2002-12-31 Centre For Development Of Telematics ATM switch
US6862292B1 (en) * 2000-04-13 2005-03-01 International Business Machines Corporation Method and system for network processor scheduling outputs based on multiple calendars
DE60115154T2 (de) * 2000-06-19 2006-08-10 Broadcom Corp., Irvine Verfahren und Vorrichtung zum Datenrahmenweiterleiten in einer Vermittlungsstelle
US6985982B2 (en) * 2000-10-27 2006-01-10 Texas Instruments Incorporated Active ports in a transfer controller with hub and ports
EP2011685B1 (de) 2006-04-25 2020-01-15 Mitsubishi Denki Kabushiki Kaisha Steuervorrichtung für elektrofahrzeug

Also Published As

Publication number Publication date
EP1168725B1 (de) 2005-06-15
US20060182112A1 (en) 2006-08-17
US8274971B2 (en) 2012-09-25
DE60119224D1 (de) 2006-06-08
EP1168727A3 (de) 2004-06-16
DE60119224T2 (de) 2007-02-22
DE60126533D1 (de) 2007-03-29
DE60115154D1 (de) 2005-12-29
US20030118016A1 (en) 2003-06-26
US20020027908A1 (en) 2002-03-07
EP1168727A2 (de) 2002-01-02
ATE354227T1 (de) 2007-03-15
US20020012341A1 (en) 2002-01-31
EP1168710B1 (de) 2005-11-23
EP1168725A3 (de) 2003-07-09
EP1168725A2 (de) 2002-01-02
US20020012340A1 (en) 2002-01-31
EP1168710A3 (de) 2003-08-13
EP1168726B1 (de) 2007-02-14
US20090196303A1 (en) 2009-08-06
US7088713B2 (en) 2006-08-08
US7519059B2 (en) 2009-04-14
US6950430B2 (en) 2005-09-27
DE60111457D1 (de) 2005-07-21
EP1168710A2 (de) 2002-01-02
US20020136211A1 (en) 2002-09-26
US6567417B2 (en) 2003-05-20
US6535510B2 (en) 2003-03-18
DE60115154T2 (de) 2006-08-10
US7136381B2 (en) 2006-11-14
EP1168726A1 (de) 2002-01-02
EP1168727B1 (de) 2006-05-03
DE60111457T2 (de) 2006-05-11

Similar Documents

Publication Publication Date Title
DE60126533T2 (de) Vermittlungsstelle mit einer Speicherverwaltungeinheit zur Verbesserung der Flusssteurung
DE60126222T2 (de) Verbundene Netzvermittlungskonfiguration
DE60010328T2 (de) Spiegelung in einer netzwerkvermittlungsstapelanordnung
DE112020002510T5 (de) Verfahren und system zur gewährleistung von fairness zwischen anwendungen beim netzeintritt
DE60127794T2 (de) Gebundene Netzschalterkonfiguration
DE69817328T2 (de) Warteschlangenstruktur und -verfahren zur prioritätszuteilung von rahmen in einem netzwerkkoppelfeld
DE60126223T2 (de) Anordnung zur Verbindung von Netzvermittlungsstellen
DE60005993T2 (de) Verfahren und netzwerkvermittlungsstelle mit datenserialisierung durch gefahrlose mehrstufige störungsfreie multiplexierung
DE69819303T2 (de) Verfahren und vorrichtung zur übertragung von mehrfachkopien durch vervielfältigung von datenidentifikatoren
DE60133352T2 (de) Gebundene Netzvermittlungskonfiguration
DE69823337T2 (de) Vorrichtung und verfahren zur rückgewinnung von puffern
DE69731519T2 (de) Mehrfachtor-Abfragesystem für ein Netzwerkkoppelfeld
DE69732086T2 (de) Netzwerkschalter mit verschachteltem Speichersystem
DE69823483T2 (de) Mehrfachkopiewarteschlangestruktur mit einem suchbaren cachespeicherbereich
US7315552B2 (en) Frame forwarding in a switch fabric
DE60127366T2 (de) Verfahren und Struktur zur Unterstützung von Rahmen variabler Länge in einer Vermittlungsanlage mit gemeisamem Speicher
DE69631265T2 (de) Vermittlungssystem
DE60125300T2 (de) Schaltungsanordnung zum Übertragen von Daten mit Datenpacketierung und-Depacketierung
DE60215416T2 (de) Zeigerbasierte binäre Suchmaschine und dafür geeignetes Verfahren
DE602005005291T2 (de) Erweiterbare Pipelinearchitektur für ein Netzwerkgerät
DE60217988T2 (de) System und Verfahren zum zeitschlitzbasierten Erlernen und Durchsuchen von ARL Tabellen mit Blockierung der Einfügung
DE60120290T2 (de) Vermittlungsanlage mit externer Adressenauflösungsschnittstelle
DE60217572T2 (de) System und Verfahren zum zeitschlitzbasierten Erlernen und Durchsuchen von ARL Tabellen unter Verwendung von Schreib-snoop
DE60121727T2 (de) Vermittlungsstelle mit virtuellem geteiltem Speicher
DE112022002238T5 (de) Netzwerkschnittstellenvorrichtungs-basierte berechnungen

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