-
Gebiet der
Erfindung
-
Die
Erfindung betrifft ein Verfahren und ein System zum Puffern von
Datenpaketen an einem Wartepunkt in einer digitalen Kommunikationseinrichtung,
wie einem Netzknoten.
-
Allgemeiner
Stand der Technik
-
Um
eine statistische Multiplexierung in einer digitalen Kommunikationseinrichtung
zum Speichern und Weiterleiten auszuführen, reihen solche Einrichtungen
Datenpakete für
eine nachfolgende Verarbeitung oder Übertragung typischerweise in
einer gemeinsamen Speicherressource, wie einem Speicherpuffer, in
eine Warteschlange ein. An einem solchen Wartepunkt, kann die gemeinsame
Speicherressource von Verkehrsströmen, die mit verschiedener
Qualität
von Diensteklassen, Schnittstellenports und vereinigten Pools oder
Gruppen von Verkehrsströmen
verbunden sind, gemeinsam genutzt werden. Bei Verkehr mit solch
vielen Facetten setzen solche Kommunikationseinrichtung häufig irgendeine
Art von Überlastregelungssystem
ein, um sicherzustellen, dass die gemeinsame Speicherressource unter
den verschiedenen Verkehrsströmen "fair" zugeteilt wird.
-
Bei
einem Kommunikationssystem mit asynchronem Übertragungsmodus (ATM) ist
beispielsweise der elementarste Verkehrsstrom eine virtuelle Verbindung,
die zu einer Anzahl von verschiedenen Arten der Qualität von Dienstekategorien
gehören
kann. Die Arbeitsgruppe ATM Forum Traffic Management hat fünf (5) Verkehrsklassen
oder Dienstekategorien definiert, die sich durch die Parametersätze unterscheiden,
die Garantien für
Quellenverhalten und Dienstequalität (QoS) beschreiben. Diese
Kategorien beinhalten Dienstekategorien mit konstanter Bitrate (CBR),
in Echtzeit variabler Bitrate (rtVBR), nicht in Echtzeit variabler
Bitrate (nrtVBR), verfügbarer
Bitrate (ABR) und nicht spezifizierter Bitrate. Die Dienstekategorien
mit ABR und UBR sollen Datenverkehr tragen, der keine spezifischen
Zellenverlust- oder Verzögerungsgarantien
aufweisen. Ein Dienst mit UBR spezifiziert keine mit dem Verkehr
zusammenhängende
Garantien, während
Dienste mit ABR versuchen, eine minimale nutzbare Bandbreite bereitzustellen, die
als minimale Zellenrate (MCR) bezeichnet wird. Die Arbeitsgruppe
ATM Forum Traffic Management und die Internationale Telekommunikationsvereinigung (ITU)
schlugen auch eine neue Dienstekategrie vor, die als garantierte
Rahmenrate (GFR) bezeichnet wird. Die GFR soll einen einen Dienst ähnlich der
UBR bereitstellen, aber mit einer garantierten minimalen Bandbreite
auf einer Rahmenebene, die durch eine MCR-Garantie auf Zellenniveau abgebildet
wird.
-
Bei
einer ATM-Einrichtung, wie einem Netzumschalter, kann der Speicherpuffer
an jedem gegebenen Wartepunkt zu einer Mehrzahl von Warteschlangen
organisiert werden, die Datenpakete als Aggregate für zu einer
der Servicekategorien gehörigen
VCs enthalten. Alternativ kann jede Warteschlange einer bestimmten VC
zugeordnet sein. Ungeachtet der Struktur der Warteschlangenbildung
stellt jede VC einen Verkehrsstrom dar und Gruppen von VCs, die über eine
oder mehrere Warteschlagen gehen, können als "Verkehrsstromsätze" betrachtet werden. Zum Beispiel stellen
zu einer Bestimmten Diensteklasse oder Eingangs/Ausgansg-Port gehörige VCs
eine Verkehrsstrommenge dar. Wenn der Speicherpuffer überlastet
wird, kann es wünschenswert
sein, seine Nutzung unter den Servicekategorien und unter verschiedenen
Verkehrsstromsätzen
und deren individuellen Verkehrsströmen zuzuteilen. Insbesondere
in einem Netz, in dem Verbindungen mit GFR und ABR um Pufferplatz
wetteifern, kann es wünschenswert
sein, eine faire Verteilung des Speicherpuffers zwischen diesen
Dienstekategorien und zwischen den einzelnen Verkehrsströmen oder
-gruppen davon zu erreichen.
-
Es
gibt eine Anzahl von Schemata der fairen Pufferzuweisung (FBA).
Ein Schema zum annehmbaren Zuweisen von Pufferplatz ist es, Pakete
auf der basierend auf einer Überwachung
selektiv zu verwerfen. Als Beispiel dieses Schemas in einer ATM-Umgebung wird ein
Paket markiert (d.h. sein CLP-Feld wird auf 1 gesetzt), wenn die
entsprechende Verbindung ihre MCR übersteigt, und wenn eine Überlastung
auftritt, wird Pakten, bei denen eine Feld für die Zellenverlustpriorität (CLP)
auf Null gesetzt ist, eine Verwerfpriorität gegenüber Paketen gegeben, deren
CLP-Feld auf Eins gesetzt ist. Siehe ATM Forum Technical Comittee,
(Lebensliste der Arbeitsgruppe Traffic Management)", ATM Forum, btd-tm-01.02,
Juli 1998. Dieses Schema schaffte es jedoch nicht, ungenutzten Pufferplatz
unter Verbindungen fair zu verteilen.
-
Ein
weiteres bekanntes Schema basiert auf mehrfachen Pufferfüllstandsschwellen,
wobei ein gemeinsam genutzter Puffer mit diesen Schwellen partitioniert
wird. Bei diesem Schema tritt ein Verwerfen von Paketen auf, wenn
die Belegung der Warteschlangen eine der Schwellen überschreitet
und die Verbindung ihren fairen Anteil am Puffer überstiegen hat.
Der faire Pufferanteil einer Verbindung wird auf der Basis des MCR-Wertes
der Verbindung und der Summe der MCRs aller aktiven Verbindungen
berechnet, die den gemeinsam genutzten Puffer nutzen. Diese Technik
stellt jedoch keinen Anteil des Puffers proportional zur MCR bereit,
weil freier (d.h. zugewiesener, aber nicht genutzter) Puffer, der
als
definiert werden kann, wobei
Qs der Pufferfüllstand,
Qi die Puffersegmentzählung
für eine
Verbindung i, und
der faire Anteil des Puffers
ist, der der Verbindung zugewiesen ist, unter den Verbindungen zufällig verteilt
wird.
-
Ein
weiteres Schema für
eine faire Zuweisung von Pufferplatz über selektives Verwerfen basiert
auf dynamischen Schwellen pro VC. Siehe Choudhury, A. K., and Hahne,
E. L., "Dynamic
Queue Length Threshold in a Shared Memory ATM Switch", Proceedings of
I. E. E. E. Infocom, 96, März
1996, Seiten 679 bis 686. Bei diesem Schema wird die zu jeder VC
gehörige
Schwelle basierend auf dem ungenutzten Pufferplatz und dem MCR-Wert
einer Verbindung periodisch erweitert. Ein Verwerfen von Paketen
tritt auf, wenn die Belegung der VC größer als die Schwelle der VC
ist. Dieses Verfahren reserviert Pufferspeicher, um einen Überlauf
zu verhindern. Die Menge an reserviertem Pufferplatz hängt von
der Anzahl aktiver Verbindungen ab. Wenn es nur eine aktive Verbindung
gibt, wird der Puffer nicht vollständig genutzt, d.h. eine gemeinsame
Nutzung des gesamten Puffers ist nicht gestattet.
-
Die
WO 97/43869 offenbart ein Verfahren für die gemeinsame Nutzung eines
Puffers, um ein übermäßiges Abonnieren
eines gemeinsamen Puffers zu verwalten. Die WO 97/43869 verwendet
kein wirklich hierarchisches Modell. Der Puffer wird nur innerhalb
von Kanälen
der gleichen Ebene geteilt, die Verkehrsströmen des gleichen Niveaus zugewiesen
sind. Die Größen der
Pufferanteile, die verschiedenen Strömen zugewiesen werden, werden
dynamisch berechnet. Das Berechnungsverfahren verwendet eine Nachschlagetabelle
(LUT), die einen Skalierungsfaktor bestimmt, der auf die Anteilgröße angewendet
wird, aber nur, wenn eine Überlastung
auftritt. Wenn es keine Überlast
gibt, wird der Speicher unter den wetteifernden Nutzern basierend
auf gegebenen konstanten Gewichten gemeinsam genutzt, wie in der
ersten Zeile der LUT (Seite 9) zu sehen ist. Dies verbietet eine
Zuweisung des gesamten Puffers.
-
Die
US 5546389 offenbart eine
gemeinsame Nutzung eines Pufferspeichers unter Prioritätsklassen. Ein
Verfahren verwendet dynamisch geregelte Schwellen. Diese Schwellen
werden berechnet, um eine gegebene Verlustwahrscheinlichkeit für die Klasse
mit der höchsten
Priorität
aufrechtzuerhalten, indem die Schwellen von Klassen mit niedrigerer
Priorität
entsprechend eingestellt/verringert werden. Dieses Verfahren ist
dafür bestimmt,
eine Zuweisung innerhalb von Nutzern mit verschiedenen Prioritätsniveaus
zu verwalten. Die Berechnung der Schwelle steht nicht mit einer Überlastung
des Puffers in Zusammenhang und überwacht
nicht einen solchen Belegungsindex für den Puffer über die
Zeit. Sie betrachtet nicht eine Gesamtbelegung des Puffers, um die
Schwellen für
jeden Teilpuffer zu berechnen. Das Problem ist hier anders. Die
optimale Nutzung eines Puffers wird nicht angesprochen, aber statt
dessen versucht das Verfahren, eine gegebene Qualität zu erreichen/aufrechtzuerhalten – wenigstens
für die
Ebene mit der höchsten
Priorität.
In dieser Anmeldung gibt es kein Risiko oder Problem, das mit einer übermäßigen Abonnierung
verbunden ist. Ein solches Problem wird nicht angesprochen.
-
Choudhury
et al. offenbart in "Dynamic
queue length thresholds for shared-memory packet switches" (IEEE/ACM Transactions
on Networking, IEEE Bd. 6, Nr. 2, S. 130–140, 1. April 1998) die Implementierung einer
gemeinsamen Nutzung eines Puffers basierend auf entweder statischen
Schwellen (ST), zurückgestellten
(PO) oder dynamischen Schwellen (DT). Er zielt darauf, das Problem
zu lösen,
einen Mechanismus für
die gemeinsame Nutzung eines Puffers zu haben, der die Einfachheit
von ST-Zugängen
mit der Anpassungsfähigkeit
von solchen mit PO bietet. Er offenbart ein DT-Verfahren, bei für jede Warteschlange
ihre eigenen Schwelle zu jedem Zeitpunkt proportional zum ungenutzten
Platz im Puffer berechnet wird. Dies ist ein gewichteter Zugang
und er trägt
immer dazu bei, ungenutzte Ressourcen unter verschiedenen Warteschlangen
fair zu teilen. Dieser Zugang, wie er in der Beschreibung der Anmeldung
erläutert
wird, trifft auf die gleiche Einschränkung, dass jede Warteschlange
ihren Anteil erhält,
sogar wenn sie ihn nicht benötigt.
Dies führt
zur Unmöglichkeit
einer gemeinsamen Nutzung des gesamten Puffers. Dies taucht in dem
genannten Dokument, Seite 2, auf, wo zu lesen ist: "das DT-Verfahren hält bewusst
eine kleine Menge an Puffersplatz in Reserve".
-
Derselbe
Autor offenbart in "Dynamic
queue length thresholds for multipriority traffic" (Teletraffic science
and engineering, Bd. 2A, 22. Juni 1997, S. 561–570) auch eine Erweiterung
des vorhergehenden DT-Verfahrens auf Klassen mit verschiedenen Verlustwahrscheinlichkeiten.
Das Hauptprinzip bleibt das gleiche mit den gleichen Nachteilen.
-
Der
oben genannte Stand der Technik verteilt ungenutzten Pufferplatz
nicht fair unter Verbindungen oder Verkehrsstromgruppen und stellt
insbesondere keine zur MCR proportionale annehmbare Anteilsverteilung
des Puffers bereit. Einige FBA-Schemata aus dem Stand der Technik
sorgen auch nicht für
eine gemeinsame Nutzung des gesamten Puffers. Ein weiterer Nachteil
bei einigen FBA-Schemata aus dem Stand der Technik ist die Tatsache,
dass das Thema mehrere Verkehrsstromgruppen, die um dieselbe Pufferressource wetteifern,
nicht angesprochen wird. Die Erfindung strebt an, einige oder alle
dieser und weiterer Einschränkungen
des Standes der Technik zu überwinden
oder beseitigen.
-
Kurzdarstellung
der Erfindung
-
Ein
Aspekt der Erfindung betrifft ein Verfahren zur Partitionierung
eines Speicherpuffers. Das Verfahren schließt das Definieren einer Hierarchie
von Speicherpartitionen ein, einschließlich wenigstens einer oberen
Ebene und einer unteren Ebene, wobei eine nicht zur unteren Ebene
gehörende
Speicherpartition aus einer oder mehreren Tochterspeicherpartitionen
besteht. Die Größe jeder
Speicherpartition der oberen Ebene wird bereitgestellt und eine
nominelle Partitionsgröße für die Tochterpartitionen
einer gegebenen nicht zur unteren Ebene gehörenden Speicherpartition wird
basierend auf der Überlastung
der gegebenen Speicherpartition dynamisch berechnet. Die Größe jeder
Tochterspeicherpartition wird als gewichtete Menge ihrer nominellen
Partitionsgröße dynamisch
berechnet. Diese Schritte werden iteriert, um die Größe jeder
Speicherpartition auf jeder Ebene der Hierarchie dynamisch zu bestimmen.
Die Speicherpartitionen auf der untersten Ebene der Hierarchie stellen
den Platz dar, der (einzelnen oder angehäuften) Verkehrsströmen zugewiesen
wird, und die Größe der Partition
auf jeder Ebene stellt eine Schwelle für die Speicherbelegung für den Verkehrsstrom
dar.
-
Die
Speicherpartitionen sind vorzugsweise "weich" im Gegensatz zu "harten" Partitionen, dadurch, dass wenn der
von den zu einer gegebenen Partition gehörigen Paketen belegte Speicherplatz
die Größe der Partition übersteigt,
dann zu dieser Partition gehörige
eingehende Pakete nicht automatisch verworfen werden. In den hier
beschriebenen Ausführungsformen
stellt jede Speicherpartition Pufferplatz dar, der einer Gruppe oder
einer Menge aus einem oder mehreren Verkehrströmen auf verschiedenen Ebenen
der Granularität
zugewiesen wird. Zum Beispiel kann eine Speicherpartition der dritten
Ebene bezüglich
aller zu einem bestimmten Ausgangsport gehörigen Verkehrströme bereitgestellt
sein und kann eine Speicherpartition der zweiten Ebene zu einer
Untermenge jener Verkehrsströme
gehören,
die zu einer bestimmten Dienstekategorie gehören. Daher kann die Größe einer
gegebenen Partition als Ziel-Speicherbelegungsgröße für die Gruppe von Verkehrsströmen betrachtet
werden, die der gegebenen Speicherpartition entsprechen. Auf der
untersten Ebene der Hierarchie wirkt die Partitionsgröße jedoch
als Schwelle für
die Menge an Speicher, die von einem (einzelnen oder angehäuften) Verkehrsstrom
belegt werden kann. Wenn diese Schwelle überschritten wird, wird das
Verwerfen von Paketen ermöglicht.
Auf diese Weise sickert eine angehäufte Überlastung auf höheren Ebenen
durch die Hierarchie nach unten, um die Speicherbelegungsschwellen
für einzelne
Verkehrsströme
zu bewirken. Das Nettoergebnis ist die faire Verteilung von Pufferplatz
unter Gruppen von Verkehrsströmen
und deren einzelnen Mitgliedern.
-
Ein
weiterer Aspekt der Erfindung betrifft ein Verfahren zum Puffern
von Datenpaketen. Das Verfahren umfasst: (a) Definieren einer Hierarchie
von Verkehrsstrommengen, die wenigstens eine obere Ebene und eine
untere Ebene beinhaltet, wobei jede nicht zur unteren Ebene gehörende Verkehrsstrommenge
eine oder mehrere Verkehrsstromuntermenge umfasst; (b) Bereitstellen
einer Ziel-Speicherbelegungsgröße für jede Verkehrsstrommenge
der oberen Ebene; (c) dynamisches Bestimmen einer Ziel-Speicherbelegungsgröße für jede Verkehrsstrommenge,
die eine Elternverkehrsstrommenge aufweist, basierend auf einer Überlastung
der Elternverkehrsstrommenge; (d) Messen der tatsächlichen
Menge an Speicher, der von den zu jedem Verkehrsstrom der unteren
Ebene gehörigen
Paketen belegt ist; und (e) Ermöglichen
des Verwerfens von zu einer gegebenen Verkehrsstrommenge der unteren
Ebene gehörigen
Paketen in dem Fall, in dem die tatsächliche Speicherbelegungsgröße des entsprechenden
Verkehrsstrom der unteren Ebene dessen Ziel-Speicherbelegungsgröße überschreitet.
-
In
den hier beschriebenen Ausführungsformen
wird eine Ziel-Speicherbelegungsgröße für eine gegebene Verkehrsstrommenge
vorzugsweise berechnet, indem eine nominelle Ziel-Belegungsgröße für die Tochterverkehrsstrommengen
eines gemeinsamen Elters berechnet wird. Die Ziel-Speicherbelegungsgröße für jede solche
Tochterverkehrsstrommenge wird dann auf eine gewichtete Menge an
nomineller Ziel-Belegungsgröße eingestellt.
Die nominelle Ziel-Belegungsgröße für eine gegebene
Gruppe von Tochterverkehrsstrommengen ändert sich vorzugsweise in Übereinstimmung
mit einer vorher spezifizierten Funktion in Antwort auf die Überlastung
ihrer gemeinsamen Elternverkehrsstrommenge. Zum Beispiel setzen
die hier beschriebenen Ausführungsformen
geometrische und fallende Exponentialfunktionen zur Berechnung der
nominellen Ziel-Belegung basierend auf der Überlastung ein, die als eine
Disparität
zwischen der Ziel- und der gemessenen Speicherbelegungsgröße einer
Elternverkehrsstrommenge definiert ist.
-
In
den offenbarten Ausführungsformen
ist die Erfindung im Kontext eines ATM-Kommunikationssystems implementiert.
In diesen Ausführungsformen
wird der in Schritt (e) angegebene Vergleich vor oder bei Empfang
der ersten Zelle eines Rahmens der ATM-Anpassungsebene 5 (AAL5) ausgeführt, um
ein frühes
Verwerfen von Paketen entsprechend dem Ergebnis des Vergleichs zu
bewirken.
-
Das
Puffersystem der Erfindung skaliert gut zu große Systeme, die viele hierarchische
Ebenen einsetzen. Dies ist so, weil es relativ wenige zu jeder hierarchischen
Ebene gehörige
Zustandsvariablen gibt. Außerdem
können
die meisten Berechnungen im Hintergrund ausgeführt werden und können Nachschlagetabellen verwendet
werden, wodurch die Verarbeitungsanforderungen für die zeitkritische Ankunft
von Paketen minimiert werden. Das Puffersystem ermöglicht die
gemeinsame Nutzung des gesamten Puffers, wie als Beispiel unten
ausführlicher
erörtert
wird.
-
Kurze Beschreibung
der Zeichnungen
-
Das
vorhergehende und weitere Aspekte der Erfindung werden aus der folgenden
Beschreibung spezieller Ausführungsformen
davon und den beigefügten
Zeichnungen deutlicher, die nur als Beispiel die Prinzipien der
Erfindung darstellen. In den Zeichnungen, in denen gleiche Elemente
gleiche Bezugszahlen aufweisen (und in denen einzelne Elemente eindeutige
alphabetische Beifügungen
tragen), ist:
-
1 ein
Systemblockdiagramm einer herkömmlichen
Umschalterarchitektur, die verschiedene Wartepunkte darin darstellt;
-
2 ein
Systemblockdiagramm eines Puffersystems gemäß einer ersten Ausführungsform
der Erfindung, das an einem der in 1 gezeigten
Wartepunkte eingesetzt wird;
-
3 ein
Venn-Diagramm, das zeigt, wie Speicher in der ersten Ausführungsform
hierarchisch partitioniert wird;
-
4 ein
Diagramm, das die hierarchische Ziegel-Partitionierung des Speichers
in der ersten Ausführungsform
in Baumform zeigt;
-
5 ein
Systemblockdiagramm eines Puffersystems gemäß einer zweiten Ausführungsform
der Erfindung;
-
6 ein
Diagramm, das in Baumform zeigt, wie der Speicher in der zweiten
Ausführungsform
hierarchisch paritioniert ist;
-
7 ein
Diagramm, das in Baumform einen alternativen Zugang zur hierarchischen
Partitionierung des Speichers in der zweiten Ausführungsform
zeigt;
-
8 ein
Systemblockdiagramm eines Puffersystems gemäß einer dritten Ausführungsform
der Erfindung;
-
9 ein
Hardware-Blockdiagramm eines Abschnitts des Puffersystems der dritten
Ausführungsform; und
-
10 ein
Diagramm, das in Baumform zeigt, wie der Speicher der dritten Ausführungsform
hierarchisch paritioniert ist.
-
Ausführliche
Beschreibung der bevorzugten Ausführungsformen
-
1 ist
ein Diagramm der Architektur eines herkömmlichen Netzumschalters oder
-knotens 9, wovon ein Beispiel der 36170 (Warenzeichen)
ATM-Umschalter ist, der von Newbridge Networks Corporation, Kanata,
Ontario, Kanada, hergestellt wird. Der Knoten 9 umfasst
eine Vielzahl von Eingangs- und Ausgangsleitungskarten 11A und 11B zum
Anschluss an das Netz (nicht gezeigt) über physikalische Anschlussports.
Die Eingangsleitungskarten 11A sind so konfiguriert, dass
sie Paketverkehr vom Netzwerk über
Eingangsports 19 empfangen und Pakete über Ausgangsports 20 zu
einem Umschaltkern 13 übertragen.
Der Umschaltkern 13 leitet, wie in der Technik bekannt,
jedes Paket zu den geeigneten Ausgangsleitungskarten 11B.
Diese Leitungskarten sind so konfiguriert, dass sie Paketverkehr
vom Umschaltkern 13 über
Eingangsports 19 empfangen und Pakete über Ausgangsports 20 zum
Netz übertragen.
-
Die
Leitungskarten 11A und 11B sowie der Umschaltkern 13 sind "Speicher- und Weitergabe-"Einrichtungen und
bieten somit einen Punkt, QP, im Knoten 9, an dem Pakete
in einem Speicher oder Puffer für
eine nachfolgende Verarbeitung durch die Einrichtung in Warteschlangen
eingereiht werden (nachfolgend "Wartepunkt"). An jedem Wartepunkt
ist ein Pufferverwaltungssystem als Teil der Speicher- und Weiterleitungsfunktionalität bereitgestellt.
-
2 zeigt
ein Beispiel eines Pufferverwaltungssystems 10, das in
der Ausgangsleitungskarte 11B eingesetzt wird. Das System 10 umfasst
eine gemeinsame Speicherressource, wie einen physikalischen Speicher 12,
von dem Teile, wie nachfolgend erörtert, verschiedenen Trabanten
oder logischen Verkehrsströmen, wie
VCs, 25 zugewiesen werden, die von einem angehäuften Eingangsstrom 18 getragen
oder auf ihm multiplexed werden. Eine Steuerung, wie das Warteschlangenverwaltungsmodul
(QMM) 24 organisiert und verwaltet den Speicher 12 gemäß einem
ausgewählten
Warteschema. In der dargestellten Ausführungsform setzt das QMM 24 beispielsweise
ein Schema der angehäuften
Warteschlangenbildung ein, das auf Diensteklasse und Ausgangsport
basiert. Insbesondere organisiert das QMM 24 den Speicher 12 zu
mehrfachen Mengen 15 logischer Warteschlangen 17.
In jeder Menge 15 gibt es vorzugsweise eine Warteschlange
hinsichtlich jeder Diensteklasse des Kommunikationsprotokolls. Bei
Anwendung auf ATM-Kommunikationen kann zum Beispiel jede Menge 15 sechs
(6) Warteschlangen 17 hinsichtlich der Dienstekategorien
CBR, rtVBR, nrtVBT, ABR, UBR und GFR umfassen. Alternativ können die
zu zwei oder mehreren Dienstekategorien gehörigen Pakete in einer gemeinsamen
Warteschlange gespeichert werden, in welchem Fall es ein geringeres
als ein 1:1-Verhältnis
zwischen Warteschlange und Dienstekategorie geben kann. Auf jeden
Fall entspricht die Anzahl von Mengen 15 vorzugsweise der
Anzahl von Ausgangsports 20 der Leitungskarte 11B,
wobei jede Menge von Warteschlangen Pakete enthält, die für den entsprechenden Ausgangsport
bestimmt sind.
-
Folglich
entscheidet das QMM 24, wenn der Eingangsport 19 die
Pakete des angehäuften
Eingangsstroms 18 empfängt,
basierend auf bestimmten Kriterien, die unten ausführlicher
beschrieben sind, ob ein gegebenes Paket gespeichert oder verworfen
werden soll. Wenn ein Paket gespeichert werden soll, reserviert das
QMM 24 die geeignete Menge an Speicher, ordnet jedes Paket
der geeigneten logischen Warteschlange 17 zu und speichert
das Paket im Speicher 12. Beim dargestellten Umschalter
36170 (Warenzeichen) basiert die Funktion des Anfügens eines
eingehenden Paketes an eine gegebene logische Warteschlange 17 teilweise auf
Kopf- und Adressinformation, die vom Paket getragen wird, und gespeicherter
Information über
die Verbindungskonfiguration, aber es ist selbstverständlich,
dass andere Umschalter verschiedene andere Mechanismen einsetzen
können,
um diese Fähigkeit
bereitzustellen. Entscheidungseinrichtungen (arbiters) 22 multiplexieren
jeweils Pakete von den logischen Warteschlangen auf ihre entsprechenden
Ausgangsports 20 entsprechend einem ausgewählten Diensteplanungsschema,
wie dem gewichteten fairen Einreihen in Warteschlangen (WFQ). Wenn
eine Warteschlange/Paket von einer Entscheidungseinrichtung 22 bedient
wird, wird der entsprechende Speicherblock frei gemacht, wird dem
QMM 24 gemeldet, welche Warteschlange bedient wurde, und
wird das Paket an den entsprechenden Ausgangsport 20 für eine Übertragung über einen
angehäuften Ausgangsstrom 21 geliefert.
-
Die
Venn- und Baumdiagramme von 3 und 4 zeigen,
wie der physikalische Speicher in hierarchischer Weise in Übereinstimmung
mit dem Schema zum Einreihen in Warteschlangen, das unter Bezugnahme
auf 2 beschrieben wurde, partitioniert sein kann.
In diesem Beispiel gibt es vier Ebenen in der hierarchischen Partitionierung
des Speichers 12. Auf einer ersten oder oberen Ebene wird
der Speicher logisch zu einem gemeinsam genutzten Pufferplatz 14 partitioniert,
der eine Untermenge (weniger als oder gleich) der Menge des festen
physikalischen Speichers 12 einnimmt. Der überschüssige Speicherplatz über dem
gemeinsam genutzten Pufferplatz stellt freien, nicht zugewiesenen
Platz dar. Auf einer zweiten Ebene wird der dem gemeinsamen Puffer 14 zugewiesener
Speicherplatz unter den verschiedenen Ausgangsports 20 der
Leitungskarte 11B partitioniert. Auf einer dritten Ebene
wird der jedem Ausgangsport zugewiesene Speicherplatz weiter zu
Diensteklassen partitioniert. Auf einer vierten oder unteren Ebene
wird der jeder Diensteklasse zugewiesene Speicherplatz unter einzelnen
Verkehrsströmen
weiter partitioniert. Im Falle von ATM-Kommunikationen können diese
Verkehrsströme
einzelne VCs sein, wie gezeigt, wie Schaltungen für virtuelle
Kanäle (VCC)
und Schaltungen für
virtuelle Wege (VPC), aber bei anderen Arten von Kommunikationssystemen
bilden weitere Arten von logischen Paketströmen Verkehrsströme. Zum
Beispiel sind bei Netzen mit Internetprotokoll (IP) nach Kennzeichnung
umgeschaltete Wege eine Form von Verkehrsstrom. Ebenso bilden logische Paketströme, die
sich aus den Weiterleitungsregeln eines Paketklassifizierers wirksam
Verkehrsströme.
-
Im
Allgemeinen können
auf jeder Ebene der hierarchischen Partitionierung des Speichers 12 eine
oder mehrere Speicherpartitionen bestehen, wobei jede solche Partition
weiter in eine oder mehrere Partitionen unterteilt ist, die hier
einzeln als "Tochter"partition bezeichnet
wird, die sich auf einer direkt darunterliegenden Ebene der Hierarchie
befindet. Die Ausnahme davon tritt natürlich auf der untersten Ebene
der Hierarchie auf, bei der Speicherpartitionen nicht weiter unterteilt
sind. Ebenso weist eine Partition, die sich auf der obersten Ebene
der Hierarchie befindet, keine "Eltern"partition auf.
-
Bei
der vorliegenden Anmeldung (d.h. Kommunikationssystemen) gibt es
auch eine entsprechende Verkehrsstromhierarchie, da jede Speicherpartition
(z.B. gemeinsam genutzter Puffer, Ports, Klassen und VCs) Speicherplatz
darstellt, der theoretisch einer Gruppe oder Menge von einem oder
mehreren Verkehrsströmen
mit verschiedenen Ebenen der Granularität zugewiesen ist. Zum Beispiel
besteht in der in 3 und 4 gezeigten
Ausführungsform
eine Verkehrsstrommenge der vierten Ebene aus einer einzelnen VC 25a und
besteht eine Verkehrsstrommenge der zweiten Ebene aus einer Gruppe
von VCs 25(P1) , einschließlich der VC 25a,
die zum Ausgangsport Nr. 1 gehört
(Bezugszahl 20a in 2). Aus
dem vorliegenden Beispiel ist ersichtlich, dass eine gegebene Verkehrsstrommenge
aus einem oder mehreren Verkehrsströmen besteht, die hier als "Tochter"menge bezeichnet
werden, die sich auf einer direkt darunterliegenden Ebene der Hierarchie befinden.
Die Ausnahme davon tritt auf der untersten Ebene der Hierarchie
auf, bei der die Verkehrsstrommengen keine definierten Untermengen
aufweisen. Ebenso weist eine Verkehrsstrommenge, die sich auf der obersten
Ebene der Hierarchie befindet, keine "Eltern"menge auf.
-
Die
Speicherpartitionen sind "weich" im Gegensatz zu "harten" Partitionen, was
bedeutet, dass wenn der von zu einer gegebenen Partition gehörigen Paketen
belegte Speicherplatz die Größe der Partition übersteigt,
dann das QMM 24 nicht automatisch zu dieser Partition gehörige eingehende
Pakete verwirft. Statt dessen kann die Größe einer gegebenen Partition
als Ziel-Speicherbelegungsgröße für die Verkehrsstrommenge betrachtet
werden, die dieser Speicherpartition entspricht. Auf der untersten
Ebene der Hierarchie wirkt die Partitionsgröße jedoch als Schwelle für die Menge
an Speicher, die von einem einzelnen Verkehrsstrom belegt werden
kann. Wenn diese Schwelle überschritten
wird, ermöglicht
das QMM 24 das Verwerfen von Paketen. Insbesondere kann
das QMM so konfiguriert sein, dass ein Verwerfen von Paketen oder
Zellen (auf der ATM-Ebene) bewirkt wird, oder dass ein frühes Verwerfen
von Rahmen oder teilweisen Rahmen für einen auf Rahmen basierenden
Verkehr (auf der AAL-Ebene) bewirkt wird.
-
Die
Größe jeder
Partition ist im Allgemeinen variabel und wird vom QMM 24 dynamisch
bestimmt, um die angehäufte Überlastung
des Speichers 12 zu regeln. Insbesondere wird auf jeder
Ebene der Hierarchie die angehäufte Überlastung
in einer gegebenen Elternspeicherpartition geregelt, indem eine
nominelle Partitionsgröße berechnet
wird, die auf jede ihrer Tochterpartitionen (die auf der direkt
darunter liegenden Ebene bestehen) angewendet werden kann. Der Wert
der nominellen Partitionsgröße für die Tochterpartitionen
eines gemeinsamen Elters kann auf einer Anzahl von Faktoren basieren,
wie dem Grad an Überlastung,
ihrer Änderungsrate
oder sogar nur dem Bestehen oder Nichtbestehen einer Überlastung
in der Elternpartition. Unten werden spezifische Ausführungsformen
gegeben. Ungeachtet der Funktion wird dieser Vorgang über die
gesamte Hierarchie rekursiv ausgeführt, um die Größe für jede Partition
auf jeder Ebene der Hierarchie dynamisch zu bestimmen. Auf diese
Weise sickert eine angehäufte Überlastung auf
höheren
Ebenen durch die Hierarchie nach unten, um die Speicherbelegungsschwellen
für alle
Verkehrsströme
zu bewirken.
-
Es
wird nun eine zweite Ausführungsform,
die in Software implementiert ist, erörtert, um einen spezifischen
Algorithmus zum Berechnen der Partitionsgrößen zu beschreiben. Unter zusätzlicher
Bezugnahme auf 5 und 6 ist diese
stärker
vereinfachte Ausführungsform
auf ein Pufferuntersystem 10' mit
einem einzigen Port gerichtet, bei dem der Speicher zu einem gemeinsam
genutzten Speicherpuffer 14' konfiguriert
ist, der insbesondere für
ATM-ABR- und -UBR-Verkehr
bereitgestellt ist. Der verbleibende Teil des Speichers 12 kann
anderen ATM-Dienstekategorien zugewiesen, wie vorher beschrieben,
oder für Überzuweisungszwecke reserviert
sein. 6 zeigt die hierarchische Partitionierung des
Speichers unter Verwendung einer Baumstruktur. Da das Untersystem 10' nur einen Ausgangsport
besitzt, wurde in dieser Hierarchie keine Vorkehrung für eine Partitionierung
des Speichers unter Ausgangsports getroffen wie in der vorher erörterten
Ausführungsform.
Somit besitzt die hierarchische Partitionierung des Speichers 12 und
die entsprechende Verkehrsstromhierarchie nur drei Ebenen, nämlich den
gemeinsam genutzten Puffer 14', Dienstekategorien 16 und
VCs 25.
-
Der
folgende Pseudo-Code zeigt den Algorithmus, der vom QMM 24 in
dieser Ausführungsform
ausgeführt
wird.
-
PSEUDO-CODE
-
VARIABLENDEFINITION:
-
Pro Puffer
-
- • TBS – Eine Konstante,
die eine Zielgröße für den Puffer
mit der Einheit Zellen bereitstellt.
- • B_count – Zähler zum
Messen der Gesamtzahl von im Puffer gespeicherten Zellen, wodurch
die gerade verwendete Menge des gemeinsam genutzten Puffers reflektiert
wird.
- • Last_B_count – Eine Variable
zum Beinhalten der Messung der Gesamtzahl von im Puffer gespeicherten Zellen
während
einer vorherigen Iteration.
- • TSCS – Eine Steuervariable,
die verwendet wird, um eine Zielgröße (als Anzahl von Zellen)
für eine Diensteklasse
im Puffer einzustellen. TSCS variiert basierend auf einer Disparität zwischen
TBS und B_count über
die Zeit, wie unten ausführlicher
erläutert.
- • FM – Eine Konstante,
die verwendet wird, um eine untere Grenze für TSCS bereitzustellen.
- • D1,
D2, D3 und D4 – Konstanten,
die verwendet werden, um eine geometrische Reihe oder Progression zu
bewirken, wie unten ausführlicher
beschrieben.
-
Pro Diensteklasse
-
- • SC_count
[i] – Zähler zum
Messen der Anzahl von Zellen in der Diensteklasse i, wodurch die
tatsächliche Speicherbelegung
für die
Diensteklasse reflektiert wird.
- • Last_SC_count
[i] – Eine
Variable zum Beinhalten der Messung der Gesamtzahl von Zellen in
der Diensteklasse i während
einer vorherigen Iteration.
- • Wsc
[i] – Eine
Konstante, die verwendet wird, um ein Gewicht für die Diensteklasse i zu spezifizieren.
- • TVCS[i] – eine Steuervariable,
die verwendet wird, um eine Zielgröße für eine Verbindung in der Diensteklasse
i einzustellen. TVCS[i] variiert basierend auf einer Disparität zwischen
TSCS*wsc[i] und SC_count[i] über
die Zeit, wie unten ausführlicher
erläutert.
- • TCSmin
und TCSmax – Konstanten,
die verwendet werden, um Mindest- und Höchstbeschränkungen für den Wert von TVCX[i] anzuwenden.
-
Pro Verbindung
-
- • VC_count[i][j] – Zähler zum
Messen der Anzahl der für
die Verbindung j der Diensteklasse i gespeicherten Zellen. (Es ist
zu bemerken, dass die Anzahl von zu jeder Diensteklasse gehörigen Verbindungen
variieren kann und somit j entsprechend für jeden Wert von i einen anderen
Bereich haben kann.)
- • MCR[i][j] – Konstante,
die die MCR oder das Gewicht der VC j der Diensteklasse i angibt.
- • VCT[i][j] – Variable
für die
Schwelle für
das Verwerfen von Zellen für
die Verbindung j der Diensteklasse i. Die Schwelle für das Verwerfen
von Zellen ist proportional zum entsprechenden TVCS[i]; insbesondere VCT[i][j]
= TVCS[i]*MCR[i][j].
-
INITIALISIERUNG:
-
- (100) TSCS := TBS*FBS
- (102) TVCS[i] := 1 ∀ i;
i ∊ {1 .. N}, wobei N die Anzahl von Diensteklassen ist.
-
TSCS PERIODISCH BERECHNEN:
-
- (104) falls ((B_count > TBS) & (B_count > Last_B_count))
- (106) TSCS := TSCS*(1 – D1)
- (108) ansonsten falls (B_count < TBS)
- (110) TSCS := TSCS/(1 – D2)
- (112) beende falls
- (114) der Einschränkung
unterworfen, dass TBS*FBS ≤ TSCS ≤ TBS
- (116) Last_B_Count := B_count
-
TVCS[i] (∀ i) PERIODISCH
BERECHNEN:
-
- (118) falls ((SC_count[i] > TSCS*wsc[i]) & (SC_count[i] > Last_SC_count[i]))
- (120) TVCS[i] := TVCS[i]*(1 – D3)
- (122) ansonsten falls (SC_count[i] < TSCS*wsc[i])
- (124) TVCS[i] := TVCS[i]/(1 – D4)
- (126) beende falls
- (128) der Einschränkung
unterworfen, dass TCSmin ≤ TVCS[i] ≤ TCSmax
- (130) Last_SC_Count[i] := SC_count[i]
-
BEI ANKUNFT VON ZELLEN
FÜR VC[I][J]:
-
- (132) VCT[i][j] := TVCS[i]*MCR[i][j]
- (134) falls (VC_count[i][j] > VCT[i][j])
- (136) ermögliche
EPD
- (138) beende falls
-
Der
Algorithmus schließt
das dynamische Berechnen einer Ziel-Speicherbelegungsgröße, d.h.
Speicherpartitionsgröße, für jede Verkehrsstrommenge
ein. Dies ist in 6 durch durchgezogene Linien
symbolisiert, die verwendet werden, um jede Einheit darzustellen.
Die tatsächliche
Menge an Speicher, die von jeder Verkehrsstrommenge belegt ist,
wird ebenfalls von dem Algorithmus gemessen und ist in 6 durch
konzentrische gestrichelte Linien symbolisiert. Es ist zu bemerken,
dass die tatsächliche
Speichergröße, die
durch irgendeine Verkehrsstrommenge belegt ist, geringer oder größer als
ihre Zielgröße sein
kann.
-
Der
Algorithmus verwendet laufende und historische Überlastungsinformation für eine gegebene
Speicherpartition/Verkehrsstrommenge, um die nominelle Zielgröße für ihre Tochtermengen
zu bestimmen. Allgemein gesprochen berechnet der Algorithmus dynamisch
für jede
Verkehrsstrommenge
- (a) eine Ziel-Speicherbelegungsgröße, und
- (b) eine Steuervariable, die die nominelle Ziel-Speicherbelegungsgröße für die Tochtermengen
der Elternmenge darstellt.
-
In
dem Algorithmus, der rekursiv ist, wird die Ziel-Speicherbelegungsgröße in Schritt
(a) für
die vorliegende Verkehrsstrommenge berechnet, indem die von seinem
Elter berechnete Steuervariable mit einem vorher festgelegten Gewicht
oder Faktor multipliziert wird. Diese Gewichte, die pro Verkehrsstrommenge
bereitgestellt werden, ermöglichen
es, dass jede Tochtermenge eines gemeinsamen Elters eine unterschiedliche Ziel-Belegung
aufweist.
-
Der
Wert der in Schritt (b) berechneten Steuervariablen hängt von
der Überlastung
der vorliegenden Verkehrsstrommenge ab. In dem Algorithmus wird
eine Überlastung
als bestehend betrachtet, wenn die Ziel-Speicherbelegungsgröße die tatsächliche
Speicherbelegungsgröße einer
gegebenen Menge übersteigt. Bei
jeder Iteration des Algorithmus wird der Wert der Steuervariablen
verringert, wenn gerade eine Überlastung besteht
und wenn die Verkehrsstrommenge vorher eine Überlastung zeigte. Diese historische Überlastungsinformation
basiert vorzugsweise auf der letzten Iteration des Algorithmus.
Hingegen wächst
der Wert der Steuervariablen, wenn für die Verkehrsstrommenge keine Überlastung
besteht. Somit basiert in dieser Ausführungsform die Zielbelegung
für die
Tochtermengen eines gemeinsamen Elters auf einer Disparität zwischen der
Ziel- und der tatsächlichen
Speicherbelegung des Elters.
-
Die
Schritte (a) und (b) werden für
jede Verkehrsstrommenge auf einer bestimmten Ebene ausgeführt, um
die jeweiligen Zielbelegungen für
dessen Tochtermengen auf der nächstniedrigeren
Ebene der Hierarchie zu berechnen. Eine weitere Iteration dieser
Schritte wird auf der nächstniedrigeren
Ebene ausgeführt
usw., bis Zielbelegungen für
die Verkehrsströme
auf der untersten Ebene der Hierarchie berechnet sind.
-
Zum
Beispiel basiert die Zielbelegung für die Diensteklassen 16A und 16B auf
einer Disparität 30 zwischen
der Ziel- und der gemessenen Belegung des gemeinsam genutzten Puffers 14'. Ebenso basiert
die Zielbelegung für
jede VC 25(A1) bis 25(AN) auf einer Disparität 34A zwischen
der Ziel- und der gemessenen Belegung für die Diensteklasse 16A.
Wenn ein AAL-Rahmen oder eine Zelle empfangen wird, identifiziert
der Algorithmus die entsprechende VC und bestimmt, ob ihre tatsächliche
Speicherbelegung ihre Ziel-Speicherbelegungsgröße übersteigt, in welchem Fall
der Rahmen oder die Zelle dem Verwerfen unterzogen wird. Auf diese
Weise sickert eine Überlastung
auf höheren
Ebenen der Verkehrsstromhierarchie durch die kaskadierte hierarchische
Struktur, um die Schwellen von einzelnen Verbindungen zu bewirken.
-
Unter
zusätzlicher
Bezugnahme auf den Pseudo-Code stellt TBS die Ziel-Speicherbelegungsgröße für den Puffer 14 dar.
TBS ist auf der höchsten
Ebene ein festgelegter Wert. TSCS stellt eine nominelle Zielgröße für alle Diensteklassen 16 dar
und TSCS*wsc[i] stellt die Zielgröße für eine bestimmte Diensteklasse
dar. Der Faktor wsc[i] ist das auf eine bestimmte Diensteklasse
angewendete Gewicht, um zu gestatten, dass verschiedene Klassen
verschiedene Ziel-Belegungsgrößen aufweisen.
Ebenso stellt TVCS[i] eine nominelle Zielgröße für die VCs 25 in einer
bestimmten Diensteklasse i dar und stellt TVCX[i]*MCR[i][j], was
gleich VCT[i][j] ist, die Zielgröße sowie
die Schwelle für
das Verwerfen von Zellen für
eine bestimmte VC dar. Der Faktor MCR[i][j] stellt eine zur MCR
proportionale Verteilung von Pufferplatz innerhalb einer Diensteklasse
bereit. TSCS und die Werte für
jedes TVCS[i] und VCT[i][j] werden periodisch berechne und variieren
somit im Allgemeinen über die
Zeit.
-
Es
wird eine Vielfalt von Zählern
(B_Count, SC_Count [i], VC_Count [i][j]) eingesetzt, um die tatsächliche
Speicherbelegungsgröße der verschiedenen
Verkehrsstrommengen zu messen. Diese werden vom QMM 24 immer
dann aktualisiert, wenn eine Zelle, d.h. ein in ATM-Systemen verwendetes
Paket mit fester Größe, im Puffer 14 gespeichert
oder aus ihm entfernt wird. (Das Aktualisieren von Zählern ist
im Pseudo-Code nicht ausdrücklich
gezeigt.)
-
Die
Zeilen 100–102
des Pseudo-Codes initialisieren TSCS und TVCS[i] ∀ i. TSCS
wird auf eine Zielgröße von TBS*FBS
initialisiert. FBS ist vorzugsweise gleich 1/N, wobei N die Anzahl
von Diensteklassen 16 im gemeinsam genutzten Puffer 14' ist. Dies hat
den Effekt eines gleichmäßigen anfänglichen
Zuteilens des Speicherpuffers unter jeder Diensteklasse. Weitere
Initialisierungswerte sind ebenfalls möglich. TVCS[i] wird für jede Verbindung
vorteilhafterweise auf i initialisiert.
-
Die
Zeilen 104–116
betreffen die periodische Berechnung von TSCS. Zeile 104 prüft, ob die
tatsächliche
Belegung des gemeinsam genutzten Puffers 14' größer als seine Ziel-Belegung ist und
wächst.
Wenn ja, wird in Zeile 106 TSCS geometrisch um einen Faktor 1 – D1 verringert,
wobei 0 < D1 < 1, z.B. 0,1. Zeile
108 prüft,
ob die tatsächliche
Belegung des gemeinsam genutzten Puffers 14' geringer als seine Zielgröße ist. Wenn
ja, wird in Zeile 110 TSCS geometrisch um einen Faktor 1/(1 – D2) vergrößert, wobei
0 < D2 < 1, z.B. 0,05. Die
Werte von D1 und D2 werden vorzugsweise so gewählt, dass wenn sich die Zielbelegung
verringert, sie es mit größerer Geschwindigkeit
tut, als wenn sie sich erhöht,
wie durch die jeweiligen Werte 0,1 und 0,05 veranschaulicht. Fachleute
auf diesem Gebiet erkennen, dass D1 und D2 regeln, wie schnell das
System auf Zustandsänderungen
reagiert, und dass etwas Experimentieren bei der Auswahl geeigneter
Werte für
D1 und D2 für
jede bestimmte Anwendung erforderlich sein kann, eine optimale oder
kritisch gedämpfte
Reaktionszeit dafür
zu finden.
-
Zeile
114 beschränkt
TSCS auf vorgeschriebene Höchst-
und Mindestgrenzen für
TBS bzw. TBS*FB. Die Höchstgrenze
verhindert, dass Diensteklassen einen Ziel-Belegungswert jenseits der Verfügbarkeit
des gemeinsam genutzten Puffers erhalten. Die Mindestgrenze begrenzt
TSCS, um sicherzustellen, dass es nicht auf Werte iteriert, die
bewirken würden,
dass Konvergenzzeiten leiden.
-
Die
Zeilen 118–130
betreffen die periodische Berechnung von TVCS[i] hinsichtlich der
Diensteklasse i. Zeile 118 prüft,
ob die tatsächliche
Belegung der Diensteklasse i größer als
ihre Zielgröße ist und
wächst. Wenn
ja, wird in Zeile 120 TVCS[i] geometrisch um einen Faktor 1 – D3 verringert,
wobei 0 < D3 < 1, z.B. 0,1. Zeile
122 prüft,
ob die tatsächliche
Größe der Diensteklasse
i größer als
ihre Zielgröße ist und
wächst.
Wenn ja, wird in Ziele 124 TVCS[i] geometrisch um einen Faktor 1/(1 – D4) erhöht, wobei
0 < D4 < 1, z.B. 0,05. Die Werte
von D3 und D4 werden vorzugsweise so gewählt, dass wenn sich TVCS[i]
verringert, es es mit größerer Geschwindigkeit
tut, als wenn es sich erhöht,
wie durch die jeweiligen Werte 0,1 und 0,05 veranschaulicht.
-
Zeile
128 beschränkt
TVCS[i] auf vorgeschriebene Höchst-
und Mindestgrenzen, um sicherzustellen, dass Konvergenzzeiten nicht übermäßig sind.
TCSmax ist vorzugsweise gleich TBS/LR, wobei LR die Leitungsrate
des entsprechenden Ausgangsports ist. Diese obere Grenze stellt
auch sicher, dass eine Verbindung nie mehr als TBS Pufferplatz erhalten
kann. TCSmin ist vorzugsweise gleich TBS/MCRmin, wobei MCRmin die
minimale MCR aller Verbindungen ist. Dies stellt eine konservative
untere Grenze bereit.
-
Bei
dieser Ausführungsform
bewirkt das QMM 24 ein frühes Verwerfen von Paketen (EPD)
und somit werden die Zeilen 132–138
aktiviert, wenn eine Zelle Beginn des Pakets (SOP) vom QMM 24 empfangen
wird. (Im AALS-ATM-Anpassungsebenen-Protokoll gibt die Zelle Ende
des Pakets (EOP) den Beginn des nächsten Pakets an). Die Ziel-Speicherbelegungsgröße oder
Schwelle für
VC j der Diensteklasse i wird in Zeile 132 berechnet, wenn eine
SOP-Zelle empfangen wird. Die Schwelle ist gleich TVCS[i], multipliziert
mit der MCR der Verbindung. Wie früher erwähnt sorgt dies für eine zur
MCR proportionale Verteilung des Pufferplatzes, der der Diensteklasse
i zugeteilt wird. Zeile 134 prüft,
ob die Anzahl von für
die VC j gespeicherten Zellen VCT[i][j] übersteigt, ihre Zielbelegung.
Wenn ja, wird in Zeile 136 das EPD ermöglicht und das QMM 24 verwirft
anschließend
alle zum AAL5-Rahmen gehörigen
Zellen. Die Zeilen 132 bis 138 werden bei Ankunft der nächsten SOP-Zelle
erneut ausgeführt.
Bei der Alternative kann das System eine Politik des teilweisen
Verwerfens von Paketen (PPD) ausführen. Immer noch alternativ
kann Zeile 136 so modifiziert werden, dass ein Verwerfen von Zellen
per se ausgeführt
wird, wobei die Zeilen 132–138
bei Ankunft jeder Zelle ausgeführt
werden.
-
Diese
Ausführungsform
ist leicht auf Systeme skalierbar, die eine große Zahl von Diensteklassen
und Verbindungen aufweisen, da es relativ wenige zu dem gemeinsam
genutzten Puffer und den Diensteklassen gehörige Zustandsvariablen gibt.
Außerdem
können
die meisten Berechnungen im Hintergrund ausgeführt werden, wodurch Verarbeitungsanforderungen
bei der zeitkritischen Zellenankunft minimiert werden.
-
Diese
Ausführungsform
gestattet auch eine gemeinsame Nutzung des gesamten Puffers. Um
zu sehen, warum das so ist, wird ein Extremfall betrachtet, in dem
alle zur Diensteklasse 16B gehörige VCs aufhören, Zellen
zu übertragen.
In diesem Fall beginnt der gemeinsam genutzte Puffer 14', sich schnell
zu leeren, was bewirkt, dass die gemessene Puffergröße signifikant
geringer als die Ziel-Puffergröße ist.
Dies bewirkt, dass die Zielgrößen für die Diensteklassen 16A und 16B sich
bis auf das Niveau von TBS, der Zielgröße für den Puffer, erhöhen. Der
Reihe nach erhöht
sich TVCS[i] für
alle Verbindungen auf eine Größe, die
ermöglicht, dass
die Belegung der Dienstekategorie TBS erreicht. Folglich wird der
gesamte Puffer für
alle übertragenden Verbindungen
der Diensteklasse 16A verfügbar und die gemeinsame Nutzung
des gesamten Puffers wird erreicht. Darüber hinaus wird bemerkt, dass
jede VC 25(A1) bis 25(AN) der Diensteklasse 16A einen
Anteil des Pufferplatzes erhält,
der dieser Diensteklasse im Verhältnis
zur MCR der Verbindung zugeteilt wird. Folglich wird der momentan
ungenutzte Pufferplatz der Diensteklasse 16A im Verhältnis zu
den MCRs der Verbindungen innerhalb der Diensteklasse verteilt.
-
Das
Verfahren zum Zuweisen von Pufferplatz wurde besonders unter Bezugnahme
auf die Verkehrsstromhierarchie mit drei Ebenen beschrieben, wie
in 6 gezeigt. Fachleute auf dem Gebiet werden verstehen,
dass das Verfahren in Bezug auf eine Verkehrsstromhierarchie mit
n Ebenen angewendet werden kann.
-
Beispielsweise
zeigt 7 eine Hierarchie mit vier Ebenen, bei der der
Speicher 12 der zweiten Ausführungsform unter mehrfachen
Ausgangsports 20 partitioniert ist. Die Ebene der Portpartitionen
ist zwischen den Ebenen für
den gemeinsam genutzten Puffer 14' und die Diensteklassen 16 angeordnet.
In dieser Hierarchie basiert die Ziel- Speicherbelegungsgröße für jeden Port auf der Disparität 30 zwischen
den Ziel- und gemessenen Speicherbelegungsgrößen des gemeinsam genutzten
Puffers 14' und
basieren die Zielgrößen für zu einem
gegebenen Port gehörige
Diensteklassen 16 auf einer Disparität 32A oder 32B zwischen
den Ziel- und gemessenen Speicherbelegungsgrößen für den gegebenen Port. Insbesondere
lassen wird g{x, y} eine diskrete oder iterative Funktion darstellen,
bei der x > y und
x wächst,
dann verringert sich g{x, y} geometrisch, und wenn x < y, dann wächst g{x,
y}. Die nominellen Ziel-Belegungsgrößen für die verschiedenen Einheiten
in der in 3 gezeigten Hierarchie können sein:
TBS
= konstant,
TPS = g{B_count, TBS},
TSCS[i] = g{P_count[i],
wp[i]*TPS},
TVCS[i, j] = g{SC_count[i, j], wsc[i, j]*TSCS[i]}
und
VCT[i, j, k] = TVCS[i, j]*MCR[i, j, k].
-
Im
vorhergehenden stellt TPS eine nominelle Speicherbelegung für Ports
dar und ist wp[i] ein zu jedem Port i gehöriges Gewicht. Das Produkt
wp[i]*TPS stellt die Zielgröße für jeden
bestimmten Port dar, der nicht gleich zu sein braucht. Ebenso stellt
Wsc[i, j]*TSCS[i] die Zielgröße für eine bestimmte
zum Port i gehörige Diensteklasse
j dar.
-
Es
sollte auch bemerkt werden, dass g{x, y} alternativ andere Progressionen
als geometrische bereitstellen kann, die lineare, hyperbolische,
logarithmische oder fallende exponentielle Progressionen einschließen aber
nicht darauf beschränkt
sind. Jede Art Progression liefen unterschiedliche Konvergenzgeigenschaften.
Auch braucht g{x, y} nicht notwendigerweise historische Überlastungsinformation
zu betrachten.
-
Beispielsweise
zeigen 8–10 eine
weitere Ausführungsform
der Erfindung, die in Hardware implementiert ist, welche nur die
laufende Überlastung
betrachtet. Diese Ausführungsform
ist auf ein Pufferuntersystem 10'' gerichtet,
bei dem ein physikalischer Speicher 12 zu einem gemeinsam
genutzten Speicherpuffer 14' partitioniert
ist, der für
nur einen aus ABR- und UBR-Verkehr oder alternativ für Verkehr
aus beiden Klassen bereitgestellt ist. Der verbleibende Teil des
Speichers 12 kann anderen ATM-Dienstekategorien zugewiesen, wie vorher
beschrieben, oder für Überzuweisungszwecke
reserviert sein. 10 ist ein Baumdiagramm, das
die hierarchische Partitionierung des Speichers für dieses
Schema der Warteschlangenbildung zeigt. Da das Untersystem 10'' nur einen Ausgangsport und keine
Partitionierung unter Diensteklassen umfasst, weist die Hierarchie
der Speicherpartitionierung und der entsprechenden Verkehrsströme nur zwei
Ebenen auf, nämlich
den gemeinsam genutzten Puffer 14'' und
die VCs 25.
-
9 zeigt
die Hardware 40, die im QMM 24 des Moduls dieser
Ausführungsform
eingebaut ist, um zu bestimmen, ob ein Verwerfen von Paketen ermöglicht oder
abgeschaltet werden soll. Die Hardware 40 umfasst drei
Eingaben, wie folgt:
- Qs:
- Ein Zähler hinsichtlich
der Gesamtzahl von Zellen, die den gemeinsam genutzten Puffer 14'' belegen, wodurch die tatsächliche
Belegungsgröße des gemeinsam
genutzten Puffers reflektiert wird. Dieser Zähler wird bei Ankunft/Abgang
einer Zelle vom QMM 24 inkrementiert/dekrementiert.
- VC-Count j:
- Ein Zähler hinsichtlich
der Gesamtzahl von Zellen, die durch VC j eingenommen wird. Dieser Zähler von
bei Ankunft/Abgang einer zu VC j gehörenden Zelle vom QMM 24 inkrementiert/dekrementiert.
- MCR j:
- Der MCR-Wert der VC
j.
-
Das
QMM 24 verwendet die Hardware 40 immer dann, wenn
eine Zelle Ende des Paketes (eines AAL-Rahmens) ankommt, in welchem
Fall eine Überlastungskontrolle
ausgeführt
wird. Der Qs-Zähler
oder die -Variable wird einer Quanitisierungsfunktion 42 zugeführt, die
eine quantisierte Überlastungsvariable
CS-Qs erzeugt, die einen vorher spezifizierten Wertebereich aufweist,
z.B. 0 bis 2047 (d.h. eine 11-Bit-Größe). Die Quantisierungsfunktion
bildet Qs auf CS_Qs ab, basierend auf der Leitungsrate des Ausgangsports 20.
Für einen
gegebenen Wert von Qs wird beispielsweise ein Ausgangsport mit einer
Leitungsrate von 1,6 Mb/s auf einen niedrigeren quantisierten Wert
CS_Qs abgebildet, als ein Ausgansgport mit einer Leitungsrate von
800 kb/s. Tabelle 1 unten zeigt ein Beispiel dieser Abbildung für einige übliche standardisierte
Leitungsraten, wobei die vorher bereitgestellte Zielgröße für den gemeinsam
genutzten Puffer 14'' 32k Zellen
beträgt.
-
-
Es
sollte erkannt werden, dass CS_Qs somit einer Disparität zwischen
der Ziel- und der tatsächlichen Speicherbelegung
des gemeinsam genutzten Puffers 14'' entspricht.
Es sollte auch bemerkt werden, dass die Funktion, die die Überlastung
misst, abhängig
von der Leitungsrate des Ausgangsports unterschiedlich ist.
-
Die
Ziel-Speicherbelegung oder Schwelle, VCT, für eine Verbindung j, die eine
EOP-Zelle umfasst, wird berechnet, indem die MCR der Verbindung
mit einem vorher festgelegten Wert multipliziert wird, der aus einer
Nachschlagetabelle 44 basierend auf der quantisierten Überlastungsvariablen
CS_Qs für
den gemeinsam genutzten Puffers ausgewählt wird. Die Nachschlagetabelle 44 liefert
in der Tat vorher berechnete Werte einer vorher festgelegten Funktion.
Tabelle 2 zeigt ein Beispiel einer solchen vorher festgelegten Funktion
in Bezug auf einen Ausgangsport OC-12.
-
-
Diese
Tabelle liefert eine fallende Exponentialfunktion, wenn CS-Qs im
Bereich von 489–1697
liegt; einen Höchstwert
von 120,96, wenn CS_Qs im Bereich von 0–488 liegt, wobei der gemeinsam
genutzte Puffer relativ unbelastet ist; und einen Mindestwert von
0, wenn CS_Qs im Bereich von 1698–2047 liegt, wobei der gemeinsam
genutzte Puffer als sehr überlastet
angesehen wird.
-
Wenn
die Zelle Ende des Pakets ankommt, vergleicht ein Komparator 46 die
Speicherbelegungsschwelle für
die VC, d.h. VCT, mit VC_count[j], und wenn die letztere größer als
die erstere ist, wird ein EPD-Signal 48 eingeschaltet.
Anderenfalls wird die EOP-Zelle
gespeichert und das EPD-Signal 48 abgeschaltet.
-
Fachleute
auf dem Gebiet werden verstehen, dass während die hier beschriebenen
Ausführungsformen
Speicherpartitions-/Verkehrsstromhierarchien mit zwei, drei oder
vier Ebenen offenbarten, viel kompliziertere Hierarchien aufgebaut
werden können.
Weitere mögliche
Hierarchien beinhalten (von der oberen Ebene zur unteren Ebene):
- • Puffer,
Port, Dienstekategorie, Gruppen von virtuellen Schaltungen, einzelne
virtuelle Schaltungen;
- • Puffer,
Port, Dienstekategorie, Warteschlange, virtuelle Schaltung;
- • Puffer,
Port, Dienstekategorie, virtuelle Wegeanhäufung (VPA) und virtuelle Schaltung;
- • Puffer,
Port, Dienstekategorie, virtuelles privates Netz (VPN) und virtuelle
Schaltung;
- • Puffer,
Port, Dienstekategorie, VPN, VPA und virtuelle Schaltung.
-
Ebenso
werden Fachleute auf dem Gebiet erkennen, dass zahlreiche Modifikationen
und Variationen an der bevorzugten Ausführungsform vorgenommen werden
können,
ohne den Geist der Erfindung zu verlassen.
-
Wo
technischen Merkmalen, die in irgendeinem Anspruch genannt sind,
Bezugszeichen folgen, wurden diese Bezugszeichen für den alleinigen
Zweck eingefügt,
die Verständlichkeit
der Ansprüche
zu erhöhen, und
folglich haben solche Bezugszeichen keine einschränkende Wirkung
für den
Umfang jedes Elements, das als Beispiel durch solche Bezugszeichen
identifiziert wird.