-
Technisches
Gebiet
-
Die vorliegende Erfindung betrifft
im Allgemeinen Datenkommunikationsnetzwerke und genauer Übertragungsraten-Steuermechanismen
zur Verwendung bei asynchronen Übertragungsmodus-Netzwerken.
-
Hintergrund
der Erfindung
-
Der asynchrone Übertragungsmodus bzw. „Asynchronous
Transfer Mode" („ATM") stellt eine aufstrebende
Packetschalt-Netzwerktechnologie dar, die gestaltet ist, um einen
Dienst für
eine breite Vielfalt von Anwendungen, wie beispielsweise Sprache, Video
und Daten bereitzustellen. ATM, das ursprünglich für eine Verwendung in einem
digitalen Breitbandnetzwerk mit integrierten Diensten bzw. „Broadbank
Integrated Services Digital Network" („B-ISDN") von dem International
Telegraph und Telephone Consultative Committee („CCITT"), nun neu organisiert als der Telecommunications
Standardization Sector der International Telecommunication Union
(„ITU-T"), vorgeschlagen
wurde, bewegt sich gegenwärtig
jenseits des Szenarios der weiträumigen
Netze in die Arena der privaten Netze als eine Plattform für lokale Datennetze
(„LANs") mit Multimediafähigkeiten.
ATM ist in der Fachwelt gut bekannt und wird bei verschiedenen Referenzen
beschrieben. Zum Beispiel Martin de Prycker, Asynchronous Transfer
Mode: Solution for Broadband ISDN (zweite Ausgabe, Ellis Horwood Ltd.,
West Sussex, England, 1993).
-
Bei einem ATM-Netzwerk, wie es durch
die CCITT-Standards definiert ist, wird Information in Paketen einer
festen Größe getragen,
die für
B-ISDN als 53 Bytes oder Oktetts, genannt Zellen, spezifiziert wird.
Diese Zellen werden individuell durch Adressierinformationen markiert,
die in den ersten fünf
Bytes (Oktetts) einer jeden Zelle enthalten sind. Obwohl ATM sich
aus Zeitunterteilungs-Multiplex- bzw. „Time Devision Multiplexing"-Konzepten entwickelt
hat, sind Zellen von mehreren Quellen statistisch in einer einzigen Übertragungsanlage
gemultiplext. Zellen werden durch den Inhalt ihrer Köpfe eher
identifiziert als durch ihre Zeitposition in dem Multiplexstrom. Eine
einzige ATM-Übertragungsanlage
kann hundertausende von ATM-Zellen pro Sekunde tragen bzw. übertragen,
die von einer Vielzahl von Quellen stammen und die zu einer Vielzahl
von Zielen wandern.
-
ATM ist eine verbindungsorientierte
Technologie. Anstatt die Zellen über
einen gemeinsam genutzten Draht oder eine gemeinsam genutzte Glasfaser
für alle
Netzwerkteilnehmer, die empfangen, zu senden wird lieber ein spezieller
Leitweg-Pfad bzw. Routing-Pfad, der als virtuelle Schaltung bezeichnet wird,
zwischen zwei Endknoten errichtet, bevor irgendwelche Daten übertragen
werden. Zellen, die mit einer bestimmten virtuellen Schaltung identifiziert werden,
werden nur zu jenen Knoten auf jener virtuellen Schaltung geliefert.
-
Die Haupttrasse bzw. der Backbone
eines ATM-Netzwerkes besteht aus Schaltvorrichtungen, die dazu in
der Lage sind, Hochgeschwindigkeits-ATM-Zellenströme handzuhaben.
Die Schaltkomponenten dieser Vorrichtungen, die allgemein als Schaltstruktur
bezeichnet werden, führen
die Schaltfunktion aus, die notwendig ist, um eine virtuelle Schaltung
zu realisieren, indem ATM-Zellen von einem Eingangsport empfangen
werden, wobei die Information in dem Kopf der hereinkommenden Zellen in
Echtzeit analysiert wird und sie zu dem geeigneten Zilport weitergeleitet
werden. Millionen von Zellen pro Sekunde müssen durch eine einzige Vorrichtung
geschaltet werden.
-
Wichtig ist, dass dieses verbindungsorientierte
Schema es erlaubt, dass ein ATM-Netzwerk den minimalen Bandbreitenumfang
garantiert, der von jeder Verbindung benötigt wird. Derartige Garantien
werden gemacht, wenn die Verbindung errichtet wird. Wenn eine Verbindung
angefordert wird, wird eine Analyse bestehender Verbindungen durchgeführt, um
zu bestimmen, ob genug Gesamtbandbreite innerhalb des Netzwerks
verbleibt, um der neuen Verbindung mit ihrer geforderten Kapazität zu dienen.
Falls die notwendige Bandbreite nicht verfügbar ist, wird die Verbindung
zurückgewiesen.
-
Um eine wirksame Nutzung von Netzwerkressourcen
zu erzielen, wird eine Bandbreite eingerichteten Verbindungen zugewiesen,
und zwar gemäß einem
statistischen Multiplexsche ma. Deshalb können Stau-Zustände gelegentlich
innerhalb des ATM-Netzwerks auftreten, was zu einer Verzögerung bei
der Zellenübertragung
oder sogar zu einem Zellenverlust führen kann. Um zu gewährleisten,
dass die Last eines Netzwerkstaus jenen Verbindungen auferlegt wird,
die am fähigsten
sind, diese handzuhaben, bietet das mehrere bzw. eine Vielzahl von Dienstklassen
an. Diese Dienstklassen unterstützen verschiedene
Formen des Verkehrs, die unterschiedliche Niveaus von Zellenverlustwahrscheinlichkeit, Übertragungsverzögerung und Übertragungsverzögerungsvarianz,
im Allgemeinen als Verzögerungs-Jitter
bekannt, erfordern. Es ist beispielsweise bekannt, dass viele Multimediaverbindungen,
z. B. Videoströme
relativ große
Zellenverluste tolerieren können,
aber sehr empfindlich bezüglich
Verzögerungs-Variationen
von einer Zelle zu der nächsten sind.
Im Gegensatz dazu sind traditionelle Formen des Datenverkehrs toleranter
gegenüber
großen Übertragungsverzögerungen
und Verzögerungsvarianz,
erfordern aber sehr geringe Zellenverluste. Diese Variation bei
den Anforderungen kann ausgebeutet werden, um die Netzwerkleistungsfähigkeit
zu erhöhen.
-
Das ATM-Forum, eine Organisation
von Netzwerk-Anbietern, hat vier dieser Dienstklassen oder Typen
virtueller Schaltungen standardisiert: Schaltungen mit konstanter
Bitrate („CBR"), Schaltungen mit
variabler Bitrate („VBR"), Schaltungen mit verfügbarer Bitrate
(„ABR") und Schaltungen
mit unspezifizierter Bitrate („UBR"). Diese vier Kategorien definieren
die Qualitäten
von Diensten, die bei einer bestimmten Verbindung zur Verfügung stehen
und werden ausgewählt,
wenn eine Verbindung aufgebaut wird.
-
Eine virtuelle CBR-Schaltung wird
eine permanente Zuweisung einer Bandbreite entlang ihrem gesamten
Pfad gewährt.
Für den
Sender ist gewährleistet,
dass ein präzises
Zeitintervall oder eine fest Rate, Daten zu senden, gegeben ist,
das bzw. die der benötigten
Bandbreite entspricht, und das Netzwerk garantiert, diese Daten
mit einer minimalen Verzögerung
und Verzögerungs-Jitter
zu übertragen.
Eine CBR-Schaltung ist für
einen Echtzeitvideo und für Audio-Multimediaströme am Besten
geeignet, die einen Netzwerkdienst erfordern, der jenem äquivalent ist,
der durch ein synchrones Übertragungsnetzwerk bereitgestellt
wird. Aus der Perspektive der Quelle und des Ziels muss es so erscheinen,
als ob ein virtuelles Teil eines Drahts zwischen den zwei Punkten existiert.
Dies erfordert, dass die Übertragung
einer jeden Zelle, die zu diesem Datenstrom gehört, zu präzisen Intervallen auftritt.
-
Eine virtuelle VBR-Schaltung wird
anfänglich mit
einer mittleren Bandbreite und einer Spitzen-Zellrate spezifiziert.
Dieser Typ der Schaltung ist für
einen fortlaufenden Verkehr mit hoher Priorität geeignet, der eine gewisse
Bursthaftigkeit enthält,
wie z. B. ein komprimierter Videostrom. Das Netzwerk kann diese
Verbindungen unter der Annahme „überbuchen", dass nicht alle VBR-Schaltungen einen
Verkehr mit einer Spitzen-Zellrate simultan handhaben werden. Obwohl
jedoch die Übertragungsrate
variieren kann, erfordern Anwendungen, die einen VBR-Dienst verwenden,
häufig
eine geringe Verzögerung
oder einen Verzögerungs-Jitter.
-
Eine virtuelle ABR-Schaltung, die
manchmal als ein verbindungsorientierter Datenverkehr bezeichnet
wird, ist für
Netzwerkverbindungen mit ungewissen Anforderungen bezüglich Durchsatz
und Verzögerung
geeignet, wie beispielsweise ein allgemeiner Datenverkehr. Gegenwärtig werden ABR-Schaltungen
mit einem Bandbreitenbereich spezifiziert, der durch eine minimale
Bandbreite und eine maximale Bandbreite definiert ist. Es wird überlegt,
dass die tatsächliche Übertragungsbandbreite innerhalb
dieses Bereichs dynamisch mit dem Netzwerk verhandelt wird, wobei
eine gewisse Art und Weise einer Ablauf- bzw. Flusssteuerung verwendet wird.
Siehe Flavio Bonomi und Kerry W. Fendick, „The Rate-Based Flow Control
Framework for the Available Bit Rate ATM Service", IEEE Network, März/April 1995, Seiten 25-39.
-
Eine virtuelle UBR-Schaltung, die
manchmal als verbindungsloser Datenverkehr bezeichnet wird, wird
für die
Datenübertragung
niedrigster Priorität verwendet;
sie hat keine spezifizierte zugeordnete Bandbreite. Der Sender kann
seine Daten so wie er es wünscht
senden, aber das Netzwerk gibt keine Garantie, dass die Daten am
Ziel innerhalb einer bestimmten Zeitvorgabe bzw. Zeitrahmens ankommen werden.
Dieser Dienst ist für
Anwendungen gedacht, die minimale Dienstanforderungen haben, z.
B. Dateiübertragungen,
die im Hintergrund einer Workstation erfolgen.
-
Ein bestimmter Endknoten auf dem
Netzwerk kann virtuelle Schaltungen dieser variierenden Klassen
haben, die zu irgendeiner Zeit offen sind. Die Netzwerkschnittstelle
am Endknoten wird mit der Aufgabe des Planens der Übertragung
von Zellen belastet, und zwar von einer jeden dieser virtuellen Schaltungen
in einer gewissen geordneten Art und Weise. Zumindest wird dies
eine Datenflussdosierung bzw. ein Pacing von Zellen von CBR-Schaltungen
mit einer festen Rate mit sich bringen, um eine virtuelle Synchron-Übertragung
zu erzielen. Zusätzlich
kann eine gewisse Art und Weise des Planens innerhalb gewisser oder
aller Schalter realisiert werden, die das ATM-Netzwerk bilden. Verbindungen, die
von ihrem idealen Übertragungsprofil
abgewichen sind, und zwar infolge von Anomalien in dem Netzwerk,
können
zu einer akzeptablen Dienstklasse zurückgeführt werden.
-
Wenigstens zwei Bedenken sind bei
dieser Planung impliziert. Erstens muss der CBR-Verkehr mit der notwendigen festen Rate
mit wenig oder keinem Verzögerungs-Jitter übertragen
werden. Zweitens sollte Idealerweise der VBR- und ABR-Verkehr in
einer Art und Weise übertragen
werden, die so nah wie möglich
an ihren definierten Übertragungsmustern
liegt und es sollte keiner Verbindung erlaubt sein, ihre zugewiesene
Bandbreite oder Spitzen-Zellrate zu überschreiten. Obwohl ATM-Netzwerke
andere Mechanismen zum Handhaben einer Stausteuerung besitzen, ist
das Haften an dem Verkehrs-Vertrag durch einen Quellenknoten ein
wichtiger Faktor bei der gesamten Netzwerkeffizienz. Siehe Dimitri
Bertsekas & Robert
Gallager, Data Networks, Seiten 138-39 (zweite Ausgabe, Prentice
Hall, Englewood Cliffs, New Jersey, 1992).
-
Systeme nach dem Stand der Technik
existieren, die die relativ einfache Aufgabe zum Planen eines CBR-Verkehrs
zur Übertragung
auf einem ATM-Netzwerk handhaben, aber diese Systeme führen typischerweise
kein Planen eines VBR- und ABR-Verkehrs durch. Beispielsweise offenbart
das US-Patent Nummer
5,390,184 für Morris
einen Planungsmechanismus zur Verwendung innerhalb eines ATM-Schalters.
Der CBR-Verkehr wird geplant, wobei eine zirkularer Puffer verwendet
wird, der Schlitze bzw. Fenster enthält, die der Zeit entsprechen,
eine einzige Zelle zu übertragen.
Anders als VBR- oder ABR-Schaltungen wird die Bandbreite und somit
das geeignete Zellen-Pacing bzw. die geeignete Zellen-Datenflussdosierung
von CBR-Schaltungen vordefiniert. Somit werden Schlitze bzw. Fenster
in dem zirkularen Puffer statisch reserviert, wenn eine CBR-Verbindung
etabliert ist.
-
Der Planer schreitet durch den zirkularen Puffer
voran, der CBR-Zellen überträgt, wenn
ein reservierter Schlitz detektiert wird. Ein Planen anderer Formen
von Verkehr wird nicht durchgeführt,
eher werden wartende VBR/ABR/UBR-Zellen während Zeitschlitzen bzw. Zeitfenstern
einfach übertragen, die
für den
CBR-Verkehr nicht zugewiesen sind. Systeme, wie z. B. diese erzielen
ein geeignetes Pacing bzw. eine geeignete Datenflussdosierung von
synchronen Datenströmen,
aber dienen nicht dazu VBR/ABR-Datenströme in Übereinstimmung mit verhandelten
Verkehrskontrakten bzw. Verkehrs-Verträgen aufrecht zu erhalten.
-
Das Fehlen eines Planungs-Mechanismus für VBR- und
ABR-Schaltungen innerhalb einer Endknoten-Netzwerkschnittstelle
liegt eine Last auf Anwendungen, Daten mit geeigneten Raten für die Netzwerkimplementation
zu erzeugen. Es Anwendungen abzuverlangen, ein Pacing bzw. eine
Datenflussdosierung von VBR/ABR-Strömen durchzuführen, kann
erlaubt sein, wenn derartige Anwendungen gestaltet werden, wobei
eine ATM-Netzwerkverbindung im Auge behalten wird. Jedoch sind derartige Lösungen zunehmend
inakzeptabel, wenn sich ATM in Richtung einer LAN-Anlage bewegt.
Anwendungen, die für
herkömmliche
LAN-Technologien
gestaltet sind, können
nicht in praktischer Weise so angepasst werden, dass Daten unter
definierten Pacing-Bedingungen erzeugt werden; bezüglich dieser Anwendungen
ist es eher wahrscheinlich, Daten zu übertragen, ohne Netzwerk-Staubedingungen
zu berücksichtigen.
Wenn kein Pacing bzw. keine Datenflussdosierung dieser Ströme durchgeführt wird, kann
ein Stau, der von burstartigen VBR/ABR-Strömen verursacht wird, die Netzwerk-Leistungsfähigkeit
nachteilig beeinflussen, es sei denn, das Netzwerk selbst unternimmt
andere Maßnahmen,
um Übertragungen
zu überwachen.
Natürlich
besteht ein einfaches Verfahren, einen derartigen Netzwerkstau zu
verhindern, darin, einen Bandbreitenumfang anzufordern, der viel
größer ist,
als jener, der vernünftigerweise
als benötigt
erwartet werden kann, und zwar zu jeder beliebigen Zeit durch eine
bestimmte Anwendung. Diese Lösung
führt jedoch
zu einer Unternutzung des Netzwerks und zu einer ineffizienten Zuweisung
von Ressourcen.
-
Deshalb besteht ein Erfordernis nach
einem Zellen-Pacing-Mechanismus, der dazu in der Lage ist, eine
gleichförmige Übertragung
von ABR-, VBR- und UBR-Datenströmen
sowie von CBR-Strömen
zu erzeugen. Ein derartiges System würde ein festes Raten-Pacing
von CBR-Strömen
bereitstellen, während
simultan der VBR-, ABR- und UBR-Datenverkehr überwacht wird.
-
EP-A-0 596 624 offenbart
eine Multiplexanordnung, bei welcher Anrufe bzw. Rufvorgänge, die sehr
unterschiedliche Bandbreitenanforderungen und Empfindlichkeiten
bezüglich
Verzögerungen
haben, von dem Netzwerk mit einer Bandbreitenzuweisung und einer Übertragungsplanung
gehandhabt werden. Jeder Ruf wird in Übereinstimmung mit gewissen
Signalcharakteristiken klassifiziert, wie z. B. die erforderliche
Bandbreite und Empfindlichkeit bezüglich Verzögerungen und jede Rufklasse
wird zu einer separaten Warteschlangen-Schaltung geleitet. Gewisse Rufe in
gewissen Klassen, wie z. B. jene, die mit Diensten mit einer konstanten
Bitrate und hohen Bandbreite in Zusammenhang stehen, werden jeweils
zu ihren eigenen individuellen Warteschlangen-Schaltungen geleitet.
Andere Rufe innerhalb einer Klasse werden statistisch in eine einzige
Wartenschlangen-Schaltung für
jene Klasse gemultiplext. Eine Multiplex-Schaltung arbeitet in Übereinstimmung
mit einem dynamischen Zeit-Scheiben-Schema, das ein Definieren einer
Dienst-Zykluszeit-Periode umfasst, während der der Multiplexer eine
vorbestimmte Anzahl von Informationspaketen von einem jeden einer
Vielzahl von Warteschlangen-Schaltungen zurückzieht, die Informationspakete
enthalten, und platziert jene vorbestimmte Anzahl von Paketen auf
einem Ausgabe-Link bzw. einer Ausgabeverbindung. Der Multiplexer
bricht die Zykluszeitperiode in eine Vielzahl von Zeitscheiben,
von denen jede bestimmt, wie viele Informationspakete von einer
jeden Warteschlangen-Schaltung während
der Zykluszeitperiode übertragen
werden. Eine einer Anzahl von alternativen Planungstechniken werden
für einen
verzögerungsunempfindlichen
Verkehr verwendet.
-
Zusammenfassung
der Erfindung
-
Die vorliegende Erfindung ist durch
die beigefügten
Zeichnungen definiert.
-
Die Erfindung kann zum Planen der Übertragung
von Paketen auf einem ATM- oder einem anderen Paketschaltnetzwerk
verwendet werden, wobei der Zeitsteuerring Einträge enthält, die dynamisch für die Übertragung
von Paketen von virtuellen Schaltungen zugewiesen sind, typischerweise
ABR, UBR und nicht reelle Zeit-VBR-Schaltungen und von Einträgen, die
statisch vorab für
die Übertragung
von Paketen von anderen virtuellen Schaltungen zugewiesen sind,
typischerweise CBR- und Echtzeit-VBR-Schaltungen. Ein Eintrag auf
dem Zeitsteuerring stellt einen verfügbaren Zeitschlitz zur Übertragung
einer einzigen Zelle oder eines einigen Paketes dar. Der Apparat
umfasst weiter einen Prozessor, um sequentiell die Einträge auf dem
Zeitsteuerring zu verarbeiten, um bestimmte Pakete oder Zellen auf dem
Netzwerk während
ihres geplanten Zeitschlitzes zu übertragen oder während des
ersten verfügbaren Zeitschlitzes
danach. Wenn ein dynamisch zugewiesener Eintrag für eine bestimmt
virtuelle Schaltung verarbeitet wird, wird die nächste Übertragung eines Pakets auf
der virtuellen Schaltung durch dynamisches Zuweisen eines anderen
Eintrags auf dem Zeitsteuerring geplant.
-
Die vorliegende Erfindung ist im
Wesentlichen ein Hybrid von zwei in Beziehung stehenden Planungsmechanismen;
statische und dynamische Planung. Die Verwendung dieser zwei Mechanismen in
Kombination erlaubt eine Balance zwischen Flexibilität und Leistungsfähigkeit
bei der Planung und Übertragung
von Zellen und Paketen verschiedener Verkehrsklassen. In dieser
Art und Weise können
Pakete mit einem CBR fester Rate und Echtzeit-VBR-Schaltungen zu festen Intervallen übertragen
werden, wie dies durch diese Verbindungen erforderlich ist, während Pakete
von ABR-, VBR- und UBR-Schaltungen mit variabler Rate in Übereinstimmung
mit ihren verhandelten Verkehrs-Kontrakten übertragen werden können.
-
Kurze Beschreibung
der Zeichnungen
-
Ein vollständigeres Verständnis der
Erfindung kann durch Lesen der folgenden Beschreibung in Verbindung
mit den beigefügten
Zeichnungen erzielt werden, bei denen gleiche Elemente in ähnlicher Weise
markiert sind und für
die folgendes gilt:
-
1 ist
ein funktionelles Blockdiagramm einer Ausführungsform eines Übertragungs-Pacing-Mechanismus,
der in Übereinstimmung
mit den Prinzipien der vorliegenden Erfindung aufgebaut ist;
-
2A ist
ein Diagramm einer ATM-Zelle, wie sie durch das CCITT definiert
ist; 2B ist ein Diagramm eines ATM-Zellenkopfs
bei der Benutzer-Netzwerk- Schnittstelle
wie durch das CCITT definiert ist;
-
2C ist
ein Diagramm eines ATM-Zellenkopfs bei der Netzwerk-Netzwerk-Schnittstelle wie durch
das CCITT definiert ist;
-
3 ist
eine Erläuterung
des Zeitsteuerrings, der bei dem Pacing-Mechanismus der 1 verwendet wird;
-
4 ist
ein Flussdiagramm eines Zeitsteuerring-Verarbeitungsalgorithmus,
der bei dem Pacing-Mechanismus der 1 verwendet
wird;
-
5 ist
ein Diagramm einer statischen Aktionsdatenstruktur, die bei dem
Pacing-Mechanismus der 1 verwendet wird;
-
6 ist
ein Diagramm einer dynamischen Aktionsdatenstruktur, die bei dem
Pacing-Mechanismus der 1 verwendet
wird;
-
7 ist
ein Beispiel der Planungsoperation des Pacing-Mechanismus der 1;
-
8 ist
ein Diagramm einer vereinfachten Zustandsmaschine für AAL5-Segmentation und -Übertragung;
-
9 ist
eine Erläuterung
eines Zeitsteuerrings, der bei der zweiten Ausführungsform des Pacing-Mechanismus
der 1 verwendet wird;
-
10 ist
eine Erläuterung
eines Zeitsteuerrings, der bei einer dritten Ausführungsform
des Pacing-Mechanismus der 1 verwendet
wird; und
-
11 ist
eine Erläuterung
eines Zeitsteuerrings, der bei einer vierten Ausführungsform
des Pacing-Mechanismus der 1 verwendet
wird.
-
Detaillierte
Beschreibung der Erfindung
-
Bei der folgenden Beschreibung werden zahlreiche
spezifische Details dargelegt, um ein gründliches Verständnis der
vorliegenden Erfindung bereitzustellen. Es wird jedoch Fachleuten
offensichtlich sein, dass die vorliegende Erfindung ohne diese spezifischen
Details praktiziert werden kann. Bei anderen Fällen wurden gut bekannte Schaltungen, Strukturen
und Techniken nicht im Detail gezeigt, um die vorliegende Erfindung
nicht unnötigerweise
zu verschleiern.
-
Es sollte klar sein, dass, obwohl,
was hierin beschrieben ist, ein Übertragungs-Pacing-Mechanismus zur Verwendung
in einem ATM-Netzwerk ist, die vorliegende Erfindung in keiner Weise
auf die Anwendung auf ATM-Netzwerke beschränkt ist, wie sie durch das
CCITT definiert sind. Ein Fachmann wird eher erkennen, dass die
Erfindung, die hierin beschrieben ist, bei einer breiten Vielfalt
von Paket-Schalt-Netzwerken verwendet werden kann. Bezüglich Beispiele
gewisser alternativer Netzwerke siehe Prycker, Seiten 50-58.
-
Ein Blockdiagramm eines Pacing-Mechanismus 100,
der in Übereinstimmung
mit den Prinzipien der vorliegenden Erfindung aufgebaut ist, ist
in 1 gezeigt. Der Pacing-Mechanismus 100 umfasst
einen Mikroprozessor 120, einen DRAM-Speicher 130, einen
Zuerst-Ein-Zuerst-Aus-(FIFO) Übertragungspuffer 140,
eine Übertragungssteuerung 150,
einen Zeitgeber 160 und eine Netzwerk-Leitungs-Schnittstelle 170.
Ein Mikroprozessor 120, ein DRAM 130 und ein FIFO-Puffer 140 sind über den
Datenbus 180 miteinander verbunden.
-
Der Mikroprozessor 120 kann
z. B. ein kommerziell erhältlicher
RISC-Einzelchip-Mikroprozessor,
wie z. B. der ARM610 sein, der von Advanced RISC Machines von Cambridge,
England hergestellt wird, der bei 32 MHz arbeitet. Die Übertragungssteuerung 150 stellt
einen Block aus einer Steuerlogik dar, deren Attribute und Funktionen
unten beschrieben werden wird. Diese Logik kann mit diskreten Komponenten,
Gatter-Feldern oder anwendungsspezifischen integrierten Schaltungen
(ASICs) realisiert werden, und zwar in Abhängigkeit von den Erfordernissen
der bestimmten Implementation. Die tatsächliche Zusammensetzung der
Netzwerk-Leitungs-Schnittstelle 170, wie sie der Fachmann
erkennen wird, hängt
von dem physikalischen Medium ab, auf dem das ATM-Netzwerk aufgebaut
ist. Beispielsweise können
UTP 802.4 Token Ring-Bestandteile zur Verwendung mit einer
25,6 Mb/s ATM-physikalischen Schicht verwendet werden. Der Zeitgeber 160, das
DRAM 130 und der FIFO-Puffer 140 können aus einer
weiten Vielfalt von Standardkomponenten ausgewählt werden, wie sie dem Fachmann
bekannt sind.
-
Verschiedene Bytes in dem Kopf der ATM-Zelle
werden beim Ausführen
der bevorzugten Ausführungsform
der folgenden vorliegenden Erfindung verwendet. Als Hilfe für das Verständnis der
Erfindung ist eine Beschreibung einer typischen ATM-Zelle wie folgt. 2A zeigt das Format einer ATM-Zelle 200,
wie sie in der CCITT Empfehlung I.261 definiert ist. Dieses Format,
das für
eine Verwendung bei B-ISDN und anderen Weitverkehrs netzwerken Anwendung
findet, spezifiziert eine Zelle von 53 Bytes (Oktetts):
ein Informationsfeld oder eine Nutzinformation 210 von 48 Bytes
(Oktetts), die die Benutzerinformation enthält, die das Objekt der Übertragung
ist, und einen Zellenkopf 220 von 5 Bytes (Oktetts).
-
Der Zellenkopf 220 oder
einfach „Kopf" bzw. „Header" wird verwendet,
um eine Vielfalt von Steuerinformationen zu übertragen und zwar bezüglich der augenblicklichen
Zelle. 2B zeigt die Struktur dieses
Kopfes bei der Benutzer-Netzwerk-Schnittstelle (UNI), d. h., die
Schnittstelle zwischen einer Endbenutzervorrichtung und einem ATM-Schalter.
Hier ist der Kopf aus einem generischen Flusssteuerfeld 230 zur
Spezifizierung von Information aufgebaut, die verwendet werden kann,
um einen Verkehrsfluss bei der Benutzer-Netzwerk-Schnittstelle zu steuern, einem VPI
(Virtuelle-Pfad-Identifizierer) 240, einen VCI (Virtuell-Schaltungs-Identifizierer) 250,
einen Nutzinformationstyp 260, der Information bereitstellt,
die den Typ der Information betrifft, die in dem Nutzinformations-Feld 210 der
Zelle enthalten ist, ein Zellen-Verlusts-Prioritätsbit 270 zum Einstellen
der Prioritäten,
die das Aufgeben der Zelle während Überlastbedingungen
betrifft, und ein Kopf-Fehler-Steuerfeld 280, das ein Fehlersteuer-Überprüfungsbyte
für die vorhergehenden 4 Bytes
(Oktetts) in dem Kopf 220 enthält.
-
2C zeigt
das Format eines Kopfes 220 bei der Netzwerk-Zu-Netzwerk-Schnittstelle
(NNI), der Schnittstelle zwischen Netzwerkschaltern. Diese Kopfstruktur
ist mit der Struktur bei der UNI identisch, es sei denn das generische
Flusssteuer-(GFC)Feld 230 wird durch vier zusätzliche
Bits VPI 240 ersetzt. ATM-Netzwerke stellen keine Flusssteuerung
des Typs bereit, der bei gewissen Paketnetzwerken realisiert ist,
und ATM-Netzwerke haben nicht die Fähigkeit, Zellen über eine
lange Zeitdauer zu speichern. Deshalb gibt es innerhalb eines ATM-Netzwerks
kein Erfordernis nach einer generischen Flusssteuerung. GFC 230 ist
in der UNI definiert, um einen Kopf-Raum für eine Endknotenverarbeitung
von Zellen bereitzustellen. GFC 230 kann von einem Endknoten
zu jedem Zweck verwendet werden und GFC 230 wird bei der
vorliegenden Erfindung verwendet, wie unten beschrieben ist. Somit
kann innerhalb des NNI das GFC 230 weggelassen werden,
und zwar zugunsten eines expandierten VPI 240. Über weitere Information
betreffend Standard-ATM-Zellen-Formate
siehe de Prycker, Seiten 124-28. Ein Fachmann wird erkennen, dass
das Zellenformat, das hierin beschrieben ist, nur ein Standardzellenformat
darstellt und das al ternative Zellenformate und Größen in Verbindung
mit der vorliegenden Erfindung verwendet werden können.
-
Die bevorzugte Ausführungsform
der vorliegenden Erfindung ist eine Hybridimplementation von zwei
in Beziehung stehenden Planungsmechanismen. Die erste Statik-Zellen-Planung
ist in erster Linie geeignet, obwohl nicht auf gleichförmige Raten-Zellen-Pacing
beschränkt,
wie von CBR und Echtzeit-VBR-Verkehrsklassen gefordert wird. Die zweite
dynamische Zellenplanung ist auf Zellen-Pacing-Anforderung mit variabler
Rate gerichtet, wie dies für
ABR-, UBR- und Nichtechtzeit-VBR-Verkehrsklassen definiert ist.
Wie unten in Zusammenhang mit alternativen Ausführungsformen diskutiert wird,
können
beide Mechanismen getrennt bzw. isoliert verwendet werden. Jedoch
erlaubt die Verwendung der zwei Mechanismen in Kombination eine
geeignete Balance zwischen Flexibilität und Laufzeit-Leistungsfähigkeit
für die
meisten Netzwerk-Realisierungen.
-
Die Operation der vorliegenden Erfindung konzentriert
sich um einen „Zeitsteuerring", von dem ein Konzeptdiagramm
in 3 gezeigt ist. Obwohl einfache
Zeitsteuerringe, die auch als Fenster- bzw. Schlitz-Reservierungs-Steuerungen
bekannt sind, zuvor im Stand der Technik der Planungs-Mechanismen
verwendet worden sind, stellt der Ring, der bei der vorliegenden
Erfindung verwendet wird, eine ausgeklügelte Realisierung dar, die
gestaltet ist, um sowohl eine statische als auch eine dynamische
Planung simultan Handzuhaben.
-
Ein Zeitsteuerring 300 ist
in 3 als eine lineare
Tabelle bequemlichkeitshalber gezeigt, aber sie wird geeigneterweise
als zirkular angestrebt. Wie unten diskutiert wird, wird eine Verarbeitung
von END-Markern 350 zu einer Schleife bezüglich des Pacing-Algorithmus
zu der Vorderseite des Zeitsteuerrings 300 führen. Jeder
Eintrag 305 auf dem Zeitsteuerring 300 stellt
einen verfügbaren
Zellenübertragungsschritt
dar und entspricht der Übertragungszeit für eine ATM-Zelle
bei der gegenwärtigen
Netzwerkrealisierung. Der Eintrag 305 besteht aus zwei
Feldern: eine statische Aktion 310 und eine dynamische Aktion 320.
Zusammen definieren diese Felder, welche „Aktionen", normale Zellübertragungen, während jenes
Zeitschlitzes durchzuführen
sind und welche Aktionen aufeinander folgend durchgeführt werden können. Fachleute
werden erkennen, dass, obwohl ein einziger Zeitsteuerring 300 bei
der bevorzugten Ausführungsform
der vorliegenden Erfindung verwendet wird, ein Paar paralleler Zeitsteuerringe,
einer für
statische Aktionen und ein anderer für dynamische Aktionen, ebenfalls
verwendet werden kann. Weil beide Felder für jedes Zeitintervall gelesen
werden müssen,
ist jedoch eine einzige Ringimplementation effizienter.
-
Jedes Aktionsfeld 310, 320 enthält physisch entweder
einen NULL-Zeiger oder einen Adressen-Zeiger zu einer Datenstruktur,
die unten beschrieben ist, die im DRAM 130 gespeichert
ist und die als eine Aktion definiert ist, die während jenes Zeitintervalls
zu unternehmen ist. Der NULL-Zeiger zeigt an, dass der Zeitschlitz
nicht für
den bestimmten Planungsmechanismus, statisch oder dynamisch, zugewiesen
wurde, und dass keine Aktion durchgeführt werden muss. Während eines
einzigen Zeitschlitzes kann entweder das statische oder dynamische
Feld oder beide Zeiger zu Aktionsdatenstrukturen enthalten.
-
Die statischen Felder 310 werden
verwendet, um die Übertragung
von CBR- und VBR-Virtuellschaltungen
zu pacen bzw. diesbezüglich
eine Durchflussdosierung durchzuführen, wobei diese eine Übertragung
von Zellen zu präzisen
Zeitintervallen fordern. Diese Felder werden vorab bestimmten virtuellen
Schaltungen zur Zeit des Verbindungsaufbaues zugewiesen, oder wenn
die Qualität
von Dienstparametern für
eine gegebene virtuelle Schaltung durch das Netzwerk geändert wird.
Durch eine Vorabzuweisung von Zeitschlitzen für eine bestimmte Schaltung
zu präzisen
integralen Intervallen, kann eine Übertragung von Zellen auf dem
Netzwerk, das verzögerungsempfindliche
Daten enthält,
mit einem garantierten maximalen Verzögerungs-Jitter erzielt werden.
-
Für
statisch zugewiesene Übertragungen wird
man erkennen, dass die Länge
des Zeitsteuerrings
300, d. h., die Anzahl der Zeitschlitze
in dem Ring durch die Schnittstellengeschwindigkeit und die gewünschte Zeitsteuerauflösung bestimmt
wird. Wenn die Größe des Zeitsteuerrings
zunimmt, nimmt die Zeitsteuerauflösung zu, aber auf Kosten des Speichers,
der zum Speichern des Zeitsteuerrings
300 benötigt wird.
Falls die minimale Dienstbandbreite (MSB) für die Netzwerkrealisierung
bekannt ist, kann die minimale Größe (N) in den Zeitschlitzen
des Zeitsteuerrings
300 wie folgt berechnet werden:
Wobei
TMB die totale Gesamtbandbreite des Übertragungsmediums darstellt.
-
Wie in 3 gezeigt
ist, kann nur eine statische Aktion 330 für einen
einzigen Ringeintrag zugewiesen werden, und diese Aktion muss während des entsprechenden
Zeitintervalls auftreten. Im Gegensatz dazu enthält ein zugewiesenes dynamisches Aktionsfeld 320 einen
Zeiger zu einer Warteschlange von dynamischen Aktionen 340,
die Aktionen darstellen, die aktuell werden, d. h., die zur Verarbeitung während des
Zeitfensters bereit sind. Weil statische Aktionen immer Priorität haben,
könnte
es sein, dass eine dynamische Zuweisung, die einem bestimmten Ringeintrag
zugewiesen ist, während
jenes Zeitschlitzes nicht verarbeitet wird. Deshalb zeigt das Vorhandensein
einer dynamischen Aktion bei einem bestimmten Ringeintrag an, dass
die Aktion sofort oder sobald wie möglich danach verarbeitet werden
kann.
-
Dynamische Aktionen, die für Zellenübertragung
auf ABR- und UBR-Schaltungen geeignet sind, werden nicht vorab zugewiesen.
Typischerweise wird nur eine dynamische Aktion für eine bestimmte virtuelle
Schaltung auf dem Zeitsteuerring 300 einer beliebigen Zeit
zugewiesen werden. Wenn diese Aktion verarbeitet wird, wird die
nächste
Zellenübertragung für jene Schaltung
geplant werden, in dem eine Aktion 340 auf der dynamischen
Aktions-Warteschlange bei
dem Ringeintrag 305 platziert wird, der dem frühesten Schlitz
zur Übertragung
jener Zelle entspricht. Dieses Verfahren wird detaillierter unten
beschrieben. Weil dynamische Aktionen in Echtzeit geplant werden,
gibt es keine intrinsische Grenze für die Zeitauflösung dieser
Aktionen. Jedoch bestimmt die Länge
eines Zeitsteuerrings 300 die minimale Rate, bei der Zellen übertragen
werden können.
-
4 stellt
ein Gesamtflussdiagramm für
die Verarbeitung durch Mikroprozessor 120 der Ringeinträge auf dem
Zeitsteuerring 300 dar. Die Verarbeitung des Zeitsteuerrings 300 gemäß diesem
Algorithmus wird in Antwort auf einen Hardware-Zeitgeber-Interrupt 185 initert,
der in 1 gezeigt ist.
Da der Mikroprozessor 120 die Zellen im FIFO-Puffer viel
schneller verarbeiten und in die Warteschlange einreihen kann, als
sie physikalisch auf dem Netzwerk übertragen werden, werden normalerweise mehrere
Einträge
in einem Burst bzw. Datenblock verarbeitet, und zwar eher als dass
ein einziger Eintrag pro tatsächlichem
Zeit- Intervall gehandhabt
wird. Diese Implementation reduziert den festen unnötigen bzw.
zusätzlichen
Aufwand des Eintretens in den Interruptcode und dessen Verlassen.
Die maximale Anzahl der Einträge,
die pro Burst bzw. Datenblock verarbeitet werden können, ist
durch die maximale Länge
eines FIFO-Puffers begrenzt.
-
Der Mikroprozessor 120 hält kontinuierlich einen
Zeiger zu dem „nächsten" Ringeintrag 305,
d. h., der nächste
Eintrag der zu verarbeiten ist. Nach Empfangen des Interrupts 185 wird
der Mikroprozessor 120 sowohl die statischen als auch dynamischen Felder
dieses aktuellen Ringeintrags 305 lesen, wie durch den
Block 410 dargestellt ist. Der Mikroprozessor 120 überprüft zuerst
das dynamische Feld 320, den Block 420, um zu
bestimmen, ob er einen Zeiger zu einer Warteschlange von dynamischen
Aktionen enthält,
die nun aktuell geworden sind. Falls dem so ist, geht der Mikroprozessor 120 zum
Block 430, wo die Eintrags-Warteschlange von dynamischen
Aktionen in einer anderen Datenstruktur platziert ist, die als latente
Warteschlange bekannt ist.
-
Die latente Warteschlange ist der
Mechanismus, durch den alle dynamischen Aktionen, die aktuell geworden
sind, zur Verarbeitung in die Warteschlange eingereiht werden. Wenn
man auf Warteschlangen dynamischer Aktionen bei aktuellen Ringeinträgen trifft,
werden sie an die latente Warteschlange angehängt. Die erste Aktion bei der
latenten Warteschlange wird bei dem ersten Ringeintrag verarbeitet
werden, für
den keine gültige
statische Aktion gegenwärtig
ist, d. h., wenn ein statisches Feld 310 auf NULL gesetzt
wird. Dynamische Aktionen werden nur von der latenten Warteschlange
verarbeitet; eine Anwesenheit einer dynamischen Aktion auf dem Zeitsteuerring 300 zeigt
einfach den Moment an, bei dem jene Aktion zu der latenten Warteschlagen bewegt
werden kann und zur Verarbeitung freigegeben wird.
-
Zuerst-Ein, Zuerst-Aus-(FIFO) Listenstrukturen
erfordern, wie Fachleute erkennen werden, eine Handhabung wie bei
einem Spezialfall für
den ersten Eintrag, der zu einer Liste hinzugefügt wird, und erfordern sowohl „Kopf-" als auch „Schwanz-"Zeiger, die aufrecht
zu erhalten sind. Mit diesem zusätzlichen Overhead
bzw. Zusatzaufwand stellt die Manipulation von FIFO-Warteschlangen
eine potentiell langsame Operation für jeden Prozessor dar. Um diesen
Zusatzaufwand bzw. Overhead zu vermeiden, sind die Warteschlangen
dynami scher Aktionen, die bei jedem Ringeintrag aufrechterhalten
werden, einzeln verknüpfte
Zuerst-Ein, Zuerst-Aus-(LIFO) Warteschlagen, und zwar eher als FIFO-Warteschlangen. Diese
Anordnung erfordert einen geringeren Zusatzaufwand bzw. Overhead,
weil alle Warteschlangen-„Hinzufüge-" und „Entfernungs-"Operationen am Warteschlangenkopf
durchgeführt
werden, wobei dies nur erforderlich macht, dass ein einziger Zeiger aufrechterhalten
wird.
-
Die Verwendung von LIFO-Warteschlangen führt jedoch
zu einer lokalen Ungerechtigkeit: Aktionen, die in eine Warteschlange
eingereiht sind, werden nicht auf einer strengen „Wer zuerst
kommt, wird zuerst bedient" Grundlage
verarbeitet. Um dies wieder gutzumachen, wird die latente Warteschlange
als ein FIFO-Stapel aufrecht erhalten, der eine langfristige Gerechtigkeit
garantieren kann. Wenn Einträge auf
dem Ring verarbeitet werden, werden jegliche dynamische Aktions-LIFO-Warteschlangen,
auf die man trifft, auf die latente FI-FO-Warteschlange genauso geschoben,
wie man sie findet. Mit anderen Worten enthält die latente FIFO-Warteschlange LIFO-Warteschlangen
von Aktionen. Natürlich
sind andere Implementationen dieser Warteschlangen möglichen,
aber diese Anordnung führt
zu einem Minimum am Prozessor-Zusatzaufwand.
-
Ungeachtet dessen, ob man oder ob
man nicht auf eine dynamische Aktion-Warteschlange getroffen ist
und diese auf die latente Warteschlange geschoben wurde, wird der
Mikroprozessor 120 bestimmen, ob eine statische Aktion
für jenen
Ringeintrag vorhanden ist, wie im Block 440 angezeigt ist. Dies
ist tatsächlich
ein zweiteiliger Test. Erstens, falls das statische Feld 310 einen
NULL-Zeiger enthält, wird
keine statische Aktion für
jenen Zeitschlitz geplant. Es ist jedoch ebenso möglich, dass
eine statische Aktion für
jenen Zeitschlitz geplant wird, z. B. die Übertragung einer Zelle auf
einer bestimmten CBR-Schaltung, aber dass das Anwendungsprogramm
das jene Schaltung verwendet, dabei gescheitert ist, die erforderlichen
Daten zur Übertragung
zu liefern. Deshalb kann eine Überprüfung durchgeführt werden,
um zu sehen, ob die Daten vorhanden sind. Falls keine Daten warten,
dann kann der Schlitz für
die Verarbeitung einer dynamischen Aktion verwendet werden, so als
ob der Schlitz nicht vorab zugewiesen worden wäre.
-
Falls der Ringeintrag statisch zugewiesen
ist und falls Daten für
eine Übertragung
vorhanden sind, dann schreitet der Mikroprozessor 120 zum
Block 460, um die Aktionsdatenstruktur, die durch den Zeiger
angezeigt wird, im statischen Aktionsfeld 310 zu lesen.
Eine typische statische Aktionsdatenstruktur 500 ist in 5 gezeigt. Der Mikroprozessor 120 wird einen
Unterroutinenaufruf zu einer Aktions-Handhabungsroutine durchführen, die
sich im Speicher bei der Adresse befindet, die durch den Handhabungs-Zeiger 550 spezifiziert
ist. Diese Zellenübertragungs-Handhabungsroutine
wird eine einzige ATM-Zelle erzeugen, in dem die vier Bytes (Oktetts) des
Zellenkopfs 540 mit 48 Bytes (Oktetts) von Nutzinformationsdaten
(falls eine Standardzellengröße verwendet
wird) verkettet werden, die sich im Speicher bei der Adresse befinden,
die durch den Datenzeiger 520 spezifiziert ist. Die Handhabungsroutine wird
dann veranlassen, dass diese ATM-Zelle, die an der Hinterseite der Übertragungs-Warteschlange
im FIFO-Puffer 140 zu platzieren ist, auf eine Übertragung
durch die Übertragungssteuerung 150 wartet. Die
Handhabungsroutine wird dann irgendwelche anderen spezifizierten
Aufgaben vollenden und eine Unterroutine-Rückkehrinstruktion
ausführen,
um die Steuerung dem Flussdiagramm der 4 wieder
zu übergeben.
-
Falls der Mikroprozessor 120 am
Block 440 bestimmt, dass das statische Feld 310 nicht
zugewiesen ist oder dass Daten nicht auf ein zugewiesenes Feld warten,
wird der Mikroprozessor 120 fortschreiten, um den Status
der latenten Warteschlange zu überprüfen, wie
im Block 450 dargestellt ist. Falls wenigstens eine dynamische
Aktion in der latenten Warteschlange vorhanden ist, wird sich der
Mikroprozessor 120 zu dem Block 470 bewegen, um
jene Aktion von dem Kopf der latenten Warteschlange zu lesen.
-
Eine typische dynamische Aktionsdatenstruktur 600 ist
in 6 gezeigt. Die ersten fünf Felder
in der dynamischen Aktionsdatenstruktur 600 sind mit jenen
identisch, die in der statischen Aktionsdatenstruktur 500 enthalten
sind. Die zusätzlichen Felder,
die in 6 gezeigt sind, werden beim
Planen aufeinanderfolgender dynamischer Aktionen für eine bestimmte
virtuelle Schaltung verwendet und werden vollständiger unten beschrieben. Was
statische Aktionen angeht, so wird der Mikroprozessor 120 einen
Unterroutinenaufruf zu einer Aktions-Handhabungs-Routine machen,
die sich im Speicher bei der Adresse befindet, die durch den Handhabungs-Zeiger 550 spezifiziert
ist. Wiederum wird diese Zellenübertra gungs-Handhabungsroutine eine
einzige ATM-Zelle erzeugen, in dem die vier Bytes (Oktetts) eines
Zellen-Kopfes S40 mit 48 Bytes (Oktetts) von Nutzinformationsdaten
(falls eine Standardzellengröße verwendet
wird) verkettet bzw. verknüpft
wird, die sich im Speicher bei der Adresse befinden, die durch den
Datenzeiger 520 spezifiziert ist. Wie zuvor wird diese
ATM-Zelle am hinteren Ende der Übertragungs-Warteschlange
im FIFO-Puffer 140 platziert werden, um auf eine Übertragung
durch die Übertragungssteuerung 150 zu
warten. Die Handhabungsroutine wird dann die nächste Zellenübertragung
für diese
virtuelle Schaltung planen, indem eine dynamische Aktion auf dem
Zeitsteuerring 300 bei dem Zeitschlitz angefügt wird,
der die früheste
Zeit darstellt, wenn die nächste
Zelle übertragen werden
sollte. Die Berechnung dieses Intervalls wird vollständiger unten
beschrieben. Die Handhabungsroutine vollendet dann irgendwelche
sonstigen spezifischen Aufgaben und führt einen Unterroutinen-Rückkehrbefehl
aus, um die Steuerung dem Flussdiagramm der 4 zurückzugeben.
-
Falls es keine statische Aktion gibt,
die zu implementieren ist und die latente Warteschlange leer ist,
wird der Mikroprozessor 120 sich vom Block 450 zum
Block 480 bewegen. Diese Bedingung stellt einen Zeitschlitz
dar, wo keine Zellenübertragung
stattfinden sollte. Da jedoch Ringeinträge in einem Burst bzw. Datenpaket
verarbeitet werden, würde
ein einfaches Bewegen zum nächsten
zugeordneten Ringeintrag und ein Platzieren jener Zelle in dem Übertragungspuffer
dazu führen,
dass die nächste
Zelle zu früh übertragen
wird. Die einfachste Lösung
würde darin
liegen, eine Schein-ATM-Zelle aufzubauen, wobei VCI 250 auf
null gesetzt ist, und jene Zelle im FIFO-Puffer 140 zu
platzieren. Diese Zelle würde
auf dem Netzwerk ohne Verzögerung
von der Übertragungssteuerung 150 übertragen
werden. Ihre Gegenwart würde
jenen Übertragungsschlitz
einnehmen, womit gewährleistet
wird, dass darauffolgende Zellen in ihren geplanten Schlitzen übertragen
werden würden.
Eine derartige Verwendung von Schein-Zellen bzw. Dummy-Zellen ist
erlaubt, weil ein ATM-Netzwerk
automatisch jegliche Zellen aufgeben bzw. beseitigen wird, die ein
VCI 250 enthalten, das auf null gesetzt ist. Jedoch führt dies
zu einer zusätzlichen
Verarbeitung innerhalb des Netzwerks, die vermieden werden sollte,
wenn es möglich
ist. Ein anderer effizienterer Mechanismus liegt darin, eine intelligente Übertragungssteuerung 150 zu
verwenden, die die Übertragung
einer Zelle verzögern
kann, und zwar bis zu ihrem zugewiesenen Übertragungsschlitz. Dieser
Mechanismus wird bei der vorliegenden Erfindung implemen tiert, indem
eine Zellenverzögerungszählung bei
dem generischen Flusssteuerungs(GFC)Feld 230 eines jeden
herausgehenden Zellenkopfs kodiert wird. Der Wert, der in diesem Feld
kodiert ist, zeigt der Übertragungssteuerung 150 die
Anzahl der Zellenzeiten an, auf die zu warten ist, bevor mit der Übertragung
jener Zelle begonnen wird. Die Übertragungssteuerung 150 bewerkstelligt
diese Verzögerung,
indem ein Zellenverzögerungszeitgeber 190 überwacht
wird, ein Zeitgebersignal, das einmal pro Zeitschlitz feuert.
-
Somit wird, nachdem man auf einen
leeren Ringeintrag getroffen ist; der Mikroprozessor einen Verzögerungszähler im
Block 480 erhöhen.
Dieser Verzögerungszähler wird
immer aufrecht erhalten und sein gegenwärtiger Wert wird im GFC 230 aller konstruierten
herausgehenden Zellen durch die Aktion-Handhabungsroutine platziert.
Die Aktion-Handhabungsroutine
setzt ebenfalls den Verzögerungszähler auf
null zurück,
wenn er eine neu konstruierte Zelle in dem FIFO-Puffer 140 platziert,
um auf eine Übertragung
zu warten.
-
Natürlich besteht GFC 230 aus
nur vier Bits; somit sind Zellenverzögerungszeiten zwischen null und
fünfzehn
(15) Zellenübertragungszeiten
möglich. Falls
der Mikroprozessor 120 den Verzögerungszähler auf sechzehn (16) im Block 480 erhöht, wird
er den Verzögerungszähler auf
null zurücksetzen,
eine Schein-ATM-Zelle aufbauen, wie oben beschrieben wurde, und
jene Zelle im FIFO-Puffer 140 platzieren, um auf die Übertragung
zu warten.
-
Ungeachtet davon, welche Aufgaben
beim Verarbeiten des gegenwärtigen
Ringeintrags durchgeführt
wurden, wird der Mikroprozessor 120 letztendlich zum Block 490 fortschreiten,
wo er zu dem nächsten
Ringeintrag fortschreiten wird und eine Schleife für die Verarbeitung
durchführen
wird. Die tatsächliche
physikalische Erhöhung
des Zeigers zu dem nächsten
Ringeintrag kann irgendwo in der algorithmischen Schleife auftreten;
tatsächlich
kann sie effizient sein, um den Zeiger fortzuführen, wenn der Eintrag beim
Block 410 gelesen wird. Dieser Schritt ist am Boden des
Flussdiagramms der 4 aus konzeptioneller
Klarheit gezeigt.
-
Die Schleife in dem Flussdiagramm
der 4 ist aus praktischen Gründen als
immerwährend
ausgebildet. Jedoch wird die Verarbeitung aus dieser Schleife ausbrechen,
nachdem sie eine voreingestellte Anzahl von Ringeinträgen verarbeitete hat
(oder möglicherweise
eine vorher eingestellte Anzahl von Zellen im FIFO-Puffer 140 geladen
hat). Nach dem Ausbrechen wird die Verarbeitung warten, bis sie
wiederum einen Zeitgeberinterrupt 185 empfangen hat, um
die Verarbeitung von Ringeinträgen wieder
aufzunehmen. Die voreingestellte Anzahl von Ringeinträgen und
die Häufigkeit
des Zeitgeberinterrupts 185 sind implementationsabhängig, aber
diese Werte sollten so gewählt
werden, dass die Übertragungshardware
niemals untätig
gelassen wird. Mit anderen Worten sollte es den FIFO-Puffer 140
nicht erlaubt sein, leer zu sein; eher sollte die Verarbeitung den
Satz von Zellen „vervollständigen" („auffüllen"), den die Übertragungshardware
versucht zu übertragen.
In dieser Art und Weise wird die Übertragungssteuerung 150 immer
Zellen übertragen
oder Zellenübertragungsverzögerungen
implementieren.
-
7 stellt
ein Beispiel des Planungsmechanismus im Betrieb dar, wobei ein Fenster
von zehn Zeitschlitzen T1 bis T10 gezeigt
ist. Die Zeitachse 710 zeigt, welche Aktionen in welchen
Zeitfenstern durchgeführt
werden, wobei der zugewiesene Zeitsteuerring 705 gegeben
ist. Im Zeitsteuerring T1 wird die statische
Aktion S1 durchgeführt und dynamische Aktionen
D1, D2 und D3 werden auf der latenten Warteschlange platziert.
Die Zeitschlitze T2 und T3 sind nicht
zugewiesen, so dass die oberen zwei Aktionen auf der latenten Warteschlange
D1 und D2 in jenen Zeitschlitzen
jeweilig durchgeführt
werden. Die Schlitze T4, T5 und
T6 werden für die statischen Aktionen S2, S3 und S4 jeweils durchgeführt und diese Aktionen werden
in diesen Zeitschlitzen durchgeführt, während die
dynamischen Warteschlangen, die jenen Schlitzen T5 und
T6 zugewiesen sind, auf der latenten Warteschlange
platziert werden. Die oberen vier Aktionen auf der latenten Warteschlange
D3 bis D6 werden
in den Schlitzen T7 bis T10 hindurchgeführt. Bemerkenswert
ist, dass obwohl die Aktion D9 dem Schlitz
T8 zugewiesen ist, sie nicht in jenem Zeitschlitz
durchgeführt
wird, sondern eher am Boden der latenten Warteschlange platziert
wird. Nach dem Schlitz T10 verbleiben die
Aktionen D7, D8 und
D9 auf der latenten Warteschlange und werden
aufeinanderfolgend durchgeführt.
-
Wie oben erwähnt wurde, werden dynamische
Aktionen, die für
ABR- und UBR-Zellenübertragungen
verwendet werden, in Echtzeit zugewiesen, wenn Zellen von diesen
virtuellen Schaltungen verarbeitet werden. Wenn eine dynamische
Aktion gehandhabt wird, wird die Aktions-Handhabungsroutine mit
der Aufgabe des Planens der nächsten
dynami schen Aktion für
jene bestimmte virtuelle Schaltung geladen. Die zusätzlichen
Felder in der dynamischen Aktionsdatenstruktur 600 ermöglichen
es der Handhabungsroutine, dieses Planen durchzuführen.
-
Die Planungsinformation wird als
ganzzahlige plus bruchteilige Zeitdauern gespeichert. Die ganzzahlige Übertragungsperiode
wird in Einheiten von Zellenübertragungszeiten
in Integrale Tx-Periode 610 gespeichert, wohingegen die
bruchteilige Zeitdauer bzw. Periode als Anzahl übertragener Zellen im Zähler-2-Rate 640 gespeichert
wird. Das Planen arbeitet wie folgt: Der Aktions-Handhaber wird die
nächste
dynamische Aktion beim Zeitsteuerring-Eintrag 305 X-Einträge von dem
nächsten
Ringeintrag platzieren, wobei X als die Integrale-Tx-Periode 610 definiert
ist. Jedoch wird jede Y-Anzahl von übertragenen Zellen auf jener
bestimmten virtuellen Schaltung, wo Y durch Zähler-2-Rate 640 definiert ist,
die dynamische Aktion entweder bei einem Ringeintrag zusätzlich oder
bei einem Ringeintrag weniger (abhängig von der Implementation)
von dem einen, der durch die Integrale-Tx-Periode 610 definiert ist,
platziert werden. Deshalb kann eine feinkörnige bzw. fein abgestufte
Steuerung über
die bzw. der Übertragungsrate
erzielt werden. Der Zähler-2-Wert 660 hält den Zählwert von
Zellen, die auf jener virtuellen Schaltung übertragen werden, und zwar
zum Vergleich mit der Zähler-2-Rate 640.
Dieser Wert wird zurückgesetzt,
wenn die teilweise bzw. bruchteilige Übertragungskorrektur durchgeführt wird.
-
Die Zähler-l-Rate 630 definiert
die Anzahl der Datenzellen, die auf einer bestimmten virtuellen ABR-Schaltung
durchzuführen
sind, bevor eine ABR-Resourcen-Management-(RM)Zelle übertragen wird. Der Zähler-l-Wert 650 hält den aktuellen
Zellenzählwert.
Wenn der Zähler-l-Wert 650 den
Wert bei der Zähler-l-Rate 630 erreicht,
wird der Aktions-Handhaber eine ABR-RM-Zelle eher übertragen als
eine Datenzelle. Bei der bevorzugten Ausführungsform der vorliegenden
Erfindung werden virtuelle UBR-Schaltungen in derselben Art und
Weise wie ABR-Schaltungen gehandhabt, aber die Zähler-1-Rate 530 wird
auf null gesetzt, so dass keine RM-Zellen erzeugt werden.
-
Für
eine ABR-Planung wird die gegenwärtige Übertragungsrate
ebenso durch eine Rate-ID 620 dargestellt. Die Rate-ID 620 ist
eine sechzehn (16) Bitnummer, die linear über einen Bereich von Raten abgebildet
wird, die zwischen einer (1) Zelle pro Sekunde und der Lei tungsrate
bzw. Linienrate liegen. Wie Fachleuten bekannt ist, erfordert die
ATM-Forum-ABR-Spezifikation
sowohl lineare als auch exponentielle Ratenänderungen. Diese Änderungen
werden gehandhabt, indem die lineare oder exponentielle Ratenänderung
auf die Rate-ID 620 angewendet wird,
und dann der neu kalkulierte Wert als ein Index für eine Nachschlagtabelle
verwendet wird, um das Ergebnis in eine ganzzahlige und bruchteilige
Zeitdauer zu transformieren, die jeweils in der Integrale-TX-Periode 610 und
Zähler-2-Rate 640 gespeichert
werden. Aus Effizienzgründen
werden ABR-Rate-Änderungen
normalerweise nur angewendet, wenn eine RM-Zelle übertragen
wird, typischerweise alle zweiunddreißig (32) Datenzellen.
-
Es sollte erkannt werden, dass die
dynamische Aktionsdatenstruktur 600 ebenso für statische Aktionen
verwendet werden kann. Die Zählerfelder können verwendet
werden, um ein Übertragungs-„Toren" zu realisieren,
so dass alle „N" von 256 zugewiesenen
Zellen-Übertragungsschlitzen
ignoriert werden. Mit anderen Worten wird der statische Aktionshandhaber
nicht eine Zelle in jenem Schlitz bzw. Fenster übermitteln. Auf diese Art und Weise
kann eine feinkörnige
bzw. fein abgestufte Steuerung über
CBR-Raten und eine Implementation einer VBR-Raten-Variabilität erzielt
werden.
-
Ein Fachmann wird erkennen, dass
Aktionen zusammen mit ihren entsprechenden Aktionshandhabungsroutinen
verwendet werden können,
um einfache Zustandsmaschinen zu realisieren. Tatsächlich wird
eine Zustandsmaschine verwendet, um das integrale plus bruchteilige
Zeitdauer-Planen zu implementieren. Als weiteres Beispiel ist eine
vereinfachte Zustandsmaschine für
eine AALS Segmentation und Übertragung
(für mehrere
Zell-AALS-Pakete)
in 8 graphisch gezeigt. Wenn einmal
ein AAL5-Paket durch den Anwendungskode zur Übertragung vorhanden ist, werden
alle Felder in jener virtuellen Schaltungs-Aktionsdatenstruktur 500 (obere
Hälfte der
Struktur 600) initialisiert. Im Zustand 1 810 wird die
Aktion-Handhabungsroutine die AAL5-CRC-Berechnung initialisieren,
die erste Zelle in dem AAL5-Paket senden, den partiellen CRC-Rest
in der CRC 510 in der Aktionsdatenstruktur sichern, die nächste Übertragung
planen, falls es sich um eine dynamisch geplante Schaltung handelt,
und zu dem nächsten
Zustand wechseln bzw. schalten. Wenn die nächste Aktion für jene virtuelle
Schaltung durchgeführt
wird, wird die Aktion-Handhabungsroutine im Zustand 2 820 sein.
Hier wird die Handhabungsroutine den CRC-Rest wie- Rest wiederherstellen,
die nächste
Zelle in dem AAL5-Paket senden, den partiellen CRC-Rest in CRC 510 speichern,
die nächste Übertragung
planen und zu dem nächsten
Zustand schalten bzw. wechseln falls die nächste Zelle die letzte Zelle
in dem Paket ist. Dies wird angezeigt, wenn der aktualisierte Datenzeiger 520 gleich
dem Wert in dem letzten Zellenzeiger 530 ist. Die Aktionshandhabungsroutine
wird in dem Zustand 2 820 verbleiben, bis die
letzte Zelle erreicht ist. In dem Zustand 3 830 wird
die Aktionshandhabungsroutine den CRC-Rest wieder herstellen, die
letzte Zelle in dem AAL5-Paket mit dem letztendlich berechneten CRC-Wert
senden und einen übertragenen,
vollendeten Status zu dem Anwendungsprogramm zurückgeben. Dieser Typ der Zustandsmaschine,
wie er für den
Fachmann klar sein wird, kann für
eine breite Vielfalt von Netzwerkoperationen implementiert werden.
-
Es ist ebenso wichtig, zu bemerken,
dass Aktionen nicht beschränkt
sind, um Zeltübertragungen durchzuführen: eher
kann virtuell eine jede Verarbeitungsfunktion, die für einen
bestimmten Augenblick in der Zeit geplant werden muss, in einer
Aktionshandhabungsroutine implementiert werden und durch einen Aktionszeiger
auf dem Zeitsteuerring 300 spezifiziert werden. Tatsächlich werden
spezielle „statische" Aktionen für Softwaremanagementaufgaben
vordefiniert. Beispielsweise kann eine Aktion im Zeitsteuerring 300 platziert
werden, und zwar jede festgelegte Anzahl von Schlitzen bzw. Fenstern,
die den Mikroprozessor 120 veranlassen, aus der Schleife
auszubrechen, die durch das Flussdiagramm der 4 definiert
ist, und von der Interrupt-Verarbeitung zurückzukehren. Zusätzlich kann
der END-Marker 350 als
eine Aktion definiert werden, die zu einem Zeigeradressen-Umherkreisen
bzw. -Umherwandern zu dem Start des Zeitsteuerrings 300 führen. Auch müssen diese
Managementaktionen keinen physikalischen Zeitschlitz verbrauchen.
Ein Mikroprozessor 120 kann einfach zu dem nächsten Ringeintrag 305 sich
bewegen, um jegliche Zellen zur Übertragung
in jenem physikalischen Zeitschlitz bzw. Zeitfenster zu verarbeiten.
-
Eine andere mögliche Verwendung für einen Zeitsteuerringschlitz
ist die Zuordnung einer Aktion, einen „Empfangs"-Puffer zu einem Anwendungsprogramm
zurückzugeben.
Ein Standard-Nicht-AAL5-Verkehr enthält keinen Ende-Des-Pakets-Marker:
folglich wird jede empfangene Zelle typischerweise direkt zu der
Anwendung nach Empfang weitergeleitet. Diese Praxis verursacht jedoch
einen substantiellen Verarbeitungszusatzaufwand. Eine ver besserte
Effizienz kann erzielt werden, indem mehrere empfangene Zellen gepuffert werden
und dann jene Zellen als ein einziger Block zu der Anwendung bzw.
zu dem Anwendungsprogramm weitergeleitete werden.
-
Weil jedoch keine Paketstruktur aus
dem empfangenen Verkehrsstrom abgeleitet werden kann, könnten wenige
Zellen in einem teilweise gefüllten
Empfangspuffer schmachten. Der Zeitsteuerring kann verwendet werden,
um eine Aktion zu planen, die die Rückgabe des Empfangspuffers
in Zeitintervallen garantiert, und zwar ungeachtet der Anzahl der
Zellen, die gegenwärtig
in dem Puffer gespeichert werden. Dieser Mechanismus liefert eine wesentliche
Effizienzverbesserung, während
eine maximale Empfangslatenz garantiert wird.
-
Die obige bevorzugte Ausführungsform
der vorliegenden Erfindung ist eine Hybrid- Implementation, die
ein dynamisches und statisches Planen kombiniert. Diese Anordnung
wird eine geeignete Balance zwischen Effizienz und Flexibilität für die meisten
Netzwerk-Schemata
bereitstellen. Jedoch sind andere Ausführungsformen möglich und
können für spezielle
Netzwerkanwendungen vorgezogen werden.
-
Eine zweite Ausführungsform besteht aus einem
Zeitsteuerring 300, der eine statische Aktionshandhabung
nur realisiert, wie in 9 gezeigt ist. Wahre
statische Aktionen, wie z. B. CBR und Echtzeit-VBR-Zellübertragungen
werden statisch vorab zugewiesen, und zwar zu einer Zeit des Verbindungsaufbaus,
wie oben bei der ersten Ausführungsform. Die
ABR-Zell-Übertragungen
können
ebenso implementiert werden, indem eine Form einer „Pseudo-Statischen"-Planung verwendet
wird, d. h., der Inhalt der statischen Felder 310 des Zeitsteuerrings 300 wird
in Echtzeit modifiziert. Dies tritt in der folgenden Art und Weise
auf: wie in 9 gezeigt ist, ist eine
dynamische Aktion beim Zeitschlitz T2 durchzuführen. Wenn
diese Aktion durchgeführt
wird, muss die nächste
Aktion für
jene virtuelle Schaltung geplant werden, weil sie nicht statisch
vorab zugewiesen worden ist. Man nehme an, dass die Integrale-Tx-Periode 610 anzeigt,
dass diese nächste
Aktion Idealerweise für
den Zeitschlitz T5 geplant wird, dann muss
jedoch, weil jener Zeitschlitz bereits vorab zu der statischen Aktion
S3 zugewiesen worden ist, der Prozessor
linear nach T5 den Zeitsteuerring 300 durchsuchen,
bis ein „freier" Zeitschlitz gefunden worden
ist, hier der Zeitschlitz T7 Die nächste dynamische
Aktion wird jenem Zeitschlitz zugeordnet.
-
Diese Ausführungsform ist für Netzwerkimplementationen
geeignet, die aus vielen CBR- und Echtzeit-VBR-Verbindungen,
aber wenigen simultanen ABR-Übertragern
besteht. Wenn die Anzahl der ABR-Übertrager zunimmt, nimmt die
Länge für eine mittlere
Ringsuche zur Planung zu, was letztendlich den Verarbeitungs-Zusatzaufwand
bzw. Verarbeitungs-Overhead
verboten aufwendig macht.
-
Eine dritte Ausführungsform besteht aus einem
Zeitsteuerring 300, der nur ein dynamisches Planen realisiert,
wie in 10 gezeigt ist. Dieses Szenario
arbeitet präzise
als dynamisches Planen in der obigen Hybrid-Implementation, obwohl
es keine statisch vorab zugewiesenen Zeitschlitze gibt. Bei jedem
Ringeintrag werden dynamische Aktions-Warteschlangen auf der latenten
Warteschlange platziert und die Aktion am oberen Ende der latenten
Warteschlange wird durchgeführt.
Diese Anordnung wird für
Netzwerk-Implementationen vorgezogen, die im Wesentlichen aus ABR-,
UBR- und Nicht-Echtzeit-VBR-Verkehrs-Schaltungen bestehen.
-
Eine vierte Ausführungsform besteht aus einem
Zeitsteuerring 300, der ein duales dynamisches Planen implementiert,
wie in 11 gezeigt ist. Die oberen
Felder 1110 stellen ein dynamisches Planen mit hoher Priorität dar, wo
hingegen die unteren Felder 1120 ein Planen mit niedriger
dynamische Priorität
darstellen. Bei dieser Implementation werden zwei latente Warteschlangen
verwendet, eine für
einen Verkehr mit hoher Priorität,
eine andere für
einen Verkehr mit niedriger Priorität. Alle Aktionen, die sich in
der latenten Warteschlange hoher Priorität befinden, werden vor den
Aktionen in der latenten Warteschlange niedriger Priorität durchgeführt. Diese
Anordnung stellt bessere Dienst-Garantien bereit, als die Ausführungsform
zur Handhabung von dynamischen Einzelaktionen, aber die Leistungsfähigkeit wird
mit einer großen
Anzahl von simultanen Übertragern
bzw. Transmittern abnehmen.
-
Obwohl die obige Beschreibung bezüglich der
Verwendung der vorliegenden Erfindung als ein Übertragungs-Pacing-Mechanismus
an Endpunkten eines ATM-Netzwerkes vorgenommen wurde, werden Fachleute
verstehen, dass die vorliegende Erfindung ebenso bei internen Knoten
oder Schaltungs-Knoten eines ATM-Netzwerks verwendet werden kann.
Eine derartige Anwendung wäre
wünschenswert,
um eine Verkehrs-Gestaltung durchzuführen, um Pacing-Abweichungen
zu korrigieren, die durch Idiosynkrasien innerhalb des Netzwerks
selbst erzeugt werden.
-
Es sollte klar sein, dass verschiedene
andere Modifikationen ebenso für
Fachleute leicht erkennbar sein werden, und zwar ohne von dem Umfang
der Erfindung abzuweichen. Dementsprechend ist es nicht beabsichtigt,
dass der Umfang der Ansprüche,
die hieran angefügt
sind, auf die Beschreibung beschränkt sind, die hierin dargelegt
ist, sondern die Ansprüche
sollen eher so analysiert werden, als ob sie alle Merkmale der patentierbaren
Neuheit umfassen, die in der vorliegenden Erfindung beruht, wobei alle
Merkmale enthalten sind, die als äquivalent dafür für Fachleute
behandelt werden würden,
die diese Erfindung betrifft.