DE69737361T2 - Schnelle vermittlungsvorrichtung - Google Patents

Schnelle vermittlungsvorrichtung Download PDF

Info

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
Application number
DE69737361T
Other languages
English (en)
Other versions
DE69737361D1 (de
Inventor
S. Pradeep Mountain View SINDHU
K. Ramalingam San Jose ANAND
C. Dennis Mountain View FERGUSON
O. Bjorn Palo Alto LIENCRES
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Juniper Networks Inc
Original Assignee
Juniper Networks Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US08/767,576 external-priority patent/US5909440A/en
Priority claimed from US08/844,171 external-priority patent/US5905725A/en
Application filed by Juniper Networks Inc filed Critical Juniper Networks Inc
Application granted granted Critical
Publication of DE69737361D1 publication Critical patent/DE69737361D1/de
Publication of DE69737361T2 publication Critical patent/DE69737361T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/72Routing based on the source address
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • H04L47/6225Fixed service order, e.g. Round Robin
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/104Asynchronous transfer mode [ATM] switching fabrics
    • H04L49/105ATM switching elements
    • H04L49/108ATM switching elements using shared central buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1515Non-blocking multistage, e.g. Clos
    • H04L49/153ATM switching fabrics having parallel switch planes
    • H04L49/1538Cell slicing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • H04L49/203ATM switching fabrics with multicast or broadcast capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3072Packet splitting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/608ATM switches adapted to switch variable length packets, e.g. IP packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9042Separate storage for different parts of the packet, e.g. header and payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5652Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/103Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/252Store and forward routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing 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 Eingangsports 2, von denen jeder einen Eingangspuffer (Speicher) 4 enthält, eine Vermittlungseinrichtung 6 sowie eine Vielzahl von Ausgangsports 8 enthält.
  • Datenpakete, die an einem Eingangsport 2 empfangen werden, werden wenigstens temporär in einem Eingangspuffer 4 gespeichert, während die Zieladresseninfonnation, die jedem Paket zugehörig ist, dekodiert wird, um die angemessene Vermittlung durch die Vermittlungseinrichtung 6 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 Eingangspuffers 4 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 Eingangsports 2, von denen jeder einen Eingangspuffer (Speicher) 4 enthält, eine Vermittlungseinrichtung 6 und eine Vielzahl von Ausgangsports 8, von denen jeder einen Ausgangspuffer 9 enthält, umfasst. Um Blockierungssituationen zu vermeiden, wurde jeder Ausgangsport 8 konfiguriert, um einen Ausgangspuffer 9 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 und 1b 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 Quelle 10 mit einem Router oder mit mehreren Routern 20 zum Senden von Paketen zu einer Zieladresse oder zu mehreren Zieladressen 30 verbunden. Jeder Router enthält eine Vielzahl von Ports, die mit verschiedenen Quellen und Zieladressen verbunden sind. Ein Paket von der Quelle 10 kann vor der Ankunft an seiner Zieladresse durch mehr als einen Router 20 weitergegeben werden.
  • In Bezug auf 2b enthält jeder Router 20 einen Eingangsvermittler 100, einen Ausgangsvermittler 102, einen Speicher 104, der eine oder mehrere Speicherbanken 105 enthält, einen Kontroller 106 und eine Vielzahl von Eingangs- und Ausgangsports 107 beziehungsweise 108. Zu dem Kontroller 106 gehört ein Kontrollerspeicher 109 zum Speichern einer Routing-Tabelle. Der Eingangsvermittler 100 ist mit jedem Eingangsport 107 verbunden, während der Ausgangsvermittler 102 mit jedem Ausgangsport 108 in dem Router verbunden ist. In einem Ausführungsbeispiel enthält der Router 20 jeweils acht Eingangsports 107 und Ausgangsports 108.
  • In Betrieb werden die Pakete an einem Eingangsport 107 empfangen, zu dem Eingangsvermittler 100 gesendet und temporär im Speicher 104 gespeichert. Wenn das Paket durch den Vermittler 100 empfangen wird, wird ein Schlüssel aus dem ersten Datenblock in dem Paket gelesen und zu dem Kontroller 106 ü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 Kontroller 106 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 Router 20 gekoppelt und als eine Benachrichtigung von dem Kontroller 106 zu dem Ausgangsvermittler 102 übertragen. Der Ausgangsvermittler 102 überträgt die Benachrichtigung zu dem identifizierten Ausgangsport 108. Beim Empfangen der Benachrichtigungsinformation initiiert der Ausgangsport 108 die Übertragung des Paketes von dem Speicher 104 durch den Ausgangsvermittler 102 zurück zu dem entsprechenden Ausgangsport 108.
  • In Bezug auf 3 enthält jeder Eingangsport 107 eine Leitungseingangsschnittstelle 300, einen Daten-Handler 304 und einen Zellenausgangsport 306. Pakete werden an der Leitungseingangsschnittstelle 300 empfangen. Wenn die Pakete empfangen werden, unterteilt der Daten-Handler 302 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 Eingangsvermittler 100 durch den Zellenausgangsport 306 aus.
  • Im Folgenden wird Bezug auf 4a genommen, wobei in jedem Zellen-Slot „T" eine einzelne Zelle 450 von einem Eingangsport 107 zu dem Eingangsvermittler 100 gesendet wird. In einem gegebenen Zellen-Slot „T" empfängt der Eingangsport 107 insgesamt „N" Zellen, wobei „N" der Anzahl von Eingangsports entspricht.
  • Das Datenformat für jede Zelle 400, die von einem Eingangsport 107 zu dem Eingangsvermittler 100 gesendet wird, umfasst, wie in 4b dargestellt, einen internen Header 402 und ein Zellendatenfeld 404. Der interne Header 402 enthält ein Typfeld 406, ein Datenstromfeld 408 sowie Paket-Header-Felder 410.
  • 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 Speicher 104 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 Speicher 104, liegt. Die Erzeugung und die Funktionsweise von indirekten Platzhaltern und verzögerten indirekten Platzhaltern wird weiter unten ausführlicher in Zusammenhang mit 7 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 Eingangsvermittler 100 einen Round-Robin-Daten-Handler 500, eine oder mehrere Eingangsportschnittstellen (501-0 bis 501-7, eine für jeden Eingangsport 107), eine oder mehrere Speicherschnittstellen 502 (502-0 bis 502-7, wobei eine zu jeder Speicherbank gehört), eine gleiche Vielzahl von Zeigern 504 (504-0 bis 504-7), einen Ausgabeprozessor 505, eine oder mehrere Ausgangsportschnittstellen 506 (506-0 bis 506-7, eine für jeden Ausgangsport 108), eine Reservierungstabelle 508, einen Prozessor für indirekte Zellen 510, eine Ausgangsportschnittstelle 506 und einen Lesekontroller 517.
  • Der Round-Robin-Daten-Handler 500 empfängt Zellen von jedem Eingangsport und sendet diese zu dem Ausgabeprozessor 505 zum Ausgeben zu einer geeigneten Speicherbank 105 in dem Speicher 104. Der Round-Robin-Daten-Handler 500 bearbeitet die Eingänge (Zellen), die an den Eingangsportschnittstellen 501 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-Handler 500 empfangen und anschließend zu dem Ausgabeprozessor 505 zur Übertragung in dem nächsten Zellen-Slot zu einer Speicherbank 105 in dem Speicher 104 gesendet wird. In dem nächsten Zeitzellen-Slot sendet der Daten-Handler 500 die nächste von demselben Eingangsport empfangene Zelle zu dem Ausgabeprozessor 505 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 Zellen 450-0 bis 450-7 über die Übertragungsleitungen 458 gesendet, eine von jedem Eingangsport 107 zu dem Eingangsvermittler 100. In dem Zellen-Slot T3 (einer lediglich vor der Zeit zu Zellen-Slot T4) wird eine Reihe von Zellen 452-0 bis 452-7 über die Übertragungsleitungen 458 gesendet, eine von jedem Eingangsport 107 zu dem Eingangsvermittler 100.
  • Der Round-Robin-Daten-Handler 500 und der Ausgabeprozessor 505 in dem Eingangsvermittler 100 senden Zellen auf den Übertragungsleitungen 460 zu dem Speicher 104 aus. Wie in dem Zellen-Slot T2 zu sehen ist, gibt der Ausgabeprozessor 505 eine Zelle 454-B0 bis 454-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 bis 456-B7) in jede Speicherbank geschrieben. Der Round-Robin-Daten-Handler 500 zeitmultiplext die Übertragungen zu dem Ausgabeprozessor 505, so dass aufeinanderfolgende Zellen von demselben Eingangsport in aufeinanderfolgende Speicherbanken 105 in dem Speicher 104 geschrieben werden.
  • Unter erneuter Bezugnahme auf 5a gibt ein Zeiger 504 den Ort in einer dazugehörigen Speicherbank an, an den die nächste Zelle geschrieben wird. Der Ausgabeprozessor 505 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 Zeiger 504 angegeben wird.
  • Der Round-Robin-Daten-Handler 500 enthält eine Schlüssellesemaschine 514 zum Bestimmen der Schlüsselinformation, die zu einer ersten Zelle in einem Paket gehört, und eine Verbindungsmaschine 515 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 Eingangsvermittler 100 gespeichert, bis das gesamte Paket in dem Speicher 104 gespeichert wurde. Die Datenstruktur für die Einträge 600 in dem Schlüsselspeicher 516 wird in 6 dargestellt. Jeder Eintrag 600 enthält einen Schlüssel 602, eine vollständige Adresse 604, Offsets 606 sowie einen Indikator für indirekten Zellen 608.
  • 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 Speicher 104 (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 Zeiger 504 angegeben). Die Startadresse (vollständige Adresse 604) wird in dem Schlüsselspeicher 516 zusammen mit dem dazugehörigen Schlüssel 602 für das Paket gespeichert. Wenn die nächste Zelle, die demselben Paket zugehörig ist, an dem Vermittler 100 ankommt, wird ein Offset 606, der sich auf den Offset bezieht, zu dem die Schlüsselspeicher 516 gespeichert. In einem Ausführungsbeispiel der vorliegenden Erfindung werden bis zu vier Offsets 606 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 Zeigers 504, 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üsselspeicher 516 (eine Routen-Suchanforderung) über die Kontrollerschnittstelle 512 zu dem Kontroller 106, 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 Speicher 104 für ein gegebenes Paket durch. Der Prozessor für indirekte Zellen 510 erzeugt indirekte Zellen zum Speichern in dem Speicher 104. 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 Zellen 520 zum Speichern indirekter Zellendaten während der Bildung von indirekten Zellen.
  • In Bezug auf 7 enthält die Datenstruktur für eine indirekte Zelle 700 ein Verbindungsfeld 702, eine Vielzahl von Offset-Feldern 704 und ein letztes Feld 706. Das Verbindungsfeld 702 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 Feld 606 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 Zelle 56 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-Prozessor 500 sendet Zellen zu dem Ausgabeprozessor 505 zum Senden an eine dazugehörige Speicherbank in dem Speicher 104. Der Round-Robin-Prozessor 500 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 Zellen 510 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 Zellen 520. 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 Feld 606. 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 Eingangsvermittler 100 von dem dazugehörigen Eingangsport 107 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 Eintrag 600 aus dem Schlüsselpuffer 516 wird zu dem Kontroller 106 ü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 Eingangsvermittler 100 aus der Speicherschnittstelle 501 zu den einzelnen Speicherbanken in dem Speicher 104 fließen. Der Lesekontroller 517 empfängt die Leseanforderungen von jedem Ausgangsport durch die Ausgangsportschnittstellen 506. 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 Vermittler 100 erzeugen, um einen Speicherort in dem Speicher 104 zu lesen, was in dem Lesen einer Zelle (eine Leseantwort) von einer Speicherbank 105 (in einem nachfolgenden Zellen-Slot) zu dem Ausgangsvermittler 102 resultiert.
  • Die Datenstruktur einer von dem Eingangsvermittler 100 (über den Ausgabeprozessor 505) zu einer Speicherbank 105 in dem Speicher 104 gesendeten Zelle wird in 8 dargestellt. Der Ausgabeprozessor 505 erzeugt in jedem Zellen-Slot eine Zelle 800, die ein Leseanforderungs-Quellenfeld 802, eine Leseadresse 804, eine Schreibadresse 806 sowie ein Datenfeld (Zellendaten, die von dem Eingangsport 107 empfangen wurden) 808 enthält. Das Leseanforderungs-Quellenfeld 802 gibt den Ausgangsport an, der das Lesen anfordert (Zieladressen-Ausgangsport 108). Der Ausgabeprozessor 505 empfängt Leseanforderungen von dem Lesekontroller 517 und bündelt die Leseanforderung mit jeglicher von dem Round-Robin-Daten-Handler 500 empfangenen Schreibanforderung, die für dieselbe Speicherbank bestimmt ist. In jedem Zellen-Slot stellt der Ausgabeprozessor 505 eine Zelle 800 bereit, die eine Schreib- und Leseanforderung für jede Speicherbank 105 in dem Speicher 104 enthält.
  • Der Lesekontroller 517 lädt eine Reservierungstabelle 508, wenn Anforderungen zur Übertragung von Paketen von den verschiedenen Ausgangsports 108 empfangen werden. Die Reservierungstabelle wird so geladen, dass in jedem Zellen-Slot eine einzelne Leseanforderung für jede Speicherbank 105 in dem Speicher 104 erzeugt wird. Im Folgenden wird Bezug auf 9 genommen, in der eine Reservierungstabelle 508 dargestellt ist, die eine Vielzahl von Spalten 900, eine für jede Speicherbank 105 in dem Speicher 104, eine Vielzahl von Zeilen 902, Platzhalter 904 sowie geladene Einträge 906 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 Ausgangsport 108. In jedem Zellen-Slot ist jeder Ausgangsport in der Lage, ein Lesen von einer einzelnen Speicherbank 105 in dem Speicher 104 anzufordern. Zu jeder Reservierungstabelle 508 gehört ein Lesezeiger 908. 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 Ausgangsvermittler 102 empfangenen Reservierungsanforderungen auszuführen sind. Die Platzhalter 904 repräsentieren verfügbare Leseanforderungen, die bislang noch nicht angefordert wurden. In jedem Zellen-Slot führt der Lesekontroller 517 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 Ausgabeprozessor 505; 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 Reservierungstabelle 508 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 Platzhalter 904 in sämtlichen der Zeilen 902. Die Platzhalter 904 sind Stellen in der Reservierungstabelle, die nicht geladen wurden. Wenn Leseanforderungen durch den Leseprozessor verarbeitet werden, werden bestimmte Platzhalter der Platzhalter 904 in geladene Einträge 906 auf Basis der Leseanforderungen umgewandelt. Die geladenen Einträge 906 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 Platzhalter 904 zu einem geladenen Eintrag 906 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 Speicher 104 dargestellt ist, der eine Vielzahl von Speicherbanken 105 enthält. Jede Speicherbank enthält einen Eingangsport 1102 sowie einen Ausgangsport 1104. In jedem Zellen-Slot empfängt jede Speicherbank höchstens eine Schreib- und eine Leseanforderung über den Eingangsport 1102. Die Schreibanforderungen gehören zu den Zellen, die von den Ein gangsports 107 empfangen werden. Die Leseanforderungen spiegeln eine Anforderug zum Übertragen von Zellendaten aus einer Speicherbank 105 zu dem Ausgangsvermittler 102 wider. Die Datenstruktur, die den Zellen zugehörig ist, die aus dem Speicher 104 zu dem Ausgangsvermittler 102 geschrieben werden, ist in 12 dargestellt. Jede Zelle 1200 enthält eine Ausgangsportkennung 1002 sowie Zellendaten 1204.
  • 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 Speicher 104 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 Speicherbanken 105 in dem Speicher 104 geschrieben.
  • Im Folgenden wird Bezug auf 13 genommen, in der der Kontroller 106 dargestellt ist, der einen Kontroller-Speicher 109, eine Routen-Suchmaschine 110, eine Eingangsvermittlerschnittstelle 1300 und eine Ausgangsvermittlerschnittstelle 1302 enthält. Der Kontroller 106 empfängt eine Routen-Suchanforderung von dem Eingangsvermittler 100 an der Eingangsvermittlerschnittstelle 1300. In einem Ausführungsbeispiel der vorliegenden Erfindung ist eine Vielzahl von Routen-Suchmaschinen 110 in dem Kontroller 106 enthalten, wobei jede Suchmaschine Suchanforderungen auf Round-Robin-Basis empfängt, um den Routing-Vorgang zu beschleunigen. In einem Ausführungsbeispiel ist der Kontroller-Speicher 109 ein Statischer Direktzugriffsspeicher (SRAM [Static Random Access Memory]) mit vier Speicherbanken, der zweiunddreißig Routen-Suchmaschinen 110 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 Ausgangsvermittler 102 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 Kontroller 106 zu dem Ausgangsvermittler 102 ausgegeben wird, dargestellt ist. Die Datenstruktur 1400 für die Benachrichtigung enthält eine Maske 1402, einen Next-Hop-Indexzeiger 1404, die vollständige Adresse 1406, die Offsets 1408 sowie die Paketlänge 1410.
  • Das Maskenfeld 1402 wird verwendet, um anzuzeigen, welcher mit dem Ausgangsvermittler 102 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 Ausgangsport 108 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 Offsets 1408 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 Kontrollerschnittstelle 1500, einen Speichereingang oder mehrere Speichereingänge 1502 (1502-0 bis 1502-7, einen für jede Speicherbank), einen Ausgang oder mehrere Ausgänge 1504 (1504-0 bis 1504-7, einen für jeden Ausgangsport), einen Ergebnisprozessor 1506 und einen Ausgabeprozessor 1508 enthält. Der Ausgangsvermittler 102 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 Ausgabeprozessor 1508 gesendet. Der Ausgabeprozessor 1508 dekodiert den Zieladressen-Ausgangsport aus der von dem Speicher empfangenen Zelleninformation und sendet die Zellendaten zu den jeweiligen Ausgängen 1502. In jedem Zellen-Slot empfängt der Ausgangsvermittler 102 eine Zelle zum Verarbeiten von jeder Speicherbank in dem Speicher 104.
  • Der Ausgangsvermittler 102 empfängt die Benachrichtigung von dem Kontroller 106 an der Kontrollerschnittstelle 1500. Der Ergebnisprozessor 1506 dekodiert das Ergebnis (Route) und bestimmt, welcher/welche Ausgangsports 108 die Routen-Daten empfangen soll/sollen. Auf Basis der Maske 1402 in der Benachrichtigung sendet der Ergebnisprozessor 1506 die Benachrichtigung zu dem Ausgabeprozessor 1508 zum Übertragen zu jedem entsprechenden Ausgangsport 108, der so angezeigt ist. In jedem Zellen-Slot stellt der Ausgabeprozessor 1508 (über die Ausgänge 1504) jedem Ausgangsport 108 eine Route bereit.
  • Die Datenstruktur, die den Daten zugehörig ist, die von dem Ausgabeprozessor 1508 zu den Ausgangsports 108 übertragen werden, ist in 16 dargestellt. Eine Zelle 1600 enthält einen Header 1602 und ein Datenfeld 1604. Der Header 1602 enthält die Speicherbank-Quelleninformation 1606 sowie die Routen-Information 1608. Die Speicherbank-Quelleninformation enthält eine Quellenkennung, um anzugeben, welche Speicherbank die Zelle in dem Datenfeld 1604 bereitgestellt hat. Die Routen-Information 1608 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 Ausgangsport 108 eine Ausgangsvermittlerschnittstelle 1700, eine Eingangsvermittlerschnittstelle 1702, einen Puffer 1704, einen Ausgabeanforderungsprozessor 1706, eine Leitungsausgangsschnittstelle 1708, eine Speichereinrichtung (Speicher) 1710, einen Ausgangspuffer 1712 und einen Ausgabeformatierer 1714 enthält.
  • Die Ausgangsports 108 empfangen eine Benachrichtigung, dass ein Paket zu verarbeiten ist, von den Zellen 1600 an der Ausgangsvermittlerschnittstelle 1700. Der Ausgabeanforderungsprozessor 1706 speichert die Anforderung in dem Puffer 1704 und erzeugt anschließend eine Leseanforderung zu dem Eingangsvermittler 100, die mit der ersten Adresse in dem Speicher assoziiert ist, wo das Paket gespeichert ist. Der Ausgabeanforderungsprozessor 1706 erzeugt die erste Leseanforderung auf Basis der vollständigen von dem Ausgangsvermittler 102 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 Zelle 1600) 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 Zelle 1600 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 Zelle 1600 bereitgestellten vollständigen Adresse und der Offsets. Bei Empfang einer indirekten Zelle von dem Ausgangsvermittler 102 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 Ausgangspuffer 1712 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 Ausgangspuffer 1712 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 Ausgangspuffer 1712 und koppelt die Daten mit der Medienheader-Information, die in dem Speicher 1710 gespeichert ist. Jede Anforderung (Benachrichtigung), die von dem Ausgangsvermittler 102 empfangen wird, enthält einen Next-Hop-Index. Der Next-Hop-Index gibt die Startadresse in dem Speicher 1710 der Medienheader-Information an, die zu einem gegebenen Übertragungstyp gehört (abgeleitet von der Zieladresse des Paketes). Der Ausgabeformatierer 1714 koppelt die Zellendaten, die aus dem Speicher zurückgegeben werden, mit dem entsprechenden Medienheader, um ein ordnungsgemäßes Paket zu erzeugen, das an der Leitungsausgangsschnittstelle 1708 aus dem Router 20 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 Multifunktionsport 1900 enthält im Besonderen eine Speicherbank 105, eine Leitungseingangsschnittstelle 300, einen Daten-Handler 302, einen Puffer 1704, einen Ausgabeanforderungsprozessor 1706, eine Leitungsausgangsschnittstelle 1708, eine Speichervorrichtung 1710, eine FIFO-Einrichtung 1712, einen Ausgangsformatierer 1714, eine Eingangsvermittlerschnittstelle 1902 sowie eine Ausgangsvermittlerschnittstelle 1904.
  • 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 in 21 dargestellt.
  • Eine Zelle 2100, die von einem Multifunktionsport 1900 zu einem Eingangsvermittler gesendet wurde, enthält einen Zellen-Header 2102 sowie Zellendaten 2104. Der Zellen-Header 2102 enthält ein Typfeld 406, ein Datenstromfeld 408, Paket-Header-Felder 410, die ähnliche Funktionen wie die in Bezug auf 4 beschriebenen Felder inne haben. Darüber hinaus enthält der Zellen-Header 2102 eine Leseanforderung in der Form einer Ausgangsportkennung 2106 und einer Adresse 2108. Die Ausgangsportkennung 2106 identifiziert den Ausgangsport, der die Leseanforderung ausgibt. Die Adresse 2108 gibt die Adresse in dem Speicher 104 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)

  1. 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).
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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).
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. Router nach Anspruch 10, wobei die Anforderung von dem Ausgangsport (108) in der Reservierungstabelle (508) gespeichert wird.
  12. 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.
  13. Router nach Anspruch 10, wobei der Speicher (104) in einer Zellen-Slotzeitdauer höchstens eine einzelne Zelle (450) pro Speicherbank (105) ausgibt.
