DE10196447B4 - Verfahren und Vorrichtung zum Verringern der Erschöpfung des Pools in einer Vermittlung mit gemeinsam genutztem Speicher - Google Patents
Verfahren und Vorrichtung zum Verringern der Erschöpfung des Pools in einer Vermittlung mit gemeinsam genutztem Speicher Download PDFInfo
- Publication number
- DE10196447B4 DE10196447B4 DE10196447.1T DE10196447T DE10196447B4 DE 10196447 B4 DE10196447 B4 DE 10196447B4 DE 10196447 T DE10196447 T DE 10196447T DE 10196447 B4 DE10196447 B4 DE 10196447B4
- Authority
- DE
- Germany
- Prior art keywords
- pool
- buffers
- shared memory
- shared
- free
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/103—Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/201—Multicast operation; Broadcast operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/252—Store and forward routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9047—Buffering arrangements including multiple buffers, e.g. buffer pools
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
- HINTERGRUND DER ERFINDUNG
- Eine Netzvermittlung empfängt Datenpakete an Eingangsports und leitet die Datenpakete an einen oder an mehrere Ausgangsports weiter. Die Vermittlung bestimmt je nach einer in dem Datenpaket enthaltenen Zieladresse denjenigen Ausgangsport oder diejenigen Ausgangsports, an die die Datenpakete weitergeleitet werden. Ein von einem Eingangsport empfangenes Datenpaket wird in der Vermittlung im Speicher gespeichert, bevor es weitergeleitet wird.
- Der Speicher in der Vermittlung kann ein gemeinsam genutzter Speicher sein, in dem sämtliche empfangenen Datenpakete gespeichert werden, bevor sie weitergeleitet werden. Während die empfangenen Daten in dem gemeinsam genutzten Speicher gespeichert werden, wird in einer oder in mehreren Warteschlangen ein Datenpaketzeiger, d. h. ein Zeiger auf den Platz der empfangenen Daten im gemeinsam genutzten Speicher, gespeichert. Der Datenpaketzeiger kann je nach Eingangsport, an dem er empfangen wurden, oder je nach Ausgangsport, an den er zu übertragen sind, in eine Warteschlange eingereiht werden. Eine ausgabegepufferte Vermittlung reiht einen Datenpaketzeiger je nach Ausgangsport, an den er zu übertragen sind, in eine Warteschlange ein.
- Der gemeinsam genutzte Speicher wird von sämtlichen Ausgangsports gemeinsam genutzt, wobei einem Ausgangsport eine Stelle zum Speichern eines empfangenen Datenpakets, das an den Ausgangsport weiterzuleiten ist, wahlfrei zugeordnet wird. Die Anzahl der über jeden Ausgangsport übertragenen Datenpakete kann sich dramatisch ändern, was zur vorübergehenden Überbelastung an einem besonderen Ausgangsport führt. Eine vorübergehende Überbelastung kann an einem Ausgangsport auftreten, falls von mehreren Eingangsports empfangene Datenpakete über den gleichen Ausgangsport weiterzuleiten sind oder falls es eine Geschwindigkeitsfehlanpassung zwischen dem Eingangsport und dem Ausgangsport gibt, wobei beispielsweise der Eingangsport Daten mit 1 Gigabit pro Sekunde empfängt, während der Ausgangsport Daten mit 100 Megabits pro Sekunder sendet.
- Ferner wird auf die
US 5 724 358 A verwiesen. - ZUSAMMENFASSUNG DER ERFINDUNG
- Ein gemeinsam genutzter Speicher stellt mehr Speicher zur Verwendung durch einen überlasteten Ausgangsport bereit, wobei aber der gesamte gemeinsam genutzte Speicher zum Speichern von Daten für einen überlasteten Ausgangsport verbraucht werden kann, während kein verfügbarer Speicher zum Speichern von Daten verbleibt, die an nicht überlastete Ausgangsports weiterzuleiten sind. Dies führt dazu, dass Datenpakete für nicht überlastete Ausgangsports fallen gelassen werden.
- In Übereinstimmung mit der Erfindung wird eine gemeinsam genutzte Vermittlung geschaffen, die einen reservierten Pool von Puffern in dem gemeinsam genutzten Speicher enthält. Der reservierte Pool von Puffern wird für einen Ausgangsport reserviert. Die Vermittlung enthält eine Pool-Auswahllogik, die aus dem reservierten Pool einen freien Puffer auswählt, um von einem Eingangsport empfangene Daten zu speichern, die an den Ausgangsport weiterzuleiten sind.
- Außerdem enthält der gemeinsam genutzte Speicher einen gemeinsam genutzten Pool von Puffern. Der gemeinsam genutzte Pool von Puffern wird von mehreren Ausgangsports gemeinsam genutzt. Beim Erfassen keines freien Puffers in dem reservierten Pool wählt die Pool-Auswahllogik einen freien Puffer in dem gemeinsam genutzten Pool aus.
- Außerdem enthält der gemeinsam genutzte Speicher elnen Mehrpunktverbindungs-Pool von Puffern. Der Mehrpunktverbindungs-Pool von Puffern wird von mehreren der Ausgangsports gemeinsam genutzt. Beim Erfassen eines von einem Eingangsport empfangenen IP-Mehrpunktverbindungs-Datenpakets wählt die Pool-Auswahlfogik einen freien Puffer in dem Mehrpunktverbindungs-Pool aus.
- Figurenliste
- Die vorstehenden und weitere Aufgaben, Merkmale und Vorteile der Erfindung gehen aus der folgenden ausführlicheren Beschreibung bevorzugter Ausführungsformen der Erfindung hervor, wie sie in der beigefügten Zeichnung gezeigt sind, in der sich gleiche Bezugszeichen in allen verschiedenen Ansichten auf die gleichen Teile beziehen. Die Zeichnung ist nicht notwendig maßstäblich, während die Betonung stattdessen auf die Darstellung der Prinzipien der Erfindung gelegt wird.
-
1 ist ein Blockschaltplan einer Vermittlung mit gemeinsam genutztem Speicher; -
2 ist ein Blockschaltplan des in1 gezeigten gemeinsam genutzten Speichers, der die reservierten Pools, den gemeinsam genutzten Pool und den Mehrpunktverbindungs-Pool zeigt; -
3 ist ein Blockschaltplan der Pool-Auswahllogik in dem in1 gezeigten Paketablagemanager; -
4 ist ein Blockschaltplan der in3 gezeigten Pool-Zähler; -
5 ist ein in der in3 gezeigten Pool-Zählerlogik implementierter Ablaufplan, der die Schritte zum Auswählen eines Pools zeigt; -
6 ist ein in der in3 gezeigten Pool-Zählerlogik implementierter Ablaufplan, der die Schritte zum Zurückgeben eines Puffers an einen Pool zeigt. - AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
- Es folgt eine Beschreibung bevorzugter Ausführungsformen der Erfindung.
-
1 ist ein Blockschaltplan einer Vermittlung100 mit gemeinsam genutztem Speicher. Alle an den Eingangsports102 empfangenen Daten werden im gemeinsam genutzten Speicher108 gespeichert, bevor sie an einen oder an mehrere Ausgangsports 1120-n weitergeleitet werden. Der Paketablagemanager106 steuert den Schreib- und Lesezugriff auf den gemeinsam genutzten Speicher108 . Der Paketablagemanager106 enthält die Pool-Auswahllogik124 . Wie in2 gezeigt ist, teilt die Pool-Auswahllogik124 den gemeinsam genutzten Speicher108 Iogisch in einen gemeinsam genutzten Pool, in einen Mehrpunktverbindungs-Pool und in mehrere reservierte Pools auf. Es gibt keine tatsächliche physikalische - Unterteilung des gemeinsam genutzten Speichers108 . - Die Pool-Auswahllogik
124 organisiert die Puffer in jedem Pool, indem sie einen Pool auswählt, aus dem ein Puffer zuzuordnen ist. Ein Puffer wird aus dem reservierten Pool des Ausgangsports zugeordnet, falls die Anzahl der zugeordneten Puffer für einen Ausgangsport112 kleiner als eine Reserviert-Schwellenwertzahl ist. Die Pool-Auswahllogik124 wird später in Verbindung mit2 beschrieben. Der Lese- und Schreibzugriff auf den gemeinsam genutzten Speicher108 ist in derUS 6 711 170 B1 , eingereicht am 31. August 1999, mit dem Titel „Method and Apparatus for an Interleaving Non-Blocking Packet Buffer“ von David A. Brown beschrieben. - Die Vermittlung
100 enthält eine Eingangsportsmaschine104 und eine Ausgangsportsmaschine110 . Ein Datenpaket wird seriell am Eingangsport102 empfangen. Die Eingangsmaschine104 erfasst und verarbeitet die Anfangsblöcke in dem empfangenen Datenpaket, bestimmt aus dem erfassten Anfangsblock, an welchen Ausgangsport 1120-n das Datenpaket weiterzuleiten ist, und erzeugt einen Weiterleitungsvektor114 für das Datenpaket. Der Weiterleitungsvektor114 ist eine Bitmap, wobei jedem der mehreren Ausgangsports 1120-n ein Bit entspricht, das angibt, ob das Datenpaket an diesen Ausgangsport 1120-n weiterzuleiten ist. Ein Verfahren und eine Vorrichtung zum Erzeugen eines Weiterleitungsvektors114 sind beschrieben in derUS 6 754 211 B1 , eingereicht am 1. Dezember 1999, mit dem Titel „Method and Apparatus for Wire-Speed IP Multicast Forwarding“ von David A. Brown. Der Weiterleitungsvektor114 wird an den Paketablagemanager106 weitergeleitet. - Der Paketablagemanager
106 liefert die gemeinsam genutzten Speicheradressen122 für Lese- und Schreiboperationen an den gemeinsam genutzten Speicher108 und speichert die Plätze jedes in einer oder in mehreren (nicht gezeigten) Ausgangsport-Warteschlangen gespeicherten Datenpakets in dem gemeinsam genutzten Speicher108 . Ein Verfahren und eine Vorrichtung zur Bereitstellung von Ausgangsport-Warteschlangen ist beschrieben in derUS 7 236 489 B1 , eingereicht am 27. April 2000, mit dem Titel „Port Packet Queuing“ von Richard M. Wyatt. Die Ausgangsmaschine110 wählt über Auswählen120 einen der mehreren Ausgangsports 1120-n aus, an den ein Datenpaket zu senden ist, und liefert das gespeicherte Datenpaket an den ausgewählten Ausgangsport 1120-n. - Der gemeinsam genutzte Speicher
108 speichert die von irgendeinem der Eingangsports102 empfangenen Datenpakete, um sie an irgendeinen der Ausgangsports 1120-n zu senden. Die Vermittlung100 schafft eine gleichzeitige Verarbeitung der an den Eingangsports102 empfangenen Datenpakete durch die Eingangsportmaschine104 und der gespeicherten Datenpakete durch die Ausgangsportmaschine110 zur Weiterleitung an die Ausgangsports 1120-n. - Während ein Datenpaket seriell an einem der Eingangsports
102 empfangen wird, können die seriellen Daten zu Datensegmenten gruppiert werden. Jedes Datensegment wird in einem Puffer im gemeinsam genutzten Speicher108 gespeichert. Somit hängt die Größe eines Puffers von der Größe eines Datensegments ab. Die Größe eines Datensegments hängt von dem durch die Vermittlung100 unterstützten Netzprotokoll ab. Da die minimale Datenpaketgröße für ein Ethernet-Datenpaket64 Bytes beträgt, beträgt die für das Datensegment ausgewählte Größe für das Ethernet-Netzprotokoll beispielsweise 64 Bytes. - Außerdem bestimmt die Eingangsportsmaschine
104 aus dem in einem empfangenen Datenpaket enthaltenen Anfangsblock, ob ein Datenpaket ein IP-Mehrpunktverbindungs-Datenpaket ist. Die Vermittlung100 leitet eine Kopie eines IP-Mehrpunktverbindungs-Datenpakets an jedes Mitglied der IP-Mehrpunktverbindungsgruppe weiter. Wie in derUS 6 754 211 B1 , eingereicht am 1. Dezember 1999, mit dem Titel „Method and Apparatus for Wire-Speed IP Multicast Forwarding“ von David A. Brown beschrieben ist, wird eine einzelne Kopie des Datenpakets mit einem Mehrpunktverbindungs-Weiterleitungsindex („MFI“) im gemeinsam genutzten Speicher108 gespeichert. Die Mitglieder der IP-Mehrpunktverbindungsgruppe können an denselben Ausgangsport112 oder an mehr als einen Ausgangsport112 angeschlossen sein. An einen Ausgangsport112 werden mehrere Kopien des IP-Mehrpunktverbindungs-Datenpakets, eine für jedes an den Ausgangsport112 angeschlossene Mitglied der IP-Mehrpunktverbindungsgruppe, weitergeleitet. Falls das empfangene Datenpaket ein IP-Mehrpunktverbindungs-Datenpaket ist, leitet die Eingangsportsmaschine104 mit dem Weiterleitungsvektor114 ein Mehrpunktverbindungs-Identifizierungskennzeichen126 weiter, das angibt, dass das empfangene Datenpaket ein IP-Mehrpunktverbindungs-Datenpaket ist. Das Mehrpunktverbindungs-Identifizierungskennzeichen126 gibt an, ob das empfangene Datenpaket ein IP-Mehrpunktverbindungs-Datenpaket ist. Das Mehrpunktverbindungs-Identifizierungskennzeichen126 kann als einzelnes Bit implementiert sein, das auf ‚1‘ gesetzt wird, falls das empfangene Datenpaket ein IP-Mehrpunktverbindungs-Datenpaket ist. -
2 ist ein Blockschaltplan des in1 gezeigten gemeinsam genutzten Speichers108 , der logisch in einen gemeinsam genutzten Pool200 , in einen Mehrpunktverbindungs-Pool204 und in mehrere reservierte Pools 2020-202n aufgeteilt ist. Für jeden Ausgangsport 1120-n ist ein reservierter Pool 2020-202n vorgesehen. Jedem reservierten Pool 2020-202n ist eine reservierte Schwellenwertzahl von Puffern zugewiesen. Die reservierte Schwellenwertzahl von Puffern kann einzig zum Speichern von Datenpaketen für den jeweiligen Ausgangsport112 zugeordnet werden. Der gemeinsam genutzte Pool200 ist zum Speichern von Datenpaketen vorgesehen, die an irgendeinen der Ausgangsports 1120-n weiterzuleiten sind. Der Mehrpunktverbindungs-Pool204 ist zum Speichern von IP-Mehrpunktverbindungs-Datenpaketen vorgesehen, die an irgendeinen der Ausgangsports 1120-n weiterzuleiten sind. - Während die Anzahl der zugeordneten Puffer unter der Schwellenwertanzahl liegt, wird ein Puffer aus dem reservierten Pool 2020-n der Ausgangsports zugeordnet. Falls die Anzahl der reservierten zuordenbaren Puffer überschritten worden ist, werden Puffer aus dem gemeinsam genutzten Pool
200 zugeordnet. Ein Puffer für ein Datenpaket kann lediglich aus dem jeweiligen reservierten Pool 2020 - 202n zugeordnet werden, der dem Ausgangsport 1120-n zugeordnet ist. Somit ist auch dann ein Puffer zur Zuordnung an einen nicht überlasteten Port aus dem jeweiligen reservierten Pool 2020 - 202n des nicht überlasteten Ports verfügbar, wenn sämtliche Puffer in dem gemeinsam genutzten Pool200 einem überlasteten Ausgangsport 1120-n zugeordnet sind. - Falls das Datenpaket ein IP-Mehrpunktverbindungs-Datenpaket ist, wird das Datenpaket einmal in dem gemeinsam genutzten Speicher
108 gespeichert und eine Kopie des gespeicherten Datenpakets an die Mitglieder der IP-Mehrpunktverbindungsgruppe weitergeleitet. Bis das IP-Mehrpunktverbindungs-Datenpaket an jedes Mitglied der IP-Mehrpunktverbindungsgruppe weitergeleitet worden ist, wird das IP-Mehrpunktverbindungs-Datenpaket in dem gemeinsam genutzten Speicher108 gespeichert. - Da das gespeicherte IP-Mehrpunktverbindungs-Datenpaket an mehr als einen Ausgangsport
112 weitergeleitet werden kann, ist es schwierig, einen reservierten Pool202 des Ports auszuwählen, aus dem ein Puffer zuzuordnen ist, in dem das IP-Mehrpunktverbindungs-Datenpaket zu speichern ist. Da der Puffer nicht aus dem reservierten Pool für den Ausgangsport zugeordnet worden sein kann, an den das letzte IP-Mehrpunktverbindungs-Datenpaket weitergeleitet worden ist, kann außerdem, wenn ein IP-Mehrpunktverbindungs-Datenpaket aus der Warteschlange entfernt wird, ohne eine getrennte Buchführung für die IP-Mehrpunktverbindungs-Datenpakete zu unterhalten, nicht bestimmt werden, ob es aus einem reservierten Pool202 oder aus einem gemeinsam genutzten Pool200 kommt. Die Anwesenheit eines getrennten Pools zum Speichern von IP-Mehrpunktverbindungs-Datenpaketen ermöglicht, dass eine Vermittlung100 die Anzahl der Puffer-Betriebsmittel, die zum Speichern von IP-Mehrpunktverbindungs-Datenpaketen verbraucht werden können, begrenzt. Somit ist ein Mehrpunktverbindungs-Pool204 zum Speichern von IP-Mehrpunktverbindungs-Datenpaketen vorgesehen. -
3 ist ein Blockschaltplan der Pool-Auswahllogik124 in dem in1 gezeigten Paketablagemanager106 . Die Pool-Auswahllogik124 enthält die Pool-Zähler300 und die Pool-Zählerlogik302 . Die Pool-Zähler300 enthalten für jeden Pool200 ,2020-202n ,204 im gemeinsam genutzten Speicher108 einen Zähler. Der ZählerStatus304 wird an die Pool-Zählerlogik302 weitergeleitet. - Die Pool-Zählerlogik
302 wählt je nach Zustand des Zählerstatus304 , des Weiterleitungsvektors114 und des Mehrpunktverbindungs-Identifizierungskennzeichens126 für das in dem gemeinsam genutzten Speicher108 zu speichernde empfangene Datenpaket den Pool200 ,2020 - 202n oder204 , aus dem ein Puffer zuzuordnen ist. Nach Auswahl des Pools200 ,2020 - 202n oder204 erzeugt die Pool-Zählerlogik302 das Zähler-Inkrement/Dekrement306 zum Inkrementieren oder Dekrementieren des jeweiligen Zählers in den Pool-Zählern300 . Außerdem erzeugt die Pool-Zählerlogik302 das buffer_available 308. Der Zustand von buffer_available 308 gibt an, ob ein Puffer zum Speichern eines empfangenen Nicht-Mehrpunktverbindungs-Datenpakets im gemeinsam genutzten Speicher108 verfügbar ist. Falls kein Puffer für ein Nicht-Mehrpunktverbindungs-Datenpaket in dem gemeinsam genutzten Pool200 oder in dem reservierten Pool202 des Ports oder für ein Mehrpunktverbindungs-Datenpaket in dem Mehrpunktverbindungs-Pool204 verfügbar ist, wird das empfangene Datenpaket fallen gelassen. - Falls ein Puffer verfügbar ist, in dem die an einen Ausgangsport weiterzuleitenden empfangenen Daten zu speichern sind, wird, wie in Verbindung mit der
US 6 711 170 B1 , eingereicht am 31. August 1999, mit dem Titel „Method and Apparatus for an Interleaved Non-Blocking Packet Buffer“ von David A. Brown beschrieben ist, ein Puffer aus einer Liste von Puffern in dem gemeinsam genutzten Speicher108 zugeordnet. -
4 ist ein Blockschaltplan der in3 gezeigten Pool-Zähler300 . Die Pool-Zähler300 umfassen für jeden Ausgangsport 1120-n in der Vermittlung100 einen Gemeinsam-genutzt-frei-Zähler400 , einen Insgesamt-frei-Zähler 402, einen Mehrpunktverbindungs-frei-Zähler416 , einen Reserviert-frei-Zähler428 , ein Register412 für einen für die Warteschlange reservierten Schwellenwert und einen Zähler 4140-n der reservierten Pools der Ports. - Der Insgesamt-frei-Zähler
402 speichert die Gesamtzahl freier Puffer im gemeinsam genutzten Speicher108 . Der Insgesamt-frei-Zähler402 wird mit der Summe der Puffer in dem gemeinsam genutzten Pool200 , in den reservierten Pools 2020 - 202n und in dem Mehrpunktverbindungs-Pool204 voreingestellt. Der Insgesamt-frei-Zähler402 wird jedes Mal dekrementiert, wenn ein Puffer aus irgendeinem Pool zum Speichern eines Datenpakets zugeordnet wird. Falls die Pools wie folgt zugewiesen sind: reserviert = 500; gemeinsam genutzt = 2000; Mehrpunktverbindung = 500, ist die Summe der Puffer von 3000 gleich der Gesamtzahl verfügbarer Puffer. Selbst wenn Puffer in dem gemeinsam genutzten Pool200 verfügbar sind, werden IP-Mehrpunktverbindungs-Datenpakete fallen gelassen, sobald die 500 Datenpakete in dem Mehrpunktverbindungs-Pool204 verwendet werden. - In einer Vermittlung ist eine bestimmte Menge an „Optimierung“ erforderlich. Die Optimierung umfasst die Bestimmung, wie der gemeinsam genutzte Speicher
108 zu unterteilen ist, um die Wahrscheinlichkeit zu verringern, dass Datenpakete während einer Überlastung fallen gelassen werden. Die meiste Überlastung tritt auf, wenn es Datenbündel gibt, die an einem Ausgangsport miteinander kollidieren. Je nach Faktoren wie etwa der Bündellänge und anderen ändert sich die Wahrscheinlichkeit für das Fallenlassen in Abhängigkeit von den Überzeichnungsverhältnissen der Pools im gemeinsam genutzten Speicher108 . Somit sind die Schwellenwerte für die Pools im gemeinsam genutzten Speicher108 in Abhängigkeit von den erwarteten Lastbedingungen veränderbar. - In einer alternativen Ausführungsform werden die Pools
200 , 2020 - 202n und 204 überzeichnet. Der Insgesamt-frei-Zähler402 wird mit der Gesamtzahl der physikalischen Puffer im gemeinsam genutzten Speicher108 initialisiert. Die Summe der Puffer in dem gemeinsam genutzten Pool200 , in den reservierten Pools der Ports 2020 - 202n und in dem Mehrpunktverbindungs-Pool204 ist größer als die in dem Insgesamt-frei-Zähler402 gespeicherte Zahl. Dies ermöglicht eine bessere Nutzung der Puffer im gemeinsam genutzten Speicher108 , verringert aber die Sicherheit, dass ein Puffer in dem reservierten Pool202 verfügbar ist. - Falls die Pools beispielsweise wie folgt zugewiesen sind: reservierter Pool = 1000; gemeinsam genutzter Pool = 2000; Mehrpunktverbindungs-Pool = 1000, ist die Summe der Puffer
4000 , während die Gesamtzahl verfügbarer Puffer im gemeinsam genutzten Speicher108 gleich 3000, d. h. kleiner als die Summe der Puffer in den Pools, ist. Da ein Drittel der Gesamtzahl verfügbarer Puffer zum Speichern von IP-Mehrpunktverbindungs-Datenpaketen zugeordnet werden kann, ermöglicht dies eine bessere Nutzung der Puffer in dem gemeinsam genutzten Speicher108 , falls es in der Vermittlung100 mehr Mehrpunktverbindungs-Datenverkehr als Einpunktverbindungs-Datenverkehr und Rundsende-Datenverkehr gibt. - Falls der Mehrpunktverbindungs-Pool
204 nicht überzeichnet ist, werden, selbst wenn im gemeinsam genutzten Speicher108 Puffer verfügbar sind, auch dann Mehrpunktverbindungs-Datenpakete fallen gelassen, wenn der Mehrpunktverbindungs-Pool204 voll ist. Somit ist es bei der Überzeichnung weniger wahrscheinlich, dass Datenpakete fallen gelassen werden, wenn Puffer in dem gemeinsam genutzten Speicher108 verfügbar sind. Der Nachteil besteht darin, dass selbst dann kein Puffer in dem reservierten Pool für einen nicht überlasteten Port verfügbar sein kann, wenn der jeweilige reservierte Pool202 des Ports unterhalb seines reservierten Schwellenwerts liegt. - Der Gemeinsam-genutzt-frei-Zähler
400 speichert die Anzahl der verfügbaren oder freien Puffer in dem gemeinsam genutzten Pool200 . Die Puffer in dem gemeinsam genutzten Pool200 des gemeinsam genutzten Speichers108 können ein Datenpaket für irgendeinen Ausgangsport 1120-n speichern. Der Gemeinsam-genutzt-frei-Zähler400 wird jedes Mal dekrementiert, wenn ein Puffer aus dem gemeinsam genutzten Pool200 zugeordnet wird. Die Zahl430 des gemeinsam genutzten Pools gibt an, ob es freie Puffer in dem gemeinsam genutzten Pool200 gibt. Die Zahl430 des gemeinsam genutzten Pools wird an die Pool-Zählerlogik302 weitergeleitet. - Der Mehrpunktverbindungs-frei-Zähler
416 speichert die Anzahl verfügbarer Puffer in dem Mehrpunktverbindungs-Pool204 . Die Zähler 4140-n der reservierten Pools der Ports speichern die Anzahl der Puffer, die dem jeweiligen Ausgangsport112 aus dem jeweiligen reservierten Pool der Ports 2020 - 202n und aus dem gemeinsam genutzten Pool200 zugeordnet sind. Ein Register412 für einen für die Warteschlange reservierten Schwellenwert speichert die Anzahl der Puffer, die zum Zuordnen zu einem reservierten Pool der Ports 2020 - 202n reserviert sind. Falls zur Zuordnung an jedem reservierten Pool 2020 - 202n des Ports die gleiche Anzahl der Puffer reserviert ist, ist ein Register412 für einen für die Warteschlange reservierten Schwellenwert vorgesehen. In einer alternativen Ausführungsform kann jeder reservierte Pool 2020 - 202n eine andere Anzahl von Puffern zur Zuordnung reserviert haben, so dass für jeden Zähler 4140-n des reservierten Pools der Ports ein Register412 für einen für die Warteschlange reservierten Schwellenwert erforderlich ist. - Der Reserviert-frei-Zähler
428 ist auf die Summe der für jeden Ausgangsport112 reservierten Puffer oder auf eine kleinere Anzahl als die Summe voreingestellt. Falls der Reserviert-frei-Zähler auf eine kleinere Zahl als die Summe voreingestellt ist, ist mehr reservierter Speicher pro Ausgangsport vorgesehen, wobei ein Ausgangsport aber nicht in der Lage sein kann, alle Puffer in seinem jeweiligen reservierten Pool zuzuordnen. Beispielsweise wird beim Empfang eines an einen Ausgangsport weiterzuleitenden Datenpakets das Paket fallen gelassen, falls es keine freien Puffer in dem gemeinsam genutzten Pool gibt und der Ausgangsport keine freien Puffer in seinem jeweiligen reservierten Port-Pool besitzt, selbst wenn es freie Puffer in dem reservierten Pool gibt, falls beispielsweise vier reservierte Port-Pools mit jeweils 100 Puffern reserviert sind und Insgesamt-reserviert auf400 eingestellt ist. Falls jeder reservierte Port-Pools auf 150 überzeichnet ist, kann jeder Ausgangsport bis zu 150 Puffer der400 Puffer in dem reservierten Pool nutzen. Somit sind mehr Puffer für einen überlasteten Port verfügbar. Allerdings wird durch die Überzeichnung die Zuordnung des reservierten Pools von Puffern eines Ausgangsports nicht sichergestellt. Beispielsweise sind in einer Vermittlung mit 4 Ports, bei der jeder reservierte Port-Pools auf 150 überzeichnet ist, bei einem überlasteten Port, der 150 Puffer verwendet, 250 Puffer zur Zuweisung an die anderen 3 Ports verfügbar. - Jeder der Zähler
400 ,402 , 4140-n,416 und428 besitzt jeweilige Zähler-Inkrement/Dekrement-Signale422 ,404 , 4260-n, 410 und 436, die durch die Pool-Zählerlogik302 erzeugt und an das Zähler-Inkrement/Dekrement306 weitergeleitet werden (3 ). Ein Zähler400 ,402 , 4140-n,416 und428 wird jedes Mal inkrementiert oder dekrementiert, wenn ein Puffer aus einem jeweiligen Pool zugeordnet oder freigegeben wird. Beispielsweise wird der Gemeinsam-genutzt-frei-Zähler400 jedes Mal dekrementiert, wenn ein Puffer aus dem gemeinsam genutzten Pool200 zugeordnet wird, und jedes Mal inkrementiert, wenn ein Puffer wieder an den gemeinsam genutzten Pool200 freigegeben wird. Der Insgesamt-frei-Zähler402 wird jedes Mal dekrementiert, wenn ein Puffer aus irgendeinem Pool zugeordnet wird, und jedes Mal inkrementiert, wenn ein Puffer an irgendeinen Pool freigegeben wird. -
5 ist ein in der in3 gezeigten Pool-Zählerlogik302 implementierter Ablaufplan, der die Schritte zum Auswählen eines Pools200 , 2020 - 202n,204 im gemeinsam genutzten Speicher108 zeigt, aus dem ein Puffer zuzuordnen ist.5 wird in Verbindung mit3 und4 beschrieben. - In Schritt
500 wartet die Pool-Zähleriogik302 auf die Benachrichtigung über ein empfangenes Datenpaket, das in dem gemeinsam genutzten Speicher108 zu speichern ist. Die Benachrichtigung über ein empfangenes Datenpaket enthält einen Weiterleitungsvektor114 und ein Mehrpunktverbindungs-Identifizierungskennzeichen126 , die von der Eingangsportsmaschine104 weitergeleitet werden. Der Weiterleitungsvektor114 gibt die Ausgangsports 1120-n an, an die das empfangene Datenpaket weiterzuleiten ist. Das Mehrpunktverbindungs-Identifizierungskennzeichen126 gibt an, ob das Datenpaket ein IP-Mehrpunktverbindungs-Datenpaket ist. Falls ein Datenpaket empfangen wird, wird die Verarbeitung mit Schritt502 fortgesetzt. Falls nicht, wird die Verarbeitung mit Schritt500 fortgesetzt. - In Schritt
502 bestimmt die Pool-Zählerlogik302 , ob ein Puffer in dem gemeinsam genutzten Speicher108 zum Speichern des empfangenen Datenpakets verfügbar ist. In dem gemeinsam genutzten Speicher108 ist ein Puffer verfügbar, wenn Insgesamt-frei408 größer als null ist. Insgesamt-frei408 ist die Anzahl der freien Puffer, die in dem Insgesamt-frei-Zähler402 gespeichert ist (4 ). Falls ein Puffer verfügbar ist, wird die Verarbeitung mit Schritt504 fortgesetzt. Falls nicht, wird die Verarbeitung mit Schritt518 fortgesetzt. - In Schritt
504 bestimmt die Pool-Zählerlogik302 , ob das empfangene Datenpaket ein IP-Mehrpunktverbindungs-Datenpaket ist. Der Zustand des Mehrpunktverbindungs-Identifizierungskennzeichens126 gibt an, ob das Datenpaket ein IP-Mehrpunktverbindungs-Datenpaket ist. Falls das Datenpaket ein IP-Mehrpunktverbindungs-Datenpaket ist, wird das Datenpaket, wenn es in dem gemeinsam genutzten Speicher108 ist, gespeichert und eine Kopie des gespeicherten Datenpakets an jedes Mitglied der IP-Mehrpunktverbindungsgruppe weitergeleitet. Das Datenpaket kann mehrmals an einen oder an mehrere Ausgangsports 1120-n weitergeleitet werden. Falls das empfangene Datenpaket ein IP-Mehrpunktverbindungs-Datenpaket ist, wird die Verarbeitung mit Schritt520 fortgesetzt. Falls nicht, wird die Verarbeitung mit Schritt505 fortgesetzt. - In Schritt
505 ist das empfangene Datenpaket ein Nicht-IP-Mehrpunktverbindungs-Datenpaket. Somit muss ein Puffer aus dem gemeinsam genutzten Pool200 oder aus dem reservierten Port-Pools 2020 - 202n zugeordnet werden. Die Pool-Zählerlogik302 bestimmt, ob ein Puffer in irgendeinem der reservierten Pools der Ports 2020 - 202n verfügbar ist. Ein Puffer ist verfügbar, falls die Zahl432 des reservierten Pools größer als null ist. Da der reservierte Pool202 überzeichnet sein kann, wird die Zahl432 des reservierten Pools geprüft. Somit kann in den reservierten Pools202 kein Puffer verfügbar sein, selbst wenn die Warteschlange 4340-n. die dem Ausgangsport 1120-n zugeordnet ist, an den das empfangene Datenpaket weiterzuleiten ist, kleiner als der reservierte Schwellenwert418 ist. Falls ein Puffer verfügbar ist, wird die Verarbeitung mit Schritt506 fortgesetzt. Falls nicht, wird die Verarbeitung mit Schritt508 fortgesetzt. - In Schritt
506 bestimmt die Pool-Zählerlogik302 , ob ein Puffer in dem reservierten Port-Pools 2020- 202n verfügbar ist. Ein Puffer ist verfügbar, falls die Warteschlangenzahl 4340-n, die dem Ausgangsport 1120-n zugeordnet ist, an den das empfangene Datenpaket weiterzuleiten ist, kleiner als der reservierte Schwellenwert418 ist. Falls das der Fall ist, wird die Verarbeitung mit Schritt512 fortgesetzt. Falls nicht, wird die Verarbeitung mit Schritt508 fortgesetzt. - In Schritt
508 sind in dem jeweiligen reservierten Port-Pools 2020 - 202n des gemeinsam genutzten Speichers108 keine Puffer verfügbar. Die Pool-Zählerlogik302 bestimmt, ob ein Puffer in dem gemeinsam genutzten Pool200 verfügbar ist. Ein Puffer ist verfügbar, falls die Zahl430 des gemeinsam genutzten Pools größer als null ist. Falls das der Fall ist, wird die Verarbeitung mit Schritt510 fortgesetzt. Falls nicht, wird die Verarbeitung mit Schritt518 fortgesetzt. - In Schritt
510 wird ein Puffer aus dem gemeinsam genutzten Pool200 zugeordnet. Die Pool-Zählerlogik302 aktualisiert durch Dekrementieren des Gemeinsam-genutzt-frei-Zählers400 um das Gemeinsam-Genutzt-Inkrement/Dekrement422 die Anzahl der Puffer, die in dem gemeinsam genutzten Pool200 verfügbar sind. Die Verarbeitung wird mit Schritt514 fortgesetzt. - In Schritt
512 aktualisiert die Pool-Zählerlogik302 durch Dekrementieren des Reserviert-frei-Zählers428 um das Reserviert-Inkrement/Dekrement436 die Anzahl der Puffer, die in dem reservierten Pool202 verfügbar sind. Die Verarbeitung wird mit Schritt514 fortgesetzt. - In Schritt
514 aktualisiert die Pool-Zählerlogik302 durch Inkrementieren des Zählers414 des reservierten Pools des Ports um das Warteschlangen-Inkrement/Dekrement426 die Anzahl der von dem Ausgangsport verwendeten Puffer. Der jeweilige Zähler414 des reservierten Pools des Ports wird je nach dem in den Weiterleitungsvektor114 ausgewählten Ausgangsport112 ausgewählt. Ein Puffer für einen jeweiligen Ausgangsport kann aus dem gemeinsam genutzten Pool200 oder aus dem jeweiligen reservierten Pool202 zugeordnet werden. Somit kann die jeweilige Zahl434 der reservierten Warteschlange größer als der reservierte Schwellenwert418 sein. Die Verarbeitung wird mit Schritt516 fortgesetzt. - In Schritt
516 aktualisiert die Pool-Zählerlogik302 durch Dekrementieren des Insgesamt-frei-Zählers402 um das Gesamt-Inkrement/Dekrement404 die Gesamtzahl der freien Puffer in dem gemeinsam genutzten Speicher108 . Die Verarbeitung wird mit Schritt526 fortgesetzt. - In Schritt
518 ist kein Puffer im gemeinsam genutzten Speicher108 verfügbar. Der Ausgangsport112 hat sämtliche Puffer aus dem jeweiligen reservierten Pool202 genutzt, während alle Puffer in dem gemeinsam genutzten Pool202 in Gebrauch sind. Das empfangene Datenpaket wird fallen gelassen. Die Verarbeitung ist abgeschlossen. - In Schritt
520 ist das empfangene Datenpaket ein IP-Mehrpunktverbindungs-Datenpaket. Somit muss ein Puffer aus dem Mehrpunktverbindungs-Pool204 zugeordnet werden. Die Pool-Zählerlogik302 bestimmt, ob ein Puffer in dem Mehrpunktverbindungs-Pool204 verfügbar ist. Ein Puffer ist verfügbar, wenn die Mehrpunktverbindungszahl420 größer als null ist. Falls das der Fall ist, wird die Verarbeitung mit Schritt522 fortgesetzt. Falls nicht, wird die Verarbeitung mit Schritt518 fortgesetzt. - In Schritt
522 aktualisiert die Pool-Zählerlogik302 durch Dekrementieren des Mehrpunktverbindungs-frei-Zählers416 um das Mehrpunktverbindungs-Inkrement/Dekrement410 die Anzahl der in dem Mehrpunktverbindungs-Pool204 verfügbaren Puffer. Die Verarbeitung wird mit Schritt524 fortgesetzt. - In Schritt
524 setzt die Pool-Zählerlogik302 das Mehrpunktverbindungs-Identifizierungskennzeichen310 , um anzugeben, dass der Puffer für ein IP-Mehrpunktverbindungs-Datenpaket zuzuordnen ist. Das Mehrpunktverbindungs-Identifizierungszeichen310 wird mit dem Zeiger auf den zugeordneten Puffer in dem gemeinsam genutzten Speicher108 gespeichert, der in einer (nicht gezeigten) Ausgangsport-Warteschlange gespeichert ist, die jedem Ausgangsport112 zugeordnet ist, an den das IP-Mehrpunktverbindungs-Datenpaket weiterzuleiten ist. Die Verarbeitung wird mit Schritt526 fortgesetzt. - In Schritt
526 ist ein Puffer für die Zuordnung verfügbar. Die Pool-Zählerlogik302 gibt über buffer_available an, dass ein Puffer zum Speichern des empfangenen Datenpakets308 verfügbar ist. Die Verarbeitung ist abgeschlossen. -
6 ist ein Ablaufplan, der die Schritte zum Zurückgeben eines Puffers an einen in der in3 gezeigten Pool-Zählerlogik302 implementierten Pool zeigt. - In Schritt
600 wartet die Pool-Zählerlogik302 auf eine Benachrichtigung über einen an den gemeinsam genutzten Speicher108 zurückzugebenden Puffer von der Ausgangsportsmaschine110 . Die Ausgangsportsmaschine110 plant über das an den Paketablagemanager106 weitergeleitete Auswählen120 die Weiterleitung eines gespeicherten Datenpakets an einen Ausgangsport112 . Die Ausgangsportsmaschine110 enthält für jeden Ausgangsport112 eine (nicht gezeigte) Ausgangsport-Warteschlange. Die Ausgangsport-Warteschlange speichert Zeiger auf zugeordnete Puffer im gemeinsam genutzten Speicher108 . Nachdem die Ausgangsportsmaschine110 das Datenpaket weitergeleitet hat, kann der Puffer freigegeben werden. Falls der Puffer freizugeben ist, wird die Verarbeitung mit Schritt602 fortgesetzt. Falls nicht, wird die Verarbeitung mit Schritt602 fortgesetzt. - In Schritt
602 gibt das mit dem Zeiger des freizugebenden Puffers gespeicherte Mehrpunktverbindungs-Identifizierungszeichen126 an, ob der Puffer aus dem Mehrpunktverbindungs-Pool204 zugeordnet wurde. Falls der Puffer aus dem Mehrpunktverbindungs-Pool zugeordnet wurde, wird die Verarbeitung mit Schritt605 fortgesetzt. Falls nicht, wird die Verarbeitung mit Schritt604 fortgesetzt. - In Schritt
604 bestimmt die Pool-Zählerlogik302 , ob der Puffer an den gemeinsam genutzten Pool200 oder an einen Port-Reserve-Pool202 zurückzugeben ist. Die Pool-Zählerlogik302 untersucht die Zahl434 der reservierten Warteschlange, die dem Ausgangsport112 zugeordnet ist, an den das Datenpaket weitergeleitet wurde. Falls die jeweilige Zahl434 der reservierten Warteschlange größer als der reservierte Schwellenwert418 ist, ist der Puffer an den gemeinsam genutzten Pool200 zurückzugeben, wobei die Verarbeitung mit Schritt610 fortgesetzt wird. Falls die jeweilige Zahl der reservierten Warteschlange kleiner als der reservierte Schwellenwert418 ist, wird der Puffer an den jeweiligen reservierten Pool202 zurückgegeben und die Verarbeitung mit Schritt608 fortgesetzt. - In Schritt
605 bestimmt die Pool-Zählerlogik302 , ob eine Kopie des IP-Mehrpunktverbindungspakets an alle Mitglieder der IP-Mehrpunktverbindungsgruppe weitergeleitet worden ist. Das an dem Eingangsport102 (1 ) empfangene IP-Mehrpunktverbindungs-Datenpaket wird in dem gemeinsam genutzten Speicher108 (1 ) gespeichert, bis das IP-Mehrpunktverbindungs-Datenpaket an alle Mitglieder der IP-Mehrpunktverbindungsgruppe weitergeleitet worden ist. Nachdem das letzte IP-Mehrpunktverbindungs-Datenpaket weitergeleitet worden ist, kann der Puffer in dem gemeinsam genutzten Speicher106 , der das IP-Mehrpunktverbindungs-Datenpaket speichert, an den IP-Mehrpunktverbindungs-Pool204 zurückgegeben werden. - Um zu bestimmen, ob eine Kopie des IP-Mehrpunktverbindungs-Datenpakets an alle Mitglieder der IP-Mehrpunktverbindungsgruppe weitergeleitet worden ist, wird die Anzahl der (nicht gezeigten) Portwarteschlangen, in die das IP-Mehrpunktverbindungs-Datenpaket eingereiht worden ist, in einem (nicht gezeigten) Portwarteschlangen-Zählerregister gespeichert. Das Zählerregister wird jedes Mal dekrementiert, wenn eine Kopie des IP-Mehrpunktverbindungs-Datenpakets an den Ausgangsport
110 weitergeleitet wird (1 ). Die Anzahl der Port-Warteschlangen wird aus dem Weiterleitungsvektor114 bestimmt. - Falls eine Kopie des IP-Mehrpunktverbindungs-Datenpakets an alle Mitglieder der IP-Mehrpunktverbindungsgruppe weitergeleitet worden ist, wird die Verarbeitung mit Schritt
606 fortgesetzt. Falls nicht, wird die Verarbeitung mit Schritt600 fortgesetzt. - In Schritt
606 aktualisiert die Pool-Zählerlogik302 durch Inkrementieren des Mehrpunktverbindungs-frei-Zählers416 um das Mehrpunktverbindungs-Inkrement/Dekrement410 die Anzahl der Puffer, die in dem Mehrpunktverbindungs-Pool204 verfügbar sind. Die Verarbeitung wird mit Schritt614 fortgesetzt. - In Schritt
608 aktualisiert die Pool-Zählerlogik302 durch Inkrementieren des Reserviert-frei-Zählers428 um das Reserviert-Inkrement/Dekrement436 die Anzahl der in den reservierten Pools202 verwendeten Puffern. Die Verarbeitung wird mit Schritt612 fortgesetzt. - In Schritt
610 aktualisiert die Pool-Zählerlogik302 durch Inkrementieren des Gemeinsam-genutzt-frei-Zählers400 durch das Gemeinsam-Genutzt-Inkrement/Dekrement422 die Anzahl der Puffer, die in dem gemeinsam genutzten Pool200 verfügbar sind. Die Verarbeitung wird mit Schritt612 fortgesetzt - In Schritt
612 aktualisiert die Pool-Zählerlogik302 durch Dekrementieren des jeweiligen Zählers414 des Reserve-Pools des Ports um reservierten Pools des Ports durch das Warteschlangen-Inkrement/Dekrement426 die Anzahl der Puffer, die von den Ausgangsports verwendet werden. Der jeweilige Zähler414 des reservierten Pools des Ports wird je nach Zustand des weitergeleiteten Auswählens von der Ausgangsportsmaschine110 ausgewählt. Die Verarbeitung wird mit Schritt614 fortgesetzt. - In Schritt
614 aktualisiert die Pool-Zählerlogik302 durch Inkrementieren des Insgesamt-frei-Zählers402 durch das Gesamt-Inkrement/Dekrement404 die Gesamtzahl der Puffer, die in dem gemeinsam genutzten Speicher108 verfügbar sind. Die Verarbeitung wird mit Schritt616 fortgesetzt. - In Schritt
616 wird der Puffer durch Hinzufügen eines Zeigers auf den Puffer zu einer Frei-Liste freigegeben. Die Verarbeitung ist abgeschlossen. - Obgleich diese Erfindung insbesondere in Bezug auf ihre bevorzugten Ausführungsformen gezeigt und beschrieben wurde, ist für den Fachmann auf dem Gebiet selbstverständlich, dass daran verschiedene Änderungen in Bezug auf die Form und die Einzelheiten vorgenommen werden können, ohne von dem Umfang der Erfindung, den die beigefügten Ansprüche umfassen, abzuweichen.
Claims (21)
- Vermittlung, umfassend: einen reservierten Pool von Puffern in einem gemeinsam genutzten Speicher, wobei der reservierte Pool von Puffern für einen Ausgangsport reserviert ist; einen gemeinsam genutzten Pool von Puffern in dem gemeinsam genutzten Speicher, wobei der gemeinsam genutzte Pool von Puffern von mehreren Ausgangsports gemeinsam genutzt wird; und eine Pool-Auswahllogik, die aus dem reservierten Pool einen freien Puffer zum Zuordnen auswählt, um von einem Eingangsport empfangene Daten, die an den Ausgangsport weiterzuleiten sind, zu speichern, während sie die Zuordnung des ausgewählten Puffers aufhebt, nachdem die Daten an den Ausgangsport weitergeleitet worden sind; gekennzeichnet durch einen Mehrpunktverbindungs-Pool von Puffern in einem gemeinsam genutzten Speicher, der von mehreren Ausgangsports gemeinsam genutzt wird.
- Vermittlung nach
Anspruch 1 , bei der die Pool-Auswahllogik beim Erfassen keines freien Puffers in dem reservierten Pool einen freien Puffer in dem gemeinsam genutzten Pool auswählt. - Vermittlung nach
Anspruch 1 , bei der die Pool-Auswahllogik beim Erfassen eines von einem Eingangsport empfangenen IP-Mehrpunktverbindungs-Datenpakets einen freien Puffer aus dem Mehrpunktverbindungs-Pool auswählt. - Vermittlung nach
Anspruch 1 , ferner umfassend: einen Insgesamt-frei-Zähler, der die Anzahl freier Puffer in dem gemeinsam genutzten Speicher speichert, wobei der Insgesamt-frei-Zähler auf die Gesamtzahl der Puffer in dem gemeinsam genutzten Speicher voreingestellt ist, wobei die Summe der Puffer in dem Mehrpunktverbindungs-Pool, in dem reservierten Pool und in dem gemeinsam genutzten Pool größer als die Gesamtzahl der Puffer in dem gemeinsam genutzten Speicher ist. - Vermittlung nach
Anspruch 1 , ferner umfassend: einen Insgesamt-frei-Zähler, der die Anzahl freier Puffer in dem gemeinsam genutzten Speicher speichert, wobei der Insgesamt-frei-Zähler auf die Gesamtzahl der Puffer in dem gemeinsam genutzten Speicher voreingestellt ist, wobei die Summe der Puffer in dem Mehrpunktverbindungs-Pool, in dem reservierten Pool und in dem gemeinsam genutzten Pool gleich der Gesamtzahl der Puffer in dem gemeinsam genutzten Speicher ist. - Vermittlung nach
Anspruch 5 , bei der die Pool-Auswahllogik die Verfügbarkeit eines freien Puffers in dem gemeinsam genutzten Speicher je nach der Anzahl freier Puffer in dem gemeinsam genutzten Speicher bestimmt, die in dem Insgesamt-frei-Zähler gespeichert ist. - Vermittlung nach Anspruch bei der die Pool-Auswahllogik die Verfügbarkeit eines freien Puffers in dem gemeinsam genutzten Speicher je nach der Anzahl freier Puffer in dem gemeinsam genutzten Speicher bestimmt, die in dem Insgesamt-frei-Zähler gespeichert ist.
- Vermittlung, umfassend: einen reservierten Pool von Puffern in einem gemeinsam genutzten Speicher, wobei der reservierte Pool von Puffern für einen Ausgangsport reserviert ist; einen gemeinsam genutzten Pool von Puffern in dem gemeinsam genutzten Speicher, wobei der gemeinsam genutzte Pool von Puffern von mehreren Ausgangsports gemeinsam genutzt wird; eine Einrichtung zum Auswählen eines freien Puffers zum Zuordnen aus dem reservierten Pool zum Speichern von Daten, die von einem Eingangsport empfangen worden sind, um sie an den Ausgangsport weiterzuleiten; und eine Einrichtung zum Aufheben der Zuordnung des ausgewählten Puffers, nachdem die Daten weitergeleitet worden sind, gekennzeichnet durch einen Mehrpunktverbindungs-Pool von Puffern in einem gemeinsam genutzten Speicher, der von mehreren Ausgangsports gemeinsam genutzt wird.
- Vermittlung nach
Anspruch 8 , bei der die Einrichtung zum Auswählen beim Erfassen keines freien Puffers in dem reservierten Pool einen freien Puffer in dem gemeinsam genutzten Pool auswählt. - Vermittlung nach
Anspruch 8 , bei der die Einrichtung zum Auswählen beim Erfassen eines von einem Eingangsport empfangenen IP-Mehrpunktverbindungs-Datenpakets einen freien Puffer aus dem Mehrpunktverbindungs-Pool auswählt. - Vermittlung nach
Anspruch 10 , ferner umfassend: eine Einrichtung zum Zählen der Anzahl freier Puffer in dem gemeinsam genutzten Speicher, wobei die Einrichtung zum Zählen auf die Gesamtzahl der Puffer in dem gemeinsam genutzten Speicher voreingestellt ist, wobei die Summe der Puffer in dem Mehrpunktverbindungs-Pool, in dem reservierten Pool und in dem gemeinsam genutzten Pool größer als die Gesamtzahl der Puffer in dem gemeinsam genutzten Speicher ist. - Vermittlung nach
Anspruch 10 , ferner umfassend: eine Einrichtung zum Zählen der Anzahl freier Puffer in dem gemeinsam genutzten Speicher, wobei die Einrichtung zum Zählen auf die Gesamtzahl der Puffer in dem gemeinsam genutzten Speicher voreingestellt ist, wobei die Summe der Puffer in dem Mehrpunktverbindungs-Pool, in dem reservierten Pool und in dem gemeinsam genutzten Pool gleich der Gesamtzahl der Puffer in dem gemeinsam genutzten Speicher ist. - Vermittlung nach
Anspruch 11 , bei der die Einrichtung zum Auswählen eines freien Puffers die Verfügbarkeit eines freien Puffers in dem gemeinsam genutzten Speicher je nach der Anzahl freier Puffer in dem gemeinsam genutzten Speicher bestimmt, die in der Einrichtung zum Zählen gespeichert ist. - Vermittlung nach
Anspruch 12 , bei der die Einrichtung zum Auswählen eines freien Puffers die Verfügbarkeit eines freien Puffers in dem gemeinsam genutzten Speicher je nach der Anzahl freier Puffer in dem gemeinsam genutzten Speicher bestimmt, die in der Einrichtung zum Zählen gespeichert ist. - Verfahren für das Management eines gemeinsam genutzten Speichers in einer Vermittlung, das die folgenden Schritte umfasst: Bereitstellen eines reservierten Pools von Puffern in dem gemeinsam genutzten Speicher, wobei der reservierte Pool von Puffern für einen Ausgangsport reserviert ist; Bereitstellen eines gemeinsam genutzten Pools von Puffern in dem gemeinsam genutzten Speicher, wobei der gemeinsam genutzte Pool von Puffern von mehreren Ausgangsports gemeinsam genutzt wird; Auswählen eines freien Puffers zum Zuordnen aus dem reservierten Pool zum Speichern von Daten, die von einem Eingangsport empfangen werden, um an den Ausgangsport weitergeleitet zu werden; und Aufheben der Zuordnung des ausgewählten Puffers, nachdem die Daten an den Ausgangsport weitergeleitet worden sind; gekennzeichnet durch Bereitstellen eines Mehrpunktverbindungs-Pools von Puffern in einem gemeinsam genutzten Speicher, der von mehreren Ausgangsports gemeinsam genutzt wird.
- Verfahren nach
Anspruch 15 , bei dem der Schritt des Auswählens beim Erfassen keines freien Puffers in dem reservierten Pool einen freien Puffer in dem gemeinsam genutzten Pool auswählt. - Verfahren nach
Anspruch 15 , bei dem der Schritt des Auswählens beim Erfassen eines von einem Eingangsport empfangenen IP-Mehrpunktverbindungs-Datenpakets einen freien Puffer aus dem Mehrpunktverbindungs-Pool auswählt. - Verfahren nach
Anspruch 17 , ferner umfassend: Bereitstellen eines Insgesamt-frei-Zählers zum Zählen der Anzahl freier Puffer in dem gemeinsam genutzten Speicher, wobei der Ingesamt-frei-Zähler auf die Gesamtzahl der Puffer in dem gemeinsam genutzten Speicher voreingestellt ist, wobei die Summe der Puffer in dem Mehrpunktverbindungs-Pool, in dem reservierten Pool und in dem gemeinsam genutzten Pool größer als die Gesamtzahl der Puffer in dem gemeinsam genutzten Speicher ist. - Verfahren nach
Anspruch 17 , ferner umfassend: Bereitstellen eines Insgesamt-frei-Zählers zum Zählen der Anzahl freier Puffer in dem gemeinsam genutzten Speicher, wobei der Insgesamt-frei-Zähler auf die Gesamtzahl der Puffer in dem gemeinsam genutzten Speicher voreingestellt ist, wobei die Summe der Puffer in dem Mehrpunktverbindungs-Pool, in dem reservierten Pool und in dem gemeinsam genutzten Pool gleich der Gesamtzahl der Puffer in dem gemeinsam genutzten Speicher ist. - Verfahren nach
Anspruch 18 , ferner den folgenden Schritt umfassend: Bestimmen der Verfügbarkeit eines freien Puffers in dem gemeinsam genutzten Speicher je nach der Anzahl freier Puffer in dem gemeinsam genutzten Speicher, die in dem Insgesamt-frei-Zähler gespeichert ist. - Verfahren nach
Anspruch 19 ferner den folgenden Schritt umfassend: Bestimmen der Verfügbarkeit eines freien Puffers in dem gemeinsam genutzten Speicher je nach der Anzahl freier Puffer in dem gemeinsam genutzten Speicher, die in dem Insgesamt-frei-Zähler gespeichert ist.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/624,276 | 2000-07-24 | ||
US09/624,276 US7007071B1 (en) | 2000-07-24 | 2000-07-24 | Method and apparatus for reducing pool starvation in a shared memory switch |
PCT/CA2001/001049 WO2002009364A2 (en) | 2000-07-24 | 2001-07-20 | Method and apparatus for reducing pool starvation in a shared memory switch |
Publications (2)
Publication Number | Publication Date |
---|---|
DE10196447T1 DE10196447T1 (de) | 2003-09-11 |
DE10196447B4 true DE10196447B4 (de) | 2020-04-23 |
Family
ID=24501343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10196447.1T Expired - Lifetime DE10196447B4 (de) | 2000-07-24 | 2001-07-20 | Verfahren und Vorrichtung zum Verringern der Erschöpfung des Pools in einer Vermittlung mit gemeinsam genutztem Speicher |
Country Status (8)
Country | Link |
---|---|
US (7) | US7007071B1 (de) |
KR (1) | KR100812750B1 (de) |
CN (1) | CN100373885C (de) |
AU (1) | AU2001276216A1 (de) |
CA (2) | CA2415952C (de) |
DE (1) | DE10196447B4 (de) |
GB (1) | GB2380354B (de) |
WO (1) | WO2002009364A2 (de) |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7120117B1 (en) * | 2000-08-29 | 2006-10-10 | Broadcom Corporation | Starvation free flow control in a shared memory switching device |
US7007071B1 (en) * | 2000-07-24 | 2006-02-28 | Mosaid Technologies, Inc. | Method and apparatus for reducing pool starvation in a shared memory switch |
US7203193B2 (en) * | 2001-07-17 | 2007-04-10 | Alcatel Lucent | In-band message synchronization for distributed shared memory packet switch |
US7283470B1 (en) | 2002-01-25 | 2007-10-16 | Juniper Networks, Inc. | Systems and methods for dropping data using a drop profile |
US8078763B1 (en) | 2002-04-04 | 2011-12-13 | Juniper Networks, Inc. | Dequeuing and congestion control systems and methods for single stream multicast |
US7209440B1 (en) * | 2002-05-07 | 2007-04-24 | Marvell International Ltd. | Method and apparatus for preventing blocking in a quality of service switch |
US7110415B1 (en) | 2002-05-17 | 2006-09-19 | Marvell International Ltd. | Apparatus and method for dynamically limiting output queue size in a quality of service network |
US6985916B2 (en) * | 2002-08-29 | 2006-01-10 | International Business Machines Corporation | Method, system, and article of manufacture for returning physical volumes |
EP1616415B1 (de) | 2003-04-22 | 2009-06-03 | Agere Systems Inc. | Verfahren und vorrichtung für einen gemeinsam benutzten mehrbankspeicher |
US7688736B1 (en) | 2003-05-05 | 2010-03-30 | Marvell International Ltd | Network switch with quality of service flow control |
US7716364B2 (en) * | 2003-06-27 | 2010-05-11 | Broadcom Corporation | Internet protocol multicast replication |
US7953086B2 (en) * | 2003-06-27 | 2011-05-31 | Broadcom Corporation | Compression of datagram distribution information |
US20050036445A1 (en) * | 2003-08-14 | 2005-02-17 | Lee Chien-Hsin | Processing data packets |
US7515584B2 (en) | 2003-09-19 | 2009-04-07 | Infineon Technologies Ag | Switching data packets in an ethernet switch |
US7539190B2 (en) * | 2004-01-05 | 2009-05-26 | Topside Research, Llc | Multicasting in a shared address space |
US20050157719A1 (en) * | 2004-01-20 | 2005-07-21 | Robotham Robert E. | Method and apparatus for multicasting of cell or frame data |
KR20050088853A (ko) * | 2004-03-03 | 2005-09-07 | 엘지전자 주식회사 | 휴대단말기의 동적 메모리 관리장치 및 방법 |
US7916743B2 (en) * | 2004-11-17 | 2011-03-29 | Jinsalas Solutions, Llc | System and method for improved multicast performance |
US7522622B2 (en) * | 2005-02-18 | 2009-04-21 | Broadcom Corporation | Dynamic color threshold in a queue |
US20070147404A1 (en) * | 2005-12-27 | 2007-06-28 | Lucent Technologies, Inc. | Method and apparatus for policing connections using a leaky bucket algorithm with token bucket queuing |
CN1964345B (zh) * | 2006-09-25 | 2010-06-30 | 杭州华三通信技术有限公司 | 组播流的处理方法及网络设备 |
US7949815B2 (en) * | 2006-09-27 | 2011-05-24 | Intel Corporation | Virtual heterogeneous channel for message passing |
US8050263B1 (en) * | 2006-10-11 | 2011-11-01 | Marvell International Ltd. | Device and process for efficient multicasting |
US7711900B2 (en) * | 2007-03-05 | 2010-05-04 | International Business Machines Corporation | Method, system and program product for equitable sharing of a CAM table in a network switch in an on-demand environment |
US8532117B2 (en) * | 2008-02-13 | 2013-09-10 | Broadcom Corporation | Flexible buffer allocation entities for traffic aggregate containment |
US8619558B1 (en) * | 2008-07-21 | 2013-12-31 | Qlogic, Corporation | Memory management in a network adapter |
US8526326B1 (en) * | 2008-08-27 | 2013-09-03 | Juniper Networks, Inc. | Lock-less access of pre-allocated memory buffers used by a network device |
US9461930B2 (en) | 2009-04-27 | 2016-10-04 | Intel Corporation | Modifying data streams without reordering in a multi-thread, multi-flow network processor |
US8917738B2 (en) * | 2009-04-27 | 2014-12-23 | Lsi Corporation | Multicasting traffic manager in a network communications processor architecture |
EP2517406B1 (de) | 2009-12-23 | 2015-06-17 | Citrix Systems Inc. | Systeme und verfahren für gemischte modi aus ipv6- und ipv4-dns für globalen serverlastenausgleich |
US9098335B2 (en) * | 2009-12-23 | 2015-08-04 | Citrix Systems, Inc. | Systems and methods for managing spillover limits in a multi-core system |
US8825859B2 (en) * | 2009-12-23 | 2014-09-02 | Citrix Systems, Inc. | System and methods for mixed mode of IPv6 and IPv4 DNS of global server load balancing |
CN101873326B (zh) * | 2010-06-24 | 2013-03-06 | 北京安天电子设备有限公司 | 一种基于有序包的迭代式病毒检测方法 |
DE102010033432B3 (de) * | 2010-08-04 | 2012-04-05 | Harting Electric Gmbh & Co. Kg | Verfahren zur Übermittlung von Multicast-Datenpaketen durch einen Switch |
CN102185725A (zh) * | 2011-05-31 | 2011-09-14 | 北京星网锐捷网络技术有限公司 | 一种缓存的管理方法、装置和网络交换设备 |
US8984222B2 (en) | 2011-09-09 | 2015-03-17 | Lsi Corporation | Methods and structure for task management in storage controllers of a clustered storage system |
US8630286B2 (en) * | 2011-09-30 | 2014-01-14 | Broadcom Corporation | System and method for improving multicast performance in banked shared memory architectures |
CN102497431B (zh) * | 2011-12-13 | 2014-10-22 | 曙光信息产业(北京)有限公司 | 一种tcp连接缓存应用数据的内存申请方法和系统 |
US8665725B2 (en) * | 2011-12-20 | 2014-03-04 | Broadcom Corporation | System and method for hierarchical adaptive dynamic egress port and queue buffer management |
US8891540B2 (en) | 2012-05-14 | 2014-11-18 | Juniper Networks, Inc. | Inline network address translation within a mobile gateway router |
US8995455B1 (en) * | 2012-11-15 | 2015-03-31 | Qlogic, Corporation | Memory devices for network devices and associated methods |
US9100313B1 (en) * | 2012-12-10 | 2015-08-04 | Cisco Technology, Inc. | Shared egress buffer in a multi-stage switch |
CN104124962B (zh) * | 2013-04-25 | 2017-07-07 | 联发科技股份有限公司 | 多阶复制计数器存储装置及用来管理多播封包处理的方法 |
US9521007B2 (en) | 2013-04-25 | 2016-12-13 | Mediatek Inc. | Multi-level replication counter storage device for multicast packet processing and related method for managing multicast packet processing |
US10057194B1 (en) * | 2014-01-07 | 2018-08-21 | Marvell Israel (M.I.S.L) Ltd. | Methods and apparatus for memory resource management in a network device |
US10050896B2 (en) * | 2014-11-14 | 2018-08-14 | Cavium, Inc. | Management of an over-subscribed shared buffer |
US9952776B1 (en) * | 2015-07-24 | 2018-04-24 | EMC IP Holding Company LLC | Automatic non-disruptive congestion control of a fabric in a data storage system |
US9965211B2 (en) | 2016-09-08 | 2018-05-08 | Cisco Technology, Inc. | Dynamic packet buffers with consolidation of low utilized memory banks |
CN109218387A (zh) * | 2018-07-02 | 2019-01-15 | 佛山科学技术学院 | 一种共享存储池的存储方法 |
US11171884B2 (en) | 2019-03-13 | 2021-11-09 | Mellanox Technologies Tlv Ltd. | Efficient memory utilization and egress queue fairness |
US11789858B2 (en) * | 2020-08-11 | 2023-10-17 | Samsung Electronics Co., Ltd. | Method and system for performing read/write operation within a computing system hosting non-volatile memory |
GB2612619B (en) * | 2021-11-05 | 2024-02-21 | Graphcore Ltd | Fair arbitration between multiple sources targeting a destination |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5724358A (en) | 1996-02-23 | 1998-03-03 | Zeitnet, Inc. | High speed packet-switched digital switch and method |
US6711170B1 (en) | 1999-08-31 | 2004-03-23 | Mosaid Technologies, Inc. | Method and apparatus for an interleaved non-blocking packet buffer |
US6754211B1 (en) | 1999-12-01 | 2004-06-22 | Mosaid Technologies, Inc. | Method and apparatus for wire speed IP multicast forwarding |
US7236489B1 (en) | 2000-04-27 | 2007-06-26 | Mosaid Technologies, Inc. | Port packet queuing |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3278865B2 (ja) * | 1991-06-28 | 2002-04-30 | 日本電気株式会社 | トラヒック制御方法 |
US6151301A (en) * | 1995-05-11 | 2000-11-21 | Pmc-Sierra, Inc. | ATM architecture and switching element |
US20030037096A1 (en) * | 1995-04-07 | 2003-02-20 | Ruey Kao | Method and apparatus for the management of queue pointers by multiple processors in a digital communications network |
JP2001519973A (ja) | 1995-07-19 | 2001-10-23 | フジツウ ネットワーク コミュニケーションズ,インコーポレイテッド | 共用バッファへの優先度付きアクセス |
US5991295A (en) * | 1995-10-10 | 1999-11-23 | Madge Networks Limited | Digital switch |
US5838994A (en) * | 1996-01-11 | 1998-11-17 | Cisco Technology, Inc. | Method and apparatus for the dynamic allocation of buffers in a digital communications network |
US6219728B1 (en) * | 1996-04-22 | 2001-04-17 | Nortel Networks Limited | Method and apparatus for allocating shared memory resources among a plurality of queues each having a threshold value therefor |
US6049546A (en) * | 1996-10-15 | 2000-04-11 | At&T Corporation | System and method for performing switching in multipoint-to-multipoint multicasting |
US6046982A (en) * | 1997-03-18 | 2000-04-04 | Cabletron Systems, Inc. | Method and apparatus for reducing data loss in data transfer devices |
US6021132A (en) * | 1997-06-30 | 2000-02-01 | Sun Microsystems, Inc. | Shared memory management in a switched network element |
US6487202B1 (en) * | 1997-06-30 | 2002-11-26 | Cisco Technology, Inc. | Method and apparatus for maximizing memory throughput |
US6216167B1 (en) * | 1997-10-31 | 2001-04-10 | Nortel Networks Limited | Efficient path based forwarding and multicast forwarding |
US7145868B2 (en) * | 1997-11-28 | 2006-12-05 | Alcatel Canada Inc. | Congestion management in a multi-port shared memory switch |
US6456590B1 (en) * | 1998-02-13 | 2002-09-24 | Texas Instruments Incorporated | Static and dynamic flow control using virtual input queueing for shared memory ethernet switches |
US6320861B1 (en) * | 1998-05-15 | 2001-11-20 | Marconi Communications, Inc. | Hybrid scheme for queuing in a shared memory ATM switch buffer |
US6920146B1 (en) * | 1998-10-05 | 2005-07-19 | Packet Engines Incorporated | Switching device with multistage queuing scheme |
US6147969A (en) * | 1998-10-14 | 2000-11-14 | Lucent Technologies Inc. | Flow control method for ABR service in an asynchronous transfer mode network |
US6625159B1 (en) * | 1998-11-30 | 2003-09-23 | Hewlett-Packard Development Company, L.P. | Nonblocking and fair queuing switching method and shared memory packet switch |
TW444478B (en) * | 1998-12-10 | 2001-07-01 | Ind Tech Res Inst | Ethernet switch IC with shared memory structure and its network |
US6535963B1 (en) * | 1999-06-30 | 2003-03-18 | Cisco Technology, Inc. | Memory apparatus and method for multicast devices |
US6501757B1 (en) * | 2000-02-29 | 2002-12-31 | Centre For Development Of Telematics | ATM switch |
US6657962B1 (en) * | 2000-04-10 | 2003-12-02 | International Business Machines Corporation | Method and system for managing congestion in a network |
US7007071B1 (en) * | 2000-07-24 | 2006-02-28 | Mosaid Technologies, Inc. | Method and apparatus for reducing pool starvation in a shared memory switch |
-
2000
- 2000-07-24 US US09/624,276 patent/US7007071B1/en not_active Expired - Lifetime
-
2001
- 2001-07-20 WO PCT/CA2001/001049 patent/WO2002009364A2/en active Application Filing
- 2001-07-20 DE DE10196447.1T patent/DE10196447B4/de not_active Expired - Lifetime
- 2001-07-20 GB GB0301250A patent/GB2380354B/en not_active Expired - Lifetime
- 2001-07-20 AU AU2001276216A patent/AU2001276216A1/en not_active Abandoned
- 2001-07-20 CN CNB018133061A patent/CN100373885C/zh not_active Expired - Lifetime
- 2001-07-20 CA CA2415952A patent/CA2415952C/en not_active Expired - Fee Related
- 2001-07-20 CA CA2700321A patent/CA2700321C/en not_active Expired - Fee Related
- 2001-07-20 KR KR1020037001038A patent/KR100812750B1/ko active IP Right Grant
-
2005
- 2005-12-29 US US11/323,814 patent/US7403976B2/en not_active Expired - Lifetime
-
2008
- 2008-06-13 US US12/139,007 patent/US7743108B2/en not_active Expired - Fee Related
-
2010
- 2010-05-07 US US12/775,696 patent/US7996485B2/en not_active Expired - Fee Related
-
2011
- 2011-08-05 US US13/204,145 patent/US8630304B2/en not_active Expired - Fee Related
-
2013
- 2013-12-05 US US14/097,614 patent/US9083659B2/en not_active Expired - Fee Related
-
2015
- 2015-07-08 US US14/794,020 patent/US9769080B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5724358A (en) | 1996-02-23 | 1998-03-03 | Zeitnet, Inc. | High speed packet-switched digital switch and method |
US6711170B1 (en) | 1999-08-31 | 2004-03-23 | Mosaid Technologies, Inc. | Method and apparatus for an interleaved non-blocking packet buffer |
US6754211B1 (en) | 1999-12-01 | 2004-06-22 | Mosaid Technologies, Inc. | Method and apparatus for wire speed IP multicast forwarding |
US7236489B1 (en) | 2000-04-27 | 2007-06-26 | Mosaid Technologies, Inc. | Port packet queuing |
Also Published As
Publication number | Publication date |
---|---|
GB0301250D0 (en) | 2003-02-19 |
US20100250699A1 (en) | 2010-09-30 |
US20060259572A1 (en) | 2006-11-16 |
DE10196447T1 (de) | 2003-09-11 |
KR100812750B1 (ko) | 2008-03-12 |
AU2001276216A1 (en) | 2002-02-05 |
CA2415952A1 (en) | 2002-01-31 |
CN100373885C (zh) | 2008-03-05 |
US7403976B2 (en) | 2008-07-22 |
GB2380354A (en) | 2003-04-02 |
US8630304B2 (en) | 2014-01-14 |
WO2002009364A3 (en) | 2002-09-06 |
US20150365333A1 (en) | 2015-12-17 |
WO2002009364A2 (en) | 2002-01-31 |
GB2380354B (en) | 2004-01-14 |
US20080250116A1 (en) | 2008-10-09 |
US7996485B2 (en) | 2011-08-09 |
US7007071B1 (en) | 2006-02-28 |
US20110286455A1 (en) | 2011-11-24 |
US9769080B2 (en) | 2017-09-19 |
US7743108B2 (en) | 2010-06-22 |
CA2700321C (en) | 2014-12-09 |
US9083659B2 (en) | 2015-07-14 |
CA2700321A1 (en) | 2002-01-31 |
CA2415952C (en) | 2011-01-04 |
KR20030019608A (ko) | 2003-03-06 |
CN1444812A (zh) | 2003-09-24 |
US20140092743A1 (en) | 2014-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10196447B4 (de) | Verfahren und Vorrichtung zum Verringern der Erschöpfung des Pools in einer Vermittlung mit gemeinsam genutztem Speicher | |
DE60119866T2 (de) | Vermittlungseinrichtung und verfahren mit getrennten Ausgangspuffern | |
DE69733703T2 (de) | Puffer von Mehrfachsendezellen in Vermittlungsnetzen | |
DE69726995T2 (de) | Mehrfachsende-Leitweglenkung in mehrstufigen Netzen | |
DE69827053T2 (de) | Verfahren zur Zuteilung von Betriebsmitteln in einem digitalen Datenübertragungsnetzwerk | |
DE69634857T2 (de) | Ablaufsteuerung für eine informationspaketvermittlung | |
DE10296945B4 (de) | System und Verfahren zum differenzierten Warteschlangenbilden in einem Routing-System | |
DE69817328T2 (de) | Warteschlangenstruktur und -verfahren zur prioritätszuteilung von rahmen in einem netzwerkkoppelfeld | |
DE60203380T2 (de) | Verfahren und vorrichtung zur mehrfachsendung | |
DE10350504B4 (de) | Verfahren und Vorrichtung zum Festlegen bzw. Zuteilen einer verfügbaren Verknüpfungsbandbreite zwischen paketvermittelten Datenflüssen | |
DE69334005T2 (de) | Überlastregelung in Hochgeschwindigkeitsnetzen | |
DE69835330T2 (de) | Überlastungsverwaltung in einem Mehrtorigen-Vermittlungssystem mit gemeinsamen Speicher | |
DE69635379T2 (de) | Atm-drosselung | |
DE60110760T2 (de) | Auslese-ablaufsteuerung für nicht aufeinander-folgende daten | |
DE60214341T2 (de) | Vermittlungsanordnung und -verfahren mit getrennten ausgangspuffern | |
DE60219999T2 (de) | Taskverwaltungsverfahren für einen Router einer Paketvermittlungsstelle, die Teil eines gesicherten und Paketvermittelten Netzes ist | |
DE60302045T2 (de) | Verfahren und System zur geordneten dynamischen Verteilung von Paketströmen zwischen Netzwerkprozessoren | |
DE69738386T2 (de) | Verbesserungen in oder sich beziehend auf eine ATM-Vermittlungsstelle | |
DE102007038964A1 (de) | Verfahren und Vorrichtung zum Verarbeiten von Netzwerkdaten | |
EP0289087B1 (de) | Paketvermittlungssystem | |
EP1433352A1 (de) | Verteilte übermittlung von verkehrsströmen in kommunikationsnetzen | |
EP0351014A2 (de) | Koppelfeld für ein Vermittlungssystem | |
CH653783A5 (de) | Steuereinrichtung, insbesondere fuer fernsprechvermittlungsanlagen. | |
DE69838103T2 (de) | Verfahren zur Pufferverwaltung | |
DE10052904B4 (de) | Warteschlangenbildungsverfahren zur Weiterleitung von Paketen in Folge |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8128 | New person/name/address of the agent |
Representative=s name: DE ANNA, P., DR.-ING., 80336 MUENCHEN |
|
R016 | Response to examination communication | ||
R082 | Change of representative |
Representative=s name: VOSSIUS & PARTNER PATENTANWAELTE RECHTSANWAELT, DE Representative=s name: VOSSIUS & PARTNER, 81675 MUENCHEN, DE Representative=s name: VOSSIUS & PARTNER, DE |
|
R082 | Change of representative |
Representative=s name: VOSSIUS & PARTNER PATENTANWAELTE RECHTSANWAELT, DE |
|
R081 | Change of applicant/patentee |
Owner name: CONVERSANT INTELLECTUAL PROPERTY MANAGEMENT IN, CA Free format text: FORMER OWNER: MOSAID TECHNOLOGIES INCORPORATED, KANADA, ONTARIO, CA Effective date: 20141008 |
|
R082 | Change of representative |
Representative=s name: VOSSIUS & PARTNER PATENTANWAELTE RECHTSANWAELT, DE Effective date: 20111129 Representative=s name: VOSSIUS & PARTNER PATENTANWAELTE RECHTSANWAELT, DE Effective date: 20141008 |
|
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final | ||
R071 | Expiry of right |