DE60303444T2 - Ablaufsteuerung unter verwendung von quantumwerten und defizitwerten - Google Patents

Ablaufsteuerung unter verwendung von quantumwerten und defizitwerten Download PDF

Info

Publication number
DE60303444T2
DE60303444T2 DE60303444T DE60303444T DE60303444T2 DE 60303444 T2 DE60303444 T2 DE 60303444T2 DE 60303444 T DE60303444 T DE 60303444T DE 60303444 T DE60303444 T DE 60303444T DE 60303444 T2 DE60303444 T2 DE 60303444T2
Authority
DE
Germany
Prior art keywords
deficit
processing
particular element
elements
value
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 - Lifetime
Application number
DE60303444T
Other languages
English (en)
Other versions
DE60303444D1 (de
Inventor
Doron Shoham
Amir Michaeli
David Menlo Park TSIANG
Chandrashekhar Cupertino APPANNA
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.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
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
Application filed by Cisco Technology Inc filed Critical Cisco Technology Inc
Application granted granted Critical
Publication of DE60303444D1 publication Critical patent/DE60303444D1/de
Publication of DE60303444T2 publication Critical patent/DE60303444T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • H04L47/6225Fixed service order, e.g. Round Robin
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/527Quantum based scheduling, e.g. credit or deficit based scheduling or token bank

Description

  • GEBIET DER ERFINDUNG
  • Diese Erfindung betrifft insbesondere die Zeitablaufsteuerung von Informationen und/oder Prozessen, wie z.B. jenen, die in Kommunikations- und Computersystemen verwendet werden; und insbesondere betrifft die Erfindung die Zeitablaufsteuerung von Entitäten und Elementen unter Verwendung von Größenangaben- und Defizitwerten, einschließlich, jedoch nicht begrenzt auf die Zeitablaufsteuerung des Sendens von Paketen in einem Paketvermittlungssystem.
  • HINTERGRUND DER ERFINDUNG
  • Die Kommunikationsindustrie ändert sich schnell, um sich auf aufkommende Technologien und die ständig zunehmende Kundenanforderung einzustellen. Diese Kundenanforderung für neue Anwendungen und erhöhte Leistung von existierenden Anwendungen treibt die Kommunikationsnetz- und Systemanbieter dazu, Netze und Systeme mit größerer Geschwindigkeit und Kapazität (z.B. größerer Bandbreite) zu verwenden. Beim Versuch, diese Ziele zu erreichen, besteht eine übliche Vorgehensweise, die von vielen Kommunikationsanbietern aufgegriffen wird, darin, die Paketvermittlungstechnologie zu verwenden. Öffentliche und private Kommunikationsnetze werden zunehmend unter Verwendung von verschiedenen Pakettechnologien wie z.B. dem Internetprotokoll (IP) aufgebaut und erweitert.
  • Eine Netzvorrichtung wie z.B. ein Vermittler oder ein Router empfängt, verarbeitet und leitet ein Paket typischerweise weiter oder verwirft es. Eine Warteschlangeneintragungskomponente einer solchen Vorrichtung empfängt beispielsweise einen Strom von Paketen mit verschiedener Größe, die in einem Eingangspuffer gesammelt werden. Jedes Paket wird analysiert und eine geeignete Menge an Speicherplatz wird zugewiesen, um das Paket zu speichern. Das Paket wird im Speicher gespeichert, während bestimmte Attribute (z.B. Zielinformationen und andere Informationen, die typischerweise von einem Paketkopf oder einer anderen Quelle abgeleitet werden) in einem separaten Speicher gehalten werden. Sobald das ganze Paket in den Speicher geschrieben ist, wird das Paket für die Verarbeitung berechtigt und ein Indikator des Pakets wird typischerweise in eine geeignete Zielwarteschlange gesetzt, damit es gemäß einer gewissen Zeitablaufsteuermethodologie abgearbeitet wird.
  • Wenn ein Streit um Betriebsmittel besteht, wie z.B. Ausgangsverbindungsleitungen eines Paketvermittlungssystems oder eine Schnittstelle oder sogar für Rechenzyklen in einer Rechenvorrichtung, ist es wichtig, dass Betriebsmittel gemäß einem gewissen Gerechtigkeitsgrundsatz zugewiesen werden oder deren Zeitablauf geplant wird. Überdies ist die Menge an Arbeit, die erforderlich ist, um den Zeitablauf eines Pakets oder eines anderen geplanten Elements zu planen und dieses in eine Warteschlange einzutragen und aus einer Warteschlange zu entfernen, wichtig, insbesondere wenn die Betriebsgeschwindigkeit von Systemen zunimmt.
  • Das gewöhnliche Round-Robin (RR) ist ein Algorithmus, der üblicherweise zur gemeinsamen Nutzung eines gemeinsamen Betriebsmittels zwischen mehreren Clients verwendet wird. Alle Clients werden in einer zyklischen Reihenfolge abgearbeitet. In jeder Runde wird jeder Client abgearbeitet, wenn er berechtigt ist. Wenn er abgearbeitet wird, wird jedem Client ermöglicht, ein Paket zu senden. Das Abarbeiten von Warteschlangen ist einfach zu implementieren und kann in konstanter Zeit durchgeführt werden, weist jedoch aufgrund der veränderlichen Größe von Paketen die Bandbreite nicht gerecht zu.
  • In einigen Szenarios konkurrieren hohe Priorität (z.B. geringe Wartezeit), garantierte Bandbreite, Verkehr mit bester Leistung (z.B. übrige Bandbreite) und andere Klassifizierungen des Verkehrs um ein gemeinsames Betriebsmittel. Verschiedene bekannte Zeitablaufsteueralgorithmen sind dazu ausgelegt, eine Isolation, Prioritätszuweisung und gerechte Bandbreitenzuweisung für den Verkehr zu schaffen, der um ein gemeinsames Betriebsmittel konkurriert. Diese sind als gerechte Warteschlangenalgorithmen bekannt. Einige Beispiele sind Weighted Fair Queuing (WFQ, gewichtete gerechte Warteschlangeneintragung), Self-Clocked Fair Queuing (SCFQ, selbstgetaktete Warteschlangeneintragung) und Deficit Round Robin/Surplus Round Robin (als DRR bezeichnet, Defizit-Round-Robin/Überschuss-Round-Robin).
  • WFQ und SCFQ hängen von den Ankunftszeiten sowie von der vorherigen Verbindungsleitungsnutzung ab, um das nächste beste zu sendende Paket zu berechnen. Das akzeptierte "ideale" Verhalten ist bitweises Round-Robin, das angibt, dass das nächste zu sendende Paket das Paket sein sollte, das geendet hätte, wenn alle momentan im System befindlichen Pakete ein Bit in jedem Round-Robin senden (was typischerweise in einem System auf Paketbasis nicht praktisch ist). Der Einschluss von Ankunftszeiten im Zeitablaufsteuermechanismus, um theoretische ideale Absendezeiten zu berechnen, erfordert typischerweise das Einfügen in eine sortiere Liste, was als schlimmster Fall des O(log N) Problems bekannt ist, wobei N die Anzahl von bereits in die Warteschlange eingetragenen Paketen ist.
  • DRR ist ein Algorithmus, der zur gemeinsamen Nutzung eines gemeinsamen Betriebsmittels zwischen mehreren Clients mit verschiedenen Verhältnissen zwischen Clients verwendet wird (d.h. einigen Clients wird ermöglicht, mehr der Betriebsmittel zu verbrauchen als andere). Das Verhältnis zwischen den Clients wird typischerweise durch einen Parameter definiert, der Größenangabe genannt wird.
  • Das DRR arbeitet Warteschlagen unter Verwendung von Round-Robin-Abarbeitung ab, wobei eine Größenangabe jeder Warteschlange zugewiesen wird. Im Gegensatz zu herkömmlichem Round-Robin können mehrere Pakete bis zur festgelegten Größenangabe gesandt werden, was dazu führt, dass jede Warteschlange zumindest Bytes mit dem Wert einer Größenangabe sendet. Wenn die Größenangabe für jede Warteschlange gleich ist, dann sendet jede Warteschlange einen gleichen Betrag an Bandbreite.
  • Diese DRR-Methode arbeitet in Runden, wobei eine Runde die Iteration eines Round-Robin über die Warteschlangen ist, die zu sendende Elemente besitzen. Wenn der Zeitablauf der Warteschlange geplant wird, wird ihr typischerweise ermöglicht zu senden, bis ihr Defizit negativ wird, und dann wird die nächste Warteschlange abgearbeitet. Pakete, die in verschiedenen Strömen eingehen, werden in verschiedenen Warteschlangen gespeichert. In jeder Runde werden jeder Warteschlange Bits im Wert einer Größenangabe zugewiesen, die zum Defizit jeder Warteschlange hinzugefügt wird. Jeder Warteschlange wird ermöglicht, ein oder mehrere Pakete in einer DRR-Runde auszusenden, wobei dies der Einschränkung unterliegt, dass sie nicht mehr Bits senden kann als durch das der Warteschlange entsprechende Defizit angegeben. Wenn keine weiteren Pakete in einer Warteschlange vorliegen, nachdem die Warteschlange abgearbeitet wurde, wird das der Warteschlange entsprechende Defizit auf Null gesetzt. Ansonsten wird der restliche Betrag (d.h. das Defizit minus die Anzahl von gesandten Bits) für die nächste Runde gehalten.
  • Das DRR ist ein Algorithmus, der nicht von den tatsächlichen Ankunftszeiten abhängt, und besitzt eine Komplexität von O(1) – d.h., die Menge an erforderlicher Arbeit ist eine Konstante und von der Anzahl von in die Warteschlange gestellten Paketen unabhängig. Um Arbeit zu sparen, sollte ein Paket jedes Mal gesandt werden, wenn der Zeitablauf einer Warteschlange geplant wird. Folglich sollte die im DRR verwendete Größenangabe mindestens eine maximale Paketgröße (MTU) sein, um zu garantieren, dass, wenn die Größenangabe zu irgendeinem Defizit hinzugefügt wird, der resultierende Wert mindestens Null ist. Das DRR schafft eine gerechte Bandbreitenzuweisung und ist leicht zu implementieren. Es ist arbeitssparend und es skaliert aufgrund seiner O(1)-Eigenschaften gut mit höheren Verbindungsleitungsgeschwindigkeiten und einer größeren Anzahl von Warteschlangen. Sein Zeitablaufsteuerverhalten weicht jedoch erheblich vom bitweisen Round-Robin"Ideal" ab. Insbesondere ist die Wartezeit für ein System mit N Warteschlangen Q*N, wobei Q die mittlere Größenangabe ist, die mindestens eine maximale Transporteinheit (MTU) sein muss.
  • In einer Implementierung, die modifiziertes Defizit-Round-Robin (MDRR) genannt wird, wird wahlweise ein Client mit hoher Priorität (HP) auf jedes Betriebsmittel abgebildet, zusätzlich dazu, dass die anderen Clients mit nicht-hoher Priorität (NHP) auf das Betriebsmittel abgebildet werden. In dieser Implementierung gibt es zwei mögliche Betriebsarten: Betriebsart mit niedriger Wartezeit und gerechte Betriebsart. In der Betriebsart mit niedriger Wartezeit wird der HP-Client konstant abgearbeitet, bis er nicht berechtigt ist (d.h. entweder eine leere Warteschlange besitzt oder er seine zugewiesene Bandbreite überschritten hat). Die NHP-Clients werden nur abgearbeitet, sobald der HP-Client nicht abgearbeitet werden kann. Die Betriebsart mit niedriger Wartezeit verringert die Wartezeit des HP-Clients (gut für Sprach/Video-Anwendungen), kann jedoch eine Verarmung der NHP-Clients verursachen. In der gerechten Betriebsart wird ein Paket vom HP-Client und eines von anderen NHP-Clients in abwechselnder Reihenfolge gesandt, solange der HP-Client seine maximale zugewiesene Bandbreite nicht erreicht hat. Die gerechte Betriebsart ist ein Kompromisspunkt zwischen der Anforderung, die NHP-Clients nicht zu verarmen, und der Anforderung von HP-Clients für eine niedrige Wartezeit.
  • Neue Verfahren und Vorrichtungen zur Zeitablaufsteuerung von Paketen in einem Paketvermittlungssystem, insbesondere jenen, die eine gute Wartezeitleistung schaffen können, während O(1)-Arbeitseigenschaften aufrechterhalten werden, und/oder andere gewünschte Eigenschaften besitzen, sind erforderlich.
  • Shreedhar M et al., "Efficient Fair Queuing Using Deficit Round-Robin", IEEE/ACM transactions on Networking, IEEE Inc., Band 4, Nr.3, 1. Juni 1996, Seiten 375-385, offenbart ein Round-Robin-Warteschlangensystem, das ein Defizit verwendet, um den Zeitablauf der Verarbeitung von Warteschlangen in einer aktiven Liste von Warteschlangen, die zu verarbeitende Entitäten enthalten, zu planen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß der Erfindung werden ein Verfahren und eine Vorrichtung geschaffen, wie in den begleitenden Ansprüchen dargelegt.
  • Verfahren und Vorrichtungen zur Zeitablaufsteuerung von Elementen in einem System wie z.B., jedoch nicht begrenzt auf ein Computer- oder Kommunikationssystem, werden offenbart. In einer Ausführungsform werden mehrere Mengen von Elementen, die erfordern, dass eine Verarbeitung durchgeführt wird, gehalten. Eine momentane Menge der mehreren Mengen von Elementen wird identifiziert. Jedes der Elemente in der momentanen Menge wird verarbeitet. In einer Ausführungsform umfasst diese Verarbeitung das Identifizieren eines speziellen Elements im momentanen Satz, das Hinzufügen einer Größenangabe zu einem Defizit des speziellen Elements, das Verarbeiten einer dem speziellen Element entsprechenden Entität, das Senken des Defizits des speziellen Elements um einen Wert, das Feststellen, ob das Defizit ermöglicht, dass das spezielle Element weiterverarbeitet wird, und als Reaktion auf die Feststellung, dass das Defizit nicht ermöglicht, dass das spezielle Element weiterverarbeitet wird, das Bewegen des speziellen Elements aus der momentanen Menge in eine andere der mehreren Mengen von Elementen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die beigefügten Ansprüche legen die Merkmale der Erfindung mit Besonderheit dar. Die Erfindung kann zusammen mit ihren Vorteilen am besten aus der folgenden ausführlichen Beschreibung in Verbindung mit den begleitenden Zeichnungen verstanden werden, in denen:
  • 1 ein Blockdiagramm einer Ausführungsform zur Zeitablaufsteuerung von Entitäten und Elementen unter Verwendung von Größenangaben- und Defizitwerten ist;
  • 2 ein Blockdiagramm einer Ausführungsform zur Zeitablaufsteuerung von Entitäten und Elementen unter Verwendung von Größenangaben- und Defizitwerten ist;
  • 3A-D Blockdiagramme von Datenstrukturen sind, die in einer Ausführungsform verwendet werden;
  • 4 ein Blockdiagramm eines Warteschlangeneintragungsprozesses ist, der in einer Ausführungsform verwendet wird, um sicherzustellen, dass eine Zeitablaufsteuereinrichtung ein Element mit einer Entität kennt, deren Zeitablauf zu planen ist;
  • 5 ein Ablaufdiagramm eines Prozesses ist, der in einer Ausführungsform zur Zeitablaufsteuerung der Verarbeitung von Entitäten und Elementen innerhalb einer oder mehreren Mengen von Elementen verwendet wird;
  • 6 ein Ablaufdiagramm eines Prozesses ist, der in einer Ausführungsform zur Zeitablaufsteuerung der Verarbeitung von Entitäten und Elementen innerhalb einer oder mehrerer Mengen von Elementen verwendet wird; und
  • 7 ein Ablaufdiagramm eines Prozesses ist, der in einer Ausführungsform zur Zeitablaufsteuerung der Verarbeitung von Entitäten und Elementen innerhalb einer oder mehrerer Mengen von Elementen verwendet wird.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Verfahren und Vorrichtungen zur Zeitablaufsteuerung von Entitäten und Elementen unter Verwendung von Größenangaben- und Defizitwerten, insbesondere in Kommunikations- und Computersystemen, werden offenbart. Die hierin beschriebenen Ausführungsformen umfassen verschiedene Elemente und Begrenzungen, wobei kein Element oder keine Begrenzung als kritisches Element oder kritische Begrenzung betrachtet wird. Jeder der Ansprüche führt individuell einen Aspekt der Erfindung in ihrer Gesamtheit an. Überdies können einige beschriebenen Aus führungsformen unter anderem Systeme, Netze, integrierte Schaltungschips, eingebettete Prozessoren, ASICs, Verfahren und ein maschinenlesbares Medium, das Befehle enthält, umfassen, sind jedoch nicht darauf begrenzt. Die nachstehend beschriebenen Ausführungsformen verkörpern verschiedene Aspekte und Konfigurationen innerhalb des Schutzbereichs und Gedankens der Erfindung, wobei die Fig. beispielhafte und nicht-begrenzende Konfigurationen darstellen.
  • Wie hierin verwendet, bezieht sich der Begriff "Paket" auf Pakete aller Arten oder irgendwelche anderen Einheiten von Informationen oder Daten, einschließlich, jedoch nicht begrenzt auf Zellen mit fester Länge und Pakete mit variabler Länge, von denen jedes) in kleinere Pakete oder Zellen unterteilbar sein kann oder nicht. Der Begriff "Paket", wie hierin verwendet, bezieht sich auch sowohl auf das Paket selbst als auch eine Paketangabe, wie z.B., jedoch nicht begrenzt auf alles oder einen Teil eines Pakets oder Paketkopfs, einen Datenstrukturwert, einen Zeiger oder Index oder irgendeinen anderen Teil oder eine Identifikation eines Pakets. Überdies können diese Pakete eine oder mehrere Arten von Informationen enthalten, einschließlich, jedoch nicht begrenzt auf Sprache, Daten, Video- und Audioinformationen. Der Begriff "Element" wird hierin verwendet, um auf ein Paket oder irgendeine andere Einheit oder ein Stück von Informationen oder Daten Bezug zu nehmen.
  • Der Begriff "System" wird hierin allgemein verwendet, um eine beliebige Anzahl von Komponenten, Elementen, Untersystemen, Vorrichtungen, Paketvermittlungselementen, Paketverteilern, Routern, Netzen, Computer- und/oder Kommunikationsvorrichtungen oder -mechanismen oder Kombinationen von Komponenten davon zu beschreiben. Der Begriff "Computer" wird hierin allgemein verwendet, um eine beliebige Anzahl von Computern zu beschreiben, einschließlich, jedoch nicht begrenzt auf Personalcomputer, eingebettete Prozessoren und Systeme, eine Steuerlogik, ASICs, Chips, Arbeitsplatzrechner, Großrechner usw. Der Begriff "Vorrichtung" wird hierin allgemein verwendet, um eine beliebige Art von Mechanismus zu beschreiben, einschließlich eines Computers oder Systems oder einer Komponente davon. Die Begriffe "Aufgabe" und "Prozess" werden hierin allgemein verwendet, um eine beliebige Art von laufendem Programm zu beschreiben, einschließlich, jedoch nicht begrenzt auf einen Computerprozess, eine Computer- aufgabe, einen Computer-Thread, die Ausführung einer Anwendung, eines Betriebssystems, eines Benutzerprozesses, eines Vorrichtungstreibers, eines nativen Codes, einer Maschinen- oder anderen Sprache usw., und kann interaktiv und/oder nicht-interaktiv sein, lokal und/oder entfernt ausgeführt werden, im Vordergrund und/oder im Hintergrund ausgeführt werden, in den Benutzer- und/oder Betriebssystem-Adressenräumen ausgeführt werden, eine Routine einer Bibliothek und/oder einer eigenständigen Anwendung, und ist nicht auf irgendein spezielles Speicherpartitionierungsverfahren begrenzt. Die Schritte, Verbindungen und Verarbeitung von Signalen und Informationen, die in den Fig. dargestellt sind, einschließlich, jedoch nicht begrenzt auf die Block- und Ablaufdiagramme, werden typischerweise in einer unterschiedlichen seriellen oder parallelen Reihenfolge und/oder durch verschiedene Komponenten und/oder über verschiedene Verbindungen in verschiedenen Ausführungsformen unter Festhalten am Schutzbereich und Gedanken der Erfindung durchgeführt.
  • Überdies werden die Begriffe "Netz" und "Kommunikationsmechanismus" hierin allgemein verwendet, um ein oder mehrere Netze, Kommunikationsmedien oder Kommunikationssysteme zu beschreiben, einschließlich, jedoch nicht begrenzt auf das Internet, private oder öffentliche Telephonnetze, Zellennetze, drahtlose Netze, Satellitennetze, Kabelnetze, lokale Netze, Metropolennetze und/oder weiträumige Netze, ein Kabel, eine elektrische Verbindung, einen Bus usw., und interne Kommunikationsmechanismen wie z.B. Nachrichtenweiterleitung, Kommunikationen zwischen Prozessen, gemeinsam genutzter Speicher usw.
  • Der Begriff "Speichermechanismus" umfasst eine beliebige Art von Speicher, Speichervorrichtung oder eines anderen Mechanismus zum Halten von Befehlen oder Daten in einem beliebigen Format. Ein "maschinenlesbares Medium" ist ein erweiterbarer Begriff, einschließlich eines beliebigen Speichers, einer beliebigen Speichervorrichtung, eines beliebigen Speichermechanismus und anderer Speicher- und Signalisierungsmechanismen, einschließlich Schnittstellen und Vorrichtungen wie z.B. Netzschnittstellenkarten und Puffer darin, sowie beliebiger Kommunikationsvorrichtungen und Signale, die empfangen und gesendet werden, und anderer aktueller und aufkommender Technologien, die ein computerisiertes System interpretieren, empfangen und/oder senden kann. Der Begriff "Speicher" umfasst einen beliebigen Direktzugriffsspeicher (RAM), Festwertspeicher (ROM), Flash-Speicher, integrierte Schaltungen und/oder andere Speicherkomponenten oder -elemente. Der Begriff "Speichervorrichtung" umfasst beliebige Festkörper-Speichermedien, Plattenlaufwerke, Disketten, vernetzte Dienste, Bandlaufwerke und andere Speichervorrichtungen. Speicher und Speichervorrichtungen können vom Computer ausführbare Befehle speichern, die von einem Prozessor und/oder einer Steuerlogik ausgeführt werden sollen, und Daten, die von einem Prozessor und/oder einer Steuerlogik verarbeitet werden. Der Begriff "Datenstruktur" ist ein erweiterbarer Begriff, der sich auf ein beliebiges Datenelement, eine Variable, Datenstruktur, Datenbank und/oder eines oder mehrere von Organisationsschemen bezieht, die auf Daten angewendet werden können, um die Interpretation der Daten oder das Durchführen von Operationen an diesen zu erleichtern, wie z.B., jedoch nicht begrenzt auf Speicherstellen oder -vorrichtungen, Mengen, Warteschlangen, Bäume, Halden, Listen, verkettete Listen, Matrizes, Tabellen, Zeiger usw. Eine Datenstruktur wird typischerweise in einem Speichermechanismus gehalten.
  • Die Begriffe "erstes", "zweites" usw. werden hierin typischerweise verwendet, um verschiedene Einheiten zu bezeichnen (z.B. ein erstes Element, ein zweites Element). Die Verwendung dieser Begriffe hierin suggeriert nicht notwendigerweise eine Reihenfolge, wie z.B. eine Einheit oder ein Ereignis, die/das vor dem anderen vorkommt, sondern sieht vielmehr einen Mechanismus vor, um zwischen speziellen Einheiten zu unterscheiden. Überdies wird der Ausdruck "auf der Basis von x" verwendet, um einen minimalen Satz von Elementen x anzugeben, aus denen etwas abgeleitet ist, wobei "x" erweiterbar ist und nicht notwendigerweise eine vollständige Liste von Elementen beschreibt, auf denen die Operation basiert. Außerdem wird der Ausdruck "gekoppelt mit" verwendet, um ein gewisses Niveau von direkter oder indirekter Verbindung zwischen zwei Elementen oder Vorrichtungen anzugeben, wobei die koppelnde Vorrichtung oder die koppelnden Vorrichtungen das gekoppelte Signal oder die übertragenen Informationen modifizieren oder nicht modifizieren. Der Begriff "Teilmenge" wird verwendet, um eine Gruppe von allen, weniger als allen oder keinem der Elemente einer Menge anzugeben. Der Begriff "oder" wird überdies hierin verwendet, um eine alternative Auswahl von einem oder mehreren, einschließlich aller, der zusammenhängenden Elemente zu identifizieren.
  • Verfahren und Vorrichtungen werden offenbart, um die Ablaufsteuerung von Elementen (z.B. Paketen, Prozessen usw.) in einem System, wie z.B., jedoch nicht begrenzt auf ein Computer- oder Kommunikationssystem (z.B. Router, Verteiler usw.), zu planen. In einer Implementierung werden mehrere Mengen von Elementen, die erfordern, dass eine Verarbeitung durchgeführt wird, gehalten. Eine momentane Menge der mehreren Mengen von Elementen wird identifiziert. Jedes der Elemente in der momentanen Menge wird verarbeitet. In einer Imple mentierung umfasst diese Verarbeitung das Identifizieren eines speziellen Elements in der momentanen Menge, das Hinzufügen einer Größenangabe zu einem Defizit des speziellen Elements, die Verarbeitung einer Entität entsprechend dem speziellen Element, das Senken des Defizits des speziellen Elements um einen Wert, das Feststellen, ob das Defizit ermöglicht, dass das spezielle Element weiterverarbeitet wird, und das Bewegen des speziellen Elements aus der momentanen Menge in eine andere der mehreren Mengen von Elementen nach dem Feststellen, ob das Defizit ermöglicht, dass das spezielle Element weiterverarbeitet wird.
  • In einer Ausführungsform werden mehrere Mengen von Elementen, die erfordern, dass eine Verarbeitung durchgeführt wird, gehalten, wobei diese Mengen von Elementen in einer gewissen deterministischen Folge verarbeitet werden. Eine momentane Menge wird ausgewählt und verarbeitet, bis sie leer ist. Ein Element wird aus der momentanen Menge ausgewählt und eine Größenangabe wird zum Defizit des speziellen Elements hinzugefügt. Während das Defizit des Elements nicht negativ (oder nicht positiv) ist, werden die Entitäten vom Element verarbeitet (z.B. irgendeine entsprechende Handlung durchgeführt, ein Paket wird von einer Warteschlange gesandt, es wird ermöglicht, dass ein Prozess durch eine gewisse Anzahl von CPU-Zyklen verarbeitet wird, usw.) und das Defizit des Elements wird um einen gewissen entsprechenden Wert gesenkt. Nachdem das Defizit des Elements negativ wird, wird das Element aus der momentanen Liste zu einer anderen der mehreren Listen bewegt, typischerweise auf der Basis des momentanen Defizits des Elements, der Größenangabe, der momentanen Menge und der deterministischen Folge, so dass, wenn auf das Element das nächste Mal Bezug genommen wird, seine Größenangabe groß genug ist, um mindestens eine Handlung (z.B. Senden eines Pakets) durchzuführen. In einer Ausführungsform ist die Größe der Größenangabe ungefähr die maximale Paketgröße, dividiert durch die Anzahl von Mengen von Elementen. Wenn ein Element leer wird, wird es nicht weiter verarbeitet und auch nicht in eine andere aktive Menge gegeben, bis es Entitäten besitzt, die eine Verarbeitung erfordern, und dann wird es in die geeignete Menge gegeben.
  • In einer Ausführungsform werden mehrere Mengen von Elementen, die erfordern, dass eine Verarbeitung durchgeführt wird, gehalten, wobei diese Mengen von Elementen in einer gewissen deterministischen Folge verarbeitet werden. Eine momentane Menge wird ausgewählt und verarbeitet, bis sie leer ist. Die momen tane Menge wird durchlaufen und während des ersten solchen Durchlaufs wird die Größenangabe zum Defizit jedes Elements hinzugefügt. Während dieses Durchlaufs wird ermöglicht, dass eine Entität eines Elements verarbeitet wird (z.B. eine gewisse entsprechende Handlung durchgeführt wird, ein Paket von einer Warteschlange gesandt wird, ermöglicht wird, dass ein Prozess durch eine gewisse Anzahl von CPU-Zyklen durchgeführt wird, usw.). In einer Ausführungsform entspricht diese Verarbeitung einer Entität (z.B. einem Paket, einer Anzahl von CPU-Zyklen usw.) In einer Ausführungsform wird eine Verarbeitung mit dem Wert einer Kleinstgrößenangabe am Element durchgeführt, was ermöglichen kann, dass mehrere Entitäten verarbeitet werden. Das Defizit des Elements wird um einen gewissen entsprechenden Wert gesenkt und ein nächstes Element wird verarbeitet. Wenn jedoch das Element leer wird, wird es aus der Menge entfernt, oder wenn das Defizit des Elements negativ (oder nicht positiv) wird, wird das Element in einer anderen Menge angeordnet. In einer Ausführungsform werden zwei Mengen verwendet: eine momentan aktive Menge und eine momentan inaktive Menge und folglich würde das Element in der momentan inaktiven Menge angeordnet werden. Wenn die momentan aktive Menge leer wird, wird sie zur momentan inaktiven Menge und die andere Menge wird zur momentan aktiven Menge und die Verarbeitung wiederholt sich. In einer Ausführungsform werden mehr als zwei Mengen verwendet und in diesem Fall wird ein Element von der momentanen Liste zu einer anderen der mehreren Listen typischerweise auf der Basis des momentanen Defizits des Elements, der Größenangabe, der momentanen Menge und der deterministischen Folge bewegt, so dass, wenn das nächste Mal auf das Element Bezug genommen wird, seine Größenangabe groß genug ist, um mindestens eine Handlung (z.B. Senden eines Pakets) durchzuführen. In einer Ausführungsform erhöht das Ermöglichen einer Verarbeitung einer Einheit auf einmal mit dem Wert einer Kleinstgrößenangabe die Paketverschachtelung und kann das Zittern verringern, insbesondere wenn die für einzelne Entitäten erforderliche Verarbeitung variiert, wie z.B. wenn die Längen von Paketen erheblich variieren.
  • In einer Ausführungsform besitzt jedes Element einen Defizitwert. Zu jedem Zeitablaufsteuerzeitpunkt, zu dem ein Paket vom Client gesandt wird, wird die Paketlänge vom Defizit subtrahiert. Dem Client wird ermöglicht, nur ein einziges Paket in jeder Zeitablaufsteuerrunde zu senden, und dem Client wird ermöglicht, an der nächsten Zeitablaufsteuerrunde teilzunehmen, wenn das Defizit immer noch nicht negativ ist. Sobald das Defizit negativ wird, wird dem Client nicht ermöglicht, an der Zeitablaufsteuerrunde teilzunehmen. In einer Ausführungsform wird dies durchgeführt, indem der Client aus der aktiven Liste (z.B. der momentan abgearbeiteten Liste) herausgenommen wird und in eine inaktive Liste (z.B. eine Liste, die momentan nicht abgearbeitet wird, die jedoch zu planende Clients enthält) gesetzt wird. Sobald alle Clientanforderungen abgearbeitet wurden, wie dadurch identifiziert, dass die aktive Liste leer ist, wird eine nächste Liste zur aktiven Liste und die aktive Liste wird zu einer inaktiven Liste. In einer Ausführungsform werden nur zwei Listen verwendet, während in einer Ausführungsform mehr als zwei Listen verwendet werden. In einer Ausführungsform ist die verwendete Größenangabe mindestens eine MTU, um sicherzustellen, dass ein Paket jedes Mal gesandt wird, wenn ein Client verarbeitet wird.
  • In einer Ausführungsform wird eine Quelle abgearbeitet (z.B. ein Paket wird gesandt), wenn sie an die Reihe kommt und solange ihr Defizit und Kleinstdefizit und Leaky Bucket nicht negativ sind. Eine Quelle erhält eine neue Kleinstgrößenangabe, die ihr in jeder Runde gegeben wird (wenn sie an die Reihe kommt), und eine Größenangabe, wenn sie von der aktiven Liste in die inaktive Liste überführt wird. Eine aktive Liste ist die Liste von Quellen, die ihre Bandbreitenteilung nicht vollendet haben (d.h. ihr Defizit ist nicht negativ). Die inaktive Liste ist die Liste von Quellen, die ihre Bandbreitenteilung beendet haben (d.h. ihr Defizit wurde negativ). Wenn Quellen von der aktiven Liste Pakete senden, wird die aktive Liste immer kürzer, bis sie leer wird. Wenn diese aktive Liste leer wird, werden die aktive Liste und die inaktive Liste vertauscht.
  • In einer Ausführungsform werden zwei verkettete Listen gehalten: eine aktive verkettete Liste, die aus Clients mit einem positiven Defizitwert besteht (d.h. die Clients sind zum Senden von Paketen in dieser DRR-Runde berechtigt); und eine inaktive verkettete Liste, die aus Clients mit einem nicht-positiven Defizitwert besteht (d.h. die Clients sind zum Senden von Paketen in dieser DRR-Runde nicht berechtigt). Ein programmierbarer Kleinstgrößenangaben-Parameter pro Client wird zusammen mit dem Kleinstdefizit verwendet, um die Anzahl von Bytes zu bestimmen, die von jedem Client in jeder Runde gesandt werden. In einer Ausführungsform wird nur eine Kleinstdefizitvariable verwendet, während in einer Ausführungsform eine Kleinstdefizitvariable für jedes Element verwendet wird, was in einer Ausführungsform ermöglicht, den Betrag des negativen Kleinstdefizits für jedes Element in und/oder über Runden zu halten.
  • Die aktive verkettete Liste wird abgetastet und jedem Client wird ermöglicht, Kleinstgrößenangabenbytes zu senden (oder etwas mehr, da ganze Pakete gesandt werden). Wenn das entsprechende Kleinstdefizit nicht-positiv (oder negativ in Abhängigkeit von der Ausführungsform) wird, wird der nächste Client in der aktiven verketteten Liste abgearbeitet. Die geeignete Anzahl von Bytes wird vom Kleinstdefizit nach jedem von einem Client gesandten Paket subtrahiert. Gewöhnlich wird ein Client nicht aus der Warteschlange von der aktiven verketteten Liste entfernt, wenn das Kleinstdefizit nicht-positiv wird. Nur wenn das Defizit nicht-positiv wird, wird ein Client aus der aktiven verketteten Liste aus der Warteschlange entfernt und wird dann entweder in der inaktiven Clientliste oder wieder in der freien verketteten Liste in die Warteschlange gestellt (wenn der Client aufgrund einer maximalen Bandbreitenzuweisung, oder wenn ein Client keine Pakete senden muss, zum Senden von Paketen nicht berechtigt wird). Die aktive verkettete Liste wird immer kürzer, wenn die Clients das Senden ihrer Größenangabe vollenden. Wenn ein Client das Senden seiner Größenangabe vollendet, wobei angenommen wird, dass er Pakete senden muss, und immer noch zum Senden von Paketen berechtigt ist, wird er aus der aktiven verketteten Liste aus der Warteschlange entfernt und in der inaktiven verketteten Liste in die Warteschlange gestellt. In einer Ausführungsform wird ein Zustandsbit, das angibt, dass dieser Client für diese Runde keine Kleinstgrößenangabe erhalten hat, gesetzt. Dieses Zustandsbit kann ein globales Bit für alle Clients in derselben Liste oder für einen Client speziell sein. Wenn die aktive verkettete Liste leer wird, wird sie inaktiv und die vorherige inaktive verkettete Clientliste wird aktiv. In der ersten Runde erhalten alle Clients ihre Kleinstgrößenangabe. In einer Ausführungsform werden zwei verkettete Listen verwendet, da Clients, die ihre Größenangabe beendet haben, von Clients unterschieden werden, die ihre Größenangabe nicht beendet haben, sondern ihre Kleinstgrößenangabe beendet haben.
  • 1 stellt eine Ausführungsform eines Systems, wie z.B., jedoch nicht begrenzt auf ein Computer- oder Kommunikationssystem, dar, das den Zeitablauf von Entitäten und/oder Elementen gemäß der Erfindung plant. Pakete oder andere Entitäten oder Angaben davon 101109, deren Zeitablauf geplant werden soll, werden von einer oder mehreren Schnittstellen, Prozessen, Threads, Informationsströmen oder anderen Quellen 100 empfangen. Diese Pakete oder anderen Entitäten 101109 werden typischerweise in Elementen/Warteschlangen 111119 zur Zeitablaufsteuerung durch die Zeitablaufsteuereinrichtung 120 gespeichert. In einer Ausführungsform wie z.B. dieser Verarbeitung von Paketen oder Kommuni kationsströmen, verarbeitet die Zeitablaufsteuereinrichtung 120 einen oder mehrere Ströme von Paketen oder anderen Entitäten 101109, um einen oder mehrere Ströme von Ausgaben 121129 zu erzeugen. In einer Ausführungsform werden beispielsweise Ströme von Paketen 101109 in Warteschlangen 111119 gespeichert. Die Zeitablaufsteuereinrichtung 120 plant den Zeitablauf von Paketen von den Warteschlangen 111119, um einen oder mehrere Ströme von Paketen 121129 zu erzeugen.
  • 2 stellt eine Ausführungsform eines Systems 200, wie z.B., jedoch nicht begrenzt auf ein Computer- oder Kommunikationssystem, dar, das den Zeitablauf von Entitäten und/oder Elementen gemäß der Erfindung plant. In einer Ausführungsform plant das System 200 den Zeitablauf von intern erzeugten Entitäten, wie z.B., jedoch nicht begrenzt auf Prozesse, Threads, Informationsströme, Pakete oder andere Entitäten. In einer Ausführungsform empfängt das System 200 extern erzeugte Entitäten und/oder erzeugt intern Entitäten und plant den Zeitablauf der Verarbeitung und/oder des Sendens von diesen Entitäten durch das System 200 oder durch ein anderes System. In einer Ausführungsform plant das System 200 beispielsweise den Zeitablauf von internen Prozessen, Threads usw. In einer Ausführungsform empfängt das System 200 Ströme von Paketen (oder anderen Informationseinheiten), plant den Zeitablauf von Paketen, die zu diesen Strömen gehören, und erzeugt einen oder mehrere externe Ströme von Paketen, deren Zeitablauf geplant wird.
  • In einer Ausführungsform umfasst das System 200 einen Prozessor 201, einen Speicher 202, Speichervorrichtungen 203 und wahlweise eine oder mehrere Schnittstellen 204 für eingehende und/oder ausgehende Entitäten, die typischerweise über einen oder mehrere Kommunikationsmechanismen 209 (als Bus für Erläuterungszwecke gezeigt) gekoppelt sind. Verschiedene Ausführungsformen des Systems 200 können mehr oder weniger Elemente umfassen. Die Operation des Systems 200 wird typischerweise durch den Prozessor 201 unter Verwendung des Speichers 202 und der Speichervorrichtungen 203 gesteuert, um eine oder mehrere Zeitablaufsteueraufgaben oder Prozesse durchzuführen. Der Speicher 202 ist eine Art von maschinenlesbarem Medium und umfasst typischerweise einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM), einen Flash-Speicher, integrierte Schaltungen und/oder andere Speicherkomponenten. Der Speicher 202 speichert typischerweise vom Computer ausführbare Befehle, die vom Prozessor 201 ausgeführt werden sollen, und/oder Daten, die vom Prozessor 201 zum Implementieren der Funktionalität gemäß der Erfindung verarbeitet werden. Die Speichervorrichtungen 203 sind eine weitere Art von maschinenlesbarem Medium und umfassen typischerweise Festkörper-Speichermedien, Plattenlaufwerke, Disketten, vernetzte Dienste, Bandlaufwerke und andere Speichervorrichtungen. Die Speichervorrichtungen 203 speichern typischerweise vom Computer ausführbare Befehle, die vom Prozessor 201 ausgeführt werden sollen, und/oder Daten, die vom Prozessor 201 zum Implementieren der Funktionalität gemäß der Erfindung verarbeitet werden.
  • 3A3D stellen beispielhafte Datenstrukturen dar, die in einer oder mehreren einer unbegrenzten Anzahl von Ausführungsformen der Erfindung verwendet werden. 3A stellt eine Datenstruktur dar, die verwendet wird, um ein Element zu identifizieren und um ein Defizit für das Element zu halten. Eine Ausführungsform verwendet alle Felder 301305 der Datenstruktur 300. Eine Ausführungsform verwendet weniger als alle der Felder 301305 der Datenstruktur 300.
  • Wie gezeigt, umfasst die Datenstruktur 300 ein Elementidentifikatorfeld 301, das verwendet wird, um das spezielle Element (z.B. eine Menge von Warteschlangen oder anderen Elementen) anzugeben, ein Elementdefizitfeld 302, das verwendet wird, um einen Defizitwert für das Element zu halten, ein Elementgrößenangabenfeld 303, das verwendet wird, um eine Größenangabe für das Element anzugeben, da die Größenangabenwerte in einer Ausführungsform zwischen den Elementen variieren können, um veränderliche Bandbreitenbeträge, Verarbeitungszeit usw. für die Elemente vorzusehen (und wenn sie gleich sind, dann wird das Elementgrößenangabenfeld 303 typischerweise nicht verwendet oder eingeschlossen), und ein Elementzeigerfeld 304, das in einer verketteten Liste von Elementen verwendet wird, wie z.B. der in 3B dargestellten. In einer Ausführungsform ist ein zusätzliches Feld zum Speichern eines Kleinstgrößenangabenwerts in der Datenstruktur 300 enthalten, das insbesondere nützlich sein kann, wenn Elemente verschiedene Kleinstgrößenangabenwerte verwenden.
  • 3B stellt mehrere Mengen 360, 370 und 380 mit jeweiligen Elementen 362364, 372374 und 382384 dar, die erfordern, dass eine Verarbeitung durchgeführt wird. In einer Ausführungsform entsprechen die Elemente 362364, 372374 und 382384 Warteschlangen, die Pakete oder andere zu verarbeitende Entitäten enthalten. In einer Ausführungsform entsprechen die Elemente 362364, 372374 und 382384 Prozessen oder Threads, die CPU-Zeit erfordern. Wie ge zeigt, liegt jede Menge 360, 370 und 380 in Form einer verketteten Liste vor (und zahlreiche andere Datenstrukturen werden in anderen Ausführungsformen verwendet). Eine verkettete Liste ist zum Halten einer geordneten Menge (z.B. einer Liste) von Elementen zweckmäßig. In der dargestellten Ausführungsform weist jede Liste oder Menge 360, 370 und 380 einen Kopfzeiger 361, 371 und 381 und einen Abschlusszeiger 365, 375 und 385 auf. In einer Ausführungsform wird ein spezieller Elementzeiger 350 verwendet, um eines der Elemente 362364, 372374 und 382384, das momentan verarbeitet wird, anzugeben.
  • 3C stellt ferner eine Kleinstdefizit-Datenstruktur oder einen Zählmechanismus 310 dar, der in einer Ausführungsform verwendet wird, um einen Kleinstdefizitwert für ein Element zu halten, das momentan verarbeitet wird, wie z.B. das im Ablaufdiagramm von 7 beschriebene, der nachstehend weiter beschrieben wird.
  • 3D stellt eine Datenstruktur mit einem Element 390 dar, das in einer Ausführungsform verwendet wird. Wie gezeigt, umfasst das Element 390 mehrere Entitäten 391399. In einer Ausführungsform entspricht das Element 390 einer Warteschlange und die Entitäten 391399 entsprechen Paketen, deren Zeitablauf geplant werden soll und die gesandt werden sollen. In einer Ausführungsform entspricht eine Entität einer Einheit von Arbeit, die an einem Element durchgeführt wird.
  • 4 stellt einen Prozess dar, der in einer Ausführungsform verwendet wird, um sicherzustellen, dass der Zeitablauf eines Elements, das eine Verarbeitung erfordert, geplant wird. Die Verarbeitung beginnt mit dem Prozessblock 400 und geht zum Prozessblock 402 weiter, in dem eine Entität (oder eine Angabe davon), die eine Verarbeitung erfordert, empfangen wird, und die Entität wird im geeigneten Element im Prozessblock 404 angeordnet. Wie im Prozessblock 406 bestimmt, kehrt die Verarbeitung, wenn sich das Element bereits im Zeitablaufsteuersystem befindet, dann als nächstes zum Prozessblock 402 zurück. Ansonsten wird im Prozessblock 408 das Defizit des Elements auf seinen Größenangabenwert gesetzt und im Prozessblock 410 wird eine Angabe des Elements zur Zeitablaufsteuereinrichtung geliefert oder möglicherweise wird das Element zu einer der Zeitablaufsteuermengen in der Zeitablaufsteuer-Datenstruktur hinzugefügt. In einer Ausführungsform ist die Größenangabe für alle Elemente gleich. In einer Ausführungsform ist die Größenangabe für alle Elemente nicht gleich, da beispielsweise einem Element (z.B. Warteschlange) mehr Bandbreite zum Senden von Paketen zugewiesen werden könnte als einem anderen Element. In einer Ausführungsform wird die Initialisierung des Defizits eines Elements in einem anderen Prozess (z.B. dem in 4, 5 oder 6 dargestellten) durchgeführt, aber die Initialisierung im Prozessblock 408 kann einen oder mehr Speicherzugriffe sparen, was in einigen Ausführungsformen wichtig sein kann. Die Verarbeitung kehrt dann zum Prozessblock 402 zurück.
  • 5 stellt einen Zeitablaufsteuerprozess dar, der in einer Ausführungsform verwendet wird. Die Verarbeitung beginnt mit dem Prozessblock 500 und geht zum Prozessblock 502 weiter, in dem eine erste Menge ausgewählt wird. Wie im Prozessblock 504 bestimmt, dann wird, wenn keine Elemente in der ausgewählten Menge sind, im Prozessblock 506 als nächstes eine nächste Menge ausgewählt und die Verarbeitung kehrt zum Prozessblock 504 zurück.
  • Ansonsten wird im Prozessblock 508 ein Element wie z.B. das erste, wenn eine geordnete Menge verwendet wird, oder ein anderes Element aus der Menge ausgewählt. Im Prozessblock 510 werden die dem Element entsprechenden Informationen abgerufen. Im Prozessblock 512 wird als nächstes eine Entität, typischerweise die erste Entität, verarbeitet. In einer Ausführungsform wird ein Paket gesandt. Im Prozessblock 514 wird als nächstes das Defizit des Elements um einen gewissen konstanten oder variablen Wert, wie z.B. die Größe des gesandten Pakets oder einen anderen Wert, der an der durchgeführten Verarbeitung teilnimmt, gesenkt. Es ist zu beachten, dass in einer Ausführungsform die verwendete Größenangabe weniger als eine maximale Transporteinheit (MTU) sein kann. In einer Ausführungsform ist die verwendete Größenangabe mindestens (1 MTU/(S-1)), wobei S die Anzahl von Mengen ist und S>1.
  • Wie im Prozessblock 516 bestimmt, dann wird, wenn keine weiteren Entitäten im Element vorliegen, im Prozessblock 518 als nächstes das Element aus der Menge entfernt, da an diesem keine weitere Verarbeitung durchgeführt werden muss, und die Verarbeitung kehrt zum Prozessblock 504 zurück. Wie im Prozessblock 520 bestimmt, wird dann, wenn das Defizit nicht ermöglicht, dass das Element weiterverarbeitet wird (z.B. das Defizit kleiner als ein vorbestimmter konstanter Wert wie z.B. Null ist, oder über einen anderen Vergleich bestimmt), ansonsten im Prozessblock 522 das Element in eine andere der Mengen von Elementen typischerweise auf der Basis des Werts des Defizits für das Element, seiner Größenangabe und der momentanen Menge gegeben, so dass das Element nicht weiter verar beitet wird, bis es tatsächlich genügend Größenangabe entwickelt hätte, um eine seiner Entitäten zu verarbeiten. Außerdem wird das Defizit für das Element um eine geeignete zusätzliche Größenangabe entsprechend dem nächsten Mal, wenn das Element abgearbeitet oder verarbeitet wird, erhöht. In einer Ausführungsform wird das Defizit eines Elements um eine Größenangabe von n erhöht, wobei n der Position der Menge (in der sich das Element befindet) in der relativen Reihenfolge der Abarbeitung von Mengen entspricht, wobei der Wert von n typischerweise eine ganze Zahl ist, die größer als oder gleich Eins ist. Wenn das Element beispielsweise in der nächsten abzuarbeitenden Menge angeordnet ist, wird sein Defizit um eine Größenangabe erhöht, und wenn das Element in der zweitnächsten abzuarbeitenden Menge angeordnet ist, wird sein Defizit um zwei Größenangaben erhöht, und so weiter. Die Verarbeitung kehrt dann zum Prozessblock 504 zurück. Ansonsten kehrt die Verarbeitung zum Prozessblock 512 zurück, um eine weitere Entität zu verarbeiten.
  • 6 stellt einen Zeitablaufsteuerprozess dar, der in einer Ausführungsform verwendet wird. Die Verarbeitung beginnt mit dem Prozessblock 600 und geht zum Prozessblock 602 weiter, in dem eine erste Menge ausgewählt wird. Wie im Prozessblock 604 bestimmt, wird, wenn keine Elemente in der ausgewählten Menge sind, dann als nächstes im Prozessblock 606 eine nächste Menge ausgewählt und die Verarbeitung kehrt zum Prozessblock 604 zurück. In einer Ausführungsform werden zwei Mengen von Elementen verwendet.
  • Ansonsten wird im Prozessblock 608 ein Element wie z.B. das erste, wenn eine geordnete Menge verwendet wird, oder ein anderes Element aus der Menge ausgewählt. Im Prozessblock 610 werden die dem Element entsprechenden Informationen abgerufen. Im Prozessblock 612 wird eine Entität, typischerweise die erste Entität, verarbeitet. In einer Ausführungsform wird ein Paket gesandt. Im Prozessblock 614 wird als nächstes das Defizit des Elements um einen gewissen konstanten oder variablen Wert wie z.B. die Größe des gesandten Pakets oder einen anderen Wert, der an der durchgeführten Verarbeitung teilnimmt, gesenkt. Wie im Prozessblock 616 bestimmt, wird, wenn keine weiteren Entitäten im Element vorliegen, dann im Prozessblock 618 als nächstes das Element aus der Menge entfernt, da an diesem keine weitere Verarbeitung durchgeführt werden muss, und die Verarbeitung kehrt zum Prozessblock 604 zurück. Wie im Prozessblock 620 bestimmt, wird ansonsten, wenn das Defizit nicht ermöglicht, dass das Element weiterverarbeitet wird (z.B. das Defizit kleiner ist als ein vorbestimmter konstanter Wert wie z.B. Null, oder über einen anderen Vergleich bestimmt), dann im Prozessblock 622 das Element aus der momentanen Menge entfernt und in einer anderen der Mengen von Elementen typischerweise auf der Basis des Werts des Defizits für das Element, seiner Größenangabe und der momentanen Menge angeordnet, so dass das Element nicht weiter verarbeitet wird, bis es tatsächlich genügend Größenangabe entwickelt hätte, um eine seiner Entitäten zu verarbeiten. Außerdem wird das Defizit für das Element um eine geeignete zusätzliche Größenangabe entsprechend dem nächsten Mal, wenn das Element abgearbeitet oder verarbeitet wird, erhöht. Die Verarbeitung kehrt dann zum Prozessblock 604 zurück. Ansonsten kehrt die Verarbeitung zum Prozessblock 608 zurück, um ein nächstes Element in der Menge (oder dasselbe Element, wenn es das einzige in der Menge ist) auszuwählen und zu verarbeiten.
  • 7 stellt einen Zeitablaufsteuerprozess dar, der in einer Ausführungsform verwendet wird. Die Verarbeitung beginnt mit dem Prozessblock 700 und geht zum Prozessblock 702 weiter, in dem eine erste Menge ausgewählt wird. Wie im Prozessblock 704 bestimmt, wird als nächstes, wenn keine Elemente in der ausgewählten Menge vorliegen, dann im Prozessblock 706 eine nächste Menge ausgewählt und die Verarbeitung kehrt zum Prozessblock 704 zurück.
  • Ansonsten wird im Prozessblock 708 ein Element wie z.B. das erste, wenn eine geordnete Menge verwendet wird, oder ein anderes Element aus der Menge ausgewählt. Im Prozessblock 710 werden die dem Element entsprechenden Informationen abgerufen und ein Kleinstdefizitwert wird auf einen Kleinstgrößenangabewert initialisiert. In einer Ausführungsform wird dieselbe Kleinstgrößenangabe für alle Elemente verwendet, während in einer Ausführungsform die Kleinstgrößenangabe für alle Elemente nicht gleich ist. Es ist zu beachten, dass, wenn ein Kleinstgrößenangabenwert auf weniger als ein Paket mit minimierter Größe gesetzt wird, dann der in 6 dargestellte Prozess in einer Ausführungsform erreicht wird (mit einigen externen Schritten).
  • Im Prozessblock 712 wird als nächstes eine Entität, typischerweise die erste Entität, verarbeitet. In einer Ausführungsform wird ein Paket gesandt. Im Prozessblock 714 werden als nächstes das Defizit und das Kleinstdefizit des Elements jeweils um einen gewissen konstanten oder variablen Wert, wie z.B. die Größe des gesandten Pakets oder einen anderen Wert, der an der durchgeführten Verarbeitung teilnimmt, gesenkt. Wie im Prozessblock 720 bestimmt, wird als nächs tes, wenn keine weiteren Entitäten im Element vorliegen, dann im Prozessblock 722 das Element aus der Menge entfernt, da an diesem keine weitere Verarbeitung durchgeführt werden muss, und die Verarbeitung kehrt zum Prozessblock 704 zurück.
  • Wie im Prozessblock 724 bestimmt, wird ansonsten, wenn das Defizit nicht ermöglicht, dass das Element weiterverarbeitet wird (z.B. das Defizit kleiner ist als ein vorbestimmter konstanter Wert wie z.B. Null, oder über einen anderen Vergleich bestimmt), dann im Prozessblock 728 das Element aus der momentanen Menge entfernt und in einer anderen der Mengen von Elementen typischerweise auf der Basis des Werts des Defizits für das Element, seiner Größenangabe und der aktuellen Menge angeordnet, so dass das Element nicht weiter verarbeitet wird, bis es tatsächlich genügend Größenangabe entwickelt hätte, um eine seiner Entitäten zu verarbeiten. Außerdem wird das Defizit für das Element um eine geeignete zusätzliche Größenangabe entsprechend dem nächsten Mal, wenn das Element abgearbeitet oder verarbeitet wird, erhöht. Die Verarbeitung kehrt dann zum Prozessblock 704 zurück.
  • Wenn, wie im Prozessblock 726 bestimmt, das Kleinstdefizit nicht ermöglicht, dass das Element weiterverarbeitet wird (z.B. das Kleinstdefizit kleiner ist als ein vorbestimmter konstanter Wert wie z.B. Null, oder über einen anderen Vergleich bestimmt), kehrt die Verarbeitung ansonsten zum Prozessblock 704 zurück. Ansonsten kehrt die Verarbeitung zum Prozessblock 716 zurück, um eine andere Entität zu verarbeiten, da das zugewiesene Defizit und das Kleinstdefizit vorher nicht vollständig genutzt wurden.
  • Angesichts der vielen möglichen Ausführungsformen, auf die die Prinzipien unserer Erfindung angewendet werden können, ist zu erkennen, dass die Ausführungsformen und Aspekte davon, die hierin mit Bezug auf die Zeichnungen/Fig. beschrieben wurden, nur erläuternd sind und nicht als Begrenzung des Schutzbereichs der Erfindung aufgefasst werden sollten. Beispielsweise und wie es für einen Fachmann ersichtlich wäre, können viele der Prozessblockoperationen umgeordnet werden, damit sie vor, nach oder im Wesentlichen gleichzeitig mit anderen Operationen durchgeführt werden. Viele verschiedene Formen von Datenstrukturen könnten auch in verschiedenen Ausführungsformen verwendet werden. Die Erfindung, wie hierin beschrieben, zieht alle solchen Ausführungsformen, die in den Schutzbereich der folgenden Ansprüche fallen können, in Betracht.

Claims (26)

  1. Verfahren, das umfasst: Halten mehrerer Mengen von Elementen, die die Ausführung einer Verarbeitung erfordern; Identifizieren einer momentanen Menge der mehreren Mengen von Elementen (602); und Verarbeiten von Elementen in der momentanen Menge, wobei die Verarbeitung der Elemente umfasst: Identifizieren eines bestimmten Elements in der momentanen Menge (608); Versehen eines Defizits des bestimmten Elements (622) mit einer Größenangabe; Verarbeiten einer dem bestimmten Element entsprechenden Entität (612); Senken des Defizits des bestimmten Elements um einen Wert (614); Bestimmen, ob das Defizit erlaubt, dass das bestimmte Element weiter verarbeitet wird (620); und als Antwort auf die Bestimmung, dass das Defizit nicht erlaubt, dass das bestimmte Element weiter verarbeitet wird, Bewegen des bestimmten Elements aus der momentanen Menge zu einer weiteren der mehreren Mengen von Elementen (622).
  2. Verfahren nach Anspruch 1, bei dem jedes der Elemente der mehreren Mengen von Elementen eine Warteschlange repräsentiert.
  3. Verfahren nach Anspruch 2, bei dem die Entität ein Paket repräsentiert.
  4. Verfahren nach Anspruch 3, bei dem der Wert einer Größe des Pakets entspricht.
  5. Verfahren nach Anspruch 3, bei dem der Wert einem konstanten Wert entspricht.
  6. Verfahren nach Anspruch 1, bei dem die Entität einen Prozess, einen Thread oder einen Informationsstrom repräsentiert.
  7. Verfahren nach Anspruch 1, bei dem der Wert einem veränderlichen Betrag, der mit der Verarbeitung der Entität in Beziehung steht, oder einem konstanten Wert entspricht.
  8. Verfahren nach einem vorhergehenden Anspruch, bei dem die Bestimmung, ob das Defizit erlaubt, dass das bestimmte Element weiter verarbeitet wird, das Vergleichen eines Wertes des Defizits mit einem konstanten Wert oder mit null umfasst (620).
  9. Verfahren nach einem vorhergehenden Anspruch, bei dem die Verarbeitung der Elemente ferner das Auswählen der weiteren der mehreren Mengen von Elementen anhand (606) des Defizits und der Größe des bestimmten Elements umfasst.
  10. Verfahren nach einem vorhergehenden Anspruch, bei dem die Verarbeitung der Elemente ferner das Entfernen des bestimmten Elements aus allen der mehreren Mengen (618) umfasst, wenn das bestimmte Element keine verbleibenden entsprechenden Entitäten mehr besitzt.
  11. Verfahren nach einem vorhergehenden Anspruch, bei dem die Verarbeitung der Elemente das Belassen des bestimmten Elements in der momentanen Menge umfasst, wenn die Bestimmung ergibt, dass das Defizit erlaubt, dass das bestimmte Element weiter verarbeitet wird.
  12. Verfahren nach Anspruch 11, bei dem das Bewegen des bestimmten Elements aus der momentanen Menge in die weitere der mehreren Mengen von Elementen nur ausgeführt wird, wenn die Bestimmung ergibt, dass das Defizit nicht erlaubt, dass das bestimmte Element weiter verarbeitet wird.
  13. Verfahren nach Anspruch 11, bei dem eine Gruppe, die die Verarbeitung der Entität, die Senkung des Defizits und die Bestimmung umfasst, an dem bestimmten Element wiederholt ausgeführt wird, bis die Bestimmung ergibt, dass das Defizit nicht erlaubt, dass das bestimmte Element weiter verarbeitet wird.
  14. Verfahren nach einem vorhergehenden Anspruch, bei dem die Verarbeitung der Elemente ferner das Setzen des bestimmten Elements als ein anderes Element in der momentanen Menge (608) umfasst.
  15. Verfahren nach Anspruch 14, bei dem eine Gruppe, die die Verarbeitung der Entität, die Senkung des Defizits, die Bestimmung und die Setzung umfasst, wiederholt ausgeführt wird, bis die momentane Menge leer ist.
  16. Verfahren nach einem vorhergehenden Anspruch, bei dem die Verarbeitung der Elemente ferner umfasst: Initialisieren eines Kleinstdefizits, das dem bestimmten Element (710) zugeordnet ist; Senken des Kleinstdefizits des bestimmten Elements um einen zweiten Wert (714); Bestimmen, ob das Kleinstdefizit erlaubt, dass das bestimmte Element weiter verarbeitet wird (726); und Setzen des bestimmten Elements als ein anderes Element in der momentanen Menge (708), nachdem bestimmt worden ist, ob das Kleinstdefizit erlaubt, dass das bestimmte Element weiter verarbeitet wird.
  17. Verfahren nach Anspruch 16, bei dem eine Gruppe, die die Verarbeitung der Entität, die Senkung des Defizits, die Senkung des Kleinstdefizits, die Bestimmung, ob das Kleinstdefizit erlaubt, und die Bestimmung, ob das Defizit erlaubt, umfasst, an dem bestimmten Element wiederholt ausgeführt wird, bis die Bestimmung, ob das Defizit erlaubt, ergibt, dass das Defizit nicht erlaubt, dass das bestimmte Element weiter verarbeitet wird, oder bis die Bestimmung, ob das Kleinstdefizit erlaubt, ergibt, dass das Kleinstdefizit nicht erlaubt, dass das bestimmte Element weiter verarbeitet wird.
  18. Verfahren nach Anspruch 16, bei dem der Wert und der zweite Wert gleich sind.
  19. Verfahren nach einem vorhergehenden Anspruch, das ferner das Auswählen und Verarbeiten einer bestimmten nächsten Menge aus den mehreren Mengen von Elementen (706) umfasst.
  20. Verfahren nach Anspruch 19, bei dem das Auswählen und Verarbeiten der bestimmten nächsten Menge in Reaktion auf die Bestimmung, dass die momentane Menge leer ist, ausgeführt wird (704).
  21. Computerprogramm oder Computerprogrammprodukt oder computerlesbares Medium, das computerlesbare Befehle enthält, um das Verfahren nach einem vorhergehenden Anspruch auszuführen.
  22. Vorrichtung, die umfasst: Mittel zum Halten mehrerer Mengen von Elementen, die die Ausführung einer Verarbeitung erfordern; Mittel, um eine momentane Menge der mehreren Mengen von Elementen zu identifizieren (602); und Mittel, um jedes der Elemente in der momentanen Menge zu verarbeiten, wobei die Mittel zum Verarbeiten jedes der Elemente umfassen: Mittel, um ein bestimmtes Element in der momentanen Menge (608) zu identifizieren; Mittel, um ein Defizit des bestimmten Elements (622) mit einer Größenangabe zu versehen; Mittel, um eine dem bestimmten Element entsprechende Entität zu verarbeiten (612); Mittel, um das Defizit des bestimmten Elements um einen Wert zu senken (614); und Mittel, um festzustellen, ob das Defizit erlaubt, dass das bestimmte Element weiter verarbeitet wird (620); und Mittel, die in Reaktion auf die Bestimmung, dass das Defizit nicht erlaubt, dass das bestimmte Element weiter verarbeitet wird, das bestimmte Element aus der momentanen Menge in eine weitere der mehreren Mengen von Elementen bewegen (622).
  23. Vorrichtung nach Anspruch 22, bei der die Mittel zum Verarbeiten von Elementen ferner Mittel umfassen, um das bestimmte Element als ein anderes Element in der momentanen Menge zu setzen.
  24. Vorrichtung nach Anspruch 22, die ferner umfasst: Mittel, um ein Kleinstdefizit, das dem bestimmten Element zugeordnet ist, zu initialisieren (710); Mittel, um das Kleinstdefizit des bestimmten Elements um einen zweiten Wert zu senken (714); Mittel, um festzustellen, ob das Kleinstdefizit erlaubt, dass das bestimmte Element weiter verarbeitet wird (726); und Mittel, um das bestimmte Element als ein anderes Element in der momentanen Menge zu setzen (708), nachdem bestimmt worden ist, dass das Kleinstdefizit erlaubt, dass das bestimmte Element weiter verarbeitet wird.
  25. Vorrichtung nach Anspruch 22 oder 23 oder 24, die ferner Mittel umfasst, um eine bestimmte nächste Menge aus den mehreren Mengen von Elementen auszuwählen (706).
  26. Vorrichtung nach Anspruch 22, die ferner umfasst: mehrere Warteschlangen, um mehrere Pakete (111, 112) zu puffern; und eine Zeitablaufsteuereinrichtung (120), die die Zeitablaufsteuerung des Sendens von Paketen der mehreren Pakete ausführt, wobei die Zeitablaufsteuereinrichtung umfasst: eine Steuerlogik; und eine oder mehrere Speichervorrichtungen, die so konfiguriert sind, dass sie mehrere Mengen von Angaben von Warteschlangen der mehreren Warteschlangen, die die Ausführung einer Verarbeitung erfordern, halten; wobei die Zeitablaufsteuerung umfasst: Identifizieren einer momentanen Menge der mehreren Mengen von Angaben; und Verarbeiten von Warteschlangen, die einer oder mehreren Angaben von Warteschlangen in der momentanen Menge entsprechen, wobei die Verarbeitung umfasst: Identifizieren einer bestimmten Angabe einer bestimmten Warteschlange der mehreren Warteschlangen in der momentanen Menge; Versehen eines Defizits der bestimmten Angabe mit einer Größenangabe; Senden eines Pakets von der bestimmten Warteschlange, die der bestimmten Angabe entspricht; Senken des Defizits um einen Wert; Bestimmen, ob das Defizit erlaubt, dass die bestimmte Warteschlange weiter verarbeitet wird; und Bewegen der bestimmten Angabe aus der momentanen Menge zu einer weiteren der mehreren Mengen von Angaben von Warteschlangen, nachdem festgestellt worden ist, ob das Defizit erlaubt, dass die bestimmte Warteschlange weiter verarbeitet wird.
DE60303444T 2002-03-21 2003-03-14 Ablaufsteuerung unter verwendung von quantumwerten und defizitwerten Expired - Lifetime DE60303444T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/104,759 US7065091B2 (en) 2002-03-21 2002-03-21 Method and apparatus for scheduling and interleaving items using quantum and deficit values including but not limited to systems using multiple active sets of items or mini-quantum values
US104759 2002-03-21
PCT/US2003/007872 WO2003081874A1 (en) 2002-03-21 2003-03-14 Scheduling using quantum and deficit values

Publications (2)

Publication Number Publication Date
DE60303444D1 DE60303444D1 (de) 2006-04-13
DE60303444T2 true DE60303444T2 (de) 2006-09-21

Family

ID=28452387

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60303444T Expired - Lifetime DE60303444T2 (de) 2002-03-21 2003-03-14 Ablaufsteuerung unter verwendung von quantumwerten und defizitwerten

Country Status (8)

Country Link
US (2) US7065091B2 (de)
EP (2) EP1488600B1 (de)
CN (1) CN100593312C (de)
AT (2) ATE317196T1 (de)
AU (1) AU2003221996B2 (de)
CA (1) CA2484427C (de)
DE (1) DE60303444T2 (de)
WO (1) WO2003081874A1 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7523218B1 (en) * 2002-04-30 2009-04-21 University Of Florida Research Foundation, Inc. O(log n) dynamic router tables for prefixes and ranges
US7342936B2 (en) * 2002-06-17 2008-03-11 Integrated Device Technology, Inc. Method of performing deficit round-robin scheduling and structure for implementing same
US7350208B1 (en) 2002-12-31 2008-03-25 Cisco Technology, Inc. Method and apparatus for scheduling using a resource variable decreased by amounts corresponding to the efficiency of the resource
US7580355B2 (en) 2003-08-25 2009-08-25 Integrated Device Technology, Inc. Method of performing weighted round-robin queue scheduling using a dynamic link list and structure for implementing same
GB2411492B (en) * 2004-02-25 2006-06-07 Patsystems Electronic trading system
US7599381B2 (en) * 2004-12-23 2009-10-06 Cisco Technology, Inc. Scheduling eligible entries using an approximated finish delay identified for an entry based on an associated speed group
US7843940B2 (en) * 2005-06-01 2010-11-30 Cisco Technology, Inc. Filling token buckets of schedule entries
US7809009B2 (en) * 2006-02-21 2010-10-05 Cisco Technology, Inc. Pipelined packet switching and queuing architecture
US8339949B2 (en) * 2007-10-24 2012-12-25 Cortina Systems Inc. Priority-aware hierarchical communication traffic scheduling
CN101621478A (zh) 2009-08-07 2010-01-06 中兴通讯股份有限公司 队列调度的方法及装置
US8335160B2 (en) * 2010-03-30 2012-12-18 Telefonaktiebolaget L M Ericsson (Publ) Flow sampling with top talkers
EP2672461A1 (de) 2012-06-05 2013-12-11 a.tron3d GmbH Verfahren zum Fortsetzen von Aufnahmen zum Erfassen von dreidimensionalen Geometrien von Objekten
CN105429897A (zh) * 2014-09-19 2016-03-23 深圳市中兴微电子技术有限公司 一种服务质量调度方法和装置
CN106254272B (zh) * 2016-09-05 2019-08-02 盛科网络(苏州)有限公司 基于硬件实现的弹性的加权公平调度方法及调度系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6247061B1 (en) * 1998-06-09 2001-06-12 Microsoft Corporation Method and computer program product for scheduling network communication packets originating from different flows having unique service requirements
US6377579B1 (en) * 1998-06-11 2002-04-23 Synchrodyne Networks, Inc. Interconnecting a synchronous switching network that utilizes a common time reference with an asynchronous switching network
US6480511B1 (en) * 1998-09-15 2002-11-12 Avaya Technology Corp. Arrangement for synchronization of a stream of synchronous traffic delivered by an asynchronous medium
US6172579B1 (en) * 1999-02-02 2001-01-09 Cleveland Medical Devices Inc. Three point modulated phase locked loop frequency synthesis system and method
US7075934B2 (en) * 2001-01-10 2006-07-11 Lucent Technologies Inc. Method and apparatus for hierarchical bandwidth distribution in a packet network
KR100431191B1 (ko) * 2001-12-03 2004-05-12 주식회사 케이티 크레딧 기반 라운드 로빈을 이용한 패킷 스케쥴링장치 및방법

Also Published As

Publication number Publication date
EP1638273B1 (de) 2011-05-04
US20060176883A1 (en) 2006-08-10
CA2484427A1 (en) 2003-10-02
EP1638273A2 (de) 2006-03-22
EP1488600B1 (de) 2006-02-01
ATE317196T1 (de) 2006-02-15
EP1488600A1 (de) 2004-12-22
CN100593312C (zh) 2010-03-03
WO2003081874A1 (en) 2003-10-02
CN1643874A (zh) 2005-07-20
ATE508563T1 (de) 2011-05-15
US7065091B2 (en) 2006-06-20
US7212535B2 (en) 2007-05-01
CA2484427C (en) 2012-03-13
DE60303444D1 (de) 2006-04-13
US20030214964A1 (en) 2003-11-20
EP1638273A3 (de) 2009-04-01
AU2003221996A1 (en) 2003-10-08
AU2003221996B2 (en) 2008-10-09

Similar Documents

Publication Publication Date Title
DE60303444T2 (de) Ablaufsteuerung unter verwendung von quantumwerten und defizitwerten
DE112020002509T5 (de) System und verfahren zur erleichterung der effizienten paketinjektion in einen ausgangspuffer in einer netzwerkschnittstellensteuerung (nic)
DE69931302T2 (de) Zeitbasierte Ablaufsteuerungsarchitektur und Verfahren für ATM Netzwerke
DE69931052T2 (de) Middleware-basiertes echtzeit-kommunikationssystem
DE60020817T2 (de) Ablaufsteuerung für Betriebsmittel
DE60110760T2 (de) Auslese-ablaufsteuerung für nicht aufeinander-folgende daten
DE60024228T2 (de) Dynamische zuweisung verkehrsklassen an einer prioritätswarteschlange in einer paketbeförderungsvorrichtung
DE112006001167T5 (de) Simulieren mehrerer virtueller Kanäle in Switching-Fabric-Netzwerken
DE102017126197A1 (de) Vorrichtung und Verfahren zur skalierbaren Verkehrsformung bei einem Empfänger mit einer zeitlich indexierten Datenstruktur
DE102007038964A1 (de) Verfahren und Vorrichtung zum Verarbeiten von Netzwerkdaten
DE60205231T2 (de) Vorrichtung und verfahren zur effizienten zuteilung von speicherbandbreite in einem netzwerkprozessor
DE112012006642T5 (de) Bandbreitengarantie und Arbeitskonservierung
DE60315965T2 (de) Vorrichtung zur paketablaufsteuerung
DE112020004651B4 (de) Multi-tenant-etl-ressourcenaufteilung
DE112007001135T5 (de) Gemeinschaftliche Nutzung von Daten durch Partitionen in einem partitionierbaren System
DE112017003294T5 (de) Technologien für ein skalierbares Senden und Empfangen von Paketen
DE102021207394A1 (de) Zusammenführen von paketen auf der grundlage von hinweisen, die vom netzwerkadapter erzeugt werden
DE112006002912T5 (de) Verwaltung von On-Chip-Warteschleifen in geschalteten Netzwerken
DE102012219705B4 (de) Datenpaketverarbeitung im netzwerk
DE60308832T2 (de) Gemeinsame warteschlange für mehrere eingangströme
DE112017003018T5 (de) Technologien zum koordinieren des zugriffs auf datenpakete in einem speicher
DE102011007603A1 (de) Verfahren und Vorrichtung zur Verarbeitung von Datenelementen mit minimaler Latenzzeit
DE602005004603T2 (de) Elektronische stream-verarbeitungsschaltung mit lokalgesteuerten parameteraktualisierungen und verfahren zum entwurf einer solchen schaltung
DE202014010916U1 (de) Verwirklichung von Spezifikationen bezüglich einer Netzwerk-Weiterleitungsebene eines elektronischen Geräts, das weiterleitende Funktionalität hat
DE10052132A1 (de) Graphikprozessor mit mehrfachen geometrischen Arbeitseinheiten und Verfahren zum Datenverarbeiten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition