-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung
zum Regeln der Übertragung
von Zellen auf eine Verknüpfung,
wobei die Zellen einer Mehrzahl von unterschiedlichen virtuellen
Kanälen
zugeordnet sind; genauer gesagt, aber nicht ausschließlich, bezieht
sich die vorliegende Erfindung auf das Regeln der Zellenübertragung
in ATM-Systemen, die Dienste mit garantierter Bandbreite bereitstellen.
-
Hintergrund
der Erfindung
-
ATM
(Asynchronous Transfer Mode = asynchroner Übertragungsmodus) ist eine
Multiplex- und Umschalt-Technik zum Übertragen von Daten über ein
Netzwerk unter Verwendung von Zellen mit fester Größe, die
in dem Sinn synchron sind, dass sie auf dem physischen Medium strikt
periodisch erscheinen. Jede Zelle weist einen Nutzdatenabschnitt
und einen Anfangsblock auf, wobei letzterer ein Etikett umfasst,
das die Zelle einer Kommunikationsinstanz zwischen den Sende- und
Empfangs-Netzwerkendsystemen zuweist; diese Kommunikationsinstanz
kann die Übertragung
vieler Zellen von dem sendenden Endsystem, möglicherweise zu mehreren empfangenden
Endsystemen involvieren. Der ATM ist asynchron in dem Sinn, dass
Zellen, die zu der gleichen Kommunikationsinstanz gehören, nicht
notwendigerweise in periodischen Intervallen erscheinen.
-
In
dem ATM sind die Etiketten, die den Zellen angefügt sind, kontextabhängige Festgrößenetiketten, d.
h., sie sind im Licht von Kontextinformationen, die bereits an dem
interpretierenden Netzwerkknoten eingerichtet sind, verständlich,
wobei das Etikett im allgemeinen an einem Knoten durch das Etikett
ersetzt wird, das für
den nächsten
Knoten erforderlich ist. Anders ausgedrückt ist der ATM eine virtuelle
Umschalttechnologie, die für
jede Kommunikationsinstanz eine Aufbauphase (Setup-Phase) erfordert,
um das entsprechende Etikettenwissen an jedem Knoten einzurichten.
-
Das
virtuelle Schaltungsetikett für
eine ATM-Zelle an einer bestimmten Verbindung ist durch einen virtuellen
Pfadindikator (VPI = Virtual Path Indicator) und eine virtuellen
Kanalindikator (VCI = Virtual Channel Indicator) gebildet, die in
dem Zellenanfangsblock vorhanden sind. Dieses Etikett bildet die
Basis, auf der die Zelle an dem nächsten Netzwerkknoten, auf
den sie trifft, geleitet wird. Im ATM-Sprachgebrauch wird eine virtuelle Schaltung
im allgemeinen ein „virtueller
Kanal" genannt,
und die VPI-Felder kann man sich als das Identifizieren einer Gruppe
virtueller Kanäle
auf einer Verbindung vorstellen, während der VCI einen bestimmten, virtuellen
Kanal in dieser Gruppe identifiziert.
-
Die
ATM-Technik trifft auf steigende Popularität, da sie einen akzeptablen
Kompromiss beim Kombinieren von Rechtzeitigkeitscharakteristika
(normalerweise Schaltungsschalttechniken zugeordnet) und statischem
Vorteil (Paketschaltungstechniken zugeordnet) anbieten kann. Der
ATM stellt eine einzelne Übertragungsmodustechnik
zum Tragen aller Verkehrstypen in Aussicht, einschließlich Stimme,
Unterhaltungsdienste oder Computerverkehr. Diese Verwendungsflexibilität wird durch
Anbieten verschiedener Dienstqualitäten (QOS = qualities of service)
für den
Benutzer verfügbar
gemacht, wobei die ausgewählte
QOS dann an dem virtuellen Kanal angebracht wird, der für die Kommunikation
verwendet wird. Die zwei Haupttypen von QOS sind:
eine „Beste-Bemühungen"-QOS, wo das ATM-System
sein bestes tut, um Zellen des von dem virtuellen Kanal betroffenen
Gegenstands an erste Erfüllungs-Prioritätsdienste
zu liefern – anders
ausgedrückt
gibt das System keine Garantie im Hinblick auf die Lieferrate;
eine „Garantierte-Bandbreite"-QOS, wo das ATM-System
dem betroffenen, virtuellen Kanal eine gewisse Bandbreite garantiert.
Diese Garantie ist im allgemeinen nicht fest – anders ausgedrückt soll
der Ausdruck „garantierte
Bandbreite" einen
Diensttyp anzeigen, der angeboten wird, wobei er normalerweise eine
bestimmte Übertragungsbandbreite
liefert, und nicht bedeutet, dass die Liefereinrichtung des technischen
Dienstes den Dienstpegelgegenstand der Garantie immer einhält.
-
Wenn
mehrere virtuelle Kanäle
mit garantierter Bandbreite gleichzeitig über dieselbe Verbindung arbeiten,
wird es notwendig, eine Art von Planung zwischen Kanälen zu bewirken,
die Zellen zum Übertragen aufweisen;
eine Anzahl von Planungsanordnungen ist bekannt, die einen einfachen
Lösungsansatz
mit zyklischer Zuordnung, wo jeder Kanal in strikter Rotation verwendet
wird, einschließen.
-
Es
ist ferner notwendig, sicherzustellen, dass ein Kanal verfügbare Bandbreite
nicht zu einem Pegel über
seiner Garantie einnimmt, und zu diesem Zweck ist es bekannt, eine
Verkehrsformgebung zu bewirken, die die Übertragungsrate eines Kanals
einschränkt.
Viele der Schemen zum Bewirken einer Verkehrsformgebung verwenden
einen sogenannten „Leckeimer"-Algorithmus (Leaky-Bucket-Algorithmus),
durch den Übertragungskredite
mit einer gleichmäßigen Rate
aufgebaut werden und die Kredite dann konsumiert werden, wenn die
Zellen gesendet werden. Durch Plazieren einer maximalen Größe an dem
Krediteimer, kann an jedem Zellenbündel eine Begrenzung platziert
werden, das von der plötzlichen
Verfügbarkeit
von Zellen für
eine Kanal resultiert, auf dem sich für einige Zeit Kredit aufgebaut
hat.
-
Es
ist möglich,
Planen und Verkehrsformen zu kombinieren. Gemäß einem bekannten Lösungsansatz ist
eine Ringliste fester Größe bereitgestellt,
und jeder Kanal wird ein oder mehrere Male in feste Positionen in der
Liste eingefügt;
ein abwechselndes Nehmen jedes Listeneintrags liefert sowohl eine
Planung als auch eine feste Bandbreite für jeden Kanal, wobei diese
Bandbreite proportional zu der Anzahl von Malen ist, die ein Kanal
in der Liste vorhanden ist. Diesem Lösungsansatz fehlt jedoch Flexibilität.
-
Bei
einem anderen Lösungsansatz,
beschrieben in der EP-A-0690596,
veröffentlicht
am 03.01.1996, wird wiederum eine zirkuläre Liste mit fester Größe verwendet,
um in ihren Schlitzen die Identität (die durch eine virtuelle
Kanalnummer oder „VCN" spezifiziert wird)
jedes Kanals zu halten, auf dem Zellen gesendet werden; die Zuordnung
von VCNs zu einem Schlitz ist jedoch nicht dauerhaft, sondern ändert sich
dynamisch. Genauer gesagt wird in der Operation die Liste Schlitz
für Schlitz
weiterbewegt und jede angetroffene VCN wird verarbeitet, um die Übertragung
einer Zelle für
den entsprechenden virtuellen Kanal zu verursachen. Gleichzeitig
wird die Liste aktualisiert, durch Freigeben des aktuellen Schlitzes
und Wiedereinfügen
von jeder VCN in die Liste, die den Schlitz belegt hat, wenn diese
VCN sich auf einen virtuellen Kanal mit einer anderen Zelle zum Übertragen
bezieht. Diese Einfügung
wird in einem Versatz von dem Schlitz verursacht, der vorangehend durch
die VCN belegt wurde, abhängig
von der Übertragungsrate,
die für
den betroffenen virtuellen Kanal erforderlich ist (und gemäß einem
Konfliktlösungsverfahren).
Während
dieser Lösungsansatz
flexibler ist als der vorangehend Beschriebene, hat die Verwendung
eines Versatzes eines festen Werts die Wirkung, dass nur bestimmte Übertragungsraten
erreicht werden können – z. B.
belegt ein Kanal mit einem Versatz von zwei Schlitzen die Hälfte einer
verfügbaren
Bandbreite, während
bei einem Versatz von Eins derselbe die gesamte Bandbreite belegt
(angenommen, dies ist erlaubt).
-
Die
EP-A-596,624 bezieht sich auf Breitband-Hochgeschwindigkeits-Paketnetzwerke
basierend auf dem Standard des asynchronen Übertragungsmodus. Der Kommunikationsverkehr
wird abgesondert gemäß bestimmten
Signalcharakteristika und in separaten Warteschlangenschaltungen
gespeichert, zur Lieferung zu einer einzelnen Ausgangsleitung unter
der Steuerung einer Multiplexschaltung. Die Abtrennung basiert darauf, ob
der Kommunikationsverkehr mit hoher oder niedriger Bandbreite erfolgt.
Ein bestimmter Bandbreitenbetrag ist garantiert. Während eines
zugeordneten Zeitschlitzes ist es einer entsprechenden Warteschlangenschaltung
durch die Multiplexschaltung erlaubt, eine vorbestimmte Anzahl von
Zellen zu leeren, die in der Warteschlangenschaltung gespeichert
sind, auf eine Ausgabeleitung auf dem Netzwerknoten.
-
Es
ist die Aufgabe der vorliegenden Erfindung, eine feinere Steuerung
von Übertragungsraten
zu ermöglichen,
als es bei den oben erwähnten
Anordnungen möglich
ist. Diese Aufgabe wird durch die entsprechenden Verfahren gemäß den unabhängigen Ansprüchen und
durch eine Vorrichtung gemäß Anspruch
12 gelöst.
-
Zusammenfassung
der Erfindung
-
Gemäß einem
Aspekt der vorliegenden Erfindung wird ein Verfahren zum Steuern
der Übertragungsrate
von Zellen auf eine Verknüpfung
geschaffen, wobei die Zellen einer Mehrzahl von unterschiedlichen
virtuellen Kanälen
zugeordnet sind und auf die Verknüpfung in jeweiligen Übertragungszeitschlitzen
gemäß einem Übertragungsplan übertragen
werden, der Übertragungszeitschlitze
und virtuelle Kanäle
zuordnet; wobei das Verfahren folgende Schritte aufweist:
- (a) Bereitstellen eines Übertragungsratenindikators
für jeden
virtuellen Kanal, der einen festen ganzzahligen Teil, einen festen
Bruchteil und einen variablen Akkumulationsteil aufweist;
- (b) jedes Mal wenn eine Zelle auf der Verknüpfung im Hinblick auf einen
bestimmten virtuellen Kanal gemäß dem Übertragungsplan übertragen
wird, Bestimmen, für
diesen virtuellen Kanal, zumindest in dem Fall, dass eine andere
Zelle zum Senden auf diesem Kanal verfügbar ist, eines gewünschten
nächsten
Zeitschlitzes zum Übertragen
einer Zelle für
den Kanal, wobei der gewünschte
nächste
Zeitschlitz im Hinblick auf seinen Versatz bestimmt wird, in Schlitzen,
von dem aktuellen Zeitschlitz, wobei diese Bestimmung folgendes
umfasst:
- – Zusammenaddieren
der drei Teile des Übertragungsratenindikators
für den
betreffenden Kanal, um ein Ergebnis mit einer ganzzahligen Komponente
und einem Bruchteilrest zu erzeugen;
- – Verwenden
der ganzzahligen Komponente des Ergebnisses als den Versatz; und
- – Speichern
des Bruchteilrests als die Akkumulationsteile des Übertragungsratenindikators
für den
betreffenden virtuellen Kanal; und
- (c) Aktualisieren des Übertragungsplans
durch Verwenden des Versatzes, der bei Schritt (b) bestimmt wird, beim
Bestimmen des nächsten
Zeitschlitzes, in dem eine Zelle für den betreffenden virtuellen
Kanal übertragen
werden soll, und dann Zuordnen dieses Zeitschlitzes zu dem Kanal.
-
Als
ein Ergebnis dieses Lösungsansatzes
ist es möglich,
eine feinere Steuerung der Übertragungsrate zu
erreichen. Somit z. B., wenn es erwünscht ist, zwei Drittel der
Verknüpfungsbandbreite
zu einem bestimmten virtuellen Kanal zuzuordnen, kann dies durchgeführt werden
durch Einstellen des ganzzahligen Teils des Übertragungsratenindikators
auf Eins und des Bruchteils auf ein Halb; der Schlitzversatzwert
wechselt dann zwischen Eins und Zwei, so dass für jeweils drei Zeitschlitze
zwei für
den betroffenen virtuellen Kanal verwendet werden.
-
Vorzugsweise
werden der ganzzahlige und der Bruch-Teil jedes Übertragungsratenindikators
direkt als Zahlen gespeichert, die ganze bzw. Teil-Zeitschlitze
darstellen. Es ist jedoch ebenfalls möglich, den ganzzahligen und
den Bruch-Teil zusammen
in der Form einer Zahl zu speichern, die die Übertragungsrate darstellt, die
sie erreichen soll, wobei diese Zahl in Einheiten und Bruchteile
von Zeitschlitzen umgewandelt wird, wenn der Schlitzversatz bestimmt
wird.
-
Bei
Schritt (c) sollte der Schlitz, der durch den Versatz angezeigt
wird, der bei Schritt (b) bestimmt wird, bereits einem Kanal zugeordnet
sein, dann wird in ein Konfliktlösungsverfahren
eingetreten (z. B. kann einfach der nächste freie Schlitz genommen
werden oder ein komplexeres Verfahren basierend auf Prioritäten kann verwendet
werden, die den Kanälen
vorab zugeordnet werden).
-
Die
vorliegende Erfindung umfasst ferner die Bereitstellung einer Vorrichtung,
die das vorangehende Verfahren implementiert. Insbesondere wird
gemäß der vorliegenden
Erfindung eine Vorrichtung zum Übertragen
eines Stroms aus Zellen auf eine Verknüpfung geschaffen, wobei die
Zellen einer Mehrzahl von unterschiedlichen virtuellen Kanälen zugeordnet
sind, wobei jeder derselben in der Vorrichtung durch einen entsprechenden
Virtueller-Kanal-Identifizierer identifiziert wird, hierin „VCN"; wobei die Vorrichtung
einen Planer umfasst, zum Planen der Übertragung von Zellen jedes
virtuellen Kanals, wobei der Planer folgende Merkmale aufweist:
- – eine
Speicherungseinrichtung zum Speichern, für jeden virtuellen Kanal, eines Übertragungsraten indikators,
der einen festen ganzzahligen Teil, einen festen Bruchstückteil und
einen variablen Akkumulationsteil aufweist;
- – eine
Listeneinrichtung zum Beibehalten einer Liste mit einer Zahl von
Eingangsschlitzen, wobei jeder derselben in der Lage ist, einen
einzelnen VCN zu speichern, wobei die Liste die VCNs der virtuellen
Kanäle mit
Zellen zum Übertragen
enthält;
- – eine
Steuerungseinrichtung zum Fortschreiten durch die Liste Schlitz
für Schlitz,
und, wenn ein VCN in dem aktuellen Schlitz von Interesse gefunden
wird, ansprechen darauf, durch Übertragen
einer Zelle des entsprechenden virtuellen Kanals, wobei die Steuerungseinrichtung
ferner wirksam ist, um den VCN, falls vorhanden, in dem aktuellen
Schlitz von Interesse zu entfernen und den VCN in einen Schlitz
wiedereinzufügen,
der vorwärts
von dem aktuellen Schlitz um einen vorbestimmten Versatzbetrag versetzt
ist, wobei die Steuerungseinrichtung eine Bestimmungseinrichtung
umfasst, zum Bestimmen des Versatzbetrags, wobei die Bestimmungseinrichtung
folgende Merkmale aufweist:
- – eine
Einrichtung zum Zusammenaddieren der drei Teile des Übertragungsratenindikators
für den
betreffenden Kanal, um ein Ergebnis mit einer ganzzahligen Komponente
und einem Bruchteilrest zu erzeugen;
- – eine
Einrichtung zum Einstellen des Versatzbetrags abhängig von
der ganzzahligen Komponente des Ergebnisses; und
- – eine
Einrichtung zum Speichern des Bruchteilrests zurück in die Speicherungseinrichtung
als den Akkumulationsteil des Übertragungsratenindikators
für den
betreffenden virtuellen Kanal;
wobei die Steuerungseinrichtung
ferner eine Konfliktlösungseinrichtung
umfasst, zum Lösen
von Konflikten, die aus dem Schlitz entstehen, der von dem aktuellen
Schlitz um den vorbestimmten Versatz versetzt ist, der bereits durch
einen VCN belegt ist.
-
Dasselbe
allgemeine Konzept kann ferner an eine Krediterzeugung in Systemen
angewendet werden, wo die Zellenübertragung
von der Verfügbarkeit
eines Übertragungskredits
für den
betreffenden virtuellen Kanal abhängig ist; in diesem Fall kann
die Rate der Krediterzeugung auf eine Weise ähnlich zu der gesteuert werden,
die oben für
das Steuern der Zellenübertragungsrate
offenbart ist. Somit wird gemäß einem
weiteren Aspekt der vorliegenden Erfindung ein Verfahren zum Steuern
der Übertragungsratenkrediterzeugung
in einem System geschaffen, in dem Zellen, die einer Mehrzahl von
unterschiedlichen virtuellen Kanälen
zugeordnet sind, auf eine Verknüpfung
in jeweiligen Zeitschlitzen übertragen
werden, wobei die Übertragung
von Zellen für
einen bestimmten virtuellen Kanal von der Verfügbarkeit der Übertragungskredite
für den
Kanal abhängig
ist; wobei das Verfahren folgende Schritte aufweist:
- (a) Bereitstellen eines Krediterzeugungsratenindikators für jeden
virtuellen Kanal, der einen festen ganzzahligen Teil, einen festen
Bruchstückteil
und einen variablen Akkumulationsteil aufweist;
- (b) Beibehalten einer Liste mit Eingangsschlitzen zum Speichern
von Identifizierern der virtuellen Kanäle, denen ein Kredit zugeordnet
werden soll; und
- (c) Fortschreiten durch die Liste mit einer vorbestimmten Schlitzrate,
und jedes Mal, wenn der Identifizierer angetroffen wird, Erhöhen des Übertragungskreditpegels
des entsprechenden virtuellen Kanals und Wiedereinfügen des
Identifizierers in die Liste bei einem Vorwärtsversatz, der gemäß den nachfolgenden
Teilschritten bestimmt wird:
- – Zusammenaddieren
der drei Teile des Krediterzeugungsratenindikators für den betreffenden
Kanal, um ein Ergebnis mit einer ganzzahligen Komponente und einem
Bruchteilrest zu erzeugen;
- – Verwenden
der ganzzahligen Komponente des Ergebnisses, um den Versatz einzustellen;
und
- – Speichern
des Bruchteilrests als den Akkumulationsteil des Krediterzeugungsratenindikators
für den
betreffenden virtuellen Kanal;
wobei ein Konfliktlösungsverfahren
in dem Fall ausgeführt
wird, dass die Position in der Liste, die durch den Vorwärtsversatz
angezeigt wird, bereits besetzt ist.
-
Es
ist ebenfalls möglich,
die Rate der Krediterzeugung zu steuern, nicht durch Variieren des
Intervalls zwischen den Krediterzeugungsereignissen, sondern durch
Variieren der Größe des Kreditinkrements
bei jedem solchen Ereignis. Somit wird gemäß einem wiederum weiteren Aspekt
der vorliegenden Erfindung ein Verfahren zum Steuern der Übertragungsratenkrediterzeugung
in einem System geschaffen, in dem Zellen, die einer Mehrzahl von
unterschiedlichen virtuellen Kanälen
zugeordnet sind, auf eine Verknüpfung
in den jeweiligen Zeitschlitzen übertragen
werden, wobei die Übertragung
von Zellen für
einen bestimmten virtuellen Kanal abhängig ist von der Verfügbarkeit
der Übertragungs kredite
für diesen
Kanal; wobei das Verfahren folgende Schritte aufweist:
- (a) Bereitstellen eines Kreditinkrementgrößenindikators für jeden
virtuellen Kanal, der einen festen ganzzahligen Teil, einen festen
Bruchstückteil
und einen variablen Akkumulationsteil aufweist; und
- (b) in regelmäßigen Intervallen,
Inkrementieren des Übertragungskreditpegels
jedes virtuellen Kanals um einen jeweiligen Inkrementbetrag, der
für diese
Inkrementierungsoperation gemäß den nachfolgenden
Teilschritten bestimmt wird:
- – Zusammenaddieren
der drei Teile des Kreditinkrementgrößenindikators für den betreffenden
Kanal, um ein Ergebnis mit einer ganzzahligen Komponente und einem
Bruchteilrest zu erzeugen;
- – Verwenden
der ganzzahligen Komponente des Ergebnisses, um den Inkrementbetrag
einzustellen; und
- – Speichern
des Bruchteilrests als den Akkumulationsteil des Kreditinkrementgrößenindikators
für den
betreffenden virtuellen Kanal.
-
Allgemeiner
ausgedrückt
kann die vorliegende Erfindung als ein Verfahren ausgedrückt werden
zum Regeln der Übertragung
von Zellen auf eine Verknüpfung,
wobei die Zellen einer Mehrzahl von unterschiedlichen virtuellen
Kanälen
zugeordnet sind, wobei das Verfahren folgende Schritte aufweist:
- (a) Bereitstellen eines Elements aus Steuerungsdaten
für jeden
virtuellen Kanal, das einen festen ganzzahligen Teil, einen festen
Bruchteil und einen variablen Akkumulationsteil aufweist;
- (b) wiederholtes Bestimmen einer Steuerungsnummer für jeden
virtuellen Kanal, wobei diese Bestimmung folgendes umfasst:
- – Zusammenaddieren
der drei Teile des Steuerungsdatenelements für den betreffenden Kanal, um
ein Ergebnis mit einer ganzzahligen Komponente und einem Bruchteilrest
zu erzeugen;
- – Verwenden
der ganzzahligen Komponente des Ergebnisses, um die Steuerungszahl
einzustellen; und
- – Speichern
des Bruchteilrests als den Akkumulationsteil des Steuerungsdatenelements
für den
betreffenden virtuellen Kanal; und
- (c) Regeln der Zellenübertragung
für den
betreffenden virtuellen Kanal gemäß dem Wert der Steuerungszahl,
die bei Schritt (b) für
diesen virtuellen Kanal bestimmt wird.
-
Kurze Beschreibung
der Zeichnungen
-
Ein
Planer mit garantierter Bandbreite, der die Erfindung verkörpert und
zum Planen der Übertragung von
Zellen virtueller Kanäle
mit garantierter Bandbreite vorgesehen ist, wird nun genauer mittels
eines nicht einschränkenden
Beispiels Bezug nehmend auf die beiliegenden, diagrammatischen Zeichnungen
beschrieben. Es zeigen:
-
1 ein
Funktionsblockdiagramm eines Planers zum Planen der Übertragung
von Zellen von einem Hostsystem auf eine Verbindung über eine
Sendeschnittstelle;
-
2 ein
Funktionsblockdiagramm eines Planerblockes mit garantierter Bandbreite
des Planers von 1;
-
3 ein
Zustandsübertragungsdiagramm,
das die Zustände
eines virtuellen Kanals zeigt, wie er durch den Planer von 1 verwaltet
wird; und
-
4 ein
Flussdiagramm, das die Operation eines Listeneintragsprozessors
des Planers mit garantierter Bandbreite von 2 darstellt.
-
5 ein
Diagramm eines Übertragungsratenindikators
ist, der für
jeden virtuellen Kanal beibehalten wird, wobei der Übertragungsratenindikator
durch den Listeneintragsprozessor verwendet wird, um die Zellenübertragungsrate
für den
betreffenden virtuellen Kanal zu steuern.
-
Bester Modus
zum Ausführen
der Erfindung
-
Der
Garantierte-Bandbreite-Planer, der nun Bezug nehmend auf 1 bis 4 beschrieben
werden soll, bildet den Gegenstand der EP-A-0690596. Die Anwendung
der vorliegenden Erfindung an diesen Planer wird Bezug nehmend auf 5 beschrieben.
-
1 zeigt
ein Hostsystem 10, das angeordnet ist, um ATM-Zellen zu übertragen,
die einer Mehrzahl verschiedener virtueller Kanäle auf einer Verbindung 11 zugeordnet
sind, über
einen Verbindungsadapter, der einen Planer 12 und eine
Sendeschnittstelle 13 aufweist.
-
Dienstqualität
-
Das
Hostsystem 10 und der Verbindungsadapter 12, 13 sind
angeordnet, um virtuelle Kanäle
mit drei unterschiedlichen Dienstqualitäten zu handhaben, nämlich:
eine „Beste-Bemühungen"-Dienstqualität (BE-Dienstqualität; BE =
best efforts)-, für
die hinsichtlich Bandbreitenverfügbarkeit
keine Garantie gegeben ist;
eine erste „Garantierte-Bandbreite"-Dienstqualität (GBO-Dienstqualität), für die der
Planer 12 versucht, eine Übertragung von Zellen mit einer
bestimmten Rate abhängig
von der Zellverfügbarkeit
zu garantieren, wobei für
Perioden kein Kredit erlaubt ist, wenn keine Zellen verfügbar sind;
und
eine zweite „Garantierte-Bandbreite"-Dienstqualität (GB1-Dienstqualität), für die der
Planer 12 versucht, eine Übertragung von Zellen mit einer
bestimmten Rate („Stütz"-Rate) zu garantieren,
wenn Zellen kontinuierlich verfügbar
sind, aber für
die der Planer ferner versucht, Kredit für Perioden zu geben, wenn Zellen
nicht verfügbar
sind, durch Akkumulieren von Kreditmarken während solcher Perioden und
dann, wenn Zellen verfügbar sind,
durch Bewirken einer Übertragung
mit einer höheren
Rate („Spitzen"-Rate) gemäß dem verfügbaren Kredit,
bis zu einer vorbestimmten Anzahl von Zellen (der „Bündel"-Grenze).
-
Die
vorliegende Erfindung befasst sich mit dem Planen garantierter Bandbreiten
virtueller Kanäle
(d. h. virtuelle Kanäle
mit entweder einer GB0- oder GB1-Dienstqualität) und folglich wird hierin
keine detaillierte Beschreibung darüber gegeben, wie virtuelle
Beste-Bemühung-Kanäle für eine Übertragung
organisiert werden, außer
um zu beschreiben, wie ihre Planung für das Planen garantierter Bandbreiten
(GB) virtueller Kanäle dienlich
gemacht wird.
-
Hinsichtlich
der Planung der virtuellen GB-Kanäle wird jedem solchem Kanal
ein Prioritätspegel
aus einer begrenzten Anzahl von möglichen Pegeln (bei dem vorliegenden
Beispiel gibt es drei mögliche
Pegel, nämlich
Niedrig-, Mittel- und Hochprioritätspegel) zugeordnet. Wie nachfolgend
hierin ausführlicher
beschrieben wird, werden diese Prioritätspegel verwendet, um das Lösen von
Planungskonflikten zu unterstützen.
-
Es
ist auf dieser Stufe ferner wert zu erwähnen, dass jeder virtuelle
GB-Kanal gestoppt (d. h. unterbrochen und nicht abgebaut) und gestartet
werden kann; ferner kann es sein, dass ein virtueller Kanal nicht
aktiv läuft,
sogar wenn er nicht gestoppt ist, da er vielleicht auf Zellen wartet,
um verfügbar
zu werden. Alle virtuellen GB-Kanäle werden daher durch den GB-Planer
berücksichtigt,
um nachfolgend hierin beschrieben zu werden, um drei mögliche Zustände aufzuweisen,
nämlich:
einen
STOP-Zustand, in dem der virtuelle Kanal unterbrochen ist;
einen
WAIT-Zustand, in dem der virtuelle Kanal nicht unterbrochen ist,
sondern auf die Ankunft von Zellen zum Senden wartet und;
einen
RUN-Zustand, in dem der virtuelle Kanal nicht unterbrochen ist und
Zellen zum Senden aufweist.
-
Zusätzlich dazu
weisen virtuelle GB-1-Kanäle
einen vierten Zustand auf:
einen AKKUM-Zustand, in dem der
virtuelle Kanal nicht unterbrochen ist aber keine Zellen zum Senden
aufweist und Kredite akkumuliert, um demselben zu ermöglichen,
mit seiner Spitzenrate zu übertragen,
wenn Zellen verfügbar
sind.
-
Diese
Zustände
sind in dem Zustandstransaktionsdiagramm von 3 gezeigt,
das nachfolgend hierin detaillierter beschrieben wird (das gleiche
Diagramm ist für
sowohl virtuelle GB0- als auch GB1-Kanäle verwendbar).
-
Allgemeine
Anordnung
-
Zurückkehrend
zu einer Betrachtung von 1 ist innerhalb des Hostsystems 10 und
des Verbindungsadapters jeder virtuelle Kanal durch eine jeweilige
virtuelle Kanalnummer (VCN = virtual channel number) identifiziert.
-
Das
Hostsystem 10 ist verantwortlich für das Steuern des Aufbaus und
Abbaus virtueller Kanäle.
Für jeden
virtuellen Kanal speichert das Hostsystem 10 die Zellen,
die in einen Zellspeicher 14 übertragen werden sollen, und
erhält
eine jeweilige Warteschlange von Zellzeigern für diese Zellen in einem Warteschlangenblock 15.
Wenn der Warteschlangenblock 15 mit einem VCN aufgefordert
wird, nimmt er den Anfangsblockzeiger aus der Warteschlange von
Zellzeigern für
den virtuellen Kanal, der durch diesen VCN identifiziert wird, und verwendet
den Zeiger, um auf die entsprechende Zelle in dem Speicher 14 zuzugreifen.
Diese Zelle wird dann auf einen Bus 17 ausgegeben.
-
Das
Hostsystem
10 hält
den Planer
12 auf dem laufenden darüber, welche virtuellen Kanäle aktuell existieren,
ob sie gestoppt wurden oder nicht, und wann mehr Zellen für einen
virtuellen Kanal verfügbar
werden, der vorher Zellen erwartete. Diese Informationen werden
unter Verwendung von Befehlen übertragen,
die über
eine Befehlschnittstelle
18 weitergeleitet werden. Für virtuelle
GB-Kanäle
sind diese Befehle beinhaltet:
GBSETUP | – benachrichtigt
den Planer eines neuen virtuellen Kanals und übermittelt ihm die relevanten
Dienstqualitätsparameter
für den
Kanal; |
GBSTART | – aktiviert
die Übertragung
für einen
spezifizierten, virtuellen Kanal; |
GBSTOP | – deaktiviert
(stoppt) die Übertragung
für einen
spezifizierten, virtuellen Kanal; |
GBCELLS | – benachrichtigt
den Planer, dass mehr Zellen für
eine Übertragung
verfügbar
wurden; |
GBRESET | – entfernt
einen virtuellen Kanal effektiv von dem Planer. |
-
Ähnliche
Befehle existieren ferner für
virtuelle BE-Kanäle;
in der Tat sind die Befehle im allgemeinen die gleichen, außer für die Inhalte
des SETUP-Befehls. Da sich die vorliegende Beschreibung jedoch mit
virtuellen GB-Kanälen
befasst, werden die Befehle für
BE-Kanäle
nicht weiter berücksichtigt.
-
Der
Planer 12 ist verantwortlich für das Bestimmen der Identität des virtuellen
Kanals, für
den eine Zelle als nächstes
auf der Verbindung 11 übertragen
werden soll. Der Planer 12 identifiziert den virtuellen
Kanal, um die Schnittstelle 13 durch Weiterleiten des VCN
des virtuellen Kanals über
die Verbindung 19 zu senden.
-
Die
Sendeschnittstelle 13 verwendet diesen VCN, um auf den
Warteschlangenblock 15 des Hostsystems 10 über eine
Verbindung 16 zuzugreifen, was zu der Ausgabe der nächsten Zelle
auf dem Bus 17 führt, die
auf dem betreffenden virtuellen Kanal gesendet werden soll. Die
Sendeschnittstelle überträgt dann
die Zelle, die über
Bus 17 empfangen wurde, auf die Verbindung 11.
Wenn keine Zellen mehr für
den betreffenden virtuellen Kanal verfügbar sind, wird dies durch
den Warteschlangenblock 15 an die Sendeschnittstelle 13 angezeigt,
und die Sendeschnittstelle 13 informiert wiederum den Planer 12 über Leitung 20.
-
Der Planer 12
-
Als
nächstes
wird der Planer 12 detaillierter betrachtet, was einen
VC-Parameterspeicher 24 zum Speichern von Dienstqualitätsparametern
jedes virtuellen GB-Kanals umfasst, die durch den GBSETUP-Befehl
an den Planer berichtet werden und durch den GBRESET-Befehl noch
nicht entfernt wurden. Details dieser Parameter werden nachfolgend
hierin Bezug nehmend auf 3 gegeben.
-
Der
Hauptfunktionsblock des Planers 12 ist ein Planerblock 25 mit
garantierter Bandbreite (GB), der wirksam ist, um zu bestimmen,
auf welchem virtuellen GB-Kanal, falls vorhanden, eine Zelle in
einer aktuellen Zellübertragungsperiode übertragen
werden sollte. Die Zellperiodenzeitgebung wird für den Planer 12 durch einen
Zeitgeber 26 bestimmt. Die Schlüsselelemente des GB-Planerblocks 25 sind
eine Ringliste oder Tabelle 27, die eine vorbestimmte Anzahl
von Eintragssteckplätzen
enthält,
wobei jeder in der Lage ist, eine einzelne VCN zu halten und einen
Aktueller-Schlitz-Verfolger 28,
der den Listeneintragsschlitz verfolgt, der aktuell von Interesse
ist. Der Aktueller-Schlitz-Verfolger wird beim Start jeder Zellübertragungsperiode
weiterbewegt, um auf den nächsten
Eintragsschlitz der Liste 27 zu zeigen. Jeder virtuelle
GB-Kanal mit einer Zelle zum Senden weist einen VCN auf, der in
einen jeweiligen Eintragsschlitz der Liste 27 eingefügt ist,
wobei nur ein Eintrag pro virtuellen Kanal vorhanden ist. Wenn jeder
Tabelleneintragsschlitz zu dem aktuellen Schlitz wird, wenn er den
VCN eines virtuellen Kanals mit Zellen zum Senden enthält, dann
wird dieser VCN von dem Planer 12 zu der Sendeschnittstelle 13 ausgegeben,
um zu verursachen, dass eine Zelle auf diesem virtuellen Kanal gesendet
wird; zur gleichen Zeit wird der VCN um eine Anzahl von Steckplätzen vorwärts in der
Tabelle bewegt, abhängig
von der Übertragungsratengarantie,
wie hierin nachfolgend detaillierter beschrieben wird.
-
Wenn
der aktuelle Schlitz der Tabelle 27 nicht den VCN eines
virtuellen Kanals mit Zellen zum Senden enthält, dann wird der Planer angeordnet,
um das Senden einer Zelle auf einem virtuellen BE-Kanal zu verursachen.
Dies wird durch Aktivieren eines Beste-Bemühung-Organisatorblocks 30 für die relevante
Zellübertragungsperiode
implementiert, wobei dieser Block den virtuellen BE-Kanal bestimmt,
auf dem eine Zelle gesendet werden soll, und den VCN dieses Kanals
an die Sendeschnittstelle 13 ausgibt.
-
Ein
Befehlsprozessorblock 31 ist in dem Planer 12 von
größerer Priorität als der
GB-Planerblock 25. Wenn ein Befehl auf das Verarbeiten
wartet, dann wird die nächste
(oder mehr) Zellperiode in dem Planer 12 für diese
Verarbeitung reserviert: die betroffenen Zellperioden sind daher
keine Zellübertragungsperioden
und der Aktueller-Schlitz-Verfolger 28 in
dem GB-Planerblock 25 wird dementsprechend nicht weiterbewegt.
-
Ein
Hauptsteuerblock 33 bestimmt, welcher der drei Blöcke 31, 25, 30 (Befehlsprozessor 31,
GB-Planerblock 25, Beste-Bemühung-Organisator 30)
in jeder Zellperiode aktiv ist. Somit bestimmt der Hauptsteuerblock 33 an
dem Start jeder Zellperiode (Indikator durch den Hauptzeitgeber 26),
ob ein Befehl auf das Verarbeiten durch den Befehlsprozessor 31 wartet – siehe
Block 34 des kleinen Flussdiagramms, das innerhalb von Block 33 in 1 enthalten
ist. Wenn ein Befehl auf das Verarbeiten wartet, wird der Befehlsprozessor 31 für die aktuelle
Zellperiode aktiviert. Wenn jedoch kein Befehl auf das Verarbeiten
wartet, verursacht der Hauptsteuerblock 33, dass der Aktueller-Schlitz-Verfolger 28 einen
Schlitz in der Liste 27 (Kasten 35) weiterbewegt wird;
nachfolgend wird die Steuerung an den GB-Planer 25 übergeben,
wenn der neue, aktuelle Schlitz besetzt ist, ansonsten wird die
Steuerung an den Beste-Bemühung-Organisator 30 weitergegeben
(Kasten 36).
-
Die Komponenten für den GB-Planer 25
-
2 zeigt
die Struktur des GB-Planers 25 detaillierter. Zusätzlich zu
der Ringliste 27 und dem Aktueller-Schlitz-Verfolger 28 weist
der GB-Planer 25 einen Listeneintragsprozessor 40 und
einen Listenaktualisierungsblock 41 auf.
-
Der
Planer
25 kann ferner konzeptionell derart betrachtet werden,
dass er den VC-Parameterspeicher
24 umfasst, zumindest
insofern, dass Letzterer Daten auf virtuellen GB-Kanälen
hält. Bei
jedem virtuellen GB-Kanal behält
der Speicher
24 einen Eintrag
42 bei, auf den
durch Verwendung des VCN des betroffenen virtuellen Kanals zugegriffen
werden kann. Jeder GB-Eintrag
42 weist die folgenden Felder
auf:
ON/OFF | – dies ist
ein Flag-Feld, das durch den Befehlsprozessor 31 auf 0
(„OFF") eingestellt wird,
um den betroffenen virtuellen Kanal zu stoppen. |
PRIORITY | – dieses
Feld zeigt den Prioritätspegel
(niedrig, mittel oder hoch) des virtuellen GB-Kanals an; |
STATE | – dieses
Feld zeigt den aktuellen Zustand des virtuellen Kanals an (STOP,
WAIT, RUN und für
GB1-Kanäle ACCUM); |
NO-CELLS | – dieses
Feld wird verwendet, um anzuzeigen, ob Zellen auf eine Übertragung
für einen
virtuellen Kanal warten; |
GBTYPE | – zeigt
an, ob der virtuelle Kanal vom Typ GB0 oder GB1 ist; |
PEAK
RATE | – dieses
Feld enthält
die Spitzenratenparameter (PRP = peak rate parameter), die die Übertragungsrate
für virtuelle
GB0-Kanäle
und für
GB1-Kanäle
mit verfügbaren
Kredit bestimmen; |
PRM | – dieses
Feld spezifiziert, wie das PRP-Feld interpretiert werden sollte
(anwendbar wenn mehr als ein Format zum Spezifizieren der Spitzenrate
verfügbar
ist); |
SUSTAIN
RATE | – dieses
Feld enthält
die Stützratenparameter
(SRP = sustain rate parameter), die die Übertragungsrate für virtuelle
GB1-Kanäle
bestimmen, die keinen Kredit zum Senden bei ihren Spitzenraten aufweisen;
der SRP bestimmt ferner die Rate, mit der ein Kredit durch einen
virtuellen GB1-Kanal akkumuliert werden kann, der auf Zellen zum
Senden wartet; |
SRM | – dieses
Feld spezifiziert, wie der SRP interpretiert werden sollte (anwendbar,
wenn mehr als ein Format zum Spezifizieren der Stützrate verfügbar ist); |
CREDIT | – dieses
Feld wird verwendet, um eine Zählung
des Kredits zu erhalten, der durch einen virtuellen GB1-Kanal akkumuliert
wird, während
derselbe auf eine Zelle zum Senden wartet; |
BURST
TOL | – dieses
Feld spezifiziert die Bündeltoleranz
(BT = Burst Tolerance) eines virtuellen GB-Kanals, d. h., die maximale
Anzahl von Zellen, die ein virtueller GB1-Kanal folglich bei Spitzenrate senden
kann. |
-
Jeder
Eintrag 42 wird ansprechend auf einen GBSETUP-Befehl erzeugt,
der durch den Befehlsprozessor 31 empfangen wird, und wird
ansprechend auf einen GBRESET-Befehl entfernt, der durch den Befehlsprozessor 31 empfangen
wird. Während
der Aktualität
eines virtuellen GB-Kanal sind die Felder ON/OFF, STATE und NO-CELLS
durch den Befehlsprozessor 31 und/oder den Listeneintragsprozessor 40 modifizierbar.
-
Bezug
nehmend auf die Ringliste 27 wird die Größe (Anzahl
von Steckplätzen
N) dieser Liste auf die minimale Übertragungsrate bezogen, die
unterstützt
werden soll. Dies liegt daran, dass der virtuelle Kanal (d. h. sein
VCN) nach dem Verarbeiten des Eintrags zu einem neuen Schlitz in
der Liste bewegt wird, und von dem aktuellen Schlitz um einen Betrag
versetzt wird, der von der erforderlichen Übertragungsrate für den Kanal
abhängt,
wenn der aktuelle Schlitz einen gültigen Eintrag bezüglich eines
virtuellen GB-Kanals mit Zellen zum Senden enthält; die maximale Verschiebung
zwischen dem Auftreten eines VCN entspricht daher der Größe N der
Liste. Folglich ist die minimal unterstützbare Übertragungsrate (1/N) mal die
Verbindungsübertragungsrate,
was folgendes ergibt:
-
-
Die
Liste 27 sollte z. B. für
eine SONST OC3c-Verbindung (Übertragungsrate
149,76 Mbps) und eine minimale Übertragungsratenanforderung
von 64 kbps 2340 Steckplätze
aufweisen.
-
In 2 ist
bei 44 das Format eines Listenschlitzeintrages gezeigt.
Wie ersichtlich ist, weist ein Eintrag 44 zwei Felder auf,
nämlich
ein Typenfeld und ein Feld, das den VCN des virtuellen Kanals enthält, auf
den sich der Eintrag bezieht. In der Tat enthält jeder Schlitz einen Eintrag,
aber nur jene mit einem Typenfeld und einem anderen Wert als „00" werden als besetzt
betrachtet – wenn
das Typenfeld „00" ist wird angenommen, dass
der Schlitz „frei" ist, und das VCN-Feld
ungültig.
Andere Werte des Typs als „00" werden verwendet,
um den Prioritätspegel
des virtuellen Kanals zu spezifizieren, der durch das VCN-Feld angezeigt
wird („01" zeigt niedrige Priorität an, „10" zeigt mittlere Priorität an und „11" zeigt hohe Priorität an).
-
Der
Listenaktualisierungsblock 41 dient zum Einfügen eines
virtuellen Kanals (identifiziert durch seinen VCN) in die Liste 27 auf
Anfrage entweder des Befehlsprozessors 31 oder des Listeneintragsprozessors 40.
Diese Einfügung
wird durch einen Versatz von dem aktuellen Listenschlitz bewirkt,
abhängig
von der Übertragungsrate
des betroffenen Kanals, wobei die Rate durch den Spitzenratenparameter
PRP für
virtuelle GB0-Kanäle
und entweder den Spitzenratenparameter PRP oder den Stützratenparameter
SRP für
virtuelle GB1-Kanäle spezifiziert
wird (in dem letzteren Fall wird die geeignete Rate durch die Anfrageentität identifiziert).
-
Der
Aktualisierungsblock 41 weist drei Funktionselemente auf,
nämlich
ein Anfangsziel-Bestimmungselement 45, ein Einfügen-Wenn-Frei-Element 46 und
ein Konfliktlösungselement 47.
Das Anfangsziel-Bestimmungselement 45 bestimmt, in welchen
Schlitz (den Zielschlitz) der VCN eingefügt werden sollte, um den Versatz
von dem aktuellen Schlitz geeignet für die Übertragungsrate anzugeben,
die durch den Ratenpa rameter spezifiziert wird, der in der Anfrage
an den Aktualisierungsblock 41 identifiziert wird. Das
Einfügen-Wenn-Frei-Element 46 überprüft dann
diesen Zielschlitz, und wenn dieser frei ist (wie durch den Typenparameter
seines Eintrags 44 angegeben wird), wird ein gültiger Eintrag
in diesen Schlitz gemacht. Dies wird durch Einstellen des Typenfeldes
durchgeführt,
um den geeignete Prioritätspegel
für das
VCN-Feld anzuzeigen, und durch Einfügen des VCN in das VCN-Feld.
Wenn der Zielschlitz jedoch bereits durch einen gültigen VCN-Eintrag
(einen „Treffer") besetzt ist, wird
das Konfliktlösungselement 47 aktiviert.
Dieses Element 47 vergleicht die Prioritätspegel,
die dem besetzenden VCN-Eintrag und der VCN zugeordnet sind, der
eine Einfügung
erfordert. Wenn Letzterer einen höheren Prioritätspegel
aufweist, wird derselbe in den Schlitz eingefügt, und der vorangehend besetzte
Eintrag wird nun zu dem VCN, der eine Einfügung erfordert; ansonsten bleibt der
besetzende Eintrag ungestört
und der ursprüngliche
VCN, der eine Einfügung
erfordert, bleibt der VCN, der eine Einfügung erfordert. Das Konfliktlösungselement 47 leitet
dann der VCN, der die Einfügung
erfordert, zurück
zu dem Einfügen-Wenn-Frei-Element 46,
aber mit einem neuen, spezifizierten Zielschlitz, wobei dieser neue
Zielschlitz der um Eins inkrementierte, vorangehende Zielschlitz
ist. Das Verarbeiten durch die Elemente 46 und 47 wird
dann abwechselnd bewirkt, bis ein freier Eintrag gefunden wird,
in dem der VCN, der eingefügt werden
soll, platziert werden kann, ohne eine Operation des Konfliktlösungselements 47 auszulösen.
-
Die
Steuerung der Operation des GB-Planers 25 wird durch den
Listeneintragsverarbeiter 40 bewirkt. Diese Operation wird
in dem nächsten
Abschnitt beschrieben.
-
Operation
des GB-Planers
-
Die
Operation des GB-Planers 25 wird nun Bezug nehmend auf
das VC-Zustandsübergangsdiagramm von 3 und
das Flußdiagramm
von 4 beschrieben, wobei Letzteres die sequen tielle
Steuerung von Operationen zeigt, die durch den Listeneintragsprozessor 40 bewirkt
werden.
-
Die
Auswirkung der GB-bezogenen Befehle auf dem GB-Planer werden zuerst
berücksichtigt.
-
Wenn
ein GBSETUP-Befehl durch den Befehlsprozessor 31 empfangen
wird, um einen neuen, virtuellen Kanal aufzubauen, wird in dem VC-Parameterspeicher 24 ein
VC-Eintrag gemacht, wobei das ON/OFF-Flag auf OFF eingestellt ist,
der Zustand des virtuellen Kanals auf STOP eingestellt ist und der
Parameter NO-CELLS auf wahr eingestellt ist; wenn der betroffene
Kanal ein virtueller GB1-Kanal ist, ist sein Kreditbetrag auf den
Bündelgrenzwert
BT eingestellt. Zu dieser Zeit wird in die Liste 27 kein
Eintrag für
den virtuellen Kanal gemacht.
-
In
der Folge wird ein GBSTART-Befehl für den virtuellen Kanal empfangen.
Diesem Befehl kann ein GBCELLS-Befehl vorangehen, der verursacht,
dass der NO-CELLS-Parameter auf falsch eingestellt wird. Wenn Zellen
verfügbar
sind, führt
das Empfangen des GBSTART-Befehls durch den Befehlsprozessor dazu, dass
der Zustand des virtuellen Kanals auf RUN geändert wird, und dass der Aktualisierungsblock 41 durch den
Befehlsprozessor 31 angefordert wird, um den virtuellen
Kanal bei Spitzenratenversatz in die Liste 27 einzufügen. Andererseits
wird der Zustand des Kanals einfach auf WAIT eingestellt, wenn keine
Zellen verfügbar sind,
wenn der GBSTART-Befehl empfangen wird.
-
Wenn
der GBCELLS-Befehl empfangen wird, wenn sich der virtuelle Kanal
in seinem WAIT-Zustand befindet, stellt der Befehlsprozessor 31 den
NO-CELLS-Parameter auf FALSE, ändert
den Zustand des virtuellen Kanals auf RUN und fordert den Aktualisierungsblock 41 an,
um den virtuellen Kanal bei Spitzenratenversatz in die Liste 27 einzufügen. Der
GBCELLS-Befehl wird empfangen, wenn sich der virtuelle Kanal (in
diesem Fall ein GB1-Kanal) in seinem ACCUM- Zustand befindet, der Befehlsprozessor 31 stellt
den NO-CELLS-Parameter
auf FALSE und ändert
den Zustand des virtuellen Kanals auf RUN (da der virtuelle Kanal
bereits in der Liste 27 ist, fordert der Befehlsprozessor
dessen Einfügung
nicht an).
-
Wenn
der Befehlsprozessor 31 den GBSTOP-Befehl für einen
virtuellen Kanal empfängt,
stellt er die ON/OFF-Flag des entsprechenden VC-Eintrags 44 auf
OFF. Der Prozessor 31 ändert
den Zustand des virtuellen Kanals jedoch nicht oder entfernt jeglichen
entsprechenden Eintrag nicht aus der Liste 27; dies wird
in der Folge durch den Listeneintragsprozessor 40 durchgeführt.
-
Schließlich führt der
GBRESET-Befehl dazu, dass der VC-Eintrag 44 für den spezifizierten,
virtuellen Kanal, zurückgesetzt
wird.
-
Als
nächstes
wird die Hauptbetriebsaufgabe des GB-Planers 25 berücksichtigt,
wobei dies die Eintragsverarbeitungsaufgabe ist, die während jeder
Zellperiode bewirkt wird, für
die eine Steuerung durch den Hauptsteuerblock 33 an den
GB-Planer geleitet
wird. Diese Eintragsverarbeitungsaufgabe wird durch den Eintragsprozessor 40 gesteuert,
wobei 4 eine Flussdiagrammdarstellung der Steuerung
ist, die durch den Prozessor 40 bewirkt wird.
-
Die
erste Operation, die durch den Eintragsprozessor 40 ausgeführt wird,
nachdem ihm die Steuerung übertragen
wurde, ist das Lesen des VCN in dem Eintragsfeld, das in dem aktuellen
Listenschlitz gehalten wird, auf den durch den aktuellen Schlitzverfolger 28 gezeigt
wird; zur gleichen Zeit befreit der Eintragsprozessor diesen Eintrag
durch Einstellen seines Typenfeldes auf „00" (siehe Block 50 in 4).
Als nächstes
liest der Prozessor 40 die relevanten VC-Parameter für den betroffenen
virtuellen Kanal aus dem VC-Parameterspeicher 24 (Block 51).
-
Der
erste durch den Eintragsprozessor 40 berücksichtigte
VC-Parameter ist der ON/OFF-Parameter (Block 52). Wenn
dieser Parameter auf OFF („0") eingestellt ist,
dann erkennt der Prozessor, dass der betroffene virtuelle Kanal
einem STOP-Befehl unterzogen wurde, und dass der soeben gelesene
Listeneintrag nicht länger
gültig
ist. Dementsprechend stellt der Prozessor 40 den Zustandsparameter
für den
Kanal in dem Speicher 24 auf STOP ein und beginnt das Senden
einer Beste-Bemühung-Zelle
durch den Beste-Bemühung-Organisator 30 für die aktuelle
Zellperiode (Block 53). Natürlich wird der soeben gelesene
VCN aus der Liste 27 nicht wieder in die Liste eingefügt.
-
Wenn
der ON/OFF-Parameter anzeigt, dass der virtuelle Kanal aktiv ist,
dann betrachtet der Eintragsprozessor den aktuellen Zustand des
Kanals (Block 54). In der Tat können sich gültige Einträge in der Liste 27 nur
auf virtuelle Kanäle
in dem RUN-Zustand, oder zusätzlich
für GB1-Kanäle, in dem
ACCUM-Zustand befinden.
-
Wenn
der Zustandsparameter auf ACCUM eingestellt ist, wodurch ein virtueller
GB1-Kanal angezeigt wird, der keine Zellen zum Senden hat aber Kredit
akkumuliert, wird der Eintragsprozessor 40 als nächstes den
gehaltenen Kreditwert in dem Kreditfeld des VC-Eintrags 42 für den betroffenen
Kanal inkrementieren (Block 55). Wenn der Gesamtkredit
nun dem Bündeltoleranzwert
BT entspricht (getestet bei Block 56), wird der Zustand
des virtuellen Kanals auf WAIT geändert (Block 57) und
der VCN des Kanals wird nicht zurück in die Liste 27 eingefügt. Wenn
der Kreditwert jedoch weniger ist als BT, wird der virtuelle Kanal
in seinem ACCUM-Zustand
gelassen und wird wieder in die Liste 27 eingefügt, mit
einem Versatz, der durch den SRP-Parameter bestimmt wird; dieses
Wiedereinfügen
wird durch den Aktualisierungsblock 41 auf die bereits
beschriebene Weise bewirkt, auf die Anfrage des Eintragsprozessors
hin (Block 58). Der letzte Schritt im Umgang mit einem
virtuellen Kanal in seinem ACCUM-Zustand ist das Beginnen des Sendens
einer Beste-Bemühung-Zelle
durch den Beste-Bemühung-Organisator 30 für die aktuelle
Zellperiode (Block 53).
-
Bei
einem virtuellen Kanal, der sich in seinem RUN-Zustand befindet
(Block 54 Test), beginnt der Eintragsprozessor 40 das
Senden einer Zelle (Block 59) durch Ausgeben des VCN des
Kanals auf Leitung 19 zu der Sendeschnittstelle 13.
Als nächstes,
wenn der virtuelle Kanal ein GB1-Kanal ist (getestet bei Block 60), wird
seine Kreditzählung,
die in dem entsprechenden Eintrag in dem Speicher 24 gehalten
wird verringert, außer dieselbe ist bereits Null. Nachfolgend bestimmt
der Eintragsprozessor 40, ob der VCN des Kanals wieder in
die Liste 27 eingefügt
werden sollte. Dies umfasst das Bestimmen, ob mehr Zellen verbleiben,
um auf dem virtuellen Kanal gesendet zu werden (Block 61);
diese Informationen sind durch Prüfen verfügbar, ob ein „keine Zellen
mehr"-Signal auf
Leitung 20 geliefert wurde. In dem Fall, dass mehr Zellen
zum Senden vorhanden sind, wird der VCN des Kanals wieder in die
Liste 27 eingefügt,
mit einem Versatz, der durch den Spitzenratenparameter PRP bestimmt
wird, (Block 63) außer
für GB1-Kanäle ohne
Kredit (getestet bei Block 62), die mit einem Versatz eingefügt werden,
der durch den Stützratenparameter
SRP bestimmt wird (Block 64). Wenn keine Zellen zum Senden
mehr verfügbar
sind, wenn der betroffene Kanal ein GB1-Kanal ist (getestet bei
Block 65), wird dessen Zustand auf ACCUM eingestellt (Block 66)
und sein VCN wird wieder in die Liste 27 eingefügt, mit einem
Versatz, der durch den Stützratenparameter
SRP bestimmt wird (Block 64), um dem Kanal zu ermöglichen,
Kredit zu akkumulieren. Wenn der Test bei Block 65 zeigt,
dass der Kanal ein GB0-Kanal ist, wird sein Zustand auf WAIT eingestellt
(Block 67) und sein VCN wird nicht wieder in die Liste 27 eingefügt.
-
Die
oben beschriebenen Zustandsübergänge für virtuelle
Kanäle,
die durch die GB-Befehle und durch die Aktionen des Eintragsprozessors 40 verursacht
werden, sind in 3 dargestellt.
-
Es
wird darauf hingewiesen, dass die vorangehende Beschreibung auf
den funktionellen Komponenten basiert, die durch den Planer gefordert
werden, und dass diese Komponenten auf jegliche geeignete Weise implementiert
werden können.
In der Tat ist es im allgemeinen wünschenswert, den Planer in
die Hardware zu implementieren, um den Durchsatz zu maximieren.
-
Es
wird ferner darauf hingewiesen, dass viele Variationen für die beschriebene
Anordnung möglich sind,
und das die funktionellen Teilelemente unterschiedlich zugeordnet
sein können.
Obwohl in der beschriebenen Anordnung der Eintragsprozessor 40 jeden
Listenschlitz freisetzt, kann dieses Freisetzen derart betrachtet
werden, dass es durch ein separates Funktionselement bewirkt wird.
Der Test, der bei Block 36 durch die Hauptsteuerung 33 des
Planers ausgeführt
wird, kann wiederum gleichermaßen
durch den Eintragsprozessor 40 bewirkt werden, wobei die
Hauptsteuerung in diesem Fall nur bestimmt, ob der Befehlsprozessor 31 aktiviert
werden soll, oder ob die Steuerung direkt an den Planer 25 mit
garantierter Bandbreite gegeben werden sollte.
-
Eine
andere mögliche
Variante betrifft den Mechanismus zum Bestimmen, wann keine Zellen
mehr verbleiben, um auf einem virtuellen Kanal gesendet zu werden.
Anstelle sich auf die Rückkopplung über die Leitungen 16 und 20 zu
verlassen, könnte
der VC-Eintrag 42 in dem Parameterspeicher 24 verwendet
werden, um eine Zählung
der Zellen zu halten, die zum Senden verbleiben, wobei jeder GBCELLS-Befehl
die Anzahl neuer Zellen spezifiziert, die verfügbar sind, und die Zellenzählung entsprechend
implementiert, während
der Eintragsprozessor 40 die Zellenzählung jedes Mal vermindert,
wenn er das Senden einer Zelle auf dem betreffenden virtuellen Kanal
einleitet.
-
Übertragungsratenparameter
-
Wie
bereits beschrieben wurde, werden der Spitzenratenparameter PRP
und der Stützratenparameter SRP
nach Bedarf durch das Anfangszielbestimmungselement 45 verwendet,
um den Versatz zwischen dem aktuellen Listenschlitz und dem Schlitz
zu bestimmen, der als nächstes
dem virtuellen Kanal zugeordnet werden soll, für den soeben eine Zelle gesendet
wurde, um eine gewünschte
Zellenübertragungsrate
zu ergeben. Das Format der PRP- und SRP-Felder bei jedem GB-Eintrag 42 in
dem VC-Parameterspeicher 24 wird durch die Felder PRM bzw.
SRM bestimmt.
-
Bei
einem einfachen Format spezifizieren die Felder PRP und SRP jeweils
eine ganze Zahl von Schlitzen für
den Versatz. Der Nachteil bei dieser Anordnung ist, dass, wenn sich
die gewünschte
Rate erhöht,
die mögliche
Steuerung grober wird; insbesondere ist es nicht möglich, eine
Rate zwischen einer halben und der gesamten Verknüpfungsbandbreite
zu spezifizieren (wobei diese zwei Raten einem Schlitzversatz von
Zwei bzw. Eins entsprechen).
-
Um
diesen Nachteil zu überwinden,
werden PRP und SRP vorzugsweise in einem komplexeren Format spezifiziert
(angezeigt durch das PRM- und SRM-Feld), wobei dieses Format diagrammartig
in 5 gezeigt ist. In diesem Fall weist der Übertragungsratenparameter
(PRP oder SRP) 69 drei Teile auf, d. h.
- – einen
festen ganzzahligen Teil 70,
- – einen
festen Bruchteil 71;
- – einen
variablen Akkumulationsteil 72.
-
Der
feste ganzzahlige Teil 70 und der feste Bruchteil 71 bilden
eine Ratenzahl, die die gewünschte Übertragungsrate
im Hinblick auf den entsprechenden Schlitzversatz spezifiziert,
der als ganze und Teil-Schlitze ausgedrückt wird (wobei offensichtlich
ist, dass der Ausdruck „ganze
Zahl" bei „ganzzahliger
Teil" sich nicht auf
die Art und Weise der Zahldarstellung bezieht, sondern auf die Tatsache,
dass dieser Teil eine ganze Anzahl von Schlitzen darstellt). Wie
nun nachfolgend offensichtlich wird, hält der Akkumulationsteil 72 eine
Zahl, die einen Bruchteil eines Schlitzes darstellt.
-
Jedes
Mal, wenn angefordert wird, dass das Anfangsziel-Bestimmungselement 45 einen
Zielschlitzversatz für
einen virtuellen Kanal bestimmt, addiert es (siehe 73)
die Ratenzahl 70, 71 und den Akkumulationsteil 72 des
entsprechenden Übertragungsratenparameters
zusammen. Die ganzzahlige Komponente 74 des Ergebnisses
dieser Addition wird dann verwendet, um den Schlitzversatz einzustellen,
während
der Bruchteilrest zurück
in den Akkumulationsteil 72 gespeichert wird.
-
Auf
diese Weise kann verursacht werden, dass der Versatz variiert, um
eine gewünschte Übertragungsrate
zu erreichen. Wenn z. B. der ganzzahlige Teil 70 auf Eins
eingestellt wird und der Bruchteil auf ein Halb, wechselt der Schlitzversatz
zwischen Eins und Zwei, was eine Zellenübertragungsrate von zwei Drittel der
Verknüpfungsbandbreite
ergibt. Auf ähnliche
Weise ergibt das Einstellen des ganzzahligen Teils auf Zwei und
des Bruchteils auf ein Halb eine Zellenübertragungsrate von 40% der
Verknüpfungsbandbreite.
-
Die
erreichbare Übertragungsratenauflösung hängt ab von
dem Grad der Präzision,
die zum Spezifizieren der drei Teile des Parameters 69 erlaubt
ist. Es wird darauf hingewiesen, dass die exakte Form der Speicherung
der ganzzahligen und Bruch-Teile 70, 71 der Ratenzahl
nicht kritisch ist, vorausgesetzt es ist möglich, die gespeicherten Daten
in ganzzahlige und Teil-Schlitze zu übersetzen.
-
Bei
dem Planer aus 1 bis 4 wird der
SRP ferner für
GB1 virtuelle Kanäle
verwendet, um die Krediterzeugungsrate zu steuern. Es ist somit
deutlich, dass die selbe Form von Parameter, wie in 5 dargestellt
ist, verwendet werden kann, um die Krediterzeugung zu steuern; natürlich kann
dieser Mechanismus zum Steuern der Krediterzeugung unabhängig von
dem Zellenübertragungsraten-Steuerungsmechanismus verwendet
werden.
-
In
der Tat kann die Kreditratenerzeugung unter Verwendung eines Steuerungsdatenelements ähnlich zu
dem gesteuert werden, das in 5 gezeigt
ist, nicht nur durch Variieren der Zeit zwischen den Kreditinkrementereignissen
(wie in dem vorangehenden Absatz beschrieben wurde), sondern ferner
durch Variieren der Größe des Kreditinkrements.
Somit könnte
jeder virtuelle Kanal, für
den ein Kredit akkumuliert werden sollte, seinen Kreditpegel mit
festen regelmäßigen Intervallen
inkrementiert haben, wobei der Inkrementbetrag die ganzzahlige Komponente
einer Addition ist, die über
alle drei Teile eines Steuerungsdatenelements der Form von 5 bewirkt
wird; in diesem Fall jedoch stellen der ganzzahlige und der Bruch-Teil
der Elemente ganze und teilweise Kredite und nicht Schlitze dar.