DE69631265T2 - Vermittlungssystem - Google Patents

Vermittlungssystem Download PDF

Info

Publication number
DE69631265T2
DE69631265T2 DE69631265T DE69631265T DE69631265T2 DE 69631265 T2 DE69631265 T2 DE 69631265T2 DE 69631265 T DE69631265 T DE 69631265T DE 69631265 T DE69631265 T DE 69631265T DE 69631265 T2 DE69631265 T2 DE 69631265T2
Authority
DE
Germany
Prior art keywords
input port
priority
logic unit
reservation ring
evaluation device
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 - Fee Related
Application number
DE69631265T
Other languages
English (en)
Other versions
DE69631265D1 (de
Inventor
Joseph B. Mountain View Lyles
Alan G. Palo Alto Bell
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.)
Xerox Corp
Original Assignee
Xerox 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 Xerox Corp filed Critical Xerox Corp
Publication of DE69631265D1 publication Critical patent/DE69631265D1/de
Application granted granted Critical
Publication of DE69631265T2 publication Critical patent/DE69631265T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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/106ATM switching elements using space switching, e.g. crossbar or matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1553Interconnection of ATM switching modules, e.g. ATM switching fabrics
    • H04L49/1576Crossbar or matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5651Priority, marking, classes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1515Non-blocking multistage, e.g. Clos
    • H04L49/1546Non-blocking multistage, e.g. Clos using pipelined operation

