-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung bezieht sich im Allgemeinen auf Computersysteme
und im Besonderen auf ein Computersystem mit niedrigem Energieverbrauch.
-
Hintergrund
der Erfindung
-
In
den vergangenen Jahren wurden so genannte Pervasive Devices (PvDs),
d.h. allgegenwärtige,
in beliebige Alltagsgegenständige
integrierte und mit Netzzugriffsfähigkeit ausgestattete Kleinstrechner
immer beliebter. Die Fähigkeiten
dieser Einheiten zur drahtlosen Kommunikation steigen ebenso wie
die Rechenkomplexität,
die für
bestimmte Aufgaben erforderlich ist. Ein Haupthindernis für den Erfolg
der PvDs besteht im Energieverbrauch, da PvDs üblicherweise batteriebetrieben
sind. Im Allgemeinen hat eine PvD-Batterie eine Lebensdauer, die
von einer Stunde bis hin zu einem Jahr reichen kann, abhängig von
der Nutzung des PvD. Wenn der PvD für die Spracherkennung und/oder
die Unterstützung
von Hochgeschwindigkeits-Funkverbindungen verwendet wird, lässt sich
ein deutlicher Anstieg des Energieverbrauchs nicht vermeiden. Der
Grund hierfür
liegt darin, dass zur Unterstützung
der Millionen Anweisungen pro Sekunde (Million Instructions Per
Second, MIPS), die für
derartige Aufgaben erforderlich sind, Verarbeitungseinheiten mit
einer mittleren bis hohen Leistungsfähigkeit benötigt werden. Leider sinkt mit zunehmender
Leistung jedoch der Energienutzungsgrad. Im Folgenden bezieht sich
der Begriff „Energienutzungsgrad" auf die Einheit „Joule
pro Aufgabe" (Joules
Per Task, JPT) (und andere gleichwertige Einheiten).
-
Trotz
der hohen Leistungsfähigkeit
und der komplexen Aufgaben, die derzeitige PvDs ausführen können, ist
ein üblicher
PvD überwiegend
mit der Ausführung
einfacher Aufgaben mit geringen Leistungsanforderungen beschäftigt, z.B.
mit dem Aktualisieren des Zeitregisters, dem regelmäßigen Austausch
von Standortinformationen mit der Funk-Basisstation, dem Messen
der Umgebungstemperatur, dem Protokollieren einer GPS-Standortmarke, dem
Abrufen eines Adressbucheintrags, dem Aktualisieren des Bildschirmpuffers,
dem Erkennen einer Tastatureingabe usw. Die Ausführung derartiger einfacher
Aufgaben durch einen Hochleistungsprozessor ist unter JPT-Gesichtspunkten betrachtet äußerst unwirtschaftlich.
-
Aus
diesem Grund gab es eine Reihe von Versuchen, den energiebewussten
Betrieb von Verarbeitungseinheiten zu erreichen. So haben einige
Prozessorhersteller (siehe beispielsweise T. R. Halfhill, „Transmeta
Breaks x86 Low-Power Barrier",
Microprozessor Report, S. 1, Feb. 2000; sowie S. Liebson, „Xscale (StrongARM-2)
Muscles In", Microprozessor
Report, S. 1, Feb. 2000) z.B. Verarbeitungseinheiten mit einem höheren Energienutzungsgrad
hergestellt, bei denen der Energieverbrauch pro Zyklus angepasst
werden kann, indem Versorgungsspannung und Frequenz gleichzeitig
geändert
werden, was auch als Spannungsskalierung bekannt ist (siehe z.B.
Brodersen et. al., „Low
Power Digital CMOS Design",
Kluwer Academic Publishers, 1995). Allerdings gibt es Grenzen dafür, wie langsam
diese Verarbeitungseinheiten betrieben werden können bzw. wie weit die Versorgungsspannung
abgesenkt werden kann. Daraus ergibt sich, dass diese Verarbeitungseinheiten
selbst dann, wenn sie überwiegend
zur Ausführung
einfacher Aufgaben mit geringen Leistungsanforderungen verwendet
würden,
immer noch erheblich mehr Energie verbrauchen würden als Verarbeitungseinheiten,
die speziell für
die Ausführung
derartiger einfacher Aufgaben entwickelt worden sind.
-
Daneben
haben einige Hersteller von Mobiltelefonen und tragbaren Funkgeräten (siehe
z.B. US-Patentschrift 5 487 181 und US-Patentschrift 5 058 203)
die Verwendung anwendungsspezifischer integrierter Schaltungen (Application
Specific Integrated Circuits, ASIC) mit einem hohen Energienutzungsgrad
vorgeschlagen, um den Hauptprozessor mit dem geringeren Energienutzungsgrad
bei der Ausführung
häufig
auftretender und routinemäßiger Funktionen
zu entlasten. Allerdings eignet sich dieser Ansatz zur Verminderung des
Energieverbrauchs nicht für
eine allgemeinere und besser konfigurierbare Rechenplattform, die
dem Benutzer ein höheres
Maß an
Flexibilität
bereitstellen soll. Bei einem hochgradig flexiblen Rechnersystem
kann der Benutzer die Funktionalität ändern und neue Funktionen mit
geringem Aufwand installieren (z.B. das Desktop-Benutzer-Paradigma).
Die vorgeschlagenen herkömmlichen
Lösungen
sind keine flexiblen Systeme. Vielmehr handelt es sich um Systeme
mit einer spezifischen und beschränkten Funktionalität.
-
US-Patentschrift
5142684A beschreibt eine Mikroprozessor-gesteuerte Einheit mit zwei Mikroprozessoren,
wobei der eine Prozessor einen niedrigen Energieverbrauch und eine
geringe Leistung hat und Hintergrundaufgaben ausführt, während der
andere Prozessor einen hohen Energieverbrauch und eine hohe Leistung
hat und rechenintensive Aufgaben im Vordergrund ausführt. US-Patentschrift
5 790 817A beschreibt eine Mehrprozessorarchitektur, bei der eine
Mikro-Ablaufsteuerung eine Anzahl von digitalen Signalprozessoren (DSPs)
und/oder Recheneinheiten auf eine Art und Weise steuert, dass Rechendurchsatz
und Energieverbrauch je nach ausgeführter Anwendung in einem ausgewogenen
Verhältnis
zueinander gehalten werden.
-
Somit
besteht nach wie vor ein Bedarf nach einer allgemeinen, konfigurierbaren
Rechenplattform mit einem niedrigen Energieverbrauch unabhängig von
den Anforderungen der Benutzer an die Systemfunktionalität, die neuen
Anwendungscode zur Überprüfung und
späteren
Ausführung
mit dem höchstmöglichen
Energienutzungsgrad herunterladen kann.
-
Beschreibung
der Erfindung
-
Entsprechend
stellt die vorliegende Erfindung einen geringeren Energieverbrauch
bei allgemeinen und in hohem Maße
konfigurierbaren Rechnersystemen bereit. Beispiele für einige
der Ziel-Rechensysteme, die aus der Erfindung Nutzen ziehen könnten, sind
z.B. persönliche
digitale Assistenten (PDAs), Computer im Westentaschenformat (Handheld-Computer),
Taschencomputer, tragbare Telefone, Laptop-Computer, am Körper tragbare
Rechner usw. Außerdem
ist die vorliegende Erfindung insbesondere anwendbar auf Rechnersysteme,
die für
ein hohes Maß an
Benutzerflexibilität
ausgelegt sind (z.B. Systeme, bei denen der Benutzer neue Anwendungen
herunterladen kann, seine eigenen Anwendungen erstellen und/oder
das System nach seinen Bedürfnissen
anpassen kann).
-
Gemäß einem
ersten Aspekt der vorliegenden Erfindung wird ein Computersystem
bereitgestellt. Das Computersystem beinhaltet mindestens zwei Verarbeitungseinheiten,
die unterschiedliche Energienutzungsgrade haben und so gestaltet
sind, dass sie mindestens in der Lage sind, Aufgaben ausgehend von
den Verarbeitungsanforderungen der Aufgaben und einer entsprechenden
Verarbeitungskapazität
auszuführen.
Eine Ablaufsteuerung wird bereitgestellt, die so gestaltet ist,
dass sie eine gegebene Aufgabe, die zur Ausführung durch eine der mindestens
zwei Verarbeitungseinheiten vorgesehen ist, so einplant, dass sie
die geringste Menge an Energie verbraucht, und dass sie die gegebene
Aufgabe, die zur Ausführung
durch eine andere der mindestens zwei Verarbeitungseinheiten vorgesehen
ist, auf einen anderen Zeitpunkt verlegt, wenn ermittelt wird, dass
die eine der mindestens zwei Verarbeitungseinheiten ausgehend von
den Verarbeitungsanforderungen der gegebenen Aufgabe und der entsprechenden
Verarbeitungskapazität
nicht in der Lage ist, die Ausführung
der gegebenen Aufgabe zu übernehmen.
-
Vorzugsweise
umfassen die Verarbeitungsanforderungen einen Endzeitpunkt, an dem
die gegebene Aufgabe abgeschlossen sein muss. Noch deutlicherer
Vorzug wird einer Ablaufsteuerung gegeben, die eine Funktion ist,
welche im Rahmen einer anderen Hardwarekomponente ausgeführt ist
als die mindestens zwei Verarbeitungseinheiten. Bei einer bevorzugten
Ausführungsform
beinhaltet eine der mindestens zwei Verarbeitungseinheiten die Ablaufsteuerung.
Idealerweise ist die Ablaufsteuerung weiterhin so gestaltet, dass
sie Unterbrechungen von den mindestens zwei Verarbeitungseinheiten
und Peripheriegeräten
abfängt.
-
Gemäß einer
bevorzugten Ausführungsform
der vorliegenden Erfindung teilen sich die mindestens zwei Verarbeitungseinheiten
Speicherplatz. Idealerweise teilen sich die mindestens zwei Verarbeitungseinheiten
Ein-/Ausgabeplatz. Noch besser ist es, wenn sich die mindestens
zwei Verarbeitungseinheiten Ein-/Ausgabeplatz teilen und wenn sich
die Ablaufsteuerung und die mindestens zwei Verarbeitungseinheiten
Speicherplatz teilen.
-
Bei
einer bevorzugten Ausführungsform
beinhaltet das Computersystem weiter einen Aufgabenattributspeicher,
der so gestaltet ist, dass er mindestens einige der Verarbeitungsanforderungen
von mindestens einigen der eingeplanten Aufgaben speichert. Bei
einer bevorzugten Ausführungsform
erfolgt die Ermittlung entweder durch die Ablaufsteuerung oder durch
die eine der mindestens zwei Verarbeitungseinheiten. Idealerweise
sind die mindestens zwei Verarbeitungseinheiten weiter so gestaltet,
dass sie die zur Ausführung
anstehenden Aufgaben annehmen oder ablehnen können. Noch besser ist es, wenn
die Verarbeitungsanforderungen eine Verarbeitungskapazität beinhalten,
die für
die Ausführung
der gegebenen Aufgabe notwendig ist.
-
Gemäß einer
bevorzugten Ausführungsform
der vorliegenden Erfindung wird ein Computersystem bereitgestellt.
Das Computersystem beinhaltet eine Vielzahl von Verarbeitungseinheiten.
Eine jede Einheit aus der Vielzahl der Verarbeitungseinheiten ist
so gestaltet, dass sie Aufgaben ausführen kann. Mindestens zwei Einheiten
aus der Vielzahl der Verarbeitungseinheiten haben unterschiedliche
Energienutzungsgrade. Eine Ablaufsteuerung ist so gestaltet, dass
sie eine gegebene Aufgabe, die zur Ausführung durch eine Einheit aus der
Vielzahl der Verarbeitungseinheiten vorgesehen ist, einplant, indem
sie die Vielzahl der Verarbeitungseinheiten so lange in einer partiellen
Reihenfolge des abnehmenden Energienutzungsgrads daraufhin abfragt,
ob diese die Ausführung
der gegebenen Aufgabe annehmen oder ablehnen, bis die gegebene Aufgabe
von der einen Einheit aus der Vielzahl der Verarbeitungseinheiten
angenommen und ausgeführt
und von sämtlichen anderen
Einheiten aus der Vielzahl der Verarbeitungseinheiten abgelehnt
wird.
-
Vorzugsweise
ist die Ablaufsteuerung weiterhin so gestaltet, dass sie eine beliebige
Einheit aus der Vielzahl der Verarbeitungseinheiten, ausgehend von
mindestens einer vorbestimmten Bedingung, aus der partiellen Reihenfolge
ausschließt.
-
Gemäß einer
bevorzugten Ausführungsform
der Erfindung wird ein Computersystem bereitgestellt. Das Computersystem
beinhaltet mindestens zwei Verarbeitungseinheiten, die unterschiedliche
Energienutzungsgrade haben und so gestaltet sind, dass sie eingeplante
Aufgaben ausgehend von den Verarbeitungsanforderungen der eingeplanten
Aufgaben und einer entsprechenden Verarbeitungskapazität annehmen
oder ablehnen können.
Die mindestens zwei Verarbeitungseinheiten sind außerdem so
gestaltet, dass sie mindestens in der Lage sind, die angenommenen
eingeplanten Aufgaben auszuführen.
Eine Ablaufsteuerung ist so gestaltet, dass sie eine gegebene Aufgabe,
die zur Ausführung
durch eine der mindestens zwei Verarbeitungseinheiten vorgesehen
ist, so einplant, dass sie die geringste Menge an Energie verbraucht,
und dass sie die gegebene Aufgabe, die zur Ausführung durch eine andere der
mindestens zwei Verarbeitungseinheiten vorgesehen ist, auf einen
anderen Zeitpunkt verlegt, wenn die eine der mindestens zwei Verarbeitungseinheiten
die Ausführung
der gegebenen Aufgabe ablehnt.
-
Gemäß einer
bevorzugten Ausführungsform
der Erfindung wird ein Computersystem bereitgestellt. Das Computersystem
beinhaltet eine Vielzahl von Verarbeitungseinheiten. Eine jede Einheit
aus der Vielzahl der Verarbeitungseinheiten ist so gestaltet, dass
sie Aufgaben ausführen
kann. Mindestens zwei Einheiten aus der Vielzahl der Verarbeitungseinheiten
haben unterschiedliche Energienutzungsgrade. Eine Tabelle der Prozessorattribute
ist so gestaltet, dass sie Daten zur Verarbeitungskapazität für mindestens
einige Prozessoren aus der Vielzahl der Prozessoren speichert und
die Daten zur Verarbeitungskapazität dynamisch aktualisiert, wenn
sich diese ändern.
Eine Ablaufsteuerung ist so gestaltet, dass sie für eine gegebene
Aufgabe mindestens einige der Daten zur Verarbeitungskapazität aus der
Tabelle der Prozessorattribute abruft und dabei eine partielle und
eine strikte Reihenfolge des abnehmenden Energienutzungsgrads zugrunde
legt, bis sich herausstellt, dass ein Prozessor aus der Vielzahl
der Prozessoren mit Blick auf die Verarbeitungsanforderungen der Aufgabe über eine
angemessene Verarbeitungskapazität
für die
gegebene Aufgabe verfügt.
Die Ablaufsteuerung ist außerdem
so gestaltet, dass sie die gegebene Aufgabe zur Ausführung durch
einen Prozessor aus der Vielzahl der Prozessoren einplant.
-
Geeigneterweise
umfasst das Computersystem darüber
hinaus mindestens einen Funktionsblock, der so gestaltet ist, dass
er mindestens eine einer Unterbrechung zugehörige Funktion ausführt.
-
Vorzugsweise
umfasst das Computersystem weiter mindestens einen Funktionsblock,
der so gestaltet ist, dass er mindestens eine Funktion, die von
einer Aufgabe genutzt wird, ausführt.
-
Kurze Beschreibung
der Zeichnungen
-
Die
vorliegende Erfindung wird nun beispielhaft mit Blick auf ihre bevorzugten
Ausführungsformen
und mit Blick auf die folgenden Zeichnungen beschrieben, wobei:
-
1 ein
Blockschaltbild ist, das ein Computersystem 100 mit einem
niedrigen Energieverbrauch gemäß einer
zur Veranschaulichung dienenden Ausführungsform der Erfindung zeigt;
-
2 eine
Tabelle ist, die eine Liste der Aufgabenattribute gemäß einer
zur Veranschaulichung dienenden Ausführungsform der Erfindung zeigt;
-
3 eine
Tabelle ist, die eine Liste der Prozessorattribute gemäß einer
zur Veranschaulichung dienenden Ausführungsform der Erfindung zeigt;
-
4 ein
Ablaufdiagramm ist, das die Aufgabeneinplanung durch eine Ablaufsteuerungseinheit
SCH gemäß einer
zur Veranschaulichung dienenden Ausführungsform der Erfindung zeigt;
und
-
5 ein
Ablaufdiagramm ist, das die Aufgabenverarbeitung durch Pj (d.h. die Verarbeitungseinheit P1 oder P2) gemäß einer
zur Veranschaulichung dienenden Ausführungsform der Erfindung zeigt.
-
Ausführliche
Beschreibung der vorliegenden Erfindung
-
Die
vorliegende Beschreibung bezieht sich auf ein Computersystem mit
niedrigem Energieverbrauch. Dabei sollte klar sein, dass die vorliegende
Erfindung in verschiedenen Formen von Hardware, Software, Firmware,
Spezial-Verarbeitungseinheiten
oder auch einer Kombination daraus realisiert werden kann. Vorzugsweise
wird die vorliegende Erfindung als eine Kombination sowohl von Hardware
als auch von Software realisiert. Die Software kann als ein Anwendungsprogramm
realisiert sein, das in greifbarer Form auf einer Programmspeichereinheit
enthalten ist. Das Anwendungsprogramm kann in eine Maschine hinaufgeladen
und von dieser ausgeführt
werden, die eine beliebige geeignete Architektur aufweist. Vorzugsweise
ist die Maschine auf einer Computerplattform realisiert, die über Hardware
wie beispielsweise Zentraleinheiten (CPUs), einen Direktzugriffsspeicher
(RAM) und eine oder mehrere Ein-/Ausgabeschnittstelle(n) (E/A-Schnittstelle(n)) verfügt. Die
Computerplattform kann außerdem
ein Betriebssystem und/oder Mikrobefehlscode enthalten. Die verschiedenen
hier beschriebenen Prozesse und Funktionen können entweder Teil des Mikrobefehlscodes oder
des vom Betriebssystem ausgeführten
Anwendungsprogramms (oder auch einer Kombination beider Elemente)
sein. Darüber
hinaus können
verschiedene andere Peripheriegeräte mit der Computerplattform
verbunden sein, wie beispielsweise eine zusätzliche Datenspeichereinheit
und eine Druckereinheit.
-
Da
einige der hier zugehörigen
und in den beigefügten
Figuren abgebildeten Systemkomponenten und Verfahrensschritte in Software
realisiert sein können,
versteht es sich ebenfalls, dass die tatsächlichen Verbindungen zwischen
den Systemkomponenten (oder Verfahrensschritten) je nach Programmierung
der vorliegenden Erfindung unterschiedlich ausfallen können.
-
Zum
besseren Verständnis
der vorliegenden Erfindung folgt nun eine Definition der verwendeten
Begriffe. Der Begriff „Verarbeitungseinheit" wird als ein Mikroprozessor,
ein Mikrocontroller, ein Prozessor für die digitale Signalverarbeitung
(DSP) oder eine andere Einheit definiert, die in der Lage ist, Befehle
auszuführen. Dabei
kann auch eine beliebige Kombination der oben genannten Elemente
verwendet werden. Daneben wird der Begriff „Funktionsblock" als ein Schaltkreis
für die
Verarbeitung digitaler oder digitaler und analoger Signale definiert,
der in der Lage ist, eine oder mehrere spezifische Funktionen auszuführen, ohne
jedoch Befehle ausführen
zu können;
außerdem
kann die Funktionalität
eines Funktionsblocks nicht geändert
werden. Mit Blick auf die Erfindung werden eine anwendungsspezifische
integrierte Schaltung (ASIC), eine Schaltung für schnelle Fourier-Transformationen
(Fast Fourier Transformation, FFT) und ein Schaltnetz als Funktionsblöcke betrachtet.
Dabei ist zu beachten, dass eine Verarbeitungseinheit keine Funktionseinheit
und eine Funktionseinheit keine Verarbeitungseinheit sein kann.
Weiterhin wird der Begriff „Aufgabe" als ein Codeteil
definiert, der entweder unabhängig
und gleichzeitig mit anderen Aufgaben oder aber separat ausgeführt werden
kann. Unter Zugrundelegung dieser Definition können z.B. Anwendungen, Teilprozesse,
Programme für
die Unterbrechungsbehandlung und der Betriebssystemkern als Aufgaben
betrachtet werden.
-
1 ist
ein Blockschaltbild, das ein Computersystem 100 mit niedrigem
Energieverbrauch gemäß einer
zur Veranschaulichung dienenden Ausführungsform der Erfindung zeigt.
Das Computersystem 100 beinhaltet zwei Verarbeitungseinheiten
P1 und P2 (im Folgenden
allgemein als Verarbeitungseinheit Pj bezeichnet) sowie
eine Ablaufsteuerung SCH. P1 und P2 führen
Aufgaben aus. P1 ist die Verarbeitungseinheit
mit dem besten Energienutzungsgrad, hat jedoch eine geringe Rechenleistung.
P2 ist die Verarbeitungseinheit mit dem schlechtesten
Energienutzungsgrad und der besten Rechenleistung. Alle Unterbrechungen
vom E/A-Platz und den beiden Verarbeitungseinheiten werden zur SCH
geleitet. Dabei ist MEM der Speicherplatz und E/A der E/A-Platz.
BUSP1, BUSP2, BUSMEM und BUSI/O bezeichnen
den Bus von der Ablaufsteuerung zu P1, den Bus von der Ablaufsteuerung
zu P2, den Speicherbus bzw. den E/A-Bus. BCMEM und
BCI/O sind die Steuereinheiten für den Speicherbus
bzw. den E/A-Bus. Bei einer bevorzugten Ausführungsform der Erfindung arbeiten
die Verarbeitungseinheiten P1 und P2 gleichzeitig, und jede Verarbeitungseinheit
hat ein mehrprogrammfähiges Betriebssystem,
das auf ihr läuft.
-
Während die
SCH in der zur Veranschaulichung dienenden Ausführungsform aus 1 als
ein separater Funktionsblock realisiert ist, sollte klar sein, dass
die Funktionalität
von der SCH auch als Bestandteil anderer Verarbeitungseinheiten
(z.B. P1 und/oder P2),
als Softwareprogramm(e) oder als eine Kombination daraus realisiert
sein kann. So kann die SCH beispielsweise als eine Funktion (Software,
Abfolge von Logikkomponenten usw.) innerhalb einer Hardwarekomponente (z.B.
ein beliebiger Funktionsblock oder eine Verarbeitungseinheit) realisiert
sein.
-
Es
folgt eine kurze Beschreibung des Betriebs des Computersystems 100.
Die SCH fängt
alle Unterbrechungssignale ab, löst
die Unterbrechung in eine Aufgabenkennzahl (Task Identification
Number, TID) auf und verhandelt anschließend mit den Verarbeitungseinheiten
P1 und P2 über die
Ausführung
der Aufgabe, wobei sie diejenige Verarbeitungseinheit mit dem geringen
Energieverbrauch auswählt,
um die Aufgabe auszuführen
und rechtzeitig abzuschließen.
Damit die SCH und Pj eine derartige Verhandlung
führen
können,
sollten bestimmte Merkmale der Aufgabe bekannt sein. Diese Merkmale
und andere aufgabenbezogene Daten werden in einer Liste der Aufgabenattribute
bereitgestellt. 2 ist eine Tabelle, welche eine
Liste der Aufgabenattribute gemäß einer
Ausführungsform
der vorliegenden Erfindung zeigt. Es ist Aufgabe der SCH, bestimmte Aufgabenattribute
zur Unterbrechungszeit abzurufen. Zur Veranschaulichung dienende
Aufgabenattribute werden weiter unten mit Blick auf 2 ausführlicher
gezeigt und beschrieben.
-
TID
ist die Aufgabenkennzahl der anstehenden Aufgabe. NP ist die Anzahl
der Verarbeitungseinheiten, welche die Aufgabe ausführen können. PTID,1 ist die Kennung der Verarbeitungseinheit
mit dem besten Energienutzungsgrad, welche die Aufgabe ausführen kann.
CPSTID,1 ist die Anzahl der Zyklen, welche
die Verarbeitungseinheit im ungünstigsten
Falle benötigt,
um die Aufgabe rechtzeitig auszuführen. ADDRTID,1 ist
die Adresse der Speicherstelle der Aufgabe. PTID,1 ist
die Verarbeitungseinheit mit dem i-besten Energienutzungsgrad, welche
die Aufgabe ausführen
kann, wobei 1 ≤ i ≤ NP ist.
-
CPSTID,i ist die Anzahl der Zyklen, welche die
Verarbeitungseinheit im ungünstigen
Falle benötigt,
um die Aufgabe rechtzeitig auszuführen. ADDRTID,i ist
die Adresse der Speicherstelle der Aufgabe. PTID,NP ist
die Verarbeitungseinheit mit dem niedrigsten Energienutzungsgrad
der NP Verarbeitungseinheiten, welche die Aufgabe ausführen können. CPSTID,NP ist die Anzahl der Zyklen, welche
die Verarbeitungseinheit im ungünstigen
Falle benötigt,
um die Aufgabe rechtzeitig auszuführen. ADDRTID,NP ist
die Adresse der Speicherstelle der Aufgabe. Dabei ist zu beachten,
dass ADDR grundsätzlich
für jede
Verarbeitungseinheit verschieden sein kann, wenn die Verarbeitungseinheiten
nicht die gleiche Architektur aufweisen. So ist es z.B. nicht ungewöhnlich,
dass zwei verschiedene Verarbeitungseinheiten auch unterschiedliche
Befehlssätze
haben und/oder dass eine Verarbeitungseinheit eine 32-Bit-Architektur
und die andere eine 8-Bit-Architektur aufweist.
-
Ausdrücklich wird
darauf verwiesen, dass der Wert CPS den ungünstigsten Fall angibt. Als
Beispiel soll der Benutzer eine Anwendung DateBook starten, die
eine Anzahl von DateBook-Einträgen aufführt. Die entsprechende
Aufgabe ist während
etwa einer Sekunde aktiv und befindet sich danach im Ruhemodus,
und die DateBook-Liste mit den Einträgen wird nun auf dem Bildschirm
angezeigt. Danach wählt
der Benutzer einen Eintrag aus, zu dem er ausführlichere Informationen wünscht. Die
Aufgabe ruft daraufhin Daten aus der Datenbank ab, zeigt die Daten
auf dem Bildschirm an und kehrt in den Ruhemodus zurück. Mit
Blick auf eine Aufgabe kann CPS daher folgendermaßen beschrieben
werden: CPS steht dafür,
welche Verarbeitungsgeschwindigkeit die Verarbeitungseinheit mit
Blick auf die Aufgabe benötigt,
wobei diese auf die Eingabeaufforderung des Benutzers reagiert,
die Daten aus der Datenbank abruft und sie schließlich auf
dem Bildschirm anzeigt. Den größten Teil
der Zeit befindet sich die Aufgabe jedoch im Ruhemodus.
-
Die
SCH verhandelt mit den Verarbeitungseinheiten P1 und
P2 in der Reihenfolge, in der die Verarbeitungseinheiten
in der Attributliste aufgeführt
sind. Somit verhandelt die SCH mit Blick auf die zur Veranschaulichung
dienende Liste der Aufgabeattribute aus 2 mit der
Verarbeitungseinheit mit dem besten Energienutzungsgrad, PTID,1. PTID,1 ermittelt
daraufhin umgehend, ob sie angesichts der Beschränkungen für die erforderlichen Zyklen
pro Sekunde in der Lage ist, die fragliche Aufgabe zu verarbeiten.
PTID,1 nimmt die Aufgabe dann entweder an
oder lehnt sie ab. Wenn PTID,1 die Aufgabe
ablehnt oder nach einer kurzen Zeit feststellt, dass sie nicht in
der Lage sein wird, die Aufgabe rechtzeitig abzuschließen, unterbricht
sie die SCH. Daraufhin versucht es die SCH mit der nächsten Verarbeitungseinheit
in der Attributliste (d.h., sie verhandelt mit dieser), bis eine
der aufgeführten
Verarbeitungseinheiten die Aufgabe annimmt oder alle aufgeführten Verarbeitungseinheiten
durchprobiert wurden.
-
Dabei
sollte klar sein, dass die Liste der Aufgabenattribute ermöglichen
soll, die Annahme/Ablehnung auf der Grundlage der Verarbeitungsanforderungen
einer gegebenen auszuführenden
Aufgabe sowie der Verarbeitungskapazität des Prozessors, der die gegebene
Aufgabe ausführen
soll, zu ermitteln. Zu den Verarbeitungsanforderungen können z.B.
eine Mindestverarbeitungskapazität,
die für
die Ausführung
der Aufgabe notwendig ist, ein Endzeitpunkt, bis zu dem die Aufgabe
ausgeführt
sein muss, eine spezifische Bitbreite des Datenpfads usw. gehören. Die
Verarbeitungskapazität
kann eine momentan verfügbare
Verarbeitungskapazität, eine
momentane Bitbreite des Datenpfads usw. beinhalten.
-
Weiterhin
sollte klar sein, dass die eigentliche Entscheidung darüber, ob
ein gegebener Prozessor eine gegebene Aufgabe ausführen kann,
durch den Prozessor, der gefragt wird, ob er die Aufgabe annehmen
kann, oder aber durch die SCH getroffen werden kann. Eine derartige
Entscheidung sollte vorzugsweise auf der Grundlage der Verarbeitungsanforderungen
der Aufgabe und der Verarbeitungskapazitäten des Prozessors erfolgen,
wobei die Verarbeitungsanforderungen in der Liste der Aufgabenattribute
beschrieben sein können und
wobei die Verarbeitungskapazitäten
entweder ausschließlich
für den
Prozessor oder, über
eine gemeinsam genutzte Liste der Prozessorattribute, auch für die Ablaufsteuerung
zugänglich
sein können. 3 ist eine
Tabelle, die eine Liste der Prozessorattribute zeigt, welche für den Zugriff
durch die SCH geeignet ist. In 3 ist N
ist die Anzahl der Verarbeitungseinheiten und CPSj die
momentan verfügbare
maximale Verarbeitungskapazität
des Prozessors j, wobei 1 ≤ j ≤ N ist. Die
Liste der Prozessorattribute muss von den betreffenden Prozessoren
zu dem Zeitpunkt dynamisch aktualisiert werden, zu dem die Prozessoren
entweder eine neue Aufgabe annehmen oder eine Aufgabe beenden, so
dass die Werte in der Attributliste eine nahezu ständig aktuelle
Momentaufnahme der Verarbeitungskapazitäten der betreffenden Prozessoren
darstellen. Selbstverständlich
können
einige der Verarbeitungsanforderungen und/oder Verarbeitungskapazitäten für eine künftige Verwendung
auch in anderen Speicherstrukturen als den Listen für die Aufgaben-
und Prozessorattribute gespeichert werden.
-
Zum
besseren Verständnis
sollen für
Unterbrechungen die folgenden Voraussetzungen/Bedingungen gelten.
Die SCH verarbeitet jeweils eine E/A-Unterbrechung. Eine E/A-Unterbrechung kann
weder Vorrang vor der Verarbeitung einer anderen E/A-Unterbrechung
haben, noch kann eine E/A-Unterbrechung
Vorrang vor der Verarbeitung einer Prozessorunterbrechung haben.
E/A-Unterbrechungen werden in der Reihenfolge ihres Empfangs in
die Warteschlange gestellt. Prozessorunterbrechungen haben Vorrang
vor E/A-Unterbrechungen.
-
4 ist
ein Ablaufdiagramm, das die Aufgabeneinplanung durch die SCH gemäß einer
Ausführungsform
der vorliegenden Erfindung zeigt. Wenn eine Unterbrechung empfangen
wurde, wird zunächst
ihre Kategorie ermittelt (Schritt 310). Wenn es sich um
eine E/A-Unterbrechung handelt, wird sie unter Berücksichtigung der
Eingangsreihenfolge in die Warteschlange gestellt (Schritt 315).
-
Danach
wird ermittelt, ob sich die SCH im Ruhezustand befindet (Schritt 316).
Wenn dies nicht der Fall ist (d.h., wenn sich die SCH im Belegtzustand
befindet), wechselt die SCH in den Wartemodus (Schritt 317). Im
Wartemodus kann die SCH keine anderen E/A-Unterbrechungen abarbeiten,
sie lässt
jedoch zu, dass die E/A-Unterbrechungen, wie oben mit Blick auf
Schritt 315 beschrieben, in die Warteschlange gestellt
werden. Wenn sich die SCH jedoch im Ruhezustand befindet, fährt sie
anschließend
fort, indem sie die nächste
Unterbrechung in der Warteschlange abruft (Schritt 318),
bei der es sich standardmäßig um die
gerade eben empfangene E/A-Unterbrechung handelt. Als Nächstes wechselt
sie in den Belegtzustand (Schritt 319).
-
Die
Unterbrechung wird in eine Adresse der Aufgabenattributliste aufgelöst, indem
die SCH eine Tabelle der Unterbrechungsvektoren abfragt (Schritt 320).
Anschließend
werden die Aufgabenattribute für
die Aufgabe abgerufen (Schritt 325). Im Anschluss daran
gibt die SCH eine Anforderung an die erste in der Attributliste
aufgeführte
Verarbeitungseinheit aus, die Aufgabe (mit Aufgabenkennzahl TID),
welche zu der gegenwärtigen
E/A-Unterbrechung zugehörig
ist, anzunehmen oder abzulehnen (Schritt 330). Während der
Schritte 319 bis 330 befindet sich die SCH im Belegtzustand. Nachdem
Schritt 330 durchgeführt
wurde, wechselt die SCH in den Wartemodus (Schritt 317).
Während
sich die SCH im Wartemodus befindet, wartet sie im Wesentlichen
darauf, dass die derzeitige Verarbeitungseinheit antwortet, ob sie
die Aufgabe (mit Aufgabenkennzahl TID), welche zu der gegenwärtigen E/A-Unterbrechung
zugehörig
ist, annehmen oder ablehnen wird.
-
Die
derzeitige Verarbeitungseinheit antwortet der SCH, indem sie eine
Prozessorunterbrechung erzeugt, die wie oben erwähnt Vorrang gegenüber Unterbrechungen
des E/A-Typs hat. Wenn also ermittelt wird, dass die empfangene
Unterbrechung in die Kategorie der Prozessorunterbrechungen fällt (Schritt 310),
wird die Prozessorunterbrechung sofort verarbeitet. Die SCH fragt
die Verarbeitungseinheit PTID,i auf die
Unterbrechungsfunktion IF_Accept ab (Schritt 340). Eine
Unterbrechungsfunktion IF_Accept gibt einen Booleschen Wert „wahr" zurück, wenn
die Verarbeitungseinheit die Aufgabe angenommen hat, und einen Booleschen
Wert „falsch", wenn die Verarbeitungseinheit
die Aufgabe abgelehnt hat. Daraufhin wird ermittelt, ob der von
der Unterbrechungsfunktion IF_Accept zurückgegebene Wert „wahr" oder „falsch" lautet.
-
Wenn
IF_Accept den Wert „wahr" liefert, kehrt die
SCH in den Ruhezustand zurück
(Schritt 352). Als Nächstes
prüft die
SCH, ob sich in der Schlange noch weitere E/A-Unterbrechungen befinden
(Schritt 360). Wenn sich in der Schlange keine weiteren
Unterbrechungen mehr befinden, wechselt die SCH in den Bereitschaftsmodus,
in dem sie einfach auf eine weitere E/A-Unterbrechung wartet (Schritt 361).
Falls andernfalls weitere Unterbrechungen vorhanden sein sollten,
kehrt das Verfahren zu Schritt 318 zurück, in dem die nächste E/A-Unterbrechung in
der Warteschlange abgerufen wird.
-
Wenn
IF_Accept den Wert „falsch" liefert, wird der
Wert von i um Eins erhöht
(Schritt 355), und das Verfahren kehrt zu Schritt 330 zurück (so dass
die SCH eine Anforderung an die nächste in der Attributliste aufgeführte Verarbeitungseinheit
ausgeben kann, die Aufgabe (mit Aufgabenkennzahl TID), die zu der
gegenwärtigen
E/A-Unterbrechung zugehörig
ist, anzunehmen oder abzulehnen).
-
5 ist
ein Ablaufdiagramm, das die Aufgabenverarbeitung durch Pj (d.h. die Verarbeitungseinheit P1 oder P2) darstellt.
Zum besseren Verständnis
sollen bestimmte Voraussetzungen gegeben sein. Eine Verarbeitungseinheit
kann auf zwei Arten unterbrochen werden: durch die SCH und durch
den lokalen BS-Zeitgeber
des Prozessors. Eine Unterbrechung von der SCH wird immer sofort
abgearbeitet. Die Zeitgeberunterbrechung wird ebenfalls immer sofort
abgearbeitet, es sei denn, die Verarbeitungseinheit Pj arbeitet
gerade eine Unterbrechung von der SCH ab. Die Abarbeitungszeit für eine SCH-Unterbrechung
ist sehr viel kürzer
als das Intervall T für
eine Unterbrechung des BS-Hauptzeitgebers. BS-Code wird lokal gespeichert,
d.h., das BS befindet sich nicht in dem gemeinsam genutzten Speicherplatz
MEM.
-
Bei
einem erneuten Blick auf 4 wird deutlich, dass die SCH
jeweils eine E/A-Unterbrechungsquelle verarbeitet und dass die SCH
als Folge der Unterbrechung nacheinander mit einer oder mehreren
Verarbeitungseinheiten verhandelt. Auf diese Weise verhandelt die
SCH jeweils mit einer Verarbeitungseinheit, und somit wird zu jedem
beliebigen Zeitpunkt höchstens
eine Unterbrechung von der SCH durch eine der Verarbeitungseinheiten
abgearbeitet. Eine Unterbrechung von der SCH kann nie in einer Verarbeitungseinheit
in die Warteschlange gestellt werden, da die SCH so lange keine
weitere Unterbrechung ausgeben kann, bis eine Verarbeitungseinheit
die gegenwärtige
Unterbrechung von der SCH vollständig
abgearbeitet hat.
-
Im
Folgenden wird eine kurze Beschreibung der Aufgabenzulassung in
Pj gegeben, gefolgt von einer ausführlicheren
Beschreibung mit Bezug auf 5. Wenn
die Verarbeitungseinheit Pj eine Unterbrechung empfängt, ermittelt
sie zunächst
den Ursprung der Unterbrechung (d.h., ob diese von der SCH oder
vom lokalen BS-Zeitgeber der Verarbeitungseinheit Pj kommt).
Wenn es sich bei der Unterbrechung um die SCH-Unterbrechung handelt,
speichert die Verarbeitungseinheit den gegenwärtigen Zustand im lokalen Speicher
und arbeitet die Unterbrechung ab. Somit kann eine Unterbrechung
von der SCH Vorrang vor einer beliebigen anderen derzeit ausgeführten Aufgabe
haben. Nach Abschluss der SCH- Unterbrechungsaufgabe
fährt die
Verarbeitungseinheit Pj mit der Ausführung der
zurückgestellten
Aufgabe fort. Während
die Verarbeitungseinheit Pj eine SCH-Unterbrechung
abarbeitet, sind Unterbrechungen deaktiviert. Sollte eine Zeitgeberunterbrechung auftreten,
während
die SCH-Unterbrechung
abgearbeitet wird, wird die Zeitgeberunterbrechung erst dann abgearbeitet,
wenn die SCH-Unterbrechung
abgeschlossen wurde.
-
Mit
erneutem Blick kauf 5 ermittelt die Verarbeitungseinheit
Pj, wenn sie eine Unterbrechung empfängt, zunächst den
Ursprung der Unterbrechung (Schritt 410). Beim Empfang
einer SCH-Unterbrechung deaktiviert die Verarbeitungseinheit Pj Unterbrechungen und speichert den gegenwärtigen Programmkontext (Schritt 415).
Danach ruft die Verarbeitungseinheit Pj TID-Attribute
von Belang ab, die für
die TID-Zulassungsprüfung
benötigt
werden (Schritt 420). Die TID-Attribute von Belang beinhalten
die der Pj zugehörige CPS-Verarbeitungsanforderung. Die Adresse
der Aufgabenattributtabelle kann von der SCH über einen gemeinsam genutzten
Puffer an die Verarbeitungseinheit weitergeleitet werden (z.B. in
Schritt 325 aus 4). Anschließend wird die TID-Zulassungsprüfung durchgeführt (Schritt 425).
Die TID-Zulassungsprüfung kann
beispielsweise durch die Verwendung von Gleichung 1 erfolgen, die
weiter unten ausführlich
beschrieben wird. Im Anschluss daran wird ermittelt, ob das Ergebnis
der Zulassungsprüfung
eine Ablehnung oder eine Annahme der TID ist (Schritt 430).
Bei einer Annahme wird die TID registriert, der Aufgabenzeiger ADDR
wird in die Zeitgeberkette eingefügt, und der TID wird eine Zeitscheibe
zugewiesen (Schritt 435), und das Verfahren kehrt mit Schritt 440 fort.
Andernfalls fährt
das Verfahren direkt mit Schritt 440 fort.
-
In
Schritt 440 wird die SCH über das Ergebnis der Zulassungsprüfung (d.h.
die Entscheidung der Verarbeitungseinheit Pj)
unterrichtet, indem die SCH unterbrochen und das Boolesche Ergebnis
in einen gemeinsam genutzten Puffer gestellt wird, auf den die SCH
zugreifen kann. Danach aktiviert die Verarbeitungseinheit Pj wieder Unterbrechungen und stellt den Aufgabenkontext
wieder her (Schritt 445).
-
Mit
Bezug auf die Zuweisung einer Zeitscheibe in Schritt 435 erfolgt
deren Berechnung auf der Grundlage der erforderlichen Rechenkapazität (CPS)
für die
Aufgabe (in Schritt 420 abgerufen) sowie der derzeitigen Auslastung
der Verarbeitungseinheit Pj. Zur besseren
Veranschaulichung wird eine Art der Zeitscheibenberechnung in Gleichung
2 gezeigt, die weiter unten beschrieben wird.
-
Wenn
in Schritt 410 ermittelt wird, dass es sich bei der empfangenen
Unterbrechung um eine Zeitgeberunterbrechung handelt, wird der gegenwärtige Aufgabenkontext
gespeichert (Schritt 450), die nächste Aufgabe in der Zeitgeberkette
wird geladen (Schritt 475), und der lokale Zeitgeber wird
so programmiert, dass er gemäß der Zeitscheibe,
die der nächsten
Aufgabe zugewiesen wurde, unterbricht (Schritt 480). Auf
diese Weise werden die registrierten Aufgaben nacheinander ausgeführt. Wenn
die letzte Aufgabe in der Zeitgeberkette ausgeführt wurde, wird der Zeitgeber
so programmiert, dass er beim nächsten
Hauptzeitgeber-Intervall T, zu dem die Aufgaben in regelmäßigen Abständen zur
Ausführung
geladen werden, unterbricht. Dabei ist zu beachten, dass eine beliebige
registrierte Aufgabe bei Bedarf in einen deaktivierten Modus versetzt
(z.B. wenn der Benutzer eine Anwendung nicht verwendet) und so vorübergehend
aus der Zeitgeberkette herausgenommen werden kann, so dass der Prozessor
möglichst
häufig
in den Schlafmodus wechseln kann, um Energie zu sparen.
-
Mit
Bezug auf die Zulassungsprüfung
aus Schritt 425 soll eine Verarbeitungseinheit Pj betrachtet werden, die gegenwärtig K Aufgaben
ausführt.
Daraufhin soll eine neue Aufgabe TIDK+1 betrachtet
werden, welche die SCH zur Prüfung
an Pj übergibt.
Aus der Liste der Attribute der neuen Aufgaben ist ersichtlich,
dass TIDK+1 eine Rechenkapazität von mindestens
CPSTIDK+1 benötigt. Damit die neue Aufgabe
TIDK+1 auf Pj zugelassen wird,
muss der Term aus Gleichung 1 erfüllt sein, wonach CPSCLK die Taktfrequenz der Verarbeitungseinheit, CPSOS die dem Betriebssystem zugewiesene CPS,
CPSSCH die der SCH-Interaktion zugewiesene CPS (d.h., der
Zulassungsteilprozess nimmt einen Teil dieser Zuweisung für sich in
Anspruch) und CPSTIDK die CPS ist, die der
k-ten Aufgabe zugewiesen ist, die derzeit auf der Pj ausgeführt wird.
Dabei ist zu beachten, dass alle Parameter der Gleichung 1 spezifisch
für Pj sind, und dass das Suffix Pj daher
weggelassen wurde.
-
-
Dabei
ist zu beachten, dass die Ermittlung der für eine Aufgabe erforderlichen
CPS in vielen Fällen
auf der Erfahrung des Programmierers beruht. Eine Art und Weise,
wie die erforderliche CPS für
eine Aufgabe ermittelt werden kann, besteht darin, die Aufgabe auf
der Ziel-Verarbeitungseinheit zu starten, auf der zusätzlich eine
so genannte Drosselaufgabe läuft,
deren CPS angepasst werden kann. Zunächst wird der Aufgabe die höchstmögliche CPS
zur Verfügung
gestellt, d.h. CPSmax = CPSCLK – CPSOS – CPSSCH – CPSTHROTTLE (= 0). Dann erhöht der Programmierer nach und
nach die Drossel-CPS der betreffenden Aufgabe. Auf diese Weise kann der
Programmierer feststellen, ab wann die neue Aufgabe nicht mehr zufrieden
stellend ausgeführt
wird.
-
Mit
Blick auf die Ziel-Zeitscheibe soll erneut eine Verarbeitungseinheit
Pj betrachtet werden, auf der K Aufgaben
ausgeführt
werden. Nun soll eine neue Aufgabe TIDK+1 betrachtet
werden, welche die SCH zur Prüfung
an Pj übergibt.
Außerdem
soll angenommen werden, dass jede Aufgabe TIDK mit
dem Haupt-Zeitintervall T
ausgeführt
wird, das von dem lokalen BS verwaltet und durch eine geeignete
Programmierung des lokalen Zeitgebers ermöglicht wird. Wenn Pj nun die Aufgabe zulässt, wird der neuen Aufgabe
TIDK+1 nun gemäß Gleichung 2 die Zeitscheibe ΔTK+1 zugewiesen.
-
-
Es
sollte deutlich geworden sein, dass die Erfindung auch so realisiert
werden kann, dass die Verarbeitungseinheit, die zur Ausführung einer
Aufgabe eingeplant ist, nicht die Verarbeitungseinheit ist, welche
die geringste Menge an Energie verbraucht, sondern diejenige mit
dem zweitniedrigsten, drittniedrigsten usw. Energieverbrauch. Obwohl
das Ziel letztendlich darin besteht, die Verarbeitungseinheit mit
dem höchsten
Energienutzungsgrad auszuwählen,
bedeutet dies, dass auch andere Verarbeitungseinheiten mit ähnlichem
Energienutzungsgrad ausgewählt
werden können,
wie der Fachmann ohne weiteres erkennen wird. So kann die Verarbeitungseinheit
mit dem höchsten
Energienutzungsgrad beispielsweise mit der Verarbeitung einer anderen
Aufgabe beschäftigt
sein, oder es ist aus Gründen
der Einplanung sinnvoll, die Verarbeitungseinheit mit dem zweitbesten,
drittbesten oder N-ten
Energienutzungsgrad zu verwenden. Auf diese Weise können die
Verarbeitungseinheiten daraufhin abgefragt werden, ausgehend von
einer partiellen Reihenfolge des abnehmenden Energienutzungsgrads
eine gegebene Aufgabe zur Ausführung
anzunehmen oder abzulehnen. Die partielle Reihenfolge bedeutet,
dass einige Verarbeitungseinheiten mit Blick auf den Energienutzungsgrad
entweder außerhalb
der Reihenfolge ausgewählt
werden können,
dass sie vollständig
außer
Betracht gelassen werden können
oder dass eine Kombination dieser Faktoren für sie gelten kann. Vor dem
Hintergrund der Lehren der hier bereitgestellten Erfindung ist der
Fachmann in der Lage, diese und andere Variationen, Abänderungen und
Erweiterungen der Aufgabeneinplanung mit Bezug auf einen niedrigen
Energieverbrauch in Betracht zu ziehen, ohne dass der Geltungsumfang
der Erfindung dadurch berührt
würde.
-
Weiterhin
ist zu beachten, dass die hier beschriebenen Verarbeitungseinheiten
z.B. Mikroprozessoren, Mikrocontroller, Prozessoren für die digitale
Signalverarbeitung (DSPs) oder andere Einheiten sein können, die in
der Lage sind, Befehle auszuführen.
Außerdem
kann auch eine Kombination der oben genannten Elemente verwendet
werden.
-
Schließlich ist
auch zu beachten, dass die Verarbeitungseinheiten Aufgaben ausführen, die
durch die Ablaufsteuerung eingeplant werden, sowie möglicherweise anderweitige
Aufgaben, die nicht durch die Ablaufsteuerung eingeplant werden.