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 PDF

Info

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
Application number
DE10196447.1T
Other languages
English (en)
Other versions
DE10196447T1 (de
Inventor
David A. Brown
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.)
Mosaid Technologies Inc
Original Assignee
Conversant Intellectual Property Management 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=24501343&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE10196447(B4) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Conversant Intellectual Property Management Inc filed Critical Conversant Intellectual Property Management Inc
Publication of DE10196447T1 publication Critical patent/DE10196447T1/de
Application granted granted Critical
Publication of DE10196447B4 publication Critical patent/DE10196447B4/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • 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/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/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
    • 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/9047Buffering 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

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; undeine 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.

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 in 1 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 in 1 gezeigten Paketablagemanager;
    • 4 ist ein Blockschaltplan der in 3 gezeigten Pool-Zähler;
    • 5 ist ein in der in 3 gezeigten Pool-Zählerlogik implementierter Ablaufplan, der die Schritte zum Auswählen eines Pools zeigt;
    • 6 ist ein in der in 3 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 Vermittlung 100 mit gemeinsam genutztem Speicher. Alle an den Eingangsports 102 empfangenen Daten werden im gemeinsam genutzten Speicher 108 gespeichert, bevor sie an einen oder an mehrere Ausgangsports 1120-n weitergeleitet werden. Der Paketablagemanager 106 steuert den Schreib- und Lesezugriff auf den gemeinsam genutzten Speicher 108. Der Paketablagemanager 106 enthält die Pool-Auswahllogik 124. Wie in 2 gezeigt ist, teilt die Pool-Auswahllogik 124 den gemeinsam genutzten Speicher 108 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 Speichers 108.
  • 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 Ausgangsport 112 kleiner als eine Reserviert-Schwellenwertzahl ist. Die Pool-Auswahllogik 124 wird später in Verbindung mit 2 beschrieben. Der Lese- und Schreibzugriff auf den gemeinsam genutzten Speicher 108 ist in der US 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 Eingangsportsmaschine 104 und eine Ausgangsportsmaschine 110. Ein Datenpaket wird seriell am Eingangsport 102 empfangen. Die Eingangsmaschine 104 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 Weiterleitungsvektor 114 für das Datenpaket. Der Weiterleitungsvektor 114 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 Weiterleitungsvektors 114 sind beschrieben in der US 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 Weiterleitungsvektor 114 wird an den Paketablagemanager 106 weitergeleitet.
  • Der Paketablagemanager 106 liefert die gemeinsam genutzten Speicheradressen 122 für Lese- und Schreiboperationen an den gemeinsam genutzten Speicher 108 und speichert die Plätze jedes in einer oder in mehreren (nicht gezeigten) Ausgangsport-Warteschlangen gespeicherten Datenpakets in dem gemeinsam genutzten Speicher 108. Ein Verfahren und eine Vorrichtung zur Bereitstellung von Ausgangsport-Warteschlangen ist beschrieben in der US 7 236 489 B1 , eingereicht am 27. April 2000, mit dem Titel „Port Packet Queuing“ von Richard M. Wyatt. Die Ausgangsmaschine 110 wählt über Auswählen 120 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 Eingangsports 102 empfangenen Datenpakete, um sie an irgendeinen der Ausgangsports 1120-n zu senden. Die Vermittlung 100 schafft eine gleichzeitige Verarbeitung der an den Eingangsports 102 empfangenen Datenpakete durch die Eingangsportmaschine 104 und der gespeicherten Datenpakete durch die Ausgangsportmaschine 110 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 Speicher 108 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 Vermittlung 100 unterstützten Netzprotokoll ab. Da die minimale Datenpaketgröße für ein Ethernet-Datenpaket 64 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 Vermittlung 100 leitet eine Kopie eines IP-Mehrpunktverbindungs-Datenpakets an jedes Mitglied der IP-Mehrpunktverbindungsgruppe weiter. Wie in der US 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 Speicher 108 gespeichert. Die Mitglieder der IP-Mehrpunktverbindungsgruppe können an denselben Ausgangsport 112 oder an mehr als einen Ausgangsport 112 angeschlossen sein. An einen Ausgangsport 112 werden mehrere Kopien des IP-Mehrpunktverbindungs-Datenpakets, eine für jedes an den Ausgangsport 112 angeschlossene Mitglied der IP-Mehrpunktverbindungsgruppe, weitergeleitet. Falls das empfangene Datenpaket ein IP-Mehrpunktverbindungs-Datenpaket ist, leitet die Eingangsportsmaschine 104 mit dem Weiterleitungsvektor 114 ein Mehrpunktverbindungs-Identifizierungskennzeichen 126 weiter, das angibt, dass das empfangene Datenpaket ein IP-Mehrpunktverbindungs-Datenpaket ist. Das Mehrpunktverbindungs-Identifizierungskennzeichen 126 gibt an, ob das empfangene Datenpaket ein IP-Mehrpunktverbindungs-Datenpaket ist. Das Mehrpunktverbindungs-Identifizierungskennzeichen 126 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 in 1 gezeigten gemeinsam genutzten Speichers 108, der logisch in einen gemeinsam genutzten Pool 200, in einen Mehrpunktverbindungs-Pool 204 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 Ausgangsport 112 zugeordnet werden. Der gemeinsam genutzte Pool 200 ist zum Speichern von Datenpaketen vorgesehen, die an irgendeinen der Ausgangsports 1120-n weiterzuleiten sind. Der Mehrpunktverbindungs-Pool 204 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 Pool 200 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 Speicher 108 gespeichert.
  • Da das gespeicherte IP-Mehrpunktverbindungs-Datenpaket an mehr als einen Ausgangsport 112 weitergeleitet werden kann, ist es schwierig, einen reservierten Pool 202 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 Pool 202 oder aus einem gemeinsam genutzten Pool 200 kommt. Die Anwesenheit eines getrennten Pools zum Speichern von IP-Mehrpunktverbindungs-Datenpaketen ermöglicht, dass eine Vermittlung 100 die Anzahl der Puffer-Betriebsmittel, die zum Speichern von IP-Mehrpunktverbindungs-Datenpaketen verbraucht werden können, begrenzt. Somit ist ein Mehrpunktverbindungs-Pool 204 zum Speichern von IP-Mehrpunktverbindungs-Datenpaketen vorgesehen.
  • 3 ist ein Blockschaltplan der Pool-Auswahllogik 124 in dem in 1 gezeigten Paketablagemanager 106. Die Pool-Auswahllogik 124 enthält die Pool-Zähler 300 und die Pool-Zählerlogik 302. Die Pool-Zähler 300 enthalten für jeden Pool 200, 2020-202n , 204 im gemeinsam genutzten Speicher 108 einen Zähler. Der ZählerStatus 304 wird an die Pool-Zählerlogik 302 weitergeleitet.
  • Die Pool-Zählerlogik 302 wählt je nach Zustand des Zählerstatus 304, des Weiterleitungsvektors 114 und des Mehrpunktverbindungs-Identifizierungskennzeichens 126 für das in dem gemeinsam genutzten Speicher 108 zu speichernde empfangene Datenpaket den Pool 200, 2020 - 202n oder 204, aus dem ein Puffer zuzuordnen ist. Nach Auswahl des Pools 200, 2020 - 202n oder 204 erzeugt die Pool-Zählerlogik 302 das Zähler-Inkrement/Dekrement 306 zum Inkrementieren oder Dekrementieren des jeweiligen Zählers in den Pool-Zählern 300. Außerdem erzeugt die Pool-Zählerlogik 302 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 Speicher 108 verfügbar ist. Falls kein Puffer für ein Nicht-Mehrpunktverbindungs-Datenpaket in dem gemeinsam genutzten Pool 200 oder in dem reservierten Pool 202 des Ports oder für ein Mehrpunktverbindungs-Datenpaket in dem Mehrpunktverbindungs-Pool 204 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 Speicher 108 zugeordnet.
  • 4 ist ein Blockschaltplan der in 3 gezeigten Pool-Zähler 300. Die Pool-Zähler 300 umfassen für jeden Ausgangsport 1120-n in der Vermittlung 100 einen Gemeinsam-genutzt-frei-Zähler 400, einen Insgesamt-frei-Zähler 402, einen Mehrpunktverbindungs-frei-Zähler 416, einen Reserviert-frei-Zähler 428, ein Register 412 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 Speicher 108. Der Insgesamt-frei-Zähler 402 wird mit der Summe der Puffer in dem gemeinsam genutzten Pool 200, in den reservierten Pools 2020 - 202n und in dem Mehrpunktverbindungs-Pool 204 voreingestellt. Der Insgesamt-frei-Zähler 402 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 Pool 200 verfügbar sind, werden IP-Mehrpunktverbindungs-Datenpakete fallen gelassen, sobald die 500 Datenpakete in dem Mehrpunktverbindungs-Pool 204 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 Speicher 108. Somit sind die Schwellenwerte für die Pools im gemeinsam genutzten Speicher 108 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ähler 402 wird mit der Gesamtzahl der physikalischen Puffer im gemeinsam genutzten Speicher 108 initialisiert. Die Summe der Puffer in dem gemeinsam genutzten Pool 200, in den reservierten Pools der Ports 2020 - 202n und in dem Mehrpunktverbindungs-Pool 204 ist größer als die in dem Insgesamt-frei-Zähler 402 gespeicherte Zahl. Dies ermöglicht eine bessere Nutzung der Puffer im gemeinsam genutzten Speicher 108, verringert aber die Sicherheit, dass ein Puffer in dem reservierten Pool 202 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 Speicher 108 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 Speicher 108, falls es in der Vermittlung 100 mehr Mehrpunktverbindungs-Datenverkehr als Einpunktverbindungs-Datenverkehr und Rundsende-Datenverkehr gibt.
  • Falls der Mehrpunktverbindungs-Pool 204 nicht überzeichnet ist, werden, selbst wenn im gemeinsam genutzten Speicher 108 Puffer verfügbar sind, auch dann Mehrpunktverbindungs-Datenpakete fallen gelassen, wenn der Mehrpunktverbindungs-Pool 204 voll ist. Somit ist es bei der Überzeichnung weniger wahrscheinlich, dass Datenpakete fallen gelassen werden, wenn Puffer in dem gemeinsam genutzten Speicher 108 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 Pool 202 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 Pool 200. Die Puffer in dem gemeinsam genutzten Pool 200 des gemeinsam genutzten Speichers 108 können ein Datenpaket für irgendeinen Ausgangsport 1120-n speichern. Der Gemeinsam-genutzt-frei-Zähler 400 wird jedes Mal dekrementiert, wenn ein Puffer aus dem gemeinsam genutzten Pool 200 zugeordnet wird. Die Zahl 430 des gemeinsam genutzten Pools gibt an, ob es freie Puffer in dem gemeinsam genutzten Pool 200 gibt. Die Zahl 430 des gemeinsam genutzten Pools wird an die Pool-Zählerlogik 302 weitergeleitet.
  • Der Mehrpunktverbindungs-frei-Zähler 416 speichert die Anzahl verfügbarer Puffer in dem Mehrpunktverbindungs-Pool 204. Die Zähler 4140-n der reservierten Pools der Ports speichern die Anzahl der Puffer, die dem jeweiligen Ausgangsport 112 aus dem jeweiligen reservierten Pool der Ports 2020 - 202n und aus dem gemeinsam genutzten Pool 200 zugeordnet sind. Ein Register 412 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 Register 412 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 Register 412 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 Ausgangsport 112 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 auf 400 eingestellt ist. Falls jeder reservierte Port-Pools auf 150 überzeichnet ist, kann jeder Ausgangsport bis zu 150 Puffer der 400 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 und 428 besitzt jeweilige Zähler-Inkrement/Dekrement-Signale 422, 404, 4260-n, 410 und 436, die durch die Pool-Zählerlogik 302 erzeugt und an das Zähler-Inkrement/Dekrement 306 weitergeleitet werden (3). Ein Zähler 400, 402, 4140-n, 416 und 428 wird jedes Mal inkrementiert oder dekrementiert, wenn ein Puffer aus einem jeweiligen Pool zugeordnet oder freigegeben wird. Beispielsweise wird der Gemeinsam-genutzt-frei-Zähler 400 jedes Mal dekrementiert, wenn ein Puffer aus dem gemeinsam genutzten Pool 200 zugeordnet wird, und jedes Mal inkrementiert, wenn ein Puffer wieder an den gemeinsam genutzten Pool 200 freigegeben wird. Der Insgesamt-frei-Zähler 402 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 in 3 gezeigten Pool-Zählerlogik 302 implementierter Ablaufplan, der die Schritte zum Auswählen eines Pools 200, 2020 - 202n, 204 im gemeinsam genutzten Speicher 108 zeigt, aus dem ein Puffer zuzuordnen ist. 5 wird in Verbindung mit 3 und 4 beschrieben.
  • In Schritt 500 wartet die Pool-Zähleriogik 302 auf die Benachrichtigung über ein empfangenes Datenpaket, das in dem gemeinsam genutzten Speicher 108 zu speichern ist. Die Benachrichtigung über ein empfangenes Datenpaket enthält einen Weiterleitungsvektor 114 und ein Mehrpunktverbindungs-Identifizierungskennzeichen 126, die von der Eingangsportsmaschine 104 weitergeleitet werden. Der Weiterleitungsvektor 114 gibt die Ausgangsports 1120-n an, an die das empfangene Datenpaket weiterzuleiten ist. Das Mehrpunktverbindungs-Identifizierungskennzeichen 126 gibt an, ob das Datenpaket ein IP-Mehrpunktverbindungs-Datenpaket ist. Falls ein Datenpaket empfangen wird, wird die Verarbeitung mit Schritt 502 fortgesetzt. Falls nicht, wird die Verarbeitung mit Schritt 500 fortgesetzt.
  • In Schritt 502 bestimmt die Pool-Zählerlogik 302, ob ein Puffer in dem gemeinsam genutzten Speicher 108 zum Speichern des empfangenen Datenpakets verfügbar ist. In dem gemeinsam genutzten Speicher 108 ist ein Puffer verfügbar, wenn Insgesamt-frei 408 größer als null ist. Insgesamt-frei 408 ist die Anzahl der freien Puffer, die in dem Insgesamt-frei-Zähler 402 gespeichert ist (4). Falls ein Puffer verfügbar ist, wird die Verarbeitung mit Schritt 504 fortgesetzt. Falls nicht, wird die Verarbeitung mit Schritt 518 fortgesetzt.
  • In Schritt 504 bestimmt die Pool-Zählerlogik 302, ob das empfangene Datenpaket ein IP-Mehrpunktverbindungs-Datenpaket ist. Der Zustand des Mehrpunktverbindungs-Identifizierungskennzeichens 126 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 Speicher 108 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 Schritt 520 fortgesetzt. Falls nicht, wird die Verarbeitung mit Schritt 505 fortgesetzt.
  • In Schritt 505 ist das empfangene Datenpaket ein Nicht-IP-Mehrpunktverbindungs-Datenpaket. Somit muss ein Puffer aus dem gemeinsam genutzten Pool 200 oder aus dem reservierten Port-Pools 2020 - 202n zugeordnet werden. Die Pool-Zählerlogik 302 bestimmt, ob ein Puffer in irgendeinem der reservierten Pools der Ports 2020 - 202n verfügbar ist. Ein Puffer ist verfügbar, falls die Zahl 432 des reservierten Pools größer als null ist. Da der reservierte Pool 202 überzeichnet sein kann, wird die Zahl 432 des reservierten Pools geprüft. Somit kann in den reservierten Pools 202 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 Schwellenwert 418 ist. Falls ein Puffer verfügbar ist, wird die Verarbeitung mit Schritt 506 fortgesetzt. Falls nicht, wird die Verarbeitung mit Schritt 508 fortgesetzt.
  • In Schritt 506 bestimmt die Pool-Zählerlogik 302, 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 Schwellenwert 418 ist. Falls das der Fall ist, wird die Verarbeitung mit Schritt 512 fortgesetzt. Falls nicht, wird die Verarbeitung mit Schritt 508 fortgesetzt.
  • In Schritt 508 sind in dem jeweiligen reservierten Port-Pools 2020 - 202n des gemeinsam genutzten Speichers 108 keine Puffer verfügbar. Die Pool-Zählerlogik 302 bestimmt, ob ein Puffer in dem gemeinsam genutzten Pool 200 verfügbar ist. Ein Puffer ist verfügbar, falls die Zahl 430 des gemeinsam genutzten Pools größer als null ist. Falls das der Fall ist, wird die Verarbeitung mit Schritt 510 fortgesetzt. Falls nicht, wird die Verarbeitung mit Schritt 518 fortgesetzt.
  • In Schritt 510 wird ein Puffer aus dem gemeinsam genutzten Pool 200 zugeordnet. Die Pool-Zählerlogik 302 aktualisiert durch Dekrementieren des Gemeinsam-genutzt-frei-Zählers 400 um das Gemeinsam-Genutzt-Inkrement/Dekrement 422 die Anzahl der Puffer, die in dem gemeinsam genutzten Pool 200 verfügbar sind. Die Verarbeitung wird mit Schritt 514 fortgesetzt.
  • In Schritt 512 aktualisiert die Pool-Zählerlogik 302 durch Dekrementieren des Reserviert-frei-Zählers 428 um das Reserviert-Inkrement/Dekrement 436 die Anzahl der Puffer, die in dem reservierten Pool 202 verfügbar sind. Die Verarbeitung wird mit Schritt 514 fortgesetzt.
  • In Schritt 514 aktualisiert die Pool-Zählerlogik 302 durch Inkrementieren des Zählers 414 des reservierten Pools des Ports um das Warteschlangen-Inkrement/Dekrement 426 die Anzahl der von dem Ausgangsport verwendeten Puffer. Der jeweilige Zähler 414 des reservierten Pools des Ports wird je nach dem in den Weiterleitungsvektor 114 ausgewählten Ausgangsport 112 ausgewählt. Ein Puffer für einen jeweiligen Ausgangsport kann aus dem gemeinsam genutzten Pool 200 oder aus dem jeweiligen reservierten Pool 202 zugeordnet werden. Somit kann die jeweilige Zahl 434 der reservierten Warteschlange größer als der reservierte Schwellenwert 418 sein. Die Verarbeitung wird mit Schritt 516 fortgesetzt.
  • In Schritt 516 aktualisiert die Pool-Zählerlogik 302 durch Dekrementieren des Insgesamt-frei-Zählers 402 um das Gesamt-Inkrement/Dekrement 404 die Gesamtzahl der freien Puffer in dem gemeinsam genutzten Speicher 108. Die Verarbeitung wird mit Schritt 526 fortgesetzt.
  • In Schritt 518 ist kein Puffer im gemeinsam genutzten Speicher 108 verfügbar. Der Ausgangsport 112 hat sämtliche Puffer aus dem jeweiligen reservierten Pool 202 genutzt, während alle Puffer in dem gemeinsam genutzten Pool 202 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-Pool 204 zugeordnet werden. Die Pool-Zählerlogik 302 bestimmt, ob ein Puffer in dem Mehrpunktverbindungs-Pool 204 verfügbar ist. Ein Puffer ist verfügbar, wenn die Mehrpunktverbindungszahl 420 größer als null ist. Falls das der Fall ist, wird die Verarbeitung mit Schritt 522 fortgesetzt. Falls nicht, wird die Verarbeitung mit Schritt 518 fortgesetzt.
  • In Schritt 522 aktualisiert die Pool-Zählerlogik 302 durch Dekrementieren des Mehrpunktverbindungs-frei-Zählers 416 um das Mehrpunktverbindungs-Inkrement/Dekrement 410 die Anzahl der in dem Mehrpunktverbindungs-Pool 204 verfügbaren Puffer. Die Verarbeitung wird mit Schritt 524 fortgesetzt.
  • In Schritt 524 setzt die Pool-Zählerlogik 302 das Mehrpunktverbindungs-Identifizierungskennzeichen 310, um anzugeben, dass der Puffer für ein IP-Mehrpunktverbindungs-Datenpaket zuzuordnen ist. Das Mehrpunktverbindungs-Identifizierungszeichen 310 wird mit dem Zeiger auf den zugeordneten Puffer in dem gemeinsam genutzten Speicher 108 gespeichert, der in einer (nicht gezeigten) Ausgangsport-Warteschlange gespeichert ist, die jedem Ausgangsport 112 zugeordnet ist, an den das IP-Mehrpunktverbindungs-Datenpaket weiterzuleiten ist. Die Verarbeitung wird mit Schritt 526 fortgesetzt.
  • In Schritt 526 ist ein Puffer für die Zuordnung verfügbar. Die Pool-Zählerlogik 302 gibt über buffer_available an, dass ein Puffer zum Speichern des empfangenen Datenpakets 308 verfügbar ist. Die Verarbeitung ist abgeschlossen.
  • 6 ist ein Ablaufplan, der die Schritte zum Zurückgeben eines Puffers an einen in der in 3 gezeigten Pool-Zählerlogik 302 implementierten Pool zeigt.
  • In Schritt 600 wartet die Pool-Zählerlogik 302 auf eine Benachrichtigung über einen an den gemeinsam genutzten Speicher 108 zurückzugebenden Puffer von der Ausgangsportsmaschine 110. Die Ausgangsportsmaschine 110 plant über das an den Paketablagemanager 106 weitergeleitete Auswählen 120 die Weiterleitung eines gespeicherten Datenpakets an einen Ausgangsport 112. Die Ausgangsportsmaschine 110 enthält für jeden Ausgangsport 112 eine (nicht gezeigte) Ausgangsport-Warteschlange. Die Ausgangsport-Warteschlange speichert Zeiger auf zugeordnete Puffer im gemeinsam genutzten Speicher 108. Nachdem die Ausgangsportsmaschine 110 das Datenpaket weitergeleitet hat, kann der Puffer freigegeben werden. Falls der Puffer freizugeben ist, wird die Verarbeitung mit Schritt 602 fortgesetzt. Falls nicht, wird die Verarbeitung mit Schritt 602 fortgesetzt.
  • In Schritt 602 gibt das mit dem Zeiger des freizugebenden Puffers gespeicherte Mehrpunktverbindungs-Identifizierungszeichen 126 an, ob der Puffer aus dem Mehrpunktverbindungs-Pool 204 zugeordnet wurde. Falls der Puffer aus dem Mehrpunktverbindungs-Pool zugeordnet wurde, wird die Verarbeitung mit Schritt 605 fortgesetzt. Falls nicht, wird die Verarbeitung mit Schritt 604 fortgesetzt.
  • In Schritt 604 bestimmt die Pool-Zählerlogik 302, ob der Puffer an den gemeinsam genutzten Pool 200 oder an einen Port-Reserve-Pool 202 zurückzugeben ist. Die Pool-Zählerlogik 302 untersucht die Zahl 434 der reservierten Warteschlange, die dem Ausgangsport 112 zugeordnet ist, an den das Datenpaket weitergeleitet wurde. Falls die jeweilige Zahl 434 der reservierten Warteschlange größer als der reservierte Schwellenwert 418 ist, ist der Puffer an den gemeinsam genutzten Pool 200 zurückzugeben, wobei die Verarbeitung mit Schritt 610 fortgesetzt wird. Falls die jeweilige Zahl der reservierten Warteschlange kleiner als der reservierte Schwellenwert 418 ist, wird der Puffer an den jeweiligen reservierten Pool 202 zurückgegeben und die Verarbeitung mit Schritt 608 fortgesetzt.
  • In Schritt 605 bestimmt die Pool-Zählerlogik 302, ob eine Kopie des IP-Mehrpunktverbindungspakets an alle Mitglieder der IP-Mehrpunktverbindungsgruppe weitergeleitet worden ist. Das an dem Eingangsport 102 (1) empfangene IP-Mehrpunktverbindungs-Datenpaket wird in dem gemeinsam genutzten Speicher 108 (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 Speicher 106, der das IP-Mehrpunktverbindungs-Datenpaket speichert, an den IP-Mehrpunktverbindungs-Pool 204 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 Weiterleitungsvektor 114 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 Schritt 600 fortgesetzt.
  • In Schritt 606 aktualisiert die Pool-Zählerlogik 302 durch Inkrementieren des Mehrpunktverbindungs-frei-Zählers 416 um das Mehrpunktverbindungs-Inkrement/Dekrement 410 die Anzahl der Puffer, die in dem Mehrpunktverbindungs-Pool 204 verfügbar sind. Die Verarbeitung wird mit Schritt 614 fortgesetzt.
  • In Schritt 608 aktualisiert die Pool-Zählerlogik 302 durch Inkrementieren des Reserviert-frei-Zählers 428 um das Reserviert-Inkrement/Dekrement 436 die Anzahl der in den reservierten Pools 202 verwendeten Puffern. Die Verarbeitung wird mit Schritt 612 fortgesetzt.
  • In Schritt 610 aktualisiert die Pool-Zählerlogik 302 durch Inkrementieren des Gemeinsam-genutzt-frei-Zählers 400 durch das Gemeinsam-Genutzt-Inkrement/Dekrement 422 die Anzahl der Puffer, die in dem gemeinsam genutzten Pool 200 verfügbar sind. Die Verarbeitung wird mit Schritt 612 fortgesetzt
  • In Schritt 612 aktualisiert die Pool-Zählerlogik 302 durch Dekrementieren des jeweiligen Zählers 414 des Reserve-Pools des Ports um reservierten Pools des Ports durch das Warteschlangen-Inkrement/Dekrement 426 die Anzahl der Puffer, die von den Ausgangsports verwendet werden. Der jeweilige Zähler 414 des reservierten Pools des Ports wird je nach Zustand des weitergeleiteten Auswählens von der Ausgangsportsmaschine 110 ausgewählt. Die Verarbeitung wird mit Schritt 614 fortgesetzt.
  • In Schritt 614 aktualisiert die Pool-Zählerlogik 302 durch Inkrementieren des Insgesamt-frei-Zählers 402 durch das Gesamt-Inkrement/Dekrement 404 die Gesamtzahl der Puffer, die in dem gemeinsam genutzten Speicher 108 verfügbar sind. Die Verarbeitung wird mit Schritt 616 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)

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. 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.
  13. 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.
  14. 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.
  15. 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.
  16. 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.
  17. 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.
  18. 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.
  19. 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.
  20. 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.
  21. 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.
DE10196447.1T 2000-07-24 2001-07-20 Verfahren und Vorrichtung zum Verringern der Erschöpfung des Pools in einer Vermittlung mit gemeinsam genutztem Speicher Expired - Lifetime DE10196447B4 (de)

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)

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

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

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

Patent Citations (4)

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