-
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 200–400 bereit,
die in den 2–4 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 3–4 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 200–400 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 2–4 genannt
sind. Alternativ dazu können die
Funktionen und Schritte in den 2–4 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 2–4 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.