DE69737361T 1996-12-16 1997-12-16 Schnelle vermittlungsvorrichtung Expired - Lifetime DE69737361T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
EP0940025B1 (de) 2007-02-14
US8189605B2 (en) 2012-05-29
US20120219001A1 (en) 2012-08-30
EP0940025A4 (de) 2001-08-29
WO1998027660A3 (en) 1998-10-15
US9411776B2 (en) 2016-08-09
CA2274966A1 (en) 1998-06-25
WO1998027662A3 (en) 1998-09-03
US8761180B2 (en) 2014-06-24
US20050201396A1 (en) 2005-09-15
CA2274962C (en) 2002-08-06
US20110164618A1 (en) 2011-07-07
WO1998027697A1 (en) 1998-06-25
JP3459652B2 (ja) 2003-10-20
DE69737357T2 (de) 2007-06-21
WO1998027660A2 (en) 1998-06-25
US7903659B2 (en) 2011-03-08
JP2000516424A (ja) 2000-12-05
US20060023719A1 (en) 2006-02-02
US7116660B2 (en) 2006-10-03
DE69737361D1 (de) 2007-03-29
US6493347B2 (en) 2002-12-10
US20130215886A1 (en) 2013-08-22
EP0948849A4 (de) 2006-06-14
WO1998027662A2 (en) 1998-06-25
US7489699B2 (en) 2009-02-10
US7545808B2 (en) 2009-06-09
JP2001509978A (ja) 2001-07-24
US20010010692A1 (en) 2001-08-02
CA2274966C (en) 2003-10-28
US20030108056A1 (en) 2003-06-12
CA2274962A1 (en) 1998-06-25
EP0947078B1 (de) 2007-02-14
JP3459653B2 (ja) 2003-10-20
DE69737357D1 (de) 2007-03-29
EP0947078A2 (de) 1999-10-06
US8681796B2 (en) 2014-03-25
JP2000516423A (ja) 2000-12-05
US20090268740A1 (en) 2009-10-29
EP0940025A1 (de) 1999-09-08
US8477784B2 (en) 2013-07-02
US20140181235A1 (en) 2014-06-26
US20090109975A1 (en) 2009-04-30
CA2274964A1 (en) 1998-06-25
JP3453148B2 (ja) 2003-10-06
EP0948849A2 (de) 1999-10-13
US6917620B1 (en) 2005-07-12
CA2274964C (en) 2003-08-19
EP0947078A4 (de) 2001-08-29

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