DE60130079T2 - Verfahren und vorrichtung zur paketvermittlung mittels eines geteilten pufferspeichers - Google Patents

Verfahren und vorrichtung zur paketvermittlung mittels eines geteilten pufferspeichers Download PDF

Info

Publication number
DE60130079T2
DE60130079T2 DE60130079T DE60130079T DE60130079T2 DE 60130079 T2 DE60130079 T2 DE 60130079T2 DE 60130079 T DE60130079 T DE 60130079T DE 60130079 T DE60130079 T DE 60130079T DE 60130079 T2 DE60130079 T2 DE 60130079T2
Authority
DE
Germany
Prior art keywords
buffer
shared buffer
received
shared
buffer memory
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
DE60130079T
Other languages
English (en)
Other versions
DE60130079D1 (de
Inventor
Chuen-Shen Bernard San Jose SHUNG
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Broadcom Corp
Original Assignee
Broadcom Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Broadcom Corp filed Critical Broadcom Corp
Application granted granted Critical
Publication of DE60130079D1 publication Critical patent/DE60130079D1/de
Publication of DE60130079T2 publication Critical patent/DE60130079T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/104Asynchronous transfer mode [ATM] switching fabrics
    • H04L49/105ATM switching elements
    • H04L49/108ATM switching elements using shared central buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/608ATM switches adapted to switch variable length packets, e.g. IP packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

  • Hintergrund der Erfindung
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft allgemein Paketvermittlungssysteme und -verfahren und spezifischer eine Shared-Buffer-Architektur für Paketvermittlungsvorrichtungen.
  • Beschreibung des Standes der Technik
  • Eine große Vielzahl an Architekturen kann bei der Konstruktion von Paketvermittlungsvorrichtungen und Paketvermittlungs-Fabrics eingesetzt werden. Beispiele für gängige Paketvermittlungsarchitekturen umfassen Kreuzschienenarchitekturen, Ring-Topologiearchitekturen und Shared-Buffer-Architekturen. Jede der verschiedenen Architekturarten stellt unterschiedliche Vorteile zur Verwendung in verschiedenen Netzwerkarten bereit. Traditionellerweise wurde die Shared-Buffer-Vermittlungsarchitektur in Netzwerken verwendet, die die Verbreitung von Paketen fester Länge, welche für gewöhnlich als Zellen bezeichnet werden, unterstützen. Paketvermittlungsvorrichtungen, die gemäß herkömmlichen Shared-Buffer-Architekturen ausgeführt sind, stellen eine Spitzenbandbreitenleistung bereit, wenn sie spezifisch dafür konstruiert wurden, Zellen einer vorgegebenen Länge zu vermitteln, wie nachfolgend näher erläutert. Shared-Buffer-Vermittlungsvorrichtungen beispielsweise, die in Netzwerken mit asynchronem Transfermodus (ATM) verwendet werden, sind typischerweise so konstruiert, dass sie eine optimale Nutzung des Speicherplatzes des Shared-Buffers (geteilten Puffers) sowie eine optimale Bandbreitenleistung in einem ATM-Netzwerk bereitstellen, wobei die Zellengröße auf 53 Bytes festgelegt ist. Obgleich herkömmliche Shared-Buffer-Paketvermittlungsvorrichtungen zum Vermitteln von Paketen variabler Länge verwendet werden können, leidet die Bandbreitenleistung von Shared-Buffer-Vermittlungsvorrichtungen bei der Vermittlung von Paketen variabler Länge, da eine große Menge an Speicherplatz des Shared-Buffers verschwendet wird, wie nachfolgend näher erläutert.
  • 1 zeigt unter 10 ein schematisches Blockdiagramm einer herkömmlichen Shared-Buffer-Paketvermittlungsvorrichtung, die für gewöhnlich in Netzwerken eingesetzt wird, die die Verbreitung von Zellen unterstützen (z.B. ein ATM-Netzwerk). Die Vorrichtung 10 umfasst: eine Mehrzahl an N seriellen Empfangsports 12, die mit RX0, RX1, RX2, ..., RXN-1 bezeichnet sind und einen seriellen Empfang von Zellenbits bereitstellen, welche über zugeordnete Verbindungen (nicht gezeigt) eines Netzwerks empfangen werden, und eine Mehrzahl an N seriellen Sendeports 14, die mit TX1, TX2, TX3, ..., TXN-1 bezeichnet sind und eine serielle Übertragung von Zellenbits über zugeordnete Verbindungen des Netzwerks bereitstellen. Die seriellen Empfangsports RX0, RX1, RX2, ..., RXN-1 und zugeordnete der seriellen Sendeports TX1, TX2, TX3, ..., TXN-1 werden typischerweise durch bidirektionale Netzwerkports gebildet, die kommunikativ mit den zugeordneten Netzwerkverbindungen gekoppelt sind.
  • Die Shared-Buffer-Vermittlungsvorrichtung 10 umfasst ferner: eine Quellen-Verwaltungseinheit 18 mit einer Mehrzahl an N Ports 20, die jeweils zum Empfangen von Zellen von einem zugeordneten der Empfangsports 12 über einen zugeordneten einer Mehrzahl an N Empfangspuffern 22 dienen, einen Shared-Buffer 26 mit einem Port 28, der über einen Bus 30 kommunikativ mit der Quellen-Verwaltungseinheit 18 verbunden ist, wie nachfolgend näher erläutert, und eine Ziel-Verwaltungseinheit 34 mit einer Mehrzahl an N Ports 36, die jeweils über eine zugeordnete einer Mehrzahl an N Sendepufferwarteschlangen 38 kommunikativ mit einem zugeordneten der Sendeports 14 der Vorrichtung verbunden sind. Typischerweise wird der Shared-Buffer 26 unter Verwendung einer statischen Direktzugriffsspeicher-(SRAM-)Technologie ausgeführt und ist durch die Quellen-Verwaltungseinheit 18 und die Ziel-Verwaltungseinheit 34 über Speicheradresswerte adressierbar, wie nachfolgend näher erläutert.
  • Die Quellen-Verwaltungseinheit 18 umfasst: ein Paketübermittlungsmodul 50 zum Empfangen von Zellen von jedem der Empfangspuffer 22 über einen Bus 54 und einen Port 56, wie nachfolgend näher erläutert, sowie eine Puffer-Verwaltungseinheit 60 mit einem Port 62, der über den Bus 54 mit jedem der Empfangspuffer 22 und über den Bus 54 mit dem Port 52 des Paketübermittlungsmoduls 50 kommunikativ verbunden ist, einem Port 64, der über den Speicherbus 30 mit dem Port 28 des Shared-Buffers 26 kommunikativ verbunden ist, einem Port 66, der mit dem Port 56 des Paketübermittlungsmoduls 50 kommunikativ verbunden ist, und einem Port 68, der mit dem Port 42 der Ziel-Verwaltungseinheit 34 kommunikativ verbunden ist. Der Betrieb der Vorrichtung 10 ist nachfolgend näher erläutert.
  • 2 zeigt ein verallgemeinertes Tabellendiagramm, das unter 72 einen Speicherplatz des Shared-Buffers 26 (1) darstellt. Der Speicherplatz 72 umfasst eine Mehrzahl an Wortstellen 74 des Shared-Buffer-Speicherplatzes, wobei jede Wortstelle über einen entsprechenden Speicheradresswert 76 adressierbar ist und einen Wort speicherplatz 78 zum Speichern eines zugeordneten Datenworts mit einer Wortlänge von B Bits aufweist. Der Shared-Buffer 26 (1) soll eine "Breite" von B Bits und eine "Höhe" aufweisen, die der Gesamtzahl der adressierbaren Wortstellen 74 entspricht. Wie nachfolgend näher erläutert, entsteht, da die Hardware-Anforderungen vorschreiben, dass der Shared-Buffer 26 eine feste Wortlänge oder Breite haben muss, bei der Verwendung eines Shared-Buffer-Speichers zum Vermitteln von Paketen variabler Länge ein Bandbreitenproblem.
  • Bezug nehmend nochmals auf 1 werden beim Betrieb der Vermittlungsvorrichtung 10 Zellen seriell über zugeordnete Netzwerkverbindungen an jedem der Empfangsports 12 empfangen und temporär in den zugeordneten Empfangspuffern 22 gespeichert, die bei der Umwandlung der empfangenen Zellen von dem seriellen Datenformat in ein paralleles Datenformat zur Speicherung im Shared-Buffer verwendet werden. Das Paketübermittlungsmodul 50 spricht auf Adresswerte (z.B. MAC-Adresswerte) an, die von den empfangenen Zellen mitgeführt werden, und ist betriebsfähig dafür ausgelegt, die jeder der empfangenen Zellen zugeordneten Zielportinformationen durch Lesen einer Zellenübermittlungstabelle (nicht gezeigt) zu bestimmen, wobei die Zielportinformationen ein Ziel eines der der empfangenen Zelle zugeordneten Sendeports 14 angeben. Das Paketübermittlungsmodul 50 führt über seinen Port 56 die jeder der empfangenen Zellen zugeordneten Zielportinformationen dem Port 66 der Puffer-Verwaltungseinheit 60 zu.
  • Die Puffer-Verwaltungseinheit 60 ist betriebsfähig dafür ausgelegt, einen jeder der empfangenen Zellen zugeordneten Speicheradresswert 76 (2) zu bestimmen, wobei die zugeordneten Speicheradresswerte die Wortstellen 74 (2) zum Speichern der empfangenen Zellen angeben. Die Puffer-Verwaltungseinheit 60 ist dann betriebsbereit, die empfangenen Zellen in den zugeordneten Wortstellen 74 (2) zu speichern (schreiben), und außerdem betriebsfähig dafür ausgelegt, die Zielinformationen und die Speicheradresswerte, die jeder der Zellen zugeordnet sind, dem Port 42 der Ziel-Verwaltungseinheit 34 zuzuführen, die die Informationen dazu verwendet, Ausgangswarteschlangenbildungsoperationen durchzuführen.
  • Die Ziel-Verwaltungseinheit 34 empfängt die jeder der Zellen zugeordneten Zielinformationen und Speicheradresswerte und speichert sie temporär. Die Ziel-Verwaltungseinheit 34 umfasst eine Ausgangswarteschlangenbildungslogik (nicht gezeigt) zum Arbitrieren zwischen Anfragen für empfangene Zellen zum Zugriff auf das zugeordnete Ziel einer der Sendepufferwarteschlangen 38. Nach der Entscheidung über die Anfragen und der Auswahl einer empfangenen Zelle zum Zugriff auf eine zugeordnete der Sendepufferwarteschlangen 38, liest die Ziel-Verwaltungseinheit 34 unter Verwendung des zugeordneten Speicheradresswerts die gewählte Zelle aus der zugeordneten Wortstelle 74 (2) des Shared-Buffers 26 aus und übermittelt die Zelle an die zugeordnete der Sendepufferwarteschlangen 38.
  • Es wird darauf hingewiesen, dass ein Zyklus erforderlich ist, um auf ein Datenwort des Shared-Buffers 26 zuzugreifen, d.h. dieses zu lesen oder zu schreiben, weshalb der Shared-Buffer 26 jeweils einen der Empfangsports 12 oder einen der Sendeports 14 zum Schreiben (Speichern) und Lesen (Abrufen) von Zellen bedienen kann. Die Vermittlungsvorrichtung 10 ist im Allgemeinen dahingehend synchron, dass Zellen von den Empfangspuffern 22 seriell empfangen, von einem seriellen in ein paralleles Format umgewandelt und im Shared-Buffer gespeichert werden.
  • Die Puffer-Verwaltungseinheit 60 greift in Übereinstimmung mit zugewiesenen Zeitschlitzen auf Wortstellen 74 (2) des Shared-Buffers 26 zu, die jedem der Empfangsports 12 und jedem der Sendeports 14 zugeordnet sind. Die Zugriffsoperationen sind typischerweise in Übereinstimmung mit einem Schreibzyklus, in dem die Puffer-Verwaltungseinheit 60 eine Zelle speichert, die von jedem der N Empfangsports 12 während jedem der N Schreibzeitschlitze empfangen wurde, und einem Lesezyklus synchronisiert, in dem die Puffer-Verwaltungseinheit 60 eine Zelle liest, die von jedem der N Sendeports 14 während jedem der N Lesezeitschlitze gesendet werden soll. Jeder Zeitschlitz, der einem Empfangsport zugewiesen wird, der keine Zelle empfangen hat, ist während eines zugeordneten Schreibzyklus verschwendet. Ebenso ist jeder einem bestimmten Sendeport zugewiesene Zeitschlitz während eines zugeordneten Lesezyklus verschwendet, wenn von dem bestimmten Sendeport keine Zelle gesendet werden soll.
  • Als Beispiel für den Betrieb der Vermittlungsvorrichtung 10, nehmen wir an, dass die Vorrichtung N = 4 bidirektionale Ports umfasst. Bei dem vorliegenden Beispiel ist zu beachten, dass RX0 eine Zelle empfängt, bei der festgestellt wurde, dass sie für TX1 bestimmt ist, RX1 eine erste Zelle empfängt, bei der festgestellt wurde, dass sie für TX2 bestimmt ist, RX2 keine Zellen empfangt und RX3 eine zweite Zeile empfängt, bei der festgestellt wurde, dass sie für TX2 bestimmt ist. Bei diesem Beispiel speichert die Puffer-Verwaltungseinheit 60 während eines zugeordneten Schreibzyklus die von RX0, RX1 und RX3 empfangenen Zellen in zugeordneten der Wortstellen 74 (2) des Shared-Buffers. Der zugewiesene Zeitschlitz zum Speichern einer von RX2 gespeicherten Zelle ist in diesem Fall verschwendet, da RX2 keine Pakete empfangen hat. Wie erwähnt, liest die Puffer-Verwaltungseinheit 60 während des Lesezyklus Zellen aus, die in zugeordneten der Wortstellen 74 (2) gespeichert sind, welche jedem der Sendeports 14 zugeordnet sind. Bei dem vorliegenden Beispiel verschwendet die Puffer-Verwaltungseinheit 60 während des zugeordneten Lesezyklus einen TX0 zugeordneten ersten Lesezeitschlitz, da keine Pakete empfangen wurden, die für TX0 bestimmt sind, liest die für TX1 bestimmte Zelle während eines zweiten Lesezeitschlitzes aus, liest die für TX2 bestimmte erste Zelle während des dritten Lesezeitschlitzes aus und verschwendet einen TX3 zugeordneten vierten Lesezeitschlitz, da keine Pakete empfangen wurden, die für TX3 bestimmt sind. Nach dieser Runde von Schreib- und Lesezyklen verbleibt die für TX2 bestimmte zweite Zelle im Shared-Buffer und wird während eines späteren Lesezyklus abgerufen.
  • Damit eine Vermittlungsvorrichtung einer beliebigen Architekturart N Ports unterstützt, die jeweils eine Leitungsgeschwindigkeit (Line Rate) R (definiert in Biteinheiten pro Sekunde) aufweisen, muss die Vermittlungsvorrichtung eine Gesamtvermittlungsbandbreitenleistung bereitstellen, die gleich NR ist, d.h. dem Produkt von N und R. Die Bandbreitenleistung der Shared-Buffer-Vermittlungsvorrichtung 10 ist eine Funktion der Taktrate (die durch die Zeitdauer definiert wird, die zum Zugreifen auf den Inhalt einer Wortstelle benötigt wird) und der Breite B des Shared-Buffers. Wie erwähnt, bestimmt die Bandbreitenleistung einer Shared-Buffer-Vermittlungsvorrichtung die Anzahl an N Ports, die durch die Vorrichtung bedient werden können. Daher ist die Anzahl der Ports, die durch die Shared-Buffer-Vorrichtung unterstützt werden kann, ebenfalls eine Funktion der Breite B des Shared-Buffers. Damit die Shared-Buffer-Vermittlungsvorrichtung 10 eine Gesamtvermittlungsbandbreitenleistung von NR bereitstellt, muss die Speicherbandbreite zum Zugriff auf den Paketpuffer gleich 2NR sein, wodurch eine Schreibbandbreite von NR und eine Lesebandbreite von NR vorgesehen werden.
  • Die Anzahl an N Ports mit gleichmäßiger Leitungsgeschwindigkeit, die durch die Shared-Buffer-Vermittlungsvorrichtung 10 unterstützt werden kann, kann gemäß dem nachfolgenden Verhältnis (1) bestimmt werden: N = (Taktrate·B)/(2·R) (1)wobei die Taktrate in Zykluseinheiten pro Sekunde definiert, B die Breite des Shared-Buffers 26 in Bits und R die Leitungsgeschwindigkeit eines jeden Ports der Vermittlungsvorrichtung ist.
  • Nehmen wir beispielsweise an, dass die Taktrate der Shared-Buffer-Vermittlungsvorrichtung 125 MHz beträgt, was für einen Zugriff (Lesen oder Schreiben) auf den Inhalt einer Wortstelle 74 (2) des Shared-Buffers in 8 Nanosekunden sorgt. Nehmen wir außerdem an, dass die Breite B des Shared-Buffers 26 512 Bits beträgt. Dadurch wird eine Gesamtspeicherbandbreite von 512 Bit pro jeweils 8 Nanosekunden bereitgestellt, was 64 GBit pro Sekunde entspricht. Die Gesamtspeicherbandbreite von 64 GBit/s stellt eine Schreibbandbreite von 32 GBit pro Sekunde und eine Lesebandbreite von 32 GBit/s bereit. Da jeder Port eine Leitungsgeschwindigkeit von 1 GBit/s aufweist, kann die Vermittlungsvorrichtung 10, die eine Gesamtspeicherbandbreite von 64 GBit/s aufweist, bei diesem Beispiel N = 32 Ports unterstützen.
  • Wie vorstehend erwähnt, wird der Shared-Buffer 26 unter Verwendung der SRAM-Technologie ausgeführt. In der Praxis kann die Größe des Shared-Buffers 26 durch Verbinden einer Mehrzahl von im Handel erhältlichen Standardgrößenspeichereinheiten variiert werden. Die Breite B des Shared-Buffers 26 kann durch paralleles Verbinden einer Mehrzahl an Speichereinheiten und die Höhe des Shared-Buffers durch serielles Verbinden einer Mehrzahl an Speichereinheiten variiert werden. Eine im Handel erhältliche Standardgrößenspeichereinheit beträgt 1K × 16 Bits, d.h. 1000 Worte in der Höhe und 16 Bits in der Breite, und ermöglicht somit die Speicherung von eintausend 16Bit-Worten. Als Beispiel können zweiunddreißig der 1K × 16Bit-Speichereinheiten parallel angeordnet werden, um einen Shared-Buffer mit einer Breite B von 512 Bits zu bilden, wobei jede Wortspeichereinheit 78 (2) des Paketpuffers eine 512Bit-Wortlänge bereitstellt.
  • Wie vorstehend erwähnt, verringert sich die Bandbreitenleitung, wenn ein Shared-Buffer-Speicher zur Vermittlung von Paketen variabler Länge verwendet wird, da die Hardware-Anforderungen vorschreiben, dass der Shared-Buffer 26 eine feste Wortlänge oder Breite haben muss. Jede der obigen auf dem Verhältnis (1) basierenden Berechnungen der Bandbreitenleistung geht von einem idealen Fall aus, in dem der gesamte Inhalt einer jeden Wortspeichereinheit 78 (2) jeder Wortstelle des Shared-Buffers 26 zum Speichern eines Datenpakets oder eines Teils eines Datenpakets verwendet wird. Die Gesamtbandbreitenleistung der Vermittlungsvorrichtung 10 nimmt ab, wenn weniger als der gesamte Inhalt einer jeden Wortspeichereinheit 78 (2) jeder Wortstelle genutzt wird.
  • Wie vorstehend erwähnt, wurden Paketvermittlungsvorrichtungen mit Shared-Buffer-Architektur traditionell nur in Netzwerken verwendet, in denen die Datenpakete Datenpakete fester Länge sind. Die Gesamtbandbreitenleistung der Vermittlungs vorrichtung 10 wird maximiert, wenn die Breite des Shared-Buffers gleich der festen Länge der vermittelten Zellen ist. Paketvermittlungsvorrichtungen mit Shared-Buffer-Architektur wurden jedoch traditionell nicht zur Vermittlung von Datenpaketen variabler Länge verwendet, da die Bandbreitenleistung bei solchen Anwendungen leidet. Wenn die Länge der Pakete variiert, nimmt die durch die Vermittlungsvorrichtung 10 bereitgestellte Bandbreite ab. Bei einem Ethernet-Netzwerk beispielsweise variieren die Paketlängen innerhalb eines Bereichs von 64 Bytes bis 1522 Bytes, wobei jedes der Pakete eine ganze Zahl von Bytes innerhalb des definierten Bereichs aufweist. Im ungünstigsten Fall wird die Bandbreitenleistung einer Paketvermittlungsvorrichtung mit Shared-Buffer-Architektur besonders nachteilig beeinflusst, wenn ein empfangenes Paket eine Länge aufweist, die um ein Byte größer als die Breite B des Paketpuffers ist.
  • Wiederum ausgehend von dem vorstehenden Beispiel, bei dem der Shared-Buffer 26 (1) eine Breite B von 512 Bits oder 64 Bytes hat und bei dem die Vorrichtung 10 mit einer Taktrate von 125 MHz arbeitet, wird die durch die Vermittlungsvorrichtung 10 bereitgestellte Bandbreite auf 64 GBit/s maximiert, wenn jedes der empfangenen Pakete eine feste Länge von 64 Bytes hat. Die Bandbreitenleistung der Paketvermittlungsvorrichtung 10 kann nur dann durch das Produkt der Breite B des Shared-Buffers 26 und der Taktrate der Vorrichtung ausgedrückt werden, wenn die volle Speicherbreite genutzt wird. Eine verringerte Bandbreitenleistung der Paketvermittlungsvorrichtung sowie verschwendeter Speicherplatz treten jedoch in Antwort auf den Empfang eines Pakets mit einer Länge auf, die etwas größer (z.B. ein Byte größer) ist als die Breite des Shared-Buffers 26 (1). Bei dem vorliegenden Beispiel tritt die ungünstigste Bandbreitenleistung der Paketvermittlungsvorrichtung auf, wenn ein empfangenes Paket eine Länge hat, die gleich 65 Bytes ist. Dieses Problem tritt auf, da die Bandbreitenleistung der Paketvermittlungsvorrichtung 10 von dem Teil jeder Wortstelle des Shared-Buffers 26 abhängig ist, der tatsächlich genutzt wird.
  • Wenn ein Paket mit einer Länge von 65 Bytes an einem der Empfangsports 12 empfangen wird, werden die ersten 64 Bytes des empfangenen Pakets in eine erste der Wortstellen 74 (2), die mit 80 bezeichnet ist, und ein letztes Bytes des empfangenen Pakets in eine zweite der Wortstellen 74 geschrieben, die mit 82 bezeichnet ist. Nur ein sehr kleiner Teil des Wortspeicherplatzes 78 der zweiten Wortstelle 82 wird zum Speichern des letzten Bytes des empfangenen Pakets verwendet. Der restliche Teil des Speicherplatzes der zweiten Wortstelle 82 kann nicht zum Speichern eines nächsten Pakets oder eines Teils eines nächsten Pakets ver wendet werden, da es die Ausgangswarteschlangenbildungslogik der Ziel-Verwaltungseinheit 34 (1) der Shared-Buffer-Architektur verlangt, dass die Puffer-Verwaltungseinheit 60 der Ziel-Verwaltungseinheit einen oder mehrere Speicheradresswerte zuführt, die jedes im Shared-Buffer gespeicherte Paket eindeutig kennzeichnen. Daher kann jede der Wortstellen 74 (2) des Shared-Buffers Daten aus nur einem der empfangenen Pakete speichern, so dass der der Wortstelle zugeordnete Speicheradresswert nur Daten eines einzelnen gespeicherten Pakets kennzeichnet. Die Bandbreitenleistung der Vermittlungsvorrichtung leidet infolge des verschwendeten Speicherplatzes der zweiten Wortstelle 82.
  • Ausgehend von einer konstanten Taktrate kann die Breite des Shared-Buffers 26 zur Unterstützung einer größeren Bandbreitenleistung des Switches (Vermittlungsvorrichtung) und einer größeren Anzahl an Ports erhöht werden. In der Praxis gibt es jedoch im Hinblick darauf eine Grenze, wie weit die Breite des Shared-Buffers 26 erhöht werden kann, wobei es nicht praktikabel ist, die Breite des Shared-Buffers 26 auf 1522 Bytes zu erhöhen, um das längste Ethernet-Paket aufzunehmen.
  • Bei der Bemessung der Bandbreitenleistung einer Vermittlungsvorrichtung ist es nötig, die ungünstigste Bandbreitenleistung der Vermittlungsvorrichtung anzugeben. Bei dem vorstehenden Beispiel beträgt die ungünstigste Bandbreitenleistung der Paketvermittlungsvorrichtung, die auftritt, wenn ein Paket mit einer Länge von 65 Bytes empfangen wird, 32 GBit/s, was die Hälfte der maximalen Bandbreite ist, die bei 64Byte-Paketen erreicht wird. Daher können bei dem darstellten Beispiel nur sechzehn 1GBit-Ports durch die bekannte Vermittlungsvorrichtung 10 zum Vermitteln von Datenpaketen variabler Länge unterstützt werden.
  • US 5,910,928 beschreibt eine Speicherschnittstelleneinheit, die eine Busschnittstelleneinheit, einen Puffer, der mehrere im Transit zu oder von einem digitalen Speicher befindliche Daten-Burst-Teilsätze speichern kann, und einen Switch aufweist, der einen extern zugänglichen Master-Datenpfad für den Transfer von Daten zu oder von der Busschnittstelleneinheit und einen extern zugänglichen Slave-Datenpfad für den Transfer von Daten zu oder von dem Puffer sowie einen direkten Datenpfad für den Transfer von Daten zwischen der Busschnittstelleneinheit und dem Puffer umfasst.
  • US 5,905,725 beschreibt einen Router zum Vermitteln eines Datenpakets zwischen einer Quelle und einem Ziel in einem Netzwerk, der eine Mehrzahl an Eingangsports umfasst, die jeweils eine Datenhandhabungseinrichtung aufweisen. Die Datenhandhabungseinrichtung teilt ein Datenpaket in eine oder mehrere Zellen fester Länge auf. Ein Eingangs-Switch empfängt Zellen fester Länge von den Eingangsports und schreibt eine einzelne Zelle in einer Zellenschlitz-Zeitspanne in jeden einer Mehrzahl an Speicherbereichen.
  • Ein Ziel der vorliegenden Erfindung besteht darin, ein Verfahren und eine Vorrichtung zur Shared-Buffer-Paketvermittlung von Paketen variabler Länge bereitzustellen, wobei die Bandbreitenleistung optimiert ist und eine überschüssige Menge an Speicherplatz im Shared-Buffer nicht verschwendet wird.
  • Zur Erreichung dieses und anderer Ziele werden erfindungsgemäß eine Shared-Buffer-Paketvermittlungsvorrichtung, wie im unabhängigen Anspruch 1 definiert, und ein Verfahren zum Verwalten der Speicherung empfangener Pakete, wie im unabhängigen Anspruch 11 definiert, bereitgestellt.
  • Weitere vorteilhafte Merkmale der Erfindung sind in den abhängigen Unteransprüchen definiert.
  • Ein bedeutender Vorteil der erfindungsgemäßen Shared-Buffer-Paketvermittlungsvorrichtung besteht darin, dass die Bandbreitenleistung bei der Vermittlung von Datenpaketen variabler Länge durch die Verwendung des Endpuffers (tail buffer) verbessert wird. Die Bandbreitenleistung einer Shared-Buffer-Speicher-Vermittlungsvorrichtung ist direkt proportional zur Breite des Shared-Buffers und zum Prozentsatz des genutzten Speicherplatzes von Wortstellen des Shared-Buffers. Die Verwendung des Endpuffers ermöglicht eine geringere Verschwendung an Shared-Buffer-Speicherplatz beim Speichern von Paketen, bei denen die Restbitzahl kleiner ist als die Endpufferspeicherbreite.
  • Die vorstehenden und andere Ziele, Merkmale und Vorteile der vorliegenden Erfindung gehen aus der folgenden genauen Beschreibung der bevorzugten Ausführungsform hervor, wobei auf die mehreren Figuren der Zeichnungen Bezug genommen wird.
  • In den Zeichnungen zeigt:
  • 1 ein schematisches Schaltungsblockdiagramm einer herkömmlichen Shared-Buffer-Paketvermittlungsvorrichtung,
  • 2 ein verallgemeinertes Tabellendiagramm, das einen Speicherplatz eines Shared-Buffers der herkömmlichen Vermittlungsvorrichtung gemäß 1 darstellt,
  • 3 ein schematisches Schaltungsblockdiagramm einer erfindungsgemäßen Shared-Buffer-Paketvermittlungsvorrichtung mit einem Shared-Buffer und einem Endpuffer,
  • 4A ein verallgemeinertes Tabellendiagramm, das einen Speicherplatz des Shared-Buffers gemäß 3 darstellt,
  • 4B ein verallgemeinertes Tabellendiagramm, das einen Speicherplatz des Endpuffers gemäß 3 darstellt, und
  • 5 ein verallgemeinertes Tabellendiagramm, das eine Ausführungsform der vorliegenden Erfindung darstellt, wobei die Höhe des Shared-Buffers größer als die Höhe des Endpuffers ist.
  • Genaue Beschreibung der bevorzugten Ausführungsformen
  • 3 zeigt unter 100 ein schematisches Schaltungsblockdiagramm einer erfindungsgemäßen Shared-Buffer-Paketvermittlungsvorrichtung. Die Vorrichtung 100 umfasst: eine Mehrzahl von N seriellen Empfangsports 102, die mit RX0, RX1, RX2, ..., RXN-1 bezeichnet sind, zum seriellen Empfangen von Datenpaketen über zugeordnete Verbindungen eines Netzwerks (nicht gezeigt) und eine Mehrzahl von N seriellen Sendeports 104, die mit TX1, TX2, TX3, ..., TXN-1 bezeichnet sind, zum Senden von Paketen über Verbindungen eines Netzwerks. Bei einer Ausführungsform werden die seriellen Empfangsports RX0, RX1, RX2, ..., RXN-1 und zugeordnete der seriellen Sendeports TX1, TX2, TX3, ..., TXN-1 durch zugeordnete bidirektionale Ports gebildet.
  • Die Shared-Buffer-Paketvermittlungsvorrichtung 100 umfasst ferner: eine Quellen-Verwaltungseinheit 108 mit einer Mehrzahl von N Ports 110, die jeweils über einen zugeordneten einer Mehrzahl von N Empfangspuffern 112 Pakete von einem zugeordneten der seriellen Empfangsports 102 empfangen, einen Shared-Buffer 116 mit einem Port 118, der kommunikativ mit der Quellen-Verwaltungseinheit verbunden ist, wie nachfolgend näher erläutert, einen Endpuffer 120 mit einem Port 122, der kommunikativ mit der Quellen-Verwaltungseinheit verbunden ist, wie nachfolgend näher erläutert, eine Ziel-Verwaltungseinheit 124 mit einem Port 126, der kommunikativ mit der Quellen-Verwaltungseinheit verbunden ist, wie nachfolgend näher erläutert, eine Mehrzahl von N Ports 128, die jeweils über einen zugeordneten einer Mehrzahl von N Sendepuffern 130 mit einem zugeordneten der seriellen Sendeports 104 der Vorrichtung kommunikativ verbunden ist. Sowohl der Shared-Buffer-Paketpuffer 116 als auch der Endpuffer 120 sind unter Verwendung einer statischen Direktzugriffsspeicher-(SRAM-)Technologie ausgeführt.
  • Die Quellen-Verwaltungseinheit 108 umfasst: ein Paketübermittlungsmodul 134 mit einem Port 136 zum Empfangen von Paketen von jedem der Empfangspuffer 112 über einen Bus 138 und einem Port 137, wie nachfolgend näher erläutert, und eine Puffer-Verwaltungseinheit 140 mit einem Port 142, der über den Bus 138 kommunikativ mit jedem der Empfangspuffer 112 und über den Bus 138 mit einem Port 136 des Paketübermittlungsmoduls 134 verbunden ist, einem Port 143, der kommunikativ mit dem Port 137 des Paketübermittlungsmoduls verbunden ist, einem Port 144, der kommunikativ mit dem Port 122 des Endpuffers 120 verbunden ist, einem Port 146, der kommunikativ mit dem Port 118 des Shared-Buffer-Paketpuffers 116 verbunden ist, und einem Port 148, der kommunikativ mit dem Port 126 der Ziel-Verwaltungseinheit 124 verbunden ist. Der Betrieb der Vorrichtung 100 ist nachfolgend näher erläutert.
  • 4A zeigt ein verallgemeinertes Tabellendiagramm, das unter 170 einen Speicherplatz des Shared-Buffers 116 (3) darstellt. Der Speicherplatz 170 umfasst eine Mehrzahl an Wortstellen 172 des Shared-Buffer-Speicherplatzes, wobei jede Wortstelle über einen entsprechenden Shared-Buffer-Speicheradresswert 174 adressierbar ist und jede Wortstelle einen zugeordneten Wortspeicherplatz 176 zum Speichern eines zugeordneten Datenworts mit einer Wortlänge von BS Bits umfasst. Der Shared-Buffer 116 (3) soll eine "Breite" von BS Bits und eine "Höhe" aufweisen, die der Gesamtzahl adressierbarer Wortstellen 172 entspricht. Bei einer Ausführungsform stellt der Wortspeicherplatz 176 einer jeden Wortstelle eine Speicherung eines Datenabschnitts mit einer maximalen Länge von BS = 64 Bytes bereit.
  • 4B zeigt ein verallgemeinertes Tabellendiagramm, das unter 180 einen Speicherplatz des Endpuffers 120 (3) darstellt. Der Speicherplatz 180 umfasst eine Mehrzahl an Endpufferstellen 182, die jeweils über einen entsprechenden Endpuffer-Speicheradresswert 184 adressierbar sind und einen Endpufferdatenspeicherplatz 186 zum Speichern eines zugeordneten Datenabschnitts mit einer maximalen Länge von BT Bits umfassen. Der Endpuffer 120 (3) soll eine "Breite" von BT Bits und eine "Höhe" aufweisen, die der Gesamtzahl adressierbarer Stellen 182 im Endpuffer entspricht. Bei einer Ausführungsform stellt der Speicherplatz 186 einer jeden Endpufferstelle eine Speicherung eines zugeordneten Datenabschnitts mit einer maximalen Länge von BT = 16 Bytes bereit.
  • Bezug nehmend nochmals auf 3 werden beim Betrieb der Vermittlungsvorrichtung 100 Pakete seriell über zugeordneten Netzwerkverbindungen (nicht gezeigt) an jedem der Empfangsports 102 empfangen und temporär in den Empfangspuffern 112 gespeichert, die bei der Umwandlung der empfangenen Pakete von dem seriellen Datenformat in ein paralleles Datenformat verwendet werden. Das Paketübermittlungsmodul 134 spricht auf Adresswerte (z.B. MAC-Adresswerte) an, die von den empfangenen Paketen mitgeführt werden, und ist betriebsfähig dafür ausgelegt, die jedem der empfangenen Pakete zugeordneten Zielportinformationen durch Lesen einer Paketübermittlungstabelle (nicht gezeigt) zu bestimmen, wobei die Zielportinformationen ein Ziel eines der dem empfangenen Paket zugeordneten Sendeports 104 angeben. Das Paketübermittlungsmodul 134 führt über seinen Port 137 die einem jeden der empfangenen Pakete zugeordneten Zielportinformationen dem Port 143 der Puffer-Verwaltungseinheit 140 zu.
  • Die Puffer-Verwaltungseinheit 140 ist betriebsfähig dafür ausgelegt, ausgewählte der Wortstellen 172 (4A) sowie gegebenenfalls ausgewählte der Endpufferstellen 182 zum Speichern der empfangenen Pakete zu bestimmen. Die Puffer-Verwaltungseinheit 140 ist betriebsfähig dafür ausgelegt, folgende Schritte durchzuführen: Teilen eines empfangenen Pakets durch die Breite BS des Shared-Buffers 116 und Bestimmen einer Restbitzahl, Vergleichen der Restbitzahl mit der Breite BT des Endpuffers, Feststellen, ob die Restbitzahl kleiner als die Breite BT des Endpuffers ist, Verwenden einer der Endpufferstellen 182 (4B) zum Speichern der Restbitzahl des empfangenen Pakets, wenn die Restbitzahl kleiner als die Breite BT des Endpuffers ist, und Verwenden einer weiteren der Wortstellen 172 (4A) zum Speichern der Restbitzahl des empfangenen Pakets, wenn die Restbitzahl größer als die Breite BT des Endpuffers ist.
  • Die Puffer-Verwaltungseinheit 140 ist betriebsfähig dafür ausgelegt, zu bestimmen: wenigstens einen einem jeden der empfangenen Pakete zugeordneten Shared-Buffer-Speicheradresswert 172 (4A) und gegebenenfalls einen zugeordneten Endpuffer-Speicheradresswert 184 (4B), wie vorstehend erläutert. Die zugeordneten Shared-Buffer-Speicheradresswerte geben Wortstellen 172 (2) zum Speichern zumindest von Teilen empfangener Pakete und die Endpuffer-Speicheradresswerte zugeordnete Endpufferstellen 182 (4B) zum Speichern restlicher Teile empfangener Pakete an. Die Puffer-Verwaltungseinheit 140 ist betriebsfähig dafür ausgelegt, einen zugeordneten Teil der empfangenen Pakete in den zugeordneten Wortstellen 172 (4A) und gegebenenfalls auch in der zugeordneten Endpufferstelle zu speichern (schreiben). Die Puffer-Verwaltungseinheit 140 ist außerdem betriebsfähig dafür ausgelegt, die Zielinformationen und die Speicheradresswerte, die jedem der Pakete zugeordnet sind, dem Port 126 der Ziel-Verwaltungseinheit 124 zuzuführen.
  • Die Ziel-Verwaltungseinheit 124 empfängt die jedem der Pakete zugeordneten Zielinformationen und Speicheradresswerte und speichert sie temporär. Die Ziel-Verwaltungseinheit 124 umfasst eine Ausgangswarteschlangenbildungslogik (nicht gezeigt) zum Arbitrieren zwischen Anfragen für empfangene Pakete zum Zugriff auf entsprechende der Sendepufferwarteschlangen 130. Nach der Entscheidung über die Anfragen und der Auswahl eines empfangenen Pakets zum Zugriff auf eine zugeordnete der Sendepufferwarteschlangen 130, liest die Ziel-Verwaltungseinheit 124 unter Verwendung der/des zugeordneten Shared-Buffer-Speicheradresswerte(s) 174 zumindest einen Teil des ausgewählten Pakets aus der zugeordneten Wortstelle 172 (4A) des Shared-Buffers aus und liest gegebenenfalls unter Verwendung der/des zugeordneten Endpuffer-Speicheradresswerte(s) 184 außerdem einen zugeordneten Teil des ausgewählten Pakets aus der zugeordneten Endpufferstelle 182 (4B) des Endpuffers aus. Nach dem Auslesen des ausgewählten Pakets aus dem Shared-Buffer und gegebenenfalls aus dem zugeordneten Endpuffer, übermittelt die Ziel-Verwaltungseinheit 124 das Paket an die zugeordnete der Sendepufferwarteschlangen 130.
  • Ein bedeutender Vorteil der erfindungsgemäßen Shared-Buffer-Paketvermittlungsvorrichtung besteht darin, dass die Bandbreitenleistung bei der Vermittlung von Datenpaketen variabler Länge durch die Verwendung des Endpuffers verbessert wird. Die Bandbreitenleistung einer Shared-Buffer-Speicher-Vermittlungsvorrichtung ist direkt proportional zur Breite des Shared-Buffers und zum Prozentsatz des genutzten Speicherplatzes von Wortstellen des Shared-Buffers. Die Verwendung des Endpuffers ermöglicht eine geringere Verschwendung an Shared-Buffer-Speicherplatz beim Speichern von Paketen, bei denen die Restbitzahl kleiner ist als die Endpufferspeicherbreite BT. Teile der Wortstellen 172 (4A) des Shared-Buffers werden nur in Fällen verschwendet, in denen die Restbitzahl eines Pakets (nach dem Teilen der Länge des Pakets durch die Shared-Buffer-Speicherbreite BS) größer ist als die Endpufferspeicherbreite BT. Erfindungsgemäß können die Speicherbreite BT des Endpuffers und die Speicherbreite BS des Shared-Buffers variiert werden, um die Bandbreitenleistung und Nutzung des Speicherplatzes zu optimieren.
  • Bezug nehmend nochmals auf die 4A und 4B gehen wird davon aus, dass, bei einer Ausführungsform der vorliegenden Erfindung, der Shared-Buffer 116 (3) eine Anzahl an Wortstellen 172 (4A) umfasst, die der Anzahl an Endpufferstellen 182 (4B) im Endpuffer 120 (3) entspricht, weshalb die Höhe des Shared-Buffers gleich der Höhe des Endpuffers ist. Ein unnötiger Nachteil entsteht bei dieser Ausführungsform, wenn der Variationsbereich der Länge der Pakete groß ist, da mehrere der Wortstellen 172 (4A) benötigt werden können, um ein einzelnes großes Paket zu speichern, während ein Maximum von nur einer der Endpufferstellen 182 (4B) benötigt wird, um einen restlichen Teil des Pakets zu speichern. Ein Großteil des Speicherplatzes des Endpuffers wird bei dieser Ausführungsform infolge des Eins-zu-Eins-Verhältnisses zwischen den Wortstellen 172 (4A) und den Endpufferstellen 182 (4B) verschwendet.
  • Gehen wir ferner davon aus, dass die von der Ziel-Verwaltungseinheit ausgeführten Ausgangswarteschlangenbildungsoperationen auf einer Wortebene durchgeführt werden, wobei Teile des Shared-Buffer-Speicherplatzes 170 (4A) zugeordneten Paketen zugewiesen werden, und zwar immer jeweils eine Wortstelle 172 (4A). In diesem Fall können zwei Teile eines Datenpakets in nicht aufeinander folgenden der Wortstellen gespeichert werden, da verschiedene der Empfangsports 102 (3) zu verschiedenen Zeiten in den Shared-Buffer 116 (3) schreiben.
  • Als Beispiel können, Bezug nehmend auf 4A, drei Teile eines empfangenen Datenpakets in drei separaten nicht aufeinander folgenden Wortstellen gespeichert werden, die mit 190, 192 und 194 bezeichnet sind. Gemäß der Wortebene-Ausgangswarteschlangenbildung muss die Puffer-Verwaltungseinheit 140 (3) eine Mehrzahl zugeordneter Shared-Buffer-Speicheradresswerte 174 (4A) für jedes Paket, das eine Länge hat, die größer oder gleich dem Zweifachen der Breite des Shared-Buffers ist, und gegebenenfalls zusätzlich einen Endpuffer-Speicheradresswert 184 (4B) bestimmen. Ebenfalls gemäß der Wortebene-Ausgangswarteschlangenbildung müssen der Ziel-Verwaltungseinheit 124 eine Mehrzahl zugeordneter Shared-Buffer-Speicheradresswerte und gegebenenfalls ein Endpuffer-Speicheradresswert für jedes empfangene Paket zugeführt werden, das eine Länge hat, die größer als das Zweifache der Breite des Shared-Buffers ist. Das Erzeugen und Verwenden von mehr als einem Shared-Buffer-Speicheradresswert zum Speichern von und Zugreifen auf Pakete(n) im Shared-Buffer ist etwas mühsam, da zum Speichern der Speicheradresswerte zusätzliche Register erforderlich sind. Kurz gesagt, die Wortebene-Warteschlangenbildung kann für manche Vermittlungsanwendungen nicht ideal sein, da ein großer Endpuffer erforderlich ist und zusätzliche Register zum Speichern von mehr als einem Speicheradresswert zum Zugriff auf jedes Paket benötigt werden.
  • 5 zeigt ein verallgemeinertes Tabellendiagramm, das unter 200 eine Ausführungsform der vorliegenden Erfindung darstellt, wobei die Höhe des Shared-Buffers 116 (3) größer ist als die Höhe des Endpuffers 120 (3). Bei dieser Ausführungsform wird durch die Puffer-Verwaltungseinheit 140 (3) wenigstens eine Speicherplatzeinheit 202 des Pufferspeicherplatzes zugewiesen, die eine Mehrzahl aufeinander folgender der Wortstellen 172 umfasst, um jedes empfangene Datenpaket zu speichern. Bei dieser Ausführung wird nur eine Endpufferstelle 182 für jede Speicherplatzeinheit 202 benötigt. Bei dieser Ausführungsform wird das Ausgangswarteschlangenbildungsschema als Blockebene-Warteschlangenbildungsschema bezeichnet, da nur eine Endpufferstelle 182 für jede Speicherplatzeinheit 202 benötigt wird, die einen Block der Wortstellen 172 umfasst.
  • Bei einer Ausführungsform der vorliegenden Erfindung beträgt die Breite des Shared-Buffers 116 (3) 64 Bytes und jede der Speicherplatzeinheiten 202 umfasst acht der Wortstellen 172, wodurch 512 Bytes Speicherplatz bereitgestellt werden. Als Beispiel beträgt der gesamte Shared-Buffer-Speicherplatz 16K Worte × 64 Bytes, wodurch 1 Megabyte Shared-Buffer-Speicherplatz bereitgestellt wird, und der gesamte Endpufferspeicherplatz beträgt 2K Worte × 16 Bytes, wodurch 32 Kilobytes Endpufferspeicherplatz bereitgestellt werden. Die in 5 gezeigte erfindungsgemäße Paketvermittlungsvorrichtung ermöglicht die Verwendung eines Endpuffers mit geringerer Höhe und weniger Endpufferstellen als bei der Wortebene-Warteschlangenbildungsausführungsform, da in diesem Blockebene-Warteschlangenbildungsschema nur eine Endpufferstelle 182 für jede Speicherplatzeinheit 202 benötigt wird, im Gegensatz zum Wortebene-Warteschlangenbildungsschema, bei dem für jede Wortstelle eine Endpufferstelle erforderlich ist.
  • Obgleich die vorliegende Erfindung vorstehend insbesondere unter Bezugnahme auf eine spezifische Ausführungsform dargestellt und beschrieben worden ist, wird davon ausgegangen, dass Abwandlungen und Modifikationen derselben zweifellos für Fachleute auf dem Gebiet ersichtlich sein werden. Die folgenden Ansprüche sind daher so zu interpretieren, dass sie sämtliche derartigen Abwandlungen und Modifikationen einschließen, die in den Schutzumfang der Erfindung fallen.

Claims (12)

  1. Shared-Buffer-Paketvermittlungsvorrichtung (100) zum Empfangen von Datenpaketen über zugeordnete einer Mehrzahl an Empfangsports (102) und zum Senden von Datenpaketen über zugeordnete ausgewählte einer Mehrzahl an Sendeports (104), die umfasst: – einen Shared Buffer (geteilten Puffer) (116) zum temporären Speichern zumindest eines Teils eines jeden einer Mehrzahl von Datenpaketen, die über die zugeordneten Empfangsports (102) empfangen werden, wobei der Shared Buffer (116) eine Mehrzahl an Wortstellen umfasst, denen jeweils ein Shared-Buffer-Speicheradresswert zugeordnet ist und die einen zugeordneten Wortspeicherplatz aufweisen, wobei die Wortspeicherplätze eine Shared-Buffer-Speicherbreite definieren, – einen Endpuffer (Tail Buffer) (120) zum temporären Speichern der restlichen Teile ausgewählter der empfangenen Datenpakete, wobei der Endpuffer (120) eine Mehrzahl von Endpufferstellen umfasst, denen jeweils ein Endpuffer-Speicheradresswert zugeordnet ist und die einen zugeordneten End-Datenspeicherplatz aufweisen, wobei die End-Datenspeicherplätze eine Endpuffer-Speicherbreite definieren, und – eine Quellen-Verwaltungseinheit (108) zum Empfangen der Pakete über die zugeordneten Empfangsports (102), die betriebsfähig dafür ausgelegt ist, Daten der empfangenen Pakete in ausgewählten der Wortstellen und Endpufferstellen zu speichern, – wobei die Quellen-Verwaltungseinheit (108) ferner eine Puffer-Verwaltungseinheit (140) zum Bestimmen wenigstens eines einem jeden der empfangenen Pakete zugeordneten Shared-Buffer-Speicheradresswerts und zum Bestimmen eines Endpuffer-Speicheradresswerts für ausgewählte der empfangenen Pakete umfasst, – wobei die Puffer-Verwaltungseinheit (140) betriebsfähig dafür ausgelegt ist, die Schritte auszuführen: – Teilen eines empfangenen Pakets durch die Shared-Buffer-Speicherbreite, um eine benötigte Anzahl an Wortstellen zum Speichern des empfangenen Pakets und eine Restbitanzahl zu bestimmen, – Bestimmen wenigstens eines Shared-Buffer-Speicheradresswerts zum Zugriff auf wenigstens eine zugeordnete Wortstelle zum Speichern wenigstens eines Teils des empfangenen Pakets, – Vergleichen der Restbitanzahl mit der Endpuffer-Speicherbreite, – Bestimmen eines zugeordneten Endpuffer-Speicheradresswerts, der eine zugeordnete Endpufferstelle zum Speichern der restlichen Bits des empfangenen Pakets angibt, wenn die Restbitanzahl kleiner als die Endpuffer-Speicherbreite ist, und – Bestimmen eines zusätzlichen Shared-Buffer-Speicheradresswerts zum Zugriff auf eine zugeordnete zusätzliche Wortstelle zum Speichern der restlichen Bits des empfangenen Pakets, wenn die Restbitanzahl größer als die Endpuffer-Speicherbreite ist.
  2. Shared-Buffer-Paketvermittlungsvorrichtung (100) nach Anspruch 1, wobei die empfangenen Pakete Datenpakete variabler Länge sind.
  3. Shared-Buffer-Paketvermittlungsvorrichtung (100) nach Anspruch 1, wobei jeder der Empfangsports (102) und jeder der Sendeports (104) mit einem zugeordneten Ethernet-Link verbunden ist, und wobei die empfangenen Pakete Ethernet-Pakete variabler Länge sind.
  4. Shared-Buffer-Paketvermittlungsvorrichtung (100) nach Anspruch 1, wobei die Quellen-Verwaltungseinheit ferner umfasst: – ein Paketweiterleitungsmodul (134), das betriebsfähig dafür ausgelegt ist, einem jeden der empfangenen Datenpakete zugeordnete Zielinformationen zu bestimmen, wobei die Zielinformationen ein zugeordnetes Ziel eines der Sendeports (104) angeben.
  5. Shared-Buffer-Paketvermittlungsvorrichtung (100) nach Anspruch 4, die ferner eine Ziel-Verwaltungseinheit (124) zum Empfangen der Zielinformationen, der Shared-Buffer-Speicheradresswerte und der Endpuffer-Speicheradresswerte umfasst, die betriebsfähig dafür ausgelegt ist, auf die im Shared Buffer (116) und Endpuffer (120) gespeicherten Datenpakete unter Verwendung der Shared-Buffer-Speicheradresswerte und der Endpuffer-Speicheradresswerte zuzugreifen, und ferner betriebsfähig dafür ausgelegt ist, jedes der gespeicherten Datenpakete zu den zugeordneten Ziel-Sendeports (104) zu senden, die durch die zugeordneten Zielinformationen angegeben werden.
  6. Shared-Buffer-Paketvermittlungsvorrichtung (100) nach Anspruch 4, wobei die Puffer-Verwaltungseinheit (140) betriebsfähig dafür ausgelegt ist, die weiteren Schritte auszuführen: – Speichern wenigstens eines Teils des empfangenen Pakets in der wenigstens einen zugeordneten Wortstelle, – Vergleichen der Restbitanzahl mit der Endpuffer-Speicherbreite, – Speichern der Restbitanzahl des empfangenen Pakets in der zugeordneten Endpufferstelle, wenn die Restbitanzahl kleiner als die Endpuffer-Speicherbreite ist, – Speichern der Restbitanzahl des empfangenen Pakets in der zugeordneten zusätzlichen Wortstelle, wenn die Restbitanzahl größer als die Endpuffer-Speicherbreite ist.
  7. Shared-Buffer-Paketvermittlungsvorrichtung (100) nach Anspruch 1, die ferner eine Ziel-Verwaltungseinheit (124) zum Empfangen der bestimmten Shared-Buffer-Speicheradresswerte und Endpuffer-Speicheradresswerte umfasst und betriebsfähig dafür ausgelegt ist, auf die im Shared Buffer (116) und Endpuffer (120) gespeicherten empfangenen Datenpakete zuzugreifen.
  8. Shared-Buffer-Paketvermittlungsvorrichtung (100) nach Anspruch 1, wobei die Puffer-Verwaltungseinheit (140) betriebsfähig dafür ausgelegt ist, Speicherplatz des Shared Buffer (116) in Einheiten von jeweils einer Wortstelle zum Speichern wenigstens eines Teils eines zugeordneten der empfangenen Datenpakete zuzuweisen, und wobei jede der Wortstellen einer der Endpufferstellen zugeordnet ist.
  9. Shared-Buffer-Paketvermittlungsvorrichtung (100) nach Anspruch 1, wobei die Puffer-Verwaltungseinheit (140) betriebsfähig dafür ausgelegt ist, Speicherplatz des Shared Buffer (116) in Speicherplatzeinheiten zuzuweisen, die eine Mehrzahl von Wortstellen umfassen, wobei jede Speicherplatzeinheit zum Speichern wenigstens eines Teils eines zugeordneten der empfangenen Datenpakete dient, und wobei jede der Speicherplatzeinheiten einer der Endpufferstellen zugeordnet ist.
  10. Shared-Buffer-Paketvermittlungsvorrichtung (100) nach Anspruch 9, wobei die Höhe des Endpuffers (120), die durch die Gesamtzahl der Endpufferstellen definiert wird, kleiner als die Höhe des Shared Buffer (116) ist, die durch die Gesamtzahl der Wortstellen definiert wird.
  11. Verfahren zum Verwalten der Speicherung empfangener Pakete in einer Shared-Buffer-Paketvermittlungsvorrichtung (100) zum Empfangen von Datenpaketen über zugeordnete einer Mehrzahl an Empfangsports (102) und zum Senden von Datenpaketen über zugeordnete ausgewählte einer Mehrzahl an Sendeports (104), wobei die Vorrichtung einen Shared Buffer (116) zum temporären Speichern zumindest eines Teils eines jeden einer Mehrzahl von Datenpaketen, die über die zugeordneten Empfangsports (102) empfangen werden, wobei der Shared Buffer (116) eine Mehrzahl an Wortstellen umfasst, die eine Shared-Buffer-Speicherbreite definieren, und einen Endpuffer (120) zum temporären Speichern der restlichen Teile ausgewählter der empfangenen Datenpakete umfasst, wobei der Endpuffer (120) eine Mehrzahl an Endpufferstellen umfasst, die eine Endpufferbreite definieren, und wobei das Verfahren zum Verwalten der Speicherung der empfangenen Pakete im Shared Buffer (116) und Endpuffer (120) die Schritte umfasst: – Teilen eines empfangenen Pakets durch die Shared-Buffer-Speicherbreite, um eine benötigte Anzahl an Wortstellen zum Speichern des empfangenen Pakets und eine Restbitanzahl zu bestimmen, – Speichern wenigstens eines Teils des empfangenen Pakets in wenigstens einer zugeordneten Wortstelle, – Vergleichen der Restbitanzahl mit der Endpuffer-Speicherbreite, – Speichern der Restbitanzahl des empfangenen Pakets in einer zugeordneten Endpufferstelle, wenn die Restbitanzahl kleiner als die Endpuffer-Speicherbreite ist, und – Speichern der Restbitanzahl des empfangenen Pakets in einer zugeordneten zusätzlichen Wortstelle, wenn die Restbitanzahl größer als die Endpuffer-Speicherbreite ist.
  12. Verfahren nach Anspruch 11, das ferner die Schritte umfasst: – Bestimmen wenigstens eines einem jeden der empfangenen Pakete zugeordneten Shared-Buffer-Speicheradresswerts, und – Bestimmen eines Endpuffer-Speicheradresswerts für ausgewählte der empfangenen Pakete.
DE60130079T 2000-03-15 2001-03-09 Verfahren und vorrichtung zur paketvermittlung mittels eines geteilten pufferspeichers Expired - Lifetime DE60130079T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/526,102 US6700894B1 (en) 2000-03-15 2000-03-15 Method and apparatus for shared buffer packet switching
US526102 2000-03-15
PCT/US2001/004954 WO2001069849A2 (en) 2000-03-15 2001-03-09 Method and apparatus for shared buffer packet switching

Publications (2)

Publication Number Publication Date
DE60130079D1 DE60130079D1 (de) 2007-10-04
DE60130079T2 true DE60130079T2 (de) 2008-05-15

Family

ID=24095914

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60130079T Expired - Lifetime DE60130079T2 (de) 2000-03-15 2001-03-09 Verfahren und vorrichtung zur paketvermittlung mittels eines geteilten pufferspeichers

Country Status (6)

Country Link
US (2) US6700894B1 (de)
EP (1) EP1192753B1 (de)
AT (1) ATE371315T1 (de)
AU (1) AU2001245284A1 (de)
DE (1) DE60130079T2 (de)
WO (1) WO2001069849A2 (de)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7382736B2 (en) * 1999-01-12 2008-06-03 Mcdata Corporation Method for scoring queued frames for selective transmission through a switch
US6700894B1 (en) * 2000-03-15 2004-03-02 Broadcom Corporation Method and apparatus for shared buffer packet switching
EP1176767B1 (de) * 2000-07-27 2007-09-05 Roke Manor Research Limited Verbesserung in oder in Bezug auf Vermittlungseinrichtungen
US20020091884A1 (en) * 2000-11-17 2002-07-11 Andrew Chang Method and system for translating data formats
US7236490B2 (en) * 2000-11-17 2007-06-26 Foundry Networks, Inc. Backplane interface adapter
US6735218B2 (en) * 2000-11-17 2004-05-11 Foundry Networks, Inc. Method and system for encoding wide striped cells
US7356030B2 (en) * 2000-11-17 2008-04-08 Foundry Networks, Inc. Network switch cross point
US7596139B2 (en) * 2000-11-17 2009-09-29 Foundry Networks, Inc. Backplane interface adapter with error control and redundant fabric
US7002980B1 (en) * 2000-12-19 2006-02-21 Chiaro Networks, Ltd. System and method for router queue and congestion management
FR2822319B1 (fr) * 2001-03-16 2003-05-30 Thomson Csf Commutateur de trames d'informations de taille variable pour reseaux securitaires embarques
US6917623B1 (en) * 2001-03-26 2005-07-12 Advanced Micro Devices, Inc. System and method for transferring data in a network device
US7206283B2 (en) * 2001-05-15 2007-04-17 Foundry Networks, Inc. High-performance network switch
FR2838899B1 (fr) * 2002-04-19 2004-08-27 Cit Alcatel Dispositif de routage a traitement parallele
US7266117B1 (en) 2002-05-06 2007-09-04 Foundry Networks, Inc. System architecture for very fast ethernet blade
US7468975B1 (en) 2002-05-06 2008-12-23 Foundry Networks, Inc. Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability
US20120155466A1 (en) 2002-05-06 2012-06-21 Ian Edward Davis Method and apparatus for efficiently processing data packets in a computer network
US20090279558A1 (en) * 2002-05-06 2009-11-12 Ian Edward Davis Network routing apparatus for enhanced efficiency and monitoring capability
US7649885B1 (en) 2002-05-06 2010-01-19 Foundry Networks, Inc. Network routing system for enhanced efficiency and monitoring capability
US7187687B1 (en) 2002-05-06 2007-03-06 Foundry Networks, Inc. Pipeline method and system for switching packets
US20040109463A1 (en) * 2002-12-05 2004-06-10 Alcatel Canada Inc. Efficient data transmission method
US20080028157A1 (en) * 2003-01-13 2008-01-31 Steinmetz Joseph H Global shared memory switch
US7561597B2 (en) * 2003-08-14 2009-07-14 Broadcom Corporation System and method for data packet substitution
US7489362B2 (en) * 2003-03-04 2009-02-10 Broadcom Corporation Television functionality on a chip
US6901072B1 (en) 2003-05-15 2005-05-31 Foundry Networks, Inc. System and method for high speed packet transmission implementing dual transmit and receive pipelines
US7817659B2 (en) 2004-03-26 2010-10-19 Foundry Networks, Llc Method and apparatus for aggregating input data streams
US8730961B1 (en) 2004-04-26 2014-05-20 Foundry Networks, Llc System and method for optimizing router lookup
US7657703B1 (en) 2004-10-29 2010-02-02 Foundry Networks, Inc. Double density content addressable memory (CAM) lookup scheme
US7974202B2 (en) * 2005-05-06 2011-07-05 Corrigent Systems, Ltd. Tunnel provisioning with link aggregation
US8448162B2 (en) 2005-12-28 2013-05-21 Foundry Networks, Llc Hitless software upgrades
US20070288690A1 (en) * 2006-06-13 2007-12-13 Foundry Networks, Inc. High bandwidth, high capacity look-up table implementation in dynamic random access memory
US7903654B2 (en) * 2006-08-22 2011-03-08 Foundry Networks, Llc System and method for ECMP load sharing
US8238255B2 (en) 2006-11-22 2012-08-07 Foundry Networks, Llc Recovering from failures without impact on data traffic in a shared bus architecture
US7978614B2 (en) 2007-01-11 2011-07-12 Foundry Network, LLC Techniques for detecting non-receipt of fault detection protocol packets
US8037399B2 (en) * 2007-07-18 2011-10-11 Foundry Networks, Llc Techniques for segmented CRC design in high speed networks
US8271859B2 (en) 2007-07-18 2012-09-18 Foundry Networks Llc Segmented CRC design in high speed networks
US8149839B1 (en) 2007-09-26 2012-04-03 Foundry Networks, Llc Selection of trunk ports and paths using rotation
US8190881B2 (en) * 2007-10-15 2012-05-29 Foundry Networks Llc Scalable distributed web-based authentication
US8386750B2 (en) * 2008-10-31 2013-02-26 Cray Inc. Multiprocessor system having processors with different address widths and method for operating the same
US8090901B2 (en) 2009-05-14 2012-01-03 Brocade Communications Systems, Inc. TCAM management approach that minimize movements
US8599850B2 (en) 2009-09-21 2013-12-03 Brocade Communications Systems, Inc. Provisioning single or multistage networks using ethernet service instances (ESIs)
US9846658B2 (en) * 2014-04-21 2017-12-19 Cisco Technology, Inc. Dynamic temporary use of packet memory as resource memory
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

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0613265A1 (de) * 1993-02-22 1994-08-31 ALCATEL BELL Naamloze Vennootschap Multiplexschaltung für Datenpakete
US5732041A (en) 1993-08-19 1998-03-24 Mmc Networks, Inc. Memory interface unit, shared memory switch system and associated method
US5541912A (en) * 1994-10-04 1996-07-30 At&T Corp. Dynamic queue length thresholds in a shared memory ATM switch
JPH08288965A (ja) * 1995-04-18 1996-11-01 Hitachi Ltd スイッチングシステム
JP3191854B2 (ja) * 1995-08-31 2001-07-23 日本ビクター株式会社 情報蓄積出力装置
US5901928A (en) * 1996-06-14 1999-05-11 Aptek, Inc. Active turbulence control technique for drag reduction
US5905725A (en) 1996-12-16 1999-05-18 Juniper Networks High speed switching device
US6061358A (en) * 1997-02-13 2000-05-09 Mcdata Corporation Data communication system utilizing a scalable, non-blocking, high bandwidth central memory controller and method
US6094435A (en) * 1997-06-30 2000-07-25 Sun Microsystems, Inc. System and method for a quality of service in a multi-layer network element
US6044061A (en) * 1998-03-10 2000-03-28 Cabletron Systems, Inc. Method and apparatus for fair and efficient scheduling of variable-size data packets in an input-buffered multipoint switch
TW463092B (en) * 1998-03-20 2001-11-11 Accton Technology Corp Quasi-pushout method with upper layer packet discarding discipline and packet communication system implementing the method
US6377546B1 (en) * 1998-05-12 2002-04-23 International Business Machines Corporation Rate guarantees through buffer management
US6700894B1 (en) * 2000-03-15 2004-03-02 Broadcom Corporation Method and apparatus for shared buffer packet switching

Also Published As

Publication number Publication date
EP1192753A2 (de) 2002-04-03
US7315550B2 (en) 2008-01-01
WO2001069849A3 (en) 2002-01-10
DE60130079D1 (de) 2007-10-04
EP1192753B1 (de) 2007-08-22
AU2001245284A1 (en) 2001-09-24
US6700894B1 (en) 2004-03-02
WO2001069849A2 (en) 2001-09-20
ATE371315T1 (de) 2007-09-15
US20040090976A1 (en) 2004-05-13

Similar Documents

Publication Publication Date Title
DE60130079T2 (de) Verfahren und vorrichtung zur paketvermittlung mittels eines geteilten pufferspeichers
DE69622960T2 (de) Verfahren und Vorrichtung zur Übertragung und Verarbeitung virtueller Befehle
DE69630084T2 (de) Anlage und Verfahren zur Paketierung und Segmentierung von MPEG-Paketen
DE69631055T2 (de) Speicherschnittstelleneinheit, vermittlungssystem mit gemeinsamem speicher und verfahren dazu
DE69428186T2 (de) Mehrfachsendeeinrichtung
DE69229473T2 (de) Verfahren und vorrichtung zum puffern von daten in nachrichtennetzwerkstationen
DE69431846T2 (de) System für asynchronen datentransfer und steuerung des quellenverkehrs
DE3888699T2 (de) Nachrichten-vermittlungselement.
DE69124645T2 (de) Verfahren und Schaltung zur Verkehrsformung
DE69030392T2 (de) Zur Kommunikation in asynchroner Übertragungsart geeignetes Puffergerät
DE19961138C2 (de) Multiport-RAM-Speichervorrichtung
DE69019766T2 (de) Sendeaufrufübertragungssystem.
DE69637462T2 (de) ATM-Vermittlungsstelle mit Eingangs- und Ausgangsanschlussstellen
DE60207177T2 (de) System, welches zwei oder mehr Paketschnittstellen, einen Schalter, einen gemeinsamen Paket-DMA (Direct Memory Access)-Schaltkreis sowie einen L2 (Level 2) Cache aufweist
DE69838601T2 (de) Verfahren und Vorrichtung zum Erweitern eines on-chip FIFOs in einem lokalen Speicher
DE69817756T2 (de) ATM Zellenübertragungsplanung
DE69803442T2 (de) Gerät und verfahren zur erzeugung von verwaltungspaketen zur übertragung zwischen einer netzwerkvermittlungsstelle und einer host steuereinheit
DE68928574T2 (de) Zellenvermittlungssystem mit asynchroner Zeitvielfachübermittlung
DE68919332T2 (de) Aufrufdatenübertragungssystem mit Vorrangssteuerung.
DE60026676T2 (de) Paketklassifizierungsautomat
DE69430945T2 (de) Schnelle Paketvermittlungsnetze
DE3586245T2 (de) Bildverarbeitungsgeraet und interkommunikationsbus dafuer.
EP0692893A1 (de) Vorrichtung zur Vermittlung in digitalen Datennetzen für asynchronen Transfermodus
EP1776808A1 (de) Verfahren zur speicherung von botschaften in einem botschaftsspeicher und botschaftsspeicher
DE68909117T2 (de) Vermittlungssystem zum Vermitteln von sowohl paketorientierten Daten als auch von durchschaltorientierten Daten.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, 80639 M