DE69737361T2 - Schnelle vermittlungsvorrichtung - Google Patents
Schnelle vermittlungsvorrichtung Download PDFInfo
- Publication number
- DE69737361T2 DE69737361T2 DE69737361T DE69737361T DE69737361T2 DE 69737361 T2 DE69737361 T2 DE 69737361T2 DE 69737361 T DE69737361 T DE 69737361T DE 69737361 T DE69737361 T DE 69737361T DE 69737361 T2 DE69737361 T2 DE 69737361T2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- cell
- cells
- data packet
- output port
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/72—Routing based on the source address
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/74591—Address table lookup; Address filtering using content-addressable memories [CAM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/622—Queue service order
- H04L47/6225—Fixed service order, e.g. Round Robin
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/104—Asynchronous transfer mode [ATM] switching fabrics
- H04L49/105—ATM switching elements
- H04L49/108—ATM switching elements using shared central buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
- H04L49/1515—Non-blocking multistage, e.g. Clos
- H04L49/153—ATM switching fabrics having parallel switch planes
- H04L49/1538—Cell slicing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/201—Multicast operation; Broadcast operation
- H04L49/203—ATM switching fabrics with multicast or broadcast capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3072—Packet splitting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3081—ATM peripheral units, e.g. policing, insertion or extraction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/60—Software-defined switches
- H04L49/608—ATM switches adapted to switch variable length packets, e.g. IP packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9042—Separate storage for different parts of the packet, e.g. header and payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9047—Buffering arrangements including multiple buffers, e.g. buffer pools
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/04—Selecting arrangements for multiplex systems for time-division multiplexing
- H04Q11/0428—Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
- H04Q11/0478—Provisions for broadband connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5638—Services, e.g. multimedia, GOS, QOS
- H04L2012/5646—Cell characteristics, e.g. loss, delay, jitter, sequence integrity
- H04L2012/5652—Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5679—Arbitration or scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5681—Buffer or queue management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/103—Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/252—Store and forward routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Description
- Hintergrund
- Die vorliegende Erfindung betrifft im Allgemeinen Daten-Routingsysteme, und im Besonderen betrifft die vorliegende Erfindung ein Verfahren und eine Vorrichtung zum Routing von Paketen durch ein Netz.
- In Paketvermittlungs-Kommunikationssystemen ist ein Router eine Vermittlungseinrichtung, die Pakete, die Daten- oder Steuerinformationen enthalten, an einem Port empfängt, und auf Basis der in dem Paket enthaltenen Zieladresseninformation das Paket aus einem anderen Port zu der Zieladresse (oder Zwischenzieladresse) routet.
- Herkömmliche Router führen diese Vermittlungsfunktion durch das Evaluieren von Header-Informationen durch, die in einem ersten Datenblock in dem Paket enthalten sind, um den passenden Ausgangsport für ein bestimmtes Paket zu bestimmen.
- Eine effiziente Vermittlung von Paketen durch den Router ist das vorrangige Anliegen. Im Folgenden wird Bezug auf
1a genommen, wobei ein herkömmlicher Router eine Vielzahl von Eingangsports2 , von denen jeder einen Eingangspuffer (Speicher)4 enthält, eine Vermittlungseinrichtung6 sowie eine Vielzahl von Ausgangsports8 enthält. - Datenpakete, die an einem Eingangsport
2 empfangen werden, werden wenigstens temporär in einem Eingangspuffer4 gespeichert, während die Zieladresseninfonnation, die jedem Paket zugehörig ist, dekodiert wird, um die angemessene Vermittlung durch die Vermittlungseinrichtung6 zu bestimmen. Es ist offensichtlich, dass, wenn der Dekodiervorgang im Vergleich zu der Rate, zu der die Pakete empfangen werden, zu lange dauert, ein größeres Speicherelement erforderlich ist. Darüber hinaus kann das Paket nach dem Dekodieren der Zieladresseninformation zwangsweise in dem Eingangspuffer verbleiben, wenn die Vermittlungseinrichtung die Verbindung nicht herstellen kann. Blockierung bezieht sich auf eine Bedingung, bei der in dem Vermittler aufgrund der Nichtverfügbarkeit des gewünschten Ausgangsports (der Port ist belegt, er routet zum Beispiel ein anderes Paket von einem anderen Eingangsport) keine Verbindung hergestellt werden kann. Die Größe jedes Eingangspuffers4 ist von einer Anzahl von Faktoren abhängig, die umfassen: die Leitungseingangsrate, die Geschwindigkeit des Suchvorganges und die Blockierungseigenschaften für die Vermittlungseinrichtung. - Diese Typen von Routern sind leider in vielerlei Hinsicht ineffizient. Jeder Eingangsport enthält einen dedizierten Eingangspuffer und das gemeinsame Nutzen eines Speichers zwischen den Eingangsports ist in dem Design nicht vorgesehen. Jeder Eingangspuffer muss so dimensioniert sein, dass er die maximalen Durchsatzanforderungen für einen gegebenen Port erfüllt. Die Kosten für das Design machen jedoch häufig kleinere Puffer für jeden Port erforderlich. Mit diesen kleineren Puffern steigt aber auch die Möglichkeit, dass Pakete aufgrund der Blockierungsbedingungen verworfen werden. Obwohl typischerweise ein Überschuss an Speicherkapazität in dem Router vorhanden ist (aufgrund der unterschiedlichen Nutzung der Eingangsports), wurden dennoch keine Anstrengungen zur Ausnutzung des Überschusses unternommen.
- Um das Verwerfen von Paketen zu verhindern, entwickelten Designer "blockierungsfreie" Router. Im Folgenden wird Bezug auf
1b genommen, wobei ein herkömmlicher „blockierungsfreier" Router eine Vielzahl von Eingangsports2 , von denen jeder einen Eingangspuffer (Speicher)4 enthält, eine Vermittlungseinrichtung6 und eine Vielzahl von Ausgangsports8 , von denen jeder einen Ausgangspuffer9 enthält, umfasst. Um Blockierungssituationen zu vermeiden, wurde jeder Ausgangsport8 konfiguriert, um einen Ausgangspuffer9 zu enthalten. Jeder Ausgangsport könnte simultan Pakete ausgeben sowie neue Pakete zum Ausgeben zu einem späteren Zeitpunkt empfangen. Wenn die Größe des Ausgangspuffers ausreichend groß wäre, würden keine Datenpakete verworfen werden. - Diese Ausführungen sind jedoch noch ineffizienter bezüglich der Speicherkapazität und der Kosten. Jeder Ausgangsport umfasst wiederum einen dedizierten Ausgangspuffer und das gemeinsame Nutzen eines Speichers zwischen den Ausgangsports ist in dem Design nicht vorgesehen. Jeder Ausgangspuffer muss so dimensioniert sein, dass er die maximalen Durchsatzanforderungen für einen gegebenen Port erfüllt (um seine „blockierungsfreien" Eigenschaften aufrecht zu erhalten). Der Router verfügt über noch mehr überschüssige Speicherkapazität (aufgrund der unterschiedlichen Nutzung der Eingangsports und der Ausgangsports), doch noch immer wurden keine Anstrengungen un ternommen, den Überschuss auszunutzen. Es muss das Zweifache der erforderlichen Speichermenge und die doppelte Bandbreite verwendet werden, damit die Datenmenge durch diese Typen von Vorrichtungen bewegt werden kann.
- Beispiele von Anordnungen, die dem Stand der Technik entsprechen, werden in den Dokumenten US-A-5408469 (OPHER AYAL ET AL) und US-A-5168492 (BESHAI MAGED E ET AL) diskutiert.
- Zusammenfassung der Erfindung
- Im Allgemeinen ist es ein Aspekt der Erfindung, einen Router zum Vermitteln eines Datenpaketes zwischen einer Quelle und einer Zieladresse in einem Netz bereitzustellen, wobei der Router eine Vielzahl von Eingangsports enthält, von denen jeder einen Daten-Handler enthält. Der Daten-Handler unterteilt ein Datenpaket in eine Zelle feststehender Länge oder in mehrere Zellen feststehender Länge. Der Router enthält eine Vielzahl von Ausgangsports, von denen wenigstens einer für das Routing des Datenpaketes zu der Zieladresse ist, sowie einen Speicher, der in eine Vielzahl von Speicherbanken unterteilt ist. Ein Eingangsvermittler empfängt Zellen feststehender Länge von den Eingangsports und schreibt eine einzelne Zelle in einer Zellen-Slotzeitdauer in jede Speicherbank. Ein Ausgangsvermittler routet die aus dem Speicher empfangenen Zellen zu einem geeigneten Ausgangsport.
- Die Aspekte der Erfindung umfassen die folgenden Leistungsmerkmale. Der Eingangsvermittler enthält eine Verbindungsmaschine zum Verbinden der Zellen in dem Datenpaket, um das Wiederherstellen des Datenpaketes aus nicht zusammenhängenden Orten in dem Speicher zu ermöglichen. Der Router enthält des Weiteren eine Erzeugungseinrichtung für indirekte Zellen zum Erzeugen einer indirekten Zelle oder mehrerer indirekter Zellen. Die Verbindungsmaschine trackt den Ort in dem Speicher, wo aufeinanderfolgende Zellen des Datenpaketes gespeichert sind und stellt eine Adresse in dem Speicher von jeder Zelle in dem Datenpaket zum Speichern in indirekten Zellen bereit.
- Der Eingangsvermittler zeitmultiplext das Schreiben von Datenpaketen in den Speicher, so dass aufeinanderfolgende Zellen von dem Eingangsport in aufeinanderfolgende Speicherbanken in dem Speicher geschrieben werden. Der Eingangsvermittler enthält eine Schlüssel-Lesemaschine zum Extrahieren von Schlüsselinformation aus einer ersten an dem Eingangsvermittler empfangenen Zelle, die dem Datenpaket zugehörig ist. Der Router enthält darüber hinaus einen Kontroller, der mit dem Eingangsvermittler gekoppelt, um von dem Eingangsvermittler Schlüsselinformation zu empfangen. Der Kontroller dekodiert Zieladresseninformation aus der von dem Eingangsvermittler empfangenen Schlüsselinformation und gibt eine Benachrichtigung aus, die ein Routing des Datenpaketes von dem Speicher zu dem Ausgangsport definiert.
- Der Ausgangsport enthält einen Ergebnisprozessor zum Empfangen der Benachrichtigung von dem Kontroller und zum Initiieren einer Übertragung des Datenpaketes von dem Speicher zu dem Ausgangsport. Der Eingangsvermittler enthält eine Reservierungstabelle für die Ablaufplanung von Übertragungen von dem Speicher zu dem Ausgangsvermittler. Der Ausgangsvermittler routet die Benachrichtigung zu dem Ausgangsport und anschließend gibt der Ausgangsport eine Anforderung zu dem Eingangsvermittler aus, das Datenpaket von dem Speicher durch den Ausgangsvermittler zu dem Ausgangsport zu senden. Die Anforderung von dem Ausgangsport wird in der Reservierungstabelle gespeichert. Die Anforderungen, Zellen von dem Speicher zu dem Ausgangsvermittler zu senden, werden Zeitbereichsmultiplex unterzogen, so dass während einer Zellen-Slotzeitdauer höchstens eine einzelne Leseanforderung zu jeder Speicherbank in dem Speicher zur Bearbeitung ausgegeben wird. Der Speicher gibt in einer Zellen-Slotzeitdauer höchstens eine einzelne Zelle pro Speicherbank aus.
- Ein Vorteil de r Erfindung ist, dass Pakete durch den Router bei Leitungsraten vermittelt werden können, ohne dass das Speichern der Pakete in einem teueren Hochgeschwindigkeitsspeicher erforderlich ist und zwar durch das Bereitstellen einer Vermittlungsarchitektur, die Pakete effizient verwaltet und durch den Vermittler routet.
- Weitere Vorteile und Leistungsmerkmale werden aus der folgenden Beschreibung und den Patentansprüchen ersichtlich.
- Kurze Beschreibung der Zeichnungen
-
1a und1b sind Blockdiagramme herkömmlicher Routereinrichtungen. -
2a ist ein schematisches Blockdiagramm eines Daten-Routingsystems entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung. -
2b ist ein schematisches Blockdiagramm eines Routers entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung. -
3 ist ein schematisches Blockdiagramm eines Eingangsports entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung. -
4a ist ein schematisches Blockdiagramm eines Routers, der die zeitliche Ablaufplanung und das Anordnen von Übertragungen von dem Eingangsport zu dem Eingangsvermittler entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung umfasst. -
4b ist eine Datenstruktur für eine Zelle, die zwischen einem Eingangsport und einem Eingangsvermittler gesendet wird, entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung. -
5a ist ein schematisches Blockdiagramm eines Eingangsvermittlers entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung. -
5b ist ein schematisches Blockdiagramm eines Routers, der die zeitliche Ablaufplanung und das Anordnen von Übertragungen von dem Eingangsport zu dem Speicher entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung umfasst. -
6 ist eine Datenstruktur für eine in einem Schlüsselpuffer gespeicherte Routen-Anforderung entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung. -
7 ist eine Datenstruktur für eine indirekte Zelle entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung. -
8 ist eine Datenstruktur für eine Zelle, die zwischen dem Eingangsvermittler und einer Speicherbank übertragen wird, entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung. -
9 ist ein schematisches Blockdiagramm einer Reservierungstabelle entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung. -
10 ist ein Ablaufdiagramm eines Vorgangs zum Laden einer Reservierungstabelle entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung. -
11a ist ein schematisches Blockdiagramm eines Speichers entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung. -
11b ist ein schematisches Blockdiagramm eines Routers, der die zeitliche Ablaufplanung und das Anordnen von Übertragungen von dem Eingangsport zu dem Speicher entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung umfasst. -
12 ist eine Datenstruktur für eine Zelle, die aus einer Speicherbank zu einem Ausgangsvermittler ausgegeben wird, entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung. -
13 ist ein schematisches Blockdiagramm eines Kontrollers entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung. -
14 ist eine Datenstruktur für eine Ausgabeanforderung, die von dem Kontroller zu dem Ausgangsvermittler übertragen wird, entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung. -
15 ist ein schematisches Blockdiagramm eines Ausgangsvermittlers entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung. -
16 ist eine Datenstruktur für eine Zelle, die von dem Ausgangsvermittler zu einem Ausgangsport gesendet wird, entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung. -
17 ist ein schematisches Blockdiagramm für einen Ausgangsport entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung. -
18 ist ein Ablaufdiagramm für einen Vorgang zum Routing eines Paketes durch einen Router entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung. -
19 ist ein schematisches Blockdiagramm eines Routers entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung, der Ablaufflussinformation zum Verfolgen des Flusses der Operationen enthält, die von dem Router beim Routing eines Paketes von einem Eingangsport zu seinem zugehörigen Ausgangsport durchgeführt werden. -
20 ist ein schematisches Blockdiagramm eines Multifunktionsports entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung. -
21 ist ein schematisches Blockdiagramm eines Routers, der einen Multifunktionsport enthält, entsprechend einem Ausführungsbeispiel der vorliegenden Erfindung. - Ausführliche Beschreibung
- In Bezug auf
2a ist in einem Paketvermittlungssystem eine Quelle10 mit einem Router oder mit mehreren Routern20 zum Senden von Paketen zu einer Zieladresse oder zu mehreren Zieladressen30 verbunden. Jeder Router enthält eine Vielzahl von Ports, die mit verschiedenen Quellen und Zieladressen verbunden sind. Ein Paket von der Quelle10 kann vor der Ankunft an seiner Zieladresse durch mehr als einen Router20 weitergegeben werden. - In Bezug auf
2b enthält jeder Router20 einen Eingangsvermittler100 , einen Ausgangsvermittler102 , einen Speicher104 , der eine oder mehrere Speicherbanken105 enthält, einen Kontroller106 und eine Vielzahl von Eingangs- und Ausgangsports107 beziehungsweise108 . Zu dem Kontroller106 gehört ein Kontrollerspeicher109 zum Speichern einer Routing-Tabelle. Der Eingangsvermittler100 ist mit jedem Eingangsport107 verbunden, während der Ausgangsvermittler102 mit jedem Ausgangsport108 in dem Router verbunden ist. In einem Ausführungsbeispiel enthält der Router20 jeweils acht Eingangsports107 und Ausgangsports108 . - In Betrieb werden die Pakete an einem Eingangsport
107 empfangen, zu dem Eingangsvermittler100 gesendet und temporär im Speicher104 gespeichert. Wenn das Paket durch den Vermittler100 empfangen wird, wird ein Schlüssel aus dem ersten Datenblock in dem Paket gelesen und zu dem Kontroller106 übertragen. Der Schlüssel enthält Zieladresseninformation, die aus dem Header-Feld, das dem ersten Block von Daten in einem Paket zugehörig ist, abgeleitet wird, und weitere Informationen (Quellen-ID, Fluss-ID und so weiter). - Eine Routen-Suchmaschine
110 in dem Kontroller106 führt eine Trie-basierte Suche auf Basis der Schlüsselinformation durch und gibt ein Ergebnis zurück, das den der Zieladresse zugehörigen Ausgangsport enthält. Dieses Ergebnis wird mit weiteren Informationen (Quellen-ID, Fluss-ID, Paketlänge und so weiter) zum Routing des Paketes durch den Router20 gekoppelt und als eine Benachrichtigung von dem Kontroller106 zu dem Ausgangsvermittler102 übertragen. Der Ausgangsvermittler102 überträgt die Benachrichtigung zu dem identifizierten Ausgangsport108 . Beim Empfangen der Benachrichtigungsinformation initiiert der Ausgangsport108 die Übertragung des Paketes von dem Speicher104 durch den Ausgangsvermittler102 zurück zu dem entsprechenden Ausgangsport108 . - In Bezug auf
3 enthält jeder Eingangsport107 eine Leitungseingangsschnittstelle300 , einen Daten-Handler304 und einen Zellenausgangsport306 . Pakete werden an der Leitungseingangsschnittstelle300 empfangen. Wenn die Pakete empfangen werden, unterteilt der Daten-Handler302 die empfangenen Pakete in Zellen feststehender Länge. In einem Ausführungsbeispiel der vorliegenden Erfindung beträgt die Länge jeder Zelle 80 Bytes mit 16 Bytes internem Header (Steuerinformation) und 64 Bytes Zelldaten. Wenn der Daten-Handler das eingehende Paket in Zellen feststehender Länge unterteilt, gibt er synchron die Zellen zu dem Eingangsvermittler100 durch den Zellenausgangsport306 aus. - Im Folgenden wird Bezug auf
4a genommen, wobei in jedem Zellen-Slot „T" eine einzelne Zelle450 von einem Eingangsport107 zu dem Eingangsvermittler100 gesendet wird. In einem gegebenen Zellen-Slot „T" empfängt der Eingangsport107 insgesamt „N" Zellen, wobei „N" der Anzahl von Eingangsports entspricht. - Das Datenformat für jede Zelle
400 , die von einem Eingangsport107 zu dem Eingangsvermittler100 gesendet wird, umfasst, wie in4b dargestellt, einen internen Header402 und ein Zellendatenfeld404 . Der interne Header402 enthält ein Typfeld406 , ein Datenstromfeld408 sowie Paket-Header-Felder410 . - Das Typfeld
406 gibt den Typ der Zelle an, die von dem Eingangsport zu senden ist. In jedem Zellen-Slot (20 Taktzyklen in einem Ausführungsbeispiel) kann ein Eingangsport entweder eine Datenzelle, eine indirekte Platzhalter-Zelle oder eine verzögerte indirekte Platzhalter-Zelle senden. Datenzellen enthalten Daten, die einem eingehenden Paket zugehörig sind. Eine indirekte Platzhalter-Zelle ist eine leere Zelle und wird in Verbindung mit der indirekten Adressierung für das Speichern der Zellen in dem Speicher104 verwendet. Verzögerte indirekte Platzhalter-Zellen entstehen, wenn ein Datenstrom, der die indirekte Adressierung erfordert, zu einer Zeit endet, die vor der designierten Zeit zum Schreiben der letzten indirekten Adressierungszelle, die dem Datenstrom zugehörig ist, in den Speicher104 , liegt. Die Erzeugung und die Funktionsweise von indirekten Platzhaltern und verzögerten indirekten Platzhaltern wird weiter unten ausführlicher in Zusammenhang mit7 beschrieben. - Das Datenstromfeld
408 gibt den Datenstrom an, dem die Zellendaten zugehörig sind. In einem Ausführungsbeispiel der vorliegenden Erfindung ist jeder Eingangsport in der Lage, bis zu 16 einzelne Datenströme zu einer Zeit zu verarbeiten. - Das Paket-Header-Feld
410 enthält Header-Informationen, die einem gegebenen Paket zugehörig sind, und umfasst Start-Offset-Informationen, die Paketlänge sowie Schnittstellenindex-Informationen. - In Bezug auf
5a enthält der Eingangsvermittler100 einen Round-Robin-Daten-Handler500 , eine oder mehrere Eingangsportschnittstellen (501-0 bis501-7 , eine für jeden Eingangsport107 ), eine oder mehrere Speicherschnittstellen502 (502-0 bis502-7 , wobei eine zu jeder Speicherbank gehört), eine gleiche Vielzahl von Zeigern504 (504-0 bis504-7 ), einen Ausgabeprozessor505 , eine oder mehrere Ausgangsportschnittstellen506 (506-0 bis506-7 , eine für jeden Ausgangsport108 ), eine Reservierungstabelle508 , einen Prozessor für indirekte Zellen510 , eine Ausgangsportschnittstelle506 und einen Lesekontroller517 . - Der Round-Robin-Daten-Handler
500 empfängt Zellen von jedem Eingangsport und sendet diese zu dem Ausgabeprozessor505 zum Ausgeben zu einer geeigneten Speicherbank105 in dem Speicher104 . Der Round-Robin-Daten-Handler500 bearbeitet die Eingänge (Zellen), die an den Eingangsportschnittstellen501 empfangen werden, auf Round-Robin-Zeitmultiplex-Basis. Das heißt für einen gegebenen Zellen-Slot, dass eine Zelle von jedem Eingangsport an dem Round-Robin-Daten-Handler500 empfangen und anschließend zu dem Ausgabeprozessor505 zur Übertragung in dem nächsten Zellen-Slot zu einer Speicherbank105 in dem Speicher104 gesendet wird. In dem nächsten Zeitzellen-Slot sendet der Daten-Handler500 die nächste von demselben Eingangsport empfangene Zelle zu dem Ausgabeprozessor505 zur Übertragung zu einer anderen Speicherbank. In einem Ausführungsbeispiel wird die nächste empfangene Zelle zu der nächsten Speicherbank (die nächste in numerischer Reihenfolge) in der Speicheranordnung gesendet. Alternativ dazu kann eine andere zeitabhängige Permutation verwendet werden, um die Übertragung der aufeinanderfolgenden Zellen von demselben Eingangsport zu steuern. - In Bezug auf
5b wird die zeitliche Ablaufplanung und das Anordnen der Übertragungen von dem Eingang zu dem Speicher dargestellt. Für den Zweck dieses Beispiels wird eine Folge von Zellen auf jeder Übertragungsleitung dargestellt. Lediglich für den Zweck dieses Beispiels wird jede Übertragungsleitung als sehr lang angesehen und enthält Daten, die zu zwei oder mehreren Zellen gehören. In Betrieb sind die Übertragungsleitungen kurz und es sind nicht mehrere Zellen auf einer Übertragungsleitung zu einer gegebenen Zeit vorhanden. In dem Zellen-Slot T4 wird eine Reihe von Zellen450-0 bis450-7 über die Übertragungsleitungen458 gesendet, eine von jedem Eingangsport107 zu dem Eingangsvermittler100 . In dem Zellen-Slot T3 (einer lediglich vor der Zeit zu Zellen-Slot T4) wird eine Reihe von Zellen452-0 bis452-7 über die Übertragungsleitungen458 gesendet, eine von jedem Eingangsport107 zu dem Eingangsvermittler 100. - Der Round-Robin-Daten-Handler
500 und der Ausgabeprozessor505 in dem Eingangsvermittler100 senden Zellen auf den Übertragungsleitungen460 zu dem Speicher104 aus. Wie in dem Zellen-Slot T2 zu sehen ist, gibt der Ausgabeprozessor505 eine Zelle454-B0 bis454-B7 zu jeder Speicherbank in einem einzelnen Zellen-Slot aus. Die Bezeichner „Bx" gibt den Eingangsport an, von dem die bestimmte Zelle empfangen wurde. - Eine Zelle von jedem Eingangsport wird pro Zellen-Slot in den Speicher
104 geschrieben. In dem Zeitabschnitt T1 (ein Zellen-Slot vor dem Zellen-Slot T2) wird erneut eine Zelle (456-B0 bis456-B7 ) in jede Speicherbank geschrieben. Der Round-Robin-Daten-Handler500 zeitmultiplext die Übertragungen zu dem Ausgabeprozessor505 , so dass aufeinanderfolgende Zellen von demselben Eingangsport in aufeinanderfolgende Speicherbanken105 in dem Speicher104 geschrieben werden. - Unter erneuter Bezugnahme auf
5a gibt ein Zeiger504 den Ort in einer dazugehörigen Speicherbank an, an den die nächste Zelle geschrieben wird. Der Ausgabeprozessor505 schreibt eine Zelle an einen Speicherort in einer bestimmten Speicherbank auf Basis der als nächstes verfügbaren Adresse in der Speicherbank, wie durch den zugehörigen Zeiger504 angegeben wird. - Der Round-Robin-Daten-Handler
500 enthält eine Schlüssellesemaschine514 zum Bestimmen der Schlüsselinformation, die zu einer ersten Zelle in einem Paket gehört, und eine Verbindungsmaschine515 zum Verbinden der Zellen in demselben Paket. - Der Vorgang des Lesen der Schlüsselinformation ist auf dem Gebiet der Technik bekannt. Nachdem der Schlüssel für ein bestimmtes Paket bestimmt ist, wird er temporär in dem Schlüsselpuffer
516 in dem Eingangsvermittler100 gespeichert, bis das gesamte Paket in dem Speicher104 gespeichert wurde. Die Datenstruktur für die Einträge600 in dem Schlüsselspeicher516 wird in6 dargestellt. Jeder Eintrag600 enthält einen Schlüssel602 , eine vollständige Adresse604 , Offsets606 sowie einen Indikator für indirekten Zellen608 . - Die Verbindungsmaschine
515 bestimmt die Startadresse (vollständige Adresse) in dem Speicher für die erste Zelle in einem gegebenen Paket. Die Startadresse enthält eine Speicherbanknummer in dem Speicher104 (die Speicherbanknummer, die durch den Round-Robin-Daten-Handler zugewiesen wurde, um die Zelle zu speichern) sowie den ersten verfügbaren Adressenort in der designierten Speicherbank (wie durch den dazugehörigen Zeiger504 angegeben). Die Startadresse (vollständige Adresse604 ) wird in dem Schlüsselspeicher516 zusammen mit dem dazugehörigen Schlüssel602 für das Paket gespeichert. Wenn die nächste Zelle, die demselben Paket zugehörig ist, an dem Vermittler100 ankommt, wird ein Offset606 , der sich auf den Offset bezieht, zu dem die Schlüsselspeicher516 gespeichert. In einem Ausführungsbeispiel der vorliegenden Erfindung werden bis zu vier Offsets606 gespeichert. Jede Offset-Adresse wird auf Basis des relativen Offsets in dem Speicher zwischen dem Ort der letzten Zelle in dem Speicher und dem Wert des Zeigers504 , der zu der aktuellen Speicherbank gehört, in die zu schreiben ist, berechnet. - Wenn mehr als fünf Datenzellen in einem Paket enthalten sind, wird der indirekte Zellenindikator gesetzt, und der letzte Offset gibt die Adresse in dem Speicher an, wo die erste indirekte Zelle, die dem Paket zugehörig ist, gespeichert wird. Indirekte Zellen werden ausführlicher weiter unten unter Bezugnahme auf
7 beschrieben. Nachdem das Paket in dem Speicher gespeichert wurde, wird der dazugehörige Eintrag in dem Schlüsselspeicher516 (eine Routen-Suchanforderung) über die Kontrollerschnittstelle512 zu dem Kontroller106 , der diesen verarbeitet, weitergeleitet. Alternativ dazu kann der Schlüssel gesendet werden, nachdem die ersten fünf Zellen in dem Speicher gespeichert wurden. - Das Verbinden oder Threading von Zellen für dasselbe Paket wird durch Verwenden der oben beschriebenen Offsets und indirekter Zellen durchgeführt. Offsets werden verwendet, um die ersten 5 Zellen in einem Paket zu verbinden, während indirekte Zellen verwendet werden, um die verbleibenden Zellen in einem Paket zu verbinden. In einem Ausführungsbeispiel ist, wenn eine Zelle 5 Zellen oder weniger enthält, die Verwendung von indirekten Zellen nicht erforderlich. Der Prozessor für indirekte Zellen
510 führt das Verbinden von Zellen in einem Speicher104 für ein gegebenes Paket durch. Der Prozessor für indirekte Zellen510 erzeugt indirekte Zellen zum Speichern in dem Speicher104 . Indirekte Zellen enthalten Offset-Informationen, die dem relativen Offset in dem Speicherplatz zwischen zusammenhängenden Zellen in dem Paket zugehörig sind. Der Prozessor für indirekte Zellen enthält einen Speicher für indirekte Zellen520 zum Speichern indirekter Zellendaten während der Bildung von indirekten Zellen. - In Bezug auf
7 enthält die Datenstruktur für eine indirekte Zelle700 ein Verbindungsfeld702 , eine Vielzahl von Offset-Feldern704 und ein letztes Feld706 . Das Verbindungsfeld702 gibt, wenn nicht festgelegt, an, dass die aktuelle indirekte Zelle die letzte Zelle in der Kette indirekter Zellen für ein gegebenes Paket ist. Wenn es festgelegt ist, dann sind mehr indirekte Zellen für das gegebene Paket vorhanden. Wenn mehr indirekte Zellen vorhanden sind, dann gibt das letzte Feld606 den Offset zu dem Ort in dem Speicher der nächsten indirekten Zelle an, die dem Paket zugehörig ist. In einem Ausführungsbeispiel der vorliegenden Erfindung enthält jede indirekte Zelle56 Offset-Datenblöcke zum Verbinden von 56 Zellen in dem Speicher. - Wie vorangehend beschrieben wurde, verarbeitet die Verbindungsmaschine, wenn ein Paket empfangen wird, die ersten fünf Zellen und speichert Verbindungsinformationen in Form einer Startadresse sowie vier Offsets in dem Schlüsselspeicher
516 . In dem Fall, dass mehr als fünf Zellen in einem Paket enthalten sind, übernimmt der Prozessor für indirekten Zellen die Verbindungsmaschine und berechnet die Offsets, die zu den Orten in dem Speicher gehören, wo die verbleibenden Zellen in dem Paket gespeichert werden. Die Round-Robin-Prozessor500 sendet Zellen zu dem Ausgabeprozessor505 zum Senden an eine dazugehörige Speicherbank in dem Speicher104 . Der Round-Robin-Prozessor500 aktiviert den Prozessor für indirekte Zellen, wenn das Paket, das verarbeitet wird, mehr als 5 Zellen enthält (auf Basis der Header-Informationen, die in der ersten Zellen enthalten sind). Zum Zeitpunkt des Schreibens der fünften Zelle in den Speicher, speichert der Prozessor für indirekte Zellen510 die Adresse (die „indirekte Zellenadresse"), die dem Ort in dem Speicher zugehörig ist, an den die fünfte Zelle geschrieben worden wäre, wenn sie die letzte Zelle in dem Paket gewesen wäre, in den Speicher für indirekte Zellen520 . Die indirekte Zellenadresse gibt den Ort in dem Speicher an, an den die indirekte Zelle zu schreiben ist, wenn sie vollständig ist (oder wenn die letzte Zelle des Paketes verarbeitet ist). - Wenn eine indirekte Zelle vollständig ist (wobei Offsets an allen verfügbaren Orten mit Ausnahme des letzten Feldes
706 gespeichert sind), dann speichert der Prozessor für indirekte Zellen den Offset, der dem Ort in dem Speicher zugehörig ist, an dem die nächste indirekte Zelle platziert wird, in das letzte Feld606 . Anschließend wird die vollständige indirekte Zelle an ihrem entsprechenden Platz in dem Speicher gespeichert. Das Schreiben der indirekten Zelle in den Speicher fällt mit dem Empfang einer indirekten Platzhalterzelle durch den Eingangsvermittler100 von dem dazugehörigen Eingangsport107 zusammen. Dieser Vorgang dauert an, bis die letzte Zelle in einem Paket in dem Speicher gespeichert ist. Zu diesem Zeitpunkt wird die letzte indirekte Zelle in den Speicher geschrieben und der dazugehörige Eintrag600 aus dem Schlüsselpuffer516 wird zu dem Kontroller106 übertragen, der diesen verarbeitet. - Es wird oft vorkommen, dass die letzte Zelle eines Paketes nicht mit der erforderlichen Zeit zum direkten Schreiben der vollständigen indirekten Zelle in den Speicher übereinstimmt. Dies rührt daher, dass die Paketlänge völlig beliebig sein kann. Das Ende eines Paketes wird wahrscheinlich nicht mit dem Ablegen einer gesamten indirekten Zelle übereinstimmen. Wenn ein Paket vollständig ist (sämtliche Zellen wurden durch den Eingangsvermittler empfangen) und der letzte Eintrag in die indirekten Zelle geschrieben ist, kann die indirekte Zelle in den Speicher geschrieben werden. Das Schreiben wird jedoch bis zu dem richtigen Zeitpunkt hinausgezögert, deshalb der Begriff verzögerte indirekte Zelle. Eine verzögerte indirekte Zelle ist eine indirekte Zelle, die die letzte indirekte Zelle ist, die zu einem Paket gehört. Sie ist verzögert, da sie in den Speicher geschrieben wird, nachdem der Rest des Paketes in den Speicher geschrieben wurde. Die Zeit für das Schreiben in den Speicher wird durch die Adresse vorgeschrieben, die für die indirekte Zelle reserviert ist. Wie oben beschrieben wurde, wird zu dem Zeitpunkt der Erzeugung einer indirekten Zelle deren Position in dem Speicher reserviert. Die verzögerte indirekte Zelle wird in dem nächsten Zeitslot in den Speicher geschrieben, der für den bestimmten Eingangsport zum Schreiben in die bestimmte Speicherbank, nachdem das Paket vervollständigt wurde, zur Verfügung steht. Die Zeit des Schreibens der verzögerten indirekten Zellen in den Speicher fällt mit dem Empfang einer verzögerten indirekten Platzhalterzelle von dem dazugehörigen Eingangsport
107 zusammen. - Der Lesekontroller
517 steuert die Übertragung der Leseanforderungssignale, die von dem Eingangsvermittler100 aus der Speicherschnittstelle501 zu den einzelnen Speicherbanken in dem Speicher104 fließen. Der Lesekontroller517 empfängt die Leseanforderungen von jedem Ausgangsport durch die Ausgangsportschnittstellen506 . Das Format jeder Anforderung enthält eine Quellenidentifikation (Ausgangsport) und eine vollständige Adresse in dem Speicher, die zu lesen ist. In jedem Zellen-Slot kann jeder Ausgangsport eine Leseanforderung zum Verarbeiten durch den Vermittler100 erzeugen, um einen Speicherort in dem Speicher104 zu lesen, was in dem Lesen einer Zelle (eine Leseantwort) von einer Speicherbank105 (in einem nachfolgenden Zellen-Slot) zu dem Ausgangsvermittler102 resultiert. - Die Datenstruktur einer von dem Eingangsvermittler
100 (über den Ausgabeprozessor505 ) zu einer Speicherbank105 in dem Speicher104 gesendeten Zelle wird in8 dargestellt. Der Ausgabeprozessor505 erzeugt in jedem Zellen-Slot eine Zelle800 , die ein Leseanforderungs-Quellenfeld802 , eine Leseadresse804 , eine Schreibadresse806 sowie ein Datenfeld (Zellendaten, die von dem Eingangsport107 empfangen wurden) 808 enthält. Das Leseanforderungs-Quellenfeld802 gibt den Ausgangsport an, der das Lesen anfordert (Zieladressen-Ausgangsport108 ). Der Ausgabeprozessor505 empfängt Leseanforderungen von dem Lesekontroller517 und bündelt die Leseanforderung mit jeglicher von dem Round-Robin-Daten-Handler500 empfangenen Schreibanforderung, die für dieselbe Speicherbank bestimmt ist. In jedem Zellen-Slot stellt der Ausgabeprozessor505 eine Zelle800 bereit, die eine Schreib- und Leseanforderung für jede Speicherbank105 in dem Speicher104 enthält. - Der Lesekontroller
517 lädt eine Reservierungstabelle508 , wenn Anforderungen zur Übertragung von Paketen von den verschiedenen Ausgangsports108 empfangen werden. Die Reservierungstabelle wird so geladen, dass in jedem Zellen-Slot eine einzelne Leseanforderung für jede Speicherbank105 in dem Speicher104 erzeugt wird. Im Folgenden wird Bezug auf9 genommen, in der eine Reservierungstabelle508 dargestellt ist, die eine Vielzahl von Spalten900 , eine für jede Speicherbank105 in dem Speicher104 , eine Vielzahl von Zeilen902 , Platzhalter904 sowie geladene Einträge906 enthält. Jede Zeile stellt eine Reihe von Leseanforderungen (eine pro Speicherbank) dar, die in einem einzigen Zellen-Slot zu erzeugen ist. Jede Zeile enthält einen einzelnen Eintrag für jeden Ausgangsport108 . In jedem Zellen-Slot ist jeder Ausgangsport in der Lage, ein Lesen von einer einzelnen Speicherbank105 in dem Speicher104 anzufordern. Zu jeder Reservierungstabelle508 gehört ein Lesezeiger908 . Der Zeiger zeigt auf die nächste Zeile in der Reservierungstabelle, die gelesen werden soll. Zeilen vor dem Lesezeiger entsprechen Anforderungen, die zu einer späteren Zellen-Slotzeit in die Warteschlange aufgenommen werden. In einem Ausführungsbeispiel bewegt sich der Zeiger während einer Zellen-Slotzeit wenigstens eine Zeile. - Die geladenen Einträge
906 spiegeln Leseanforderungen wider, die als Ergebnis der von dem Ausgangsvermittler102 empfangenen Reservierungsanforderungen auszuführen sind. Die Platzhalter904 repräsentieren verfügbare Leseanforderungen, die bislang noch nicht angefordert wurden. In jedem Zellen-Slot führt der Lesekontroller517 drei Funktionen aus: Laden von Einträgen in die Reservierungstabelle an die erste verfügbaren Stelle in der Tabelle (nach dem Lesezeiger); Ausgeben der letzten Zeile als Leseanforderungen zu dem Ausgabeprozessor505 ; und Aktualisieren der Tabelle, wobei die letzte Zeile entfernt wird, die Zeilen erhöht werden und eine neue Zeile am Anfang der Tabelle erzeugt wird. Die Anzahl der Zeilen in der Reservierungstabelle muss so groß sein wie das Produkt der Latenzzeit beim Verarbeiten von Leseanforderungen mal der Anzahl der Speicherbanken. In einem Ausführungsbeispiel umfasst der Reservierungstabelle508 48 Zeilen, wobei ein System widergespiegelt wird, das sechs Zellen-Slots Latenzzeit und acht Speicherbanken enthält. - Bei der Initialisierung enthält die Reservierungstabelle
508 die Platzhalter904 in sämtlichen der Zeilen902 . Die Platzhalter904 sind Stellen in der Reservierungstabelle, die nicht geladen wurden. Wenn Leseanforderungen durch den Leseprozessor verarbeitet werden, werden bestimmte Platzhalter der Platzhalter904 in geladene Einträge906 auf Basis der Leseanforderungen umgewandelt. Die geladenen Einträge906 enthalten eine Leseanforderungsadresse. - Im Folgenden wird Bezug auf
10 genommen, wobei der Vorgang zum Laden der Reservierungstabelle das Empfangen einer Leseanforderung (vollständigen Adresse) von einem Ausgangsport (1000 ) umfasst. Der Lesekontroller dekodiert die Leseanforderung, um die Spalte (auf Basis der Speicherbank, aus der gelesen werden soll) in der Reservierungstabelle zu bestimmen, in der die Suche durchgeführt werden soll (1002). Der Leseprozessor sucht beginnend von dem unteren Ende der Reservierungstabelle nach dem ersten Platzhalter, der zu dem Ausgangsport gehört, der die Leseanforderung erzeugt hat (1004 ). Der Leseprozessor wandelt den Platzhalter904 zu einem geladenen Eintrag906 durch Schreiben der vollständigen Adresse der Leseanforderung an den Ort um (1006 ). Der Vorgang wiederholt sich für jede von dem Lesekontroller empfangene Leseanforderung (1008 ). - Im Folgenden wird Bezug auf
11 genommen, in der der Speicher104 dargestellt ist, der eine Vielzahl von Speicherbanken105 enthält. Jede Speicherbank enthält einen Eingangsport1102 sowie einen Ausgangsport1104 . In jedem Zellen-Slot empfängt jede Speicherbank höchstens eine Schreib- und eine Leseanforderung über den Eingangsport1102 . Die Schreibanforderungen gehören zu den Zellen, die von den Ein gangsports107 empfangen werden. Die Leseanforderungen spiegeln eine Anforderug zum Übertragen von Zellendaten aus einer Speicherbank105 zu dem Ausgangsvermittler102 wider. Die Datenstruktur, die den Zellen zugehörig ist, die aus dem Speicher104 zu dem Ausgangsvermittler102 geschrieben werden, ist in12 dargestellt. Jede Zelle1200 enthält eine Ausgangsportkennung1002 sowie Zellendaten1204 . - In einem Ausführungsbeispiel ist der Speicher in eine Vielzahl von Speicherbanken unterteilt, wobei die Anzahl der Speicherbanken mit der Anzahl der Eingangs- und Ausgangsport übereinstimmt. Es besteht eine Eins-zu-Eins-Beziehung zwischen den Eingangsports, den Ausgangsports und den Speicherbanken. In diesem Ausführungsbeispiel wird die Übertragung von Zellen von dem Eingangsvermittler
100 zu den Speicher104 auf Zeitmultiplex-Basis durchgeführt. Das heißt, dass aufeinanderfolgende Zellen von einem gegebenen Eingangsport zu verschiedenen Zieladressenorten in dem Speicher geleitet werden. In jedem Zeitabschnitt (Zellen-Slot) sendet der Eingangsvermittler eine einzelne Zelle von jedem Eingangsport (wie verfügbar) in den Speicher. Zu einer nächsten Zeit T+1 sendet der Eingangsvermittler wieder eine einzelne Zelle von jedem Eingangsport in den Speicher. Aufeinanderfolgende Einträge von demselben Eingangsport werden in verschiedene Speicherbanken105 in dem Speicher104 geschrieben. - Im Folgenden wird Bezug auf
13 genommen, in der der Kontroller106 dargestellt ist, der einen Kontroller-Speicher109 , eine Routen-Suchmaschine110 , eine Eingangsvermittlerschnittstelle1300 und eine Ausgangsvermittlerschnittstelle1302 enthält. Der Kontroller106 empfängt eine Routen-Suchanforderung von dem Eingangsvermittler100 an der Eingangsvermittlerschnittstelle1300 . In einem Ausführungsbeispiel der vorliegenden Erfindung ist eine Vielzahl von Routen-Suchmaschinen110 in dem Kontroller106 enthalten, wobei jede Suchmaschine Suchanforderungen auf Round-Robin-Basis empfängt, um den Routing-Vorgang zu beschleunigen. In einem Ausführungsbeispiel ist der Kontroller-Speicher109 ein Statischer Direktzugriffsspeicher (SRAM [Static Random Access Memory]) mit vier Speicherbanken, der zweiunddreißig Routen-Suchmaschinen110 erfordert, um mit voller Bandbreite arbeiten zu können. Das Vergleichen von Schlüsseln, die von einem Paket aufgefunden wurden, um die Best-Match-Route durch den Router zu bestimmen, wird ausführlicher in der parallelen Patentanmeldung mit dem Titel „HIGH SPEED VARIABLE LENGTH BEST MATCH LOOK-UP IN A SWITCHING DEVICE", eingereicht am 16. Dezember 1996, von Fergusen et al., Seriennummer 08/767.576 beschrieben, die hiermit ausdrücklich durch Bezugnahme hierin aufgenommen wird. - Die Routen-Suchmaschine, die die Routen-Suchanforderung bearbeitet, führt eine Best-Match-Suche durch und gibt eine Benachrichtigung durch die Ausgangsvemittlerschnittstelle
1302 zu dem Ausgangsvermittler102 aus. Die Benachrichtigung enthält ein Ergebnis, das den Ausgangsport, der bei der Übertragung des Paketes zu seiner Zieladresse zu verwenden ist, angibt. - Im Folgenden wird Bezug auf
14 genommen, in der die Datenstruktur, die der Benachrichtigung zugehörig ist, die von dem Kontroller106 zu dem Ausgangsvermittler102 ausgegeben wird, dargestellt ist. Die Datenstruktur1400 für die Benachrichtigung enthält eine Maske1402 , einen Next-Hop-Indexzeiger1404 , die vollständige Adresse1406 , die Offsets1408 sowie die Paketlänge1410 . - Das Maskenfeld
1402 wird verwendet, um anzuzeigen, welcher mit dem Ausgangsvermittler102 verbundene Ausgangsport zum Senden des Paketes ist. In einem Ausführungsbeispiel kann die Benachrichtigung zu mehr als einem Ausgangsport gesendet werden, was zum Rundsenden des dazugehörigen Paketes führt. - Zu jedem Ausgangsport
108 gehört ein Speicher. Der Next-Hop-Indexzeiger zeigt auf einen Ort in dem Speicher. Der Speicher wird verwendet, um die Medienheader-Information, die einem bestimmten Paketübertragungstyp zugehörig ist, zu speichern. Im Folgenden werden die Next-Hop-Adressen und die Medienheader ausführlicher in Zusammenhang mit dem Ausgangsport108 beschrieben. - Die vollständige Adresse
1406 gibt die Startadresse in dem Speicher an, wo die erste Zelle in dem Paket gespeichert ist. Wie vorangehend beschrieben wurde, stellen die Offsets1408 Verbindungsinformation für das Wiederauffinden von Zellen oder einer indirekten Zelle, die dem Paket zugehörig sind, bereit. - Im Folgenden wird Bezug auf
15 genommen, in der ein Ausgangsvermittler dargestellt ist, der eine Kontrollerschnittstelle1500 , einen Speichereingang oder mehrere Speichereingänge1502 (1502-0 bis1502-7 , einen für jede Speicherbank), einen Ausgang oder mehrere Ausgänge1504 (1504-0 bis1504-7 , einen für jeden Ausgangsport), einen Ergebnisprozessor1506 und einen Ausgabeprozessor1508 enthält. Der Ausgangsvermittler102 führt vier Funktionen aus: Empfangen von Ausgabeergebnissen, Verarbeiten von Ausgabeergebnissen, Empfangen von Zellen aus dem Speicher und Ausgeben von Zellen zu den Ausgangsports. - Zellen aus dem Speicher werden an den Speichereingängen
1502 empfangen und zu dem Ausgabeprozessor1508 gesendet. Der Ausgabeprozessor1508 dekodiert den Zieladressen-Ausgangsport aus der von dem Speicher empfangenen Zelleninformation und sendet die Zellendaten zu den jeweiligen Ausgängen1502 . In jedem Zellen-Slot empfängt der Ausgangsvermittler102 eine Zelle zum Verarbeiten von jeder Speicherbank in dem Speicher104 . - Der Ausgangsvermittler
102 empfängt die Benachrichtigung von dem Kontroller106 an der Kontrollerschnittstelle1500 . Der Ergebnisprozessor1506 dekodiert das Ergebnis (Route) und bestimmt, welcher/welche Ausgangsports108 die Routen-Daten empfangen soll/sollen. Auf Basis der Maske1402 in der Benachrichtigung sendet der Ergebnisprozessor1506 die Benachrichtigung zu dem Ausgabeprozessor1508 zum Übertragen zu jedem entsprechenden Ausgangsport108 , der so angezeigt ist. In jedem Zellen-Slot stellt der Ausgabeprozessor1508 (über die Ausgänge1504 ) jedem Ausgangsport108 eine Route bereit. - Die Datenstruktur, die den Daten zugehörig ist, die von dem Ausgabeprozessor
1508 zu den Ausgangsports108 übertragen werden, ist in16 dargestellt. Eine Zelle1600 enthält einen Header1602 und ein Datenfeld1604 . Der Header1602 enthält die Speicherbank-Quelleninformation1606 sowie die Routen-Information1608 . Die Speicherbank-Quelleninformation enthält eine Quellenkennung, um anzugeben, welche Speicherbank die Zelle in dem Datenfeld1604 bereitgestellt hat. Die Routen-Information1608 enthält Daten aus der Benachrichtigung, die einen Next-Hop-Index, die Paketlänge, die vollständige Adresse und die Offsets umfassen. - Im Folgenden wird Bezug auf
17 genommen, wobei jeder Ausgangsport108 eine Ausgangsvermittlerschnittstelle1700 , eine Eingangsvermittlerschnittstelle1702 , einen Puffer1704 , einen Ausgabeanforderungsprozessor1706 , eine Leitungsausgangsschnittstelle1708 , eine Speichereinrichtung (Speicher)1710 , einen Ausgangspuffer1712 und einen Ausgabeformatierer1714 enthält. - Die Ausgangsports
108 empfangen eine Benachrichtigung, dass ein Paket zu verarbeiten ist, von den Zellen1600 an der Ausgangsvermittlerschnittstelle1700 . Der Ausgabeanforderungsprozessor1706 speichert die Anforderung in dem Puffer1704 und erzeugt anschließend eine Leseanforderung zu dem Eingangsvermittler100 , die mit der ersten Adresse in dem Speicher assoziiert ist, wo das Paket gespeichert ist. Der Ausgabeanforderungsprozessor1706 erzeugt die erste Leseanforderung auf Basis der vollständigen von dem Ausgangsvermittler102 empfangenen Adresse. Anschließend werden nachfolgende Leseanforderungen erzeugt, die zu dem Eingangsvermittler übertragen werden, auf Basis der Offset-Information, die in der Anforderung (von der Zelle1600 ) oder in den indirekten Zellen (wie im Folgenden beschrieben) bereitgestellt ist. - Wenn die Paketlänge, wie durch die Routen-Information bestimmt, die mit der Zelle
1600 bereitgestellt wird, größer ist als fünf (5) Zellen, dann fordert der Ausgabeanforderungsprozessor zuerst die Übertragung (Lesen aus dem Speicher) der ersten indirekten Zelle an, die dem Paket zugehörig ist. Dies wird durch Berechnen der Adresse der indirekten Zelle auf Basis der vollständigen Adresse und der Offsets, die in der Zelle1600 enthalten sind, durchgeführt. Nachdem die indirekte Zellenanforderung erzeugt ist, erzeugt der Ausgabeanforderungsprozessor Leseanforderungen für die verbleibenden Zellen in dem Paket auf Basis der in der Zelle1600 bereitgestellten vollständigen Adresse und der Offsets. Bei Empfang einer indirekten Zelle von dem Ausgangsvermittler102 fährt der Ausgabeanforderungsprozessor mit dem Erzeugen von Leseanforderungen für die verbleibenden Zellen in dem Paket auf Basis der Offset-Information fort, die in der indirekten Zelle enthalten ist. - Nachfolgende indirekte Zellen werden auf eine ähnliche Weise wieder hergestellt. Das heißt, zu dem Zeitpunkt des Lesens der nächsten indirekten Zelle wird die Adresse der nächsten indirekten Zelle auf Basis des letzten in der vorherigen indirekten Zelle gespeicherten Offsets berechnet. Der zeitliche Ablauf des Wiederherstellens der indirekten Zellen wird so durchgeführt, dass keine Verzögerungen in dem Ausgangsstrom erforderlich sind. Jede nachfolgende indirekte Zelle wird vor dem Beenden der Verarbeitung der vorherigen indirekten Zelle wieder hergestellt. Auf diese Weise ist, sobald der Strom initialisiert ist, kein Puffern von Daten erforderlich und es werden keine Unterbrechungen aufgrund der Latenzzeit in Zusammenhang mit dem Wiederherstellungsvorgang wahrgenommen.
- Ausgabeanforderungen zu einer einzelnen Speicherbank werden strikt in Reihenfolge verarbeitet. Das heißt, der Ausgangsport kann jede zu einer Speicherbank ausgegebene Anforderung tracken, und ist sicher, dass die in Reaktion auf eine Reihe von Anforderungen zu derselben Speicherbank empfangenen Daten strikt entsprechend der Reihenfolge oder dem Muster, in der oder in dem sie ausgegeben wurden, bereitgestellt werden.
- Der Ausgabeanforderungsprozessor protokolliert die Anforderungen, die für jede Speicherbank erzeugt werden. Der Ausgangspuffer
712 enthält eine Vielzahl von Warteschlagen, zwei für jede Speicherbank (eine Anforderungswarteschlage und eine Antwortwarteschlange), die verwendet werden, um die aus dem Speicher empfangenen Zellen entsprechend dem bestimmten Datenstrom, dem sie zugewiesen sind, zu ordnen. Die Anforderungsschlange enthält eine Datenstromnummer und eine Leseadresse. Wenn eine Anforderung zu dem Speicher ausgegeben wird, wird der Eintrag aus der Anforderungswarteschlange entfernt, und der Datenstromnummerabschnitt wird in die Antwortwarteschlage platziert. Wenn eine Antwort empfangen wird, wird der Eintrag am Anfang der Antwortwarteschlange entfernt und die Antwort wird zu der Datenstromnummer gesendet, die durch die aus der Antwortwarteschlage aufgefundene Datenstromnummer angegeben wird. - Wenn Zellen an dem Ausgangsport
108 zurück empfangen werden (in Reaktion auf die Leseanforderungen), werden sie in dem Ausgangspuffer1712 gespeichert. Für ein gegebenes Paket speichert der Ausgangsport die Anzahl der Zellen, die erforderlich sind, um einen gestreamten Ausgang bereitzustellen. In einem Ausführungsbeispiel der vorliegenden Erfindung werden zwölf Zellen vor dem Beginn der Ausgabe (Stromdaten) von dem Ausgangsport gespeichert. Die Auswahl der Anzahl von Zellen zum Speichern in dem Ausgangspuffer1712 basiert auf der Latenzzeit in dem Lesevorgang (Anzahl der Taktzyklen zwischen einer Leseanforderung von einem Ausgangsport und der Ankunft der Zelle, die der Leseanforderung zugehörig ist, an dem Ausgangsport). - Der Ausgabeformatierer
1714 empfängt die Zellen von dem Ausgangspuffer1712 und koppelt die Daten mit der Medienheader-Information, die in dem Speicher1710 gespeichert ist. Jede Anforderung (Benachrichtigung), die von dem Ausgangsvermittler102 empfangen wird, enthält einen Next-Hop-Index. Der Next-Hop-Index gibt die Startadresse in dem Speicher1710 der Medienheader-Information an, die zu einem gegebenen Übertragungstyp gehört (abgeleitet von der Zieladresse des Paketes). Der Ausgabeformatierer1714 koppelt die Zellendaten, die aus dem Speicher zurückgegeben werden, mit dem entsprechenden Medienheader, um ein ordnungsgemäßes Paket zu erzeugen, das an der Leitungsausgangsschnittstelle1708 aus dem Router20 gesendet wird. - Im Folgenden wird Bezug auf
18 genommen, wobei in einem Verfahren zum Routing von Paketen durch einen Vermittler ein Paket an einem Eingangsport empfangen wird (1800 ). Der Eingangsport unterteilt das Paket in Zellen feststehender Länge und sendet die Zellen zu einem Eingangsvermittler (1802 ). Der Eingangsvermittler extrahiert Schlüsselinformation aus der ersten Zelle in einem Paket und speichert sie temporär in einem Schlüsselspeicher (1804 ). Anschließend routet der Eingangsvermittler die Zellen zu den Speicherbanken auf Zeitmultiplex-Basis (1806 ). Der Eingangsvermittler speichert die erste Adresse, die dem Ort zugehörig ist, an dem die erste Zelle in dem Speicher geschrieben ist und berechnet die Offsets für jede zusätzliche Zelle, die dem Offset in dem Speicher für die nächste zusammenhängende Speicherbank zugehörig sind, in die die nächste Zelle geschrieben wird (1808 ). Der Eingangsvermittler erzeugt indirekte Zellen, um Verbindungsinformationen für das Paket zu speichern, wenn die Paketlänge fünf Zellen überschreitet (1810 ). Wenn die Anzahl der Zellen die Anzahl der verfügbaren Offsets in einer indirekten Zelle überschreitet, dann wird die alte indirekte Zelle in dem Speicher gespeichert und eine neue indirekte Zelle erstellt und geladen, und zwar auf Basis der für jede neue Zelle berechneten Offsets, die an dem Eingangsvermittler empfangen werden. - Wenn das Paket (und dessen indirekte Zellen, falls vorhanden) in dem Speicher gespeichert wurde, werden der Schlüssel, die vollständige Adresse der ersten Zelle sowie die Offset-Information als eine Suchanforderung zu dem Kontroller (
1814 ) übertragen. Der Kontroller führt eine Best-Match-Suche durch und erzeugt ein Ergebnis der Suche. Das Ergebnis umfasst den Zielport (Ausgangsport), die Adresse, die Offset-Information sowie den Next-Hop-Index (1816 ). Eine Benachrichtigung, die das Ergebnis enthält, wird zu dem Ausgangsvermittler für die Übertragung zu dem jeweiligen Ausgangsport (1818 ) gesendet. - Bei Empfang einer Benachrichtigung erzeugt der Ausgangsport Leseanforderungen einer Zelle zu einem Zeitpunkt an den Eingangsvermittler für die zu dem Paket zugehörigen Daten (
1820 ). Der Eingangsvermittler gibt die Leseanforderungen auf Zeitmultiplex-Basis aus, wobei er eine einzelne Anforderung zu jeder Speicherbank pro Zellen-Slot ausgibt (1822 ). Wenn die Speicherbank die Anforderung von dem Eingangsvermittler empfängt, werden der Ausgangsport, der mit der Anforderung assoziiert ist, und die Zellendaten, zu dem Ausgangsvermittler geschrieben (1824 ). In jedem Zellen-Slot sendet der Ausgangsvermittler erneut eine einzelne Zelle zu jedem der Ausgangsports. Bei Empfang koppelt der Ausgangsport die Zellendaten mit der Medienheader-Information und streamt die Daten zu der Zieladresse (1826 ). - Alternative Ausführungsbeispiele
- In einem Ausführungsbeispiel der vorliegenden Erfindung sind ein Ausgangsport, ein Eingangsport sowie eine Speicherbank in einer einzelnen Vorrichtung enthalten. Die Architektur dieses Multifunktionsports, der einen Speicher enthält, ist in
19 dargestellt. Der Multifunktionsport1900 enthält im Besonderen eine Speicherbank105 , eine Leitungseingangsschnittstelle300 , einen Daten-Handler302 , einen Puffer1704 , einen Ausgabeanforderungsprozessor1706 , eine Leitungsausgangsschnittstelle1708 , eine Speichervorrichtung1710 , eine FIFO-Einrichtung1712 , einen Ausgangsformatierer1714 , eine Eingangsvermittlerschnittstelle1902 sowie eine Ausgangsvermittlerschnittstelle1904 . - Der Multifunktionsport wird in Verbindung mit dem Eingangsvermittler, dem Ausgangsvermittler und dem Kontroller, wie in
20 dargestellt, verwendet. Die verschiedenen Komponenten des Eingangsports, des Ausgangsports und der Speicherbank führen die gleichen Funktionen aus, die oben beschrieben wurden. Die Kombination der Vorrichtungen in einer einzigen Einheit vereinfacht jedoch die Schnittstellen zwischen den Komponenten. Das verbesserte Format für die Übertragungen zwischen dem Multifunktionsport und dem Eingangsvermittler wird insbesondere in21 dargestellt. - Eine Zelle
2100 , die von einem Multifunktionsport1900 zu einem Eingangsvermittler gesendet wurde, enthält einen Zellen-Header2102 sowie Zellendaten2104 . Der Zellen-Header2102 enthält ein Typfeld406 , ein Datenstromfeld408 , Paket-Header-Felder410 , die ähnliche Funktionen wie die in Bezug auf4 beschriebenen Felder inne haben. Darüber hinaus enthält der Zellen-Header2102 eine Leseanforderung in der Form einer Ausgangsportkennung2106 und einer Adresse2108 . Die Ausgangsportkennung2106 identifiziert den Ausgangsport, der die Leseanforderung ausgibt. Die Adresse2108 gibt die Adresse in dem Speicher104 an, die zu lesen ist. - Die vorliegende Erfindung wurde im Hinblick auf spezifische Ausführungsbeispiele beschrieben, die die Erfindung veranschaulichen sollen und nicht im einschränkenden Sinne auszulegen sind. Weitere Ausführungsbeispiele sind in den Umfang der folgenden Patentansprüche einzubeziehen.
Claims (13)
- Verfahren zur Vermittlung eines Datenpaketes zwischen einer Quelle und einer Zieladresse in einem Router (
20 ), wobei der Router (20 ) einen Eingangsport (107 ) zum Empfangen des Datenpaketes von der Quelle, einen Ausgangsport (108 ) zum Routing des Datenpaketes zu der Zieladresse und einen Speicher (104 ) enthält, das Verfahren ist gekennzeichnet durch: Unterteilen (500 ) des Datenpaketes in eine Zelle (450 ) feststehender Länge oder in mehrere Zellen feststehender Länge, Unterteilen des Speichers in eine Vielzahl von Speicherbanken (105 ), Empfangen der Zellen feststehender Länge von dem Eingangsport (107 ) und Routen von aufeinanderfolgenden Zellen (450 ) des Datenpaketes zu verschiedenen Speicherbanken (105 ), wobei in einer Zellen-Slotzeitdauer eine einzelne Zelle (450 ) zu jeder Speicherbank (105 ) gesendet wird, Verbinden (515 ) der Zellen (450 ) in dem Datenpaket, um Wiederherstellung des Datenpaketes aus nicht zusammenhängenden Speicherorten in dem Speicher (104 ) zu ermöglichen, und Routing von Zellen (450 ), die aus dem Speicher (104 ) empfangen wurden, zu dem Ausgangsport (108 ). - Verfahren nach Anspruch 1, wobei der Eingangsport (
107 ) eine Vielzahl von Eingangsports (107 ) enthält, von denen jeder einen Daten-Handler (500 ) enthält, und der Ausgangsport (108 ) eine Vielzahl von Ausgangsports (108 ) enthält, von denen wenigstens einer für das Routing des Datenpaketes zu der Zieladresse ist. - Verfahren nach Anspruch 1, das des Weiteren umfasst: Erzeugen einer indirekten Zelle (
510 ) oder mehrerer indirekter Zellen (510 ), Tracking des Ortes in dem Speicher, wo aufeinanderfolgende Zellen des Datenpaketes (515 ) gespeichert sind, Bereitstellen einer Adresse in dem Speicher (104 ) von jeder Zelle (450 ) in dem Datenpaket, zum Speichern in indirekten Zellen. - Verfahren nach Anspruch 1, das des Weiteren umfasst: Zeitmultiplexen des Schreibens von Datenpaketen in den Speicher (
104 ), so dass aufeinanderfolgende Zellen (450 ) von dem Eingangsport (107 ) in aufeinanderfolgende Speicherbanken (105 ) in dem Speicher (104 ) geschrieben werden. - Verfahren nach Anspruch 1, das des Weiteren umfasst: Extrahieren von Schlüsselinformation (
514 ) aus einer ersten Zelle (450 ), die dem Datenpaket zugehörig ist, Empfangen der Schlüsselinformation (516 ), Dekodieren von Zieladresseninfonnation aus der Schlüsselinformation (110 ) und Ausgeben einer Benachrichtigung (1400 ), die ein Routing des Datenpaketes von dem Speicher zu dem Ausgangsport (1302 ) definiert. - Verfahren nach Anspruch 5, das des Weiteren umfasst: Empfangen der Benachrichtigung (
1400 ) an dem Ausgangsport (108 ) und Initiieren einer Übertragung des Datenpaketes von dem Speicher (104 ) zu dem Ausgangsport (108 ). - Router (
20 ) zum Vermitteln eines Datenpaketes zwischen einer Quelle und einer Zieladresse in einem Netz, wobei der Router (20 ) einen Eingangsport (107 ) zum Empfangen des Datenpaketes von der Quelle, einen Ausgangsport (108 ) zum Routen des Datenpaketes zu der Zieladresse und einen Speicher (104 ) enthält, gekennzeichnet durch: den Eingangsport (107 ), der einen Daten-Handler (304 ) zum Unterteilen des Datenpaketes in Zellen (450 ) feststehender Länge enthält, den Speicher (104 ), der in eine Vielzahl von Speicherbanken (105 ) unterteilt ist, einen Eingangsvermittler (100 ), der eine Verbindungsmaschine (515 ) enthält, wobei der Eingangsvermittler (100 ) während einer Slot-Zeitdauer höchstens eine einzelne Zelle (450 ) aus dem Eingangsport (107 ) empfängt und höchstens eine einzelne Zelle (450 ) von dem Eingangsport (107 ) zu dem Speicher (104 ) in einen Zellen-Slot routet und der Eingangsvermittler (107 ) das Schreiben der Zellen in den Speicher (104 ) zeitmultiplext, so dass aufeinanderfolgende Zellen (450 ) von dem Eingangsport (107 ) in aufeinanderfolgende Speicherbanken (105 ) in dem Speicher (104 ) geschrieben werden, die Verbindungsmaschine (515 ) zum Verbinden der Zellen (450 ) in dem Datenpaket, um das Wiederherstellen des Datenpaketes aus nicht zusammenhängenden Orten in dem Speicher (104 ) zu ermöglichen, einen Kontroller (106 ) zum Dekodieren der dem Datenpaket zugehörigen Zieladresseninformation, wobei der Kontroller (106 ) eine Benachrichtigung (1400 ) ausgibt, die ein Routing des Datenpaketes durch den Router (20 ) definiert, den Ausgangsport (108 ), der einen Ergebnisprozessor (1506 ) zum Empfangen der Benachrichtigung (1400 ) von dem Kontroller (106 ) und zum Initiieren einer Übertragung des Datenpaketes von dem Speicher (104 ) zu dem Ausgangsport (108 ) enthält, und einen Ausgangsvermittler (102 ) zum Routen von Zellen (450 ), die aus dem Speicher (104 ) in dem Ausgangsport (108 ) empfangen werden. - Router nach Anspruch 7, wobei der Eingangsvermittler (
100 ) einer Reservierungstabelle (508 ) für die Ablaufplanung von Übertragungen von dem Speicher (104 ) zu dem Ausgangsport (102 ) enthält. - Router nach Anspruch 8, der des Weiteren einen Kontroller (
106 ) enthält, der mit dem Eingangsvermittler (100 ) und dem Ausgangsvermittler (102 ) gekoppelt ist, um von dem Eingangsvermittler (100 ) empfangene Zieladresseninformation zu dekodieren und eine Benachrichtigung (1400 ) zu dem Ausgangsvermittler (102 ) auszugeben, die ein Routing des Datenpaketes von dem Speicher (104 ) zu dem Ausgangsport (108 ) definiert. - Router nach Anspruch 9, wobei der Ausgangsvermittler (
102 ) die Benachrichtigung (1400 ) zu dem Ausgangsport (108 ) routet und der Ausgangsport (108 ) danach eine Anforderung zu dem Eingangsvermittler (100 ) ausgibt, das Datenpaket von dem Speicher (104 ) durch den Ausgangsvermittler (102 ) zu dem Ausgangsport (108 ) zu senden. - Router nach Anspruch 10, wobei die Anforderung von dem Ausgangsport (
108 ) in der Reservierungstabelle (508 ) gespeichert wird. - Router nach Anspruch 11, wobei die Anforderungen, Zellen (
450 ) von dem Speicher (104 ) zu dem Ausgangsvemittler (102 ) zu senden, Zeitbereichsmultiplex unterzogen werden, so dass während einer Zellen-Slotzeitdauer höchstens eine einzelne Leseanforderung (802 ) zu jeder Speicherbank (105 ) in dem Speicher (104 ) zur Bearbeitung ausgegeben wird. - Router nach Anspruch 10, wobei der Speicher (
104 ) in einer Zellen-Slotzeitdauer höchstens eine einzelne Zelle (450 ) pro Speicherbank (105 ) ausgibt.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/767,576 US5909440A (en) | 1996-12-16 | 1996-12-16 | High speed variable length best match look-up in a switching device |
US767576 | 1996-12-16 | ||
US844171 | 1997-04-18 | ||
US08/844,171 US5905725A (en) | 1996-12-16 | 1997-04-18 | High speed switching device |
US901061 | 1997-07-24 | ||
US08/901,061 US6493347B2 (en) | 1996-12-16 | 1997-07-24 | Memory organization in a switching device |
PCT/US1997/023285 WO1998027660A2 (en) | 1996-12-16 | 1997-12-16 | High speed switching device |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69737361D1 DE69737361D1 (de) | 2007-03-29 |
DE69737361T2 true DE69737361T2 (de) | 2007-06-21 |
Family
ID=27419639
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69737357T Expired - Lifetime DE69737357T2 (de) | 1996-12-16 | 1997-12-16 | Speicherorganisation in einer vermittlungsvorrichtung |
DE69737361T Expired - Lifetime DE69737361T2 (de) | 1996-12-16 | 1997-12-16 | Schnelle vermittlungsvorrichtung |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69737357T Expired - Lifetime DE69737357T2 (de) | 1996-12-16 | 1997-12-16 | Speicherorganisation in einer vermittlungsvorrichtung |
Country Status (6)
Country | Link |
---|---|
US (11) | US6493347B2 (de) |
EP (3) | EP0940025B1 (de) |
JP (3) | JP3459653B2 (de) |
CA (3) | CA2274962C (de) |
DE (2) | DE69737357T2 (de) |
WO (3) | WO1998027697A1 (de) |
Families Citing this family (219)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6046999A (en) * | 1996-09-03 | 2000-04-04 | Hitachi, Ltd. | Router apparatus using ATM switch |
US6493347B2 (en) | 1996-12-16 | 2002-12-10 | Juniper Networks, Inc. | Memory organization in a switching device |
US6791947B2 (en) | 1996-12-16 | 2004-09-14 | Juniper Networks | In-line packet processing |
JPH11167560A (ja) * | 1997-12-03 | 1999-06-22 | Nec Corp | データ転送システム、このシステムに用いるスイッチング回路、アダプタ及びこのシステムを有する集積回路並びにデータ転送方法 |
US6590901B1 (en) * | 1998-04-01 | 2003-07-08 | Mosaid Technologies, Inc. | Method and apparatus for providing a packet buffer random access memory |
US6430527B1 (en) * | 1998-05-06 | 2002-08-06 | Avici Systems | Prefix search circuitry and method |
US6580721B1 (en) * | 1998-08-11 | 2003-06-17 | Nortel Networks Limited | Routing and rate control in a universal transfer mode network |
FR2783618B1 (fr) * | 1998-09-23 | 2002-01-04 | France Telecom | Procede de mise a jour d'une memoire associative de type trie, et routeur mettant en oeuvre un tel procede |
US6608816B1 (en) * | 1998-11-18 | 2003-08-19 | Nortel Networks Limited | Method and apparatus for providing differentiated services using a multi-level queuing mechanism |
JP3704438B2 (ja) * | 1998-12-09 | 2005-10-12 | 株式会社日立製作所 | 可変長パケット通信装置 |
US6650637B1 (en) * | 1998-12-14 | 2003-11-18 | Lucent Technologies Inc. | Multi-port RAM based cross-connect system |
US7382736B2 (en) | 1999-01-12 | 2008-06-03 | Mcdata Corporation | Method for scoring queued frames for selective transmission through a switch |
JP4294142B2 (ja) * | 1999-02-02 | 2009-07-08 | 株式会社日立製作所 | ディスクサブシステム |
FR2789778B1 (fr) * | 1999-02-12 | 2001-09-14 | France Telecom | Procede pour associer des references d'acheminement a des paquets de donnees au moyen d'une memoire trie, et routeur de paquets appliquant ce procede |
US6757791B1 (en) * | 1999-03-30 | 2004-06-29 | Cisco Technology, Inc. | Method and apparatus for reordering packet data units in storage queues for reading and writing memory |
US6748481B1 (en) * | 1999-04-06 | 2004-06-08 | Microsoft Corporation | Streaming information appliance with circular buffer for receiving and selectively reading blocks of streaming information |
JP3570323B2 (ja) * | 1999-05-11 | 2004-09-29 | 日本電気株式会社 | アドレスに関するプレフィクスの格納方法 |
US6788701B1 (en) * | 1999-05-14 | 2004-09-07 | Dunti Llc | Communication network having modular switches that enhance data throughput |
US7778259B1 (en) | 1999-05-14 | 2010-08-17 | Dunti Llc | Network packet transmission mechanism |
US6618390B1 (en) * | 1999-05-21 | 2003-09-09 | Advanced Micro Devices, Inc. | Method and apparatus for maintaining randomly accessible free buffer information for a network switch |
GB9912129D0 (en) * | 1999-05-26 | 1999-07-28 | 3Com Corp | Communication device with forwarding database having having a trie search facility |
US7996670B1 (en) * | 1999-07-08 | 2011-08-09 | Broadcom Corporation | Classification engine in a cryptography acceleration chip |
GB2352145A (en) * | 1999-07-16 | 2001-01-17 | Texas Instruments Ltd | Prevention of bottlenecking in data transfers |
JP2001060967A (ja) * | 1999-08-23 | 2001-03-06 | Fujitsu Ltd | パケットスイッチ装置 |
US7102999B1 (en) | 1999-11-24 | 2006-09-05 | Juniper Networks, Inc. | Switching device |
US6681270B1 (en) * | 1999-12-07 | 2004-01-20 | Texas Instruments Incorporated | Effective channel priority processing for transfer controller with hub and ports |
US6643257B1 (en) | 2000-01-04 | 2003-11-04 | International Business Machines Corporation | Verifying performance of a buffering and selection network device |
JP4651230B2 (ja) | 2001-07-13 | 2011-03-16 | 株式会社日立製作所 | 記憶システム及び論理ユニットへのアクセス制御方法 |
US6684209B1 (en) * | 2000-01-14 | 2004-01-27 | Hitachi, Ltd. | Security method and system for storage subsystem |
US7657727B2 (en) * | 2000-01-14 | 2010-02-02 | Hitachi, Ltd. | Security for logical unit in storage subsystem |
JP4294821B2 (ja) * | 2000-01-26 | 2009-07-15 | 株式会社日立製作所 | ネットワーク中継装置 |
DE60110760T2 (de) * | 2000-03-10 | 2006-02-02 | Tellabs Operations, Inc., Lisle | Auslese-ablaufsteuerung für nicht aufeinander-folgende daten |
US6947430B2 (en) * | 2000-03-24 | 2005-09-20 | International Business Machines Corporation | Network adapter with embedded deep packet processing |
US7050437B2 (en) * | 2000-03-24 | 2006-05-23 | International Business Machines Corporation | Wire speed reassembly of data frames |
JP2001292164A (ja) * | 2000-04-06 | 2001-10-19 | Nec Corp | パケット・スイッチおよびその切替方法 |
US7688727B1 (en) | 2000-04-17 | 2010-03-30 | Juniper Networks, Inc. | Filtering and route lookup in a switching device |
US6798777B1 (en) | 2000-04-17 | 2004-09-28 | Juniper Networks, Inc. | Filtering and route lookup in a switching device |
US7215637B1 (en) | 2000-04-17 | 2007-05-08 | Juniper Networks, Inc. | Systems and methods for processing packets |
US7023864B2 (en) * | 2000-05-01 | 2006-04-04 | Riverdelta Networks, Inc | Data packet discarding |
US7106728B1 (en) | 2000-05-01 | 2006-09-12 | Industrial Technology Research Institute | Switching by multistage interconnection of concentrators |
US6957272B2 (en) * | 2000-05-24 | 2005-10-18 | Alcatel Internetworking (Pe), Inc. | Stackable lookup engines |
JP4719957B2 (ja) * | 2000-05-24 | 2011-07-06 | 株式会社日立製作所 | 記憶制御装置及び記憶システム並びに記憶システムのセキュリティ設定方法 |
US6591285B1 (en) | 2000-06-16 | 2003-07-08 | Shuo-Yen Robert Li | Running-sum adder networks determined by recursive construction of multi-stage networks |
US7111071B1 (en) * | 2000-06-29 | 2006-09-19 | Intel Corporation | Longest prefix match for IP routers |
KR100454336B1 (ko) * | 2000-07-07 | 2004-10-26 | 엘지전자 주식회사 | 비동기 전송 모드 스위치에서의 셀 처리 장치 및 방법 |
US7035267B1 (en) * | 2000-08-11 | 2006-04-25 | Marconi Intellectual Property (Ringfence), Inc. | Transferring and queueing length and data as one stream |
US7224693B1 (en) | 2000-08-11 | 2007-05-29 | Ericsson Ab | Long packet handling |
US6640233B1 (en) * | 2000-08-18 | 2003-10-28 | Network Appliance, Inc. | Reserving file system blocks |
JP3646638B2 (ja) * | 2000-09-06 | 2005-05-11 | 日本電気株式会社 | パケット交換装置及びそれに用いるスイッチ制御方法 |
US6965615B1 (en) * | 2000-09-18 | 2005-11-15 | Cisco Technology, Inc. | Packet striping across a parallel header processor |
JP2002109885A (ja) * | 2000-09-28 | 2002-04-12 | Toshiba Corp | 半導体記憶装置 |
US6745277B1 (en) * | 2000-10-04 | 2004-06-01 | Force10 Networks, Inc. | Intelligent interleaving scheme for multibank memory |
US7006505B1 (en) * | 2000-10-23 | 2006-02-28 | Bay Microsystems, Inc. | Memory management system and algorithm for network processor architecture |
US7356030B2 (en) | 2000-11-17 | 2008-04-08 | Foundry Networks, Inc. | Network switch cross point |
US7236490B2 (en) * | 2000-11-17 | 2007-06-26 | Foundry Networks, Inc. | Backplane interface adapter |
US7596139B2 (en) | 2000-11-17 | 2009-09-29 | Foundry Networks, Inc. | Backplane interface adapter with error control and redundant fabric |
US6735218B2 (en) * | 2000-11-17 | 2004-05-11 | Foundry Networks, Inc. | Method and system for encoding wide striped cells |
US6876657B1 (en) * | 2000-12-14 | 2005-04-05 | Chiaro Networks, Ltd. | System and method for router packet control and ordering |
US6741562B1 (en) * | 2000-12-15 | 2004-05-25 | Tellabs San Jose, Inc. | Apparatus and methods for managing packets in a broadband data stream |
US7002980B1 (en) | 2000-12-19 | 2006-02-21 | Chiaro Networks, Ltd. | System and method for router queue and congestion management |
US20020161887A1 (en) * | 2001-04-27 | 2002-10-31 | Foster Michael S. | Method and system for performing security via de-registration in a communications network |
US7206283B2 (en) | 2001-05-15 | 2007-04-17 | Foundry Networks, Inc. | High-performance network switch |
US7609695B2 (en) * | 2001-06-15 | 2009-10-27 | Industrial Technology Research Institute | Optimizing switching element for minimal latency |
US7103059B2 (en) * | 2001-06-15 | 2006-09-05 | Industrial Technology Research Institute | Scalable 2-stage interconnections |
US7418536B2 (en) * | 2001-07-30 | 2008-08-26 | Cisco Technology, Inc. | Processor having systolic array pipeline for processing data packets |
US7382787B1 (en) | 2001-07-30 | 2008-06-03 | Cisco Technology, Inc. | Packet routing and switching device |
US6987775B1 (en) * | 2001-08-15 | 2006-01-17 | Internet Machines Corp. | Variable size First In First Out (FIFO) memory with head and tail caching |
US8213322B2 (en) * | 2001-09-24 | 2012-07-03 | Topside Research, Llc | Dynamically distributed weighted fair queuing |
US7362751B2 (en) * | 2001-10-03 | 2008-04-22 | Topside Research, Llc | Variable length switch fabric |
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 |
US6735604B2 (en) * | 2001-10-09 | 2004-05-11 | Arthur O. Miller | Method for storing and retrieving data objects |
US20030088694A1 (en) * | 2001-11-02 | 2003-05-08 | Internet Machines Corporation | Multicasting method and switch |
US7389360B1 (en) * | 2001-11-05 | 2008-06-17 | Juniper Networks, Inc. | Context switched route lookup key engine |
WO2003043272A1 (en) * | 2001-11-13 | 2003-05-22 | Transwitch Corporation | Overcoming access latency inefficiency in memories for packet switched networks |
US7203203B2 (en) * | 2001-12-05 | 2007-04-10 | Internet Machines Corp. | Message ring in a switching network |
US7161950B2 (en) * | 2001-12-10 | 2007-01-09 | Intel Corporation | Systematic memory location selection in Ethernet switches |
JP4153201B2 (ja) * | 2001-12-19 | 2008-09-24 | 富士通株式会社 | 通信制御方法、通信システム、およびコンピュータプログラム |
US7106740B1 (en) * | 2002-01-02 | 2006-09-12 | Juniper Networks, Inc. | Nexthop to a forwarding table |
US6967951B2 (en) | 2002-01-11 | 2005-11-22 | Internet Machines Corp. | System for reordering sequenced based packets in a switching network |
US7420987B1 (en) | 2002-01-17 | 2008-09-02 | Juniper Networks, Inc. | Arbiter for multiple mutually exclusive vectors |
US7135508B2 (en) * | 2002-02-20 | 2006-11-14 | The University Of Chicago | Coatings and films derived from clay/wax nanocomposites |
US7009989B2 (en) * | 2002-03-05 | 2006-03-07 | Hewlett-Packard Development Company, L.P. | Forwarding ordered data packets with less delay |
US7352766B2 (en) * | 2002-03-12 | 2008-04-01 | Alcatel Lucent | High-speed memory having a modular structure |
US7468975B1 (en) | 2002-05-06 | 2008-12-23 | Foundry Networks, Inc. | Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability |
US7649885B1 (en) * | 2002-05-06 | 2010-01-19 | Foundry Networks, Inc. | Network routing system for enhanced efficiency and monitoring capability |
US20120155466A1 (en) | 2002-05-06 | 2012-06-21 | Ian Edward Davis | Method and apparatus for efficiently processing data packets in a computer network |
US7266117B1 (en) | 2002-05-06 | 2007-09-04 | Foundry Networks, Inc. | System architecture for very fast ethernet blade |
US7187687B1 (en) | 2002-05-06 | 2007-03-06 | Foundry Networks, Inc. | Pipeline method and system for switching packets |
US20030214949A1 (en) * | 2002-05-16 | 2003-11-20 | Nadim Shaikli | System for reordering sequenced based packets in a switching network |
KR100442627B1 (ko) * | 2002-05-20 | 2004-08-02 | 삼성전자주식회사 | 네트워크 프로세서에서의 패킷 리디랙션 방법 |
US7450438B1 (en) | 2002-06-20 | 2008-11-11 | Cisco Technology, Inc. | Crossbar apparatus for a forwarding table memory in a router |
US7710991B1 (en) | 2002-06-20 | 2010-05-04 | Cisco Technology, Inc. | Scalable packet routing and switching device and method |
US7525904B1 (en) | 2002-06-20 | 2009-04-28 | Cisco Technology, Inc. | Redundant packet routing and switching device and method |
AU2003238301A1 (en) * | 2002-06-21 | 2004-01-06 | Thomson Licensing S.A. | Routing engine for a broadcast router |
WO2004004190A2 (en) * | 2002-06-27 | 2004-01-08 | Tellabs Operations, Inc. | Apparatus and method to switch packets using a switch fabric with memory |
US7363347B2 (en) * | 2002-11-07 | 2008-04-22 | Hewlett-Packard Development Company, L.P. | Method and system for reestablishing connection information on a switch connected to plural servers in a computer network |
US8051176B2 (en) | 2002-11-07 | 2011-11-01 | Hewlett-Packard Development Company, L.P. | Method and system for predicting connections in a computer network |
US20040098509A1 (en) * | 2002-11-14 | 2004-05-20 | Vic Alfano | System for reordering sequenced based packet segments in a switching network |
US20040103086A1 (en) * | 2002-11-26 | 2004-05-27 | Bapiraju Vinnakota | Data structure traversal instructions for packet processing |
US7782885B1 (en) * | 2002-12-10 | 2010-08-24 | Cisco Technology, Inc. | System and method for queue management using queue sets |
US7568110B2 (en) | 2002-12-18 | 2009-07-28 | Broadcom Corporation | Cryptography accelerator interface decoupling from cryptography processing cores |
US7434043B2 (en) | 2002-12-18 | 2008-10-07 | Broadcom Corporation | Cryptography accelerator data routing unit |
US20040123123A1 (en) * | 2002-12-18 | 2004-06-24 | Buer Mark L. | Methods and apparatus for accessing security association information in a cryptography accelerator |
US7536476B1 (en) | 2002-12-20 | 2009-05-19 | Cisco Technology, Inc. | Method for performing tree based ACL lookups |
JP3865748B2 (ja) * | 2003-01-20 | 2007-01-10 | 富士通株式会社 | ネットワークスイッチ装置およびネットワークスイッチ方法 |
US20050216770A1 (en) * | 2003-01-24 | 2005-09-29 | Mistletoe Technologies, Inc. | Intrusion detection system |
JP2004287475A (ja) * | 2003-01-27 | 2004-10-14 | Fujitsu Ten Ltd | 電子制御装置および電子駆動装置 |
US7242684B2 (en) * | 2003-02-07 | 2007-07-10 | Fujitsu Limited | Architecture for switching packets in a high-speed switching environment |
US7990987B2 (en) | 2003-02-25 | 2011-08-02 | Topside Research, Llc | Network processor having bypass capability |
US20040206470A1 (en) * | 2003-04-18 | 2004-10-21 | William Marsh Rice University | Containerless infiltration with electromagnetic levitation |
US8861515B2 (en) * | 2003-04-22 | 2014-10-14 | Agere Systems Llc | Method and apparatus for shared multi-bank memory in a packet switching system |
US6901072B1 (en) | 2003-05-15 | 2005-05-31 | Foundry Networks, Inc. | System and method for high speed packet transmission implementing dual transmit and receive pipelines |
JP2004364109A (ja) * | 2003-06-06 | 2004-12-24 | Canon Inc | テンポラリアドレス通信装置、プログラム、記録媒体、および方法 |
US7167942B1 (en) * | 2003-06-09 | 2007-01-23 | Marvell International Ltd. | Dynamic random access memory controller |
US7149842B2 (en) * | 2003-07-17 | 2006-12-12 | Sun Microsystems, Inc. | Efficient utilization of shared buffer memory and method for operating the same |
US7412454B2 (en) | 2003-09-03 | 2008-08-12 | International Business Machines Corporation | Data structure supporting random delete and timer function |
US7483901B1 (en) * | 2003-09-10 | 2009-01-27 | Nextaxiom Technology, Inc. | System and method for data transfer between two or more connected software services |
US7584454B1 (en) | 2003-09-10 | 2009-09-01 | Nextaxiom Technology, Inc. | Semantic-based transactional support and recovery for nested composite software services |
US7533387B1 (en) | 2003-09-10 | 2009-05-12 | Nextaxiom Technology, Inc. | Guaranteed invocation/consumption of nested, composite software services |
US7581205B1 (en) | 2003-09-30 | 2009-08-25 | Nextaxiom Technology, Inc. | System and method of implementing a customizable software platform |
US7421532B2 (en) * | 2003-11-18 | 2008-09-02 | Topside Research, Llc | Switching with transparent and non-transparent ports |
US7454552B2 (en) * | 2003-11-18 | 2008-11-18 | Topside Research, Llc | Switch with transparent and non-transparent ports |
US8225282B1 (en) | 2003-11-25 | 2012-07-17 | Nextaxiom Technology, Inc. | Semantic-based, service-oriented system and method of developing, programming and managing software modules and software solutions |
US20050141434A1 (en) * | 2003-12-24 | 2005-06-30 | Linden Cornett | Method, system, and program for managing buffers |
US20050198361A1 (en) * | 2003-12-29 | 2005-09-08 | Chandra Prashant R. | Method and apparatus for meeting a given content throughput using at least one memory channel |
US7539190B2 (en) * | 2004-01-05 | 2009-05-26 | Topside Research, Llc | Multicasting in a shared address space |
US7426602B2 (en) * | 2004-01-08 | 2008-09-16 | Topside Research, Llc | Switch for bus optimization |
US7817659B2 (en) | 2004-03-26 | 2010-10-19 | Foundry Networks, Llc | Method and apparatus for aggregating input data streams |
US7292591B2 (en) * | 2004-03-30 | 2007-11-06 | Extreme Networks, Inc. | Packet processing system architecture and method |
US8161270B1 (en) | 2004-03-30 | 2012-04-17 | Extreme Networks, Inc. | Packet data modification processor |
US7385984B2 (en) * | 2004-03-30 | 2008-06-10 | Extreme Networks, Inc. | Packet processing system architecture and method |
US8730961B1 (en) | 2004-04-26 | 2014-05-20 | Foundry Networks, Llc | System and method for optimizing router lookup |
US7769756B2 (en) | 2004-06-07 | 2010-08-03 | Sling Media, Inc. | Selection and presentation of context-relevant supplemental content and advertising |
US7917932B2 (en) | 2005-06-07 | 2011-03-29 | Sling Media, Inc. | Personal video recorder functionality for placeshifting systems |
US9998802B2 (en) * | 2004-06-07 | 2018-06-12 | Sling Media LLC | Systems and methods for creating variable length clips from a media stream |
US7975062B2 (en) | 2004-06-07 | 2011-07-05 | Sling Media, Inc. | Capturing and sharing media content |
US8458453B1 (en) | 2004-06-11 | 2013-06-04 | Dunti Llc | Method and apparatus for securing communication over public network |
US7660310B1 (en) * | 2004-06-23 | 2010-02-09 | Emc Corporation | Index processing |
WO2006026327A1 (en) * | 2004-08-25 | 2006-03-09 | Meshnetworks, Inc. | Non-802.11 waveforms in the presence of 802.11 |
US7657703B1 (en) | 2004-10-29 | 2010-02-02 | Foundry Networks, Inc. | Double density content addressable memory (CAM) lookup scheme |
US8050280B2 (en) * | 2004-12-02 | 2011-11-01 | Electronics And Telecommunications Research Institute | Efficient switching device and method for fabricating the same using multiple shared memories |
JP4622490B2 (ja) * | 2004-12-02 | 2011-02-02 | 株式会社日立製作所 | データ転送装置 |
US20060136717A1 (en) | 2004-12-20 | 2006-06-22 | Mark Buer | System and method for authentication via a proximate device |
US8295484B2 (en) | 2004-12-21 | 2012-10-23 | Broadcom Corporation | System and method for securing data from a remote input device |
US7889712B2 (en) | 2004-12-23 | 2011-02-15 | Cisco Technology, Inc. | Methods and apparatus for providing loop free routing tables |
US7555681B2 (en) * | 2005-05-13 | 2009-06-30 | Texas Instruments Incorporated | Multi-port trace receiver |
US7672304B2 (en) * | 2005-06-16 | 2010-03-02 | Samsung Electronics Co., Ltd. | Method and system for switching frames in a switching system |
US20070041392A1 (en) * | 2005-08-22 | 2007-02-22 | Aaron Kunze | Adaptive message buffering |
US7609707B2 (en) | 2005-08-31 | 2009-10-27 | Alcatel Lucent | Communication traffic management systems and methods |
US7747833B2 (en) * | 2005-09-30 | 2010-06-29 | Mosaid Technologies Incorporated | Independent link and bank selection |
EP1932158A4 (de) | 2005-09-30 | 2008-10-15 | Mosaid Technologies Inc | Speicher mit ausgangssteuerung |
US7652922B2 (en) | 2005-09-30 | 2010-01-26 | Mosaid Technologies Incorporated | Multiple independent serial link memory |
US8448162B2 (en) | 2005-12-28 | 2013-05-21 | Foundry Networks, Llc | Hitless software upgrades |
US8020006B2 (en) * | 2006-02-10 | 2011-09-13 | Cisco Technology, Inc. | Pipeline for high-throughput encrypt functions |
JP2009532954A (ja) | 2006-03-31 | 2009-09-10 | クゥアルコム・インコーポレイテッド | 高速メディアアクセス制御に関するメモリ管理 |
JP4992296B2 (ja) * | 2006-05-30 | 2012-08-08 | 株式会社日立製作所 | 転送処理装置 |
JP2008042504A (ja) * | 2006-08-04 | 2008-02-21 | Nec Corp | スイッチ装置、スイッチ方法、及びプログラム |
US7903654B2 (en) | 2006-08-22 | 2011-03-08 | Foundry Networks, Llc | System and method for ECMP load sharing |
US8238255B2 (en) | 2006-11-22 | 2012-08-07 | Foundry Networks, Llc | Recovering from failures without impact on data traffic in a shared bus architecture |
US8155011B2 (en) | 2007-01-11 | 2012-04-10 | Foundry Networks, Llc | Techniques for using dual memory structures for processing failure detection protocol packets |
US7680117B1 (en) * | 2007-03-30 | 2010-03-16 | Juniper Networks, Inc. | Forwarding packets using next-hop information |
US7817627B2 (en) * | 2007-06-21 | 2010-10-19 | Maged E. Beshai | Large-scale packet switch |
US7822915B2 (en) * | 2007-06-30 | 2010-10-26 | Alcatel-Lucent Usa Inc. | Memory controller for packet applications |
US8271859B2 (en) * | 2007-07-18 | 2012-09-18 | Foundry Networks Llc | Segmented CRC design in high speed networks |
US8037399B2 (en) | 2007-07-18 | 2011-10-11 | Foundry Networks, Llc | Techniques for segmented CRC design in high speed networks |
US8509236B2 (en) | 2007-09-26 | 2013-08-13 | Foundry Networks, Llc | Techniques for selecting paths and/or trunk ports for forwarding traffic flows |
US8190881B2 (en) | 2007-10-15 | 2012-05-29 | Foundry Networks Llc | Scalable distributed web-based authentication |
US8683572B1 (en) | 2008-01-24 | 2014-03-25 | Dunti Llc | Method and apparatus for providing continuous user verification in a packet-based network |
US9178785B1 (en) | 2008-01-24 | 2015-11-03 | NextAxiom Technology, Inc | Accounting for usage and usage-based pricing of runtime engine |
US7852486B2 (en) * | 2008-02-07 | 2010-12-14 | Board Of Regents, The University Of Texas System | Wavelength and intensity monitoring of optical cavity |
GB2458952B (en) * | 2008-04-04 | 2012-06-13 | Micron Technology Inc | Queue processing method |
US8195774B2 (en) * | 2008-05-23 | 2012-06-05 | Vmware, Inc. | Distributed virtual switch for virtualized computer systems |
US8625624B1 (en) * | 2008-06-13 | 2014-01-07 | Cisco Technology, Inc. | Self-adjusting load balancing among multiple fabric ports |
JP4988674B2 (ja) * | 2008-09-08 | 2012-08-01 | 株式会社日立製作所 | ネットワーク監視装置、ネットワーク監視方法、および、ネットワーク監視プログラム |
JP5332430B2 (ja) * | 2008-09-11 | 2013-11-06 | 富士通株式会社 | 共有メモリシステム |
US8171148B2 (en) | 2009-04-17 | 2012-05-01 | Sling Media, Inc. | Systems and methods for establishing connections between devices communicating over a network |
US8090901B2 (en) | 2009-05-14 | 2012-01-03 | Brocade Communications Systems, Inc. | TCAM management approach that minimize movements |
US8179898B2 (en) * | 2009-06-11 | 2012-05-15 | Alcatel Lucent | Packet processing using braided tries |
US8599850B2 (en) | 2009-09-21 | 2013-12-03 | Brocade Communications Systems, Inc. | Provisioning single or multistage networks using ethernet service instances (ESIs) |
US8621099B2 (en) * | 2009-09-21 | 2013-12-31 | Sling Media, Inc. | Systems and methods for formatting media content for distribution |
US9015225B2 (en) | 2009-11-16 | 2015-04-21 | Echostar Technologies L.L.C. | Systems and methods for delivering messages over a network |
US9178923B2 (en) | 2009-12-23 | 2015-11-03 | Echostar Technologies L.L.C. | Systems and methods for remotely controlling a media server via a network |
US9275054B2 (en) | 2009-12-28 | 2016-03-01 | Sling Media, Inc. | Systems and methods for searching media content |
US8208484B2 (en) * | 2010-01-11 | 2012-06-26 | Telefonaktiebolaget L M Ericsson (Publ) | Forwarding a packet within a router using fragments over an interconnect |
EP2564322A4 (de) * | 2010-04-30 | 2017-03-08 | Hewlett-Packard Enterprise Development LP | Transfer von verwaltungsdaten zwischen prozessoren |
US8665727B1 (en) * | 2010-06-21 | 2014-03-04 | Xilinx, Inc. | Placement and routing for a multiplexer-based interconnection network |
US9113185B2 (en) | 2010-06-23 | 2015-08-18 | Sling Media Inc. | Systems and methods for authorizing access to network services using information obtained from subscriber equipment |
US8954664B1 (en) | 2010-10-01 | 2015-02-10 | Western Digital Technologies, Inc. | Writing metadata files on a disk |
US8756361B1 (en) * | 2010-10-01 | 2014-06-17 | Western Digital Technologies, Inc. | Disk drive modifying metadata cached in a circular buffer when a write operation is aborted |
US8565092B2 (en) * | 2010-11-18 | 2013-10-22 | Cisco Technology, Inc. | Dynamic flow redistribution for head of line blocking avoidance |
US8605732B2 (en) | 2011-02-15 | 2013-12-10 | Extreme Networks, Inc. | Method of providing virtual router functionality |
US8646013B2 (en) | 2011-04-29 | 2014-02-04 | Sling Media, Inc. | Identifying instances of media programming available from different content sources |
US8756382B1 (en) | 2011-06-30 | 2014-06-17 | Western Digital Technologies, Inc. | Method for file based shingled data storage utilizing multiple media types |
US8769533B2 (en) * | 2011-07-18 | 2014-07-01 | International Business Machines Corporation | Check-point based high availability: network packet buffering in hardware |
US8944159B2 (en) * | 2011-08-05 | 2015-02-03 | Cameron International Corporation | Horizontal fracturing tree |
US20130060795A1 (en) * | 2011-09-07 | 2013-03-07 | Unisys Corp. | Prepared statements to improve performance in database interfaces |
US8706736B2 (en) * | 2011-09-30 | 2014-04-22 | Broadcom Corporation | Extended width entries for hash tables |
WO2013068862A1 (en) * | 2011-11-11 | 2013-05-16 | International Business Machines Corporation | Memory module and memory controller for controlling a memory module |
US8612706B1 (en) | 2011-12-21 | 2013-12-17 | Western Digital Technologies, Inc. | Metadata recovery in a disk drive |
US8923298B2 (en) * | 2012-05-04 | 2014-12-30 | Futurewei Technoligies, Inc. | Optimized trie-based address lookup |
US9037670B2 (en) | 2012-09-18 | 2015-05-19 | Cisco Technology, Inc. | Ultra low latency network buffer storage |
US10061531B2 (en) * | 2015-01-29 | 2018-08-28 | Knuedge Incorporated | Uniform system wide addressing for a computing system |
US9552327B2 (en) | 2015-01-29 | 2017-01-24 | Knuedge Incorporated | Memory controller for a network on a chip device |
US20170017419A1 (en) * | 2015-07-15 | 2017-01-19 | Innovium, Inc. | System And Method For Enabling High Read Rates To Data Element Lists |
US20170017567A1 (en) * | 2015-07-15 | 2017-01-19 | Innovium, Inc. | System And Method For Implementing Distributed-Linked Lists For Network Devices |
US20170017414A1 (en) * | 2015-07-15 | 2017-01-19 | Innovium, Inc. | System And Method For Implementing Hierarchical Distributed-Linked Lists For Network Devices |
US20170017420A1 (en) | 2015-07-15 | 2017-01-19 | Innovium, Inc. | System And Method For Enabling High Read Rates To Data Element Lists |
US10642815B2 (en) * | 2015-10-14 | 2020-05-05 | Paxata, Inc. | Step editor for data preparation |
US11169978B2 (en) | 2015-10-14 | 2021-11-09 | Dr Holdco 2, Inc. | Distributed pipeline optimization for data preparation |
US11288447B2 (en) | 2015-10-14 | 2022-03-29 | Dr Holdco 2, Inc. | Step editor for data preparation |
US10027583B2 (en) | 2016-03-22 | 2018-07-17 | Knuedge Incorporated | Chained packet sequences in a network on a chip architecture |
US10346049B2 (en) | 2016-04-29 | 2019-07-09 | Friday Harbor Llc | Distributed contiguous reads in a network on a chip architecture |
CN106027422B (zh) | 2016-05-13 | 2020-05-08 | 上海兆芯集成电路有限公司 | 交换器及数据访问方法 |
US9832072B1 (en) * | 2016-05-31 | 2017-11-28 | 128 Technology, Inc. | Self-configuring computer network router |
US10659353B2 (en) | 2016-11-03 | 2020-05-19 | International Business Machines Corporation | Dynamic scriptable routing |
US10680977B1 (en) * | 2017-09-26 | 2020-06-09 | Amazon Technologies, Inc. | Splitting data into an information vector and a control vector and processing, at a stage of a control pipeline, the control vector and a data block of the information vector extracted from a corresponding stage of a data pipeline |
US11270032B1 (en) * | 2018-12-27 | 2022-03-08 | Thales E-Security, Inc. | Tamper switch assembly and installation method thereof |
US20220353199A1 (en) | 2019-05-23 | 2022-11-03 | Hewlett Packard Enterprise Development Lp | System and method for facilitating data-driven intelligent network with ingress port injection limits |
US11252030B2 (en) * | 2019-10-02 | 2022-02-15 | Cisco Technology, Inc. | Network scale emulator |
Family Cites Families (77)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870474A (en) * | 1995-12-04 | 1999-02-09 | Scientific-Atlanta, Inc. | Method and apparatus for providing conditional access in connection-oriented, interactive networks with a multiplicity of service providers |
US4058672A (en) | 1976-11-10 | 1977-11-15 | International Telephone And Telegraph Corporation | Packet-switched data communications system |
US4596010A (en) | 1984-05-03 | 1986-06-17 | At&T Bell Laboratories | Distributed packet switching arrangement |
US5199106A (en) * | 1986-09-19 | 1993-03-30 | International Business Machines Corporation | Input output interface controller connecting a synchronous bus to an asynchronous bus and methods for performing operations on the bus |
EP0260392A3 (de) * | 1986-09-19 | 1992-03-11 | International Business Machines Corporation | Ein-Ausgabeschnittstellensteuerung zum Verbinden eines synchronen Busses mit einem asynchronen Bus und Verfahren zur Operationsausführung auf den Bussen |
US5293597A (en) * | 1987-03-09 | 1994-03-08 | At&T Bell Laboratories | Concurrent context memory management unit |
ZA883232B (en) * | 1987-05-06 | 1989-07-26 | Dowd Research Pty Ltd O | Packet switches,switching methods,protocols and networks |
FR2616604B1 (fr) | 1987-06-15 | 1989-09-22 | Lespagnol Albert | Equipement de reconstitution et multiplexage de trames d'origines diverses constituees de paquets de longueur fixe en nombre variable |
FR2618624B1 (fr) | 1987-07-24 | 1992-04-30 | Michel Servel | Systeme de commutation de multiplex temporels hybrides a memoire tampon optimisee |
DE3742939A1 (de) | 1987-12-18 | 1989-07-06 | Standard Elektrik Lorenz Ag | Verfahren zur hybriden paketvermittlung und einrichtungen hierzu |
FR2625392B1 (fr) | 1987-12-24 | 1993-11-26 | Quinquis Jean Paul | Circuit de gestion de pointeurs d'ecriture de files tampons notamment pour commutateur temporel de paquets auto-acheminables |
US5155834A (en) * | 1988-03-18 | 1992-10-13 | Wang Laboratories, Inc. | Reference and change table storage system for virtual memory data processing system having a plurality of processors accessing common memory |
JP2667868B2 (ja) | 1988-04-06 | 1997-10-27 | 株式会社日立製作所 | セル・スイッチング・システム |
DE3824849A1 (de) * | 1988-07-21 | 1990-01-25 | Kempten Elektroschmelz Gmbh | Unter druck gesinterte, polykristalline mischwerkstoffe auf basis von hexagonalem bornitrid, oxiden und carbiden |
US5490258A (en) * | 1991-07-29 | 1996-02-06 | Fenner; Peter R. | Associative memory for very large key spaces |
US5860136A (en) * | 1989-06-16 | 1999-01-12 | Fenner; Peter R. | Method and apparatus for use of associated memory with large key spaces |
DE68919856T2 (de) | 1989-08-09 | 1995-05-18 | Alcatel Nv | Nachrichtenvermittlungselement zur übertragung von zellen unterteilt in teilzellen. |
EP0422910A3 (en) * | 1989-10-10 | 1991-11-06 | American Telephone And Telegraph Company | High capacity memory based packet switches |
US5130983A (en) * | 1990-03-27 | 1992-07-14 | Heffner Iii Horace W | Method of polling to determine service needs and the like |
US5265207A (en) * | 1990-10-03 | 1993-11-23 | Thinking Machines Corporation | Parallel computer system including arrangement for transferring messages from a source processor to selected ones of a plurality of destination processors and combining responses |
US5367643A (en) * | 1991-02-06 | 1994-11-22 | International Business Machines Corporation | Generic high bandwidth adapter having data packet memory configured in three level hierarchy for temporary storage of variable length data packets |
US5168492A (en) * | 1991-04-11 | 1992-12-01 | Northern Telecom Limited | Rotating-access ATM-STM packet switch |
EP0520116A1 (de) * | 1991-06-28 | 1992-12-30 | International Business Machines Corporation | Verfahren und Gerät um Mustersuchfunktionen auszuführen |
US5623489A (en) * | 1991-09-26 | 1997-04-22 | Ipc Information Systems, Inc. | Channel allocation system for distributed digital switching network |
US5241536A (en) * | 1991-10-03 | 1993-08-31 | Northern Telecom Limited | Broadband input buffered atm switch |
JP2839060B2 (ja) * | 1992-03-02 | 1998-12-16 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データ処理システムおよびデータ処理方法 |
IL101623A (en) * | 1992-04-16 | 1997-06-10 | Fortress U & T 2000 Ltd | Digital signature device |
AU4661793A (en) * | 1992-07-02 | 1994-01-31 | Wellfleet Communications | Data packet processing method and apparatus |
EP0686332A4 (de) * | 1992-09-29 | 1996-05-01 | Com 21 Inc | Zellenbasiertes weitbereichstelefon- und datensystem mit alternativem zugang |
FR2701180B1 (fr) * | 1993-01-29 | 1995-03-10 | Cit Alcatel | Dispositif de cellulisation et dispositif de décellulisation de voies numériques synchromes, centre de commutation de voies numériques synchrones, et centre de commutation de voies numériques asynchrones. |
US5448702A (en) | 1993-03-02 | 1995-09-05 | International Business Machines Corporation | Adapters with descriptor queue management capability |
US5530902A (en) * | 1993-06-14 | 1996-06-25 | Motorola, Inc. | Data packet switching system having DMA controller, service arbiter, buffer type managers, and buffer managers for managing data transfer to provide less processor intervention |
FR2707775B1 (fr) * | 1993-07-12 | 1996-04-12 | Duret Chrsitian | Procédé et dispositif d'analyse d'informations contenues dans des structures de données. |
US5515376A (en) * | 1993-07-19 | 1996-05-07 | Alantec, Inc. | Communication apparatus and methods |
US5408469A (en) * | 1993-07-22 | 1995-04-18 | Synoptics Communications, Inc. | Routing device utilizing an ATM switch as a multi-channel backplane in a communication network |
US5457687A (en) | 1993-09-02 | 1995-10-10 | Network Equipment Technologies, Inc. | Method and apparatus for backward explicit congestion notification (BECN) in an ATM network |
JPH0795525A (ja) * | 1993-09-17 | 1995-04-07 | Canon Inc | ディジタル信号記録装置 |
CA2134061A1 (en) * | 1993-10-28 | 1995-04-29 | Aaron William Ogus | Frame buffering of network packets |
US5384568A (en) * | 1993-12-02 | 1995-01-24 | Bell Communications Research, Inc. | Data compression |
US5485455A (en) | 1994-01-28 | 1996-01-16 | Cabletron Systems, Inc. | Network having secure fast packet switching and guaranteed quality of service |
GB2291561B (en) * | 1994-05-21 | 1998-09-23 | Northern Telecom Ltd | Communications system |
JP3059639B2 (ja) * | 1994-07-14 | 2000-07-04 | 古河電気工業株式会社 | 経路選択情報の検索装置 |
US5627970A (en) * | 1994-08-08 | 1997-05-06 | Lucent Technologies Inc. | Methods and apparatus for achieving and maintaining optimum transmission rates and preventing data loss in a processing system nework |
JP3224963B2 (ja) * | 1994-08-31 | 2001-11-05 | 株式会社東芝 | ネットワーク接続装置及びパケット転送方法 |
JP3269273B2 (ja) * | 1994-09-02 | 2002-03-25 | 三菱電機株式会社 | セル交換装置及びセル交換システム |
US5537403A (en) * | 1994-12-30 | 1996-07-16 | At&T Corp. | Terabit per second packet switch having distributed out-of-band control of circuit and packet switching communications |
US5539815A (en) | 1995-02-24 | 1996-07-23 | At&T Corp. | Network call routing controlled by a management node |
US5956751A (en) * | 1995-06-28 | 1999-09-21 | Industrial Technology Research Institute | Computer memory management system using physical segmentation space allocation |
US5796944A (en) | 1995-07-12 | 1998-08-18 | 3Com Corporation | Apparatus and method for processing data frames in an internetworking device |
US5719864A (en) * | 1995-08-11 | 1998-02-17 | International Business Machines Corp. | Logical channel resolution in asynchronous transmission mode communication systems |
US5745837A (en) * | 1995-08-25 | 1998-04-28 | Terayon Corporation | Apparatus and method for digital data transmission over a CATV system using an ATM transport protocol and SCDMA |
JPH0983535A (ja) * | 1995-09-14 | 1997-03-28 | Toshiba Corp | セルデータ交換方法及び交換装置 |
US6085233A (en) * | 1995-12-29 | 2000-07-04 | Pankosmion, Inc. | System and method for cellular network computing and communications |
US5689505A (en) * | 1996-01-16 | 1997-11-18 | Lucent Technologies Inc. | Buffering of multicast cells in switching networks |
US5859835A (en) * | 1996-04-15 | 1999-01-12 | The Regents Of The University Of California | Traffic scheduling system and method for packet-switched networks |
US5872787A (en) * | 1996-05-15 | 1999-02-16 | Gte Laboratories Incorporated | Distributed switch buffer utilizing cascaded modular switch chips |
US6308148B1 (en) * | 1996-05-28 | 2001-10-23 | Cisco Technology, Inc. | Network flow data export |
US5946716A (en) * | 1996-05-30 | 1999-08-31 | Hewlett-Packard Company | Sectored virtual memory management system and translation look-aside buffer (TLB) for the same |
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 |
US5802054A (en) * | 1996-08-15 | 1998-09-01 | 3Com Corporation | Atomic network switch with integrated circuit switch nodes |
US5924091A (en) * | 1996-08-28 | 1999-07-13 | Sybase, Inc. | Database system with improved methods for radix sorting |
US5987034A (en) * | 1996-08-30 | 1999-11-16 | Cisco Technology, Inc. | ATM cells within frame relay technology |
US6101543A (en) * | 1996-10-25 | 2000-08-08 | Digital Equipment Corporation | Pseudo network adapter for frame capture, encapsulation and encryption |
US5912889A (en) * | 1996-11-21 | 1999-06-15 | Xerox Corporation | ATM switch with output port clustering for dynamically allocating bandwidth between ports |
US5905725A (en) * | 1996-12-16 | 1999-05-18 | Juniper Networks | High speed switching device |
US6493347B2 (en) | 1996-12-16 | 2002-12-10 | Juniper Networks, Inc. | Memory organization in a switching device |
US5909440A (en) * | 1996-12-16 | 1999-06-01 | Juniper Networks | High speed variable length best match look-up in a switching device |
US6091705A (en) * | 1996-12-20 | 2000-07-18 | Sebring Systems, Inc. | Method and apparatus for a fault tolerant, software transparent and high data integrity extension to a backplane bus or interconnect |
DE69719934T2 (de) * | 1996-12-20 | 2003-11-27 | Ibm | Verfahren und Vorrichtung zur schnellen und sicheren Datensammlung |
US6236654B1 (en) * | 1997-02-14 | 2001-05-22 | Advanced Micro Devices, Inc. | Method and apparatus for managing learning in an address table in memory |
US6229821B1 (en) * | 1997-04-22 | 2001-05-08 | At&T Corp. | Serial data transmission of variable length mini packets using statistical multiplexing |
US6075787A (en) * | 1997-05-08 | 2000-06-13 | Lucent Technologies Inc. | Method and apparatus for messaging, signaling, and establishing a data link utilizing multiple modes over a multiple access broadband communications network |
US6151638A (en) * | 1997-06-25 | 2000-11-21 | Unisys Corp. | System and method for performing external procedure calls from a client program to a server program to a server program and back to the client program while both are running in a heterogenous computer |
US6201813B1 (en) * | 1997-06-30 | 2001-03-13 | Cisco Technology, Inc. | Method and apparatus for using ATM queues for segmentation and reassembly of data frames |
US6014380A (en) * | 1997-06-30 | 2000-01-11 | Sun Microsystems, Inc. | Mechanism for packet field replacement in a multi-layer distributed network element |
US6212183B1 (en) * | 1997-08-22 | 2001-04-03 | Cisco Technology, Inc. | Multiple parallel packet routing lookup |
US6553002B1 (en) * | 1997-08-29 | 2003-04-22 | Ascend Communications, Inc. | Apparatus and method for routing data packets through a communications network |
-
1997
- 1997-07-24 US US08/901,061 patent/US6493347B2/en not_active Expired - Lifetime
- 1997-12-16 CA CA002274962A patent/CA2274962C/en not_active Expired - Fee Related
- 1997-12-16 DE DE69737357T patent/DE69737357T2/de not_active Expired - Lifetime
- 1997-12-16 WO PCT/US1997/023407 patent/WO1998027697A1/en active IP Right Grant
- 1997-12-16 CA CA002274966A patent/CA2274966C/en not_active Expired - Fee Related
- 1997-12-16 JP JP52797898A patent/JP3459653B2/ja not_active Expired - Lifetime
- 1997-12-16 JP JP52794798A patent/JP3453148B2/ja not_active Expired - Fee Related
- 1997-12-16 EP EP97954156A patent/EP0940025B1/de not_active Expired - Lifetime
- 1997-12-16 WO PCT/US1997/023285 patent/WO1998027660A2/en active IP Right Grant
- 1997-12-16 EP EP97950980A patent/EP0947078B1/de not_active Expired - Lifetime
- 1997-12-16 WO PCT/US1997/023287 patent/WO1998027662A2/en active Application Filing
- 1997-12-16 EP EP97951733A patent/EP0948849A4/de not_active Withdrawn
- 1997-12-16 DE DE69737361T patent/DE69737361T2/de not_active Expired - Lifetime
- 1997-12-16 CA CA002274964A patent/CA2274964C/en not_active Expired - Fee Related
- 1997-12-16 JP JP52794598A patent/JP3459652B2/ja not_active Expired - Lifetime
-
1999
- 1999-12-17 US US09/466,864 patent/US6917620B1/en not_active Expired - Lifetime
-
2003
- 2003-02-05 US US10/310,462 patent/US7116660B2/en not_active Expired - Fee Related
-
2005
- 2005-05-06 US US11/123,112 patent/US7489699B2/en not_active Expired - Fee Related
- 2005-09-15 US US11/226,335 patent/US7545808B2/en not_active Expired - Fee Related
-
2008
- 2008-12-31 US US12/346,918 patent/US8189605B2/en not_active Expired - Fee Related
-
2009
- 2009-05-04 US US12/435,162 patent/US7903659B2/en not_active Expired - Fee Related
-
2011
- 2011-01-07 US US12/986,745 patent/US8477784B2/en not_active Expired - Fee Related
-
2012
- 2012-05-07 US US13/465,566 patent/US8681796B2/en not_active Expired - Fee Related
-
2013
- 2013-03-20 US US13/847,880 patent/US8761180B2/en not_active Expired - Fee Related
-
2014
- 2014-02-27 US US14/192,135 patent/US9411776B2/en not_active Expired - Fee Related
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69737361T2 (de) | Schnelle vermittlungsvorrichtung | |
EP0412343B1 (de) | Koppelnetz und Koppelnetzmodul für ein ATM-System | |
DE60119866T2 (de) | Vermittlungseinrichtung und verfahren mit getrennten Ausgangspuffern | |
DE69733703T2 (de) | Puffer von Mehrfachsendezellen in Vermittlungsnetzen | |
DE60214341T2 (de) | Vermittlungsanordnung und -verfahren mit getrennten ausgangspuffern | |
DE69823483T2 (de) | Mehrfachkopiewarteschlangestruktur mit einem suchbaren cachespeicherbereich | |
EP0320772B1 (de) | Verfahren zur hybriden Paketvermittlung und Einrichtungen hierzu | |
DE69726995T2 (de) | Mehrfachsende-Leitweglenkung in mehrstufigen Netzen | |
DE3752370T2 (de) | Vermittlungssystem | |
DE69837272T2 (de) | Mechanismus zum ersetzen eines paketfelds in einem mehrschicht-vermittlungsnetzelement | |
DE69637462T2 (de) | ATM-Vermittlungsstelle mit Eingangs- und Ausgangsanschlussstellen | |
DE60120847T2 (de) | Mehrprotokollvermittler und Verfahren dazu | |
DE60031596T2 (de) | Zeitmultiplex-Vermittlungssystem (TDM) mit sehr breitem Speicher | |
DE602005002452T2 (de) | Vermittlung für integrierte Telekommunikationssnetzwerke | |
DE60120807T2 (de) | Schaltvorrichtung und Verfahren | |
DE60317890T2 (de) | Verfahren und anordnung zur lokalen synchronisation in verteilten master-slave-kommunikationssystemen | |
DE3742941C2 (de) | ||
DE69915704T2 (de) | Ampic dram | |
DE19531749A1 (de) | Verkehrsgestaltungseinrichtung und Paket-Kommunikationsgerät | |
DE602005003492T2 (de) | Verfahren, Vorrichtung und System zum synchronisierten Kombinieren von Paketdaten | |
DE60131380T2 (de) | Segmentierung und wiederzusammensetzung von datenrahmen | |
DE2620220B2 (de) | Schaltungsanordnung zum Übertragen von Datenpaketen über einen Zwischenspeicher | |
DE4432061C1 (de) | Paketübertragungssystem | |
DE60217685T2 (de) | System und verfahren zum vermitteln von daten unter verwendung eines gemeinsamen koppelfeldes | |
EP0289087B1 (de) | Paketvermittlungssystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |