-
Die
vorliegende Erfindung betrifft ein Verfahren zum Zuordnen von Daten
zu an einer ATM-Netzeinrichtung über
virtuelle Verbindungen eintreffenden ATM-Zellen.
-
Es
ist bekannt, dass bei der ATM („Asynchronous Transfer Mode")-Technik virtuelle
Verbindungen zwischen den mit dem Netz verbundenen Einrichtungen
innerhalb der physischen Verbindungen, die zwischen diesen Einrichtungen
bestehen, hergestellt werden. Jede virtuelle Verbindung ist durch
ein Paar von Identifikatoren gekennzeichnet, das in bestimmten Feldern
des Headers jeder Zelle, die über
diese virtuelle Verbindung übertragen
wird, zu finden ist:
- – einen virtuellen Pfadidentifikator
oder VPI („virtual
path identifier"),
der im Allgemeinen Ressourcen kennzeichnet, die teilpermanent zugeordnet werden;
- – einen
virtuellen Kanalidentifikator oder VCI („virtual channel identifier"), der Ressourcen
kennzeichnet, die dynamisch innerhalb der virtuellen Leitungen zugeordnet
werden.
-
Die
Schalteinrichtungen des ATM-Netzes führen die Weiterleitung jedes
Pakets oder Zelle auf der Grundlage des einen oder des anderen (oder
beider) der VPI-VCI-Identifikatoren,
die in ihrem Header gelesen werden, durch.
-
Gemäß den geltenden
Normen (Empfehlung UIT-T I.361) besteht der VCI aus Lc =
16 Bits, und der VPI besteht aus Lp = 8
Bits mit einer Teilnehmer-Netz-Schnittstelle (UNI) und aus Lp = 12 Bits mit einer Netzknotenschnittstelle
(NNI). Die Empfehlung UIT-T I.361 schreibt außerdem in Abschnitt 2.2.3 und 2.3.2
vor, dass:
- – die verwendeten Bits des
VPI-Feldes aneinander grenzen sollen;
- – die
verwendeten Bits des VPI-Feldes Bits mit möglichst geringem Gewicht des
VPI-Feldes sein sollen (ab Bit 5 des Oktetts 2 des Headers der Zellen);
- – die
verwendeten Bits des VCI-Feldes aneinander grenzen sollen;
- – die
verwendeten Bits des VCI-Feldes Bits mit möglichst geringem Gewicht des
VCI-Feldes sein sollen (ab Bit 5 des Oktetts 4 des Headers der Zellen);
- – die
nicht zugeteilten, das heißt
vom Nutzer oder vom Netz in dem Weiterleitungsfeld mit 28 Bits nicht
verwendeten Bits auf Null gesetzt werden.
-
Die
Kodierung der VPI-VCI-Paare erlaubt die Differenzierung von 228, das heißt von mehr als zweihundertsechzig
Millionen virtuellen Verbindungen innerhalb jeder physischen Verbindung.
In der Praxis verwenden die Bediener nur eine wesentlich geringere
Anzahl von virtuellen Verbindungen (in der Regel in der Größenordnung
von 4.000).
-
Da
die Zellen, die zu den hergestellten virtuellen Verbindungen gehören, wahllos
und mit sehr großer
Geschwindigkeit zu den Einrichtungen des Netzes gelangen, müssen diese
in der Lage sein, auf der Grundlage der VPI-VCI-Paare, die im Header
der Zellen gelesen werden, sehr schnell Daten diesen Zellen zuzuordnen,
um sich für
eine geeignete Antwort zu entscheiden.
-
Die
einfachste Art, dies zu tun, würde
darin bestehen, einen Direktzugriffsspeicher (RAM) zu verwenden,
der die betreffenden Daten an Adressen zu speichern, die von den
VPI-VCI-Paaren festgelegt werden. Aber die Kosten für den Speicher
mit einem Index von 28 Bits wären
unerschwinglich bei einer lächerlichen
Leistung, während
nur einige Tausend virtuelle Verbindungen aktiv sind.
-
Eine
andere Methode besteht darin, eine dichotomische Suche zu verwenden,
die eine Suchschleife erfordert, deren Ausführungszeit logarhythmisch in
Abhängigkeit
von der Anzahl der Eintragungen ist, in einer Tabelle, in der die
Eintragungen in aufsteigender oder absteigender Reihenfolge der
VPI-VCI-Schlüssel
eingeordnet sind. Im Rahmen einer ATM-Netzeinrichtung erfordert
diese Methode eine äußerst schnelle
Elektronik.
-
Es
ist auch denkbar, wie bei EP-A 0 600 683, assoziative oder vom Inhalt
adressierbare Speicher (CAM) zu verwenden. Diese Lösung weist
den Nachteil auf, dass sie sperrig und sehr kostspielig ist.
-
Im
Bereich der Computerprogrammierung wird üblicherweise eine Hash-Kodierungstechnik
verwendet, um schnell Umsetzungstabellen abzufragen, wie zum Beispiel
bei den Datenbanken oder den Sprachcompilern (siehe Knuth: "The Art of Computer Programming", Bd. 3, Addison-Wesley
1973, Seite 506-542). Diese Technik beruht auf der Verwendung einer
Hash-Funktion, die zufallsverteilt den langen Zugriffsschlüssel auf
einen kürzeren
Code verkürzt, genannt
H-Code. Die Aufgabe dieser zufallsverteilten Funktion besteht darin,
die H-Codes gleichmäßig auf einen
begrenzten Bereich mit wahlfreiem Zugriff zu verteilen. Ein verwendbares
Funktionsbeispiel, abgeleitet von der Technik der zyklischen Codes,
beruht auf der polynomischen Teilung (siehe R. Jain: "A Comparison of Hashing
Schemes for Address Lookup in Computer Networks", IEEE Trans. on Communications, Band
40, Nr. 10, Oktober 1992, Seite 1570-1573). Konkurrenzsituationen tauchen auf,
wenn ein- und derselbe H-Code mehreren verschiedenen Zugriffsschlüsseln zugeordnet
ist. Diese Konkurrenzsituationen lassen sich durch ein Suchverfahren
in sekundären Überlaufketten
lösen,
das es ermöglicht,
eine sehr geringe durchschnittliche Ausführungszeit der Suche beizubehalten.
Aber wie in dem vorerwähnten
Werk von Knuth (Seite 540) angemerkt, sind die Hashing-Verfahren
nur durchschnittlich wirksam, während
die Suchzeit in ungünstigen
Fällen
sehr lang sein kann. Dies ist auf die Tatsache zurückzuführen, dass
die Dauer einer Suche in den sekundären Ketten im Falle einer Konkurrenzsituation
nicht beschränkt
ist. Diese Verfahren erscheinen daher unbrauchbar bei dem Problem
der Zuordnung in Echtzeit von Daten zu ATM-Zellen, da die Zeit für die Ausführung der
Suche geringer sein muss als die Zellenzeit, damit die Leistungsspezifikationen eingehalten
werden.
-
Eine
Aufgabe der vorliegenden Erfindung besteht darin, ein wirksames
und wirtschaftliches Suchverfahren vorzuschlagen, um Daten ATM-Zellen zuzuordnen.
-
Die
Erfindung schlägt
somit ein Verfahren zum Zuordnen von Daten zu an einer ATM-Netzeinrichtung über virtuelle
Verbindungen eintreffenden ATM-Zellen vor. Das Verfahren umfasst
bei der Einrichtung einer jeden der virtuellen Verbindungen die Einführung eines
Paars von Identifikatoren, welche einen virtuellen Pfadidentifikator
von Lp Bits und einen virtuellen Kanalidentifikator
von Lc Bits umfassen, und die Speicherung,
in einer Tabelle der Einrichtung, von Daten, die sich auf die virtuelle
Verbindung in Beziehung mit ihrem Paar von Identifikatoren beziehen.
Das Verfahren umfasst andererseits beim Eintreffen jeder ATM-Zelle,
deren Header das Paar von Identifikatoren einer der virtuellen Verbindungen beinhaltet,
das Lesen von diese virtuelle Verbindung betreffenden Daten in der
Tabelle. Gemäß der Erfindung
umfasst die Tabelle p.2m in 2m Zeilen
und p Spalten organisierte Speicherzonen, wobei m und p ganze Zahlen
und wenigstens gleich 1 sind, und die eine virtuelle Verbindung betreffenden
Daten in einer Zone der Tabelle gespeichert werden, deren Zeile durch
einen Index von m Bits bezeichnet ist, der durch Anwendung eines
systematischen zyklischen Codes, dessen Generatorpolynom vom Grad
m ist, auf ein Binärwort
von L Bits (L ≤ Lp + Lc) erhalten
wird, das aus einer Folge von Lp + Lc Bits erhalten wird, die durch die Bits
eines der Identifikatoren des für
die virtuelle Verbindung verwendeten Paars, geordnet nach abnehmendem
Gewicht, gefolgt von den Bits des anderen Identifikators des Paars,
geordnet nach zunehmendem Gewicht, gebildet wird.
-
Die
Berechnung des Index mit Hilfe eines systematischen zyklischen Codes
ist mit einer Hash-Funktion vergleichbar. Die Organisation der Tabelle
in zwei Dimensionen ermöglicht
es, die Zeit für die
Ausführung
einer Suche zu beschränken.
Sie ist nicht als Tabelle mit dynamischem Überlauf organisiert wie in
der Hashing-Softwaretechnik.
Wenn p VPI-VCI-Paare mit demselben Index bereits aktiv sind und
wenn ein (p + 1)tes VPI-VCI-Paar, das zu demselben Index führt, bereits
für eine
neue einzurichtende virtuelle Verbindung vorgesehen ist, dann wird
dieses (p + 1)te Paar abgelehnt. Ein entsprechender Dialog mit der
Einrichtung, die sich am anderen Ende der virtuellen Verbindung
befindet, ermöglicht
dann die Auswahl eines anderen Paares. Die Wahrscheinlichkeit des
Auftretens einer derartigen Ablehnung kann durch eine entsprechende
Dimensionierung der Tabelle sehr gering gehalten werden.
-
Außerdem tritt
in vielen Fällen
keine Konkurrenzsituation auf. Aufgrund der Anordnung der Bits der
VPI- und VCI-Identifikatoren genügt
es, p = 1 zu nehmen, damit keine Konkurrenzsituation bis zu einer
Anzahl gleich 2m von eingerichteten Verbindungen
auftritt, wenn die Zuordnung dieser Identifikatoren den Bestimmungen
entspricht, die in Abschnitt 2.2.3 und 2.3.2 der Empfehlung UIT-T
I.361 aufgeführt
sind. Dieses Fehlen von Konkurrenzsituationen ergibt sich aus den
Eigenschaften der zyklischen Codes.
-
Die
Tabelle kann ebenfalls p = 2s Spalten mit s ≥ 1 enthalten.
Die Daten, die sich auf eine virtuelle Verbindung beziehen, können dann
ohne Gefahr einer Konkurrenzsituation in einer Zone der Tabelle
gespeichert werden (bis zu 2m+s Verbindungen,
wenn die Bestimmungen der Empfehlung UIT-T I.361 eingehalten werden),
deren Spalte durch einen Index bezeichnet ist, der durch s Bits
von bestimmten Positionen des Identifikatorenpaares dieser Verbindung definiert
ist. Diese s Bits (in der Regel s = 1 oder 2) ermöglichen
es, die Einheiten der Identifikatorenpaare, die von den beiden Enden
der Verbindung gesteuert werden, zu unterscheiden.
-
In
den Fällen,
in denen die Einrichtung in einem Netz installiert wird, das Einrichtungen
enthält, die
die VPI-VCI nicht normgemäß steuern,
kann es dennoch interessant sein, die Tabelle (p > 1 oder p > 2s)
zu überdimensionieren,
um die Gefahr von Konkurrenzsituationen zwischen wahlfrei zugeordneten VPI-VCI-Paaren
sehr gering zu halten. Trotz dieser Überdimensionierung kann ein
Speicher von angemessener Größe (einige
Zehntausend Speicherzonen statt 228 in den
Fällen
einer einfachen Nutzung eines RAM-Speichers) beibehalten werden.
-
Besonders
günstige
zyklische Codes für
die Berechnung der Indexe von m Bits sind die Fire-Codes, deren
Generatorpolynom G(X) die Form G(X) = (1 + Xq).P(X)
hat, wobei (P(X) ein erstes Polynom vom Grad r ist und q und r ganze
Zahlen und größer als
0 sind, derart, dass q + r = m und L + m nicht größer ist
als das kleinste gemeinsame Vielfache (KGV) von q und 2r – 1.
-
Außer den
obigen Eigenschaften wird jegliche Gefahr einer Konkurrenzsituation
vermieden, wenn die Bits, die verwendet werden, um die VPI und die
VCI ein- und derselben physischen Verbindung zu unterscheiden, sich
in den beiden beweglichen Bereichen von L1 Bits
beziehungsweise L2 Bits befinden, wie zum
Beispiel L1 + L2 =
q + 1, L1 ≤ q
und L1 ≤ r.
-
Weitere
Besonderheiten und Vorteile der vorliegenden Erfindung sind aus
der folgenden Beschreibung eines nicht beschränkenden Ausführungsbeispiels
ersichtlich, mit Bezug auf die beigefügten Zeichnungen, wobei:
-
1 ein
Blockdiagramm der Mittel ist, die verwendet werden, um die Erfindung
in einem ATM-Schalter
einzusetzen;
-
2 ein
Diagramm ist, das die Struktur der Tabelle zur Speicherung der Daten
veranschaulicht;
-
3 ein
Diagramm ist, das den Bau der Indexe zur Linienkennzeichnung anhand
der VPI-VCI-Paare veranschaulicht; und
-
4 Chronogramme
der Funktionsweise der Mittel aus 1 zeigt.
-
In
der folgenden Beschreibung wird die Erfindung in einem Anwendungsbeispiel
in einem ATM-Schalter veranschaulicht. Es wird insbesondere der
Fall betrachtet, in dem die Daten, die jeder ankommenden ATM-Zelle
zugeordnet werden sollen, aus einer Verbindungskennung, die als
Id_Cx bezeichnet wird, bestehen, die von dem Schalter verwendet
wird, um die Aufgaben zu erfüllen,
die auf den Zellen, die zu einer virtuellen Verbindung gehören, erforderlich
sind. Diese interne Kennung Id_Cx wird vor dem Inhalt der ATM-Zelle
(Header + Daten) in einem „Kapsel"-Format, das dem Schalter eigen ist, eingesetzt,
wobei eine Kapsel aus der Kennung Id_Cx, gefolgt von dem Inhalt
der Zelle, bestehen kann.
-
Ein
Beispiel für
einen ATM-Schalter, das ein derartiges Kapselformat einsetzt, ist
detailliert in EP-A-0 735 727 beschrieben.
-
Die
interne Kennung Id_Cx dient als Zeiger in Tabellen mit Direktzugriffsspeicher
(RAM) des Schalters. Um eine gegebene Funktion auf einer Zelle zu
erfüllen
(wie zum Beispiel Weiterleitung in den Schaltmatrixen, Übersetzung
von VPI-VCI-Feldern, Mengenkontrolle im Vergleich zu den maximalen Zellraten
oder den mittleren Zellraten, die zwischen dem Bediener und den
Nutzern vereinbart sind, ...), liest der Schalter die entsprechenden
Parameter (Weiterleitungskennsätze,
neue Werte der VPI-VCI, vereinbarte Zellratenwerte...) in einer
der RAM-Tabellen an einer Adresse, die durch die Kennung Id_Cx,
die sich vor der Zelle am Anfang der Kapsel befindet, angezeigt
ist. Die Kennung Id_Cx enthält wesentlich
weniger Bits als das VPI-VCI-Paar
(zum Beispiel 12 Bits anstelle von 28 Bits), so dass die RAM-Tabellen
aus preisgünstigen
Speicherebenen von üblicher
Größe bestehen
können.
-
Es
wäre selbstverständlich auch
möglich, dass
die den Zellen gemäß der Erfindung
zugeordneten Daten direkt aus Betriebsparametern der Einrichtung
statt aus Zwischenzeigern in den RAM-Tabellen, die diese Parameter
enthalten, bestehen, insbesondere, wenn die Einrichtung, in der
die Erfindung eingesetzt wird, verhältnismäßig wenig komplex ist und daher
keine große
Anzahl derartiger Parameter erfordert.
-
1 zeigt
Mittel, die verwendbar sind, um die Kennungen Id_Cx ATM-Zellen in
dem Maße
zuzuordnen, wie sie zu einem Schalter gelangen, und um diese Kennungen
am Anfang der entsprechenden Kapseln einzufügen. Diese Mittel werden von
einem Modul 1 zur Steuerung der Vorgänge unter der Kontrolle des
Zentralprozessors des Schalters überwacht.
Dieses Modul 1 erhält
das Zellentaktsignal CKC, das die Anfänge der Zellen angibt, die
nacheinander auf einer physischen Verbindung am Eingang des Schalters
ankommen, um die zu gegebener Zeit erforderlichen Vorgänge auszulösen. Die
Einheiten 2, 3, 4 und 5 erzeugen
bei der Ankunft jeder Zelle die interne Kennung Id_Cx der Verbindung,
zu der diese Zelle gehört,
in einer Zeit, die kürzer
ist als die Zeitdauer des Taktsignals CKC. Eine Einheit 6 verzögert die
ankommende Zelle um eine entsprechende Zeit, bevor sie sie an einen
Multiplexer 7 übergibt,
dessen anderer Eingang die interne Kennung Id_Cx empfängt. Der
Multiplexer 7 übergibt
die Kapsel, die von der Zelle gebildet wird, der die zugeordnete
Kennung vorgeschaltet ist, gemäß dem internen
Format des Schalters.
-
Die
Kennungen Id_Cx werden in Verbindung mit den entsprechenden VPI-VCI-Paaren
in einer RAM-Speichereinheit 4 gespeichert, die gemäß einer zweidimensionalen
Tabelle, wie in 2 veranschaulicht, organisiert
ist.
-
Tabelle 4 umfasst
p.2m Speicherzonen, die in 2m Zeilen,
die von 0 bis 2m – 1 indexiert sind, und p Spalten,
die von 0 bis p – 1
indexiert sind (p = 4 in dem Sonderfall, der in 2 dargestellt
ist), organisiert sind. Jede Zone besteht aus drei Plätzen:
- – Der
erste enthält
einen x-Bit, der durch den Wert x = 1 die Tatsache angibt, dass
die Zone eine gültige
Eintragung enthält,
das heißt
betreffend eine eingerichtete virtuelle Verbindung, und durch den Wert
x = 0 das Fehlen einer derartigen gültigen Eintragung;
- – Der
zweite, von Lp + Lc =
28 Bits (Fall einer NNI-Schnittstelle),
enthält
das VPI-VCI- Identifikatorenpaar,
das die virtuelle Verbindung bezeichnet, falls x = 1;
- – der
dritte enthält
die interne Kennung Id_Cx der virtuellen Verbindung, falls x = 1.
-
Der
Index H der Zeile der Tabelle 4, der die Zone beinhaltet,
in der die Daten betreffend eine virtuelle Verbindung gespeichert
sind, wird erhalten durch die Einheit 2 auf der Grundlage
des VPI-VCI-Paares dieser Verbindung, durch eine Berechnung des
CRC ("cyclic redundancy
checksum"), wie
sie üblicherweise
im Bereich der Fehlererkennungskodierung verwendet wird.
-
Herkömmlicherweise
(siehe „Theorie
et Technique de la Transmission de Données" von Clavier et al., Editions Masson,
1979) besteht die systematische zyklische Kodierung eines Binärwortes
von L Bits iL-1iL-2 ...
i1i0, , das durch
ein Polynom i(X) = 1L-1XL-1 +
iL-2XL-2 + ... i1X + i0 dargestellt
wird, darin, den Rest der euklidischen Division des Polynoms Xmi (X) durch ein Generatorpolynom G(X) vom
Grad m zu berechnen, wobei die Additionen sich als bitweise EXKLUSIV-ODER-Verknüpfungen
verstehen. Die m Binärkoeffizienten
des Restpolynoms bilden die CRC, die hier als Zeilenindex H verwendet
wird. Derartige euklidische Divisionen werden auf einfache Art und
sehr schnell durch herkömmliche
Schaltungsanordnungen zur Berechnung anhand von Schieberegistern
mit m Stufen ausgeführt.
-
Gemäß der Erfindung
besteht das Binärwort, das
der zyklischen Kodierung unterworfen wird, aus L aufeinanderfolgenden
Bits, die entnommen werden aus einer Folge von Lp +
Lc Bits, die aus den Bits eines der Identifikatoren
des VPI-VCI-Paares gebildet ist, geordnet nach abnehmendem Gewicht,
gefolgt von den Bits des anderen Identifikators des VPI-VCI-Paars,
geordnet nach zunehmendem Gewicht. 3 zeigt
somit die VPI-ICV-Sequenz, von der die ersten Lp =
12 Bits diejenigen des VPI, geordnet nach abnehmendem Gewicht, sind
und die letzten Lc = 16 Bits diejenigen
des VCI, geordnet nach zunehmendem Gewicht, sind. Es wird zunächst der Fall
betrachtet, in dem L = Lp + Lc ist,
das heißt,
in dem die gesamte VPI-ICV-Sequenz der systematischen zyklischen
Kodierung unterliegt.
-
Die
Art der Berechnung der Zeilenindexe H gewährleistet, dass zwei VPI-ICV-Sequenzen,
die sich nur durch Bits unterscheiden, die sich in einem beliebigen
Bereich von m aufeinanderfolgenden Bits befinden, nicht zu demselben
Index H führen.
Dies ergibt sich aus einer wohlbekannten Eigenschaft der zyklischen
Codes, gemäß der die Übertragung
der CRC als redundante Information, die an das Binärwort von
L Bits angehängt
ist, es ermöglicht,
Fehler zu erkennen, die sich in einem Bereich von einer Länge befinden,
die niedriger oder gleich dem Grad des Generatorpolynoms G(X) ist.
-
Wenn
die VPI-VCI-Paare den virtuellen Verbindungen gemäß den Bestimmungen
der Empfehlung UIT-T I.361, auf die in der Einleitung hingewiesen
wurde, zugeordnet sind, lassen sich folglich bis zu 2m verschiedene
Verbindungen einrichten, deren Daten in verschiedenen Zeilen der
Tabelle 4 gespeichert werden.
-
wenn
festgelegt ist, dass der Schalter bis zu N virtuelle Verbindungen
unterstützen
soll, lässt
sich dann die Tabelle so dimensionieren, dass 2m≥N und
p = 1 ist. Eine andere Möglichkeit
besteht darin, die Tabelle 4 so zu dimensionieren, dass
p = 2s und 2m+s ≥ N mit s ≥ 1, wobei
s Bits mit vorgegebenen Positionen der VPI-ICV-Sequenz dann als
Index der Spalte dienen, die die betreffende Speicherzone enthält (der Fall
p = 1 entspricht s = 0). Wenn man sicher ist, dass die VPI-VCI immer
noch entsprechend der Norm zugeordnet werden, ist es in diesem Fall
nicht einmal erforderlich, in den Speicherzonen der Tabelle 4 Plätze vorzusehen,
um das x Bit und das VPI-VCI-Paar aufzunehmen, da eine nicht zweideutige
Leseadresse durch die Berechnung der CRC und, falls s ≥ 1, durch
die Kennzeichnung der Spalten durch die s Bits zur Indexierung der
Spalten erzeugt wird.
-
Die
Größe der Tabelle 4 ist
durch die mögliche
Anzahl der Verbindungen und nicht durch die Länge des VPI-VCI-Feldes vorgeschrieben. Man bemerkt,
dass durch die Beweglichkeit des Bereichs von m Bits, der in 3 dargestellt
ist, das Fehlen einer Konkurrenzsituation erreicht wird bei den
physischen Verbindungen, die vorgesehen sind, um eine verhältnismäßig große Anzahl
virtueller Leitungen und verhältnismäßig wenige
virtuelle Kanäle
durch virtuelle Leitung zu unterstützen, ebenso wie bei den physischen
Verbindungen, die vorgesehen sind, um verhältnismäßig wenig virtuelle Leitungen
und eine verhältnismäßig große Anzahl
von virtuellen Kanälen durch
virtuelle Leitung zu unterstützen.
-
Zwar
zieht die vorliegende Erfindung Nutzen aus den Bestimmungen der
Empfehlung I.361, jedoch ist es vorteilhaft, Anpassungen vorzusehen,
die darüber
hinaus die Berücksichtigung
von Situationen ermöglichen,
die dieser Empfehlung nicht folgen. Denn die Erfindung kann mit
Einrichtungen eingesetzt werden, die es bereits vor diesen Bestimmungen
gab. Andererseits lässt
es sich nicht ausschließen,
dass diese Bestimmungen in der Zukunft verändert oder weniger zwingend
gemacht werden.
-
Das
oben erwähnte
Beispiel, in dem L = Lp + Lc – s mit
s ≥ 1, ermöglicht es
somit, s Bits des VPI-VCI-Paares (zum Beispiel das Bit mit dem größten Gewicht
des VPI und/oder dasjenige des VCI) zu reservieren, um die VPI-VCI-Paare,
die von dem einen oder dem anderen der Enden der virtuellen Verbindung
gesteuert werden, zu unterscheiden. Die Daten, die sich auf die
VPI-VCI beziehen, die von jedem Ende gesteuert werden, werden dann
in unterschiedlichen Zeilen der Tabelle 4 gespeichert.
-
Eine
andere Anpassung, die durch 1 und 2 veranschaulicht
ist, besteht darin, in der Tabelle 4 eine Anzahl p von
Spalten vorzusehen, die größer ist
als die absolute Mindestzahl, so dass es möglich ist, wirksam Situationen
zu berücksichtigen, in
denen die VPI-VCI wahlfrei zugeordnet werden würden. Erreicht den Schalter
eine Zelle, deren Header ein VPI-VCI-Paar beinhaltet, wird der Zeilenindex berechnet,
und die verschiedenen Zonen der Zeile werden untersucht, um eine
Zone zu finden, deren erster Platz ein Bit x = 1 enthält und deren
zweiter Platz das betreffende VPI-VCI-Paar enthält. Die interne Kennung Id_Cx
kann in dieser Zone gelesen werden.
-
Die
Wahrscheinlichkeit B(N, m, p) des Überlaufs in einer Zeile der
Tabelle 4 oder Blockierungsrate ist B(N, m, p) = 1 – Pr(0) – Pr(1) – ... – Pr(p),
wobei Pr(i) die Wahrscheinlichkeit ist, dass ein- und derselbe H-Index
i Mal verwendet wird. Falls die VPI-VCI-Paare unabhängig von
der Struktur des zyklischen Codes, der verwendet wird, um die Zeilenindexe
zu berechnen, gewählt
werden, kann das Pr(.)-Gesetz durch eine Poisson-Verteilung, Pr(i)
= e–a (a1/il) angenähert werden, bei dem a = N/2m die Dichte der Verwendung der H-Indexe
ist. Wenn also p = 6 Spalten in der Tabelle 4 vorgesehen
sind, lassen sich bis zu N = 2m-1 virtuelle
Verbindungen mit einer Blockierungsrate B(2m-1,
m, 6) ≈ 0,0000010
annehmen. Falls die Anzahl der virtuellen Verbindungen bis auf N
= 2m steigt, bleibt die Blockierungsrate sehr
niedrig: B(2m, m, 6) ≈ 0,000083.
-
Erfolgt
eine Blockierung, lässt
sich dies schon bei der Einrichtung der betreffenden virtuellen Verbindung
feststellen. Der Schalter kann dann die Auswahl des VPI-VCI-Paares ablehnen,
wie es bei den Signalprotokollen beim ATM möglich ist. Der Schalter wählt ein
anderes Paar, oder, falls die Steuerung der VPI-VCI der Kontrolle
des anderen Endes der Verbindung unterliegt, teilt der Schalter
ihm die Ablehnung mit, was zu einer neuen Wahl mit wiederum einer
sehr geringen Wahrscheinlichkeit einer Blockierung führt.
-
In
dem in 1 veranschaulichten Beispiel entnimmt die Einheit 2 zur
Berechnung der CRC die VPI-VCI-Kennung
aus dem Header jeder Zelle, die über
eine physische Verbindung des Schalters ankommt, und berechnet den
Zeilenindex H anhand der gesamten VPI-ICV-Sequenz (L = Lp + Lc). Dies entspricht
den ersten drei Zeilen der 4. Dieser
Index H wird in einem Register mit einer Logik 3 zum Lesen des
RAM-Speichers 4 bestätigt.
Diese Logik 3 wird angeordnet, damit die Eintragungen,
die in den p Zonen der Zeile H enthalten sind, auf dem Datenport des
Speichers 4 zu einer Vergleichs- und Auswahllogik 5 dargestellt
werden. Diese Logik 5 beseitigt die Eintragungen der Zonen,
deren erster Platz x = 0 enthält.
Bei den Zonen der Zeile, bei denen x = 1 ist, vergleicht die Logik 5 die
jeweiligen Inhalte der zweiten Plätze mit dem VPI-VCI-Paar, das
sich in dem Header der ankommenden Zelle befindet. Die Zone, für die x
= 1 ist und der zweite Platz das gute VPI-VCI-Paar enthält, wird
schließlich
ausgewählt, und
die Kennung Id_Cx, die im dritten Platz dieser Zone gelesen wird,
wird in einem Ausgangsregister der Logik 5 bestätigt. Dieses
Ausgangsregister ist mit dem Multiplexer 7 verbunden, um
die Kennung Id_Cx zu gegebener Zeit zu erzeugen (letzte drei Zeilen
der 4). Je nach der Schnelligkeit der Komponenten der
Logik 5 können
die Vergleiche sowie das Lesen in dem Speicher 4 entweder
sequentiell bei den p Eintragungen oder partiell oder vollständig parallel erfolgen.
Wie in der ersten und der letzten Zeile der 4 veranschaulicht,
konnte die Einfügung
der Kennung Id_Cx vor dem Inhalt der Zelle in einer Zeit erfolgen,
die geringer ist als der Zeitraum des Zellentakts CKC.
-
Weitere
Zugriffe auf den RAM-Speicher 4 sind in den in der sechsten
Zeile der 4 angegebenen Zeiträumen möglich. Diese
Zeiträume
werden verwendet, um den Inhalt der Tabelle zu aktualisieren, insbesondere
bei der Einrichtung und der Schließung von virtuellen Verbindungen.
Da diese Vorgänge
nicht denselben Geschwindigkeitsvorgaben wie die Einfügung der
Daten vor den ankommenden Zellen unterliegen, können sie nicht kritisch in
einer bestimmten Anzahl von Zeitintervallen ausgeführt werden.
-
Bei
der Einrichtung einer virtuellen Verbindung wird zunächst ein
VPI-VCI-Paar vorausgewählt, entweder
durch den Schalter, der gemäß der Erfindung
ausgerüstet
ist, oder durch eine andere Einrichtung des ATM-Netzes. Eine CRC-Berechnung
erfolgt anhand des vorausgewählten
Paares, um einen Zeilenindex H zu erhalten. Sind die Bits x, die
in den ersten Plätzen
der P-Zonen der Zeile H enthalten sind, alle auf 1, enthält diese
Zeile keine verfügbare
Zone mehr, und es erfolgt eine Ablehnung des vorausgewählten VPI-VCI-Paares,
was zu einer erneuten Vorauswahl eines anderen Paares führt. Falls
eine oder mehrere Zonen der Zeile x = 0 in ihren ersten Plätzen enthalten,
wird diese Zone oder eine dieser Zonen (zum Beispiel die erste)
ausgewählt,
und das vorausgewählte
Paar wird angenommen. Der Wert des x-Bits, das in dem ersten Platz
der gewählten
Zone enthalten ist, wird verändert
(x = 1), das angenommene VPI-VCI-Paar wird an den zweiten Platz
dieser Zone geschrieben, und ihr dritter Platz erhält die entsprechende
Kennung Id_Cx, die ihm von dem Zentralprozessor des Schalters zugeordnet
wird.
-
Bei
der Beendigung einer virtuellen Verbindung, die von einem VPI-VCI-Paar
bezeichnet wird, erhält
man den Zeilenindex H durch eine CRC-Berechnung, die Zone der auf
diese Weise indexierten Zeile, deren erster Platz x = 1 enthält und deren
zweiter Platz das betreffende VPI-VCI- Paar enthält, wird gekennzeichnet, und
der Wert des x-Bits dieser Zone wird verändert (x = 0).
-
Das
Generatorpolynom G(X) vom Grad m, das bei den CRC-Berechnungen verwendet
wird, hat vorteilhafterweise die Form G(X) = (1 + Xq).P(X),
wobei P(X) ein erstes Polynom vom Grad r = m – q ist, wobei L + m nicht
größer ist
als das KGV von q und von 2r – 1. Die
Zeilenindexe werden dann mit Hilfe eines Fire-Codes erzeugt, was
sich für
die VPI- und VCI-Identifikatoren,
die in Paaren gesteuert werden, als praktisch erweist. Außer den
vorerwähnten
Eigenschaften ermöglicht
es der Fire-Code, Fehler zu erkennen, die sich in den beiden beweglichen
Bereichen von L1 Bits und L2 Bits
befinden, wie zum Beispiel L1 + L2 = q + 1 und L1 ≤ min (q, r),
wie in dem unteren Teil der 4 veranschaulicht.
-
Somit
ermöglicht
die CRC-Berechnung es, bis zu 2q+r völlig unterschiedliche
Zeilenindexe zu erzeugen, auch wenn sich die Bereiche der für die VPI-VCI
verwendeten Bits nicht auf die Bits mit dem geringsten Gewicht (Fall
der Empfehlung I.361) beschränken,
sondern einige im Gegenteil bei einem Identifikator eine Länge q und
r bei dem anderen haben. Eine Tabelle mit p = 2s Spalten
(s ≥ 0) kann
dann bis zu 2q+r+s virtuelle Verbindungen
ohne Blockierung aufnehmen.
-
Als
numerisches Beispiel kann der Fall einer strukturierten Tabelle
betrachtet werden, wie in 2 mit m
= 13 und p = 6 veranschaulicht. Das Generatorpolynom des verwendeten
zyklischen Codes ist zum Beispiel G(X) = (1 + X9)(X4 + X + 1), entsprechend einem Fire-Code
mit q = 9 und r = 4(L1 ≤ 4, L2 =
10 – L1). Bei diesem numerischen Beispiel:
- – weist
die Tabelle nur eine Blockierungsrate von 0,0000010 bei 4096 Verbindungen
und 0,000083 bei 8192 Verbindungen auf, wenn die für die Zuordnung
der VPI-VCI verwendeten
Bits wahlfrei auf alle 28 Bits verteilt werden, was noch akzeptabel
ist. Bei einem Zuordnungsverfahren mit zwei Versuchen wird diese
Blockierungsrate praktisch null;
- – wird
angenommen, dass 15 Bits für
die Auswahl der VPI-VCI
verwendet werden, mit einem Bereich von m = 13 aufeinanderfolgenden
Bits in einer beliebigen Position, umfassend die VPI- und VCI-Bits
mit geringem Gewicht, sowie s = 2 wahlfreie Bits. Die Tabelle 4 weist
also keinerlei Überlauf
auf (p = 4 würde
sogar ausreichen). Wenn die Einrichtung die Positionen der s Bits
kennt, können
diese s Bits in der vorher beschriebenen Art als Spaltenindex verwendet
werden, wobei die Speicherung der VPI-VCI in Tabelle 4 dann
unnötig
ist, ebenso wie die Vergleichs- und Auswahllogik 5. Kennt
die Einrichtung die Positionen der s Bits nicht, ersetzen die Speicherung
der VPI-VCI in Tabelle 4 und der Vergleichs- und Auswahlmechanismus
die Spaltenindexierung, um die Überlauffreiheit
zu gewährleisten;
- – werden
bis zu 1024 verschiedene H-Indexe definiert, wenn die verwendeten
VPI- und VCI-Bereiche nicht die Bits mit geringem Gewicht umfassen,
sondern beliebige sind, mit einer Konfiguration von L1 =
4 aufeinanderfolgenden VPI-Bits und L2 =
6 aufeinanderfolgenden VCI-Bits (oder umgekehrt). Bei s = 2 anderen
Bits mit wahlfreien Positionen von den 28 VPI-VCI-Bits lassen sich
4096 Verbindungen ohne Blockierung gewährleisten.
-
Es
lässt sich
feststellen, dass die Anzahl L von Bits des Binärworts, das der zyklischen
Kodierung unterworfen ist, in bestimmten Fällen kleiner sein kann als
die Anzahl Lp + Lc der
Bits der VPI-ICV-Sequenz, ohne dass die Leistungen des Verfahrens
davon berührt
werden. Somit können
in dem vorstehenden Beispiel, in dem Lc =
16, Lp = 12 und m = 13 ist, die drei Bits
mit dem größten Gewicht des
VCI von der VPI-ICV-Sequenz ausgeschlossen werden, um das Wort zu
bilden, das der zyklischen Kodierung unterliegt, ohne die Eigenschaft
zu verlieren, 2m verschiedene Zeilenindexe
für 2m zugeordnete VPI-VCI-Paare gemäß der Empfehlung
I.361 zu gewährleisten.
Im Falle einer wahlfreien Zuordnung führt die Auslassung einiger
Bits (L < Lp + Lc) nur zu einer
minimalen Anzahl von Blockierungen, wenn die Anzahl der Spalten
der Tabelle 4 entsprechend gewählt wird.