DE60132307T2 - Paketvermittlung - Google Patents

Paketvermittlung Download PDF

Info

Publication number
DE60132307T2
DE60132307T2 DE60132307T DE60132307T DE60132307T2 DE 60132307 T2 DE60132307 T2 DE 60132307T2 DE 60132307 T DE60132307 T DE 60132307T DE 60132307 T DE60132307 T DE 60132307T DE 60132307 T2 DE60132307 T2 DE 60132307T2
Authority
DE
Germany
Prior art keywords
requests
port
switch
output port
input
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
DE60132307T
Other languages
English (en)
Other versions
DE60132307D1 (de
Inventor
Alan Michael Grundisburg Woodbridge HILL
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.)
British Telecommunications PLC
Original Assignee
British Telecommunications PLC
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 British Telecommunications PLC filed Critical British Telecommunications PLC
Publication of DE60132307D1 publication Critical patent/DE60132307D1/de
Application granted granted Critical
Publication of DE60132307T2 publication Critical patent/DE60132307T2/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
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling

Landscapes

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

Description

  • Diese Erfindung bezieht sich auf die Paketvermittlung (oder Zellenvermittlung), insbesondere auf Verfahren zum Zuweisen von Anforderungen zum Vermitteln von einem der Eingänge einer Paketvermittlung zu einem der Ausgänge der Paketvermittlung.
  • Eingangsgepufferte Zellenvermittlungen und Paket-Router sind potentiell die Vermittlungen mit der höchstmöglichen Bandbreite für irgendwelche gegebenen Fabric- und Speichertechnologien, solche Vorrichtungen erfordern aber Zeitplanalgorithmen, um Eingangs- und Ausgangskonflikte zu lösen. Es gibt zwei Methoden für die Paket- oder Zellenzeitplanung (siehe beispielsweise A Hung et al., "ATM input-buffered switches with the guaranteed-rate property", und A Hung et al., Proc. IEEE ISCC '98, Athens, Juli 1998, S. 331–335). Die erste Methode gilt auf der Verbindungsebene, wo Bandbreitengarantien erforderlich sind. Ein geeigneter Algorithmus muss dafür zwei Bedingungen erfüllen; erstens muss er keine Überbuchung für alle Eingangsports und Ausgangsports sicherstellen und zweitens muss das Fabric-Zuteilungsproblem durch Zuweisen aller Anforderungen für Zeitschlitze im Rahmen gelöst werden.
  • Die Fabric-Zuteilung wurde bis heute mittels der Slepian-Duguid-Methode und des Paull-Theorems für umordnungsfähig nicht blockierende, leitungsvermittelte Clos-Netze (siehe Kapitel 3, J Y Hui, Switching and traffic theory for integrated broadband networks, Kluwer Academic Press, 1990) vorgeschlagen. Dieser Algorithmus auf Verbindungsebene kann als erstens Sicherstellen keiner Überbuchung und zweitens Durchführen einer Fabric-Zuteilung mittels Leitungsvermittlungs-Pfadsuchalgorithmen zusammengefasst werden. Es wurde angenommen, dass diese Algorithmusmethode auf Grund ihrer großen Rechenkomplexität nur auf der Verbindungsebene angewendet werden könnte. Aus diesem Grund verwenden Vorschläge für die Zeitplanung von verbindungslosen Paketen oder Zellen mit bester Leistung verschiedene Abgleichalgorithmen, von denen viele mit dem "Heirats"-Problem in Zusammenhang stehen (siehe D Gale und L S Shapley, "College admissions and the stability of marriage", Mathematical Monthly, 69, 9–15 (1962), und D Gusfield und RW Irving, The Stable Marriage Problem: Structure and Algorithms, MIT Press, 1989), wobei die Eingangs/Ausgangs-Verbindungen für jeden Zeitschlitz oder jede Phase der Vermittlung unabhängig gehandhabt werden, d. h. ein Rahmen von Zeitschlitzen (und daher Phasen) wird nicht verwendet. Obwohl solche Algorithmen zum Wählen eines Satzes von konfliktfreien Verbindungen zwischen Eingängen und Ausgängen für jeden Zeitschlitz, die auf zweiteiligen Maximalgrößen- und Maximalgewichts-Graphenanpassungsalgorithmen basieren, 100% Durchsatz erreichen können (N McKeown et al., "Achieving 100% throughput in an input-queued switch", Proc. IEEE Infocom '96, März 1996, Band 3, S. 296–302), sind sie auch unpraktisch langsam, wobei sie Laufzeiten der Komplexität O(N3logN) für jeden Zeitschlitz erfordern (R E Tarjan, "Data structures and network algorithms", Society for Industrial and Applied Mathematics, Pennsylvania, Nov. 1983).
  • Iterative, heuristische, parallele Algorithmen wie z. B. iSLIP sind bekannt, die die Rechenkomplexität (d. h. die zum Berechnen einer Lösung erforderliche Zeit) für Pakete oder Zellen mit bester Leistung verringern (N McKeown et al., "The Tiny Tera: a packet switch core", IEEE Micro Jan/Feb 1997, S. 26–33). Es ist garantiert, dass der iSLIP-Algorithmus in höchstens N Iterationen konvergiert, und Simulationen deuten im Durchschnitt in weniger als log2N Iterationen darauf hin. Da keine Garantien erforderlich sind, stellen dieser und ähnliche Algorithmen derzeit das bevorzugte Zeitplanungsverfahren für verbindungslose Daten auf der Zellenebene in eingangsgepufferten Zellenvermittlungen und Paket-Routern mit großen Zahlen von Ports (z. B. N ≥ 10) dar. Der iSLIP-Algorithmus wird auf den Tiny-Tera-Paketvermittlungskern angewendet, der eine virtuelle Ausgangswarteschlangenbildung (VOQ) verwendet, wobei jeder Eingangsport eine separate FIFO-Warteschlange (Warteschlange mit First-In-First-Out) für jeden Ausgang aufweist, d. h. N2 FIFOs für eine N×N-Vermittlung. Wenn wir annehmen, dass jede FIFO-Warteschlange mindestens eine Anzahl von Zellen gleich der mittleren Zellenwartezeit L speichert und dass jede Zelle eine 53-Byte-ATM-Zelle ist, dann ist die gesamte Eingangs-FIFO-Warteschlangen-Hardwarezahl O(424LN2). Mit jedem Element, das in der Lage ist, 424f Bits pro Rahmen auszutakten, ist dies ein Komplexitätsprodukt von O((424)2fLN2), was eine sehr große Komplexität ist. Unter Verwendung einer einzelnen Warteschlange in Form eines RAM in jedem Port, die als N virtuelle Warteschlangen wirkt, kann die Hardwarezahl glücklicherweise auf O(424NLN) verringert werden, und mit parallelem Auslesen, das die Anzahl von Schritten pro Rahmen auf nur f verringert, kann das gesamte Komplexitätsprodukt auf O(424fLN) verringert werden. Tabelle 1 gibt die Hardware und "Rechen"-Schritte für diese Warteschlangen zur Bereitstellung von f Zellen innerhalb eines Rahmens an.
  • Für Unicast-Pakete konvergiert der iSLIP-Algorithmus in höchstens N Iterationen, wobei N die Anzahl von Eingangs- und Ausgangsports ist. Im Durchschnitt konvergiert der Algorithmus in weniger als log2N Iterationen. Die physikalische Hardwareimplementierung verwendet N Round-Robin-Freigabezuteiler für die Ausgangsports und N identische Annahmezuteiler für die Eingangsports. Jeder Zuteiler weist N Eingangsports und N Ausgangsport auf, was insgesamt N2 Verbin dungen ausmacht. Die Gesamtmenge an Hardware hängt von der genauen Konstruktion der Round-Robin-Zuteiler ab. N McKeown et al., op cit, verwenden einen Prioritätscodierer, um die nächste Anforderung von dem Port zu identifizieren, der am nächsten zu einem vorbestimmten Port mit höchster Priorität liegt (siehe 1). Der Prioritätscodierer verringert die Anzahl von Verbindungen auf log2N parallele Verbindungen, um den Zeiger zu ändern, falls erforderlich. Die log2N parallelen Verbindungen werden dann durch einen Decodierer wieder auf bis zu N Verbindungen erweitert. Die Details der Hardwarekomplexität der Zuteiler sind in N McKeown, Scheduling Algorithms for Input-Queued Cell Switches, PhD Thesis, University of California, Berkeley, 1995, gegeben. Die Wachstumsrate für das vollständige Ablaufsteuerprogramm ist O(N4), wobei jeder Zuteiler O(N3) ist. Für eine 32×32-Zellenvermittlung (was die Größe der Tiny-Tera-Vermittlung ist) sind 421408 Gatter mit 2 Eingängen erforderlich. Dies kann für eine solche kleine Vermittlung durchaus annehmbar sein, aber die Wachstumsrate von O(N4) ist äußerst groß.
  • Um die gesamte Hardware und Rechenkomplexität zu minimieren, ist die beste Struktur zum Konstruieren des Codierers ein Binärbaum, der O(2N) Elemente (für großes N) und nur log2N Schritte pro Iteration erfordert, während der Decodierer nur O(N) Elemente benötigt. Eine Pipelineverarbeitung kann nicht verwendet werden, um auf einen Schritt pro Iteration zu verringern, da die Zeiger nicht aktualisiert werden können, bis die Einzelbitanforderungen durch beide Sätze von Zuteilern zum Entscheidungsregister gelaufen sind. Die gesamten Hardware- und Rechenkomplexitäten sind nachstehend in Tabelle 1 gegeben. Die Hardwarekomplexität wächst nun aufgrund des Binärbaum-Codierers und -Decodierers vielmehr mit O(N2) als O(N4) an.
    Hardwarezahl Rechenschritte pro Rahmen Hardware/Rechenkomplexität-Produkt
    Eingangs-RAM-Warteschlangen 424LN f
    Mittlere Konvergenz O(6N2) O(4flog2N(1 + log2N)) O(24fN2log2N(1 + log2N))
    Garantierte Konvergenz O(6N2) O(4fN(1 + log2N)) O(24fN3(1 + log2N))
    Tabelle 1. Hardware- und Rechenkomplexitäten des iSLIP-Algorithmus zur Zeitplanung von f Paketen pro Port in einem Rahmen von f Zeitschlitzen.
  • Das gesamte Hardware/Rechenkomplexitäts-Produkt O(24fN3(1 + log2N)) des iSLIP-Algorithmus zur Zeitplanung von f Paketen pro Port wäre nicht geringer als jenes der Maximalgrößen- und -gewichts-Abgleichalgorithmen von N McKeown '96, März 1996, Band 3, S. 296–302, wenn Konvergenz garantiert werden muss. Es besteht eine Verringerung auf O(24fN2log2N(1 + log2N)) für die mittlere Anzahl von Rechenschnitten. Der Hauptvorteil des iSLIP-Algorithmus ist seine parallele Art, die ermöglicht, dass die Anzahl von Rechenschritten gegen die Hardwarekomplexität ausgetauscht wird, was folglich die Rechenzeiten um einen Faktor N2 auf Kosten der Erhöhung der Hardware um denselben Faktor verringert. Es ist interessant zu bemerken, dass die Hardwaremengen für die Eingangs-RAM-Warteschlangen jene, die für die Zeitplanungselektronik erforderlich sind, weit übersteigen.
  • Gemäß einem ersten Aspekt der Erfindung wird ein Verfahren zum Zuweisen von Vermittlungsanforderungen in einer Paketvermittlung geschaffen, wobei das Verfahren die folgenden Schritte umfasst:
    • (a) Sammeln von Vermittlungsanforderungsdaten an jedem Eingangsport, wobei die Vermittlungsanforderungsdaten die Anzahl von Vermittlungsanforderungen zu und von jedem Port enthalten;
    • (b) Verarbeiten der Vermittlungsanforderungsdaten für jeden Eingangsport, um Anforderungsdaten für jede Eingangsport/Ausgangsport-Paarbildung zu erzeugen;
    • (c) Vergleichen der Anzahl von Anforderungen von jedem Eingangsport zu jedem Ausgangsport mit einer vorgegebenen maximalen Anforderungskapazität jedes Eingangsports und jedes Ausgangsports; und
    • (d) Erfüllen aller Anforderungen für jene Eingangs/Ausgangs-Paare, für die die Gesamtanzahl von Anforderungen kleiner oder gleich der maximalen Anforderungskapazität jedes Eingangsports und jedes Ausgangsports ist;
    • (e) Verringern der Anzahl von Anforderungen für jene Eingangs/Ausgangs-Paare, für die die Gesamtanzahl von Anforderungen größer als die maximale Anforderungskapazität jedes Eingangsports und jedes Ausgangsports ist, so dass die Anzahl von Anforderungen kleiner oder gleich der maximalen Anforderungskapazität für jeden Eingangsport und jeden Ausgangsport bleibt; und
    • (f) Erfüllen der verbleibenden Anforderungen.
  • Gemäß einem zweiten Aspekt der Erfindung wird ein Verfahren zum Zuweisen von Vermittlungsanforderungen in einer Paketvermittlung geschaffen, wobei das Verfahren die folgenden Schritte umfasst:
    • (a) Sammeln von Vermittlungsanforderungsdaten an jedem Eingangsport, wobei die Vermittlungsanforderungsdaten die Anzahl von Vermittlungsanforderungen zu und von jedem Port enthalten;
    • (b) Verarbeiten der Vermittlungsanforderungsdaten für jeden Eingangsport, um Anforderungsdaten für jede Eingangsport/Ausgangsport-Paarbildung zu erzeugen;
    • (c) Erfüllen einer ersten Vermittlungsanforderung von allen Eingangsport/Ausgangsport-Paarbildungs-Anforderungsdaten, wobei jede solche Anforderung nur dann zugewiesen wird, wenn die vorgegebene maximale Anforderungskapazität des jeweiligen Ausgangsports nicht erreicht worden ist; und
    • (d) Erfüllen weiterer Vermittlungsanforderungen durch die iterative Anwendung des Schrittes (c), bis die maximale Anforderungskapazität jedes Ausgangsports erreicht worden ist.
  • Die vorliegende Erfindung kann außerdem vorsehen, dass unerfüllte Vermittlungsanforderungen zur Verwendung in der nächsten Phase der Vermittlungsanforderungszuweisung reserviert werden.
  • Die Erfindung wird nun mit Bezug auf die folgenden Fig. beschrieben, in denen
  • 1 eine schematische Darstellung einer bekannten Anordnung zum Zuweisen von Vermittlungsanforderungen ist;
  • 2 eine schematische Darstellung einer Vorrichtung zum Zählen von Vermittlungsanforderungen gemäß der vorliegenden Erfindung ist;
  • 3 eine schematische Darstellung einer zweiten Vorrichtung zum Zählen von Vermittlungsanforderungen gemäß der vorliegenden Erfindung ist;
  • 4 eine schematische Darstellung einer Vorrichtung zum Zählen der Vermittlungsanforderungen für jeden Ausgangsport einer Paketvermittlung gemäß der vorliegenden Erfindung ist;
  • 5 eine schematische Darstellung einer Vorrichtung zum Zählen der Vermittlungsanforderungen für jeden Ausgangsport einer Paketvermittlung gemäß einer alternativen Ausführungsform der vorliegenden Erfindung ist;
  • 6 ein Graph ist, der die Leistung des iSLIP-Algorithmus mit jenem der vorliegenden Erfindung vergleicht;
  • 7 ein Graph ist, der das Leistungsverhältnis des iSLIP-Algorithmus zu jenem der vorliegenden Erfindung zeigt;
  • 8 ein zweiter Graph ist, der die Leistung des iSLIP-Algorithmus mit jenem der vorliegenden Erfindung vergleicht; und
  • 9 ein zweiter Graph ist, der das Leistungsverhältnis des iSLIP-Algorithmus zu jenem der vorliegenden Erfindung zeigt.
  • Wenn die Zeitplanung von verbindungslosen Zellen mit bester Leistung in einer eingangsgepufferten Vermittlung, einem Router oder Netz betrachtet wird, könnte jeder der Eingangsports als eine FIFO-Warteschlange aufweisend angenommen werden, von denen jede für einen anderen Ausgangsport bestimmt ist (d. h. virtuelle Ausgangswarteschlangenbildung – VOQ). Obwohl die Flüsse die beste Leistung aufweisen, wollen wir sie auf einer rahmenweisen Basis zeitlich planen. Es besteht jedoch keine Vorreservierung von Zeitschlitzen innerhalb dieses Rahmens, folglich werden eine Anzahl f von Zellen an jedem Eingangsport in f Zeitschlitzen in die Warteschlange gestellt und werden gemäß ihren Ausgangsportzielen in einer solchen Weise zeitlich geplant, dass ein Konflikt vermieden wird. Eine spezielle Zelle oder ein spezielles Paket sollte über das Vermittlungs-Fabric während irgendeines von f Zeitschlitzen übertragen werden können. Vor dem Durchführen der Fabric-Zuteilung müssen wir, um sicherzustellen, dass kein Ausgangsportkonflikt in jedem Zeitschlitz besteht, zuerst sicherstellen, dass keine Überbuchung von Eingangs- und Ausgangsports innerhalb des Rahmens vorliegt.
  • Wenn die Gesamtzahl von Zellen Nf (wobei N die Anzahl von Eingangsports ist und f die Anzahl von Zeitschlitzen in einem Rahmen ist), die über eine Zellen- oder Paketvermittlung vermittelt werden sollen, auf einer rahmenweisen Basis mittels eines Wegsuchalgorithmus für eine Leitungsvermittlung mit 3 Stufen zusammengerechnet werden sollen, dann könnte jede Zelle als Port an der Leitungsvermittlung dargestellt werden. Die Anzahl von Rechenschritten, die erforderlich sind, um keine Überbuchung sicherzustellen, hängt dann von der Menge an Hardware ab, die annehmbar ist. Wenn O(fNlog2(fN)) Komponenten verwendet werden, dann sind O(fN) Rechenschritte erforderlich. Die Anzahl von Rechenschritten kann unter Verwendung eines Batcher-Sortiernetzes auf O(log22(fN)) verringert werden, wenn mehr Hardware annehmbar ist, d. h. O(fNlog2 2(fN)), aber diese Hardwaremenge kann zu groß sein, als dass sie annehmbar ist. Jede Zelle als Port an einer Leitungsvermittlung darzustellen, ist jedoch eine übermäßig einschränkende Zwangsbedingung in einer Zellenvermittlung. Tatsächlich ist es in einer Zellenvermittlung nur erforderlich sicherzustellen, dass die Anzahl von Zellen, die für jeden der N Ausgangsports bestimmt sind, die Anzahl von Zellen oder Zeitschlitzen im Rahmen nicht übersteigt, da keine Anforderung besteht, den Ausgangsport in irgendeinem speziellen Zeitschlitz zu verlassen.
  • Die vorliegende Erfindung betrifft ein Verfahren zum Sicherstellen keiner Überbuchung der Eingangs- und/oder Ausgangsports. Eine N×N-Anforderungsmatrix R wird definiert, deren Elemente ri,j die Anzahl von Zellen im Eingangsport i, die für den Ausgangsport j bestimmt sind, darstellen. Die zwei Bedingungen, die keine Überbuchung sicherstellen, sind einfach:
    Figure 00100001
  • In der Praxis könnten Zellen von mehr als f Zeitschlitzen in jedem Eingangsport in dieser Prozedur betrachtet werden, wenn Zellen, die für überbuchte Ports bestimmt sind, verworfen werden müssen. Verworfene Zellen könnten entweder vollständig verloren gehen oder für spätere Versuche weiter in die Warteschlange gestellt werden.
  • Um die Anzahl von Anforderungsmatrixelementen festzulegen, werden N2 Zähler festgelegt, einer für jede Warteschlange. 2 zeigt eine schematische Darstellung einer möglichen Eingangsportanordnung zum Zählen der Anforderungsmatrixelemente ri,j. Jeder der N Eingangsports 10 in ein Vermittlungs-Fabric 20 besitzt N FIFO-Warteschlangen 11, N Zähler 12 und N Vermittlungen 13, um Zellenanforderungen zum entsprechenden Zähler 12 zu lenken. Unter der Annahme, dass nur f Zellen in jedem Port innerhalb der Anforderungsmatrix gezählt werden, erfordert dann jeder Zähler log2(f + 1) Zählstufen, was insgesamt O(N2log2f) Zählerelemente erfordert. Wenn angenommen wird, dass die individuellen Zellenzielanforderungen in diese Zähler als einzelne Bits eingegeben werden, sind maximal O(f) Rechenschritte für irgendeinen Zähler erforderlich, was ein gesamtes Hardware/Rechenkomplexitäts-Produkt für die Zähler von O(fN2log2f) ergibt. 2 zeigt, dass wir auch O(N) Vermittlungen in jedem Eingangsport anfordern, um die Zellenanforderungen zum korrekten Zähler zu lenken, d. h. insgesamt O(N2). Die Geschwindigkeit dieser Vermittlungen muss ausreichend sein, damit innerhalb eines Rahmens von f Schlitzen flog2N Bits gelenkt werden können. Das gesamte Komplexitätsprodukt für die Vermittlungen ist daher fN2log2N.
  • Das Verfahren, um Zellenanforderungen in die Warteschlange zu stellen, kann weiter verfeinert werden. In 2 besitzt jeder Port N FIFO-Warteschlangen, die jeweils zum Puffern von bis zu f Zellen in der Lage sind. Dies erfordert O(fN2log2N) Pufferelemente, die jeweils zum Kippen von flog2N mal pro Rahmen in der Lage sind, d. h. ein Komplexitätsprodukt von O(f2N2(log2N)2). Unter Verwendung einer einzelnen Warteschlange in Form eines RAM in jedem Port, die als N virtuelle Warteschlangen wirkt, kann die Hardwarezahl glücklicherweise auf O(fNlog2N) mit derselben Anzahl von Schritten pro Rahmen verringert werden, was ein Komplexitätsprodukt von insgesamt O(f2N(log2N)2) erfordert. Da eine im RAM gespeicherte spezielle Zelle irgendeinem der f Zeitschlitze innerhalb des Rahmens zugewiesen wird, kann nun auch eine Umordnung in einer Ausgangswarteschlange erforderlich sein, wenn es erwünscht ist, die Zellenreihenfolge zwischen den Eingangs- und Ausgangsports zu bewahren. Dies ist nun im Wesentlichen dasselbe wie der herkömmliche Zeitschlitz austausch in zeitlich verzahnten Leitungsvermittlungen. Es wäre jedoch möglich, die Zellenreihenfolge einer virtuellen Eingangswarteschlange zu bewahren, indem Zeitschlitze in der Zeitreihenfolge den Zellen zugewiesen werden, die für denselben Ausgangsport bestimmt sind. Selbst mit effizienter Pufferung in einer einzelnen Warteschlange in jedem Eingangsport ist die Zellenpufferung die komplexeste Funktion in einer Vermittlung, die die größte Menge der schnellsten Elektronik erfordert. Die Zellen sind hier nur die Anforderungszellen, die nur Ausgangsport-Zieladressen (und möglicherweise Eingangsportadressen sowie andere Parameterwerte) enthalten. Eine viel größere Pufferkomplexität ist für die tatsächlichen Zellen oder Pakete erforderlich, die alle Kopfinformationen und Nutzinformationen tragen.
  • 3 zeigt eine verbesserte Anordnung zum Zählen der Anforderungsmatrixelemente. Ein serieller Eingangsstrom von Zellenanforderungen wird in ein paralleles Wort umgesetzt, das dann über einen parallelen Bus 31 übertragen wird. Jede Leitung des parallelen Busses ist über Gatter 32 mit Abschnitten des RAM 33 verbunden, wobei jeder RAM-Abschnitt 34 eine individuelle Zellenanforderung von log2N Bits hält. Jeder RAM-Abschnitt kann Zellenanforderungen von dem und in den parallelen Bus sowohl lesen als auch schreiben. Wenn die Zellenanforderungen in die RAM-Abschnitte 34 geschrieben werden, werden sie auch durch den Decodierer 35 in Einzelbit-Anforderungen decodiert und zur Matrix von Zählern 36 übertragen. Jeder Eingangsport erfordert eine Matrix 36 mit N Zählern, so dass die Anforderung für eine N×N-Vermittlung N2 ist. Das gesamte Komplexitätsprodukt, das vorher durch die RAM-Warteschlangen dominiert wurde, ist nun um einen Faktor log2N verringert, der für großes N eine Größenordnung sein könnte. Diese Verringerung geschieht vielmehr hinsichtlich der RAM-Zugriffsgeschwindigkeiten als der Menge an Pufferspeicher.
  • Sobald alle Matrixelemente gezählt wurden, besteht der nächste Schritt des Verfahrens der vorliegenden Erfindung darin, die Anforderungsmatrixelemente ni,j zu addieren, um die Summe der Anforderungen für jeden Ausgangsport der Vermittlung zu bilden. Wenn mehr als f Anforderungen berücksichtigt werden, dann muss die Summe der Anforderungen von jedem Eingangsport auch berechnet werden. 4 zeigt eine Matrix von N2 Zählern 41, die jeweils die Anzahl von Anforderungen zum Vermitteln von einem gegebenen Eingangsport zu einem gegebenen Ausgangsport enthalten, z. B. hält der Zähler [1, 2] Anforderungen zum Vermitteln vom ersten Eingangsport zum zweiten Ausgangsport und der Zähler [1, N] hält Anforderungen zum Vermitteln vom ersten Eingangsport zum N-ten Ausgangsport. Die Ausgänge aus den Zählern 41 laufen in eine Matrix von N Addierern 42, wobei jeder Addierer einem der Ausgangsports des Vermittlungs-Fabric entspricht. Folglich verbinden die Ausgänge der Zähler, die Anforderungen zum Vermitteln zum ersten Ausgangsport halten, alle mit dem Eingang des Addierers 42, der dem ersten Ausgangsport des Vermittlungs-Fabric zugeordnet ist. Die Zählwerte können als log2f breite Worte dargestellt werden, von denen jedes nacheinander zur Addiererschaltung 43 durch eine zugehörige Vermittlungsmatrix 44 vermittelt werden muss. Für herkömmliche Addiererkonstruktionen sind die Software- und Hardwarekomplexitäten nicht größer als zum Zählen der individuellen Anforderungsmatrixelemente.
  • Der dritte Schritt des Verfahrens der vorliegenden Erfindung besteht darin, die Summierungen für jeden Ausgangsport mit f zu verglei chen, welches die maximale Anzahl von Zellen ist, die von jedem Eingangsport zu jedem Ausgangsport in jedem Rahmen gesandt werden können. Wenn irgendeine Zeile oder Spalte der Anforderungsmatrix f übersteigt, muss die Anzahl von Anforderungen auf nicht mehr als f verringert werden. Ein Verfahren zum Erreichen dessen besteht darin, die Anzahl von zulässigen Anforderungen auf eine Anzahl zu verringern, die zur tatsächlichen Anzahl von Anforderungen proportional ist, d. h.
  • Figure 00140001
  • Dieser Schritt ist effizient, wenn eine starke Konzentration von Anforderungen an einem oder wenigen Eingangs- oder Ausgangsports besteht. Wenn jedoch der Verkehr gleichmäßig von den Eingängen zu den Ausgängen verteilt ist, so dass jedes Element eine kleine Anzahl von Anforderungen aufweist, dann ist das Verfahren weniger effizient. In einer alternativen Ausführungsform der vorliegenden Erfindung werden die Anforderungen in der folgenden Weise zugewiesen. Die Zuweisung von Anforderungen muss gerecht durchgeführt werden, so dass jede Anforderung eine Chance hat, dass sie innerhalb des Rahmens gewährt wird, während die Bedingung "keiner Überbuchung" erfüllt wird, um die von individuellen Anforderungen gesehene mittlere Verzögerung niedrig zu halten. Ferner muss jede virtuelle Ausgangswarteschlange eine Chance haben, dass ihr eine Anforderung innerhalb des Rahmens gewährt wird, um eine Verarmung zu verhindern. Um diese Anforderungen zu erfüllen, muss jedem ri,j von allen Eingangsports mindestens eine Anforderung gewährt werden, wenn sie nach einer oder mehreren Anforderungen fragen, da einem Port nicht eine große Anzahl von Anforderungen gewährt werden kann, während anderen Ports keine gewährt wird.
  • Die Aufgaben des Summierens von Anforderungen und dann Verringerns der Anzahl von Anforderungen, wie erforderlich, werden nun durch einen einzelnen Mechanismus ersetzt, der iterativ die Anforderungen zusammenzählt, indem eine auf einmal allen ri,j-Zählern gewährt wird, bis die Summe der Anforderungen, die für irgendeinen Ausgangsport bestimmt sind, gleich der Anzahl f von Schlitzen in dem Rahmen ist. An diesem Punkt können diesem Ausgang keine weiteren Anforderungen gewährt werden. Bei der ersten Iteration wird allen Anforderungsmatrizes ni,j mit einer oder mehreren Anforderungen für einen gegebenen Ausgangsport j eine dieser Anforderungen gewährt, so dass bis zu N Anforderungen in der ersten Iteration gewährt werden können (wobei hier angenommen wird, dass f ≥ N). Jeder der von Null verschiedenen Zähler der Anforderungsmatrix ri,j wird nun um Eins dekrementiert (d. h. eine 1 wird von jedem log2f breiten Wort subtrahiert), bereit für die nächste Iteration. Unterdessen werden die erfolgreichen Anforderungen, die jedem Ausgangsport gewährt werden, die als Einzelbits in paralleler Form von jedem ri,j-Zähler angegeben sind, beispielsweise durch einen Addierer mit parallelen Eingangsports addiert, wobei die individuellen gewährten Anforderungsbits in ein Wort mit der Länge log2(2N) Bits umgesetzt werden.
  • 5 zeigt eine Schaltung, die verwendet werden kann, um die alternative Ausführungsform der Erfindung zu implementieren. Die Schaltung umfasst eine Matrix von N2 Anforderungsmatrizes 41 (wie in 4 gezeigt und vorstehend beschrieben) und N Addierelemente 51. Die Addierelemente 51 umfassen zusammen einen Parallelbitaddierer 52, der die Einzelbitanforderungen von jeder zugehörigen Anforderungsmatrix 41 parallel empfängt und ein log2(2N) breites Wort erzeugt. Der Ausgang jedes Parallelbitaddierers 52 ist mit einem jeweiligen log2(2f) breiten Addierer 53 verbunden.
  • Es sind N solche Paralleladdierer 52 vorhanden, von denen jeder 4N Binäraddierer erfordert. Die Anzahl von Schritten, die in jeder Iteration erforderlich sind, um die Summe der Anforderungen zu erhalten, ist log2N·log2(2N)/2. Jene ri,j-Zähler, die eine zweite Anforderung für einen gegebenen Ausgangsport haben, besitzen ein zweites Einzelbit, das durch die Paralleladdierer in einer zweiten Iteration des vorstehend beschriebenen Prozesses summiert wird. Insgesamt könnten nicht weniger als f Iterationen vorliegen, wenn nur ein Eingangsport Anforderungen aufweist, die für irgendeinen der Ausgangsports bestimmt sind. Beim anderen Extrem könnte für eine gleichmäßige Verkehrsverteilung, bei der ein gegebener Ausgang Zellen von verschiedenen Eingängen empfangt, nur eine Iteration erforderlich sein. Da keine Pufferung innerhalb der Paralleladdierer besteht, kann eine Pipelineverarbeitung verwendet werden, um jede der Iterationen zu summieren. Die maximale Anzahl von Schritten, die für ein Maximum von f Iterationen erforderlich sind, ist (f + log2N·log2(2N)/2). Die Komplexitäten sind in Tabelle 4 zusammengefasst.
  • Am Ausgang jedes Paralleladdierers 52 befindet sich eine zeitliche Folge von bis zu f log(2N) breiten Worten. Die aufeinander folgenden Worte müssen durch den Addierer 53 auch nacheinander addiert werden, um die Gesamtzahl von Anforderungen, die einem Ausgangsport gewährt werden, zu erhalten. Da diese Zahl f (d. h. die Anzahl von Zeitschlitzen in dem Rahmen) nicht übersteigen kann, kann dies unter Verwendung eines log2(2f) breiten Addierers durchgeführt werden. Die Addiererkonstruktion in 4 verwendet O(log2 2(2f)) Halbaddierer. Alternativ könnte eine herkömmliche Addie rerkonstruktion, die log2(2f) Volladdierer verwendet, verwendet werden.
  • Die Folge von f log(2N) breiten Worten kann in einem Puffer mit der Größe f·log2(2N) gespeichert werden, falls erforderlich. Diese können dann nacheinander mit einer geeigneten Rate über Vermittlungen für den folgenden log2(2f) breiten Addierer ausgetaktet werden. Der log2(2f) breite Addierer 53 berechnet die Gesamtzahl von Anforderungen, die allen Eingangsports gewährt werden, die für einen speziellen Ausgangsport bestimmt sind (und diese Gesamtzahl darf f nicht übersteigen). Bei der Iteration, die die Gesamtzahl über f treibt, muss das Zählen für diesen Ausgangsport gestoppt werden. Jeder Zähler der Anforderungsmatrix ni,j, dessen Zellenanforderungen für diesen Ausgangsport bestimmt sind, muss beraten werden und einen Datensatz der Anzahl von Iterationen, an denen er teilgenommen hat, behalten. Es ist nur eine Anzahl von Anforderungen gleich der Anzahl von Iterationen, für die die Gesamtzahl von Anforderungen für einen gegebenen Ausgangsport ≤ f ist, zulässig. Wenn die Gesamtzahl bei der vorherigen Iteration geringer als f ist, dann können bis zu N zusätzliche Anforderungen bis zur Gesamtzahl von f zugewiesen werden (wenn f ≥ N). Dies kann einfach durch Untersuchen des Zustandes jedes Zählers der Anforderungsmatrix ri,j wiederum in einem Maximum von N Schritten durchgeführt werden. Wenn f < N, dann können bis zu f zusätzliche Anforderungen zugewiesen werden. Dies kann auch ein Maximum von N Schritten dauern, indem der Zustand jedes Anforderungsmatrixzählers der Reihe nach untersucht wird, und zwar in Abhängigkeit von den Orten der Anforderungen, die um die N Zähler verteilt sind. Jeder der Anforderungsmatrixzähler weiß nun, wie viele Anforderungen ihm zugewiesen wurden. Um die Gerechtigkeit zwischen den Eingangsports, die für einen speziellen Ausgangsport bestimmt sind, aufrechtzuerhalten, kann ein Zeiger verwendet werden, so dass zusätzliche Anforderungen bevorzugt verschiedenen Eingangsports in verschiedenen Rahmen zugewiesen werden können. (Ein spezielles Muster von Anforderungen könnte natürlich derart sein, dass denselben Eingangsports tatsächlich zusätzliche Anforderungen in verschiedenen Rahmen zugewiesen werden). Es gibt viele Weisen, in denen ein Zeiger verwendet werden könnte, um zusätzliche Anforderungen zuzuweisen, einschließlich existierender Round-Robin-Verfahren. Die einfachste Weise bestünde darin, den Zeiger kontinuierlich um die Eingangsports umlaufen zu lassen, wobei eine Anforderung auf einmal irgendeinem anfordernden Port zugewiesen wird, wobei gestoppt wird, wenn die erforderliche Anzahl von zusätzlichen Anforderungen bis zu N gewährt wurde. Der nächste Rahmen, der anschließend zusätzliche Anforderungen zuweisen muss, beginnt dann ab dieser Zeigerposition.
  • Es wäre möglich, die N Schritte, die erforderlich sind, um die zusätzlichen Anforderungen zuzuweisen, auf O(log2N) Schritte zu verringern, indem ein (N,N)-Konzentrator verwendet wird, um Anforderungen nebeneinander zu packen, so dass nur die erforderliche Anzahl bis zu N von diesen konzentrierten Anforderungen zum Parallelbitaddierer torgesteuert oder durchgeschaltet werden kann. Die Konzentratorkonstruktion sollte vorzugsweise derart sein, dass die relativen Positionen der Anforderungen am Ausgang des Konzentrators bewahrt werden, wie jene in T Szymanski, "Design principles for practical self-routing non-blocking switching networks with O(NlogN) bit-complexity", IEEE Trans. On Computers, Band 46, Nr. 10, 1057–1069 (1997). Die Torsteuerung oder Vermittlung der Konzentratorausgänge könnte mittels eines modifizierten Decodierers mit log2N Stufen erreicht werden, der nicht nur beispielsweise eine logische " 1" am entsprechenden nummerierten Decodiererausgangsport erzeugt (der den Konzentratorausgangsport steuert), um den letzten von bis zu N Ports darzustellen, der zum Addierer durchgelassen werden soll, sondern auch durch seine log2N Stufen eine logische "1" zu allen Decodiererausgängen (und gesteuerten Konzentratorausgängen) ausbreitet, die über dem letzten von bis zu N Ports liegen. In dieser Weise liefern alle Decodiererausgangsports über und einschließlich des decodierten Freigabebits ("1"-en) zu den Konzentratorausgangsports, die sie steuern, und alle Decodiererports unter dem decodierten liefern Sperrbits ("0"-en) zu den Konzentratorausgangsports, die sie steuern. Da sich der Zeiger in irgendeiner der N Zählerpositionen befinden könnte und wir vorzugsweise Anforderungen beginnend von der Zeigerposition durchlassen wollen, könnte der Prozess des Zuweisens von zusätzlichen Anforderungen in zwei Schritte aufgeteilt werden.
  • Im ersten werden nur die Anforderungen einschließlich und unter der Zeigerposition zum Konzentrator zur Torsteuerung oder zum Durchschalten zum Addierer gesandt. Das Sperren der Anforderungen über der Zeigerposition kann durch einen ähnlich modifizierten Decodierer durchgeführt werden. Im zweiten Teil werden nur diejenigen Anforderungen, die über der Zeigerposition liegen, zum Konzentrator durchgelassen. Die gesamte Hardwarekomplexität, die für den Konzentrator und den Decodierer unter Verwendung dieser Konstruktion erforderlich ist, ist O(3N2log2N) und die Anzahl von Rechenschritten unter Verwendung der Szymanski-Konzentratorkonstruktion ist O(8log2N).
  • In einer weiteren alternativen Ausführungsform der vorliegenden Erfindung könnte das Zählen und Summieren von Anforderungen wie vorstehend beschrieben durchgeführt werden, außer dass das Zählen und Summieren über die Iteration hinaus, die die Gesamtzahl von Anforderungen für einen speziellen Ausgangsport über f treibt, fortfahren kann, so dass die vollständige Gesamtzahl von Anforderungen gezählt werden kann. Der log2(2f) breite Addierer müsste nun ein log2(2fN) breiter Addierer mit einer Hardwarezahl von Nlog2(2Nf)·log2(4Nf)/2; Rechenschritten O(flog2(2Nf)); und einem Gesamtkomplexitätsprodukt O(Nflog2 2(2Nf)·log2(4Nf)/2) sein. Ferner könnte es auch möglich sein, dass die Zähler Zellenanforderungszählwerte von vorherigen Rahmen halten und diese zu den Zählwerten von jedem neuen Rahmen addieren. Dies würde ermöglichen, dass laufende Summen oder vielleicht gewichtete Mittelwerte verwendet werden, die längere Zeitschlitze abdecken als ein einzelner Rahmen, wenn die verwendeten Zellenwarteschlangenlängen länger sind als eine Rahmenlänge. Die Anzahl von Zellenannahmen zwischen Eingangs- und Ausgangsports könnte dann vielleicht auf einer gerechteren Basis in Bezug auf längerfristige Flüsse zwischen Eingangs- und Ausgangsports berechnet werden.
  • Ob die verwendeten tatsächlichen Warteschlangenlängen länger sind als die Rahmenlänge oder nicht, d. h. selbst wenn erfolglose Zellen innerhalb jedes Rahmens verworfen werden, kann es tatsächlich vorteilhaft sein, dass die Anzahl von Zellenannahmen innerhalb jedes Rahmens vielmehr auf eine solche längerfristige Messung von Verkehrsflussanforderungen zwischen Ports als nur die Zellenanforderungen innerhalb des Rahmens selbst bezogen werden. Die Anzahl von Zellenannahmen könnte natürlich auch auf eine Kombination eines längerfristigen Flusses und Anforderungen "innerhalb eines Rahmens" bezogen werden.
  • Sobald die Anzahl von Anforderungen ri,j, die zwischen jedem Eingangs- und Ausgangsport innerhalb eines Rahmens zugewiesen werden, bekannt ist, müssen die individuellen Zellenanforderungen, die in RAM-Warteschlangen gepuffert werden, identifiziert werden. Dies kann durch erneutes Laufen der individuellen Zellenanforderungen aus den RAM-Warteschlangen, durch die Decodierervermittlungen und erneutes Zählen derselben in den Anforderungsmatrixzählern erreicht werden. Diesmal wird jeder Zähler auf seine zugewiesene Gesamtzahl gesetzt und kann durch jedes Zellenanforderungsbit, das er empfängt, dekrementiert werden. Während der Zähler immer noch über Null liegt, wird ein einzelnes Bit (z. B. eine "1") zur RAM-Warteschlange in die Zellenposition zurückgesandt, die dem aktuellen Anforderungsbit entspricht, was eine Zellenannahme bedeutet. Wenn ein Zellenanforderungsbit den Zähler auf Null dekrementiert, und für alle anschließenden Anforderungsbits wird ein einzelnes Bit (z. B. eine "0") zur entsprechenden RAM-Warteschlangenzellenposition zurückgesandt, um die Nicht-Annahme dieser speziellen Zellenanforderung anzugeben. Der Zustand (angenommen oder abgelehnt) aller in RAM-Warteschlangen gespeicherten Zellenanforderungen ist nun festgelegt. Die Hardware- und Rechenkomplexitäten sind dieselben wie für die erste Anzahl von Matrixelementen ri,j, außer dass zusätzliche N(N + f) Vermittlungen erforderlich sind. Die zusätzliche Anzahl von Schritten, die durch diese erforderlich sind, ist f. Alle angenommenen Zellenanforderungen sind nun dazu bereit, dass ihre Zeitschlitze zur Übertragung über das Vermittlungs-Fabric (Fabric-Zuteilung) berechnet werden.
  • Ausschließlich der erforderlichen Zellen- oder Paketpufferung in RAM-Warteschlangen, für die kein wesentlicher Unterschied besteht, ist das Hardware/Rechenkomplexität-Produkt des Verfahrens der vorliegenden Erfindung um O(log2N) kleiner als iSLIP für alle Hardwareelemente. Wenn die schlimmsten Werte über alle Hardwareelemente genommen werden, wobei wieder die Zellenpufferung ausgeschlossen wird, drückt sich dies tatsächlich in um denselben Faktor O(log2N) weniger Rechenschritten als iSLIP aus, aber auf Kosten von um denselben Faktor O(log2N) größeren Hardwaremengen für einige der Hardwareelemente. Trotzdem sind die für das Verfahren der vorliegenden Erfindung erforderlichen Hardwaremengen viel kleiner als die Zellenpufferhardware.
  • 6 zeigt die Anzahl von Rechenschritten für den iSLIP-Algorithmus mit mittlerer Konvergenz (durchgezogene Linie) und das Verfahren der vorliegenden Erfindung [gestrichelte Linie] für eine kleine Vermittlung mit N = 32 Eingangs- und Ausgangsports als Funktion der Anzahl von betrachteten Zeitschlitzen f. 7 zeigt das Verhältnis der Rechenschritte für die zwei Algorithmen, das ein Minimum von 0,32 für f = 32 Zeitschlitze erreicht. Obwohl dies bedeutet, dass das Verfahren der vorliegenden Erfindung ein mehr als dreimal so schneller Algorithmus wie iSLIP ist, erfordert es, dass Zellen für 32 Zeitschlitze gepuffert werden, um dieses minimale Verhältnis zu erreichen. Das Verhältnis ist jedoch etwa 1/3 für alle Zahlen von Zeitschlitzen von 8 aufwärts, so dass irgendeine gewünschte Zellenwartezeit gewählt werden könnte. Die Vorteile eines Algorithmus auf Rahmenbasis werden für Vermittlungen mit mehr Ports N signifikanter. 8 und 9 zeigen die äquivalenten Graphen wie 6 und 7 für den Fall, in dem N = 256 Ports ist. Hier dauert das Verfahren der vorliegenden Erfindung minimal nur 0,195 mal die iSLIP-Rechenzeit, was optimal f = 192 Zeitschlitze erfordert. Wiederum kann die praktische Anzahl von Zeitschlitzen irgendetwas von 64 aufwärts sein und dennoch einen etwa 5-fachen Geschwindigkeitsvorteil bereitstel len. Folglich sind signifikante Rechenzeitverringerungen erreichbar, selbst wenn die Anzahl von verwendeten Zeitschlitzen f gleich der Anzahl von Ports N gemacht wird.
  • Das gesamte Hardware/Rechenkomplexität-Produkt des Verfahrens der vorliegenden Erfindung ist um die Größenordnung N kleiner als ein Maximalgewicht-Abgleichalgorithmus. Im Vergleich ist der iSLIP-Algorithmus mit mittlerer Konvergenz nur O(N/log2N) kleiner.

Claims (6)

  1. Verfahren zum Zuweisen von Vermittlungsanforderungen in einer Paketvermittlung, wobei das Verfahren die folgenden Schritte umfasst: (a) Sammeln von Vermittlungsanforderungsdaten an jedem Eingangsport, wobei die Vermittlungsanforderungsdaten die Anzahl von Vermittlungsanforderungen zu und von jedem Port enthalten; (b) Verarbeiten der Vermittlungsanforderungsdaten für jeden Eingangsport, um Anforderungsdaten für jede Eingangsport/Ausgangsport-Paarbildung zu erzeugen; (c) Vergleichen der Anzahl von Anforderungen von jedem Eingangsport zu jedem Ausgangsport mit einer vorgegebenen maximalen Anforderungskapazität jedes Eingangsports und jedes Ausgangsports; und (d) Erfüllen aller Anforderungen für jene Eingangs/Ausgangs-Paare, für die die Gesamtanzahl von Anforderungen kleiner oder gleich der maximalen Anforderungskapazität jedes Eingangsports und jedes Ausgangsports ist; (e) Verringern der Anzahl von Anforderungen für jene Eingangs/Ausgangs-Paare, für die die Gesamtanzahl von Anforderungen größer als die maximale Anforderungskapazität jedes Eingangsports und jedes Ausgangsports ist, so dass die Anzahl von Anforderungen kleiner oder gleich der maximalen Anforde rungskapazität für jeden Eingangsport und jeden Ausgangsport bleibt; und (f) Erfüllen der verbleibenden Anforderungen.
  2. Verfahren zum Zuweisen von Vermittlungsanforderungen in einer Paketvermittlung, wobei das Verfahren die folgenden Schritte umfasst: (a) Sammeln von Vermittlungsanforderungsdaten an jedem Eingangsport, wobei die Vermittlungsanforderungsdaten die Anzahl von Vermittlungsanforderungen zu und von jedem Port enthalten; (b) Verarbeiten der Vermittlungsanforderungsdaten für jeden Eingangsport, um Anforderungsdaten für jede Eingangsport/Ausgangsport-Paarbildung zu erzeugen; (c) Erfüllen einer ersten Vermittlungsanforderung von allen Eingangsport/Ausgangsport-Paarbildungs-Anforderungsdaten, wobei jede solche Anforderung nur dann zugewiesen wird, wenn die vorgegebene maximale Anforderungskapazität des jeweiligen Ausgangsports nicht erreicht worden ist; und (d) Erfüllen weiterer Vermittlungsanforderungen durch die iterative Anwendung des Schrittes (c), bis die maximale Anforderungskapazität jedes Ausgangsports erreicht worden ist.
  3. Verfahren zum Zuweisen von Vermittlungsanforderungen in einer Paketvermittlung nach Anspruch 1 oder nach Anspruch 2, wobei nicht erfüllte Vermittlungsanforderungen für die Verwendung in einer nachfolgenden nächsten Phase der Vermittlungsanforderungszuweisung reserviert werden.
  4. Verfahren zur Paketvermittlung, wobei die Eingangsport/Ausgangsport-Lenkung gemäß dem Verfahren nach den Ansprüchen 1–3 zugewiesen wird und die Pakete auf der Grundlage der zugewiesenen Lenkung vermittelt werden.
  5. Paketvermittlung, bei der Vermittlungsanforderungen für eine Eingangsport/Ausgangsport-Lenkung zugewiesen werden, mit Mitteln zum Ausführen der Schritte nach einem der Ansprüche 1 bis 3.
  6. Paketvermittlung nach Anspruch 5, wobei die Pakete von einem Eingangsport in Übereinstimmung mit der zugewiesenen Lenkung zu einem bestimmten Ausgangsport vermittelt werden.
DE60132307T 2000-03-10 2001-03-06 Paketvermittlung Expired - Lifetime DE60132307T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0006084A GB2365661A (en) 2000-03-10 2000-03-10 Allocating switch requests within a packet switch
GB0006084 2000-03-10
PCT/GB2001/000972 WO2001067803A1 (en) 2000-03-10 2001-03-06 Packet switching

Publications (2)

Publication Number Publication Date
DE60132307D1 DE60132307D1 (de) 2008-02-21
DE60132307T2 true DE60132307T2 (de) 2009-01-02

Family

ID=9887565

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60132307T Expired - Lifetime DE60132307T2 (de) 2000-03-10 2001-03-06 Paketvermittlung

Country Status (6)

Country Link
US (1) US7706393B2 (de)
EP (1) EP1262085B1 (de)
CA (1) CA2401332C (de)
DE (1) DE60132307T2 (de)
GB (1) GB2365661A (de)
WO (1) WO2001067803A1 (de)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7313135B2 (en) * 2002-01-31 2007-12-25 Mosaid Technologies, Inc. Trunking in a matrix
CA2492361A1 (en) * 2002-08-09 2004-02-19 British Telecommunications Public Limited Company Packet switching system
WO2004057808A1 (en) * 2002-12-19 2004-07-08 Koninklijke Philips Electronics N.V. Combined best effort and contention free guaranteed throughput data scheduling
US7181637B2 (en) * 2003-12-02 2007-02-20 International Business Machines Corporation Packet processing system and method for a data transfer node with time-limited packet buffering in a central queue
US8327115B2 (en) 2006-04-12 2012-12-04 Soft Machines, Inc. Plural matrices of execution units for processing matrices of row dependent instructions in single clock cycle in super or separate mode
US20070268825A1 (en) * 2006-05-19 2007-11-22 Michael Corwin Fine-grain fairness in a hierarchical switched system
EP2523101B1 (de) 2006-11-14 2014-06-04 Soft Machines, Inc. Vorrichtung und Verfahren zum Verarbeiten von komplexen Anweisungsformaten in einer Multi-Thread-Architektur, die verschiedene Kontextschaltungsmodi und Visualisierungsschemen unterstützt
KR101685247B1 (ko) 2010-09-17 2016-12-09 소프트 머신즈, 인크. 조기 원거리 분기 예측을 위한 섀도우 캐시를 포함하는 단일 사이클 다중 분기 예측
EP2689327B1 (de) 2011-03-25 2021-07-28 Intel Corporation Ausführung von befehlsfolgen-codeblocks mittels durch partitionierbare engines realisierter virtueller kerne
CN108376097B (zh) 2011-03-25 2022-04-15 英特尔公司 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段
KR101966712B1 (ko) 2011-03-25 2019-04-09 인텔 코포레이션 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 메모리 프래그먼트
KR101639853B1 (ko) * 2011-05-20 2016-07-14 소프트 머신즈, 인크. 복수의 엔진에 의해 명령어 시퀀스들의 실행을 지원하기 위한 자원들 및 상호접속 구조들의 비집중 할당
CN103649931B (zh) 2011-05-20 2016-10-12 索夫特机械公司 用于支持由多个引擎执行指令序列的互连结构
KR101703401B1 (ko) 2011-11-22 2017-02-06 소프트 머신즈, 인크. 다중 엔진 마이크로프로세서용 가속 코드 최적화기
WO2013077876A1 (en) 2011-11-22 2013-05-30 Soft Machines, Inc. A microprocessor accelerated code optimizer
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
WO2014151018A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for executing multithreaded instructions grouped onto blocks
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
WO2014151043A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for emulating a guest centralized flag architecture by using a native distributed flag architecture
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
US9948566B2 (en) * 2015-12-09 2018-04-17 Vmware, Inc. Selective network traffic throttling
US10284430B2 (en) 2015-12-09 2019-05-07 Vmware, Inc. Storage provisioning and configuration of network protocol parameters
US11122063B2 (en) * 2017-11-17 2021-09-14 Accenture Global Solutions Limited Malicious domain scoping recommendation system
US10541928B2 (en) 2018-01-18 2020-01-21 Vmware, Inc. Policy aware framework for application input output management

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5469154A (en) * 1991-02-19 1995-11-21 Dva Ltd. Multiconnection switching networks
US5978359A (en) * 1995-07-19 1999-11-02 Fujitsu Network Communications, Inc. Allocated and dynamic switch flow control
US5940389A (en) * 1997-05-12 1999-08-17 Computer And Communication Research Laboratories Enhanced partially self-routing algorithm for controller Benes networks
US6125112A (en) * 1998-03-23 2000-09-26 3Com Corporation Non-buffered, non-blocking multistage ATM switch
US6292492B1 (en) * 1998-05-20 2001-09-18 Csi Zeitnet (A Cabletron Systems Company) Efficient method and apparatus for allocating memory space used for buffering cells received on several connections in an asynchronous transfer mode (ATM) switch
US6252849B1 (en) * 1998-06-30 2001-06-26 Sun Microsystems, Inc. Flow control using output port buffer allocation
US6434115B1 (en) * 1998-07-02 2002-08-13 Pluris, Inc. System and method for switching packets in a network
US6477169B1 (en) * 1999-05-14 2002-11-05 Nortel Networks Limited Multicast and unicast scheduling for a network device
US6661788B2 (en) * 1999-05-14 2003-12-09 Nortel Networks Limited Multicast scheduling for a network device
GB0005899D0 (en) * 2000-03-10 2000-05-03 British Telecomm Packet switching
CA2492361A1 (en) * 2002-08-09 2004-02-19 British Telecommunications Public Limited Company Packet switching system
KR100497866B1 (ko) * 2003-05-20 2005-06-29 엘지전자 주식회사 에이티엠 셀 라우팅 방법

Also Published As

Publication number Publication date
CA2401332C (en) 2009-02-03
GB0006084D0 (en) 2000-05-03
US20030035422A1 (en) 2003-02-20
EP1262085A1 (de) 2002-12-04
EP1262085B1 (de) 2008-01-09
GB2365661A (en) 2002-02-20
CA2401332A1 (en) 2001-09-13
WO2001067803A1 (en) 2001-09-13
DE60132307D1 (de) 2008-02-21
US7706393B2 (en) 2010-04-27

Similar Documents

Publication Publication Date Title
DE60132307T2 (de) Paketvermittlung
DE69332426T2 (de) ATM-Koppelfeld mit Torenkombinierung zum Leitungsgruppierungszweck
DE60314205T2 (de) Arbiter für ein Vermittlungssystem mit Eingangspuffer
DE69733703T2 (de) Puffer von Mehrfachsendezellen in Vermittlungsnetzen
DE69114084T2 (de) Unterstützung für Datenverkehr mit konstanter Bitrate in Breitbandvermittlungsschaltern.
DE68920037T2 (de) Mehrkanal-bandbreitenzuweisung.
DE69832884T2 (de) Wegesucheinheit mit zuteilung von virtuellen kanälen
DE69834763T2 (de) Verfahren zur Unterstützung von verbindungsindividuellen Warteschlangen für rückgekoppelte Verkehrssteuerung
DE68926650T2 (de) Hochgeschwindigkeitspaketvermittlungsknotenentwurf
DE69033695T2 (de) Anrufverwaltungssystem in einer ATM-Vermittlungsanlage
Dally Virtual-channel flow control
DE69533695T2 (de) Busarbitrierungsverfahren für fernmeldevermittlung
DE102015017100B3 (de) Verteilte Switch-Architektur
DE60300504T2 (de) Auf Krediten basierendes gewichtetes Schiedsverfahren unter Verwendung vergangener Kredithöhen
DE69323547T2 (de) Verfahren zur gruppenbildung von umbindungen in einer paketvermittlung
DE60110760T2 (de) Auslese-ablaufsteuerung für nicht aufeinander-folgende daten
DE69619843T2 (de) Atm-vermittlung mit hoher leistung
DE69626946T2 (de) Verfahren und Vorrichtung für eine auf Übertragungsgeschwindigkeit basierender Ablaufplanung unter Verwendung eines relativen Fehler-Ansatzes
DE68922647T2 (de) Paketvermittlungsvorrichtung.
DE69332324T2 (de) Parallele Multi-Bit Koppelnetze
DE60022243T2 (de) Verfahren in ATM Vermittlungsstellen zur optimalen Verwaltung eines Puffers mit dynamischen Schwellwerten für die Länge von Warteschlangen
DE69631265T2 (de) Vermittlungssystem
DE69033655T2 (de) Verfahren und System zur Überwachung der Datenraten von asynchronen Zeitmultiplex-Übertragungen
DE102007038964A1 (de) Verfahren und Vorrichtung zum Verarbeiten von Netzwerkdaten
DE60031284T2 (de) Ablauffolgesteuerung für Paketvermittlungen und passive optischen Netzwerke

Legal Events

Date Code Title Description
8364 No opposition during term of opposition