-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung liegt auf dem Gebiet der Dienst-Raten-Steuerung
in ATM-Vermittlungen. Insbesondere ist sie auf ein Raten-Steuerverfahren
in der Frequenzdomäne
oder der Zeitdomäne
gerichtet, das mit sehr hohen Geschwindigkeiten arbeitet und/oder
eine große
Anzahl von Dienst-Klassen abdeckt.
-
Hintergrund
der Erfindung
-
Die
Dienst-Raten-Disziplin ergibt sich von Natur aus in der synchronen
Leitungs-Vermittlung.
In der ATM sind Dienst-Raten-Steuerungen erforderlich, um die Dienst-Rate für Verbindungen
oder Klassen von Verbindungen zu regeln. Eine Klasse kann mehrere
Verbindungen mit ähnlichen
Verkehrs-Deskriptoren einschließen,
oder sie kann eine einzige Verbindung mit einer hohen Bitrate darstellen.
-
Einige
der Anforderungen an die Dienst-Raten-Steuerung sind wie folgt:
- – hohe
Kapazität
(große
Anzahl von Klassen)
- – hohe
Betriebsleistung (geringer Jitter-Effekt)
- – hohe
Geschwindigkeit
- – Einfachheit/geringe
Kosten
- – Robustheit:
geringe Fehlerwahrscheinlichkeit/leichte Fehlererholung.
-
Die
Steuerung kann entweder Frequenzdomänen-basiert sein, wobei der
Haupt-Steuerparameter
die Abtastrate pro Klasse ist, oder sie können Zeitdomänenbasiert
sein, wobei der Haupt-Steuerungsparameter das Abtastintervall pro
Klasse ist.
-
Das
allgemeine Problem der Dienst-Raten-Steuerung kann wie folgt ausgedrückt werden:
eine Verbindungsstrecke mit fester Kapazität wird gemeinsam von einer
Anzahl von Verkehrsströmen
genutzt, denen getrennte Warteschlangen zugeteilt sind. Die Verkehrsströme können die
Verbindungsstrecke entsprechend einer von vielen Richtlinien gemeinsam
nutzen, wie z. B. eine feste Rate pro Datenstrom oder eine garantierte minimale
Rate pro Datenstrom. Bei jeder dieser Richtlinien kann die maximale
Anzahl von Zellen, die eine Warteschlange auf die Verbindungsstrecke
in einer einzigen Transaktion überführen kann
(das heißt
in einer zusammenhängenden
Periode) auf einen vorgegebenen Grenzwert beschränkt werden. Die Verwendung
hoher Grenzwerte hat den Vorteil der Vereinfachung der Realisierung
der Raten-Steuerung unter Inkaufnahme der Vergrößerung der Zellenverzögerungs-Änderung.
Die in den 1 und 2 gezeigten
Schemas zeigen die Verwendung von zusammenhängenden Zuteilungen für ein Beispiel
von vier Warteschlangen für
vier Verkehrsströme
A, B, C und D. Die relativen Zuteilungen sind für die zwei gezeigten Schemas
identisch. Das Schema nach 1 ergibt
jedoch mit der kleineren Warteschlangen-Zugriffszeit eine bessere
Betriebsleistung. Das Schema mit mit Abstand angeordneten Zuteilungen
nach 3 ergibt eine bessere Betriebsleistung für einen
verzögerungsempfindlichen
Verkehr. Bei dieser Figur ist jede Unterteilung eine Zelle breit.
Wenn die Anzahl von Zellen, die in einer Warteschlange warten, kleiner
als der für
die Warteschlange zugeteilte Grenzwert ist, so ist die Anzahl der
von der Warteschlange übertragenen
Zellen kleiner als die zulässige
Anzahl und die Anzahl der in der Warteschlange wartenden Zellen.
Wenn die Zuteilungen gemäß 3 aufgespreizt
werden, verbessert sich das Jitter-Betriebsverhalten auf Kosten
einer größeren Anzahl
von Unterteilungen und damit einer vergrößerten Kompliziertheit der
Steuerung.
-
Der
Verkehr kann geschützte
und ungeschützte
Verkehrsströme
umfassen. Den geschützten
Verkehrsströmen
ist eine bestimmte Dienstgüte
(QOS) zugesagt, während
die ungeschützten
Verkehrsströme sich
auf die Möglichkeiten
(oder das beste Bemühen)
verlassen müssen.
Eine der Haupt-QOS-"Garantien" ist eine Verzögerungs-Jitter-Grenze.
Wenn eine Vielzahl von Klassen mit zufälligen Abtastfrequenzen (oder
Intervallen) eine Verbindungsstrecke gemeinsam nutzen, so können die
Abtastzeitpunkte von zwei oder mehr Klassen zusammenfallen, und
eine unerwünschte
Abtastfrequenz-Modulation wird unvermeidbar. Die Modulationstiefe
kann durch geeignete Dienste-Disziplinen und Lastpegel-Steuerungen verringert
werden.
-
(a) Raten-Steuerungs-Optionen
-
Zwei
Raten-Steuer-Disziplinen können
verwirklicht werden und sind hier von Interesse. Die erste ist eine
feste Dienst-Rate pro Klasse, und die zweite ist die garantierte
minimale Dienst-Rate pro Klasse. Die erstere gilt für verzögerungsempfindlichen
Verkehr, und die letztere gilt für
verzögerungstoleranten
Verkehr. Wir betrachten den verwaltbaren Fall, bei dem die Summe
der Klassen-Zuteilungen gleich der Verbindungsstrecken-Rate ist,
und wir führen
eine ergänzende
Null-Klasse ein,
der irgendeine nicht zugeteilte Kapazität zugeteilt wird. In dem Schema
mit fester Dienst-Rate werden freie Zeitschlitze an ungeschützte Verkehrsströme abgegeben,
so dass den geschützten
Klassen eine gleichförmige
Dienst-Rate garantiert wird. In dem Schema mit garantierter minimaler
Dienst-Rate können
irgendwelche von einer vorgegebenen geschützten Klasse nicht verwendeten
Schlitze an eine andere geschützte
Klasse vergeben werden. Somit ist die Dienst-Rate für jede geschützte Klasse
zumindest gleich der zugeteilten Dienst-Rate. Das Schema mit einer
festen Dienst-Rate muss für
verzögerungsempfindlichen
Verkehr verwendet werden. Das Schema mit garantierter minimaler Dienst-Rate
kann Jitter einführen
und kann lediglich mit verzögerungstolerantem
Verkehr verwendet werden, der in manchen Fällen als nicht-Echtzeit-Verkehr
bezeichnet wird.
-
(b) Null-Klasse
-
Die
Summe der zugeteilten Dienst-Raten aller Klassen muss gleich der
Verbindungsstrecken-Rate sein. Wenn diese Bedingung nicht erfüllt ist,
wird eine Null-Klasse (beispielsweise die Klasse 0) eingeführt, und dieser
wird die ungenutzte Kapazität
zugeteilt. Die Null-Klasse kann ihre Zeit an ausgewählte Klassen
spenden.
-
(c) Zwei-Pegel-Steuerung
-
Bei
einer festen Dienst-Rate pro Klasse können die ungenutzten Zeitschlitze
durch ungeschützten
Verkehr verwendet werden, beispielsweise UBR- (nicht festgelegte
Bitraten-) Verkehr.
-
Eine
Zwei-Pegel-Steuerung bildet eine primäre Steuerung mit fester Dienst-Rate
(oder einem konstanten Abtastintervall) und eine sekundäre Steuerung
mit garantierter minimaler Dienst-Rate (oder einem veränderbaren
Abtastintervall). 4 zeigt die Zuteilungen für die primäre Steuerung,
die vier Klassen mit Diensten versorgt, und 5 zeigt
die Zuteilungen für
die sekundäre
Steuerung, die sieben Klassen mit Diensten versorgt. Beide Steuerungen
können
eine Null- Klasse
(Klasse 0) zuteilen. Die Dienstperioden sind als zusammenhängende Perioden
aus Gründen
der Klarheit gezeigt; die tatsächlichen
Dienst-Schlitze würden
wie in 3 verteilt. Die primären Klassen können CBR-Verkehr
oder VBR-Verkehr mit einer festgelegten Spitzen-Rate oder anderen
strengen Echtzeit-Anforderungen
einschließen.
Eine Null-Klasse in der primären
Steuerung kann dazu verwendet werden, eine minimale Dienst-Rate
für die
sekundären
Klassen zu garantieren. Die sekundären Klassen dienen für verzögerungstolerante
Verkehrsströme.
Eine Null-Klasse in der sekundären
Steuerung kann dazu verwendet werden, eine minimale (Höflichkeits-)
Dienst-Rate für
UBR-ähnlichen
Verkehr zu garantieren. Das Konzept kann auf eine Mehr-Pegel-Steuerung
erweitert werden. Es sei bemerkt, dass wenn die sekundären Klassen
ihre ungenutzten Zeitschlitze gemeinsam nutzen sollen, die Betriebsleistungs-Differenz
abnimmt und sie sich sogar wie eine einzige Klasse verhalten können.
-
(d) Bewertetes Round-Robin-Schema:
die generische Realisierung
-
Das
bewertete zyklische oder Round-Robin-Schema ist die einfachstmögliche Realisierung
einer Dienst-Raten-Steuerung. Dieses Schema kann jedoch ein schlechtes
Verzögerungs-Betriebsverhalten
haben und wird hier als ein generisches Schema für andere kompliziertere Realisierungen
eingeführt.
-
Die
Verbindungsstrecke wird gemeinsam von K Klassen verwendet, denen
Dienst-Zeitscheiben
x0, x1, ..., xK-1, in einem Zeitrahmen mit einer maximalen
Dauer von x0 + x1 +
... +xK-1 Zeitschlitzen zugeteilt sind.
Die Rahmendauer würde
konstant (auf einem maximalen Wert) sein, wenn jede Klasse ihre
Zuteilung unabhängig von
dem Zustand (Leerlauf/Belegt) ihres Zellenpuffers (Warteschlange)
verwendet. Wenn die Rahmen-Abtastung bei Auftreffen auf eine Leerlauf-Klasse
fortgesetzt wird, so ist die Rahmendauer veränderlich.
-
(e) Abtastfreauenz-Abgleich
zur Verringerung von Jitter
-
Die
Abtastung eines verzögerungsempfindlichen
Verkehrsstromes mit einer Rate, die höher als die ist, die für den Strom
spezifiziert ist, ist allgemein unerwünscht, weil sie irgendeinen
vorher angesammelten Jitter-Effekt auf nachfolgende Schaltpunkte
weiterleitet. Die Abtastung mit der richtigen Dienst-Rate ist insbesondere
für CBR-Ströme nützlich,
weil dies im Sinne einer Glättung
der zufälligen
Periodenschwankungen wirkt. Eine sehr kleine Vergrößerung der
Abtastfrequenz (beispielsweise eine relative Vergrößerung von
0,01) verbessert das Betriebsverhalten aus zwei Gründen. Zunächst kann
ein geringfügiger
Zeitsteuerfehler zu einer Abtastung mit einer Rate führen, die
kleiner als die der Zellenankunftsrate ist, was andererseits zu
einem Puffer-Überlauf
führt.
Zweitens kann sich bei einer periodischen Abtastung mehrerer CBR-Klassen
das Abtastintervall für
eine vorgegebene Klasse aufgrund eines Konfliktes mit anderen Klassen ändern, und
eine kleine Vergrößerung der
Abtastfrequenz (das heißt
ein geringfügig
verringertes Abtastintervall) würde
nützlich
sein.
-
Die
europäische
Patentanmeldung
EP 0684717 beschreibt
ein Kommunikations-Steuersystem
zur Feststellung, ob es ihm erlaubt ist, eine ATM-Zelle über eine
virtuelle Verbindung über
eine mittlere Raten-Steuerung zu übertragen oder nicht, indem
ein „leaky
bucket"-Algorithmus
realisiert wird.
-
Die
Veröffentlichung
Sriram (Computer Networks and ISDN-Systems, Band 26, Nr. 1, 1. September 1993,
Seiten 43–59)
schlägt
eine ATM-Zellenmultiplexierung unter Verwendung eines dynamischen
Zeitscheiben-Schemas vor, das eine erforderliche Bandbreite für jede Verkehrsklasse
und/oder virtuelle Verbindung zuteilt und garantiert. Das Schema
ist dynamisch, und es ermöglicht
den unterschiedlichen Verkehrsklassen oder virtuellen Verbindungen,
die Bandbreite mit einer weichen Begrenzung gemeinsam zu nutzen.
-
Ziele der
Erfindung
-
Es
ist daher ein Ziel der Erfindung, ein Verfahren zur Dienst-Raten-Steuerung
in einem ATM-Netzwerk zu schaffen.
-
Es
ist ein weiteres Ziel der Erfindung, ein Verfahren zur Verwaltung
von Mehr-Klassen-Verkehr
in dem Netzwerk zu schaffen.
-
Es
ist ein weiteres Ziel der Erfindung, ein Verfahren zur Dienst-Raten-Steuerung
auf der Grundlage von Frequenzdomänen-Steuerungen zu schaffen.
-
Es
ist ein weiteres Ziel der Erfindung, ein Verfahren zur Dienst-Raten-Steuerung
auf der Grundlage von Zeitdomänen-Steuerungen
zu schaffen.
-
Zusammenfassung
der Erfindung
-
Kurz
gesagt ist gemäß einem
Gesichtspunkt die Erfindung auf ein Verfahren zum Regeln des Telekommunikationsverkehrs
in einem ATM-Netzwerk gerichtet, wobei der Telekommunikationsverkehr
eine einzelne Klasse durch eine Dienst-Rate enthält, in der ein Klassen-Zellenpuffer
zur Aussendung in Netzabwärtsrichtung abgetastet
wird. Das Verfahren umfasst die Schritte des Akkumulierens einer
normalisierten Dienst-Raten-Zuteilung für die Klasse in jeder Zellen-Periode
in einem Klassen-Addierer; das Erklären der Klasse als für einen Dienst
auswählbar,
wenn der Inhalt des Klassen-Addierers Eins übersteigt; das Reduzieren des
Klassen-Addierer-Inhaltes um Eins, wenn eine Zelle aus der Warteschlange
aus dem Klassen-Zellenpuffer entfernt wird; und das Verringern des
Klassen-Addierer-Inhaltes
um seinen ganzzahligen Teil, wenn der Klassen-Addierer-Inhalt größer als
Eins ist, der Klassen-Zellenpuffer jedoch leer ist.
-
Gemäß einem
weiteren Gesichtspunkt ist die Erfindung auf ein Verfahren zum Regeln
des Telekommunikationsverkehrs, der eine einzige Klasse durch eine
Dienst-Rate enthält,
gerichtet, in der ein Klassen-Zellenpuffer für eine Aussendung in Netzabwärtsrichtung
abgetastet wird. Das Verfahren umfasst die Schritte des Initialisierens
eines Klassen-Status-Zählers
auf Null; des Initialisierens eines Klassen-Addierers mit dem festgelegten
Dienste-Intervall für
die Klasse, des Vergleichens des Klassen-Addierer-Inhaltes mit einem
Bezugszeit-Zähler;
des Erklärens
einer Klasse für
einen Dienst auswählbar,
wenn der ganzzahlige Teil des Klassen-Addierer-Inhaltes gleich dem
Bezugszeit-Zähler
ist; des nachfolgenden Vergrößerns des
Klassen-Addierers um den Wert des festgelegten Dienste-Intervalls für die Klasse
und des Vergrößerns des
Klassen-Status-Zählers
um Eins, wenn die Klasse für
einen Dienst auswählbar
ist und der Klassen-Zellenpuffer nicht leer ist.
-
Kurze Beschreibung
der Zeichnungen
-
1 ist
ein Kreisdiagramm, das ein Beispiel der Dienste-Zeitzuteilungen
in einer bewerteten „Round Robin"- (zyklischen) Steuerung
mit vier Klassen;
-
2 ist
ein Kreisdiagramm, das unterschiedliche Zuteilungen für das Beispiel
nach 1 zeigt;
-
3 ist
ein Kreisdiagramm, das aufgespreizte Dienste-Zeiten mit den gleichen
Zuteilungen wie in 1 zeigt;
-
4 ist
ein Kreisdiagramm, das die Zuteilungen für verzögerungsempfindliche primäre Klassen
mit einer Null-Klassen-Zuteilung zeigt, um eine minimale Dienst-Rate
für die
sekundären
Klassen zu garantieren;
-
5 ist
ein Kreisdiagramm, das die Zuteilungen für verzögerungstolerante sekundäre Klassen
zeigt;
-
6 ist
eine schematische Darstellung für
eine Frequenzdomänen-Steuerung für eine einzige
Klasse;
-
7 ist
eine schematische Darstellung einer Mehrklassen-Frequenzdomänen-Steuerung;
-
8 ist
ein Diagramm, das die Betriebsweise der Frequenzdomänen-Steuerung mit einer
Raten-Akkumulation pro Zellenzeit zeigt;
-
9 ist
ein Diagramm, das die Betriebsweise der Frequenzdomänen-Steuerung mit der
Raten-Akkumulation während
jeder zwei Zellenzeiten zeigt;
-
10 ist
eine schematische Darstellung einer Zwei-Pegel-Mehrklassen-Frequenzdomänen-Steuerung;
-
11 ist
ein Diagramm, das den Änderungskoeffizienten
des tatsächlichen
Abtastintervalls als eine Funktion des spezifizierten Abtastintervalls
zeigt, das durch Simulieren einer 32-Klassen-Frequenzdomänen-Steuerung
bei einer Belegung von 99% bestimmt ist;
-
12 ist
ein Diagramm, das den Koeffizienten der normalisierten maximalen
Abtastintervall-Abweichung als eine Funktion des spezifizierten
Abtastintervalls zeigt, bei Bestimmung durch Simulieren einer 32-Klassen-Frequenzdomänen-Steuerung
mit einer Belegung von 99%;
-
13 ist
ein Diagramm, das den Koeffizienten der Änderung des Abtastintervalls
als eine Funktion des spezifizierten Abtastintervalls zeigt, das
durch Simulieren einer 32-Klassen-Frequenzdomänen-Steuerung bei einer Belegung
von 50% bestimmt wurde;
-
14 ist
ein Diagramm, das den Koeffizienten der normalisierten maximalen
Abtastintervall-Abweichung als eine Funktion des spezifizierten
Abtastintervalls zeigt, das durch Simulieren einer 32-Klassen-Frequenzdomänen-Steuerung bei einer
Belegung von 50% bestimmt wurde;
-
15 ist
ein Diagramm, das den Koeffizienten der Änderung des Abtastintervalls
als eine Funktion des spezifizierten Abtastintervalls für eine simulierte
32-Klassen-Frequenzdomänen-Steuerung
bei einer Belegung von 99% mit den Akkumulations-Perioden von 1,
2, 4 und 8 Zellenintervallen zeigt;
-
16 ist
ein Diagramm, das die maximale normalisierte Abweichung des Abtastintervalls
als Funktion des spezifizierten Abtastintervalls für das gleiche
Simulationsexperiment nach 15 zeigt;
-
17 ist
eine schematische Darstellung einer Einzelklassen-Zeitdomänen-Steuerung;
-
18 ist
ein Diagramm, das die Abtastzeitpunkte in einer Zeitdomänen-Steuerung mit einer
unendlichen Wortlänge
zeigt;
-
19 und 20 sind
Diagramme, die die Abtastzeitpunkte in einer Zeitdomänen-Steuerung
mit einem Addierer für
eine endliche Wortlänge
zeigen;
-
21 ist
ein Diagramm, das die Bedingung zeigt, unter der eine Abtastung
in einer Zeitdomänen-Steuerung
nicht möglich
ist;
-
22 zeigt
die Nachführungsfunktion
der Zeitdomänen-Steuerung;
-
23 zeigt
die Funktion der Zeitdomänen-Steuerung
bei einer endlichen Wortlänge;
-
24 ist
eine schematische Darstellung einer Mehrklassen-Zeitdomänen-Steuerung;
-
25 zeigt
ein Beispiel eines zusammengesetzten Stroms, der sich aus der Multiplexierung
von vier Strömen
ergibt;
-
26 zeigt
den bei den einzelnen Strömen
nach 25 auftretenden Jitter-Effekt;
-
27 ist
eine schematische Darstellung einer 2-Pegel-Mehrklassen-Zeitdomänen-Steuerung;
-
28 und 29 sind
Diagramme, die die Betriebsleistung einer 32-Klassen-Zeitdomänen-Steuerung zeigen, die bei
einer Belegung von 99% betrieben wird;
-
30 und 31 sind
Diagramme, die die Betriebsleistung einer 32-Klassen-Zeitdomänen-Steuerung zeigen, die bei
einer Belegung von 50% betrieben wird;
-
32 ist
ein Diagramm, das die Verwendung einer Zeit-Raum-Umsetzung für die Dienst-Raten-Steuerung
mit einer Ein-zu-Eins-Entsprechung zwischen den Zeitschlitzen und
den Raumschlitzen zeigt;
-
33 ist
ein Diagramm, das die Zeit-Raum-Umsetzungsfunktion mit erweiterten
Raumschlitzen zeigt;
-
34 ist
ein Diagramm, das den Hauptbetrieb der seriellen Zeitdomänen-Steuerung
zeigt;
-
35 und 36 sind
Diagramme, die zwei aufeinanderfolgende Schritte der Betriebsweise
der seriellen Zeitdomänen-Steuerung
zeigen;
-
37 ist
ein Diagramm, das die Pipeline-Wirkung der seriellen Zeitdomänen-Steuerung
zeigt;
-
38 ist
eine schematische Darstellung, die die Hauptstruktur der seriellen
Zeitdomänen-Steuerung zeigt;
-
39 ist
eine schematische Darstellung, die die erneuerte Registrierung einer
mit Diensten versorgten Klasse in der seriellen Zeitdomänen-Steuerung
zeigt;
-
40 ist
eine schematische Darstellung, die die Hauptstruktur der seriellen
Zeitdomänen-Steuerung mit
einem regelnden Puffer zeigt;
-
41 und 42 sind
Diagramme, die Simulationsergebnisse für eine serielle 128-Klassen-Zeitdomänen-Steuerung
zeigen, die mit einer Belegung von 99% mit Dehnungsfaktoren von
2 und 4 betrieben wird. Die gezeigten Betriebsleistungs-Indizes
sind der Änderungskoeffizient
und die normalisierte maximale Abweichung des tatsächlichen
Abtastintervalls, jeweils aufgetragen als eine Funktion des spezifizierten
Abtastintervalls;
-
43 und 44 sind
Diagramme, die Simulationsergebnisse für eine serielle 128-Klassen-Zeitdomänen-Steuerung
zeigen, die bei einer Belegung von 50% mit Dehnungsfaktoren von
1 und 2 betrieben wird. Die gezeigten Betriebsleistungs-Indizes
sind der Koeffizient der Variation um die normalisierte maximale
Abweichung des tatsächlichen
Abtastintervalls, die jeweils als eine Funktion des spezifizierten
Abtastintervalls aufgetragen sind;
-
45 ist
ein Diagramm, das die funktionelle Organisation einer Verbund-Steuerung zeigt;
und
-
46 ist
ein Diagramm, das die Struktur einer Verbund-Steuerung zeigt.
-
Ausführliche
Beschreibung der bevorzugten Ausführungsformen der Erfindung
-
Eine
Dienst-Raten-Steuerung kann so ausgelegt werden, dass sie die Abtast-Rate
pro Klasse oder äquivalent
das Abtastintervall pro Klasse erfüllt. Obwohl diese zwei Optionen
der Frequenz- und Zeitdomänen-Steuerungen
funktionelle äquivalent
sind, können
sich die Hardware-Implementationen wesentlich unterscheiden. Die
Frequenzdomänen-Steuerschemas
sind für
eine kleine oder mittlere Anzahl von Klassen geeignet. Für eine große Anzahl
von Klassen, beispielsweise mehrere Hundert, ist eine Zeit-Raum-Umsetzung
verbunden mit Zeitdomänen-Steuerschemas vorzuziehen.
-
Steuerung A: parallele
Frequenzdomänen-Steuerung
-
A.1 Zugrundeliegende Prinzipien
-
Die
grundlegenden Konzepte der Frequenzdomänen-Steuerung der Erfindung
sind wie folgt: es sei R die Verbindungsstrecken-Rate in Zellen
pro Sekunde, und F
j sei die erforderliche
Abtastfrequenz der Klasse j, 0 ≤ j < K-1, derart, dass
die Gesamt-Abtastfrequenz
für die
K Klassen kleiner als R ist. Es sei f
j die
normalisierte Abtastfrequenz der Klasse j:
-
Weil
die zugeteilte Dienst-Rate pro Klasse kleiner als die Verbindungsstrecken-Rate ist, und weil
es nicht möglich
ist, einen Bruchteil einer Zelle zu irgendeiner Zeit zu übertragen,
ist es erforderlich, über
mehrere Zellen-Zeiten zu warten, damit man für die Übertragung von einer oder mehreren
Zellen von einem vorgegebenen Klassen-Puffer auswählbar ist.
Somit würde
ein einfacher paralleler Integrator, wie er in 6 gezeigt ist,
ausreichen, um anzuzeigen, wann jede Klasse für einen Dienst auswählbar ist.
Bei jedem Taktzyklus wird eine normalisierte Abtastfrequenz addiert.
Weil die Betriebsweise in diskreter Zeit erfolgt, wird die Integration durch
eine Summierung der normalisierten Abtastfrequenz ersetzt. Jedesmal
dann, wenn die Summierung Eins übersteigt,
wird die Klasse mit Diensten versorgt, und die Summe wird um 1,0
reduziert. 7 zeigt den Parallelbetrieb
der Abtasteinrichtung nach 6 für die Fälle von
K Klassen. Wenn in 7 die Summierung der Frequenzzuteilungen
für eine
vorgegebene Klasse Eins übersteigt,
so wird die Summierung um 1,0 reduziert, selbst wenn der Klassen-Zellenpuffer leer
ist. Wenn der Klassen-Zellenpuffer nicht leer ist, wird die Klassen-Nummer in die Bereitschafts-Warteschlange
eingeführt.
Wenn die Bereitschafts-Warteschlange
nicht leer ist, wird die Klasse am Kopfende mit Diensten versorgt.
Anderenfalls kann der freie Schlitz auf der Bereitschafts-Warteschlange
einer anderen Klasse von verzögerungstolerantem
oder ungeschütztem
Verkehr zugeteilt werden.
-
Die
Abtastfrequenzen in 7 können individuell aktualisiert
werden, wenn die Notwendigkeit entsteht, ohne die Betriebsweise
der Steuerung zu unterbrechen. Es ist möglich, die Integratoren aufeinanderfolgend
aufzusuchen, beispielsweise zwei pro Zellenzeit, und die auswählbaren
aktiven Klassen in die Bereitschafts-Warteschlange einzugeben. Die Integratoren
müssen
jedoch parallel arbeiten.
-
A.2 Beispiel
-
Als
ein Beispiel zeigt die nachfolgende Tabelle die einfache arithmetische
Operation für
einen Fall von 8 Klassen, bei dem die Summe der Klassen-Frequenzzuteilungen
gleich 0,9999 ist. Eine Klasse ist für Dienste auswählbar, wenn
das Integral (Summierung) ihrer normalisierten Abtastfrequenz Eins übersteigt.
Die Klassen werden in einer „Round
Robin" (zyklischen)
Weise aufgesucht, und die auswählbaren
Klassen werden durch einen Punkt in der Tabelle angezeigt.
-
-
A.3 Auflösung
-
Für eine präzise Abtastung
bei den erforderlichen Frequenzen kann die Summierung in den 6 und 7 in
einer Fließkomma-Arithmetik
realisiert werden. Wenn eine Ganzzahl-Summierung verwendet wird, muss
die Abtastfrequenz-Darstellung aufgerundet werden. Mit einer Wortlänge von
12 Bits oder dergleichen würde
die Überabtastung
aufgrund der Aufrundung vernachlässigbar
klein sein. Es kann sogar argumentiert werden, dass eine geringfügige Überabtastung
nützlich
ist.
-
In
idealer Weise würde
das Integrationsintervall die Zellenzeit sein, das heißt die normalisierte Dienst-Rate
pro Klasse (normalisierte Abtastfrequenz pro Klasse) wird innerhalb
jeder Zellenzeit addiert. Langsamere Addierer können dadurch verwendet werden,
dass das Integrationsintervall auf mehrfache Zellen-Zeiten vergrößert wird
und der Integrant entsprechend vergrößert wird. Wenn beispielsweise
die normalisierte Abtastfrequenz für eine vorgegebene Klasse 0,20
ist, und die Summierung innerhalb von jeweils vier Zellenzeiten ausgeführt wird,
so wird 0,80 anstelle von 0,20 hinzuaddiert. Die Verwendung einer
Aktualisierung mit großen Zeitintervallen
vergrößert den
Abtastintervall-Jitter-Effekt.
-
8 zeigt
den Abtastprozess mit einer schnellen Aktualisierung, bei der die
Aktualisierung bei jedem Zellenintervall erfolgt, und 9 zeigt
die Verwendung einer langsameren Aktualisierung, bei der die Summierung
mit der halben Rate durchgeführt
wird, das heißt
mit einem Intervall von jeweils zwei Zellen, jedoch mit der doppelten
Schrittweise pro Aktualisierung. Der vertikale Schritt ist die normalisierte
Abtastfrequenz in 8 und das Doppelte der normalisierten
Abtastfrequenz in 9. Der Klassen-Puffer kann jedesmal
dann abgetastet werden, wenn die Summierung Eins übersteigt.
Die Abtastung kann verzögert
werden, wenn zwei oder mehrere Klassen gleichzeitig für eine Abtastung
auswählbar
sind.
-
A.4 Zwei-Pegel-Implementation
-
Eine
Zwei-Pegel-Implementation, die eine gemeinsame Nutzung zwischen
Klassen, falls passend, ermöglicht,
kann wünschenswert
sein. Die nicht verwendeten Zeitschlitze in einer Einzelpegel-Steuerung
können gemeinsam
von anderen Klassen genutzt werden, die durch eine sekundäre Steuerung
gesteuert werden. Die unbenutzten Schlitze können diejenigen einschließen, die
zu einer Null-Klasse gehören.
Die gemeinsame Nutzung derartiger Schlitze kann durch eine Zwei-Pegel-Steuerung realisiert
werden, wie sie in 10 gezeigt ist. Wenn dies erwünscht ist,
können
die ungenutzten Schlitze einer vorgegebenen primären Klasse für eine andere
primäre
Klasse verfügbar
gemacht werden. Dies heißt
mit anderen Worten, dass eine primäre Klasse auch als eine sekundäre Klasse
erscheinen kann. Es ist jedoch hervorzuheben, dass eine Überabtastung
nicht für
verzögerungsempfindlichen
Verkehr verwendet werden sollte. 10 zeigt
vier primäre
Klassen, und der Ausgang der Abtasteinrichtung für jede primäre Klasse k wird einer UND-Verknüpfung mit
dem Zustand des Puffers Sk (0 oder 1) unterworfen,
um die Auswählbarkeit
für die
Abtastung zu bestimmen. Wenn keine der primären Klassen bereit ist, wird
der Schlitz den sekundären
Klassen geschenkt. Wenn eine primäre Klasse ein doppeltes Erscheinungsbild
hat, das heißt
wenn sie auch als eine sekundäre
Klasse erscheint, so kann sie immer noch während der Zeitschlitze mit
Diensten versorgt werden, in denen sie nicht für einen Dienst als eine primäre Klasse
auswählbar
ist.
-
A.5 Betriebsleistung
-
Der
Betriebsleistungs-Index der Steuerung kann als die Abweichung der
tatsächlichen
Abtastfrequenz von der erforderlichen Abtastfrequenz definiert werden.
Zwei Messungen sind von Interesse: der Koeffizient der Änderung
des Abtastintervalls und der absolute Wert der maximalen Abweichung
des Abtastintervalls. Die Betriebsleistung wird geringfügig durch
die Mechanismen beeinflusst, die zur Versorgung der auswählbaren Klassen
mit Diensten verwendet werden. In 7 wird jedesmal
dann, wenn eine auswählbare
Klasse aufgefunden wird, sie in die gezeigte „Bereitschafts-Warteschlange" eingeführt, die
entsprechend einer FIFO-Disziplin mit Diensten versorgt wird. Eine
Alternative zur Warteschlangenbildung besteht in dem Erfassen und
Versorgen von Diensten für
die auswählbaren
Klassen unter Verwendung einer fairen Kombinationsschaltung.
-
Die 11 und 12 zeigen
die Betriebsleistungs-Indizes für
einen Fall von 32 Klassen, bei dem die Summe der normalisierten
Abtastfrequenz-Zuteilungen 0,99 ist (das heißt die Verbindungsstrecken-Belegung ist
0,99). 11 zeigt den Koeffizienten der
Variation der Dienste-Period (Abtastintervall) bei voller Belegung, und 12 zeigt
die maximale Abweichung der Dienst-Periode (Abtastintervall) bei
voller Belegung. 13 zeigt den Koeffizienten der
Variation der Dienst-Periode
(Abtastintervall) bei einer Belegung von 50%, und 14 zeigt
die maximale Abweichung der Dienste-Periode (Abtastintervall) bei
einer Belegung von 50%. Die Abtastintervall-Abweichung nimmt von
Natur aus ab, wenn die Verbindungsstrecken-Belegung abnimmt. Das Jitter-Betriebsverhalten
verbessert sich, wenn das Abtastintervall ansteigt. Es sei weiterhin
bemerkt, dass sich die Betriebsleistung verbessert, wenn die Gesamtzahl
der Klassen abnimmt.
-
Um
die Auswirkung einer langsameren Aktualisierung auf die Betriebsleistung
zu studieren, wurde eine 32-Klassen-Steuerung, die bei einer Belegung
von 0,99 arbeitet, mit den Aktualisierungsintervallen von 1, 2,
4 und 8 Zellenzeiten simuliert. Der Koeffizient der Änderung
oder Variation und die relative maximale Abweichung des Abtastintervalls
sind in den 15 bzw. 16 gezeigt. 15 zeigt
die Abhängigkeit
des Koeffizienten der Änderung
des Abtastintervalls von dem Aktualisierungsintervall, und 16 zeigt
die Wirkung des Aktualisierungsintervalls auf die maximale Abweichung
des Abtastintervalls. Es scheint, dass eine Vergrößerung des
Aktualisierungsintervalls um einen Faktor von 4 oder weniger wenig
Auswirkung auf die Betriebsleistung hat.
-
Steuerung B: parallele
Zeitdomänen-Steuerung
-
B.1 Zugrundeliegende Prinzipien
-
Die
grundlegenden Konzepte der Zeitdomänen-Steuerung sind wie folgt:
die Steuerung versucht, die erforderlichen Abtastzeitpunkte der
betrachteten Verkehrsströme
nachzuführen.
In einer einfachen Implementation für eine einzige Klasse wird
der Akkumulator mit dem Abtastintervall Δ initialisiert. Wenn die Taktzeit gleich
dem Inhalt des Akkumulators ist, wird eine Abtastgenehmigung abgegeben,
und der Wert Δ wird
zu dem Akkumulator-Inhalt hinzuaddiert. In 17, die
eine Einzelklassen-Steuerung (Abtasteinrichtung) zeigt, wird, wenn
das Ergebnis des Vergleichers 1 ist, der Akkumulator freigegeben
und die Anzahl der mit Diensten zu versorgenden Zellen wird um 1
vergrößert. Wenn
der Klassen-Puffer leer ist, wird die Anzahl der mit Diensten zu
versorgenden Zellen auf Null reduziert. Um die Genauigkeit aufrechtzuerhalten
sollte der Wert Δ durch
eine ausreichend große
Wortlänge
dargestellt werden. Der Zeitzähler
kann jedoch eine kleinere Anzahl von Bits verwenden. 17 zeigt
eine Ausführungsform,
bei der ein 6-Bit-Zähler
und eine 9-Bit-Wortlänge
für das
Abtastintetvall Δ gezeigt
sind. Es seien W und w die Wortlängen
(Bits) des Abtastintervalls bzw. des Zeitzählers. Der Vergleicher würde die
w höchstbewerteten
Bits des W-Bit breiten Akkumulator-Inhaltes verwenden. Das System
arbeitet immer mit einer unendlichen Wortlänge. Mit der endlichen Wortlänge des
Akkumulators und des Zeitzählers
muss die Periode H des (zyklischen) Zeitzählers das Abtastintervall Δ übersteigen,
da anderenfalls der Ausgang des Vergleichers immer Null sein würde. Wenn
der nicht-leere Klassen-Puffer
abgetastet wird, wird die Anzahl von mit Diensten zu versorgenden
Zellen um 1 reduziert.
-
18 zeigt
die Betriebsweise einer Einzelklassen-Abtasteinrichtung mit eine
unendliche Wortlänge aufweisenden
Zeitzählern. 19 zeigt
die Wirkung der endlichen Wortlänge,
und 20 zeigt die Wirkung einer kürzeren Wortlänge. Die
Klasse wird so lange richtig abgetastet, wie H > Δ ist,
worin die Wortlänge
log2H Bits ist. 21 zeigt
den Fall einer unzureichenden Wortlänge, wenn H < Δ ist, wobei
die Abtasteinrichtung aufhört,
zu arbeiten. Der Wert von H muss größer als das größte erwartete
Abtastintervall sein. Beispielsweise kann ein 10-Bit-Addierer Abtastintervalle
von weniger als 1024 Zeitschlitzen (Zellenzeiten) abwickeln. Es
ist wichtig, festzustellen, dass die Anzahl von Bits in der zyklischen
Zeitdarstellung dem Quantisierungsfehler (das heißt den Fehler
bei der Darstellung der erforderlichen Abtastrate) bestimmt, während die
Anzahl der Bits in dem Vergleicher den Abtastbereich bestimmt, das
heißt
das maximal zulässige
Abtastintervall.
-
B.2 Beispiel
-
Als
ein Beispiel sei der Fall betrachtet, bei dem das Abtastintervall
einer vorgegebenen Klasse 2,38 Zeitschlitze (Zellenzeiten oder Zellendauern)
ist, was durch eine reelle Zahl dargestellt ist. 22 zeigt
den erforderlichen Abtastzeitpunkt T (in einer Fließkomma-Darstellung)
in der oberen Reihe, und vergleicht sie mit der ganzzahligen Taktzeit
in der mittleren Reihe. Die Zeitpunkte, zu denen der ganzzahlige
Teil von T gleich der Taktzeit ist, sind die Kandidaten-Abtastzeitpunkte,
und sie sind durch die schraffierten Schlitze in der unteren Reihe
angezeigt. Ein gewisser Jitter-Effekt wird in dem Prozess aufgrund
der diskreten Zeit-Betriebsweise und der endlichen Wortlänge erzeugt.
Dieser Jitter-Effekt ist jedoch typischerweise im Vergleich mit
dem Jitter-Effekt vernachlässigbar,
der durch das Zusammenfallen von Mehrklassen-Abtastzeitpunkten hervorgerufen
wird. Es sei bemerkt, dass der Jitter-Effekt aufgrund des diskreten
Zeit-Betriebs allen Dienst-Raten-Steuerungen gemeinsam ist, wenn
das gewünschte
Abtastintervall kein ganzzahliges Vielfaches der Zellenzeit ist.
-
B.3 Auflösung: Beispiel
eines 3-Bit-Zähler-6-Bit-Addierers
-
Als
ein Beispiel des Jitter-Effekts, der sich aus einer endlichen Wortlänge ergibt,
zeigt 23 den Fall, wenn der Akkumulator
auf 6 Bit genau ist (W = 6), während
der Zeitzähler
auf 3 Bit genau ist (w = 3). Die Abtastzeitpunkte sind mit fetten Buchstaben
in der ersten Spalte gezeigt. Der Zyklus H = 23 ist
größer als
die Abtastperiode Δ =
2,38. Die horizontalen Linien in 23 zeigen
die Abtastzeitpunkte an. Die erste Spalte in der Tabelle zeigt die
diskrete Zeit an, die zweite Spalte zeigt die zyklische Zeit an;
und die 6 Bit-Zahlen stellen die erforderlichen Abtastzeitpunkte
dar. Bei Skalierung durch einen Faktor von 8 ist der Wert von Δ (2,38) durch 19
dargestellt (binär
010011). Dies führt
zu einer Überabtastung
um einen Faktor von (8 × 2,38/19) – 1 = 0,002. Die Überabtastung
kann durch die Verwendung von mehr Bits für die Zeitdarstellung reduziert
werden, beispielsweise von 12 Bits anstelle von 6.
-
B.4 Parallele Abtasteinrichtung
-
24 zeigt
eine Anzahl von Abtasteinrichtungen, die parallel und unabhängig voneinander
arbeiten. Ein zyklischer oder „Round
Robin"-Wähler kann
zur Auswahl der nächsten
Klasse verwendet werden, die für einen
Dienst bereit ist. Alternativ kann eine FIFO-Warteschlange zum Speichern
der Nummern der aktiven Klassen verwendet werden, die für einen
Dienst auswählbar
sind.
-
Es
sein bemerkt, dass während
irgendeines Zeitschlitzes zwei oder mehr Klassen für einen
Dienst auswählbar
sein können.
Diese Struktur ist sehr einfach, schnell und robust, doch ist sie
lediglich für
eine mittlere Anzahl von Klassen (beispielsweise 32) geeignet.
-
B.5 Jitter-Effekt bei
paralleler Abtasteinrichtung
-
Der
Abtast-Jitter-Effekt für
eine Einzelklassen-Steuerung wurde vorstehend beschrieben. Bei einer Mehrklassen-Abtastung
wird ein Jitter-Effekt auch bei dem Klassen-Auswahlprozess erzeugt,
wenn mehrfache Klassen für
einen Dienst während
eines Zeitschlitzes bereit sind. 25 zeigt
eine parallele Abtasteinrichtung (ein x bezeichnet unbenutzte Zeitschlitze).
In 25 sind vier Klassen in der gezeigten Weise abzutasten,
und die Multiplexierung in dem zusammengesetzten Datenstrom führt zu einem
zusätzlichen
Jitter-Effekt. Der Gesamt-Jitter-Effekt ist jedoch vernachlässigbar
klein. 26 zeigt den Jitter-Effekt, der in den
einzelnen Klassen auftritt.
-
B.6 Zwei-Pegel-Implementierung
-
Eine
Zwei-Pegel-Implementierung einer Typ-B-Steuerung, ähnlich zu
der der Steuerung A, kann so verwendet werden, wie dies in 27 gezeigt
ist.
-
B.7 Betriebsleistung
-
Eine
32-Klassen-Steuerung wurde über
107 Zeitschlitze (ein Zeitschlitz ist die
Zellendauer) simuliert. Die Abtastintervalle wurden zufällig ausgewählt und
normalisiert, so dass sich eine vorgegebene Belegung ergab. 28 und 29 zeigen
den Koeffizienten der Änderung
bzw. die maximale Abweichung des tatsächlichen Abtastintervalls für den Fall
einer vollständigen
Belegung. 30 zeigt den Dienstperioden-Koeffizienten
der Änderung
bei 50% Belegung, und 31 zeigt die maximale Abtastintervall-Abweichung
bei 50% Belegung. Der Jitter-Effekt
ist klein, wie dies erwartet wird. Es sei bemerkt, dass der Verbindungsstrecken-Abschnitt,
der ausschließlich
für den
Klassen-gesteuerten Verkehr bestimmt ist, wahrscheinlich beträchtlich
kleiner als Eins ist (beispielsweise 0,5).
-
Steuerung C: serielle
Zeitdomänen-Steuerung
-
C.1 Zugrundeliegende Prinzipien
-
Die
grundlegende Betriebsweise dieser Steuerung wird als erstes erläutert. Das
serielle Gegenstück der
Typ-B-Steuerung würde
grundlegend als eine einzige Zeit-Raum-Abbildung oder Umsetzung implementiert,
bei der eine neue Adresse für
eine vorgegebene Klasse durch Addieren des Abtastintervalls der
Klasse zu der derzeitigen Adresse bestimmt wird. Die Abbildung wird
sequenziell abgetastet, und die Adressen-Aktualisierung erfolgt
unabhängig
davon, ob die Klasse aktiv ist oder nicht. Mit willkürlichen
Abtastintervallen für
die unterschiedlichen Klassen kann eine neue Adresse mit einer bereits
reservierten Adresse kollidieren. Die Abbildung kann dann abgetastet
werden, bis eine freie Adresse gefunden wird. Dies kann zu einer
Raum-Überlastung
mit einer langen Folge von aufeinanderfolgenden belegten Adressen
führen,
wenn die Anzahl der Klassen groß ist.
Die Anhäufung
von belegten Adressen in einem seriellen Abbildungssystem ist in 32 gezeigt, in
der die derzeitige Klasse durch Addieren des Abtastintervalls L
aktualisiert wird. Es ist nicht nur der Ziel-Raum belegt, sondern
nahegelegene Räume
sind ebenfalls besetzt. Dies führt
zu zwei Schwierigkeiten: der Verzögerungs-Jitter-Effekt würde zu groß sein,
und der Abtastaufwand pro Transaktion kann zu hoch sein, um innerhalb
eines Zeitschlitzes verwirklicht zu werden.
-
In 32 gibt
es eine Eins-zu-Eins-Entsprechung zwischen den Zeitschlitzen und
dem Speicherplatz. Die Raum-Überlastung
kann dadurch vermieden werden, dass ein tieferer Speicher (größere Abbildung
verwendet wird und das Abtastintervall entsprechend skaliert wird,
das heißt
die Raum-Zeit-Abbildung wird gedehnt. Beispielsweise würde eine
Verdoppelung der Abbildungs-Speichergröße erfordern, dass ein Abtastintervall
von 8,24 Zeitschlitzen auf 16,48 Adressenschlitze gedehnt wird.
Dies ist in 33 gezeigt, in der ein Dehnungsfaktor
von 2 verwendet wird. Es sei bemerkt, dass die Dehnung der Zeit-Raum-Abbildung
um einen ganzzahligen Dehnungsfaktor N, der größer als Eins ist, zu einer
Verringerung der räumlichen
Belegung des Abbildungsspeichers um den gleichen Faktor N führt, wodurch
die Betriebsleistung verbessert wird.
-
C.2 Implementierungs-Überblick
-
Das
Schema kann entsprechend der folgenden Hauptschritte implementiert
werden:
- – ein
Klassen-Daten-Speicher speichert das erforderliche Klassen-Abtastintervall Δ und die
kumulative Abtastzeit T für
jede Klasse (Speicherbreite hängt
von der erforderlichen Auflösung
ab);
- – ein
Speicher für
bereite Klassen (der nachfolgend als Speicher A bezeichnet wird)
speichert Klassennummern; die Speicherbreite ist log2 (aufgerundet)
der höchsten
Nummer von Klassen;
- – ein
Dienstestatus-Speicher (der nachfolgend als Speicher B bezeichnet
wird) speichert den Besetzt/Leerlauf-Zustand des Speichers A (der
Speicher B ist 1 Bit breit);
- – ein
Addierer arbeitet parallel zur Speicherabtastoperation, um den Wert
von T zu aktualisieren; und
- – eine
auferlegte Abtastgrenze vereinfacht die Zeitsteuerung.
-
Die 34 und 35 zeigen
zwei aufeinanderfolgende Schritte der seriellen Nachführoperation.
Für jede
der K > 0 Klassen
speichert der Klassen-Daten-Speicher
die Abtastperiode D, wie sie durch den Verbindungs-Zulassungssteuerungs-
(CAC-) Prozess bestimmt wird, und die nächste Abtast- Adresse T. Der Speicher
A speichert die Nummern der mit Diensten zu versorgenden Klassen,
während
jede Adresse abgetastet wird. Beispielsweise sollte für 64000
Klassen der Speicher A 16 Bit breit sein. Der Inhalt des Speichers
B (1 Bit breit) zeigt an, ob die entsprechende Adresse im Speicher
A belegt ist oder nicht. Wenn der Speicher B anzeigt, dass die Klasse
für einen
Dienst an einem vorgegebenen Schlitz verlegt ist, wird die nächste Adresse aus
dem Klassen-Daten-Speicher
gelesen, und die nächste
Adresse wird in dem Klassen-Daten-Speicher aktualisiert. Der Speicher
B ist nicht wesentlich, und er wurde lediglich eingeführt, um
eine Entkopplung der Schritte zu ermöglichen, die einen Zugriff
auf den Speicher A erfordern, und damit bei der Beschleunigung der Raten-Steuerfunktion.
-
Die
Abhängigkeit
jedes Schrittes von seinen vorhergehenden Schritten erfordert, dass
Mechanismen zur Überprüfung des
einwandfreien Zustands und Fehler-Erholungsmechanismen vorgesehen werden.
Dies wird mit einigen Einzelheiten weiter unten erläutert.
-
In 34 zeigte
am Schlitz 8088 der Speicher B an, dass es einen Eintrag in dem
Speicher A gibt, und der Inhalt des Speichers A an der Adresse 8088
zeigte an, dass die Klasse 1 für
Dienste auswählbar
ist. Die nachfolgende Abtastzeit der Klasse 1 wird aus dem Klassen-Daten-Speicher
gelesen und es wird festgestellt, dass sie 8119 ist. Der Speicher
B wird dann nach einem freien Eintrag (ein Eintrag, der 0 enthält) beginnend
mit der Adresse 8119 durchsucht. Die nächste Leerstelle fand sich
an der Adresse 8120. Die Klassennummer (1 in diesem Fall) wird dann
an der Adresse 8120 des Speichers A gespeichert. Die nächste Abtastzeit der
Klasse 1 wird als 8119 + 33 berechnet, und die Zahl 8152 wird in
dem T-Feld der Klasse-1-Daten
gespeichert (wodurch der vorhergehende Wert von 8119 ersetzt wird).
-
In 35 ist
die folgende Belegt-Adresse im Speicher B gleich 8095, und der Speicher
A an dieser Adresse zeigt an, dass die Klasse 0 für einen
Dienst auswählbar
ist. Die Abtastperiode der Klasse 0 ist 20, und der nächste Abtastzeitpunkt
entspricht der Adresse 8114. Hier ist zufällig die Adresse 8114 frei.
Der Speicher B wird als Adresse 8114 markiert, und die Klassennummer
(0) wird im Speicher A an der Adresse 8114 gespeichert. Die nächste Abtastzeit
der Klasse 0 wird als 8114 + 20 berechnet, und die Zahl 8134 wird
in dem T-Feld der Klasse 0 gespeichert (und ersetzt den vorhergehenden
Wert von 8114).
-
36 zeigt
einen Fall, bei dem die Abtastperiode einer Klasse sehr klein ist.
Wenn der Speicher A und der Speicher B unabhängig abgetastet werden, kann
der Lesezeiger des Speichers B zu einer belegten Adresse fortschreiten,
bevor die Schreibadresse des Speichers B (oder A) durch die gerade
ablaufende Transaktion bestimmt wird. Dies würde auftreten, wenn die Abtastperiode
der vorher angetroffenen Klasse klein ist. Um dieses Problem zu
lösen,
sollte die Leseadresse des Speichers B mit der Schreibadresse des
Speichers A ausgerichtet werden, wenn der letztere kleiner ist (unter
Berücksichtigung
der kreisförmigen
Abtastung der Speicher A und B).
-
37 zeigt
die Operationen, die im Speicher B, im Speicher A, dem Klassen-Daten-Speicher Q
und dem Addierer ablaufen. Es gibt vier grundlegende Operationen:
Abtasten des Speichers B zum Suchen nach einer Marke (einem einzelnen
Bit, das auf 1 gesetzt ist), Lesen der Klassennummer von dem Speicher
A, Lesen der Klassen-Daten aus dem Klassen-Daten-Speicher Q, um
die gewünschte
Schreibadresse im Speicher A zu erhalten, Addieren, um die Schreibadresse
für die
nächste
Zelle der gleichen Klasse zu bestimmen, und Abtasten des Speichers
B zum Auffinden der nächsten
freien Speicheradresse nach der gewünschten Schreibadresse. Diese
Operationen würden
koordiniert, um die Gesamt-Verarbeitungszeit pro Zelle zu verringern.
-
C.3 Implementierungs-Einzelheiten
-
Ein Überblick über ein
Implementierungs-Schema einer Typ-C-Steuerung wird in 38 gegeben.
Der Klassen-Daten-Speicher wird mit jeder neuen Klasse und jedem
Abgang einer Klasse aktualisiert. Wie dies weiter oben erwähnt wurde,
kann eine Klasse eine Verbindung enthalten, oder sie kann zwei oder
mehr Verbindungen enthalten. Es gibt zwei Felder in dem Klassen-Daten-Speicher:
die Abtastperiode Δ und
die nächste Abtastzeit
T (die Adresse des Speichers A für
die Klasse). Den Klassen werden serielle Nummern von 0 bis K-1 zugeordnet,
worin K die Gesamtzahl von Klassen ist. Eine neue Klasse wird wie
folgt registriert:
- (1) speichere ihre Abtastperiode
in dem Δ-Feld
in dem Klassen-Daten-Speicher;
- (2) ordne einen willkürlichen
Zeitpunkt für
deren erste Dienste-Zeit in dem T-Feld zu; eine gute Auswahl würde die
derzeitige Adresse plus dem Abtastintervall sein; und
- (3) ordne die Anforderung in einer Warteschlange in dem Zugangspuffer
für frische
Klassen ein, wobei die der in der Warteschlange angeordneten Anforderung
zugeordnete Information die Klassennummer Cf einschließt. Wenn
eine freie Adresse in dem Speicher B gefunden wird, wird die Klassennummer
Cf in der entsprechenden Adresse im Speicher
A gespeichert.
-
Die
Betriebsweise des Speichers A und des Speichers B ist so, wie dies
früher
beschrieben wurde. Zwischenzeitlich wird für eine im Ablauf befindliche
Klasse, wenn T (die nächste
Abtastzeit ist gleich der derzeitigen Adresse + Δ) für diese Klasse bestimmt wird,
die Zahl Cr in dem Speicher A an der nächsten freien Adresse
zu T gespeichert, und der Speicher B wird an dieser Adresse als
belegt markiert. Aufgrund des möglichen
Zusammentreffens von Registrierungsanforderungen, die einen Zugriff
auf den Speicher A (und B) versuchen, kann ein kleiner Sammelpuffer
(Erneuerungs-Haltepuffer) für
erneuerte Klassen vorgesehen sein. Es würde ausreichend sein, einen
Zugangspuffer nur für
frische oder neue Klassen zu haben, wenn zugelassen wird, dass eine
Zugangs-Transaktion ununterbrochen weiterläuft, bis eine Leerstelle im
Speicher B gefunden wird. Anderenfalls würde ein kleiner Erneuerungs-Haltepuffer
für die
erneute Registrierung von zugelassenen Klassen erforderlich sein.
Der 1:2-Wähler
gemäß 38 gibt
eine Priorität
an den Erneuerungs-Haltepuffer, um Verzögerungs-Jitter-Effekte für im Verlauf befindliche Klassen
zu vermeiden.
-
Zur
Ablaufsteuerung einer Klasse ist die Klassennummer und die nächste Adresse,
an der sie in der Zeit-Raum-Abbildung (Speicher A und B) registriert
werden kann, erforderlich. Eine neue Klasse kann an irgendeiner
Stelle registriert werden, und es muss lediglich die Klassennummer
bekannt sein. Neue Klassen, die von dem CAC-Prozess zugelassen werden, werden in
dem Zugangspuffer für
eine frische Klasse gespeichert. Wenn eine bereits im Ablauf befindliche
Klasse aus dem Speicher A gelesen wird, muss sie neu abgewickelt
werden, das heißt
neu in die Abbildung eingeführt
werden. Dies erfolgt durch Berechnen (einfache Addition) der nächstgelegenen
Abbildungs-Adresse, wie dies vorstehend beschrieben wurde, und Suchen
nach einem leeren Abbildungs-Schlitz in der Vorwärtsrichtung. Zwei Suchverfahren
können
implementiert werden. Das erste ist eine erschöpfende Suche, bei der der Speicher
B durchsucht wird, bis ein freier Schlitz gefunden wird. Das zweite
ist eine begrenzte Suche, bei der der Erneuerungs-Haltepuffer dazu verwendet
wird, die Klasse und die nächstgelegene
Adresse für
die mit Diensten versorgten Klassen zu speichern, wie dies in 39 gezeigt
ist. Der Suchaufwand würde
auf beispielsweise vier Schlitze beschränkt. Wenn kein freier Schlitz
gefunden wird, wird die Anforderung an das Ende des Erneuerungs-Haltepuffers
dadurch gesetzt, dass der Zeiger auf den nächsten Speicherplatz gesetzt
wird. Aufgrund der möglicherweise
großen
Variation der Suchzeit können
manche Neu-Abwicklungsanforderungen
unmittelbar berücksichtigt
werden, während
andere mehrere Versuche erfordern können. Bei einem passenden Erweiterungsfaktor
(2 oder mehr) ist der Suchaufwand vernachlässigbar, und die erste Lösung, die
einfacher als die zweite ist, kann übernommen werden.
-
Es
sei bemerkt, dass die Ankunfts-Rate von wiederabgewickelten Anforderungen
um Größenordnungen
höher sein
würde,
als die Ankunfts-Rate von neuen Klassenanforderungen. Den letzteren
sollte jedoch dennoch eine niedrigere Priorität in dem Abwicklungsprozess
gegeben werden.
-
Es
sei bemerkt, dass in der größten Mehrzahl
von Registrierungen (neu oder erneuert) ein leerer Schlitz innerhalb
einer sehr kurzen Periode gefunden wurde, wenn ein ganzzahliger
Zeit-Raum-Dehnungsfaktor von mehr als 1 verwendet wird. Wenn daher
der Suchaufwand auf vier Adressen pro Zeitschlitz beschränkt wurde,
so ist es plausibel, dass in den meisten Fällen mehr als eine wartende
Anforderung registriert würde. Um
diese Gelegenheit auszunutzen, kann ein kleiner regelnder Puffer
verwendet werden, wie dies in 40 gezeigt
ist, um mehr als eine Anforderung während eines Zeitschlitzes zu
registrieren. Gemäß 14 wird
an jedem Zeitschlitz der Suchzähler
auf eine voreingestellte Grenze (beispielsweise vier) initialisiert.
Das Durchsuchen des Speichers B zum Auffinden einer belegten Adresse
(das heißt
eine Adresse, die eine 1 speichert) wird fortgesetzt, solange wie:
- (i) die Suchzählung positiv ist; und
- (ii) die Anzahl von Einträgen
in dem Regelungspuffer unterhalb eines vorgegebenen Schwellenwertes
(von vier oder dergleichen) liegt.
-
Wenn
eine belegte Adresse in dem Speicher B gefunden wird, so wird die
entsprechende Klassennummer aus der gleichen Adresse in dem Speicher
A gelesen. Die Adresse und die Klassennummer werden in dem regelnden
Puffer gespeichert, wenn der Klassen-Zustands-Speicher (der in 40 nicht
gezeigt ist) anzeigt, dass der Klassen-Zellenpuffer zumindest eine
wartende Zelle hat. Wenn er nicht leer ist, wird der regelnde Puffer
bei jedem Zeitschlitz für
eine Diensteversorgung ausgespeichert. Zwei Posten an Information werden
aus dem regelnden Puffer ausgelesen: die Klassennummer K und deren
letzte Adresse α im
Speicher A (und B). Der Zellenpuffer der Klasse K speichert dann
eine Zelle aus, und die nächste
Adresse von K wird durch Addieren des Abtastintervalls der Klasse
K zu α bestimmt,
das heißt
durch Hinzufügen
des Perioden-Feldes Δ zu
dem T-Feld der Klasse K in dem Klassen-Daten-Speicher.
-
Es
sei bemerkt, dass der einzige Zweck des regelnden Puffers darin
besteht, den Suchaufwand zu regeln, der sich in weitem Umfang von
einem Schritt zu mehreren Schritten aufgrund der unregelmäßigen räumlichen
Verteilung der belegten Schlitze in dem Speicher B (und A) ändern kann.
-
C.4 Wartung und Zuverlässigkeit
-
In
jeder seriellen nachgeführten
Dienst-Raten-Steuerung würde
eine Klasse für
die Steuerung unsichtbar werden, wenn sie nur ein Abtastereignis
aufgrund von möglichen
Hardware-Fehlern verfehlt. In der Steuerung C kann eine Korrekturmaßnahme sehr
einfach wie folgt getroffen werden.
-
Wenn
eine Klassen-Warteschlange während
irgendeiner Zeitperiode nicht aufgesucht wird, die einen bestimmten
Schwellenwert übersteigt,
beispielsweise das Doppelte des bestimmten Abtast-Zeitintervalls,
so wird die Klasse als eine frische Klasse mit der gleichen Klassennummer
wieder eingesetzt. Eine fehlerhafte Wiedereinsetzung einer Klasse
führt dazu,
dass die Klasse mehr als einmal in dem Speicher A (und B) erscheint.
Dies kann jedoch kein Problem hervorrufen (abgesehen von einer geringen
Vergeudung an Speicher), weil die Abtastzeitpunkte auf dem Inhalt
des Klassen-Daten-Speichers beruhen, dem diese Duplizierung nicht bewusst
wird. Die Häufigkeit
der Dienste-Zustands-Überprüfung ist
willkürlich.
-
Wenn
eine Klasse beendet wurde, entfernt der Zugangs-Steuermechanismus
die Klassen-Daten aus dem Klassen-Daten-Speicher und unterlässt die
Neuzuordnung der gleichen Klassennummer zu einer neuen Anforderung
für eine
Zeitperiode, die größer als
ein vorher festgelegter Schwellenwert ist (beispielsweise das Doppelte
des Abtastintervalls der beendeten Klasse).
-
C.5 Betriebsleistung
-
Es
wurden Simulatoren entwickelt, um das Verhalten der vorgeschlagenen
Steuerungen isoliert zu studieren. Um die Wirksamkeit in der Host-Vermittlung
zu studieren, müssen
die Steuerungen in den Vermittlungs-Simulator eingefügt werden.
Zu diesem Zweck verwendeten wir einen Simulator für eine einstufige
Austrittsraten-gesteuerte Vermittlung mit gemeinsamem Speicher.
-
In
der Simulation werden Zellen von einer großen Anzahl von Klassen mit
unterschiedlichen Abtastintervallen erzeugt und gepuffert. Die Intervalle
werden so eingestellt, dass die Summe der Abtast-Raten (das Inverse
der Abtastintervalle) aller Klassen gleich der gemeinsamen Verbindungsstrecken-Rate
(normalisiert auf Eins) ist. Der Dienst wird durch die Steuerung
C gesteuert, und das Abtastintervall jeder Zelle wird aufgezeichnet.
Das Abtastintervall der Zelle ist die Differenz zwischen aufeinanderfolgenden
Zeiten der Ausreihung aus der Warteschlange. 41 zeigt
den Koeffizienten der Variation des Abtastintervalls als eine Funktion
des spezifizierten Abtastintervalls für den Fall von 128 Klassen
mit Abtastintervallen, die sich von 10 bis 100 ändern, wobei die zusammengesetzte
Last die volle Belastung der gemeinsamen Verbindungsstrecke darstellt. Es
ist zu erkennen, dass der Koeffizient der Variation abnimmt, wenn
das spezifizierte Abtastintervall ansteigt. Er ist immer noch annehmbar
klein bei niedrigen Werten des spezifizierten Abtastintervalls.
Die Differenz zwischen der Verwendung einer Erweiterung (Dehnung)
von zwei und vier ist vernachlässigbar.
Entsprechend sollte eine Erweiterung oder Dehnung von zwei ausreichend
sein. 42 zeigt die maximale Intervall-Abweichung
(gegenüber
dem mittleren Intervall) für
das gleiche Experiment.
-
Wenn
eine Steuerung vom Typ C zum Regeln eines Bruchteils der gesamten
Verkehrslast verwendet wird, verbessert sich das Jitter-Verhalten
von Natur aus aufgrund der niedrigeren Belegung der Zeit-Raum-Abbildung. 43 zeigt
den Abtastintervall-Koeffizienten der Variation bei einer Belegung
von 50%, und 44 zeigt die maximale Abtastintervall-Abweichung
bei einer Belegung von 50%. Das Betriebsverhalten ist gut, selbst
ohne die Zeit-Raum-Dehnung (das heißt mit einem Dehnungsfaktor
von 1).
-
Verbund-Steuerungen
-
Eine
Verbund-Steuerung wird als eine primäre Steuerung mit einer relativ
kleinen Anzahl von Klassen und einer Anzahl von untergeordneten
Steuerungen aufgebaut, von denen jede eine große Anzahl von einzelnen Klassen
regeln kann. Eine derartige Anordnung kann mehr Flexibilität ergeben,
als eine einzige Struktur-Steuerung.
In 45 regelt eine 16-Klassen-Steuerung die Dienst-Rate
für jede
Klasse entsprechend einer festen Zuteilungs-Richtlinie oder einer
garantierten minimalen Raten-Richtlinie. Für einige Klassen kann die Dienst-Rate
für ihre
einzelnen Klassen weiter geregelt werden. Eine Steuerung vom Typ
A oder Typ B kann als primäre
Steuerung aufgrund ihrer Einfachheit dienen.
-
46 zeigt
eine schematische Ansicht einer Verbund-Steuerung, die von einer
16-Klassen-Steuerung vom Typ A oder Typ B angesteuert wird. Einige
Klassen werden direkt abgetastet, wie z.B. die CBR- und VBR-Klassen.
Andere Klassen, wie z.B. die Klasse 15, werden von einer Steuerung
vom Typ C mit Diensten versorgt, die die einzelnen Verbindungen
innerhalb der Klasse unterscheidet. Der Puffer in 46 speichert die
Nummern der für
einen Dienst auswählbaren
Klassen (typischerweise ein einzelner Eintrag an irgendeinem Zeitschlitz).
Der Klassen-Zustands-Anzeiger ermöglicht es dem Wähler, den
Zeitschlitz einer abwechselnden Bereitschafts-Klasse zuzuteilen,
wenn die auswählbare
Klasse keine wartenden Zellen hat. Die alternative Klasse würde typischerweise
verzögerungsunempfindlichem
Verkehr zugeordnet.
-
Anwendungen
-
In
einem ATM-Vermittlungsknoten mit großen Abmessungen wird eine Ratensteuerung
auf der Klassen-Ebene innerhalb des Kerns benötigt, und die Steuerung auf
der Verbindungs-Ebene ist in der Peripherie erforderlich. Die Steuerung
auf der Klassen-Ebene hat strenge Geschwindigkeitsanforderungen,
die mit den Steuerungen A und B realisiert werden können. Die
Steuerung auf der Verbindungs-Ebene hat einen hohen Kapazitätsbedarf,
der mit einer Steuerung C realisiert werden kann.
-
Das
Folgende ist eine Zusammenfassung der unterschiedlichen Arten von
Steuerungen:
Steuerung A, die eine Frequenzdomänen-Steuerung
unter Verwendung einer parallelen Integration ist;
Steuerung
B, die eine Zeitdomänen-Steuerung
unter Verwendung einer parallelen Nachführung ist; und
Steuerung
C, die eine Zeitdomänen-Steuerung
unter Verwendung einer seriellen Nachführung ist.
-
Die
Steuerung C ist eine serielle Implementierung der Steuerung B unter
Verwendung einer Zeit-Raum-Abbildungs-Lösung.
-
Ein
qualitativer Vergleich der vorstehenden Steuerungen ist in der nachfolgenden
Tabelle angegeben (in der Tabelle sind die Steuerungen mit A, B
und C aus Gründen
der Klarheit bezeichnet):