DE69931302T2 - Zeitbasierte Ablaufsteuerungsarchitektur und Verfahren für ATM Netzwerke - Google Patents

Zeitbasierte Ablaufsteuerungsarchitektur und Verfahren für ATM Netzwerke Download PDF

Info

Publication number
DE69931302T2
DE69931302T2 DE69931302T DE69931302T DE69931302T2 DE 69931302 T2 DE69931302 T2 DE 69931302T2 DE 69931302 T DE69931302 T DE 69931302T DE 69931302 T DE69931302 T DE 69931302T DE 69931302 T2 DE69931302 T2 DE 69931302T2
Authority
DE
Germany
Prior art keywords
time
stream
queue
cell
rate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69931302T
Other languages
English (en)
Other versions
DE69931302D1 (de
Inventor
Inc. Ruixue c/o NEC USA Princetown Fan
Inc. Brian L. c/o NEC USA Princetown Mark
Inc. Gopalakrishnan c/o NEC USA Princetown Ramamurthy
Inc. Alexander T. c/o NEC USA Princetown Ishii
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ciena Corp
Original Assignee
Ciena Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=21910313&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69931302(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Ciena Corp filed Critical Ciena Corp
Application granted granted Critical
Publication of DE69931302D1 publication Critical patent/DE69931302D1/de
Publication of DE69931302T2 publication Critical patent/DE69931302T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L12/5602Bandwidth control in ATM Networks, e.g. leaky bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5651Priority, marking, classes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung
  • Diese Erfindung betrifft Einteiler für im asynchronen Übertragungsmodus arbeitende Netze (ATM-Netze) und insbesondere eine Architektur und ein Verfahren zum Einteilen von Zellen versorgenden Stream-Warteschlangen mit unterschiedlichen Dienstqualitätsanforderungen (QoS-Anforderungen), während die Übertragungsrate geformt wird, um Überbelegungen an Engpässen innerhalb einer ATM-Vermittlung zu vermeiden.
  • Diese Anmeldung bezieht sich auf die am 5. September 1997 eingereichte US-Patentanmeldung mit der laufenden Nummer 08/924 820 mit dem Titel "Dynamic Rate Control Scheduler for ATM Networks" und die am 5. September 1997 eingereichte US-Patentanmeldung mit der laufenden Nummer 08/923 978 mit dem Titel "Large Capacity, Multiclass Core ATM Switch Architecture", die beide auf den Erwerber der vorliegenden Erfindung übertragen wurden und auf die hiermit verwiesen sei.
  • 2. Beschreibung des Stands der Technik
  • Die Funktion eines Einteilers besteht darin, die Reihen folge zu bestimmen, in der an einem Port eingeteilte Zellen auszusenden sind. Das einfachste Einteilungsverfahren ist ein Silo-(FIFO)-Verfahren. Zellen werden in einer gemeinsamen Warteschlange gepuffert und in der Reihenfolge, in der sie empfangen werden, ausgesendet. Das Problem bei FIFO-Warteschlangen besteht darin, dass es keine Isolation zwischen Verbindungen oder auch nur zwischen Verkehrsklassen gibt. Eine "sich schlecht verhaltende" Verbindung (d.h. eine Verbindung, die Zellen mit einer viel höheren als ihrer erklärten Rate sendet) kann die Dienstqualität (QoS) anderer "sich gut verhaltender" Verbindungen beeinträchtigen.
  • Eine Lösung dieses Problems besteht darin, Zellen in getrennten Puffern entsprechend der Klasse einzureihen. Ein weiterer Schritt besteht darin, Zellen auf einer Je-Verbindung-Basis einzureihen. Die Funktion des Einteilers besteht darin, die Reihenfolge zu entscheiden, in der Zellen in den mehreren Warteschlangen versorgt werden sollten. Bei der Einteilung mit einer zyklischen Warteschlange (RR-Einteilung) werden die Warteschlangen in zyklischer Reihenfolge aufgesucht, und eine einzige Zelle wird bedient, wenn eine aufgesuchte Warteschlange nicht leer ist. Wenn alle Warteschlangen einen Überhang aufweisen, wird die Bandbreite jedoch unter den Warteschlangen gleich aufgeteilt. Dies kann jedoch nicht wünschenswert sein, weil Warteschlangen verschiedene Abschnitte der gemeinsamen Verbindungsbandbreite zugewiesen werden können.
  • Bei der gewichteten Einteilung mit einer zyklischen Warteschlange (WRR-Einteilung), die in einer Veröffentlichung von Manolis Katevenis u.a. mit dem Titel "Weighted Round-Robin Cell Multiplexing in a General Purpose ATM Switch Chip", IEEE Journal on Selected Areas in Communications, Band 9, Nr. 8, S. 1265–1279, Oktober 1991 beschrieben wurde, wird jeder Warteschlange (Verbindungs- oder Klassenwarteschlange) ein Gewicht zugewiesen. Die WRR-Einteilung strebt an, die überhängigen Warteschlangen proportional zu den zugewiesenen Gewichten zu versorgen. Die WRR-Einteilung wird unter Verwendung von Zählern implementiert, wobei ein Zähler jeder Warteschlange zugeordnet ist. Die Zähler werden mit den zugewiesenen Gewichten initialisiert. Eine Warteschlange ist zur Versorgung auswählbar, falls sie nicht leer ist und einen positiven Zählerwert aufweist. Immer dann, wenn eine Warteschlange versorgt wird, wird ihr Zähler um eins verringert (bis auf ein Minimum von Null). Zähler werden mit den Anfangsgewichten zurückgesetzt, wenn alle anderen Warteschlangen entweder leer sind oder einen Zählerwert von Null aufweisen. Ein Problem bei diesem zählerbasierten Ansatz besteht darin, dass die Ratengranularität von der Auswahl der Rahmengröße (d.h. der Summe der Gewichte) abhängt.
  • Ein weiteres Verfahren, das gewichtete faire Warteschlangen-Einreihungsverfahren ("Weighted Fair Queuing" – WFQ), das auch als verallgemeinertes Paket-für-Paket-Teilen (Packet-by-Packet Generalized Sharing" – PGPS) bekannt ist, wurde in einer Veröffentlichung von Alan Demers u.a. mit dem Titel "Analysis and Simulation of a Fair Queuing Algorithm", Verhandlungen SIGCOMM'89, S. 1–12, Austin, TX, September 1989 und in einer Veröffentlichung von S. Jamaloddin Golestani mit dem Titel "A Self-clocked Fair Queuing Scheme for Broadband Applications", IEEE, 0743-166X/94, 1994, S. 5c.1.1–5c.1.11 beschrieben. Dieses Verfahren ist ein Planungsalgorithmus auf der Grundlage der nähernden verallgemeinerten Prozessorteilung ("Approximating Generalized Processor Sharing" – GPS). Beim GPS-Modell wird angenommen, dass der Verkehr ein Fluid ist, so dass der Server Fluid gleichzeitig von allen Warteschlangen bei Raten, die zu ihren zugewiesenen Gewichten proportional sind, abziehen kann. Ein Zeitstempel wird berechnet, wenn jede Zelle ankommt. Der Wert des Zeitstempels stellt die Endzeit der Zelle in dem Fluidmodell dar. Das WFQ-Verfahren teilt durch Auswählen der Zelle mit dem kleinsten Zeitstempelwert ein.
  • In der Druckschrift WO 97 14240 A (AISSAOUI MUSTAPHA, LIAO RAYMOND RUI FENG (CA), NEWBRIDGE NETWORKS, 17. April 1997) ist ein Verfahren zur fairen Warteschlangenversorgung an einem Warteschlangen-Einreihungspunkt in einem paketvermittelten Netz mit mehreren Versorgungsklassen vorgestellt, wobei ankommende Pakete in Puffern empfangen werden und abgehende Pakete durch einen gewichteten fairen Warteschlangeneinteiler eingeteilt werden, wobei Echtzeitinformationen der Pufferauslastung zusammen mit der Anforderung einer minimalen Bandbreite verwendet werden, um die Gewichte des gewichteten fairen Warteschlangeneinteilers dynamisch zu modifizieren.
  • Alle vorstehend beschriebenen Verfahren sind in bezug auf den lokalen Verbindungsengpass in dem Sinne arbeitssparend, dass, wenn es Zellen in dem Puffer bzw. in den Puffern gibt, eine Zelle während einer Zellenzeit versorgt wird. Dagegen ist ein anderes Zelleneinteilungsschema, die dynamische Ratensteuerung (DRC), die in der ebenfalls anhängigen Patentanmeldung 08/924 820 entwickelt wurde, im allgemeinen nicht arbeitssparend. Eine Zelle kann zurückgehalten werden, falls sie stromabwärts zu einer Überbelegung führen könnte. Bei der DRC-Einteilung werden wie bei WFQ Zeitstempel verwendet, die Zeitstempel stellen jedoch absolute Zeitwerte dar. Demgemäß kann DRC, falls erforderlich, eine Zelle zurückhalten, um eine Überbelegung an einem späteren Vermittlungsengpass zu vermindern. Dieses Merkmal kann mit WFQ oder WRR nicht erreicht werden. Ein Merkmal der DRC-Einteilung besteht darin, dass dabei keine Sortierung der Zeitstempel erforderlich ist, weil die Zeitstempel mit einem absoluten Zeittakt verglichen werden. Weiterhin kann eine Verkehrsformung leicht in den DRC-Einteiler aufgenommen werden.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung ist eine flexible und skalierbare Architektur und ein Verfahren, wodurch die DRC-Einteilung implementiert wird. Einzelheiten zu den Algorithmen und Prinzipien, die der DRC-Einteilung zugrunde liegen, sind in der anhängigen Anmeldung 08/924 820 beschrieben. Ein Schlüsselbestandteil des DRC-Einteilers ist ein Verkehrsformer, der mehrere Verkehrs-Streams auf der Grundlage dynamisch berechneter Raten formt. Die Raten werden auf der Grundlage von an Vermittlungsengpässen beobachteten Überbelegungsinformationen berechnet. Alternativ können die Raten nur auf der Grundlage der am lokalen Engpass beobachteten Überbelegung berechnet werden. Die modulare Gestaltung des Einteilers ermöglicht seine Verwendung in einer Vielzahl von Vermittlungskonfigurationen.
  • Insbesondere können die Architektur des DRC-Einteilers und das Verfahren gemäß der vorliegenden Erfindung auf die in der anhängigen Anmeldung 08/923 978 erörterte gepufferte Ein-/Ausgabe-Vermittlungsarchitektur angewendet werden.
  • Der Verkehrsformer kann eine große Anzahl von Streams mit einem breiten Bereich zugeordneter Ratenwerte formen. Bei der aktuellen Technologie ist die Architektur in der Lage, eine Je-VC-Warteschlangeneinreihung mit bis zu 64K virtuellen Kanälen (VC) mit Bitraten, die von 4 kbps bis 622 Mbps reichen, zu unterstützen. Die Skalierbarkeit in bezug auf die Anzahl der Streams, die unterstützt werden können, wird durch Einteilen der zu versorgenden Streams unter Verwendung einer auch als Kalenderwarteschlange bekannten Zeitrad-Datenstruktur erreicht. Kalenderwarteschlangen sind wohlbekannt. Es sei beispielsweise auf einen Artikel von R. Brown mit dem Titel "Calendar Queues:
    A Fast 0(1) Priority Queue Implementation for the Simulation Event Set Problem", Communications of the ACM, Band 31, Oktober 1988, worauf hiermit verwiesen sei, hingewiesen.
  • Zum Behandeln eines großen Bereichs von Bitraten werden mehrere Zeiträder mit unterschiedlichen Zeitgranularitäten verwendet. Das Zeitradkonzept und die Unterteilung von Raten in Bereiche sind auch wohlbekannt. Es sei beispielsweise auf einen Artikel von J. Rexford u.a. mit dem Titel "Scalable Architecture for Traffic shaping in High Speed Networks", IEEE INFOCOM '97 (Kobe), April 1997, worauf hiermit verwiesen sei, hingewiesen. Die Formerarchitektur gemäß der vorliegenden Erfindung unterscheidet sich von derjenigen, die im Artikel von Rexford beschrieben ist, dadurch, dass sie Prioritätsstufen zum Entscheiden zwischen Streams, die gleichzeitig für die Übertragung auswählbar sind, unterstützt. Die höchste Prioritätsstufe wird dynamisch zugewiesen, um minimale Ratengarantien auf einer kurzen Zeitskala bei der DRC-Einteilung bereitzustellen. Die übrigen Prioritätsstufen ermöglichen eine grobe QoS-Differenziation zum Definieren von Verkehrsklassen. Auch bei dieser Architektur ist die Zuweisung der Streams zu Zeiträdern, abhängig von dem für den Stream berechneten aktuellen Ratenwert, dynamisch.
  • Ein Hauptziel der Erfindung besteht darin, eine Architektur und ein Verfahren bereitzustellen, die in der Lage sind, Zellen versorgende Stream-Warteschlangen mit unterschiedlichen QoS-Anforderungen einzuteilen, während die Übertragungsrate geformt wird, um eine Überbelegung an Engpässen in einer ATM-Vermittlung zu verhindern.
  • Ein weiteres Ziel der Erfindung besteht darin, eine Einteilerarchitektur bereitzustellen, die verwendet werden kann, um Verfügbare-Bitrate-(ABR)-Versorgungs-Virtuelle-Quelle-(VS)/Virtuelles-Ziel-(VD)-Protokolle zu implementieren, wie in "Traffic Management Specification, Version 4.0", The ATM Forum, März 1996 dargelegt ist.
  • Ein anderes Ziel der Erfindung besteht darin, eine Einteilerarchitektur bereitzustellen, die sowohl eine Einteilung als auch eine duale verlustbehaftete Auslastungsparametersteuerungs-(UPC)-Formung ausführt, wie auch in "Traffic Management Specification, Version 4.0" dargelegt ist. Die UPC-Formung wird verwendet, um zu erzwingen, dass ein Verkehrs-Stream mit UPC-Parametern übereinstimmt, um eine Kennzeichnung oder Entfernung von Zellen an der Schnittstelle zu einem anderen Unternetz, wodurch der Stream hindurchtritt, zu vermeiden.
  • Hier werden die Grundgedanken der vorliegenden Erfindung unter Berücksichtigung des vorstehend Erwähnten schematisch beschrieben, um die vorliegende Erfindung zu erleichtern.
  • Kurz gesagt, der Gehalt der vorliegenden Erfindung besteht in der Tatsache, dass eine dynamische Rate unter Berücksichtigung von Überbelegungsinformationen auf einer stromabwärts gelegenen Seite berechnet wird und ein Zeitstempel auf der Grundlage der dynamischen Rate berechnet wird, um eine Warteschlange einzuteilen bzw. neu einzuteilen. Genauer gesagt, ist, wenn der Zeitstempel mit TS bezeichnet ist, ein Zeitstempel zur Einteilung durch max(TS + 1/R, CT) gegeben, während ein Zeitstempel zur Neueinteilung durch TS = TS + 1/R gegeben ist, wobei CT die aktuelle Zeit ist und R die dynamische Rate ist. Hier sei bemerkt, dass die dynamische Rate R durch R = M + wE berechnet wird, wobei M und w eine minimale garantierte Rate bzw. ein Gewichtsfaktor sind und E eine auf der Grundlage von Überbelegungsinformationen berechnete Überschussrate darstellt.
  • Wie anhand des vorstehend Erwähnten leicht verständlich sein wird, hängt die dynamische Rate R von der Überschussrate E ab und wird schrittweise aktualisiert. Zusätzlich werden die Zeitstempel für das Einteilen bzw. Neueinteilen durch die Verwendung des zuletzt berechneten Werts der dynamischen Rate R bestimmt. Dies zeigt, dass die Zeitstempel für das Einteilen bzw. Neueinteilen unter Berücksichtigung der Überbelegungsinformationen berechnet werden.
  • Die sich auf die Einteilung bzw. Neueinteilung beziehenden vorstehend erwähnten Formeln können modifiziert werden, um zu bewirken, dass jeder Stream von der Warteschlange mit UPC-Parametern, wie PCR (Spitzenzellenrate), SCR (länger erhaltbare Zellenrate) und MBS (maximale Bündelgröße), übereinstimmt. Beispielsweise sollen die Zeitstempel TS für die Einteilung bzw. Neueinteilung so berechnet werden, dass sie mit der PCR übereinstimmen. In diesem Fall sind die Zeitstempel TS für das Einteilen bzw. Neueinteilen durch TS = max(TS + max(1/R, 1/PCR), CT) bzw. TS = TS + max(1/R, 1/PCR) gegeben. Anhand dieser Tatsache lässt sich leicht verstehen, dass jede Zelle mit einem Zeitintervall von mindestens 1/PCR übertragen wird, das zwischen zwei benachbarten der Zellen verbleibt und das durch einen auf der Grundlage des Zeitstempels TS für die Einteilung bzw. Neueinteilung bestimmten Formungszeitstempel spezifiziert ist. Dies zeigt, dass der Zellen-Stream mit der Vereinbarung der Spitzenzellenrate (PCR) an der nächsten stromabwärts gelegenen Vermittlung übereinstimmt. Daher wird der Stromabwärtsvereinbarungsmechanismus die Zellen in dem geformten Zellen-Stream weder kennzeichnen noch aussondern. Beispielsweise kann ein CLP-(Zellenverlustprioritäts)-Kennzeichen gemäß der vorliegenden Erfindung nicht in einen Logikzustand "1" versetzt werden.
  • Dies gilt auch für die SCR. Bei der Vereinbarung der SCR wird ein Zeitstempel zum Übertragen einer nächstfolgenden Zelle mit Bezug auf den SCR-Wert und eine vorgegebene Bündelschwelle (TH), die durch den Wert von MBS (maximale Bündelgröße) bestimmt ist, praktisch berechnet.
  • Bei jeder Rate verwirklicht das vorstehend erwähnte Verfahren gemäß der vorliegenden Erfindung den Formungsvorgang. Mit anderen Worten kann ein Einteiler gemäß der vorliegenden Erfindung nicht nur die Einteilung bzw. Neueinteilung sondern auch die Formung ausführen.
  • Alternativ kann das Verfahren gemäß der vorliegenden Erfindung in Zusammenhang mit einer virtuellen ABR-Quelle (ABR VS) verwendet werden, die eine Verkehrsformung ausführt, um zu erzwingen, dass ein Stream mit den ABR-Anforderungen übereinstimmt. In diesem Fall wird eine Warteschlange entsprechend der durch einen ABR-Mechanismus (zusammen mit der dynamischen Einteilungsrate) bestimmten Rate geformt.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • 1 zeigt ein Diagramm der Hauptbestandteile eines ATM-Puffermoduls, das einen Ein- oder Ausgabeport einer Vermittlung versorgt.
  • 2 zeigt ein Diagramm einer Ausführungsform der Einteilerarchitektur der vorliegenden Erfindung.
  • 3 zeigt ein Diagramm einer anderen Ausführungsform der Einteilerarchitektur der vorliegenden Erfindung.
  • 4 zeigt ein Flussdiagramm, in dem die Prozedur zum Berechnen eines Zeitstempelwerts dargestellt ist, wenn eine Zelle an einer Stream-Warteschlange ankommt (ohne Berücksichtigung eines Umlaufs).
  • 5 zeigt ein Flussdiagramm, in dem die Prozedur zum Berechnen eines Zeitstempelwerts dargestellt ist, wenn eine Zelle von einer Stream-Warteschlange abweicht.
  • 6 zeigt ein Flussdiagramm, in dem die Prozedur zum Prüfen des Ruhe- bzw. Bereitschaftszustands einer Stream-Warteschlange während jeder Zellenzeit dargestellt ist.
  • 7 zeigt ein Flussdiagramm, in dem die Prozedur zum Berechnen eines Zeitstempelwerts dargestellt ist, wenn eine Zelle an einer Stream-Warteschlange ankommt, wobei der Umlauf berücksichtigt wird.
  • 8 zeigt ein Diagramm eines Zeitrads mit feiner Teilung mit einer einzigen Priorität.
  • 9 zeigt ein Diagramm eines Zeitrads mit grober Teilung mit einer einzigen Priorität.
  • 10 zeigt ein Diagramm einer Bereitschaftsliste mit einer einzigen Priorität.
  • 11 zeigt ein Diagramm eines Zeitrads mit einer feinen Teilung mit mehreren Prioritäten.
  • 12 zeigt ein Diagramm eines Zeitrads mit einer groben Teilung mit mehreren Prioritäten.
  • 13 zeigt ein Diagramm einer Bereitschaftsliste mit mehreren Prioritäten.
  • 14 zeigt die Prozedur zum Anhängen einer Stream-Warteschlangenkennung an eine Bereitschaftsliste.
  • 15 zeigt die Prozedur zum Einfügen einer Stream-Warteschlangenkennung an einem Zeitrad.
  • 16 zeigt die Prozedur zum Extrahieren einer Stream-Warteschlangenkennung aus einer Bereitschaftsliste.
  • 17 zeigt die Prozedur zur Zellenankunfts-Zeitstempelberechnung, die eine Einteilung und eine UPC-Formung kombiniert.
  • 18 zeigt die Prozedur zur Zellenabgangs-Zeitstempelberechnung, die eine Einteilung und eine UPC-Formung kombiniert.
  • 19 zeigt ein Diagramm eines Zeitrads mit feiner Teilung mit mehreren Prioritäten mit einer Prioritätsstufe je Zeit-Bin.
  • 20 zeigt ein Diagramm eines Zeitrads mit grober Teilung mit mehreren Prioritäten mit einer Prioritätsstufe je Zeit-Bin.
  • 21 zeigt ein Diagramm von Zeitrad-Zeit-Bins und Bereitschaftslisten, die den 19 und 20 zugeordnet sind.
  • 22 und 23 zeigen Zeitrad-Einteilungsoperationen.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
  • Bei einer ATM-Vermittlung oder einem ATM-Multiplexer kommen Zellen an einem Engpass an und werden in Puffern gespeichert, um auf die Übertragung durch den Engpass zu ihren Bestimmungsorten zu warten.
  • 1 zeigt die Hauptbestandteile eines ATM-Puffermoduls, das als ein Vermittlungsein- oder -ausgabeport dient: einen Warteschlangenmanager 2, einen Einteiler 3, einen Zellenspeicher 1 und einen Steuerspeicher 4. Das Modul kann beispielsweise ein Ausgabemodul oder ein Eingabemodul einer Vermittlung sein.
  • Der Warteschlangenmanager 2 speichert ankommende Zellen im Zellenspeicher 1 in Form von Stream-Warteschlangen Q1, Q2, ... QK. Steuerinformationen für jede Warteschlange werden im Steuerspeicher 4 gespeichert. Statt Zellen zu speichern, kann der Warteschlangenmanager 2 Zellen fallen lassen, falls eine Überbelegung auftritt. Beispielsweise kann ein schwellenwertbasierter Zellenaussonderungsmechanismus verwendet werden. Während jeder Zellenzeit kann der Warteschlangenmanager 2 eine Zelle im Speicher wählen, die zur nächsten Stufe in der Vermittlung zu übertragen ist.
  • Die Auswahl der nächsten zu übertragenden Zelle wird durch den Einteiler 3 festgelegt, welcher der Brennpunkt der vorliegenden Erfindung ist. In der Konfiguration aus 1 wirkt der Einteiler 3 folgendermaßen mit dem Warteschlangenmanager 2 zusammen. Während jeder Zellenzeit fragt der Warteschlangenmanager 2 den Einteiler 3 ab. Der Einteiler 3 antwortet entweder mit einer Warteschlangenkennung oder mit einem Nullwert. Falls der Einteiler 3 eine gültige Warteschlangenkennung liefert, entfernt der Warteschlangenmanager 2 die erste wartende Zelle in der entsprechenden Stream-Warteschlange im Zellenspeicher 1 und überträgt die Zelle zur nächsten Stufe.
  • Sowohl der Warteschlangenmanager 2 als auch der Einteiler 3 haben Zugang zum Steuerspeicher 4. Der Steuerspeicher 4 speichert Informationen, die jeder Stream-Warteschlange entsprechen, die zum Ausführen der Pufferverwaltung und- einteilung verwendet werden. K stellt die Gesamtzahl der Stream-Warteschlangen dar, und Qi bezeichnet die i-te Stream-Warteschlange. Der Steuerspeicher 4 enthält einen Zählwert der Anzahl der Zellen in jeder Stream-Warteschlange und andere Steuerinformationen, die vom Warteschlangenmanager 2 oder vom Einteiler 3 verwendet werden können. Der Einteiler 3 führt eine zeitbasierte Einteilung aus. Dabei wird ein Zeitstempelwert TSi für Qi erhalten. Der Zeitstempelwert stellt den nächsten Zeitraum dar, zu dem das Versorgen einer Stream-Warteschlange auswählbar ist. Weiterhin ist Qi mit zwei Raten verbunden, nämlich einer statischen, minimal garantierten Rate Mi, und einer dynamischen Rate Ri, die entsprechend der DRC-Einteilung aktualisiert wird.
  • Der Einteiler 3 legt die Stream-Warteschlange (falls eine vorliegt) fest, die in der aktuellen Zellenübertragungszeit zu versorgen ist. Für einen arbeitssparenden Einteiler ist nur die Folge der Zellenübertragungen wichtig, d.h. immer dann, wenn es mindestens eine Zelle in den Puffern gibt, wird eine Zelle während der aktuellen Zellenzeit übertragen. Dagegen kann ein nicht arbeitssparender Einteiler ermöglichen, dass ein Übertragungsschlitz in den Bereitschaftszustand geht, selbst wenn sich Zellen in dem Puffer befinden. In diesem Fall ist die absolute Zeit, zu der Zellen übertragen werden, wichtig.
  • Im allgemeinen ist eine Einteilung mit dynamischer Ratensteuerung (DRC-Einteilung) nicht arbeitssparend. Zellen werden in absoluten Zeiträumen zur Übertragung eingeteilt. Wenn Zellen ankommen, werden sie auf einer Je-Stream-Basis in eine Warteschlange eingereiht. Das heißt, dass Zellen, die einem Stream i entsprechen, in einer FIFO-Stream-Warteschlange, die als Qi bezeichnet ist, gepuffert werden. Der Stream-Warteschlange Qi ist eine Rate Ri zugeordnet, die auf der Grundlage von Überbelegungsinformationen an den Engpässen, durch die der Stream i hindurchtritt, dynamisch berechnet wird. Die Zelleneinteilung wird durch eine Spitzenratenformung jedes Streams entsprechend seiner zugeordneten dynamischen Rate erreicht. Dies kann durch einen Zeitstempelwert TSi erreicht werden, der aktualisiert wird, um den nächsten Zeitraum widerzuspiegeln, zu dem die Versorgung der Warteschlange Qi ausgewählt werden kann. Eine Zeitrad-Datenstruktur wird verwendet, um Kennungen von Stream-Warteschlangen zu speichern, die darauf warten, dass ihre Zeitstempelwerte ablaufen.
  • 2 zeigt ein Blockdiagramm einer Ausführungsform der Architektur des Einteilers. Der Steuerspeicher 4 speichert Warteschlangeninformationen für jede Warteschlange in der Art des Zeitstempelwerts, der Rate und der Größe jeder Stream-Warteschlange. Die Ratenberechnungseinheit 8 berechnet die Rate für jede Stream-Warteschlange auf der Grundlage externer Rateninformationen und im Steuerspeicher 4 gespeicherter Informationen. Die Zeitstempel-Berechnungseinheit 7 berechnet den Zeitstempelwert für jede Warteschlange. Stream-Warteschlangen werden durch einen Einteilungsspeicher 5A eingeteilt, der die Form einer Zeitrad-Datenstruktur annimmt. Eine Bereitschaftsliste 9A enthält eine mit Prioritäten versehene Liste von zu versorgenden Stream-Warteschlangen. Die Bereitschaftsliste wird später in der Beschreibung in weiteren Einzelheiten erklärt. Die Zeitstempel-Berechnungseinheit 7, der Einteilungsspeicher 5A und die Bereitschaftsliste 9A werden alle durch die Einteilerlogikeinheit 6 gesteuert und koordiniert.
  • 3 zeigt ein Blockdiagramm einer anderen Ausführungsform der Architektur des Einteilers. Der Unterschied zwischen dieser Ausführungsform und der in 2 dargestellten Ausführungsform besteht darin, dass ein zweiter Einteilungsspeicher 5B und mehrere Bereitschaftslisten 9B, 9C und 9D verwendet werden. Bei dieser Architektur ist die Zeitradstruktur in einem der Einteilungsspeicher ein Zeitrad mit feiner Teilung und die Zeitradstruktur in dem anderen Einteilungsspeicher ein Zeitrad mit grober Teilung. Diese zwei verschiedenen Zeitradstrukturen und mehrere Bereitschaftslisten werden später in dieser Beschreibung in weiteren Einzelheiten erklärt.
  • EINTEILUNG DURCH VERKEHRSFORMUNG
  • In einem ATM-Netz nimmt ein Verkehrsformer einen Eingangs-Zellen-Stream entgegen und verzögert, wenn notwendig, bestimmte Zellen, um einen Ausgangs-Zellen-Stream zu erzeugen, der mit den Parametern des Formungsalgorithmus übereinstimmt. Das einfachste Beispiel eines Formers ist ein Spitzenratenformer, der gewährleistet, dass der minimale Abstand zwischen Zellen 1/R [Sekunden] ist, wobei R die spezifizierte Spitzenrate ist. Die Verkehrsformung wird auf der Benutzerseite vor dem Eintreten des Zellen-Streams in das Netz ausgeführt. Der Zweck der Verkehrsformung besteht darin, einen Zellen-Stream so zu glätten, dass er weniger Netzressourcen benötigt und dem Benutzer daher weniger Kosten verursacht.
  • Die Einteilerarchitektur und das Verfahren dieser Erfindung beruht auf der Spitzenratenformung jedes Streams zu einer lokal berechneten Einteilungsrate. Verschiedene Arten der Verkehrsformung können durch Ändern des Formungsalgorithmus erreicht werden. Der spezielle Fall der Spitzenraten-Verkehrsformung wird beschrieben, weil es sich dabei um den Typ der Formung handelt, die in dem DRC-Einteiler erforderlich ist. Der Spitzenraten-Formungsalgorithmus ist im Prinzip einfach, eine praktische Implementation muss jedoch das Auftreten eines Umlaufs infolge der ähnlichen Anzahl von Bits, die zum Darstellen von TSi und der aktuellen Zeit (CT) verwendet werden, berücksichtigen. Ein Spitzenraten-Formungsalgorithmus wird unter der Annahme, dass kein Umlauf auftritt, im folgenden Abschnitt beschrieben. Der Abschnitt Umlaufmechanismus beschreibt einen modifizierten Algorithmus zum Behandeln des Umlaufs.
  • SPITZENRATENFORMUNG
  • Im allgemeinen Fall wird ein Zeitstempelwert TSi für den i-ten Stream erhalten. Der Wert von TSi wird aktualisiert, wenn bestimmte Ereignisse, d.h. eine Ankunft oder ein Abgang von Zellen für den Stream i, auftreten. Zellen des ankommenden Streams i werden in der Stream-Warteschlange Qi gespeichert. In einer gegebenen Zellenzeit stellt der Wert von TSi nach einer Aktualisierung von TSi (falls überhaupt) die Zeit dar, zu der die erste wartende Zelle in Qi (falls überhaupt) zur Übertragung ausgewählt werden kann. Das heißt, dass die erste wartende Zelle in Qi zur Übertragung ausgewählt werden kann, wenn der Wert von CT dem Wert von TSi gleicht oder größer ist als dieser.
  • Anfänglich wird TSi auf Null gesetzt, und jedes Aktualisieren von TSi erhöht ihn um einen positiven Betrag. Eine aktuelle Zeitvariable CT verfolgt den Echtzeit-Zeitgeber. Anfänglich wird CT auf Null gesetzt und zu Beginn jeder aufeinander folgenden Zellenzeit um eins erhöht. Unter der Annahme, dass TSi und CT jeweils durch n Bits dargestellt werden, läuft CT nach 2n Zellenzeiten zum Wert null um. Nach einer ausreichenden Anzahl von Aktualisierungsereignissen läuft auch der Wert von TSi um. Das Thema des Umlaufs wird im nächsten Abschnitt erörtert. Für die folgende Erörterung wird angenommen, dass der Umlauf kein Problem ist.
  • Ein Zeitstempelwert TSi wird aktualisiert, wenn eines der folgenden Ereignisse auftritt:
    • 1. Zellenankunft vom Stream i oder
    • 2. Zellenabgang vom Stream i.
  • Als ein Beispiel der Implementation des Algorithmus sei angenommen, dass der Stream i zu einer Spitzenrate Ri zu formen ist. Dies bedeutet, dass der Zwischenzellenabstand von Zellenabgängen für den Stream i größer oder gleich 1/Ri sein muss. Falls ein Stream i an einer leeren Qi ankommt, kann die Zelle ausgewählt werden, um zu der früheren von zwei Zeiten abzugehen:
    • 1. zur Zeit CT, d.h. sofort, oder
    • 2. 1/Ri Zellenzeiten nach dem letzten Zellenabgang von Qi.
  • Dementsprechend ist die Berechnung des Zeitstempelwerts für die Spitzenratenformung bei Zellenankunfts- und -abgangsereignissen für den Stream i in den 4 und 5 dargestellt und wird nachstehend beschrieben.
  • Nachdem eine Zelle angekommen ist (Schritt 100), wird die Zelle an Qi angehängt, falls die Stream-Warteschlange nicht leer ist (Schritt 140). Falls die Warteschlange jedoch leer ist, muss der Stream eingeteilt werden (Schritt 110). Der Zeitstempelwert TSi wird auf das Maximum von (TSi + 1/Ri) oder CT gesetzt (Schritt 120). Der Stream i wird dann zur Zeit TSi eingeteilt (Schritt 130).
  • Nachdem eine Zelle von Qi übertragen wurde (Schritt 200), wird keine Zeitstempelberechnung ausgeführt, falls die Warteschlange leer ist (Schritt 240). Falls die Warteschlange jedoch nicht leer ist, muss der Stream eingeteilt werden (Schritt 210). Der Zeitstempelwert TSi wird auf TSi + 1/Ri gesetzt (Schritt 220). Der Stream i wird dann zur Zeit TSi eingeteilt (Schritt 230). Das Einteilen eines Streams i zur Zeit TSi bedeutet das Anhängen einer Stream-Warteschlangenkennung für den Stream an das Zeitrad bei dem der Zeit TSi entsprechenden Zeit-Bin.
  • UMLAUFMECHANISMUS
  • Als ein Beispiel des Umlaufmechanismus sei angenommen, dass TS und CT unter Verwendung von n Bits gespeichert werden. Der Zähler CT wird auf Null initialisiert und während jeder Zellenzeit um eins erhöht. Nach einer Zyklusperiode von 2n Zellenzeiten läuft CT zum Nullwert zurück um. Ähnlich läuft der Zeitstempelwert TS um, nachdem er über den Wert 2n – 1 hinaus erhöht wurde. Falls CT über TS hinausgeht und umläuft, wird gesagt, dass CT eine Zyklusperiode vor TS ist.
  • Umgekehrt könnte TS über CT hinaus in die nächste Zyklusperiode fortlaufen, wenn ein Zeitstempel-Aktualisierungsereignis auftritt. Um die relativen Zyklen zu verfolgen, in denen der Zeitstempel und die aktuelle Zeit liegen, werden zwei 2-Bit-Zonenindikatoren eingeführt, die als zCT und zTSi bezeichnet werden und CT bzw. TSi entsprechen. Wenn CT umläuft, wird zCT um eins erhöht (modulo vier). Ähnlich wird zTSi um eins erhöht, wenn TSi umläuft (modulo vier). Die Zonenbits sind lediglich Zwei-Bit-Erweiterungen der Register für TSi und CT. Die Interpretationen der Zonenbitwerte sind in Tabelle 1 dargestellt.
  • Tabelle 1. Interpretation von Zonenindikatoren
    Zonenvergleich Interpretation
    zCT = zTSi CT und TSi liegen im selben Zyklus CT
    zCT = (zTSi – 1) mod 4 CT liegt einen Zyklus hinter TS
    zCT = (zTSi + 1) mod 4 CT liegt einen Zyklus vor TS
    zCT = (zTSi + 2) mod 4 CT liegt zwei Zyklen vor TS
  • In diesem Beispiel wird angenommen, dass 1/Ri < 2n für alle Streams i ist. Dies gewährleistet, dass CT nie mehr als einen Zyklus hinter TS zurückfällt. Ein Mechanismus zum Gewährleisten, dass CT nie um mehr als einen Zyklus vor TS läuft, wird nun beschrieben. Es sei Ii ein Bereitschaftsbit für den Stream i, das zunächst auf Null gesetzt ist. Falls der Wert von Ii gleich null ist, wird der Stream als aktiv angesehen, und er wird andernfalls als sich im Bereitschaftszustand befindend angesehen, wenn Ii gleich eins ist. Ein Stream wird zur Zeit CT als sich im Bereitschaftszustand befindend angesehen, wenn der letzte Zellenabgang mehr als 1/Ri Zellenzeiten in der Vergangenheit aufgetreten ist.
  • Als nächstes wird ein unabhängiger Prozess eingeführt, der durch alle Streams zyklisch verläuft, um festzustellen, welcher sich im Bereitschaftszustand befindet. Für jene Streams i, die als sich im Bereitschaftszustand befindend bestimmt werden, wird das Bereitschaftsbit Ii auf eins gesetzt. N1 sei die Gesamtanzahl der Streams. Es wird angenommen, dass während einer Zellenzeit nur für eine Warteschlange geprüft werden kann, ob sie sich im Bereitschaftszustand befindet. Um zu gewährleisten, dass CT nie zwei oder mehr Zyklen über TSi vorläuft, sollte die maximale Anzahl von Streams, die unterstützt werden können, kleiner als 2n sein. Während jeder Zellenzeit wird die Prüfung auf das Vorhandensein eines Bereitschaftszustands fortgesetzt, wie in 6 dargestellt ist und wie nachstehend beschrieben wird.
  • Zur Zellenzeit i = (i + 1) mod N1 (Schritt 300) wird festgestellt, ob der Stream sich nicht im Bereitschaftszustand befindet (Ii = 0) und die Warteschlange leer ist (Schritt 310). Falls beide Bedingungen nicht erfüllt sind, wird das Bereitschaftsbit Ii auf 0 gesetzt oder bei 0 gehalten (Schritt 340). Falls beide Bedingungen erfüllt sind, werden die Zonenangaben folgendermaßen analysiert (Schritt 320): Falls (zCT = zTSi und CT – TSi > 1/Ri) oder [zTC = (zTSi + 1) mod 4 und CT – TSi + 2n < 1/Ri] ist, wird der Stream als sich im Bereitschaftszustand befindend angesehen und Ii auf 1 gesetzt (Schritt 330). Falls beide Bedingungen nicht erfüllt sind, wird Ii auf 0 gesetzt oder bei 0 gehalten (Schritt 340).
  • Ii muss immer dann auf Null zurückgesetzt werden, wenn eine Stream-i-Zelle ankommt. Abgesehen von dieser Modifikation berücksichtigt der Formungsalgorithmus die Werte der Zonenindikatoren beim Vergleichen der Werte von CT und TSi. Die Prozedur zum Behandeln einer Zellenankunft für den Stream i ist in 7 dargestellt und wird nachstehend beschrieben.
  • Nachdem eine Zelle angekommen ist (Schritt 400), wird Ii auf 0 gesetzt und TSi auf TSi + 1/Ri gesetzt (Schritt 410), und der Status der Warteschlange wird geprüft (Schritt 420). Falls die Warteschlange nicht leer ist, wird die Zelle an die Warteschlange angehängt (Schritt 460). Falls die Warteschlange leer ist, wird der Bereitschaftszustand der Warteschlange bestimmt, und die Zonenangaben sind die folgenden: Falls Ii = 1 ist oder (zCT = zTSi und CT > TSi) oder [zCT = (zTSi + 1) mod 4 oder zCT = (zTSi + 2) mod 4] ist (Schritt 430), wird TS auf CT gesetzt (Schritt 440). Falls die Bedingungen nicht erfüllt sind, wird der Stream zur Zeit TSi eingeteilt (Schritt 450).
  • EINTEILUNGSSPEICHER
  • Zeitrad
  • Zeitstempelbasierte Algorithmen zur Verkehrsformung wurden im vorhergehenden Abschnitt Einteilung durch Verkehrsformung erörtert. Jede Stream-Warteschlange Qi weist einen zugeordneten Zeitstempelwert TSi auf, der den Zeitraum angibt, zu dem die Stream-Warteschlange für den Dienst auswählbar wird. Während der aktuellen Zellenzeit CT ist jede Stream-Warteschlange mit einem TSi < CT erfüllenden Zeitstempelwert für den Dienst auswählbar. Wenngleich mehrere Stream-Warteschlangen im gleichen Zeitschlitz auswählbar werden können, kann nur eine Zelle von einer der Warteschlangen in jedem Zeitschlitz übertragen werden.
  • Daher wird eine Bereitschaftsliste auswählbarer Stream-Warteschlangen erhalten. Zur Zeit CT werden alle neu auswählbaren Stream-Warteschlangen zur Bereitschaftsliste bewegt. Während der Zellenzeit wird eine der Stream-Warteschlangen für die Bereitschaftsliste für den Dienst gewählt. Der Warteschlangenmanager 2 behandelt das Entfernen der ersten wartenden Zelle von dem Zellenspeicher und die Übertragung der Zelle zur nächsten Vermittlungs stufe.
  • Der Grundmechanismus hinter der Verkehrsformung ist einfach. Von einem gegebenen Stream ankommende Zellen werden in FIFO-Ordnung je Stream eingereiht. Während einer gegebenen Zeit wird die erste wartende Zelle in einer Stream-Warteschlange, beispielsweise Qi, eingeteilt, um zu dem durch den Zeitstempelwert TSi angegebenen Zeitraum übertragen zu werden. Wie im vorigen Abschnitt erörtert wurde, wird der Zeitstempelwert entweder bei der Ankunft oder beim Abgang einer Zelle von der Stream-Warteschlange Qi aktualisiert. Der Zeitstempelwert TSi wird auf der Grundlage des aktuellen Werts von TSi, der aktuellen Zeit CT und der dynamischen Rate Ri aktualisiert.
  • Falls der aktualisierte Wert von TSi < CT ist, ist die erste wartende Zelle in der Stream-Warteschlange Qi auswählbar, sofort, d.h. in der aktuellen Zellenzeit, übertragen zu werden. Es kann jedoch mehrere Streams i geben, für die CT > TSi ist. Daher wird eine Bereitschaftsliste wählbarer Stream-Warteschlangen, die noch nicht versorgt worden sind, aufrechterhalten. Falls der aktualisierte Wert von TSi größer als CT ist, ist die Stream-Warteschlange zu einer künftigen Zeit auswählbar. Eine auch als Kalenderwarteschlange bezeichnete Zeitradstruktur wird verwendet, um Stream-Warteschlangen einzuteilen, die zur Versorgung zu einer künftigen Zeit auswählbar werden.
  • Die Struktur des Zeitrads kann als eine kreisförmige Anordnung von mit 0, 1, ..., N – 1 nummerierten Einträgen beschrieben werden, wobei der n-te Eintrag auf eine (möglicherweise leere) Liste für die Zeit n (modulo N) eingeteilter auswählbarer Stream-Warteschlangen zeigt. Nach jedem Zeittakt wird der Wert von CT aktualisiert, so dass er auf den nächsten Eintrag des Zeitrads zeigt. Alle Stream-Warteschlangen in der diesem Eintrag entsprechenden Liste werden dann für die Versorgung auswählbar. Diese Liste wird dann an die Bereitschaftsliste angehängt. Während jeder Zellenzeit werden eine oder mehrere Stream-Warteschlangen aus der Bereitschaftsliste versorgt. Die maximale Anzahl der Stream-Warteschlangen, die innerhalb einer Zellenzeit bedient werden können, wird durch die Geschwindigkeit der Logik und des Speichers beschränkt.
  • VERRINGERUNG DER GRÖSSE DES ZEITRADS
  • Der Verkehrsformer sollte in der Lage sein, einen weiten Bereich von Raten zu unterstützen. Zum Unterstützen von Verbindungsraten im Bereich von 4 kbps bis 622 Mbps sind etwa 150K Einträge in dem Zeitrad erforderlich. Jeder Eintrag besteht aus sechs Paaren von Anfangspositions-/Endpositionszeigern. Unter der Annahme, dass bis zu 64K Streams unterstützt werden, benötigt jeder Zeiger 16 Bits oder 2 Bytes. Demgemäß beträgt der für jeden Eintrag erforderliche Speicher 24 Bytes. Die Gesamtspeicheranforderung für das Zeitrad alleine würde dann 3,6 MBytes betragen.
  • Diese Speicheranforderung kann durch die Verwendung von zwei Zeiträdern folgendermaßen erheblich verringert werden (siehe 8 und 9):
    • 1. Ein Zeitrad mit feiner Teilung (FG), wobei jeder Eintrag einer Zellenzeit entspricht.
    • 2. Ein Zeitrad mit grober Teilung (CG), wobei jeder Eintrag mehreren Zellenzeiten entspricht.
  • In diesem Beispiel wird angenommen, dass jedes Zeitrad aus 2K Einträgen besteht und Stream-Warteschlangen entweder dem FG-Zeitrad oder dem CG-Zeitrad entsprechend der Rate zugewiesen werden.
  • Bei einer Leitungsrate von 600 Mbps beträgt die niedrigste Rate für den Fluss, die vom FG-Zeitrad unterstützt werden kann: (600 × 106)/(2 × 103) = 300 × 103 oder 300 kbps.
  • Falls das CG-Zeitrad andererseits eine Rate von 4 kbps unterstützen muss, entspricht die kleinste Granularität, die unterstützt werden kann, der Rate (4 × 103) × (2 × 103) = 8 × 106 oder 8 Mbps. In diesem Fall entspricht ein Eintrag beim CG-Zeitrad: ( 600 × 106)/(8 × 106) ≈ 75
  • Einträgen beim FG-Zeitrad. Zur Vereinfachung wird diese Zahl auf die nächstliegende Potenz von zwei gerundet, weshalb die Granularität des CG-Zeitrads auf 64 Zellenzeiten gesetzt wird. Dann wird jeder Eintrag in dem CG- Zeitrad auch auf 64 Einträge des FG-Zeitrads gesetzt. In Zeiteinheiten beträgt die Granularität des CG-Zeitrads 44,8 μs, verglichen mit 700 ns für das FG-Zeitrad. Die Raten werden den zwei Zeiträdern folgendermaßen zugewiesen:
    • FG-Zeitrad: 300 kbps bis 600 Mbps,
    • CG-Zeitrad: 4 kbps bis 300 kbps.
  • In diesem Beispiel beträgt für einen Stream mit einer konstanten Bitrate von 300 kbps der durch das CG-Zeitrad herbeigeführte Fehler als Prozentsatz des Zwischenzellenabstands etwa 3,2 %.
  • Es ist nicht erforderlich, Stream-Warteschlangen den beiden Zeiträdern in statischer Weise auf der Grundlage der Rate zuzuweisen. Stattdessen wird der Stream auf der Grundlage des Bitraten-Streams und des durch das CG-Zeitrad herbeigeführten Fehlers als Prozentsatz entsprechend den relativen Werten des Zeitstempelwerts TS und des Werts der aktuellen Zeit CT folgendermaßen eingeteilt:
    Figure 00270001
  • Es sei bemerkt, dass in dem vorstehend erwähnten Pseudocode ein Stream für das CG-Zeitrad eingeteilt wird, falls der Zeitstempel ein Vielfaches von 64 ist. Hierdurch wird es unnötig, auf beide Zeiträder in derselben Zellenzeit zuzugreifen.
  • SPEICHERANFORDERUNG
  • Jeder Eintrag in einem der zwei Zeiträder besteht aus sechs Paaren von Anfangspositions-/Endpositionszeigern (hp/tp), die 24 Bytes des Speichers benötigen. Wenn beide Zeiträder gezählt werden, die jeweils 2000 Einträge aufweisen, beträgt die Gesamtspeicheranforderung etwa 96 kBytes, was eine Verbesserung von einer Größenordnung gegenüber der Verwendung eines einzigen Zeitrads ist. Ein Verlust, der auftritt, wenn von einem einzigen großen Zeitrad zu zwei kleinen Zeiträdern übergegangen wird, ist eine gröbere Granularität beim Einteilen von Verbindungen mit niedriger Rate und eine erhöhte Wahrscheinlichkeit einer Bündelung an geplanten Zeitschlitzen am groben Zeitrad. Weil Verbindungen mit niedriger Rate jedoch im allgemeinen eine größere Toleranz für eine Zellenverzögerungsvariation aufweisen, ist dieser Effekt nicht signifikant.
  • Die Bündelungswirkung infolge der gröberen Einteilungsgranularität kann verbessert werden, indem die Anzahl der Einträge in jedem Zeitrad erhöht wird. Falls die Anzahl der Einträge in jedem Zeitrad beispielsweise auf 4.000 verdoppelt wird, kann das FG-Zeitrad Raten im Bereich von 150 kbps bis 600 Mbps unterstützen. Weiterhin wird die Granularität des CG-Zeitrads auf 22,4 μs verbessert. In diesem Fall entspricht jeder Eintrag des CG-Zeitrads 32 Einträgen des FG-Zeitrads (d.h. 32 Zellenzeiten).
  • PRIORITÄTSSTUFEN
  • Während einer Zellenzeit kann eine feste Anzahl von Stream-Warteschlangen (d.h. eine oder zwei) versorgt werden (die maximale Anzahl hängt von der verwendeten Speichertechnologie ab). Während desselben Zeitschlitzes können jedoch mehrere Stream-Warteschlangen auswählbar werden. Demgemäß könnte sich ein Überhang auswählbarer Stream-Warteschlangen bilden. Um Stream-Warteschlangen mit unterschiedlichen Toleranzen für eine Zellenverzögerungsvariation (CDV) Rechnung zu tragen, werden vier Prioritätsstufen bereitgestellt. Die Prioritäten werden von hoher zu niedriger Priorität folgendermaßen aufgelistet:
  • 0
    Dynamische hohe Priorität (HP),
    1
    Kurze Echtzeit-CDV (RT-S),
    2
    Lange Echtzeit-CDV (RT-L) und
    3
    Nicht-Echtzeit (NRT).
  • HP ist eine dynamische Zuweisung. Auswählbare Stream-Warteschlangen, die bei ihren minimalen garantierten Raten eingeteilt worden sind, werden automatisch als HP zugewiesen. Dies gewährleistet, dass alle Stream-Warteschlangen ihre minimalen Ratengarantien auf einer kurzen Zeitskala empfangen. Die verbleibenden drei Prioritätsstufen werden entsprechend der Verkehrsklasse und der Toleranz für Zellenverzögerungsvariationen statisch zugewiesen. Als RT-S klassifizierte Streams sind Echtzeit-Streams, die kleine CDV-Toleranzen aufweisen, während RT-L-Streams größere CDV-Toleranzen aufweisen. Nicht-Echtzeit-(NRT)-Streams haben im allgemeinen keine Anforderungen an die CDV.
  • Im allgemeinen würden Echtzeit-Streams mit niedriger Bitrate als RT-L klassifiziert werden, während Echtzeit-Streams mit hoher Bitrate als RT-S klassifiziert werden würden. Die CDV-Toleranz eines Streams braucht sich jedoch nicht direkt auf seine Bitrate zu beziehen. Die statischen Prioritätsstufen schützen Streams mit einer kleinen CDV-Toleranz vor den Bündelungswirkungen von Streams mit größeren CDV-Toleranzen. Beispielsweise sei ein Szenario betrachtet, bei dem es eintausend 64-kbps-Sprach-Streams gibt, die sich eine 150-Mbps-Verbindung mit einem einzigen 75-Mbps-Multimedia-Stream teilen.
  • Unter der Annahme, dass der Multimedia-Stream eine konstante Bitrate (CBR) aufweist, muss er eine Zelle einmal alle zwei Zellenzeiten senden. Falls Zellen von den Sprach-Streams an oder in der Nähe desselben Zeitschlitzes gebündelt werden, leidet der Multimedia-Stream als natürliche Folge der Überlagerung an einer schweren CDV in bezug auf seinen Zwischenzellenabstand einer Zellenzeit. Im schlimmsten Fall könnten zwei Zellen von dem Multimedia-Stream durch bis zu tausend Sprachzellen getrennt werden.
  • EXTERNE SPEICHERUNG
  • Die Einteiler-Datenstrukturen für eine einzige Prioritätsstufe sind in den 810 dargestellt. Für mehrere Prioritätsstufen werden die Zeitradstrukturen und die Bereitschaftsliste für jede Stufe repliziert (siehe die 1113). Falls es beispielsweise L Prioritätsstufen gibt, besteht jeder Zeit-Bin aus L verschiedenen Listen, wobei eine für jede Prioritätsstufe vorgesehen ist. Ein Zeitrad besteht aus einem Satz in ansteigender Ordnung der Zeit bezeichneter aufeinander folgender Zeit-Bins. Bei dieser Ausführungsform besteht ein Zeitrad aus 2K Zeit-Bins, die aufeinander folgend von 0 bis 2K – 1 nummeriert sind. Es sei bemerkt, dass die Anzahl der Zeit-Bins abhängig von der bestimmten Anwendung variieren kann.
  • Zum wirtschaftlichen Behandeln eines großen Bereichs von Bitraten wird eine Mehrzahl von Zeiträdern verwendet. Bei dieser Ausführungsform werden zwei Zeiträder verwendet, nämlich ein Zeitrad mit feiner Teilung (FG) und ein Zeitrad mit grober Teilung (CG). Die Zeit-Bins des Zeitrads mit feiner Teilung (FG) entsprechen mit 0, 1, ..., 2K – 1 nummerierten Zellenzeiten. Die Zeit-Bins des Zeitrads mit grober Teilung (CG) entsprechen mit 0, 64, 128, ..., (64·2K) – 1 nummerierten Zellenzeiten. Es sei bemerkt, dass die verschiedenen Zeiträder nicht die gleiche Anzahl von Zeit-Bins zu enthalten brauchen. Allgemein ausgedrückt, wird das Zeitrad mit feiner Teilung zum Versorgen von Streams hoher Rate verwendet, während das Zeitrad mit grober Teilung zum Versorgen von Streams mit niedrigerer Rate verwendet wird, wenngleich diese Unterscheidung keine strenge Eigenschaft der nachstehend beschriebenen Einteilungsalgorithmen ist.
  • Jedes Zeitrad-Zeit-Bin ist Stream-Warteschlangen zugeordnet, die für denselben Zeitschlitz eingeteilt sind. Weil bis zu 64K-Streams zu unterstützen sind, wird ein Stream-Zeiger oder eine Stream-Warteschlangenkennung mit einem 16-Bit-Wort identifiziert. Jedes Zeitrad-Zeit-Bin besteht aus Anfangspositions- und Endpositionszeigern (hp und tp), die auf Stellen in einem Stream-Zeiger-Speicher zeigen. Diese zeigen auf eine Liste für jedes Zeit-Bin. Der Stream-Zeiger-Speicher besteht aus 64K Einträgen. Jeder Eintrag in dem Stream-Zeiger-Speicher ist ein 16-Bit-Zeiger auf einen anderen Stream. Demgemäß ist der Stream-Zeiger-Speicher logisch 64K tief und 16 Bits breit. Der Stream-Zeiger-Speicher ist folgendermaßen definiert:
    Wort V[0 ... (64K – 1)],
    wobei Wort einen 16-Bit-Integer-Typ bezeichnet. Die groben Zeiträder sind durch
    Warteschlange TC[0 ... 3][0 ... (2K – 1)]
    definiert, während die feinen Zeiträder durch
    Warteschlange TF[0 ... 3][0 ... (2K – 1)]
    definiert sind, wobei der Typ Warteschlange ein folgendermaßen definierter zusammengesetzter Datentyp ist:
    Wort hp,
    Wort tp.
  • Beispielsweise ist der Anfangspositionszeiger zur Zeit 2 am Zeitrad mit grober Teilung und mit der Priorität 3 bezeichnet durch:
    TC[3] [2]·hp
  • Sowohl der Stream-Zeiger-Speicher als auch der Zeitrad speicher liegen außerhalb der Steuerlogik des Einteilers.
  • Die Größe der Bereitschaftsliste ist ein Maß für den Überhang in dem Einteiler. Durch Anwenden einer lokalen dynamischen Ratensteuerung (DRC) kann der Einteiler nahezu arbeitssparend gemacht werden. Weil die DRC-Berechnung auf Warteschlangenlängeninformationen beruht, ist es erforderlich, eine Zählung der Anzahl der Einträge in der Bereitschaftsliste vorzunehmen. Dies kann durch Speichern einer Zählung der Anzahl der Stream-Warteschlangenkennungen in jedem Zeit-Bin erfolgen.
  • Weil es höchstens 64K aktive Streams gibt, beträgt die maximale Anzahl der Stream-Warteschlangenkennungen in einem Zeit-Bin 64K, so dass die Zählergröße höchstens 16 Bits betragen muss. Daher werden die Zählungen für das grobe und das feine Zeitrad folgendermaßen definiert:
    Wort MC[0 ... (2K – 1)]
    Wort MF[0 ... (2K – 1)]
  • Wenn der aktuelle Zeitwert CT so weit vorläuft, dass er auf den nächsten Zeit-Bin zeigt, werden alle dem Zeit-Bin zugeordneten Stream-Warteschlangenkennungen für die Versorgung auswählbar. Das heißt, dass die eingeteilten Zeitstempel für die Streams, die diesen Stream-Warteschlangenkennungen entsprechen, ablaufen und die Streams zur Versorgung bereit sind. Abgelaufene Stream-Warteschlangenkennungen werden in einer Bereitschaftsliste festgehalten. Die Bereitschaftsliste enthält Stream-Warteschlangenkennungen, die zur Versorgung bereit sind, die jedoch noch nicht verarbeitet worden sind. Wenn der Einteiler eine externe Stream-Versorgungsanforderung empfängt, wird eine Stream-Warteschlangenkennung von der Anfangsposition der Bereitschaftsliste entfernt, und die Stream-Warteschlangenkennung wird entweder zu einer internen Ausgabewarteschlange gesendet oder zu einem externen Prozess übertragen.
  • Innerhalb der Steuerlogik gibt es Bitmaps, die den Zeitradspeichern eins-zu-eins entsprechen:
    Bit BC[0 ... 3][0 ... 2K – 1]
    Bit BF[0 ... 3][0 ... 2K – 1]
  • BC und BF bezeichnen die grobe Bitmap bzw. die feine Bitmap. Die Bitmaps werden auf Null initialisiert, wodurch angegeben wird, dass alle Zeitrad-Zeit-Bins zunächst leer sind. Ein Wert von eins in einem Bitmap-Eintrag gibt an, dass das entsprechende Zeitrad-Zeit-Bin nicht leer ist. Es gibt eine Bereitschaftsliste für jede Prioritätsstufe:
    Warteschlange r [0 ... 3]
  • Eine leere Bereitschaftsliste i wird durch Setzen von r[i]·hp = 0 angegeben. Wir definieren auch eine Integervariable rc, welche die Gesamtzahl der Einträge in allen Bereitschaftslisten zählt.
  • EINTEILUNG
  • Die aktuelle Zeit wird in einem als CT bezeichneten 17-Bit-Zähler gespeichert. Zwei in zCT gespeicherte Zusatzbits geben die Zone von CT an. Die Zone zCT nimmt die Werte 0, 1, 2 oder 3 an. Wenn CT von 128K – 1 nach null umläuft, wird zCT um eins inkrementiert (modulo vier). Ähnlich wird der Zeitstempelwert TSi für die Stream-Warteschlange Qi als eine 17-Bit-Zahl gespeichert, wobei die durch zwei Bits angegebene Zone in zTSi gespeichert wird. Falls zCT = zTSi ist, d.h. falls die aktuelle Zeit und der Zeitstempelwert in derselben Zone liegen, können CT und TSi direkt verglichen werden. Falls zCT = (zTSi – 1) mod 4 ist, stellt TSi eine Zeit in der nächsten Zone, d.h. in der Zukunft in Bezug auf CT, dar. Falls andererseits zCT = (zTSi + 1) mod 4 oder zCT = (zTSi + 2) mod 4 ist, stellt TSi eine Zeit in einer vorhergehenden Zone, d.h. in der Vergangenheit in bezug auf CT, dar.
  • Nach jeder Zellenzeit wird die aktuelle Zeit CT um eins vorgeschoben. Vor dem Vorschieben von CT müssen jegliche Stream-Warteschlangenkennungen, die dem Zeit-Bin bei CT zugeordnet sind, an die geeigneten Bereitschaftslisten angehängt werden. 14 beschreibt die Prozedur für das Anhängen von Stream-Warteschlangenkennungen an die geeignete Bereitschaftsliste. Der erste Teil der Prozedur stellt fest, ob CT dem Zeitrad mit der groben Teilung (CG) oder dem Zeitrad mit der feinen Teilung (FG) entspricht. Alle Zeit-Bins, die sich bei Vielfachen von 64 befinden, werden im Zeitrad mit der groben Teilung (CG) gespeichert.
  • Der Zählerspeicher MX wird einmal gelesen. Der Anfangspositionszeiger und der Endpositionszeiger des Zeitrads werden einmal für jede Prioritätsstufe gelesen. Hierdurch ergeben sich insgesamt acht Lesevorgänge für das Zeitrad. Der Stream-Zeiger-Speicher V wird für jede Prioritätsstufe höchstens einmal geschrieben, woraus sich insgesamt vier Einschreibvorgänge ergeben. Auf die interne Bitmap BX wird für jede Prioritätsstufe höchstens zweimal zugegriffen, woraus sich insgesamt acht Zugriffe ergeben. Der Bereitschaftslistenzeiger r wird für jede Prioritätsstufe viermal geschrieben und zweimal gelesen, woraus sich insgesamt zwölf Zugriffe ergeben. Schließlich ist ein Lese-Modifizier-Schreib-Zugriff erforderlich, um rc zu inkrementieren. Falls getrennte Speicher für die drei externen Speicher verwendet werden, ist die für diese Operation im schlimmsten Fall erforderliche Anzahl der Speicherzugriffe acht. Eine Zusammenfassung der Zugriffe auf Speicher zum Übertragen der Listen von dem der aktuellen Zeit CT entsprechenden Zeit-Bin zu den entsprechenden Bereitschaftslisten ist in Tabelle 2 angegeben.
  • Tabelle 2: Speicherzugriffe
    Figure 00360001
  • Falls eine Stream-Warteschlangenkennung zu dem Zeitrad an der Position TS hinzuzufügen ist und dieser Stream bei der Priorität i einzuteilen ist, bestimmt die in 15 beschriebene Prozedur das Zeitrad (grob oder fein) und das Zeit-Bin, an dem die Stream-Warteschlangenkennung eingefügt werden sollte. Die Variable X wird auf F gesetzt, falls das Zeitrad mit feiner Teilung zu verwenden ist, und auf C gesetzt, falls das Zeitrad mit grober Teilung zu verwenden ist. Die Stelle des Zeit-Bins wird als Variable t gespeichert.
  • Diese Prozedur erfordert ein Lesen-Modifizieren-Schreiben, um den Zählwert MX zu aktualisieren. Im schlimmsten Fall sind zwei Schreibvorgänge in TX und ein Schreibvorgang in V erforderlich. Ein Schreibzugriff und ein Lesezugriff werden für die interne Bitmap BX vorgenommen. Daher sind im schlimmsten Fall zwei externe Speicherzugriffe erforderlich, um eine neue Stream-Warteschlangenkennung in das Zeitrad einzufügen. Die Speicherzugriffe zum Einfügen einer neuen Stream-Warteschlangenkennung in das Zeitrad sind in Tabelle 3 zusammengefasst.
  • Tabelle 3: Zugriffe auf Speicher zum Einfügen neuer Stream-Warteschlangenkennungen in das Zeitrad
    Figure 00370001
  • 16 beschreibt die Prozedur zum Extrahieren einer Stream-Warteschlangenkennung aus der Bereitschaftsliste in der Prioritätsreihenfolge. Wenn die Bereitschaftsliste für die Priorität 0 (hoch) erschöpft ist, wird die Bereitschaftsliste für die Priorität 1 (niedriger) untersucht usw. Die extrahierte Stream-Warteschlangenkennung wird als Variable q gespeichert, die an den anderen Prozess weitergegeben wird, der die erste wartende Zelle von der q entsprechenden Warteschlange überträgt.
  • Für jede Stream-Warteschlangenkennung, die aus der Bereitschaftsliste extrahiert wird, ist höchstens ein Lesevorgang aus dem Stream-Zeiger-Speicher V erforderlich. Es sind zwei Lesevorgänge und ein Schreibvorgang in die Bereitschaftslistenzeiger r erforderlich. Schließlich ist ein Lese-Modifizier-Schreib-Vorgang erforderlich, um den Bereitschaftslistenzähler rc zu erhöhen. Die Zugriffe auf Speicher zum Einfügen einer neuen Stream-Warteschlangenkennung in ein Zeitrad sind in Tabelle 4 zusammengefasst.
  • Tabelle 4: Zugriffe auf Speicher zum Einfügen einer neuen Stream-Warteschlangenkennung in ein Zeitrad
    Figure 00380001
  • ZUGRIFFE IN EINER ZELLENZEIT
  • Die in einer Zellenzeit erforderlichen Operationen sind in Tabelle 5 (der Reihenfolge nach) aufgelistet. Im schlimmsten Fall sind während einer Zellenzeit 17 Speicherzugriffe (parallel für getrennte Speicher) erforderlich. Diese Anzahl könnte durch gleichzeitiges Lesen und Schreiben von Anfangspositions-/Endpositionszeigern in dem Zeitrad verbessert werden. Es sei bemerkt, dass Schritt 4 wiederholt werden kann, falls dies die Zeit während einer Zellenzeit erlaubt.
  • Tabelle 5. Speicherzugriffe zum Einfügen einer neuen Stream-Warteschlangenkennung in das Zeitrad
    Figure 00390001
  • Zusammenfassend sei bemerkt, dass das Verfahren zum Einteilen von Zellen enthaltenden Stream-Warteschlangen in einer ATM-Vermittlung ohne Berücksichtigung der Priorität die folgenden wesentlichen Schritte aufweist:
    • (a) Berechnen eines Einteilungsratenwerts für jeden Stream,
    • (b) Berechnen eines Zeitstempelwerts für jede Stream-Warteschlange auf der Basis ihres Einteilungsratenwerts,
    • (c) Einteilen jeder Stream-Warteschlange durch Zuweisen einer Stream-Warteschlangenkennung zu einem Zeit-Bin eines ersten Zeitrad-Einteilungsspeichers auf der Basis ihres Zeitstempelwerts,
    • (d) Übertragen einer Liste von Stream-Warteschlangenkennungen von einem Zeit-Bin auf dem Zeitrad zu einer Bereitschaftsliste, wenn ein aktueller Zeitwert gleich dem Zeit-Bin-Wert ist,
    • (e) Wählen einer ersten Stream-Warteschlangenkennung aus der Bereitschaftsliste und
    • (f) Senden einer ersten Zelle in der Stream-Warteschlange, die der gewählten Stream-Warteschlangenkennung entspricht, wobei der Zeitstempel und die aktuellen Zeitwerte zyklisch umlaufen.
  • Das Verfahren zum Einteilen von Zellen enthaltenden Stream-Warteschlangen in einer ATM-Vermittlung unter Berücksichtigung der Priorität weist die folgenden wesentlichen Schritte auf:
    • (a) Berechnen eines Einteilungsratenwerts für jeden Stream,
    • (b) Berechnen eines Zeitstempelwerts für jede Stream-Warteschlange auf der Basis ihres Einteilungsratenwerts,
    • (c) Zuweisen von einer von mindestens zwei Prioritätsstufen zu jeder Stream-Warteschlange, wobei die Prioritätsstufen verschiedenen Werten von hohen zu niedrigen Werten zugewiesen werden,
    • (d) Einteilen jeder Stream-Warteschlange durch Zuweisen einer Stream-Warteschlangenkennung zu einem Zeit-Bin eines Zeitrad-Einteilungsspeichers auf der Basis ihres Zeitstempelwerts und ihrer Prioritätsstufe,
    • (e) Übertragen einer Liste von Stream-Warteschlangenkennungen von einem Zeit-Bin auf dem Zeitrad zu einer Bereitschaftsliste bei der geeigneten Prioritätsstufe, wenn ein aktueller Zeitwert gleich dem Zeit-Bin-Wert ist,
    • (f) Wählen einer ersten Stream-Warteschlangenkennung aus der nicht leeren Bereitschaftsliste höchster Priorität und
    • (g) Senden einer ersten Zelle in der Stream-Warteschlange, die der gewählten Stream-Warteschlangenkennung entspricht, wobei der Zeitstempel und die aktuellen Zeitwerte zyklisch umlaufen.
  • Ein Aspekt der vorstehend beschriebenen Ausführungsform mit mehreren Prioritätsstufen besteht darin, dass während einer Zellenzeit die verschiedenen Prioritätslisten bei dem dem aktuellen Zeitwert CT entsprechenden Zeit-Bin nacheinander einzeln zu den entsprechenden Bereitschaftslisten übertragen werden. Eine alternative Ausführungsform der mehrere Prioritäten unterstützenden Architektur des Einteilers wird nachstehend mit Bezug auf die 1923 beschrieben.
  • Die 19 und 20 zeigen Beispiele dieser Ausführungsform mit zwei Zeiträdern. Es gibt L = 4 Prioritätsstufen, und die Granularität des Zeitrads mit grober Teilung ist G = 64. Das Zeitrad mit feiner Teilung besteht aus M·L Einträgen, und das Zeitrad mit grober Teilung besteht aus N·L Einträgen. Jedes Zeit-Bin des Zeitrads mit feiner Teilung (FG) entspricht einer Zellenzeit, und jedes Zeit-Bin an dem Zeitrad mit grober Teilung (CG) entspricht G Zellenzeiten. Für dieses Beispiel wird angenommen, dass die Werte von L und G beide Potenzen von zwei sind. Den Zeit-Bins des FG-Zeitrads werden durch zyklisches Bezeichnen der Zeit-Bins in der Reihenfolge der Prioritätsstufe Prioritäten zugewiesen. Hierbei handelt es sich beispielsweise um 0, 1, 2, 3, 0, 1, 2, 3, usw., wie in 19 dargestellt ist. Ähnlich werden den Zeit-Bins des CG-Zeitrads Prioritätsstufen zugewiesen.
  • Jeder Zeitradeintrag (d.h. jedes Zeit-Bin) besteht aus einer Liste von Stream-Warteschlangenkennungen. Während jeder Zellenzeit wird die Liste an dem der aktuellen Zeit CT entsprechenden Zeit-Bin bei der dem Zeit-Bin zugewiesenen Prioritätsstufe zur Bereitschaftsliste übertragen. Die Bereitschaftslisten sind Listen von Stream-Warteschlangenkennungen. Während jeder Zellenzeit wird eine Stream-Warteschlangenkennung aus der nicht leeren Bereitschaftsliste mit der höchsten Priorität entfernt (falls eine existiert). Die erste Zelle aus der entsprechenden Stream-Warteschlange wird übertragen, und die Stream-Warteschlange wird dann neu eingeteilt, falls sie nicht leer bleibt.
  • Die 22 und 23 zeigen die Prozeduren zum Einteilen eines neuen Streams mit einem zugeordneten Zeitstempelwert TS bei der Prioritätsstufe P. Es sei bemerkt, dass diese Figuren mögliche Umlaufsituationen nicht berücksichtigen. Falls eine Umlaufsituation auftritt, sind zusätzliche Prozeduren entlang den Linien erforderlich, die im Abschnitt Umlaufmechanismus erörtert sind.
  • Der erste Schritt beim Einteilen eines neuen Streams zur Zeit TS und bei der Prioritätsstufe P besteht darin, TS mit CT zu vergleichen (Schritt 700). Falls TS kleiner als CT ist, wird die Stream-Warteschlangenkennung an die Endposition der Bereitschaftsliste mit der Priorität P angehängt (Schritt 705), und die Prozedur endet.
  • Falls TS nicht kleiner als CT ist, wird (TS – CT) mit (G·N·L) verglichen (Schritt 710). G stellt die Granularität des Zeitrads mit grober Teilung dar. Falls (TS – CT) größer als (G·N·L) ist, wird TS' auf den möglichen eingeteilten Zeitwert von (CT + G·((N – 1)·L + P) gesetzt (Schritt 715). N bestimmt die Größe des Zeitrads mit feiner Teilung, die durch N·L gegeben ist. L stellt die Anzahl der Prioritätsstufen dar. Dann wird P' so festgelegt, dass es der Priorität des Zeit-Bins TS entspricht (Schritt 720). Es sei bemerkt, dass TS nicht modifiziert wird und die Prozedur direkt zu Schritt 720 geht, falls (TS – CT) nicht größer als (G·N·L) ist.
  • Als nächstes wird TS' auf TS + (P – P') gesetzt (Schritt 725). Falls TS ein Vielfaches von G ist und P = 0 ist (Schritt 735), wird TS' auf TS' – L gesetzt (Schritt 740). Dann wird TS' mit CT verglichen (Schritt 745). Es sei bemerkt, dass TS' auf TS' – L gesetzt wird, TS' nicht modifiziert wird und die Prozedur direkt zu Schritt 745 geht, falls TS kein Vielfaches von G ist oder P = 0 ist.
  • Falls TS' kleiner als CT ist, wird die Stream-Warteschlangenkennung an die Endposition der Bereitschafts liste mit der Priorität P angehängt (Schritt 750), und die Prozedur endet. Falls TS' nicht kleiner als CT ist, wird TS' – CT mit M·L verglichen (Schritt 747). M bestimmt die Größe des Zeitrads mit grober Teilung (CG), die durch M·L gegeben ist. Falls TS' – CT nicht kleiner als M·L ist, wird der Stream an dem Zeitrad mit grober Teilung (CG) eingeteilt, wie in 23 dargestellt ist und wie nachstehend beschrieben wird.
  • Falls TS' – CT kleiner als M·L ist, wird P' mit P verglichen (Schritt 755). Falls P' größer oder gleich P ist, wird die Stream-Warteschlangenkennung an die Endposition der Liste am Zeit-Bin TS' an dem Zeitrad mit feiner Teilung (FG) angehängt (Schritt 760), und die Prozedur endet.
  • Falls P' größer oder gleich P ist, wird die Stream-Warteschlangenkennung an die Anfangsposition der Liste am Zeit-Bin TS' am Zeitrad mit feiner Teilung (FG) eingefügt (Schritt 765), und die Prozedur endet.
  • Falls der Stream am Zeitrad mit grober Teilung (CG) einzuteilen ist, wird der Prozedur in 23 gefolgt. Zuerst wird I auf TS'/G gesetzt (Schritt 800). Dann wird P' auf die dem Zeit-Bin G·I entsprechende Prioritätsstufe gesetzt (Schritt 810). Als nächstes wird TS'' auf G·(I + (P – P'')) gesetzt (Schritt 820).
  • Dann wird P' mit P verglichen (Schritt 830). Falls P' größer oder gleich P ist, wird die Stream-Warteschlangenkennung an die Endposition der Liste am Zeit-Bin TS'' am Zeitrad mit grober Teilung (CG) angehängt (Schritt 840), und die Prozedur endet. Falls P' nicht größer oder gleich P ist, wird die Stream-Warteschlangenkennung an der Anfangsposition der Liste am Zeit-Bin TS'' am Zeitrad mit grober Teilung (CG) eingefügt (Schritt 850), und die Prozedur endet.
  • RATENBERECHNUNG
  • Bei der DRC-Einteilung wird die Einteilungsrate für einen gegebenen Stream dynamisch aktualisiert. Bei der DRC-Einteilung wird die dynamische Rate Rdrc als Summe einer minimalen garantierten Rate M und einer Überschussrate E, welche die für den Stream an verschiedenen Engpässen entlang dem Weg verfügbare überschüssige Bandbreite widerspiegelt, berechnet: Rdrc = M + E.
  • Eine lokale dynamische Rate Eloc kann auf der Grundlage der beobachteten Auslastung berechnet werden, wenn Warteschlangen von der Bereitschaftsliste übertragen werden. Auf diese Weise wird der Einteiler an dem lokalen Engpass nahezu arbeitssparend gemacht. Eine an einem stromabwärts gelegenen Engpass innerhalb der Vermittlung berechnete externe Überschussrate Eext kann als Eingabe für die Ratenberechnungsmaschine dienen.
  • In diesem Fall ist die DRC-Überschussrate: E = min (Eloc, Eext)
  • Die Rate Eext kann selbst das an Engpässen entlang dem Weg des Streams innerhalb der Vermittlung berechnete Minimum mehrerer DRC-Raten sein. Diese Rateninformation wird durch interne Ressourcenverwaltungszellen (IRM-Zellen) übertragen.
  • BERECHNUNG DER LOKALEN DRC-RATE
  • Die DRC-Einteilung ist in weiteren Einzelheiten in der anhängigen Anmeldung 08/924 820 erörtert. Es wird eine kurze Beschreibung davon gegeben, wie eine DRC lokal angewendet werden kann. Die mit Eloc bezeichnete lokale DRC-Überschussrate kann auf der Grundlage der gemessenen lokalen Auslastung U ^loc berechnet werden. Eine Proportional-Ableitungs-(PD)-Steuereinrichtung berechnet iterativ einen neuen Wert von Eloc, um die Differenz zwischen der gemessenen Auslastung und der Zielauslastung Uloc zu minimieren. Die Steuereinrichtung hat die Form: Eloc(n + 1) = Eloc(n) + α1(Uloc – U ^loc) + α2(Uloc – U ^loc)wobei die Filterkoeffizienten α1 und α2 gewählt werden, um Stabilität und schnelle Konvergenz zu gewährleisten. Eine klassenbasierte E kann in analoger Weise berechnet werden.
  • VIRTUELLE ABR-QUELLE (ABR VS)
  • Bei der virtuellen ABR-Quellensteuerung (siehe "Traffic Management Specification, Version 4.0", The ATM Forum, 1996) bildet der Einteiler das Verhalten einer ABR-Quelle nach. ABR-Ressourcenverwaltungszellen (ABR-RM-Zellen) übertragen explizite Rateninformationen (ER-Informationen), welche die Rate festlegen, bei der Zellen übertragen werden. Die externe Rate, die wir mit Rabr bezeichnen, wird vom lokalen Einteiler verwendet, um den ABR-Stream zu formen. Die virtuelle ABR-Quellensteuerung kann leicht mit der DRC-Einteilung kombiniert werden, indem die Einteilungsrate für einen ABR-Stream als das Minimum der für die DRC- und ABR-VS-Steuerung berechneten Raten gebildet wird, d.h. R = min(Rabr, Rdrc),wobei Rdrc eine lokal berechnete Rate für die DRC-Einteilung darstellt. Ein Beispiel eines Algorithmus zur Berechnung von Rabr ist in "Traffic Management Specification, Version 4.0" enthalten.
  • AUSLASTUNGSPARAMETERSTEUERUNG
  • Zusätzlich zur Einteilung von Zellen für den Stream i bei der Einteilungsrate Ri kann die Architektur des Einteilers verwendet werden, um eine Verkehrsformung für jeden Stream in Übereinstimmung mit der UPC-(Usage Parameter Control-Auslastungsparametersteuerung)-Spezifikation in "Traffic Management Specification, Version 4.0", The ATM Forum, 1996 auszuführen. Insbesondere wird nachstehend kurz erörtert, wie der Stream i gleichzeitig bei der Rate Ri eingeteilt werden kann und geformt werden kann, so dass er GCRA (1/PCRi, 0) und GCRA (1/SCRi, THi) entspricht (für eine Spezifikation des Generic Cell Rate Algorithm (GCRA) für die UPC-Vereinbarung sei auf "Traffic Management Specification, Version 4.0", The ATM Forum, 1996 verwiesen).
  • Der Zweck der Formung eines Streams besteht darin, zu erzwingen, dass er mit den UPC-Parametern übereinstimmt, die am nächsten Sprung in dem Netz vereinbart sind (beispielsweise an der Schnittstelle zu einem getrennten Unternetz). Dies verhindert das Aussondern von Zellen oder das Kennzeichnen von Zellen, das durch den Vereinbarungsvermittler an nicht übereinstimmenden oder verletzenden Zellen ausgeführt wird.
  • 17 zeigt die Prozedur zum Berechnen des Zeitstempels (ohne Berücksichtigung des Umlaufs) für eine kombinierte Rateneinteilung und UPC-Formung, wenn eine Zelle an der Stream-i-Warteschlange ankommt. Nachdem eine Zelle an der Warteschlange i angekommen ist (Schritt 500), wird der Status der Warteschlange geprüft (Schritt 510). Falls die Warteschlange leer ist, wird der Einteilungs-Zeitstempel TSi nach TSi = MAX[{TSi + MAX(1/PCRi, 1/Ri)}, CT] aktualisiert (Schritt 520).
  • Dann wird der Formungszeitstempel TSi mit CT verglichen (Schritt 530). Falls TSi' kleiner oder gleich CT ist, wird TSi' auf CT gesetzt (Schritt 540). Der Stream wird zur Zeit MAX(CT, TSi) eingeteilt (Schritt 560), TSi' wird nach TSi' = TSi' + 1/SCRi aktualisiert (Schritt 570), und die Zelle wird an die Warteschlange i angehängt (Schritt 580).
  • Falls in Schritt (530) TSi' größer als CT ist, wird TSi' mit CT + THi verglichen (Schritt 550). Falls TSi' > CT + THi ist, wird der Stream zur Zeit MAX(TSi' – THi, TSi) eingeteilt (Schritt 555). Dann wird die Zelle an die Warteschlange i angehängt.
  • Falls in Schritt (550) TSi' kleiner oder gleich CT + THi ist, wird der Stream zur Zeit MAX(CT, TSi) eingeteilt (Schritt 560), wird TSi' nach TSi' = TSi' + 1/SCRi aktualisiert (Schritt 570), und wird die Zelle an die Warteschlange i angehängt (Schritt 580).
  • 18 zeigt die Prozedur zum Berechnen des Zeitstempels (ohne Berücksichtigung eines Umlaufs) für eine kombinierte Rateneinteilung und UPC-Formung, wenn eine Zelle von einer Stream-i-Warteschlange abweicht. Die Zelle wird entfernt und von der Warteschlange i übertragen (Schritt 600). Der Status der Warteschlange i wird geprüft (Schritt 610). Falls die Warteschlange leer ist, endet die Prozedur (Schritt 650). Andernfalls wird der Einteilungs-Zeitstempel nach TSi = TSi + MAX(1/Ri, 1/PCRi) aktualisiert (Schritt 620). Der Formungs-Zeitstempel wird nach TSi' = TSi' + 1/SCRi aktualisiert (Schritt 630). Dann wird der Stream bei der Zeit MAX(TSi, TSi' – THi) eingeteilt (Schritt 640), bevor die Prozedur endet (Schritt 650).
  • Die vorliegende Erfindung ist eine skalierbare und flexible Architektur für das Implementieren einer DRC-Einteilung in einer ATM-Vermittlung. Die Architektur führt eine Spitzenratenformung von Streams aus, wobei die Formungsraten entsprechend dem DRC-Schema bestimmt werden. Der Einteiler beruht auf einer Zeitrad-Datenstruktur, wobei Stream-Warteschlangen auf die Versorgung warten, bis ihre berechneten Zeitstempel ablaufen. Eine Bereitschaftsliste speichert auswählbare Stream-Warteschlangen, die noch nicht versorgt worden sind.
  • Zum Erreichen eines weiten Bereichs von Raten, ohne große Speicher zu verwenden, wird der Einteiler mit mindestens zwei Zeiträdern implementiert, nämlich einem Zeitrad mit feiner Teilung und einem Zeitrad mit grober Teilung.
  • Die Zeitradstruktur wird durch mehrere Prioritätsstufen erweitert, nämlich vier in diesem Beispiel. Die hohe Prioritätsstufe wird dynamisch zugewiesen, um zu gewährleisten, dass Streams in der Lage sind, ihre minimalen Ratengarantien zu erfüllen. Die übrigen Prioritätsstufen ermöglichen eine QoS-Differenziation auf einer groben Ebene. Der Zeitstempelwert für jede Stream-Warteschlange wird nach Bedarf aktualisiert, um eine Spitzenratenformung in Übereinstimmung mit der durch das DRC-Schema bestimmten Rate zu erreichen.
  • Andere Modifikationen und Variationen der Erfindung werden Fachleuten anhand der vorstehenden Offenbarung und Lehren verständlich werden. Wenngleich hier nur bestimmte Ausführungsformen der Erfindung spezifisch beschrieben wurden, wird demgemäß verständlich sein, dass daran zahlreiche Modifikationen vorgenommen werden können.

Claims (10)

  1. Vorrichtung zum Einteilen von Zellen versorgenden Stream-Warteschlangen in einer ATM-Vermittlung, umfassend: einen mit einer Warteschlangenmanagereinheit (2) verbundenen Zellenspeicher (1), der in Stream-Warteschlangen organisierte ATM-Zellen speichert; und einen mit einer Einteilereinheit (3) und dem Warteschlangenmanager verbundenen Steuerspeicher (4), der Warteschlangeninformationen speichert; wobei die Einteilereinheit (3) auf der Basis der Warteschlangeninformationen in dem Steuerspeicher (4) eine zu versorgende Stream-Warteschlange auswählt und einen Zeitrad-Einteilungsspeicher (5A) umfasst, der Stream-Warteschlangenkennungen in einer Reihe von Zeit-Bins speichert; und wobei der Warteschlangenmanager (2) das Empfangen und Senden von ATM-Zellen auf der Basis der Überbelegung der ATM-Vermittlung und der Warteschlangeninformationen in dem Steuerspeicher (4) steuert.
  2. Vorrichtung nach Anspruch 1, wobei die Einteilereinheit ferner folgendes umfasst: eine Ratenberechnungseinheit (8), die die Rate für jede Stream-Warteschlange auf der Basis von externen Rateninformationen und der Warteschlangeninformationen in dem Steuerspeicher (4) berechnet, eine Zeitstempelberechnungseinheit (7), die einen Zeitstempelwert für jede Stream-Warteschlange berechnet; mindestens eine Bereitschaftsliste (9a), die die Stream-Warteschlangenkennungen speichert, die bereit sind, versorgt zu werden; eine Einteilerlogikeinheit (6), die den Betrieb des Zeritrad-Einteilungsspeichers (5A), der Zeitstempelberechnungseinheit (7) und der Bereitschaftsliste (9a) koordiniert.
  3. Vorrichtung nach Anspruch 1, wobei die Einteilereinheit (3) mehrere Zeitrad-Einteilungsspeicher (5A, 5B) umfasst, wobei Zeit-Bins in einem ersten Zeitrad-Einteilungsspeicher (5A) Werte zugewiesen werden, die einer Zellenzeit entsprechen, und Zeit-Bins in den anderen Zeitrad-Einteilungsspeichern (5B) andere Werte zugewiesen werden, die mehr als einer Zellenzeit entsprechen.
  4. Vorrichtung nach Anspruch 3, wobei die Einteilereinheit (3) ferner folgendes umfasst: eine Ratenberechnungseinheit (8), die die Rate für jede Stream-Warteschlange auf der Basis von externen Rateninformationen und dann Warteschlangeninformationen in dem Steuerspeicher (4) berechnet; eine Zeitstempelberechnungseinheit (7), die einen Zeitstempelwert für jede Stream-Warteschlange berechnet; eine Bereitschaftsliste (9A, 9B, 9C, 9D), die die Stream-Warteschlangenkennungen speichert, die bereit sind, versorgt zu werden; eine Einteilerlogikeinheit (6), die den Betrieb der mehreren Zeitrad-Einteilungsspeicher, der Zeitstempelberechnungseinheit (7) und der Bereitschaftsliste (9A, 9B, 9C, 9D) koordiniert.
  5. Vorrichtung nach Anspruch 4, wobei jedes Zeit-Bin aus mehreren Listen besteht, wobei jede Liste einer anderen Prioritätsstufe entspricht, und wobei mehrere Bereitschaftslisten (9A, 9B, 9C, 9D) vorliegen, wobei jede Liste einer der verschiedenen Prioritätsstufen entspricht.
  6. Vorrichtung nach Anspruch 4, wobei jedes Zeit-Bin aus einer einzigen Liste (9A) besteht und wobei mehrere Bereitschaftslisten (9A, 9B, 9C, 9D) vorliegen, wobei jede Liste einer anderen Prioritätsstufe entspricht.
  7. Verfahren zum Einteilen von Zellen enthaltenden Stream-Warteschlangen in einer ATM-Vermittlung, mit den folgenden Schritten: (a) Berechnen eines Einteilungsratenwertes für jeden Stream; (b) Berechnen eines Zeitstempelwerts für jede Stream-Warteschlange auf der Basis ihres Einteilungsratenwerts; (c) Einteilen jeder Stream-Wartschlange durch Zuweisen einer Stream-Warteschlangenkennung zu einem Zeit-Bin eines ersten Zeitrad-Einteilungsspeichers auf der Basis ihres Zeitstempelwerts; (d) Transferieren einer Liste von Stream-Warteschlangenkennungen von einem Zeit-Bin auf dem Zeitrad zu einer Bereitschaftsliste, wenn ein aktueller Zeitwert gleich dem Zeit-Bin-Wert ist, (e) Wählen einer ersten Stream-Warteschlangenkennung aus der Bereitschaftsliste; und (f) Senden einer ersten Zelle in der Stream-Warteschlange, die der gewählten Stream-Warteschlangenkennung entspricht; wobei der Zeitstempel und die aktuellen Zeitwerte zyklieren.
  8. Verfahren nach Anspruch 7, wobei der Zeitstempelwert jeder Stream-Warteschlange neu berechnet wird, wenn eine Zelle an einer leeeren Stream-Warteschlange ankommt und/oder eine Zelle von einer nicht leeren Stream- Warteschlange abgeht.
  9. Verfahren nach Anspruch 7, wobei der aktuelle Zeitstempelwert niemals um mehr als einen Zyklus hinter den Zeitstempelwert fällt oder sich um mehr als einen Zyklus vor den Zeitstempelwert bewegt.
  10. Verfahren nach Anspruch 7, wobei in Schritt (c) jede Stream-Warteschlangenkennung an einem Zeit-Bin auf der Basis ihres Zeitstempelwerts einem von mehreren Zeitrad-Einteilungsspeichern zugewiesen wird.
DE69931302T 1998-03-18 1999-03-17 Zeitbasierte Ablaufsteuerungsarchitektur und Verfahren für ATM Netzwerke Expired - Fee Related DE69931302T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US40311 1993-03-30
US09/040,311 US6389019B1 (en) 1998-03-18 1998-03-18 Time-based scheduler architecture and method for ATM networks

Publications (2)

Publication Number Publication Date
DE69931302D1 DE69931302D1 (de) 2006-06-22
DE69931302T2 true DE69931302T2 (de) 2007-03-08

Family

ID=21910313

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69931302T Expired - Fee Related DE69931302T2 (de) 1998-03-18 1999-03-17 Zeitbasierte Ablaufsteuerungsarchitektur und Verfahren für ATM Netzwerke

Country Status (4)

Country Link
US (1) US6389019B1 (de)
EP (3) EP1489791A3 (de)
JP (1) JP3252823B2 (de)
DE (1) DE69931302T2 (de)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69840321D1 (de) * 1998-02-05 2009-01-22 Alcatel Lucent Zelleneliminierungsverfahren
US6477146B1 (en) * 1998-08-31 2002-11-05 Fujitsu Network Communications, Inc. Usage parameter control device for asynchronous transfer mode system
US6804229B2 (en) 1998-12-30 2004-10-12 Nortel Networks Limited Multiple node network architecture
US6885661B1 (en) 1998-12-30 2005-04-26 Nortel Networks Limited Private branch exchange built using an ATM Network
US6788703B2 (en) 1998-12-30 2004-09-07 Nortel Networks Limited DS0 on ATM, mapping and handling
US6778538B2 (en) * 1998-12-30 2004-08-17 Nortel Networks Limited Virtual junctors
US6768736B1 (en) 1998-12-30 2004-07-27 Nortel Networks Limited Using an ATM switch to grow the capacity of a switching stage
US6567415B1 (en) * 1999-03-20 2003-05-20 Lucent Technologies Inc. Packet scheduling in a communication network with statistical multiplexing of service classes
US7392279B1 (en) * 1999-03-26 2008-06-24 Cisco Technology, Inc. Network traffic shaping using time-based queues
US6501762B1 (en) * 1999-04-21 2002-12-31 Nortel Networks Limited Scheduler implementing weighted fair queuing by a weight limited first in-first out methodology
US6600752B1 (en) * 1999-06-30 2003-07-29 Network Physics Method for reducing excess queue time in communication nodes
JP2001036549A (ja) * 1999-07-15 2001-02-09 Toshiba Corp データ処理システムおよびタイムスタンプ生成方法
US6728265B1 (en) * 1999-07-30 2004-04-27 Intel Corporation Controlling frame transmission
US6570883B1 (en) * 1999-08-28 2003-05-27 Hsiao-Tung Wong Packet scheduling using dual weight single priority queue
EP1250776A1 (de) * 1999-10-29 2002-10-23 Forskarpatent i Västsverige AB Verfahren und anordnung zur stauungssteuerung in paketnetzen unter verwendung von schwellen und rücksetzung von paketflüssen
KR100327162B1 (ko) * 1999-11-24 2002-03-13 서평원 에이티엠 스위치의 가중 우선순위에 따른 셀 스케쥴링 방법
US7114000B1 (en) * 1999-11-29 2006-09-26 Cisco Technology, Inc. Scheduling network traffic using multiple logical schedule tables
US6430152B1 (en) * 1999-12-22 2002-08-06 Alcatel Usa Sourcing, L.P. Scheduler system for scheduling the distribution of ATM cells
US6744776B1 (en) * 2000-01-28 2004-06-01 Advanced Micro Devices, Inc. Servicing priority traffic in multiport network switch
GB0007394D0 (en) * 2000-03-27 2000-05-17 Nokia Networks Oy Transmitting packet data
US6862292B1 (en) 2000-04-13 2005-03-01 International Business Machines Corporation Method and system for network processor scheduling outputs based on multiple calendars
TWI222012B (en) * 2000-04-13 2004-10-11 Ibm Method and system for network processor scheduling outputs using disconnect/reconnect flow queues
US7315901B1 (en) 2000-04-13 2008-01-01 International Business Machines Corporation Method and system for network processor scheduling outputs using disconnect/reconnect flow queues
US6952424B1 (en) 2000-04-13 2005-10-04 International Business Machines Corporation Method and system for network processor scheduling outputs using queueing
US7126969B1 (en) * 2000-07-06 2006-10-24 Cisco Technology, Inc. Scalable system and method for reliably sequencing changes in signaling bits in multichannel telecommunication lines transmitted over a network
KR100343935B1 (ko) * 2000-10-09 2002-07-20 주식회사 하이닉스반도체 Imt-2000 시스템내 atm 교환기에서의 dbwrr 셀스케줄링 장치 및 방법
US6975638B1 (en) * 2000-10-13 2005-12-13 Force10 Networks, Inc. Interleaved weighted fair queuing mechanism and system
US6987732B2 (en) * 2000-12-15 2006-01-17 Tellabs San Jose, Inc. Apparatus and methods for scheduling packets in a broadband data stream
US7765422B2 (en) * 2001-01-19 2010-07-27 Alcatel-Lucent Usa Inc. Method of determining a time offset estimate between a central node and a secondary node
SE518720C2 (sv) * 2001-02-07 2002-11-12 Ericsson Telefon Ab L M Anordning och förfarande relaterande till trafikstyrning
US7042843B2 (en) 2001-03-02 2006-05-09 Broadcom Corporation Algorithm for time based queuing in network traffic engineering
US6987774B1 (en) * 2001-06-20 2006-01-17 Redback Networks Inc. Method and apparatus for traffic scheduling
JP3698079B2 (ja) 2001-08-22 2005-09-21 日本電気株式会社 データ転送方法、データ転送装置及びプログラム
KR100447058B1 (ko) * 2001-09-18 2004-09-04 유티스타콤코리아 유한회사 비동기 전송 모드 네트워크에서 2단계 가중 공정 셀스케줄링 방법
FR2830162B1 (fr) * 2001-09-27 2003-12-05 Streamcore Dispositif de gestion partagee
US7310345B2 (en) * 2001-11-01 2007-12-18 International Business Machines Corporation Empty indicators for weighted fair queues
US7046676B2 (en) 2001-11-01 2006-05-16 International Business Machines Corporation QoS scheduler and method for implementing quality of service with cached status array
US7317683B2 (en) * 2001-11-01 2008-01-08 International Business Machines Corporation Weighted fair queue serving plural output ports
US7187684B2 (en) * 2001-11-01 2007-03-06 International Business Machines Corporation Weighted fair queue having extended effective range
US7280474B2 (en) * 2001-11-01 2007-10-09 International Business Machines Corporation Weighted fair queue having adjustable scaling factor
US7103051B2 (en) 2001-11-01 2006-09-05 International Business Machines Corporation QoS scheduler and method for implementing quality of service with aging time stamps
US7242692B2 (en) * 2001-11-07 2007-07-10 Via Technologies, Inc. Method and device for coordinating packet transmission order
US20030103453A1 (en) * 2001-12-05 2003-06-05 Broadweb Corporation System and method for managing flow bandwidth utilization in a packet communication environment
US7376159B1 (en) 2002-01-03 2008-05-20 The Directv Group, Inc. Exploitation of null packets in packetized digital television systems
US7443793B2 (en) 2002-02-28 2008-10-28 Agere Systems Inc. Processor with dynamic table-based scheduling using linked transmission elements for handling transmission request collisions
US7245624B2 (en) * 2002-02-28 2007-07-17 Agere Systems Inc. Processor with table-based scheduling using software-controlled interval computation
US7215675B2 (en) 2002-02-28 2007-05-08 Agere Systems Inc. Processor with software-controlled programmable service levels
US7224681B2 (en) * 2002-02-28 2007-05-29 Agere Systems Inc. Processor with dynamic table-based scheduling using multi-entry table locations for handling transmission request collisions
US7680043B2 (en) * 2002-03-20 2010-03-16 International Business Machines Corporation Network processor having fast flow queue disable process
US7257124B2 (en) * 2002-03-20 2007-08-14 International Business Machines Corporation Method and apparatus for improving the fairness of new attaches to a weighted fair queue in a quality of service (QoS) scheduler
US20050018601A1 (en) * 2002-06-18 2005-01-27 Suresh Kalkunte Traffic management
US7272144B2 (en) * 2002-06-26 2007-09-18 Arris International, Inc. Method and apparatus for queuing data flows
US7286473B1 (en) * 2002-07-10 2007-10-23 The Directv Group, Inc. Null packet replacement with bi-level scheduling
FR2845224B1 (fr) * 2002-09-26 2004-12-17 Cit Alcatel Dispositif ordonnanceur pour un systeme a ressources partagees asymetriquement
US7336662B2 (en) * 2002-10-25 2008-02-26 Alcatel Lucent System and method for implementing GFR service in an access node's ATM switch fabric
US7284236B2 (en) * 2002-10-29 2007-10-16 Brocade Communications Systems, Inc. Mechanism to change firmware in a high availability single processor system
CN1853379A (zh) * 2002-12-31 2006-10-25 肯奈克斯特公司 在异步传输模式信元传输中提供服务质量的系统和方法
US7647221B2 (en) * 2003-04-30 2010-01-12 The Directv Group, Inc. Audio level control for compressed audio
US7742401B2 (en) * 2003-08-11 2010-06-22 Netapp, Inc. Network having switchover with no data loss
US7336606B2 (en) * 2003-08-14 2008-02-26 Intel Corporation Circular link list scheduling
US20050047415A1 (en) * 2003-08-28 2005-03-03 Radhakrishna Channegowda Data traffic manager and method therefor
GB0320506D0 (en) * 2003-09-02 2003-10-01 Koninkl Philips Electronics Nv Cell scheduling
US7912226B1 (en) 2003-09-12 2011-03-22 The Directv Group, Inc. Automatic measurement of audio presence and level by direct processing of an MPEG data stream
CN100358314C (zh) * 2003-10-28 2007-12-26 华为技术有限公司 一种实现异步转移模式下虚通道流量控制的方法及装置
US7477636B2 (en) * 2003-11-26 2009-01-13 Agere Systems Inc. Processor with scheduler architecture supporting multiple distinct scheduling algorithms
US7512148B2 (en) * 2003-12-09 2009-03-31 Texas Instruments Incorporated Weighted round-robin arbitrator
US7876763B2 (en) * 2004-08-05 2011-01-25 Cisco Technology, Inc. Pipeline scheduler including a hierarchy of schedulers and multiple scheduling lanes
US7680124B2 (en) * 2004-07-30 2010-03-16 Agere Systems Inc. Frame mapping scheduler for scheduling data blocks using a mapping table and a weight table
US9002258B2 (en) 2006-01-18 2015-04-07 Dongju Chung Adaptable audio instruction system and method
US20070237074A1 (en) * 2006-04-06 2007-10-11 Curry David S Configuration of congestion thresholds for a network traffic management system
GB0706424D0 (en) * 2007-04-02 2007-05-09 British Telecomm Video streaming
GB2464310B (en) 2008-10-10 2012-10-17 Micron Technology Inc Switching device
US20110282980A1 (en) * 2010-05-11 2011-11-17 Udaya Kumar Dynamic protection of a resource during sudden surges in traffic
US9729120B1 (en) 2011-07-13 2017-08-08 The Directv Group, Inc. System and method to monitor audio loudness and provide audio automatic gain control
US9258245B2 (en) * 2012-09-12 2016-02-09 Broadcom Corporation Multiple cell dequeue for high speed queueing
US9189433B2 (en) 2012-12-18 2015-11-17 International Business Machines Corporation Tracking a relative arrival order of events being stored in multiple queues using a counter
US9575822B2 (en) 2014-08-01 2017-02-21 Globalfoundries Inc. Tracking a relative arrival order of events being stored in multiple queues using a counter using most significant bit values
JP2017017538A (ja) * 2015-07-01 2017-01-19 富士通株式会社 メーター処理方法、メーター処理プログラム及びネットワーク装置
CN105824304B (zh) * 2016-05-18 2018-04-17 重庆大学 一种考虑机加工设备可用性的柔性作业车间动态调度方法
US10420006B2 (en) * 2016-08-18 2019-09-17 Bridgefy, Inc. Mesh connection systems and algorithms for connecting devices through intermediate nodes
US20220277115A1 (en) * 2019-08-26 2022-09-01 Global Security Inc. Simulation system, simulation program, and simulation method
CN114741178B (zh) * 2022-05-20 2022-08-23 北京宇信科技集团股份有限公司 一种授信申请处理方法、装置、电子设备和存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2639335B2 (ja) * 1993-12-22 1997-08-13 日本電気株式会社 Atm網における輻輳制御方式
GR940100383A (en) * 1994-08-02 1996-04-30 Idryma Technologias & Erevnas A high-throughput data buffer.
JPH08288965A (ja) * 1995-04-18 1996-11-01 Hitachi Ltd スイッチングシステム
US5638371A (en) * 1995-06-27 1997-06-10 Nec Usa, Inc. Multiservices medium access control protocol for wireless ATM system
JPH0936912A (ja) 1995-07-14 1997-02-07 Fujitsu Ltd バッファ制御方式
US6115748A (en) * 1995-07-19 2000-09-05 Fujitsu Network Communications, Inc. Prioritized access to shared buffers
US6226265B1 (en) * 1995-07-25 2001-05-01 Fujitsu Limited Packet flow monitor and control system
GB9520807D0 (en) 1995-10-11 1995-12-13 Newbridge Networks Corp Fair queue servicing using dynamic weights
US5751709A (en) 1995-12-28 1998-05-12 Lucent Technologies Inc. Adaptive time slot scheduling apparatus and method for end-points in an ATM network
JP3643637B2 (ja) * 1996-03-08 2005-04-27 株式会社日立コミュニケーションテクノロジー セル出力制御回路および制御方法
US5706288A (en) * 1996-03-27 1998-01-06 Pmc-Sierra, Inc. Available bit rate scheduler
DE69733103T2 (de) * 1996-06-27 2005-09-29 Xerox Corp. Paketvermitteltes Kommunikationssystem
EP0817435B1 (de) * 1996-06-27 2005-04-27 Xerox Corporation Vermittlungseinrichtung für ein Paket-Kommunikationssystem
US5889779A (en) * 1996-12-02 1999-03-30 Rockwell Science Center Scheduler utilizing dynamic schedule table
US5909443A (en) * 1997-01-03 1999-06-01 International Business Machines Corporation ATM network congestion control system using explicit rate cell marking
US6028843A (en) * 1997-03-25 2000-02-22 International Business Machines Corporation Earliest deadline first communications cell scheduler and scheduling method for transmitting earliest deadline cells first
US5864540A (en) * 1997-04-04 1999-01-26 At&T Corp/Csi Zeinet(A Cabletron Co.) Method for integrated traffic shaping in a packet-switched network

Also Published As

Publication number Publication date
EP1489791A2 (de) 2004-12-22
EP1562335A3 (de) 2008-12-17
JP3252823B2 (ja) 2002-02-04
EP1489791A3 (de) 2005-02-09
US6389019B1 (en) 2002-05-14
EP1562335A2 (de) 2005-08-10
DE69931302D1 (de) 2006-06-22
EP0944208A2 (de) 1999-09-22
EP0944208A3 (de) 2000-11-29
EP0944208B1 (de) 2006-05-17
JPH11317743A (ja) 1999-11-16

Similar Documents

Publication Publication Date Title
DE69931302T2 (de) Zeitbasierte Ablaufsteuerungsarchitektur und Verfahren für ATM Netzwerke
DE69130286T2 (de) Verfahren zur priorisierung, selektiven ablösung und multiplexierung von schnellen paketen verschiedener verkehrsarten
DE69811619T2 (de) ATM-Zellenübertragung
DE69717455T2 (de) Verfahren und anlage zur steuerung von quellengeschwindigkeit in einem atm netzwerk
DE69937862T2 (de) Bandbreitensteuerung mit zwei Komponenten, zur Anwendung in digitalen Kommunikationssystemen mit mehreren Klassen
DE10350504B4 (de) Verfahren und Vorrichtung zum Festlegen bzw. Zuteilen einer verfügbaren Verknüpfungsbandbreite zwischen paketvermittelten Datenflüssen
DE60110760T2 (de) Auslese-ablaufsteuerung für nicht aufeinander-folgende daten
DE69636825T2 (de) Verzögerungsminimalisierungssystem mit garantierter Bandbreite für Echtzeitverkehr
DE69817756T2 (de) ATM Zellenübertragungsplanung
DE69833588T2 (de) Dynamische, geschwindigkeitsbasierte Ablauffolgesteuerung für ATM-Netzwerke
DE69635470T2 (de) System zum Steuern der Dienstqualität einer Kommunikation
DE69924057T2 (de) Verfahren, Ablauffolgesteuerung, intelligenter Pufferspeicher, Prozessor und Telekommunikationssystem zum Verteilen verfügbahrer Bandbreite
DE69835781T2 (de) Vorrichtung mit einem gewichteten gerechten Warteschlangenverfahren und mit adaptiver Umverteilung der Bandbreite
DE69124645T2 (de) Verfahren und Schaltung zur Verkehrsformung
DE69634857T2 (de) Ablaufsteuerung für eine informationspaketvermittlung
DE60112178T2 (de) Verfahren und Gerät zur Ablaufsteuerung in Echtzeit in Satelliten Kommunikationsnetzen
DE69533695T2 (de) Busarbitrierungsverfahren für fernmeldevermittlung
DE69331454T2 (de) Anordnung für Begrenzung des Zitterns in einem auf Priorität basierenden Schaltsystem
DE69428186T2 (de) Mehrfachsendeeinrichtung
DE69731606T2 (de) Anlage und verfahren zur änderung von schwellen für überlastkontrolle in atm-vermittlungsstellen
DE69330395T2 (de) Verbesserte Steuereinrichtung für eine Paketvermittlungsstelle mit gepufferten Eingängen
DE69221411T2 (de) Atm-zellenverteiler mit geringer verzögerung oder geringer verlustrate
DE29825153U1 (de) Schalteraufbau eines ATM-Schalters mit großer Kapazität und Mehrklassenkern
DE69626946T2 (de) Verfahren und Vorrichtung für eine auf Übertragungsgeschwindigkeit basierender Ablaufplanung unter Verwendung eines relativen Fehler-Ansatzes
DE19531749A1 (de) Verkehrsgestaltungseinrichtung und Paket-Kommunikationsgerät

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: KUDLEK & GRUNERT PATENTANWAELTE PARTNERSCHAFT, 803

8339 Ceased/non-payment of the annual fee