Description

  • Die vorliegende Erfindung betrifft allgemein Hochgeschwindigkeits-Breitband-Kommunikationsnetze und insbesondere den Betrieb einer Koordinatenvermittlungsstruktur, die zum Kommunizieren von Datenpaketen in eine ATM-Vermittler geeignet ist.
  • Hochgeschwindigkeits-Breitband-Kommunikationsnetze umfassen Systeme zum Leiten von Datenpaketen von Eingangsquellen zu Ausgangszielen. Die gleichzeitig anhängige Patentanmeldung US-A-5602844 gibt einen selbstlenkenden Koordinatenschalter an, der für die Verwendung als Vermittlungsstruktur in einem ATM-Vermittler geeignet ist.
  • Die Grundarchitektur von Systemen aus dem Stand der Technik umfasst ein lokales Netz (LAN) mit asynchronem Übertragungsmodus (ATM), das eine VLSI-basiertes „Batcher/Banyan"-Vermittlungsstruktur des Typs verwendet, der durch AT&T/Bellcore entwickelt wurde. Die Batcher/Banyan-Vermittlungstechnologie kann zu Vermittlern mit mehr als 256 Ports und Verbindungsraten von mehr als 1 Gigabit/s skaliert werden. Diese Vermittler können miteinander verbunden werden, um ein großes hierarchisches Netz zu bilden, das größere Benutzergemeinschaften unterstützt. Ein Beispiel für eine derzeitige Implementierung einer Batcher/Banyan-Vermittlungsstruktur ist auf speziellen Chips von Bellcore vorgesehen (siehe: A CMOS Batcher and banyan chipset for B-ISDN, pp. 32–33, William S. Marcus and Jason J. Hickey, ISSCC '90, 1990, IEEE International Solid State Circuit Conference).
  • Idealerweise sieht eine Batcher/Banyan-Vermittlungsstruktur einen Parallelismus vor, in dem ein einzelner Port eines Batcher-Sortiernetzes eine Anzahl k (gewöhnlich 2 oder 3) von Banyan-Leitvermittlern bedienen kann, die miteinander verbunden sind, sodass während eines Zellvermittlungszyklus bis zu k Zellen zu derselben Anzahl von Ausgangsports geleitet werden können, ohne eines der Datenpakete zu verlieren. Dieser Typ von System ist in US-A-4,893,304 mit dem Titel Broadband Packet Switch With Combined Queuing beschrieben.
  • Um das Problem zu beseitigen, das auftritt, wenn mehr als ein Datenpaket während des einen Vermittlungszyklus für denselben Ausgangsport bestimmt ist, ist ein „Reservierungsring" vorgesehen, um konkurrierende Datenpakete gerecht zu bedienen, wobei höchstens k Pakete während eines Zyklus zu dem Banyan-Vermittler gegeben werden. Reservierungs ringe lösen Ausgabekonkurrenzen zwischen konkurrierenden Datenpaketen, wobei sie einen „gerechten" Zugriff auf die Ausgangsports der Vermittelungsstruktur implementieren.
  • Derartige Batcher/Banyan-Vermittlungsstrukturen sind gewöhnlich auf speziellen Chips implementiert, wodurch die Kosten des ATM-Vermittlers erhöht werden. Weiterhin können in einer Batcher/Banyan-Vermittlungsstruktur mehrere Pfade zwischen Quellen und Zielen vorhanden sein, die von anderen zu einem bestimmten Zeitpunkt bestehenden Verbindungen abhängig sind. Aufgrund der Abhängigkeit einer Verbindung von einer anderen Verbindung ist eine Diagnose von Fehlern äußerst schwierig.
  • US-A-5,327,420 gibt ein Verfahren zum Erstellen von Mehrbit-Parallel-Batcher/Banyan-Netzen an. Ein Vermittler umfasst eine nicht-blockierende, selbst-leitende Vermittlungsstruktur zum Leiten von Paketen von den Eingangsports zu den Ausgangsports der Vermittlungsstruktur in Übereinstimmung mit einer virtuellen Schaltangabe und einer Ausgangsportadresse, die durch jedes Paket getragen wird. Der Vermittler erfordert, dass die Ausgangsportadresse für jedes der Pakete durch die ersten wenigen Bits eines Vermittlungs-Headers spezifiziert wird, der an das Paket angehängt wird. Die Vermittlungsstruktur umfasst eine Vielzahl von parallel verbundenen und jeweils ein Bit breiten Sortiernetzen, auf die eine Vielzahl von parallel verbundenen Leitnetzen folgt, um mehrere Bit breite Datenpfade zwischen den Eingangsports und den Ausgangsports vorzusehen. Außerdem ist die Vermittlungsstruktur derart aufgebaut, dass es ein mehrere Bit breites Sortiernetz und eine Vielzahl von mehrere Bit breiten Leitnetzen umfasst, um mehreren Eingangsports gleichzeitig Zugriff auf identische Ausgangsports zu bieten.
  • Es ist eine Aufgabe der Erfindung, ein Vermittlungsstruktursystem, ein Kommunikationsnetz und ein Verfahren zum Leiten von Datenpakten anzugeben, um einen anderen Ansatz mit einem „gerechten" Zugriff auf Ausgangsports zu implementieren.
  • Diese Aufgabe wird durch ein Vermittlungsstruktursystem nach Anspruch 1, ein Kommunikationsnetz nach Anspruch 6 und ein Verfahren nach Anspruch 7 gelöst.
  • Ausführungsformen der vorliegenden Erfindung reduzieren die Kosten zur Herstellung derartiger Systeme vorteilhaft, ermöglichen eine einfacher Diagnose von Fehlern im System. vereinfachen den Aufbau und bieten für Vermittler mit einer gewünschten Größe von bis zu ungefähr 256 Ports bessere Skalierungsmöglichkeiten als ein Batcher/Banyan-System. Die vorliegende Erfindung kann implementiert werden, ohne dass hierfür eine Änderung an bestehenden Reservierungsring-Mechanismen vorgenommen werden muss.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung ist ein ATM-Vermittler vorgesehen, der eine Koordinatenvermittlungsstruktur zum Leiten von Datenpaketen in dem ATM-Vermittler aufweist. Die Vermittlungsstruktur umfasst eine Vielzahl von Eingangsports und eine Vielzahl von Ausgangsports zum Ausgeben der Pakete von mit den Eingangsports verbundenen Eingangsquellen zu mit den Ausgangsports verbundenen Ausgangszielen auf Pfaden durch das System, die durch ein zentralisiertes Vermittlungsschema spezifiziert werden. Ein Reservierungsring löst Konflikte zwischen Eingängen, die um den Zugriff auf einen spezifizierten Ausgang konkurrieren. Eine Sequenz von Schritt- und Vergleichsoperationen in dem Reservierungsring wird in einer von oben nach unten verlaufenden Ringreihenfolge während wenigstens eines Zuteilungszyklus durchgeführt, um konkurrierenden Eingängen Zugriff auf die spezifizierten Ausgänge in einer Reihenfolge von oben nach unten zu gewähren. Eine mit dem Reservierungsring verbundene Logikeinheit erfasst bzw. fängt Daten von Eingangsanforderungen ab und verwendet diese Daten, um die Koordinatenschalterstruktur zu laden. Wenn eine Eingangsanforderung durch die Logikeinheit festgestellt wird, die eine höhere Priorität als eine zuvor geladene Eingangsanforderung aufweist, wird der Zugriff der Eingangsanforderung mit der höheren Priorität gewährt.
  • Gemäß einer anderen Ausführungsform der vorliegenden Erfindung, ist die Logikeinheit konfiguriert, um erfasste Daten zu speichern und alle Eingängen zu dem Koordinatenschalter in einer einzigen Operation zu bedienen.
  • In einer weiteren Ausführungsform der vorliegenden Erfindung ist die Logikeinheit durch eine Vielzahl von zusätzlichen Registern ergänzt, die logisch mit jeder Auswerteeinrichtung des Reservierungsrings assoziiert, aber nicht unbedingt physikalisch bei demselben angeordnet sind, wobei die Register miteinander verbunden sind, sodass Daten von den zusätzlichen Registern in einer Pipeline-Weise zu dem Koordinatenschalter übertragen werden.
  • Ein Vorteil der vorliegenden Erfindung besteht darin, dass ein Vermittlungssystem angegeben wird, das in Verbindung mit bestehenden Reservierungsring-Konfigurationen verwendet werden kann.
  • Ein weiterer Vorteil der Erfindung besteht darin, dass eine ATM-Vermittlungsstruktur einfach mithilfe von auf dem Markt erhältlichen Koordinatenschalter-Schaltchips aufgebaut werden kann.
  • Ein weiterer Vorteil der vorliegenden Erfindung besteht darin, dass eine Vermittlungsstruktur mit verbesserten Skalierungsmöglichkeiten und mit einer verbesserten Fehlerdiagnose vorgesehen wird.
  • Die vorliegende Erfindung wird im Folgenden beispielhaft mit Bezug auf die beigefügten Zeichnungen beschrieben:
  • 1A ist eine schematische Darstellung eines ATM-Vermittlers, der gemäß der vorliegenden Erfindung aufgebaut ist,
  • 1B ist eine ausführlichere logische Darstellung eines ATM-Vermittlers, der gemäß der vorliegenden Erfindung aufgebaut ist,
  • 2 zeigt schematisch einen Reservierungsring-Mechanismus,
  • 3A3L zeigen den Schritt-für-Schritt-Betrieb einer Implementierung des Reservierungsrings von 2, der eine strikte Trennung zwischen Zuteilungssitzungen aufrechterhält,
  • 4A zeigt die operationale Verbindung zwischen der letzten Auswerteeinrichtung des Reservierungsrings und einer Logikeinheit, die den Koordinatenschalter einrichtet,
  • 4B ist ein Diagramm der Assoziationen zwischen mit einer Priorität versehenden Eingangsports und angeforderten Ausgangsports,
  • 5 zeigt eine erste Ausführungsform, in der die Logikeinheit am unteren Ende eines Reservierungsrings mit zusätzlichen Registern erweitert ist, die für jede Auswerteeinrichtung des Reservierungsrings vorgesehen sind,
  • 6 zeigt eine Vermittlungsanordnung, in der „Gültig"-, „Z"- und „AusgangsPort"-Register durch einen Steuerchip geschaltet werden,
  • 7 zeigt eine Vermittlungsanordnung für Koordinatenschalter ohne Möglichkeit zum Zurücksetzen einer Pipelinestufe in einer Ausführungsform wie in 5,
  • 8 zeigt eine Vermittlungsanordnung mit einem Koordinatenschalter ohne Möglichkeit zum Zurücksetzen der Pipelinestufen, der ein Herausfiltern von Paketen durchführt, die nicht an einen bestimmten Koordinatenschalter adressiert sind,
  • 9 zeigt einen Algorithmus, der durch die Logikeinheit in einer zweiten Ausführungsform der vorliegenden Erfindung verwendet wird,
  • 10A10J zeigen den Betrieb der zweiten Ausführungsform von 9,
  • 11 ist eine detailliertere Darstellung der Logikeinheit, die in einer dritten Ausführungsform verwendet wird, und
  • 12 ist ein Algorithmus, der durch die Logikeinheit in der dritten Ausführungsform verwendet wird, wobei keine Zellenverzögerung beim Laden des Koordinatensystems gegeben ist.
  • Die vorliegende Erfindung betrifft die Verwendung einer Koordinatenvermittlungsstruktur in einem ATM-Vermittler zur Implementierung eines Reservierungsrings wie etwa eines modifizierten Cisneros-Reservierungsrings (weiter unten ausführlicher beschrieben) und/oder des in der gleichzeitig anhängigen europäischen Patentanmeldung EP-0571166 beschriebenen Reservierungsrings.
  • Die vorliegende Erfindung verwendet einen Strom von Anforderungen, die auf einem Reservierungsring wie dem oben beschriebenen zirkulieren, um auf dem Markt erhältliche Koordinatenschalter wie etwa die mit AMCC S2024 und LSI L64270 bezeichneten zu programmieren.
  • Wie in 1A gezeigt, wird in dem ATM-Vermittler 10 der vorliegenden Erfindung die Ausgabe des Reservierungsrings 12 durch die Logikeinheit 13 abgefangen. Die Logikeinheit 13 verarbeitet diese Daten und gibt sie zu einer Koordinatenvermittlungsstruktur 14 aus einer oder mehreren Vermittlungsanordnungen 16, um die Vermittlungsanordnungen 16 für das Durchleiten der Datenpakete einzurichten.
  • 1B ist eine detailliertere logische Darstellung des ATM-Vermittlers des Typs, für den die vorliegende Erfindung entwickelt ist. Diese Zeichnung zeigt die Elemente des ATM-Vermittlers 10 im größeren Detail. In dieser Erfindung ersetzt die Vermittlungsstruktur 14 die Batcher/Banyan-Vermittlungsstruktur, die in der gleichzeitig anhängigen europäischen Patentanmeldung EP-0571166A verwendet wird (diese Anmeldung enthält eine ausführlichere Erläuterung der Konfiguration und des Betriebs der ATM-Vermittlungskomponenten 18 von 1B, einschließlich der VCI-Tabellen, VCI-Übersetzer und Kopiernetze). Eine Erläuterung des Betriebs der Elemente von 1B ist auch in US-A-5,327,420 enthalten.
  • In einem ATM-Vermittler ist der Reservierungsring die Entscheidungsinstanz, die eine Konkurrenz um Ausgänge entscheidet und einen „gerechten" Zugriff auf die Ausgangsports der Vermittlungsstruktur (d. h. der Koordinatenschalter) vorsieht, wenn die Anzahl der Zellen für einen einzelnen Ausgangsport die Anzahl k überschreitet (wobei k die Anzahl der einzelnen Koordinatenvermittlungsanordnungen 16 angibt). Es gibt viele verschiedene Definitionen von „Gerechtigkeit", wobei jedoch eine Entscheidungsinstanz, die eine Ringbedienung für die konkurrierenden Eingangsports der Vermittlungsstruktur vorsieht, ein vorteilhaftes Attribut aufweist.
  • Insbesondere gemäß den Lehren einer Veröffentlichung von Arturo Cisneros mit dem Titel „Large Packet Switch and Contention Resolution Device" in Proc. XII International Switching Symposium, Stockholm, Sweden, May/June 1990, V3, pp. 77–83 (die hier unter Bezugnahme eingeschlossen ist) und wie in 2 gezeigt, ist der Reservierungsring als eine lineare systolische Anordnung 25 aus Finitzustandsmaschinen wie etwa 26i26i + 1 implementiert, die miteinander in einer ringartigen Konfiguration verbunden sind. Jede dieser Finitzustandsmaschinen, die nachfolgend manchmal als „Auswerteeinrichtungen" bezeichnet werden, sieht die Daten vor, die zur Kommunikation mit entsprechenden der Eingangsanschlüsse der Vermittlungsstruktur 14 von 1A und 1B verwendet werden.
  • Ein derartiger Reservierungsring veranlasst in geeigneter Weise, dass alle Zellen oder „Pakete", die während einer bestimmten Zuteilungssitzung für dasselbe Ausgangsziel bestimmt sind, einen geschlossenen Satz gegenüber folgenden Ankünften bildet, bis alle Zellen der bestimmten Sitzung zu ihrem gemeinsamen Ausgangsziel geleitet wurden. Dadurch wird sichergestellt, dass jede Zuteilungssitzung für jedes Ausgangsziel zu einem ordentlichen Abschluss gebracht wird, bevor eine weitere Sitzung für dasselbe Ziel begonnen wird, um die gewünschte „Gerechtigkeit" vorzusehen. Zu den Vorteilen der Verwendung einer linearen systolischen Anordnung wie etwa der Anordnung 25 gehört, dass alle Kommunikationen lokal sind und die elektrischen Ladungen nicht mit der Größe der Anordnung zunehmen. Dies ermöglicht eine lineare Skalierung des Systems.
  • Es hat sich herausgestellt, dass der Cisneros-Reservierungsring modifiziert werden kann, um eine gerechte Zuteilung mit einer Ringlösung in einem einzigen Durchgang für Vermittlungsstrukturen wie etwa den Vermittler 10 mit mehreren Vermittlungsanordnungen (d. h. Netze mit einem Beschleunigungsfaktor (k ≥ 2)) vorzusehen.
  • In Übereinstimmung mit bewährten Praktiken dient jede der Finitzustandsmaschinen (FSMs) 26i26i + 1 als eine Auswerteeinrichtung, um (z. B. anhand der Portnummer) zu bestimmen, ob das Paket am Anfang einer Eingangsschlange (das HOQ-Paket) für einen entsprechenden Eingangsport der Vermittlungsstruktur 14 für denselben Ausgangsport adressiert ist wie das HOQ-Paket eines der anderen Eingangsports. Dazu umfasst jede der Auswerteeinrichtungen 16i26i + 1 ein Paar von Adressregistern RAx uns SAx (wobei x die assoziierte Eingangsportnummer ist).
  • Jedes der Register RAx und SAx wird am Beginn jedes Zuteilungszyklus initialisiert, um die Ausgangsportadresse des HOQ-Pakets (sofern vorhanden) für den assoziierten Eingangsport zu speichern. Wenn die Schlange für einen der Eingangsports zu Beginn eines Zuteilungszyklus zufällig leer ist, setzt die Zustandslogik für die Auswerteeinrichtung an diesem Port die Bitposition Tx für diesen Port in einem ein Bit breiten Konkurrenzvektor auf den Zustand WAHR („1"). Dementsprechend kann dem Zuteilungsprozess eine rigorose „In-Sitzung"-Beschränkung auferlegt werden, um zu verhindern, dass nach dem Beginn einer Zuteilungssitzung ankommende Pakete zu der aktuellen Sitzung hinzugefügt werden. Wenn unter dieser Beschränkung ein Paket während eines vorhergehenden Zuteilungszyklus in der Sitzung genommen wurde, dann kann ein InSitzungx-Flagbit zu dem Zustand FALSCH („0") zurückgesetzt werden, um ein erneutes Nehmen des Pakets zu verhindern.
  • Die angeforderte Adresse RA, die in das Register RAx geladen ist, ist eine lokale Variable. Dagegen ist die Kopie SA der Adresse, die in das Register SAx geladen ist, eine sich fortpflanzende Variable. Insbesondere werden die SA-Adressen um den Reservierungsring 10 in einer von oben nach unten verlaufenden Ringreihenfolge unter der Steuerung einer Steuereinrichtung (nicht gezeigt) verschoben, um in jeder der anderen Auswerteinrichtungen mit der lokal angeforderten Adressvariable verglichen zu werden, die angibt, ob der assoziierte Eingangsport ein möglicher Teilnehmer einer Zuteilungssitzung ist. Andererseits pflanzt sich der Konkurrenzvektorwert T nach unten durch die Auswerteinrichtungen fort, um für jede der Auswerteeinrichtungen (mit Ausnahme der obersten Auswerteeinrichtung) zwischen den Konkurrenten mit gleicher Priorität zu entscheiden, die in die Eingangsports oberhalb oder unterhalb des durch die betreffende Auswerteeinrichtung bedienten Ports geladen sind, sowie um weiterhin Eingangsports zu identifizieren, die nicht an der aktuellen Zuteilungssitzung teilnehmen.
  • Bis zu k Pakete, aber nicht mehr als k Pakete, können während einem Vermittlungszyklus zu einem bestimmten Ausgangsport der Vermittlungsstruktur 14 vermittelt werden. Also jedes Mal, wenn eine Auswerteeinrichtung eine Zuteilung verliert, erfordert es die Gerechtigkeit, dass dem betreffenden Paket eine Priorität gegenüber Paketen eingeräumt wird, die dem Zuteilungsprozess noch nicht unterworfen wurden. Aus diesem Grund setzt jede der Auswerteeinrichtungen 26i26i + 1 ein Konkurrenz-Flagbit FCx und ein schwebendes Konkurrenz-Flagbit Fx in den Zustand TRUE („1"), wenn es eine Zuteilung verliert. Der Zustand TRUE („1") des schwebenden Konkurrenz-Flagbits Fx signalisiert dem mit der nicht erfolgreichen Auswerteeinrichtung assoziierten Eingangsport, das betreffende Paket am Anfang seiner Eingangsschlange zu halten, sodass die aktuelle Zuteilungssitzung für einen oder mehrere zusätzliche Vermittlungszyklen verlängert werden kann.
  • Außerdem wird das Konkurrenz-Flagbit FCx in ein Ein-Bit-Register RC kopiert, wenn es sich um ein lokales Konkurrenz-Flag RC handelt, und in ein Ein-Bit-Register SCx, wenn es sich um ein sich fortpflanzendes Konkurrenz-Flag SC handelt. Eine Auswerteeinrichtung nimmt an einer Zuteilungssitzung nur dann teil, wenn das lokale Konkurrenz-Flag RC und das sich fortpflanzende Konkurrenz-Flag SC übereinstimmen, wenn die Entscheidung zur Teilnahme getroffen wird. Es wird also allen Konkurrenten für einen bestimmten Ausgangsport in einer von oben nach unten verlaufenden Ringreihenfolge während eines bzw. mehreren Vermittlungszyklen Zugriff auf einen Ausgang gewährt.
  • Gemäß der vorliegenden Erfindung umfasst jede der Auswerteeinrichtungen 26i16i + 1 einen Ganzzahlzähler CNTRx, der mit einem vorbestimmten Startwert durch einen Bereich von k – 1 zählt. Diese Zähler wird am Beginn jedes Zuteilungszyklus auf den Startwert (z. B. 0) gelöscht und dann jeweils inkrementiert, wenn die Host-Auswerteeinrichtung bestimmt, dass das Paket an seinem Eingangsport mit einem Paket an einem höheren Eingangsport konkurriert. Wenn die Auswerteeinrichtung eine verschobene Adresse SA erhält, die ihrer lokalen Adressvariable SA entspricht, prüft die Auswerteeinrichtung den Zustand ihres gerade aktuellen Konkurrenzvektorbits T sowie den Zustand seines schwebenden Konkurrenz-Flags F. Wenn die Auswerteeinrichtung ein Konkurrenzvektorbit T mit dem Zustand WAHR („1") aufweist und ihr schwebendes Konkurrenz-Flag F weiterhin den Zustand FALSCH („0") aufweist, bestimmt die Auswerteeinrichtung, dass sie die Zuteilung erhalten hat. Dementsprechend gibt die Auswerteeinrichtung bei Abschluss des Zuteilungszyklus den Wert WAHR („1") plus den durch den Zähler CNTRx akkumulierten Zählwert (einen sogenannten „Portzähler"-Wert) an ihren Eingangspuffer aus, um die Zelle am Anfang der Eingangsschlange für diesen Port für die Vermittlung zu dem angegebenen Zielport freizugeben.
  • Wenn die Auswerteeinrichtung dagegen feststellt, dass ihr CNTRx bei Vorhandensein eines Konkurrenzvektorsbitwertes T mit dem Zustand FALSCH („0") überläuft, bestimmt sie, dass sie die Zuteilungsrunde verloren hat, und setzt ihr Konkurrenz-Flagbit FCx sowie ihr schwebendes Konkurrenz-Flagbit Fx auf den Zustand WAHR („1"), um die aktuelle Zuteilungssitzung wie oben beschrieben zu verlängern. Die Hauptaufgabe des Konkurrenzvektorbits T besteht darin, zwischen oben und unten zu unterscheiden.
  • Wenn gewünscht, können die InSitzung-Beschränkungen des vorhergehenden Reservierungsring-Mechanismus gelockert werden, um zu gestatten, dass jede gültige Zuteilungsanforderung an einer Zuteilungssitzung teilnimmt, unabhängig davon, ob sie tatsächlich zu der aktuellen Sitzung gehört oder nicht. Der Vorteil dieses lockereren Ansatzes liegt darin, dass er die Anzahl von leeren Vermittlungszyklen reduziert, wodurch der Durchsatz der Vermittlung erhöht wird.
  • 3A3L zeigen Schritt für Schritt die Zuteilung, die durch einen Reservierungsring des vorliegenden Typs für eine Vermittlungsstruktur mit zwei Koordinatenschalteranordnungen wie etwa die Struktur 14 von 1A durchgeführt wird. In diesem vereinfachten Beispiel leitet die Vermittlungsstruktur Pakete von den vier Eingangsports InPort0–InPort3 zu den angegebenen vier Ausgangsports OutPort0–OutPort3 auf der Basis der Ausgangsportadressen oder Angaben, die in den Paket-Headern enthalten sind.
  • Der Reservierungsring bedient während jedem Zuteilungszyklus jeden der Eingangsports der Vermittlungsstruktur, um Konflikte zwischen an denselben Ausgangsport adressierten Paketen in einer von oben nach unten verlaufenden Ringreihenfolge zu lösen. Es können Zuteilungssitzungen mit mehreren Zyklen erforderlich sein, um den Konflikt zu lösen, wobei der Konflikt während jedes Zuteilungszyklus zu Gunsten von k konkurrierenden Paketen gelöst wird, außer während des letzten Zyklus einer Zuteilungssitzung, wenn der Konflikt zu Gunsten von k konkurrierenden Paketen (d. h. den verbleibenden Konkurrenten) gelöst wird. Der Reservierungsring gibt die zugeteilten Pakete bei Abschluss jedes Zuteilungszyklus in die Vermittlungsstruktur frei, sodass auf jeden Zuteilungszyklus unmittelbar ein Vermittlungszyklus folgt.
  • Wie in 3A gezeigt, kann ein Zuteilungszyklus mit den HOQ-Paketen für InPort0, InPort1 und InPort3, die zu OutPort3 adressiert sind, und mit dem HOQ-Paket für InPort2, das zu OutPort0 adressiert ist, begonnen werden. Es wird angenommen, dass es sich um eine neue Zuteilungssitzung handelt (d. h. keines der Pakete einer fortdauernden Zuteilungssitzung unterworfen ist). Wie in 3B gezeigt, werden die Auswerteeinrichtungen des Reservierungsrings alle durch ihre Zustandssteuerlogik für die Zuteilungssitzung initialisiert. Aus diesem Initialisierungsprozess resultiert, dass die Auswerteeinrichtung für jeden der Eingangsports der Vermittlungsstruktur die Adresse des Ausgangsports, zu dem das HOQ-Paket an diesem bestimmten Eingangsport zu leiten ist, in das angeforderte Adressregister RAx und in ihr verschobenes Adressregister SAx kopieren lässt. Alle Eingangsports sind während dieser Zuteilungssitzung zufällig aktiv, sodass das InSitzung-Bit jeder Auswerteeinrichtung in den Zustand WAHR („1") versetzt wird. Außerdem handelt es sich um eine neue Zuteilungssitzung, sodass jede Auswerteeinrichtung ihren Zähler CNTR und alle ihre Konkurrenz-bezogenen Bits F, FC, RC uns SC löschen lässt und ihr Konkurrenzvektorbit T zu dem Zustand FALSCH („0") zurücksetzen lässt.
  • In Schritt 0 des Zuteilungsprozesses verschiebt jeder der Auswerteeinrichtungen die in ihrem verschobenen Adressregister SAx gespeicherte Adresse und ihr verschobenes Konkurrenz-Flagbit SC in einer geschlossenen Ringreihenfolge nach unten in die nächstniedrigen Auswerteeinrichtung des Reserverings. Dabei handelt es sich um ein geschlossenes Verschieben, sodass die verschobene Adresse und das verschobene Konkurrenz-Flagbit der untersten Auswerteeinrichtung (d. h. der Auswerteeinrichtung für InPort3) zu der obersten Auswerteeinrichtung (d. h. der Auswerteeinrichtung für InPort0) verschoben werden. Gleichzeitig wird das Konkurrenzvektorbit mit dem Zustand WAHR („1") zu der obersten Auswerteeinrichtung verschoben, und werden die bestehenden Konkurrenzvektorbits nach unten zu der nächstniedrigen benachbarten Auswerteeinrichtung in einer offenen Schleife verschoben (d. h. das Konkurrenzvektorbit aus der untersten Auswerteeinrichtung wird fallen gelassen).
  • Auf die Verschiebungsoperation folgend vergleicht wie in 3C gezeigt jede der Auswerteeinrichtung die Adresse in ihrem angeforderten Adressregister RAx mit der Adresse in dem verschobenen Adressregister SAx auf Gleichheit. Wenn die Auswerteeinrichtung bestimmt, dass sich die zwei Adressen unterscheiden, führt sie keine weiteren Aktionen durch (siehe die Zustände der Auswerteeinrichtungen für InPort2 und InPort3). Wenn die Auswerteeinrichtung dagegen bestimmt, dass die angeforderte Adresse und die verschobene Adresse gleich sind, bestimmt sie, dass das Paket und ihr Eingangsport mit einem Paket in einem anderen Eingangsport konkurrieren können.
  • Um also zu bestätigen, dass eine tatsächliche Konkurrenz zwischen den Paketen vorliegt, vergleicht die Auswerteeinrichtung die Zustände des angeforderten Konkurrenzbits RC und des verschobenen Konkurrenzbits SC auf Gleichheit. Wenn diese zwei Bits denselben Zustand aufweisen (beide FALSCH („0") oder beide WAHR („1")), prüft die Auswerteeinrichtung den Zustand ihres Konkurrenzvektorbits T, um zu bestimmen, ob das konkurrierende Paket an einem Eingangsport über oder unter dem von der Auswerteeinrichtung bedienten Eingangsport ist. Wenn der Konkurrent an einem niedrigeren Eingangsport ist (das Konkurrenzvektorbit ist im Zustand WAHR („1")), ist keine unmittelbare Aktion der Auswerteeinrichtung erforderlich (siehe den Zustand der Auswerteeinrichtung für InPort0). Wenn die Auswerteeinrichtung dagegen bestimmt, dass der Konkurrent an einem höheren Eingangsport ist (das Konkurrenzvektorbit ist weiterhin im Zustand FALSCH („0")), inkrementiert die Auswerteeinrichtung ihren Zähler CNTR, um die Tatsache zu berücksichtigen, dass die Konkurrenz zu Gunsten des Konkurrenten gelöst wurde (siehe die Zustände der Auswerteeinrichtung für InPort1).
  • Wie in 3C3E gezeigt, wird der Schritt- und Vergleichsprozess wenigstens N – 1 Mal wiederholt (wobei N die Anzahl der Eingangsports) für jeden Zuteilungszyklus ist. Wenn der Zähler CNTR von einer der Auswerteinrichtungen während eines Schrittes des Prozesses überläuft, wird das schwebende Konkurrenz-Flagbit F für diese Auswerteeinrichtung zu dem Zustand WAHR („1") gesetzt, wodurch auch das Konkurrenz-Flagbit FC der Auswerteeinrichtung zu dem Zustand WAHR („1") gesetzt wird (siehe den Zustand der Auswerteeinrichtung für InPort3 in Schritt 2, wie in 3E gezeigt).
  • Wenn gewünscht, kann wie in 3F gezeigt eine zusätzliche Schrittoperation durchgeführt werden, um den Abschluss des Zuteilungszyklus zu signalisieren. Wenn nach Abschluss des Zuteilungszyklus ein Zustand WAHR („1") vorliegt, können die Auswerteeinrichtungen Signale zu ihren entsprechenden Eingangsports gewähren, wenn ihr schwebendes Konkurrenzbit F weiterhin FALSCH ist. Jeder Eingangsport, der eine derartige Gewährung empfängt, kann sein HOQ-Paket in die Vermittlungsstruktur freigeben, damit es zum angegebenen Ausgangsport geleitet wird. Jede der Auswerteeinrichtungen gibt außerdem ihr schwebendes Konkurrenzbit F an ihren assoziierten Eingangsport. Wenn also ein Eingangsport gleichzeitig eine FALSCHE („0") Gewährung und eine WAHRES („1") schwebendes Zustandsbit erhält, dann hält der Eingangsport sein aktuelles HOQ-Paket für den nächsten Zuteilungszyklus.
  • Wie in 3G3L gezeigt, sind der zweite und die folgenden Zuteilungszyklen einer Zuteilungssitzung dem ersten Zuteilungszyklus ähnlich. Das heißt, die angeforderten Adressen und die angeforderten Konkurrenz-Flagbits, die in den Auswerteeinrichtungen gespeichert werden, sehen eine zweidimensionale Matrix aus Adressen und Konkurrenzzustandsdaten vor, mit denen die Adressen und Zustandsdaten, die durch das Zirkulieren der verschobenen Adressen und der verschobenen Konkurrenzflags vorgesehen werden, auf Gleichheit jedes Paares von Eingangsports verglichen werden. Wenn jedoch ein zusätzlicher Zuteilungszyklus erforderlich ist, um eine Zuteilungssitzung abzuschließen, wird das Konkurrenz-Flagbit FC auf einen Zustand WAHR („1") gesetzt, bevor der vorausgehende Zuteilungszyklus in einer Auswerteeinrichtung abgeschlossen wird, dessen Zähler CNTR überläuft (siehe 3E). Dieses Flagbit FC wird wiederum in das angeforderte Konkurrenzbit RC und das verschobene Konkurrenzbit SC dieser Auswerteeinrichtung bei dessen Initialisierung für den nächsten Zuteilungszyklus kopiert (siehe 3H), um sicherzustellen, dass alle gelösten Konflikte während des bzw. der folgenden Zyklen der Zuteilungssitzung weiterhin in einer von oben nach unten verlaufenden Ringreihenfolge gelöst werden.
  • Eine Auswerteeinrichtung, der eine Gleichheit zwischen seiner angeforderten Adresse und einer in ihn verschobenen Adresse feststellt, setzt sein InSitzung-Bit zu einem Zustand FALSCH („0") zurück, wenn er feststellt, dass die verschobene Adresse durch ein WAHRES („1") verschobenes Konkurrenz-Flagbit SC begleitet wird, und dass sein eigenes angefordertes Konkurrenz-Flagbit RC FALSCH ist.
  • B. Ein alternativer Zuteilungsprozess
  • Ein anderer Ansatz mit einer systolischen Matrix, um einen „gerechten" Zugriff auf die Ausgangsports vorzusehen, ist in dem oben genannten US-amerikanischen Patent US-A-5,327,420 beschrieben und beansprucht.
  • C. Koordinatenvermittlungsstruktur/Logikeinheit
  • In ATM-Vermittlern mit einer Batcher/Banyan-Vermittlungsstruktur gibt es keinen zentralisierten Punkt, bei dem eine Steuerung vorgesehen wird. Vielmehr ist die Vermittlung in den verteilten Knoten der Struktur lokalisiert. Wie in 4A gezeigt, sieht die vorliegende Erfindung eine Logikeinheit 13 vor, die operativ mit der letzten Auswerteeinrichtung 32 am unteren Ende des Reservierungsrings 12 verbunden ist, um aus der letzten Auswerteeinrichtung des Reservierungsrings 12 ausgehende Signale (etwa die in Verbindung mit 3A3L erläuterten Signale) abzufangen, zu untersuchen und zu verarbeiten. Während in den folgenden Erläuterungen die Logikeinheit 13 mit der letzten Auswerteeinrichtung des Reservierungsrings 12 verbunden ist, kann die Logikeinheit 13 auch operativ mit einer anderen Position als der letzten Auswerteeinrichtung verbunden sein.
  • Für die folgenden Erläuterungen zu der vorliegenden Erfindung wird davon ausgegangen, dass der ATM-Vermittler mit einem k-Faktor von 1 arbeitet, wobei alle Anforderungen gültig sind und keine andauernde Zuteilungssitzung vorgesehen ist. In dieser Situation stellt die Logikeinheit 13 eine Anforderung vom Eingangsport N – 1 und dann eine Anforderung vom Eingangsport N – 2, ... und schließlich eine Anforderung vom Eingangsport 0 fest. Unter diesen Annahmen, kann danach eine Abbildung zwischen Ausgangsports und dem Eingangsport berechnet werden, um die Logikeinheit 13 zu betreiben. Insbesondere wird ein Ausgangsport i (nicht gezeigt) mit einem Eingangsport j (nicht gezeigt) verbunden, wenn der Eingangsport j der letzte Eingangsport war, der den Ausgangsport i angefordert hat.
  • Ein derartiges Schema wird implementiert, indem die Logikeinheit 13 am unteren Ende des Reservierungsrings einen Vektor (nicht gezeigt) aufrechterhält, der durch eine Ausgangsportnummer indiziert wird. Der Inhalt jedes Vektorelements ist der Eingangsport, der auf diesen Ausgangsport abgebildet wird. Der Vektor wird auf Werte initialisiert, die „keine Verbindung" angeben. In Abwesenheit von Zuteilungssitzungen oder Prioritätsangaben ist dann der letzte Wert (d. h. der Eingangsport 0) der gültige Wert, weil der Zugriff in einer von oben nach unten verlaufenden Reihenfolge gewährt wird.
  • Als Alternative zu dem oben erläuterten Beispiel kann eine Tabelle als Ersatz für den Vektor konfiguriert sein. Diese Tabelle ist intern in der Logikeinheit 13 vorgesehen und speichert Daten einschließlich des angeforderten Ausgangsports sowie der Gültigkeit und Priorität des anfordernden Eingangsports. Die Priorität kann ein einzelnes Prioritätsbit oder eine Prioritätsfunktion sein, die ausführlichere Informationen vorsieht. Zum Beispiel kann die in dem Reservierungsring rotierte Prioritätsinformation als eine Priorität des absoluten Typs konfiguriert sein, die sich über alle anderen Typen von Information hinwegsetzt.
  • Im Folgenden wird der allgemeine Betrieb der vorliegenden Erfindung in Verbindung mit einer Anordnung erläutert, in der k = 1. In diesem Beispiel gibt es vier Eingangsports (Eingangsport 0–Eingangsport 3), vier Ausgangsports (Ausgangsport 0–Ausgangsport 3) sowie eine Eingangsport-Priorität von einer niedrigsten Priorität (d. h. 4) für den Eingangsport 3 bis zu einer höchsten Priorität (d. h. 1) für den Eingangsport 0 (siehe 4B). In den Erläuterungen wird angenommen, dass jeder eine Anforderung machende Eingansport eine gültige Anforderung hat. Deshalb muss nicht weiter geprüft werden, ob das Gültigkeitsbit gesetzt wurde oder nicht.
  • Die Logikeinheit 13 stellt zuerst eine Anforderung vom Eingangsport 3 für den Ausgangsport 3 fest. Diese Anforderung wird in eine interne Tabelle kopiert, durch die Logik in der Logikeinheit verarbeitet und im wesentlichen gleichzeitig zu dem Koordinatenschalter ausgegeben. Wenn der nächste Port, der Eingangsport 2, zu dem unteren Ende des Reservierungsrings 12 rotiert, stellt die Logikeinheit 13 eine Anforderung des Eingangsports 2 für die Verbindung mit dem Ausgangsport 2 fest. Diese Anforderung wird in der Tabelle der Logikeinheit 12 gespeichert und zum Koordinatenschalter ausgegeben. Dann wird der Eingangsport 1 zu dem unteren Ende des Reservierungsrings 12 rotiert, wobei festgestellt wird, dass auch dieser den Ausgangsport 3 anfordert. Daraufhin bestimmt die Logikeinheit 13, dass sie bereits eine Anforderung für den Ausgangsport 3 an die Koordinatenstruktur ausgegeben hat.
  • Die Logikeinheit muss jetzt bestimmt, ob die Koordinateneinrichtung durch eine neue Einrichtung (d. h. eine eingehende Anforderung des Eingangsports 1) aktualisiert werden muss oder ob der Koordinatenschalter in der jetzigen Einrichtung verbleiben kann. Dazu vergleicht die Logikeinheit die Priorität des Eingangsports 3 in der internen Tabelle mit der Priorität des Eingangsports 1, die auf den Leitungen von dem Reservierungsring empfangen wird. Wenn die auf den Leitungen des Reservierungsrings eingehende Anforderung eine niedrigere Priorität aufweist, wird die Koordinatenkonfiguration aufrechterhalten, wobei der Koordinatenschalter nicht neu geladen wird. Wenn festgestellt wird, dass die Anforderung des Eingangsports 1 eine höhere Priorität aufweist als diejenige des Eingangsports 3, wird der Koordinatenschalter neu geladen, wobei dann die interne Tabelle der Logikeinheit 13 aktualisiert werden muss.
  • Damit diese Operation erfolgreich durchgeführt werden kann, muss die Logikeinheit 13, die die Anforderungen testet und vergleicht, identische Prioritätsfunktionen wie der Reservierungsring 12 aufweisen, beispielsweise die in Verbindung mit 3A3L erläuterten Prioritäten.
  • Das Laden der Logiktabelle wird während jedes Taktzyklus vorgenommen. Während jedes Taktzyklus wird ein neuer Satz von Daten zum unteren Ende des Reservierungsrings, d. h. zur letzten Auswerteeinrichtung rotiert. Deshalb sind in einem System mit 32 Ports 32 Taktzyklen erforderlich, damit alle Datenelemente durch den Reservierungsring 12 rotieren können. Diese 32 Taktzyklen umfassen einen Zuteilungszyklus.
  • In dem vorstehend beschriebenen Beispiel wird der Prioritätswert wie etwa der SC-Prioritätswert durchrotiert und in der internen Tabelle 13 gespeichert, um in dem Prioritätsvergleich verwendet zu werden.
  • Während des Zuteilungszyklus erhält die Auswerteeinrichtung für den Eingangsport 3 Informationen zu dem Eingangsport 1 und führt einen Prioritätsvergleich durch. Die Auswerteeinrichtung für den Eingangsport 3 bestimmt, dass die Eingangsports 1 und 3 für die Übertragung von Daten an dieselbe Adresse (d. h. an den Ausgangsport 3) gesetzt sind. Dann wird bestimmt, dass der Eingangsport 3 eine höhere Priorität aufweist als der Eingangsport 1. Entsprechend erhält die Auswerteeinrichtung für den Eingangsport 1 während eines anderen Taktzyklus Informationen für den Eingangsport 3 und bestimmt dann, dass der Eingangsport 1 eine niedrigere Priorität aufweist. Die Auswerteeinrichtung des Eingangsports 1, die Auswerteeinrichtung des Eingangsports 3 und die Logikeinheit 13 verwenden also dieselbe Prioritätsinformation und dieselbe Prioritätsfunktion, um dieselben Ergebnisse zu erhalten.
  • Die Auswerteeinrichtungen 32 führen also dieselben Vergleiche am unteren Ende des Reservierungsrings 12 durch die Logikeinheit 13 auf. Es ist jedoch wahrscheinlich, dass diese Vergleiche zu verschiedenen Zeiten durchgeführt werden, weil die Information durch den Reservierungsring rotiert wird und deshalb zu verschiedenen Zeitpunkten bewertet wird.
  • Die Erfindung erkennt, dass die Logikeinheit 13 verwendet werden kann, um Information zu den gewünschten Ausgängen vom Reservierungsring 12 „aufzugreifen".
  • Wie weiter unten ausführlicher erläutert wird, sieht die Erfindung auch die Möglichkeit vor, die Koordinatenvermittlungsstruktur in jedem Taktzyklus zu setzen. Dies kann bewerkstelligt werden, weil erkannt wurde, dass Zeitschlitze verfügbar sind, sodass auch wenn verfrühte oder falsche Informationen zu einem Koordinatenschalter ausgegeben werden, genügend Taktzyklen zur Korrektur dieser Informationen vorhanden sind. Eine derartige Operation nimmt an, dass der Koordinatenschalter in einem Sinn eine doppelt gepufferte Einrichtung ist, sodass am Ende eines Zuteilungszyklus alle falschen Koordinatenschalter-Einrichtungen korrigiert wurden. Dank der doppelten Pufferung kann der Koordinatenschalter während der Einrichtung auch gleichzeitig leiten, sodass die Einträge in dem Koordinatenschalter überschrieben werden können, ohne dass dadurch andere Operationen betroffen werden.
  • Es ist zu beachten, dass die vorstehenden Erläuterungen mit Bezug auf eine Situation gegeben wurden, in der K = 1. Die Erfindung kann aber auch derart implementiert werden, dass der Koordinatenschalter mehrere Koordinatenschalteranordnungen umfasst, sodass also k ≥ 2. In einer derartigen Situation umfasst die Logikeinheit 12 eine Vielzahl von Tabellen, um das korrekte Laden der Koordinatenschalterstruktur zu steuern.
  • Ausführungsform A
  • Die Ausführungsform A der vorliegenden Erfindung ist in 5 dargestellt. Diese Ausführungsform nutzt – ebenso wie die folgenden Ausführungsformen – die Tatsache, dass der Reservierungsring 12 Anforderungen in einer von oben nach unten verlaufenden Ringreihenfolge verschiebt. Die Architektur des Reservierungsrings ist geändert und enthält zusätzlich zu der Reservierungsring-Hardware weitere Hardware-Register, die mit jeder Auswerteeinrichtung verbunden sind, sodass der Registerinhalt von einem oberen Port (wie etwa dem Eingangsport 0 von 3A3L) zum unteren Ende des Reservierungsring verschoben wird. Jede Auswerteeinrichtung 32 wird durch drei zusätzliche Register erweitert, nämlich durch ein Ein-Bit-Register „Gültig", ein log2k-Bit-Register „Z" und ein log2N-Bit-Register „AusgangsPort".
  • Am Ende jedes Zuteilungszyklus enthält das Gültig-Register eine Angabe dazu, ob die Auswerteeinrichtung eine Zuteilung bekommen hat oder nicht bzw. inaktiv war, enthält das Z-Register eine Kopie einer Variable Cntr oder eine Stopper-ID und enthält das AusgangsPort-Register die Adresse des Ausgangsports, zu dem der Eingangsport Zugriff erhalten hat. Die Gültig-Register aller Auswerteeinrichtungen sind zu einem Schieberegister vereint, und auch alle Z-Register und alle AusgangsPort-Register sind jeweils zu einem Schieberegister vereint. Während die nächste Zuteilungssitzung durchgeführt wird, werden die Ergebnisse der vorhergehenden Sitzung zu der Vermittlungsstruktur ausgegeben.
  • Viele Koordinatenschalter-Chips wie etwa AMCC S2024 und LSI L64270 weisen eine interne Pipelinestufe zwischen Steuereingängen und der Koordinatenschaltermatrix auf. Eine Sequenz von Steuereingaben kann eingegeben und in der Pipelinestufe gespeichert werden, um dann in einem einzigen Takt in die Koordinatenschalter geschrieben zu werden. Bei Chips wie etwa dem AMCC S2024, bei denen eine Rücksetzleitung mit der Pipelinestufe verbunden ist, ist die Sequenz der mit dem Einrichten einer Koordinatenschalterstruktur zum Leiten des nächsten Satzes von Zellen assoziierten Aktionen wie folgt: Rücksetzen der Pipelinestufe, sodass alle Ausgänge „nicht verbunden" sind, und dann Verschieben der Gültig-, Z- und AusgangsPort-Register durch einen Steuerchip wie in 6 gezeigt. Dieser Chip verwendet Gültigi, um zu entscheiden, ob der Eintrag gültig ist, Zi, um zu entscheiden, zu welchem Koordinatenschalter geschrieben wird, und OutPorti, um den Ausgangsport zu adressieren.
  • Der zu dem Ausgangsport geleitete Eingangsport wird implizit durch die Position in dem Reservierungsring bestimmt (es ist also ein Zähler erforderlich), oder explizit, indem eine andere Vektoreingabenummer zu dem Ring hinzugefügt wird, von der jeder Eintrag mit der entsprechenden Eingangsportnummer initialisiert ist.
  • Bei Koordinatenschaltern ohne eine Möglichkeit zum Rücksetzen der Pipelinestufe muss entweder eine externe Pipelinestufe vorgesehen werden, damit ungenutzte Ausgänge wie in 7 gezeigt zu „nicht verbunden" zurückgesetzt werden, oder die Vermittlungsausgabepuffer müssen nicht an sie adressierte Pakete zum Beispiel wie in 8 gezeigt herausfiltern. Alternativ hierzu können doppelt so viele Bänke verwendet werden, die alternativ gesetzt und gelöscht werden können. Diese Konzepte sind für alle Ausführungsformen der vorliegenden Erfindung relevant.
  • Ausführungsform B
  • Die Ausführungsform B verwendet die Logikeinheit 13 am unteren Ende des Reservierungsrings 12, um aus dem unteren Ende des Reservierungsring 12 austretende Signale festzustellen und zu kopieren, unmittelbar bevor die Signale zum Anfang des Reservierungsrings zurückgeführt werden. Eine Unterschied zwischen der zweiten Ausführungsform der vorliegenden Erfindung und der ersten Ausführungsform besteht darin, dass die zweite Ausführungsform keine Hinzufügung und Verbindung der Register Gültig, Z und AusgangsPort benötigt. Anstelle der Register der ersten Ausführungsform dient ein wie in 9 gezeigter Algorithmus dazu, die Koordinatenvermittlungsstruktur zu laden. Die Verwendung dieses Algorithmus reduziert die Kosten für die Implementierung der vorliegenden Erfindung und erhöht den Durchsatz des Systems.
  • In der zweiten Ausführungsform werden die zu den Koordinatenschaltern auszugebenden Daten in den Speicher abgebildet, d. h. in Tabellen innerhalb der Logikeinheit 13. Diese Tabellen sind durch Verfahren konfiguriert, die dem Fachmann wohlbekannt sind. Die Logikeinheit 13 weist eine Tabelle Vij auf, wo 0 ≤ i ≤ N – 1 und 0 ≤ j ≤ k – 1. Die Einträge der Tabelle Vi* werden im Kreis geschrieben, d. h. j = 0, 1, 2 ... k – 1, 0, 1, 2, ... In dem Algorithmus von 9 ist auch ein Vektor PTRi definiert, der einen Zeiger zu dem letzten in einer Reihe von Vi* geschriebenen Eintrag enthält.
  • Die Ausführungsform B kann auch ein Merkmal enthalten, das ein „Stopper-ID"-Bit für die Trunk-Gruppierung enthält, wenn die Reihenfolge der Zellen aufrechterhalten werden soll. das „Stopper-ID"-Bit, das bis zu K eindeutige Werte annehmen kann, wird an die Ausgangsportadresse in einem Vermittlungs-Header für jede Eingangszelle angehängt, bevor die Zelle durch die Vermittlungsstruktur geleitet wird. Für Trunk-Gruppierungssituationen wird die Stopper-ID in der Empfangsstufe verwendet, um zu unterscheiden, welches Paket eine höhere Priorität aufweist.
  • Es können höchstens k Zellen zu einer bestimmten Ausgangsportadresse pro Schaltzyklus geleitet werden, sodass die Stopper-ID vorzugsweise eine Ganzzahl ist, die K eindeutige Werte annimmt. Vorzugsweise wird die Stopper-ID durch den Reservierungsring berechnet.
  • In dem Algorithmus von 9 haben SC, RC, T und die anderen Begriffe dieselben Bedeutungen wie in Verbindung mit 3A3L. SC ist also ein sich fortpflanzendes Konkurrenz-Flag, RC ist ein lokales Konkurrenz-Flag und T ist ein Konkurrenzvektorbit. Es wird ein Test durchgeführt, um festzustellen, ob SC oder RC gleich 1 und RC oder SC gleich 0 sind, ob beide gleich 1 sind oder ob beide gleich 0 sind. Dadurch kann bestimmt werden, ob sich die jeweils durch SC und RC wiedergegebenen Ports in derselben Zuteilungssitzung befinden.
  • Ein Merkmal der vorliegenden Ausführungsform ist die Akkumulierung von Abbildungen von Eingängen auf Ausgänge sowie die Speicherung dieser Abbildungen in Tabellen in der Logikeinheit 13. Es werden Abbildungen für aktuelle Feststellungen sowie für den Status der zuletzt gesammelten Informationen akkumuliert. Dazu werden Daten am unteren Ende des Reservierungsrings 12 erfasst und gespeichert. Bei der nächsten Abbildung eines Eingangsports, der den zuvor gespeicherten Ausgangsport anfordert, führt die Logikeinheit 13 einen Test durch, um zu bestimmen, ob sich die gespeicherten Informationen und die gegenwärtig festgestellten Informationen in der gleichen Sitzung befinden. Wenn sie sich nicht in der gleichen Sitzung befinden, wird der anfordernde Port ignoriert. Wenn der anfordernde Port aktiv ist und der gespeicherte Port inaktiv ist oder eine niedrigere Priorität aufweist, dann wird die Abbildung neu geschrieben, um die vorhergehende Abbildung von Eingangsport auf Ausgangsport durch die neue Abbildung von Eingangsport auf Ausgangsport zu ersetzen.
  • Im Folgenden soll der Fall einer andauernden Zuteilungssitzung betrachtet werden. In dieser Situation sind einige der Auswerteeinrichtungen (wie bereits erläutert, gibt es für jeden Port eine Auswerteeinrichtung) in die aktuelle Zuteilung mit gesetzter Zustandsvariable FC eingetreten. Dadurch wird veranlasst, dass die Variablen SC und RC gesetzt werden. Wie bereits erläutert, werden die Eingangsports in einer Ringsequenz von oben nach unten bedient. Wenn also ein Eingangsport i aus einer bestimmten Sitzung für einige i stammt, dann müssen alle Eingangsports kleiner als i aus dieser bestimmten Sitzung stammen. Wenn ein weiterer Vektor VCi eingeführt wird und zum Speichern des mit einer bestimmten Anforderung für einen Ausgangsport assoziierten SC-Wertes verwendet wird, dann funktioniert der Algorithmus von 9, bevor ein Eintrag in der Tabelle V und sein assoziierter Eintrag in VC ersetzt werden.
  • Am Ende einer Zuteilungssitzung werden alle im Speicher der Tabelle V gespeicherten gültigen Einträge zu dem Koordinatenschalter ausgegeben. Dank der separaten Tabelle, die in den Koordinatenschalter kopiert wird, wird eine Verzögerung von einem vollständigen Zuteilungszyklus hinzugefügt, die eine Pipelineverzögerung einführt und wiederum die Pufferanforderungen des Systems erhöht.
  • 10A10J zeigen den Betrieb dieser Ausführungsform, wobei die linke Seite der Zeichnung vier (4) Ausgangsports (Ausgangsport 0–Ausgangsport 3) wiedergibt, sowie die Zustände von VC, V*j und Ptr. Die Angabe NV gibt einen „Nicht gültig"-Zustand an. Es werden zwei Zuteilungsrunden dargestellt. In der Zuteilungsrunge 1 werden die Eingangsports 0 und 1 auf den Ausgangsport 3 abgebildet, wobei die Stopper-ID jeweils gleich 0 und 1 ist. Der Eingangsport 2 wird auf den Ausgangsport 0 abgebildet, wobei die Stopper-ID gleich 0 ist. In der zweiten Zuteilungsrunde werden die Eingangsports 2 und 1 auf den Ausgangsport 0 abgebildet. Der Eingangsport 3 wird auf den Ausgangsport 3 abgebildet, und dem Eingangsport 0 wird der Zugriff verweigert. Es ist zu beachten, dass dieses Beispiel nicht für eine entspannte Zuteilungssituation gilt.
  • Der Algorithmus von 9 wird nicht zur Handhabung der entspannten Definition einer InSitzung-Beschränkung des Cisneros-Reservierungsrings verwendet. Um einen derartigen Fall zu handhaben, muss der Vektor VC zu einer Tabelle gewandelt werden, wobei auch die Situation berücksichtigt werden muss, dass mehrere SC = 0-Werte über einer bestimmten Nummer SC = 1 gefunden werden.
  • Ausführungsform C
  • In der Ausführungsform C lädt die Logikeinheit 13 den Koordinatenschalter gleichzeitig, während die Information aus dem Reservierungsring 12 aus der letzten Eingangs-Steuereinrichtung (d. h. aus der Auswerteeinrichtung) ausgegeben wird.
  • In der dritten Ausführungsform werden die Koordinatenschalter auf einer kontinuierlichen Basis eingerichtet, während Daten aus dem Reservierungsring ausgegeben werden. Mit anderen Worten werden die Zustände der Anforderungen durch die Eingangsports in den Koordinatenschalter kopiert, während sie gleichzeitig in interne Tabellen der Logikeinheit kopiert werden. Es besteht deshalb kein Bedarf, die zu den Koordinatenschaltern kopierten Daten erneut zu kopieren. Daraus resultiert ein System, das mit höherer Geschwindigkeit und geringerer Latenz betrieben werden kann als ein System der zweiten Ausführungsform.
  • Die Anzahl der Bänke wird durch k wiedergegeben. Die Anzahl der Eingangs- und Ausgangs-Steuerports ist gleich und wird durch N wiedergegeben. Die Logikeinheit verwendet zwei Sätze von Tabellen, wobei beide Tabellen k Bänke und N Einträge pro Bank aufweisen. In dieser Beschreibung werden sie als TABELLE(K)[n] angegeben, wobei K die Bank und n der Eintrag ist, wobei 0 ≤ K < k und 0 ≤ n < N. Der n-Index ist der angeforderte Ausgangsport, und der K-Index ist das verarbeitete Paket bzw. die verarbeitete Zelle. Wie in 11 gezeigt, speichert eine erste Klasse von Tabellen, VC, Prioritätseingaben. Eine zweite Klasse von Tabellen, V, speichert den mit der Eingangs-Steuerportnummer assozi ierten Koordinatenschalter. Während in dieser Ausführungsform die Anzahl der Eingangs- und Ausgangs-Steuerports gleich ist, kann die Ausführungsform auch auf Fälle erweitert werden, wo die Anzahlen der Eingangs- und Ausgangs-Steuerports ungleich sind.
  • Die Koordinatenschalter in dem System werden durch CB(K)[l] = n geladen, wobei K die Koordinatenschalterbank ist, l der Eingangsport ist und n der Ausgangsport ist. Dadurch wird veranlasst, dass die Koordinatenschalterbank K von dem Eingangsport 1 zu dem Ausgangsport n leitet. Diese Ausführungsform speichert nur die Eingang/Ausgang-Abbildungen in den Koordinatenschaltern.
  • Mit jeder Bank der VC-Tabellen ist eine Vergleichsfunktion PVC(K)[n] assoziiert, die den aktuellen Inhalt der Tabelle VC(K)[n] mit der schwebenden Eingabe p vergleicht, die eine Eingage zu der Prioritätsfunktion ist und aus einem Wert SC besteht. Die Prioritätsfunktion PVC(K)[n] führt denselben Vergleich durch wie die Vergleichsfunktion in den Eingangs-Steuereinrichtungen. Diese Funktion gibt eine positive Ausgabe aus, wenn der VC-Inhalt nicht leer ist und der schwebenden Prioritätseingabe vorgezogen wird. Das Ergebnis ist negativ, wenn der Eintrag leer ist oder wenn der aktuelle Inhalt eine geringere oder gleiche Priorität als die schwebende Prioritätseingabe aufweist.
  • In der vorstehenden Beschreibung wird SC als Eingabewert für die Prioritätsfunktion PVC(K)[n] verwendet, um eine Gerechtigkeit in den Zuteilungssitzungen vorzusehen. Es ist jedoch zu beachten, dass auch andere Typen von Prioritätseingabewerten verwendet werden können, um andere Prioritätsattribute für den Vergleich zu beschreiben.
  • Im Folgenden soll eine Situation betrachtet werden, wo k = 2. Es wird angenommen, dass zwei relevante Ports, der Eingangsport 1 und der Eingangsport 3, vorhanden sind.
  • Die Daten des Eingangsports 1 sind in die Logikeinheit 13 eingetreten und wurden in eine K = 1-Tabelle von VC (d. h. in eine Tabelle hoher Priorität) und gleichzeitig in den mit der K = 1-Tabelle assoziierten Koordinatenschalter geladen. Dann werden die Daten des Eingangsport 3 mit niedrigerer Priorität geladen, der denselben Ausgangsport als Ziel anfordert wie der Eingangsport 1. Der Eingangsport 1 liest die Tabelle hoher Priorität aus (d. h. K = 1) und stellt fest, dass bereits ein Eintrag besteht. In einer Vergleichsoperation mit der Logikeinheit 13 wird dann bestimmt, dass der Eingangsport 3 eine niedrigere Priorität aufweist als in der Tabelle hoher Priorität. Auf der Basis davon lädt der Eingangsport 3 die Tabelle niedriger Priorität (K = 2) mit dieser Information und lädt gleichzeitig den mit der Tabelle niedriger Priorität assoziierten Koordinatenschalter.
  • Wenn dagegen der Eingangsport 3 mit einer höheren Priorität in die Logikeinheit eingetreten ist als der Eingangsport 1, dann wird der Eintrag von dem Eingangsport 1 in der Tabelle höherer Priorität in die Tabelle niedrigerer Priorität verschoben. Wenn dies jedoch die einzige Aktion wäre, würde ein Problem entstehen. Denn während es einfach ist, Information zwischen den Tabellen höherer und niedrigerer Priorität innerhalb derselben Logikeinheit auszutauschen, ist die Verschiebung von Daten von einer Koordinatenschalteranordnung zu einer anderen komplex. Deshalb ist es nützlich, eine Konfiguration vorzusehen, in der keine Verschiebung zwischen Koordinatenschaltern erforderlich ist. Um dies zu bewerkstelligen, ist die Tabelle V konfiguriert, um Informationen zu speichern, die den Koordinatenschalter identifizieren, der für eine bestimmte VC geladen wurde.
  • Wenn also Eingangsport-Anforderungen in den Tabellen hoher Priorität (K = 1) und niedriger Priorität (K = 2) enthalten sind, die jeweils dasselbe Ziel anfordern und deshalb in zwei unterschiedliche Koordinatenschalter geschrieben werden, und wenn eine dritte Anforderung mit einer höheren Priorität als die beiden bestehenden Einträge eingeht, werden die mit den niedrigeren Priorität assoziierten Daten entfernt, weil entweder die Tabellendaten mit niedrigerer Priorität überschrieben werden oder weil von der höheren Priorität zu der niedrigeren Priorität gewechselt wird.
  • Jeder Eintrag in der Prioritätentabelle VC weist einen Eintrag in der V-Tabelle auf, der Information zum Identifizieren des geladenen Koordinatenschalters wie beispielsweise des mit dem Eintrag der niedrigsten Priorität assoziierten Koordinatenschalters enthält. Wenn also der Eintrag mit der niedrigsten Priorität entfernt wird, nimmt der neue Eintrag die mit dem entfernten Eintrag assoziierte Koordinatenschalter-Kennzeichnung und lädt sie neu. Dann wird ein Tabelleneintrag gemacht, der den neuen Eintrag entweder in der Tabelle hoher Priorität oder in der Tabelle niedriger Priorität assoziiert.
  • Bei der vorstehend beschriebenen Anordnung ist es erforderlich, nur einen Koordinatenschalter pro Zyklus zu laden. Eine Abbildung des geladenen Koordinatenschalters ist erforderlich, um zu verfolgen, mit welchen Koordinatenschaltern die Einträge in den Tabellen hoher Priorität und niedriger Priorität assoziiert sind.
  • Wenn sowohl die Tabelle hoher Priorität als auch die Tabelle niedriger Priorität gefüllt sind und eine andere Anforderung gemacht wird, die höher als beide bestehenden Anforderungen sind, wird die Tabelle hoher Priorität geladen und wird der Inhalt der Tabelle hoher Priorität nach unten zu der Tabelle niedrigerer Priorität bewegt. In dem Prozess wird nicht von der Ladung des Koordinatenschalter zu dem Eintrag gewechselt, der nach unten zu der Tabelle niedrigerer. Priorität verschoben wurde. Die Abbildung zwischen dem Koordinatenschalter und dem Eintrag besteht weiterhin. Es tritt lediglich eine Verschiebung zwischen internen Tabellen auf, um die Reihenfolge der Prioritäten aufrechtzuerhalten und den Koordinatenschalter zu verfolgen, in dem sich die Daten befinden. Es wurde jedoch keine Koordinatenschalterinformation verschoben. Es sollte deutlich geworden sein, dass die Koordinatenschalter selbst keine hohe und niedrige Priorität aufweisen und beliebig mit verschiedenen Prioritäten geladen werden können.
  • Das vorstehende Beispiel wird durch die Logikeinheit 13 mit dem in 12 gezeigten Algorithmus implementiert. Der Algorithmus sieht die Parameter der Koordinatenschalterbänke und Eingangsports vor, setzt die Tabellen VC und C und beschreibt die Variablen l, p (d. h. p entspricht SC in diesem Kontext), SA und T. Die Variablen SA, SC und T werden aus dem Reservierungsring von Signalen desselben Namens erhalten. SA, SC und T wurden zuvor in dieser Anmeldung ausführlicher beschrieben.
  • Es ist zu beachten, dass der Algorithmus von 12 gleichzeitig auf allen Spalten der Tabellen arbeitet. Insbesondere wird beispielsweise die rechte Seite aller Zuteilungen in den Tabellen bewertet, bevor sie der linken Seite zugeteilt wird. Deshalb werden alle Tabellen bearbeitet, indem die gesamte rechte Seite der Zuteilungen mit älterer Information bewertet wird gleichzeitig die Tabellen aktualisiert werden.
  • Im Folgenden wird der Betrieb mit Bezug auf den Algorithmus von 12 erläutert, wobei k = 5 Koordinatenschalter vorhanden sind und die Prioritätsfunktion auf den Nummern 1–10 arbeitet, wobei die höchste Priorität bei 10 liegt. Es ist dann anzunehmen, dass die Eingaben mit den Prioritäten 5, 4, 2 und 1 derzeit in dem Koordinatenschalter und in den Tabellen sind. Mit anderen Worten weist die Tabelle K = 0 eine Priorität von 5 auf, weist die Tabelle K = 1 eine Priorität von 4 auf, weist die Tabelle K = 2 eine Priorität von 2 auf und weist die Tabelle K = 3 eine Priorität von 1 auf. Wenn dann weiterhin angenommen wird, dass die nächste Eingangsanforderung einen Prioritätswert von 3 aufweist, stellt die Ausführung des Algorithmus für K = 1 fest, das die erste Bedingung PVC(K – 1)[SA] wahr ist und dass –PVD(K)[SA] nicht wahr ist. Deshalb fällt der Algorithmus zu der nächsten „wenn"-Aussage –PVC(K – 1)[SA], die ebenfalls nicht wahr ist. Das bedeutet, dass der Algorithmus zu dem „tue nichts"-Befehl fällt. Entsprechend fällt auch die Algorithmusoperation für die Tabelle K = 1 aus ähnlichen Gründen wie bei K = 0 zu dem „tue nichts"-Befehl.
  • Wenn die Tabelle K = 2 auf die Anforderung mit einer Priorität von 3 untersucht wird, wird festgestellt, dass PVC(K – 1)[SA] wahr und –PVC(K – 1)[SA] ebenfalls wahr ist, weil 3 logisch zwischen 4 und 2 liegt. Das bedeutet, dass der mit dieser Aussage assoziierte erste Satz ausgeführt wird.
  • Der erste Satz lädt die Koordinatenschalterstruktur. Um dies zu bewerkstelligen, muss bestimmt werden, welche bestimmte Koordinatenschalterstruktur zu laden ist, indem in der V-Tabelle nachgesehen wird. Der Algorithmus untersucht die Spalte der niedrigsten Priorität in der V-Tabelle und wählt den neu zu ladenden Koordinatenschaltereintrag, d. h. den Eintrag, der nach unten zu der Tabelle niedrigerer Priorität zu verschieben ist.
  • Die V-Tabelle ist derart beschaffen, das ein eindeutiger Eintrag in jeder der Tabellen vorhanden ist. Also auch wenn kein Eintrag in der Tabelle niedrigster Priorität ist, wird gewissermaßen ein leerer Eintrag nach unten verschoben, wobei es sich aber weiterhin um einen gültigen Wert des Koordinatenschalters handelt. Der verschobene Eintrag wird ausgewählt, wobei diese Position dann mit der entsprechenden Information geladen wird. Insbesondere wird sie mit der Information geladen, die mit der Eingangsanforderung mit einer Priorität 3 assoziiert ist. Der Algorithmus von 12 aktualisiert dann die entsprechenden Tabellen der Logikeinheit 13.
  • Der geladene Koordinatenschalter V(K) wählt also den verschobenen Wert. Mit anderen Worten ist K = 1 am niedrigsten. VC(K) setzt die aktuelle Priorität, d. h. die Priorität 3, für zukünftige Vergleiche in die Tabelle. Der Eintrag in K = 2 wurde also neu geladen. Der Algorithmus hat also den Koordinatenschalter, VC und V neu geladen. Der Inhalt der Spalte K = 2 wurde von K = 2 verschoben. Gleichzeitig zu dieser Operation wurden die Daten zu K = 3 kopiert. Der Inhalt der Tabelle K = 2 wurde also nach unten in die Tabelle K = 3 verschoben. Der Algorithmus verschiebt für jede Priorität, die niedriger als die eingefügte Priorität ist, den Eintrag um eine Tabelle nach unten zu der nächsten Tabelle.
  • Die erste „wenn"-Aussage ist also eine Aussage, die zusätzliche oder neue Daten einfügt, während die zweite „wenn"-Aussage eine Verschiebung nach unten durch die Tabellen vorsieht und die dritte „wenn"-Aussage, die eine „tue nichts"-Aussage ist, die Situation berücksichtigt, in der die Anforderungen mit bereits in den Tabellen vorhandenen Prioritäten höher sind als die eingehende Priorität und der Inhalt in den Tabellen nicht zu ändern ist.

Claims (9)

  1. Vermittlungsstruktursystem zum Leiten von Datenpaketen in einem ATM-Vermittler (10), wobei das System einen Reservierungsring (12) umfasst, gekennzeichnet durch: eine Logikeinheit (13), die operativ mit dem Reservierungsring (12) des ATM-Vermittlers (10) verbunden ist, wobei die Logikeinheit (13) von dem Reservierungsring Eingangsport-Leitanforderungen zum Leiten von assoziierten Datenpaketen zu ausgewählten Ausgangsports abfängt, und eine Koordinatenschaltermatrix (14), die angeordnet ist, um eine Ausgabe aus der Logikeinheit (13) zu empfangen, wobei die Ausgabe verwendet wird, um Pfade in der Koordinatenschaltermatrix (14) zum Leiten der assoziierten Datenpakete der anfordernden Eingangsports einzurichten.
  2. System nach Anspruch 1, wobei der Reservierungsring (12) eine Vielzahl von Auswerteeinrichtungen (32) umfasst, wobei die Auswerteeinrichtungen (32) konfiguriert sind, um Daten durch den Reservierungsring (12) zu rotieren, wobei die rotierten Daten durch den Reservierungsring zurück geführt werden, nachdem sie durch eine vorbestimmten Auswerteeinrichtung hindurchgegangen sind.
  3. System nach Anspruch 2, wobei die Logikeinheit operativ mit der vorbestimmten Auswerteeinrichtung des Reservierungsrings verbunden ist, um die aus der vorbestimmten Auswerteeinrichtung kommenden Daten abzufangen, bevor die Daten zurück durch den Reservierungsring geführt werden, wobei die vorbestimmte Auswerteeinrichtung vorzugsweise die unterste Auswerteeinrichtung des Reservierungsrings ist, wobei die Logikeinheit operativ mit dem unteren Ende des Reservierungsrings verbunden ist.
  4. System nach einem der Ansprüche 1 bis 3, wobei die Logikeinheit eine Vielzahl von Prioritätstabellen umfasst, die Prioritäten von einer höchsten Priorität zu einer niedrigsten Priorität aufweisen.
  5. System nach Anspruch 1, wobei der Reservierungsring (12) eine Vielzahl von Auswerteeinrichtungen (32) enthält, wobei jede Auswerteeinrichtung umfasst: i) ein erstes Register namens Gültig-Register, das eine Angabe dazu speichert, ob die assoziierte Auswerteeinrichtung in einem Zuteilungszyklus eine Zuteilung erhalten hat oder nicht bzw. inaktiv war, ii) ein zweites Register namens Z-Register, das eine Variable Cntr oder eine Stopper-ID enthält, und iii) ein drittes Register namens OutPort-Register, das eine Adresse eines Ausgangsports enthält, zu dem ein mit der Auswerteeinrichtung assoziierter Eingangsport Zugriff erhalten hat, wobei die Gültig-Register für alle Auswerteeinrichtungen zu einem Schieberegister vereint sind, wobei die Z-Register für alle Auswerteeinrichtungen zu einem Schieberegister vereint sind, wobei die AusgangsPort-Register für alle Auswerteeinrichtungen zu einem Schieberegister vereint sind, wobei während einer nächsten Zuteilungssitzung die Ergebnisse einer vorhergehenden Zuteilungssitzung zu einer verbundenen Koordinatenschalterstruktur verschoben werden, um die Koordinatenschalterstruktur zum Leiten der Datenpakete einzurichten.
  6. Kommunikationsnetzwerk mit einem Vermittlungsstruktursystem nach einem der Ansprüche 1 bis 5.
  7. Verfahren zum Leiten von Datenpaketen in einem ATM-Vermittler (10), wobei das Verfahren durch die folgenden Schritte gekennzeichnet ist: Abfangen von Eingangsport-Anforderungen zum Leiten von assoziierten Datenpaketen zu ausgewählten Ausgangsports an einem Reservierungsring (12) des ATM-Vermittlers (10) durch eine Logikeinheit (13), Verarbeiten der abgefangenen Eingangsport-Leitanforderungen in der Logikeinheit (13), um eine Pfadeinrichtungsinformation zu erzeugen, und Zuführen der Pfadeinrichtungsinformationen zu einer Koordinatenschalterstruktur (14), um Pfade zum Leiten der Datenpakete der anfordernden Eingangsports einzurichten.
  8. Verfahren nach Anspruch 7, wobei die Pfadeinrichtungsinformation in jedem Taktzyklus zu der Koordinatenschalterstruktur (14) geführt wird und wobei eine Pipelineverzögerung beim Zuführen zu der Koordinatenschalterstruktur (14) vermieden wird, oder wobei die Pfadeinrichtungsinformation in einer internen Tabelle der Logikeinheit gespeichert wird und wobei am Ende eines Zuteilungszyklus die in der internen Tabelle gespeicherte Pfadeinrichtungsinformation zu der Koordinatenschalterstruktur (14) zugeführt wird.
  9. Verfahren nach Anspruch 7, wobei weiterhin die Koordinatenstruktur konfiguriert wird, sodass sie aus einer Vielzahl von Koordinatenschalteranordnungen und einer Vielzahl von Tabellen besteht, wobei der Verarbeitungsschritt das Lesen der Vielzahl von Tabellen umfasst, um zu bestimmen, ob der anfordernde Eingangsport eine Priorität aufweist, die größer oder kleiner als diejenige eines Eingangsports ist, dessen vorhergehende Anforderung in einer aus der Vielzahl von Tabellen gespeichert wurde, Bestimmen, dass der anfordernde Eingangsport eine Priorität aufweist, die kleiner ist als diejenige des Eingangsports, dessen Anforderung gespeichert ist, und Speichern einer Anforderung von dem niedrigeren anfordernden Eingangsport an einer Position in einer der Tabellen, die sich von derjenigen der gespeicherten Anforderung unterscheidet.
DE69631265T 1995-05-23 1996-05-20 Vermittlungssystem Expired - Fee Related DE69631265T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US447673 1995-05-23
US08/447,673 US5590123A (en) 1995-05-23 1995-05-23 Device and method for use of a reservation ring to compute crossbar set-up parameters in an ATM switch

Publications (2)

Publication Number Publication Date
DE69631265D1 DE69631265D1 (de) 2004-02-12
DE69631265T2 true DE69631265T2 (de) 2004-06-09

Family

ID=23777277

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69631265T Expired - Fee Related DE69631265T2 (de) 1995-05-23 1996-05-20 Vermittlungssystem

Country Status (4)

Country Link
US (1) US5590123A (de)
EP (1) EP0744879B1 (de)
JP (1) JPH08335946A (de)
DE (1) DE69631265T2 (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5862128A (en) * 1995-12-29 1999-01-19 Gte Laboratories Inc Merged buffer signal switch
US5813040A (en) * 1995-12-29 1998-09-22 Gte Laboratories Inc Write controller for a CAM-based switch with lineraly searchable memory utilizing hardware-encoded status tags to indicate avaliablity of each memory location for writing
US5774463A (en) * 1995-12-29 1998-06-30 Gte Laboratories Incorporated Switching matrix with contention arbitration
US5930256A (en) * 1997-03-28 1999-07-27 Xerox Corporation Self-arbitrating crossbar switch
GB2334651A (en) * 1998-02-18 1999-08-25 Power X Limited Scheduling means for data switching apparatus
US6052368A (en) * 1998-05-22 2000-04-18 Cabletron Systems, Inc. Method and apparatus for forwarding variable-length packets between channel-specific packet processors and a crossbar of a multiport switch
US6728206B1 (en) * 1998-08-03 2004-04-27 Silicon Grpahics, Inc. Crossbar switch with communication ring bus
US6185221B1 (en) * 1998-11-09 2001-02-06 Cabletron Systems, Inc. Method and apparatus for fair and efficient scheduling of variable-size data packets in an input-buffered multipoint switch
JP3684308B2 (ja) * 1998-12-15 2005-08-17 富士通株式会社 スケジューリング制御装置および交換機
DE10105935B4 (de) * 2000-02-09 2009-06-18 Nec Corp. Multimode-Scheduler, Vorrichtung mit einem Multimode-Scheduler und Multimode-Abwicklungsverfahren
US7013279B1 (en) * 2000-09-08 2006-03-14 Fuji Xerox Co., Ltd. Personal computer and scanner for generating conversation utterances to a remote listener in response to a quiet selection
US6823184B1 (en) 2000-09-08 2004-11-23 Fuji Xerox Co., Ltd. Personal digital assistant for generating conversation utterances to a remote listener in response to a quiet selection
US6999453B1 (en) 2001-07-09 2006-02-14 3Com Corporation Distributed switch fabric arbitration
US7464180B1 (en) * 2001-10-16 2008-12-09 Cisco Technology, Inc. Prioritization and preemption of data frames over a switching fabric
US7324537B2 (en) * 2003-07-18 2008-01-29 Intel Corporation Switching device with asymmetric port speeds
US20060165081A1 (en) * 2005-01-24 2006-07-27 International Business Machines Corporation Deflection-routing and scheduling in a crossbar switch
US8230152B2 (en) * 2009-02-13 2012-07-24 The Regents Of The University Of Michigan Crossbar circuitry and method of operation of such crossbar circuitry
US8255610B2 (en) 2009-02-13 2012-08-28 The Regents Of The University Of Michigan Crossbar circuitry for applying a pre-selection prior to arbitration between transmission requests and method of operation of such crossbar circuitry
US8549207B2 (en) 2009-02-13 2013-10-01 The Regents Of The University Of Michigan Crossbar circuitry for applying an adaptive priority scheme and method of operation of such crossbar circuitry
US9514074B2 (en) 2009-02-13 2016-12-06 The Regents Of The University Of Michigan Single cycle arbitration within an interconnect

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5245603A (en) * 1987-10-15 1993-09-14 Network Equipment Technologies, Inc. High-speed determining unit for prioritizing and arbitrating among competing input signals
US4893304A (en) * 1988-09-02 1990-01-09 Bell Communications Research, Inc. Broadband packet switch with combined queuing
NL9000765A (nl) * 1990-04-02 1991-11-01 Apt Nederland Digitale schakelmodule voor datapakketten voor het toewijzen van lege pakketten aan kruispuntschakelaar.
US5197064A (en) * 1990-11-26 1993-03-23 Bell Communications Research, Inc. Distributed modular packet switch employing recursive partitioning
US5157654A (en) * 1990-12-18 1992-10-20 Bell Communications Research, Inc. Technique for resolving output port contention in a high speed packet switch
US5361255A (en) * 1991-04-29 1994-11-01 Dsc Communications Corporation Method and apparatus for a high speed asynchronous transfer mode switch
CA2113647A1 (en) * 1991-08-05 1993-02-18 Aloke Guha Crossbar with return net for scalable self-routing non-blocking message switching and routing system
US5327420A (en) * 1992-05-20 1994-07-05 Xerox Corporation Method for building multi-bit parallel Batcher/banyan networks
US5305311A (en) * 1992-05-20 1994-04-19 Xerox Corporation Copy network providing multicast capabilities in a broadband ISDN fast packet switch suitable for use in a local area network
US5325356A (en) * 1992-05-20 1994-06-28 Xerox Corporation Method for aggregating ports on an ATM switch for the purpose of trunk grouping
US5267235A (en) * 1992-05-21 1993-11-30 Digital Equipment Corporation Method and apparatus for resource arbitration
US5367520A (en) * 1992-11-25 1994-11-22 Bell Communcations Research, Inc. Method and system for routing cells in an ATM switch
US5517495A (en) * 1994-12-06 1996-05-14 At&T Corp. Fair prioritized scheduling in an input-buffered switch

Also Published As

Publication number Publication date
JPH08335946A (ja) 1996-12-17
EP0744879A3 (de) 1999-04-21
DE69631265D1 (de) 2004-02-12
EP0744879A2 (de) 1996-11-27
EP0744879B1 (de) 2004-01-07
US5590123A (en) 1996-12-31

Similar Documents

Publication Publication Date Title
DE69631265T2 (de) Vermittlungssystem
DE69637462T2 (de) ATM-Vermittlungsstelle mit Eingangs- und Ausgangsanschlussstellen
DE69233588T2 (de) ATM-Vermittlungsanordnung
DE69733703T2 (de) Puffer von Mehrfachsendezellen in Vermittlungsnetzen
DE69726995T2 (de) Mehrfachsende-Leitweglenkung in mehrstufigen Netzen
DE3752370T2 (de) Vermittlungssystem
DE69931587T2 (de) RRGS-Round-Robin-Greedy Ablaufsteuerung für Eingangs-/Ausgangsgepufferte Terabitswitches
DE69820084T2 (de) Netzwerkvorrichtung und Verfahren zur Reduzierung der System-Latenz
EP0446589B1 (de) Kopierfähige ATM-Vermittlungsstelle
EP0320772B1 (de) Verfahren zur hybriden Paketvermittlung und Einrichtungen hierzu
DE69635880T2 (de) Anlage und Methode zur Übertragung von Paketen, geeignet für eine grosse Anzahl von Eingangstoren
DE69832884T2 (de) Wegesucheinheit mit zuteilung von virtuellen kanälen
DE69434705T2 (de) Multiprozessorsystem und Verfahren zur Zusammensetzung von ATM Zellen
EP0641099A1 (de) Verfahren und Vorrichtung zum Zwischenspeichern von Datenpaketen sowie Vermittlungsstelle mit einer solchen Vorrichtung
DE19531749A1 (de) Verkehrsgestaltungseinrichtung und Paket-Kommunikationsgerät
DE19757965A1 (de) Verteiltes Puffersystem für ATM-Schalter
DE60119459T2 (de) Paketvermittlungsvorrichtung und Verfahren zur Steuerung der Vermittlung
DE60031284T2 (de) Ablauffolgesteuerung für Paketvermittlungen und passive optischen Netzwerke
DE69817672T2 (de) Vorrichtung zum Sortieren von Datenelementen in einem binären Baum und ein ATM Abstandshalter mit einer solchen Vorrichtung
EP0471051B1 (de) Steuereinheit für den zentralspeicher eines atm-knotens
DE69633781T2 (de) Vermittlungsnetz zur Übertragung von Datenzellen
DE60131355T2 (de) Paketverarbeitungsvorrichtung
DE60300827T2 (de) Kommunikationssystem und Verfahren mit einer Vorrichtung zur Warteschlangenbildung pro Dienst
DE69626679T2 (de) Vermittlungseinrichtung
EP0322075B1 (de) Koppelfeld und Koppelfeldsteuerung für ein Vermittlungssystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee