DE60310146T2 - System und Methode zur Überwachung, mit geringer Zusatzinformation, des Leerzustandes der Senderwarteschlange - Google Patents

System und Methode zur Überwachung, mit geringer Zusatzinformation, des Leerzustandes der Senderwarteschlange Download PDF

Info

Publication number
DE60310146T2
DE60310146T2 DE60310146T DE60310146T DE60310146T2 DE 60310146 T2 DE60310146 T2 DE 60310146T2 DE 60310146 T DE60310146 T DE 60310146T DE 60310146 T DE60310146 T DE 60310146T DE 60310146 T2 DE60310146 T2 DE 60310146T2
Authority
DE
Germany
Prior art keywords
queue
host processor
state
memory
watchdog
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
DE60310146T
Other languages
English (en)
Other versions
DE60310146D1 (de
Inventor
Daniel.J. 92656 Aliso Viejo Burns
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.)
Broadcom Corp
Original Assignee
Broadcom 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
Application filed by Broadcom Corp filed Critical Broadcom Corp
Publication of DE60310146D1 publication Critical patent/DE60310146D1/de
Application granted granted Critical
Publication of DE60310146T2 publication Critical patent/DE60310146T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft allgemein ein System und ein Verfahren zum Überwachen einer Warteschlange in einem Kommunikationsnetzwerk.
  • Stand der Technik
  • Ein Sendeabschnitt eines digitalen Kommunikationssystems unterstützt typischerweise die Übertragung von verschiedenen Arten von Informationen, die unterschiedliche Dienstgüte-(QoS; Quality-of-Service)-Anforderungen aufweisen. Beispielhafte Informationsarten können codierte Sprach-, digitale Video- oder Internet-Protokoll-(IP)-Daten umfassen. In dem Falle von asynchronen Übertragungsmodussystemen (ATM-Systemen) werden die Daten, die übertragen werden sollen, typischerweise in einem Satz von Warteschlangen gespeichert, bis sie für das Senden bereit sind. In den ATM-Systemen wird die Speicherung von Daten in einer Warteschlange oftmals auf der Grundlage ihres Ziels und/oder ihrer Priorität bestimmt, was "per-Virtual Circuit (VC) Priority Queuing" genannt wird. Daten, die in jeder der Warteschlangen gespeichert sind, werden dann zu ihrer zweckdienlich geplanten Zeit, die auf der Basis der QoS-Anforderungen der VC bestimmt wird, übertragen.
  • Wenn eine Sendevorrichtung mit mehreren Sendewarteschlangen implementiert wird, ist es für den Host-Controller der Vorrichtung notwendig, den vollen und den leeren Zustand jeder Host-Controller-Warteschlange zu überwachen. Es liegt in dem Verantwortlichkeitsbereich des Host-Controllers, Datenspeicherungspufferspeicher freizugeben, die der Host-Controller-Warteschlange abgetreten worden sind, wenn die Daten, die mit dem Pufferspeicher assoziiert sind, aus der Sendevorrichtungswarteschlange gesendet worden sind. Typische Implementierungen davon erfordern es, dass der Host-Controller den Status der Sendevorrichtungswarteschlange periodisch abfragt oder eine Unterbrechung (Interrupt) von der Sendevorrichtung empfängt, sobald damit in Beziehung stehende Host-Controller-Speicherungspufferspeicherdaten aus der Sendevorrichtungswarteschlange übertragen worden sind. Das periodische Abfragen des Sendevorrichtungswarteschlangenstatus kann zu einem unnötigen Betrag an Software-Overhead führen. Auch kann eine übermäßige Unterbrechungs-Abarbeitung zu einer Verlangsamung der Systemleistung führen.
  • Deshalb werden ein System und ein Verfahren benötigt, die den Overhead in einem Host-Controller reduzieren können, der durch das Abfragen der Sendevorrichtungswarteschlange bewirkt wird, und die die Zeit reduzieren können, die für das Abarbeiten (Servicing) von Unterbrechungssignalen in dem Host-Controller verbraucht wird.
  • Die EP 0 498 201 A2 beschreibt eine generische Adapterarchitektur für eine hohe Bandbreite, die eine Hilfsschaltung umfasst, die mehrere Hardware-Timer und einen Unterbrechungs-Controller umfasst. Des Weiteren umfasst die Architektur einen Paketspeicher und -Controller, eine Paketspeicherschnittstelle und einen Generic Adapter Manager (GAM), der eine GAM Zustandsmaschine umfasst, wobei der GAM auch als ein Busmonitor agiert.
  • Gemäß der vorliegenden Erfindung ist ein Warteschlangenüberwachungssystem, wie es durch den unabhängigen Anspruch 1 definiert ist, und ein Verfahren zum Überwachen einer Warteschlange in einer Sendevorrichtung eines Kommunikationsnetzwerks bereitgestellt, wie es durch den unabhängigen Anspruch 5 definiert ist.
  • Vorteilhafte Merkmale der Erfindung sind in den abhängigen Unteransprüchen definiert.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN/FIGUREN
  • Die beigefügten Zeichnungen, die in die Patentschrift aufgenommen werden und einen Teil davon bilden, veranschaulichen eine Ausführungsform/Ausführungsformen der Erfindung und erläutern zusammen mit der Beschreibung den Zweck, die Vorteile und die Prinzipien der Erfindung.
  • 1 veranschaulicht ein System, das ein Warteschlangenüberwachungsverfahren durchführt.
  • 2 veranschaulicht einen Teil des Warteschlangenüberwachungsverfahrens gemäß Ausführungsformen der vorliegenden Erfindung.
  • 3 ist ein Flussdiagramm, das einen Teil des Warteschlangenüberwachungsverfahrens zeigt, der im Wesentlichen in einer Zustandsmaschine durchgeführt wird.
  • 4 ist ein Flussdiagramm, das einen Teil des Warteschlangenüberwachungsverfahrens zeigt, der in einem Host-Prozessor durchgeführt wird, gemäß Ausführungsformen der vorliegenden Erfindung.
  • 5 ist eine ausführliche Ansicht einer Zustandsmaschine in dem System von 1.
  • 6 veranschaulicht ein Computersystem gemäß Ausführungsformen der vorliegenden Erfindung.
  • In den Zeichnungen geben gleiche Bezugszeichen die gleichen oder im Wesentlichen die gleichen Elemente an. Des Weiteren zeigen die Ziffer(n) der Bezugszeichen ganz links außen die Nummer der Zeichnung an, in der das Bezugszeigen zum ersten Mal verwendet wird.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Eine Sendevorrichtung, die eine Zustandsmaschine enthält, erlaubt es, dass Unterbrechungen (Interrupts) nur dann erzeugt werden, wenn dies notwendig ist, anstatt dass diese periodisch erzeugt werden. Die Sendevorrichtung, die die Zustandsmaschine enthält, beseitigt auch die Notwendigkeit, dass ein Host-Prozessor die Sendevorrichtung kontinuierlich bezüglich des Sendewarteschlangenstatus abfragen muss. Des Weiteren reduziert die Zustandsmaschine die Anzahl an Unterbrechungen, die von der Sendevorrichtung erzeugt werden, wodurch die Zeit und der System-Overhead minimiert werden, die mit dem Abarbeiten der Unterbrechungen assoziiert sind.
  • 1 veranschaulicht ein Warteschlangenüberwachungssystem 100 in einem Kommunikationsnetzwerk. In einem Beispiel kann das Kommunikationsnetzwerk ein ATM-Netzwerk sein. Das System 100 umfasst einen Host-Prozessor oder Controller 102, der einen Host-Prozessor-Speicher oder eine Host-Prozessor-Warteschlange 104 umfasst, der bzw. die Datenpakete speichert, die über eine Kommunikationsverbindung 112 gesendet werden sollen.
  • Der Host-Prozessor 102 sendet die Datenpakete zu einer Sendevorrichtung 106. Die Sendevorrichtung 106 enthält einen Sendevorrichtungsspeicher oder eine Sendevorrichtungswarteschlange 108, in dem bzw. der die Datenpakete gespeichert werden, bis sie über die Kommunikationsverbindung 112 gesendet werden, sowie eine Zustandsmaschine 110. In einigen Ausführungsformen können der Host-Prozessor 102 und die Sendevorrichtung 106 einen der Speicher 104 oder 108 gemeinsam nutzen, so dass der andere Speicher 104 oder 108 in dem System 100 nicht vorhanden ist. Wenn die Datenpakete gesendet werden, wird der Sendespeicher 108 geräumt. Aber der Prozessor-Speicher 104 wird nicht entleert, bis er ein Unterbrechungssignal von der Sendevorrichtung 106 empfängt oder bis er die Sendevorrichtung 106 abfragt, um zu sehen, ob die Sendevorrichtungswarteschlangen 108 leer sind. Wenn der Prozessor-Speicher 104 nicht periodisch geräumt wird, dann wird er die Sendefunktion blockieren und darauf warten, bis der Speicher verfügbar wird, was Sendeverzögerungen verursacht. Leider sind Unterbrechungen und Abfragen Overhead-Funktionen, die die gesamte Prozessor-Geschwindigkeit reduzieren. Deshalb ist es wünschenswert, die Häufigkeit der Unterbrechungen und den Betrag an Abfragen (Polling) zu reduzieren, um zu verhindern, dass der Prozessorspeicher 104 voll wird.
  • Unter Bezugnahme auf 5 und unter weiterer Bezugnahme auf 1 umfasst das System 100 des Weiteren Folgendes: einen 'n' Millisekunden-Zeitgeber 10, der Basiszeitgeber genannt wird; 'm' Zustandsmaschinen 110; 'm' Zähler 504 mit Bits der Länge 'p', die die Watchdog-Zähler genannt werden; 'q' Zeitabschnitts-Vergleichswerte mit der Länge 'q', die Schwellenwert- oder Watchdog-Werte genannten werden, die in einem Schwellenwert- oder Watchdog-Wert-Speicher 508 gespeichert werden. Der Wert von 'm' ist gleich der Anzahl an unterstützten Sendewarteschlangen 108. Der Basiszeitgeber 10 ist der Master-Zeitgeber des Warteschlangenüberwachungssystems 100 und ist ein frei laufender Zeitgeber, der einen Impuls alle 'n' Millisekunden liefert. Eine Ausführungsform des Systems 100 verwendet einen Wert von 50 für 'n', was einer Basiszeitgeberauflösung von 50 Millisekunden entspricht.
  • Die 1 und 5 zeigen auch die Zustandsmaschine 110, die den Sendespeicher 108 mit einer Überwachungsvorrichtung 500 überwacht, die eine Überwachungsvorrichtung bzw. eine Monitorvorrichtung zur Überwa chung der leeren oder nicht leeren Zustände der Warteschlange 108 sein kann. Die Zustandsmaschine 110 stellt eine Implementierung der Warteschlangenunterbrechungsverfahren 200400 bereit, die in den 24 gezeigt sind. Die Zustandsmaschine 110 umfasst auch einen Zustands-Controller 502, der mit dem Monitor 500 und einem Zählermonitor 506 gekoppelt ist, der zwischen einem Zähler 504, der ein Watchdog-Zähler sein kann, und dem Speicher 508 gekoppelt ist. Die Zustandsmaschine 110 umfasst des Weiteren einen Unterbrechungsgenerator 510, der sowohl mit dem Monitor 500 als auch mit dem Zählermonitor 506 gekoppelt ist.
  • Wie in der 2 zu sehen ist, wird der S_IDLE-Zustand bei der Rücksetzung der Sendevorrichtung 106 betreten, wie von dem Zustands-Controller 502 im Schritt 202 bestimmt wird. In dem Schritt 204 stellt der Monitor 500 fest, ob die Sendewarteschlange 108 im nicht leeren Zustand ist (d.h., ob Daten empfangen worden sind). Wenn die Antwort nein ist (d.h., die Sendewarteschlange 108 ist leer), dann sind keine Pakete von dem Host-Controller 102 empfangen worden, und der Zustands-Controller 502 führt die Zustandsmaschine 110 zum Schritt 204 zurück, bis ein Paket empfangen wird. Wenn die assoziierte Warteschlange 108 in den nicht leeren Zustand übergeht (d.h., Daten sind empfangen worden), dann bewegt der Zustands-Controller 502 die Zustandsmaschine 110 in den S_NOT_EMPTY-Zustand, in dem die Zustandsmaschine 110 wartet, bis die Warteschlange 108 wieder leer wird (d.h., die Daten gesendet worden sind). Im Schritt 206 stellt der Monitor 500 fest, wann die Warteschlange 108 wieder leer ist (d.h., die empfangenen Pakete gesendet worden sind). Wenn die Warteschlange 108 leer wird, bewegt der Zustands-Controller 502 in den Schritten 206 und 208 den Zustands-Controller 502 in den S_COUNT-Zustand und der Watchdog-Zähler 504 wird gestartet. An diesem Punkt "springt" die Zustandsmaschine 110 zwischen den Schritten 206 und 208 "hin und her", bis der Unterbrechungsgenerator entweder: (1) ein Signal von dem Monitor 500 erfasst, dass die Warteschlange 108 wieder in den nicht leeren Zustand übergegangen ist (d.h., ein neues Paket empfangen worden ist), oder (2) ein Signal von dem Zählermonitor 506 empfängt, dass der Zähler 504 eine Zählung erreicht hat, die gleich dem Watchdog-Wert oder dem Schwellenwert (Schwellenzählungswert) ist, auf den von dem Speicher 508 zugegriffen wird. Das Auftreten eines dieser Ereignisse, die von entweder dem Monitor 500 oder dem Monitor 506 empfangen werden, wird dazu füh ren, dass der Zustands-Controller 502 die Zustandsmaschine 110 zurück in den S_IDLE-Zustand 202 führen wird. Und die Zustandsmaschine 100 erzeugt eine Unterbrechung bei dem Schritt 210, die zu dem Host-Controller 102 gesendet wird, um seinen Speicher 104 zu entleeren.
  • Der Watchdog-Zähler 504 bleibt mit einem Zählungswert von Null im Ruhezustand, bis die Zustandsmaschine 110 den S_COUNT-Zustand erreicht. Sobald der S_COUNT-Zustand besteht, wird der Watchdog-Zähler 504 bei jedem Auftreten des Basiszeitgebers 10 inkrementieren. Wenn der Watchdog-Zähler 504 eine Zählung erreicht, die gleich dem Schwellenwert ist, auf den von dem Speicher 508 zugegriffen werden kann, erzeugt der Unterbrechungsgenerator 510 beim Schritt 210 die Unterbrechung für den Host-Prozessor 102, um diesem anzuzeigen, dass die Warteschlange für einen Zeitabschnitt leer gewesen ist, der gleich dem Wert des Watchdog-Werts oder Schwellenwerts mal dem Basiszeitgeber ist. Wenn zum Beispiel der Basiszeitgeber 50 mS ('n' = 50) ist und der Watchdog-Wert oder Schwellenwert 10 ist, dann wird die Unterbrechung für diese Warteschlange 108 immer dann auftreten, wenn die Warteschlange 109 von dem nicht leeren in den leeren Zustand übergeht und für etwa (10 × 50 mS) oder 500 Millisekunden leer bleibt.
  • Die genaue Zeitsteuerung der Unterbrechung ist nicht deterministisch, aber wird immer innerhalb des Bereichs von (Basiszeitgeber × (Watchdog-Wert – 1)) und (Basiszeitgeber × Watchdog-Wert) liegen. Der Grund dafür liegt darin, dass es keine Korrelation zwischen dem Wert des Basiszeitgebers 10 und dem Zeitpunkt gibt, an dem die Zustandsmaschine 110 den S_COUNT-Zustand betritt, weil der Basiszeitgeber 10 frei laufend ist. In einer Ausführungsform wird ein Watchdog-Wert oder Schwellenwert von Null dazu führen, dass eine plötzliche Unterbrechung auftreten wird, wenn die Warteschlange 108 von einem nicht leeren Zustand in einen leeren Zustand übergeht.
  • Eine Auflösung der Unterbrechung wird von dem Parameter 'n' der Zeit 10 definiert und wird durch eine gewünschte Auflösung der Unterbrechung bestimmt. Die Länge des Watchdog-Zählers 504 und der Watchdog-Wert oder der Schwellenwert aus dem Speicher 508 sind gleich und werden von dem Parameter 'p' definiert. Der Wert von 'p' wird auf der Grundlage des gewünschten Bereichs der Unterbrechungszeit bestimmt. Eine Ausführungsform eines Warteschlangenüberwachungsalgorithmus verwendet einen Wert von 4 für 'p', der dann, wenn 'n' gleich 50 wäre, als Ergebnis einen Bereich von Unterbrechungsverzögerungszeiten von einem Minimum von Null bis zu einem Maximum von (50 mS × (24 – 1)) oder (50 mS × 15) ergeben würde, was gleich 750 Millisekunden ist. Die Anzahl an Watchdog-Werten (Vergleichswerten) oder Schwellenwerten wird von dem Parameter 'q' definiert und ist gleich eins oder 'm'. Für eine einfachere Implementierung können alle Warteschlangen 108 den gleichen Watchdog-Wert oder Schwellenwert gemeinsam nutzen. Um zu erlauben, dass die Unterbrechungszeit für jede Warteschlange 108 unterschiedlich konfiguriert werden kann, muss ein Watchdog-Wert oder ein Schwellenwert für jede Warteschlange zur Verfügung gestellt werden ('q' = 'm').
  • Unter Bezugnahme auf die 34 und die weitere Bezugnahme auf die 1, 2 und 5 wird das System 100 unter Bezugnahme auf die Flussdiagramme 300 und 400 weiter erläutert. Wie zu sehen ist, sind die Verfahren, die in den 3 und 4 durchgeführt werden, durch A und B miteinander verbunden.
  • In 3 ist ein Verfahren 300 gezeigt, das im Wesentlichen in der Zustandsmaschine 110 durchgeführt wird. Es werden zwei Schritte in dem Host-Prozessor 102 durchgeführt, nämlich bei Schritt 302, wenn Daten in der Host-Prozessor-Warteschlange gespeichert werden, und bei Schritt 304, wenn die gespeicherten Daten zu der Sendevorrichtungswarteschlange gesendet werden. Die restlichen Schritte des Verfahrens 300 werden von der Zustandsmaschine 110 in der Sendevorrichtung 106 durchgeführt und werden weiter unten beschrieben werden.
  • In der Sendevorrichtung 106 überwacht der Monitor 500 bei dem Schritt 306, wann die Sendevorrichtungswarteschlange 108 von leer zu nicht leer übergeht. Eine Bestimmung wird bei Schritt 308 durchgeführt, um zu sehen, ob die Sendevorrichtungswarteschlange 108 nicht leer ist. Falls nein, dann setzt das Verfahren 300 die Überwachung des Übergangs fort. Falls ja, dann wird die Zustandsmaschine 110 beim Schritt 310 von dem Zustands-Controller 502 auf einen Warteschlange-nicht-leer-Zustand gesetzt. Dann überwacht der Monitor 500 bei Schritt 312, wann die Sendevorrichtungswarte schlange 108 von dem nicht leeren Zustand zurück in den leeren Zustand übergeht. Ein Feststellungsschritt wird bei Schritt 314 durchgeführt, um zu sehen, ob die Sendevorrichtungswarteschlange 108 leer ist. Falls nein, dann fährt der Monitor 500 mit der Überwachung des Übergangs bei Schritt 312 fort. Falls ja, dann wird die Zustandsmaschine beim Schritt 316 auf einen Zählungszustand gesetzt und der Zähler 504 wird beim Schritt 318 gestartet. Beim Schritt 320 wird der Zähler 504 bei jedem Auftreten des Basiszeitgebers 10 oder bei jedem Empfang eines Signals von dem Schritt 328 inkrementiert. Bei Schritt 322 wird von dem Zählermonitor 506 eine Bestimmung getroffen, ob der Zähler 504 gleich dem Watchdog-Wert ist, der in dem Schwellenwertspeicher 508 gespeichert ist. Falls ja, dann sendet der Unterbrechungsgenerator beim Schritt 324 ein Unterbrechungssignal zu dem Hostprozessor 102. Falls nein, dann überwacht der Monitor 500 die Sendevorrichtungswarteschlange 108 beim Schritt 326, um zu sehen, ob sie von dem leeren Zustand in den nicht leeren Zustand übergegangen ist. Eine Feststellung wird bei Schritt 328 getroffen, ob sich die Sendevorrichtungswarteschlange 108 in dem nicht leeren Zustand befindet (d.h., ob Daten empfangen worden sind) oder nicht. Falls nein, dann geht das Verfahren 300 zurück zu Schritt 320. Falls ja, dann geht das Verfahren 300 zurück zu Schritt 306.
  • Deshalb braucht der Host-Prozessor 102 die Sendevorrichtung 106 nicht mehr länger abzufragen, weil ein Unterbrechungssignal automatisch generiert und gesendet wird, wenn eine Sendewarteschlange 108 für eine Zeitspanne, die gleich dem Watchdog-Wert ist, leer geblieben ist (d.h., keine neuen Pakete in die Sendewarteschlange 108 gestellt worden sind). Aufgrund der automatischen Natur des Unterbrechungssignals wird auch die übermäßige periodische Erzeugung von Unterbrechungssignalen beseitigt. Durch diese beiden Modifikationen reduzieren die Ausführungsformen der vorliegenden Erfindung den Overhead in einem Host-Prozessor 102, der bewirkt wird durch: (1) das Abfragen der Sendevorrichtungswarteschlange 108 durch den Host-Prozessor 102 und (2) die Zeit, die für die Abarbeitung der Unterbrechungssignale in dem Host-Prozessor 102 verbraucht wird.
  • Unter Bezugnahme auf 4 wird ein Verfahren 400 erörtert werden, das von dem Host-Prozessor 102 durchgeführt wird. Beim Schritt 402 empfängt der Host-Prozessor 102 neue Daten. Beim Schritt 404 wird eine Feststellung getroffen, ob die neuen Daten bereit für die Übertragung sind. Falls nein, dann fährt das Verfahren 400 mit der Überprüfung fort, ob die neuen Daten zur Übertragung bereit sind. Falls ja, dann prüft der Host-Prozessor 102 beim Schritt 406, ob die Host-Prozessor-Warteschlange 104 voll ist. Falls nein, wird das Verfahren 300 durchgeführt. Falls ja, dann stellt der Host-Prozessor 102 beim Schritt 408 fest, ob die Daten, die vorher in der Host-Prozessor-Warteschlange 104 gespeichert und zu der Sendevorrichtungswarteschlange 108 kopiert worden sind, von dem Sender 106 gesendet worden sind. Falls nein (kein(e) Datenpaket(e) ist/sind übertragen worden), werden beim Schritt 412 keine neuen Daten zu der Host-Prozessor-Warteschlange 104 hinzugefügt, und das Verfahren kehrt zu Schritt 404 zurück. Falls ja ((ein) Datenpaket(e) ist/sind übertragen worden), wird die Host-Prozessor-Warteschlange 104 beim Schritt 412 geleert und das Verfahren 300 wird durchgeführt.
  • Ein Warteschlangenüberwachungssystem 100 und die Verfahren 200, 300 und 400 stellen fest, wann eine oder mehrere Sendewarteschlangen 108 einen Zustand erreicht hat/haben, der eine Aktion durch die Host-Verarbeitungsvorrichtung 102 erfordert, ohne dass die Notwendigkeit für ein periodischen Abfragen des Sendewarteschlangenstatus oder für eine exzessive Abarbeitung von Unterbrechungen besteht. Die Warteschlangenüberwachungsverfahren 200, 300 und 400 nehmen an, dass zu jedem Zeitpunkt, an dem der Host-Controller 102 neue Daten zu einer Warteschlange 108 hinzufügen will, dieser beim Schritt 404 erst einmal den Warteschlangenstatus der Sendewarteschlangen 108 überprüfen wird, um zu gewährleisten, dass die Warteschlange 104 nicht voll ist, und um festzustellen, ob irgendein Datenspeicherungspufferspeicher 104 beim Schritt 406 freigegeben werden kann. Die Warteschlangenüberwachung implementiert auch einen Unterbrechungsmechanismus 510, der beim Schritt 324 eine Unterbrechung generiert, wenn eine oder mehrere der Sendewarteschlangen 108 von einem nicht leeren Zustand in einen leeren Zustand übergegangen ist/sind und in dem leeren Zustand für eine Schwellenwert-Zeitspanne geblieben ist, auf die von dem Speicher 508 zugegriffen werden kann. Die Kombination aus Warteschlangenstatusüberprüfung mit dem Verfahren 400 (wenn neue Sendedaten hinzugefügt werden) und aus dem Warteschlangenüberwachungsunterbrechungsmechanismus mit dem Verfahren 300 beseitigt die Notwendigkeit für ein periodisches Abfragen des Warteschlangenstatus und verringert die Abwicklung von Unter brechungen, die auf der Basis einer vollendeten Datenübertragung aus einem oder mehreren Sendepufferspeichern 108 generiert werden.
  • Es ist klar, dass die vorliegende Erfindung nicht auf die in den 1 und 5 beschriebenen Kommunikationsumgebungen beschränkt ist. Die Warteschlangenerfassungsverfahren 200400 können in einer Umgebung implementiert werden, in der eine Unterbrechung generiert werden soll, um den Status oder die Vollendung einer bestimmten Aufgabe anzuzeigen. Das Unterbrechungssignal kann auch zu irgendeinem Prozessor oder zu einer anderen Steuervorrichtung gesendet werden.
  • Die Zustandsmaschine 110 kann mit Logikbauelementen implementiert werden, um die Funktionen und die Schritte durchzuführen, die in den 24 genannt sind. Alternativ dazu können die Funktionen und Schritte in den 24 in einem Prozessor implementiert werden, wie etwa in einem Mikroprozessor, einem eingebetteten Prozessor, etc. Der Prozessor kann einen Computerprogrammcode ausführen, um die Schritte der 24 zu bilden. Der Computerprogrammcode kann auf einem durch einen Computer benutzbaren Medium gespeichert und abgerufen werden, wie etwa einem Speicher, einer Computer Disk oder dergleichen.
  • So veranschaulicht 6 zum Beispiel einen oder mehrere Prozessor, wie etwa den Prozessor 604. Der Prozessor 604 kann ein spezieller oder ein universeller digitaler Signalprozessor sein. Der Prozessor 604 ist mit einer Kommunikationsinfrastruktur 606 (zum Beispiel einem Bus oder einem Netzwerk) verbunden. Es werden verschiedene Software-Implementierungen im Hinblick auf dieses beispielhafte Computersystem beschrieben. Nach dem Lesen dieser Beschreibung wird es einem Fachmann auf diesem Gebiet klar sein, wie die Erfindung unter Verwendung anderer Computersysteme und/oder Computerarchitekturen implementiert werden kann.
  • Das Computersystem 600 umfasst auch einen Hauptspeicher 608, vorzugsweise ein Random Access Memory (RAM), und kann auch einen Sekundärspeicher 610 umfassen. Der Sekundärspeicher 610 kann zum Beispiel ein Festplattenlaufwerk 612 und/oder ein Wechselplattenspeicherlaufwerk 614 umfassen, das ein Floppy Disk Laufwerk, ein Magnetbandlaufwerk, ein opti sches Speicherplattenlaufwerk (CD-Laufwerk), etc. darstellt. Das Wechselplattenspeicherlaufwerk 614 führt Lese- und Schreibvorgänge aus einer auswechselbaren Speichereinheit 618 heraus und in diese hinein auf eine bekannte Art und Weise durch. Die auswechselbare Speichereinheit 618 stellt eine Floppy Disk, ein Magnetband, eine optische Speicherplatte (CD), etc. dar, die von dem Wechselplattenspeicherlaufwerk 614 gelesen werden bzw. in die von diesem Laufwerk 614 geschrieben wird. Wie klar sein wird, umfasst die auswechselbare Speichereinheit 618 ein durch einen Computer benutzbares Speichermedium, in dem Computersoftware und/oder Daten gespeichert sind.
  • In alternativen Implementierungen kann der Sekundärspeicher 610 andere ähnliche Einrichtungen umfassen, die es erlauben, dass Computerprogramme oder andere Instruktionen in das Computersystem 600 geladen werden können. Solche Einrichtungen können zum Beispiel eine auswechselbare Speichereinheit 622 und eine Schnittstelle 620 umfassen. Beispiele für solche Einrichtungen können eine Programmkassette und eine Kassettenschnittstelle (wie diejenigen, die bei Videospielgeräten zu finden sind), ein auswechselbarer Speicherchip (wie etwa ein EPROM oder PROM) und ein assoziierter Sockel, und andere auswechselbare Speichereinheiten 622 und Schnittstellen 620 sein, die es erlauben, dass Software und Daten von der auswechselbaren Speichereinheit 622 auf das Computersystem 600 übertragen werden können.
  • Das Computersystem 600 kann auch eine Kommunikationsschnittstelle 624 umfassen. Die Kommunikationsschnittstelle 624 erlaubt es, dass Software und Daten zwischen dem Computersystem 600 und externen Vorrichtungen übertragen werden können. Beispiele für eine Kommunikationsschnittstelle 624 können ein Modem, eine Netzwerk-Schnittstelle (wie etwa eine Ethernet Card), einen Kommunikationsport, einen PCMCIA-Schlitz und eine PCMCIA-Karte, etc., umfassen. Die Software und die Daten, die über eine Kommunikationsschnittstelle 624 übertragen werden, liegen in der Form von Signalen 628 vor, die elektronische, elektromagnetische, optische oder andere Signale sein können, die von der Kommunikationsschnittstelle 624 empfangen werden können. Diese Signale 628 werden der Kommunikationsschnittstelle 624 über einen Kommunikationspfad 626 bereitgestellt. Der Kommunikationspfad 626 trägt Signale 628 und kann unter Verwendung von Draht oder Kabel, Glasfaser, einer Telefonleitung, einer Funktelefonverbindung, einer HF-Verbindung und anderer Kommunikationskanäle implementiert werden.
  • In diesem Dokument werden die Begriffe "Computerprogrammmedium" und "von einem Computer benutzbares Medium" verwendet, um sich allgemein auf Medien wie etwa ein Wechselspeicherlaufwerk 614, eine Festplatte, die in einem Festplattenlaufwerk 612 installiert ist, und Signale 628 zu beziehen. Diese Computerprogrammprodukte sind Einrichtungen zur Bereitstellung von Software für das Computersystem 600.
  • Computerprogramme (die auch die Computersteuerlogik genannt werden) sind in dem Hauptspeicher 608 und/oder dem Sekundärspeicher 610 gespeichert. Computerprogramme können auch über die Kommunikationsschnittstelle 624 empfangen werden. Solche Computerprogramme ermöglichen es dem Computersystem 600 dann, wenn sie ausgeführt werden, die vorliegende Erfindung so, wie sie hier erörtert worden ist, zu implementieren. Insbesondere ermöglichen es die Computerprogramme dann, wenn sie ausgeführt werden, dem Prozessor 604, die Prozesse der vorliegenden Erfindung zu implementieren, wie etwa das/die Verfahren, das/die unter Verwendung der oben beschriebenen Oszillatorstruktur 100 implementiert worden ist/sind, wie zum Beispiel das Verfahren 300. Demgemäß stellen solche Computerprogramme Controller des Computersystems 600 dar. Beispielshalber können in den Ausführungsformen der Erfindung die Prozesse, die von den Signalverarbeitungsblöcken des Oszillators 100 durchgeführt werden, durch Computersteuerlogik durchgeführt werden. Wenn die Erfindung unter Verwendung von Software implementiert wird, kann die Software in einem Computerprogrammprodukt gespeichert werden und in das Computersystem 600 unter Verwendung eines Wechselplattenspeicherlaufwerks 614, eines Festplattenlaufwerks 612 oder einer Kommunikationsschnittstelle 624 geladen werden.
  • Schlussfolgerung
  • Beispielhafte Ausführungsformen der vorliegenden Erfindung sind hier beschrieben worden. Wie an anderer Stelle angemerkt worden ist, sind diese beispielhaften Ausführungsformen nur zu veranschaulichenden Zwecken beschrieben worden und sind nicht einschränkend gedacht. Andere Ausführungs formen sind möglich und werden von der Erfindung abgedeckt. Solche Ausführungsformen werden den Fachleuten auf dem/den relevanten Fachgebiet(en) auf der Grundlage der hier enthaltenen Lehren offensichtlich sein. Somit soll der Schutzumfang und der Schutzbereich der vorliegenden Erfindung nicht durch irgendeines der oben beschriebenen beispielhaften Ausführungsformen eingeschränkt sein, sondern soll nur in Übereinstimmung mit den nachfolgenden Ansprüchen und ihren Äquivalenten definiert sein.

Claims (8)

  1. Warteschlangenüberwachungssystem in einem Kommunikationsnetzwerk zum Senden von Daten, wobei das Warteschlangenüberwachungssystem (100) Folgendes umfasst: einen Host-Prozessor (102), der einen Host-Prozessor-Speicher (104) enthält, der Kopien von Datenpaketen speichert; eine Sendevorrichtung (106), die mit dem Host-Prozessor (102) gekoppelt ist und die die Datenpakete empfängt, speichert und sendet, wobei die Sendevorrichtung (106) Folgendes umfasst: einen Sendevorrichtungsspeicher (108), der die Datenpakete speichert, bis die Datenpakete gesendet werden, und eine Zustandsmaschine (110), die mit dem Sendevorrichtungsspeicher (108) gekoppelt ist und die überwacht, wann der Sendevorrichtungsspeicher (108) die Datenpakete empfängt und sendet, um zu bestimmen, wann eine Unterbrechung zu dem Host-Prozessor (102) gesendet werden soll, um die Kopien dieser Datenpakete aus dem Host-Prozessor-Speicher (104) zu löschen, wobei die Zustandsmaschine (110) Folgendes umfasst: eine Überwachungsvorrichtung (500), die so konfiguriert ist, dass sie eine Überwachung bezüglich leerer und nicht leerer Zustände des Sendevorrichtungsspeichers (108) durchführen kann; einen Zustands-Controller (502), der so konfiguriert ist, das er die Zustandsmaschine (110) in einen Zustand bewegen kann, der dem Zustand entspricht, der von der Überwachungsvorrichtung (500) für den Sendevorrichtungsspeicher (108) bestimmt worden ist, wobei der Zustands-Controller (502) mit der Überwachungsvorrichtung (500) und einem Watchdog-Zähler (504) gekoppelt wird; wobei der Watchdog-Zähler (504) so konfiguriert ist, dass er mit dem Zählen beginnt, wenn die Überwachungsvorrichtung (500) feststellt, dass der Zustand des Sendevorrichtungsspeichers (108) von einem nicht leeren Zustand in einen leeren Zustand übergegangen ist, wobei der Watchdog-Zähler (504) außerdem mit einem Zählermonitor (506) gekoppelt ist; wobei der Zählermonitor (506) des Weiteren mit einem Schwellenwertspeicher (508) gekoppelt ist und so konfiguriert ist, dass er feststellen kann, ob der Watchdog-Zähler (504) einen Schwellenwert erreicht hat, der in dem Schwellenwertspeicher (508) gespeichert ist, um einen Unterbrechungssignalgenerator (510) zu aktivieren, der in der Zustandsmaschine (110) enthalten ist, wobei der Unterbrechungssignalgenerator (510) so konfiguriert ist, dass er ein Unterbrechungssignal generieren kann, wenn der Watchdog-Zähler (504) den Schwellenwert erreicht und das Unterbrechungssignal zu dem Host-Prozessor (102) zurücksendet, wobei der Unterbrechungssignalgenerator (510) mit dem Zählermonitor (506) und der Überwachungsvorrichtung (500) gekoppelt ist.
  2. Warteschlangenüberwachungssystem nach Anspruch 1, wobei der Host-Prozessor (102) mit zwei Verbindungen mit der Sendevorrichtung (106) gekoppelt ist, wobei die erste Verbindung so konfiguriert ist, dass sie Pakete von dem Host-Prozessor (102) zu der Sendevorrichtung (106) senden kann, und die zweite Verbindung so konfiguriert ist, dass sie das Unterbrechungssignal von der Sendevorrichtung (106) zu dem Host-Prozessor (102) senden kann.
  3. Warteschlangenüberwachungssystem nach Anspruch 1, das einen Basiszeitgeber (10) umfasst, der mit dem Host-Prozessor (102) und der Sendevorrichtung (106) gekoppelt ist.
  4. Warteschlangenüberwachungssystem nach Anspruch 3, wobei der Basiszeitgeber (10) frei laufend ist und die Zeitsteuerung der Unterbrechung innerhalb des Bereichs von (Basiszeitgeberwert·(Watchdog-Wert – 1)) und (Basiszeitgeberwert·Watchdog-Wert) liegt.
  5. Verfahren zum Überwachen einer Warteschlange in einer Sendevorrichtung eines Kommunikationsnetzwerks, wobei das Verfahren die folgenden Schritte umfasst: a) Speichern von Datenpaketen in einem Host-Prozessor-Speicher (104); b) Senden der Datenpakete zu der Warteschlange (108) in der Sendevorrichtung (106), was bewirkt, dass die Warteschlange (108) in der Sendevorrichtung (106) in einen nicht leeren Zustand übergeht; c) Überwachen der Warteschlange (108) in der Sendevorrichtung (106) durch eine Überwachungsvorrichtung (500), die in einer Zustandsmaschine (110) der Sendevorrichtung (106) enthalten ist, um zu bestimmen, wann die Warteschlange (108) von dem nicht leeren Zustand zurück in einen leeren Zustand übergeht; d) Bewegen der Zustandsmaschine (110) in die Zustände, die den Zuständen entsprechen, die von der Überwachungsvorrichtung (500) für den Sendevorrichtungsspeicher (108) bestimmt worden sind, durch einen Zustands-Controller (502), der in der Zustandsmaschine (110) enthalten ist, wobei der Zustands-Controller (502) mit der Überwachungsvorrichtung (500) und einem Watchdog-Zähler (504) gekoppelt ist; e) Starten des Watchdog-Zählers (504), der in der Zustandsmaschine (110) enthalten ist, wenn die Warteschlange (108) von dem nicht leeren Zustand in den leeren Zustand übergeht, wobei der Watchdog-Zähler (504) des Weiteren mit einem Zählermonitor (506) gekoppelt ist, der in der Zustandsmaschine (110) enthalten ist; f) Feststellen durch den Zählermonitor (506), wann ein Watchdog-Zählerwert in dem Watchdog-Zähler (504) einen Schwellenwert erreicht hat, der in einem Schwellenwertspeicher (508) gespeichert ist, der mit dem Zählermonitor (506) gekoppelt ist, um einen Unterbrechungssignalgenerator (510) zu aktivieren, der ein Unterbrechungssignal generiert, wenn der Watchdog-Zählerwert (504) den Schwellenwert erreicht, wobei der Unterbrechungssignalgenerator (510) in der Zustandsmaschine (110) enthalten ist und mit dem Zählermonitor (506) und der Überwachungsvorrichtung (500) gekoppelt ist; und g) Senden des Unterbrechungssignals zu einem Host-Prozessor (102) und Räumen des Host-Prozessor-Speichers (104), wenn das Unterbrechungssignal empfangen wird.
  6. Verfahren nach Anspruch 5, das das Senden der Datenpakete in dem Schritt b) über eine erste Verbindung von dem Host-Prozessor (102) zu der Sendevorrichtung (106) und das Senden des Unterbrechungssignals über eine zweite Verbindung von der Sendevorrichtung (106) zu dem Host-Prozessor (102) umfasst.
  7. Verfahren nach Anspruch 5, das das Koppeln eines Basiszeitgebers (10) mit dem Host-Prozessor (102) und der Sendevorrichtung (106) umfasst.
  8. Verfahren nach Anspruch 7, wobei der Basiszeitgeber (10) frei laufend ist und die Zeitsteuerung der Unterbrechung innerhalb des Bereichs von (Basiszeitgeberwert·(Watchdog-Wert – 1)) und (Basiszeitgeberwert·Watchdog-Wert) liegt.
DE60310146T 2002-02-01 2003-01-29 System und Methode zur Überwachung, mit geringer Zusatzinformation, des Leerzustandes der Senderwarteschlange Expired - Lifetime DE60310146T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US35287602P 2002-02-01 2002-02-01
US352876P 2002-02-01
US10/173,985 US7177963B2 (en) 2002-02-01 2002-06-19 System and method for low-overhead monitoring of transmit queue empty status
US173985 2002-06-19

Publications (2)

Publication Number Publication Date
DE60310146D1 DE60310146D1 (de) 2007-01-18
DE60310146T2 true DE60310146T2 (de) 2007-09-20

Family

ID=27616265

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60310146T Expired - Lifetime DE60310146T2 (de) 2002-02-01 2003-01-29 System und Methode zur Überwachung, mit geringer Zusatzinformation, des Leerzustandes der Senderwarteschlange

Country Status (3)

Country Link
US (1) US7177963B2 (de)
EP (1) EP1335293B1 (de)
DE (1) DE60310146T2 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7339890B2 (en) * 2002-02-01 2008-03-04 Broadcom Corporation Scalable, high-resolution asynchronous transfer mode traffic shaper and method
WO2004046926A1 (ja) * 2002-11-21 2004-06-03 Fujitsu Limited イベント通知方法、デバイス及びプロセッサシステム
US20040184450A1 (en) * 2003-03-19 2004-09-23 Abdu H. Omran Method and system for transport and routing of packets over frame-based networks
JP4193607B2 (ja) * 2003-06-26 2008-12-10 日本電気株式会社 データフロー制御方式、方法、およびプログラム
US7899956B2 (en) * 2004-10-07 2011-03-01 Broadcom Corporation System and method of reducing the rate of interrupts generated by a device in microprocessor based systems
US20070198754A1 (en) * 2006-02-07 2007-08-23 International Business Machines Corporation Data transfer buffer control for performance
KR101412747B1 (ko) * 2007-07-18 2014-07-01 삼성전자주식회사 데이터를 인증하는 방법 및 상기 방법을 수행하는 시스템
US7990980B2 (en) * 2007-12-27 2011-08-02 International Business Machines Corporation Modeling non-deterministic priority queues for efficient model checking
US7899501B2 (en) * 2008-03-31 2011-03-01 Denso International America, Inc. Auxiliary power management method for cellular based device
EP2294767A2 (de) * 2008-04-09 2011-03-16 Nxp B.V. Elektronische vorrichtung und verfahren zum steuern einer elektronischen vorrichtung
US8019922B2 (en) * 2008-10-21 2011-09-13 International Business Machines Corporation Interruption facility for adjunct processor queues
US8402190B2 (en) 2008-12-02 2013-03-19 International Business Machines Corporation Network adaptor optimization and interrupt reduction
US20100138567A1 (en) * 2008-12-02 2010-06-03 International Business Machines Corporation Apparatus, system, and method for transparent ethernet link pairing
US11645154B2 (en) 2021-06-08 2023-05-09 International Business Machines Corporation Enhanced recovery from externally initiated adjunct processor queue reset
US11556345B2 (en) 2021-06-08 2023-01-17 International Business Machines Corporation Detecting and recovering lost adjunct processor messages

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5220593A (en) 1990-10-24 1993-06-15 Gte Mobile Communications Service Corporation Cellular radiotelephone credit card paystation method
US5367643A (en) 1991-02-06 1994-11-22 International Business Machines Corporation Generic high bandwidth adapter having data packet memory configured in three level hierarchy for temporary storage of variable length data packets
US5448564A (en) * 1994-01-31 1995-09-05 Advanced Micro Devices, Inc. Modular architecture for fast-packet network
US5761427A (en) * 1994-12-28 1998-06-02 Digital Equipment Corporation Method and apparatus for updating host memory in an adapter to minimize host CPU overhead in servicing an interrupt
US6032179A (en) * 1996-08-14 2000-02-29 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Computer system with a network interface which multiplexes a set of registers among several transmit and receive queues
US6031843A (en) * 1996-11-21 2000-02-29 Alcatel Data Networks Inc. Digital communications switching fabric
US6249885B1 (en) 1997-05-13 2001-06-19 Karl S. Johnson Method for managing environmental conditions of a distributed processor system
US6256685B1 (en) * 1998-11-23 2001-07-03 Adaptec, Inc. Delay data block release system in a disk drive
US6115779A (en) * 1999-01-21 2000-09-05 Advanced Micro Devices, Inc. Interrupt management system having batch mechanism for handling interrupt events
US6351785B1 (en) * 1999-01-26 2002-02-26 3Com Corporation Interrupt optimization using varying quantity threshold

Also Published As

Publication number Publication date
US7177963B2 (en) 2007-02-13
EP1335293B1 (de) 2006-12-06
EP1335293A1 (de) 2003-08-13
DE60310146D1 (de) 2007-01-18
US20030149814A1 (en) 2003-08-07

Similar Documents

Publication Publication Date Title
DE60310146T2 (de) System und Methode zur Überwachung, mit geringer Zusatzinformation, des Leerzustandes der Senderwarteschlange
DE69733602T2 (de) Verfahren zur Unterbrechungsbearbeitung in einer Hochgeschwindigkeits-E/A-Steuervorrichtung
DE3546683C3 (de) Verfahren zum Betreiben einer Datenverarbeitungsanlage
DE69636547T2 (de) Integrierter Repeater
DE3803326C2 (de)
DE2953444C2 (de) Anordnung und Verfahren für ein digitales Datenübertragungsnetzwerk
DE60102496T2 (de) System und Verfahren zum Austausch von Netzmangement-daten
DE69633821T2 (de) Verfahren und vorrichtung in einem netzadapter zur automatischen sendewiederholung von paketen
DE69533680T2 (de) Verfahren und Vorrichtung zur dynamischen Bestimmung und Zuteilung von Zugriffsguoten für ein gemeinsames Betriebsmittel
DE602005004334T2 (de) Nms zur Verarbeitung von Multi-Server Ereignissen
DE112019002669T5 (de) Datenverkehrsgestaltung auf plca-fähigen 10spe-netzwerken
DE102007037092A1 (de) Zeitsynchronisation für netzwerkbewusste Vorrichtungen
DE60122085T2 (de) Datenverarbeitungsgerät für serielles Kommunikationssystem
DE102006019839A1 (de) Zeitbewusste Systeme
DE102006058818A1 (de) Vorrichtung und Verfahren zur Umwandlung von Textmitteilungen
DE10338741A1 (de) Verfahren und Vorrichtung zum Anzeigen von Meßdaten von heterogenen Meßquellen
DE69931896T2 (de) Fairness-schema für eine serielle schnittstelle
DE60109060T2 (de) Interkommunikationsvorprozessor
DE102012224362B4 (de) Anpassung einer Testhäufigkeit für die Ressourcenauslastung
DE112011105003B4 (de) Sendevorrichtung, Empfangsvorrichtung, Kommunikationsvorrichtung, Kommunikationssystem und Sendeverfahren
DE60120532T2 (de) Verfahren und Vorrichtung zum Sammeln von statistischen Daten in einem Datenkommunikationsnetzwerk
DE10255368A1 (de) Bussystem und Wiederholungsverfahren
DE102011122644A1 (de) Nachrichtenverlustverhinderung unter Verwendung eines Senderpuffers und Verkehrsgestaltung in durch ein Ereignis ausgelösten verteilten eingebetteten Echtzeitsystemen
DE112013000812T5 (de) Variable Bestätigungsrate zum Verringern von Buskonflikt in Gegenwart von Datenübertragungsfehlern
DE3539510C2 (de)

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: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, 80639 M