-
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,
-
3A–3L 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,
-
10A–10J 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 26i–26i
+ 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) 26i–26i +
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 16i–26i
+ 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 26i–26i
+ 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 26i–16i
+ 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.
-
3A–3L 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 3C–3E 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 3G–3L 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 3A–3L 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 3A–3L 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 3A–3L)
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 3A–3L.
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.
-
10A–10J 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.