-
TECHNISCHES GEBIET
-
Ausführungsformen
der Erfindung betreffen das Gebiet der Mikroprozessoren und insbesondere Mikroprozessor-Leistungszustände.
-
STAND DER TECHNIK
-
Fortschritte
in der Mikroprozessortechnologie haben Benutzern sehr viel Leistungsflexibilität gegeben.
Zum Beispiel besitzen neue Prozessoren mehrere Leistungszustandseffizienzen.
Leistungszustände
von Vorrichtungen tauschen in der Regel Leistung der Vorrichtung
gegen eine Verringerung eines oder mehrerer der folgenden Parameter
der Vorrichtung ein: Stromverbrauch, thermisches Verhalten und akustische
Eigenschaften. Leistungsrichtlinien folgen gewöhnlich mehreren Faktoren, wie
zum Beispiel Aktivität
der Vorrichtung oder Nachfrage, Stromquelle, Benutzerpräferenzen
(z. B. Leistungsfähigkeit,
Stromersparnis und Akustik) und ungünstige Bedingungen (z. B. thermische
Bedingungen, niedriger Batteriestand).
-
Durch
die ACPI-Spezifikation (Advanced Configuration and Power Interface)
wurde ein neues Verfahren für
Plattform-Leistungsmanagement und -aufzählung eingeführt. Die
Architektur basiert auf Tabellen und hat die Fähigkeit zur Ausführung von Steuermethoden,
die im Code der ACPI Source Language (ASL) geschrieben werden. ACPI
gibt eine Standardspezifikation, aus der ein globales Leistungsmanagement
entwickelt werden kann. Dieser globale Ansatz hat jedoch mehrere
Nachteile. Erstens nimmt das Modell an, daß das OS die Fähigkeiten
aller Vorrichtungen oder Prozessoren in der Plattform kennt und
sie steuern kann. Dies ist nicht unbedingt der Fall, wenn neuere
Vorrichtungen zu der Plattform hinzugefügt werden. Zweitens kann das Modell
einzelne Vorrichtungen oder Prozesse nicht im Hinblick auf Energiemanagement
unterscheiden. In der Praxis kann jede Vorrichtung oder jeder Prozessor
un terschiedliche Leistungskenngrößen aufweisen.
Drittens erzeugt das Modell die Last, verschiedene Vorrichtungstreiber
bereitzustellen.
-
WO 02/25414 offenbart ein
Verfahren und eine Vorrichtung zum Steuern von Prozessortaktraten
aufgrund von Umgebungsbedingungen. Jeder Prozessor weist einen Sensor
auf, der in Abhängigkeit
von einem gemessenen Umgebungszustand, der einen bestimmten Schwellwert überschreitet,
ein Ausgabesignal ausgibt. Ein Systemmodul sendet aufgrund dieses
Signals ein Unterbrechungssignal an alle Prozessoren in dem System.
-
US 5 560 022 A offenbart
ein System zur Koordination des Energiemanagements in einem Computersystem
und eine entsprechende Schnittstelle. Nach einer Änderung
in einer Systemeinstellung oder nach einer Änderung von registrierten Vorrichtungen,
werden über
einen Energierichtlinienmanager Befehle ausgegeben, welche die registrierten Vorrichtungen
in einen ausgewählten
Zustand versetzen. Der Energierichtlinienmanager führt das
Energiemanagement global, d. h. über
das gesamte System, durch und stellt dem Benutzer einen zentralen
Ort zum Einstellen der Energiesteuerrichtlinien für das gesamte
Computersystem zur Verfügung.
-
Es
ist die Aufgabe der vorliegenden Erfindung, eine Schnittstelle,
einen Treiber, ein Verfahren sowie seine Umsetzung auf einem maschinenlesbaren
Medium bereitzustellen, um ein optimiertes Energiemanagement einzelner
Vorrichtungen in einem System mehrerer Vorrichtungen zu ermöglichen,
wobei für
eine Leistungsoptimierung individuelle Umgebungsbedingungen einer
einzelnen Vorrichtung bei einer Anpassung ihres Leistungszustandes
berücksichtigt
werden können.
-
Die
Aufgabe wird gelöst
durch eine Schnittstelle nach Anspruch 1, ein Verfahren nach Anspruch 6,
einem Vorrichtungstreiber nach Anspruch 12, ein Verfahren nach Anspruch
17 oder durch Umsetzung auf einem maschinenlesbaren Medium nach
Anspruch 11 oder 22.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die
Erfindung wird am besten durch Bezugnahme auf die folgende Beschreibung
und die beigefügten
Zeichnungen, die zur Veranschaulichung von Ausführungsformen der Erfindung
verwendet werden, verständlich.
Es zeigen:
-
1 ein
Diagramm eines Systems, in dem eine Ausführungsform der Erfindung ausgeführt werden
kann.
-
2 ein
Diagramm einer Grenzschnittstelle gemäß einer Ausführungsform
der Erfindung.
-
3 ein
Flußdiagramm
eines Prozesses zur Leistungsbegrenzung durch den Plattformtreiber gemäß einer
Ausführungsform
der Erfindung.
-
4 ein
Flußdiagramm
eines Prozesses zur Leistungsbegrenzung durch einen Vorrichtungstreiber
gemäß einer
anderen Ausführungsform
der Erfindung.
-
BESCHREIBUNG DER ERFINDUNG
-
Bei
einer Ausführungsform
der Erfindung wird eine Umgebungsbedingung überwacht, die eine erste Vorrichtung
betrifft. Die erste Vorrichtung wird in einem ersten Leistungszustand
betrieben. Auf der Basis der Umgebungsbedingung wird ein Begrenzungsbefehl
erzeugt, der die erste Vorrichtung auffordert, den ersten Leistungszustand
auf einen zweiten Leistungszustand einzustellen. Bei einer anderen Ausführungsform
der Erfindung wird ein Begrenzungsbefehl auf der Basis einer Umgebungsbedingung
für eine
Vorrichtung empfangen. Die Vorrichtung übersetzt den Begrenzungsbefehl
in eine Begrenzungssteuerung zur Einstellung des Leistungszustands.
Die Vorrichtung wird in einem ersten Leistungszustand betrieben.
Der erste Leistungszustand der Vorrichtung wird gemäß dem Begrenzungsbefehl auf
einen zweiten Leistungszustand eingestellt.
-
In
der folgenden Beschreibung werden zahlreiche spezifische Einzelheiten
dargelegt. Es versteht sich jedoch, daß Ausführungsformen der Erfindung
ohne diese spezifischen Einzelheiten ausgeübt werden können. In anderen Fällen wurden
wohlbekannte Schaltungen, Strukturen und Techniken nicht gezeigt,
um das Verständnis
der vorliegenden Beschreibung nicht zu erschweren.
-
Elemente
einer Ausführungsform
der Erfindung können
durch Hardware, Software, Firmware, Mikrocode oder eine beliebige
Kombination davon implementiert werden. Bei Implementierung in Software,
Firmware oder Mikrocode sind die Elemente der Ausführungsform
der vorliegenden Erfindung der Programmcode oder Codesegmente zur
Durchführung
der notwendigen Aufgaben. Ein Codesegment kann eine Prozedur, eine
Funktion, ein Unterprogramm, ein Programm, eine Routine, eine Subroutine,
ein Modul, ein Softwarepaket, eine Klasse oder eine beliebige Kombination
von Anweisungen, Datenstrukturen oder Programmanweisungen repräsentieren.
Ein Codesegment kann an ein anderes Codesegment oder eine Hardwareschaltung
angekoppelt werden, indem Informationen, Daten, Argumente, Parameter
oder Speicherinhalt weitergeleitet und/oder empfangen werden. Informationen,
Argumente, Parameter, Daten usw. können über jedes beliebige geeignete
Mittel übergeben,
weitergeleitet oder übertragen
werden, darunter Speicher-Sharing, Nachrichtenweiterleitung, Token-Weiterleitung, Netzwerkübertragung
usw. Das Programm oder die Codesegmente können in einem prozessorlesbarem Medium
gespeichert oder durch ein Computerdatensignal übertragen werden, das in einer
Trägerwelle oder
in einem durch einen Träger
modulierten Signal über
ein Übertragungsmedium
realisiert wird. Das ”prozessorlesbare
oder -zugängliche
Medium” oder das ”maschinenlesbare
oder -zugängliche
Medium” kann
jedes beliebige Medium sein, das Informationen speichern, übertragen
oder transferieren kann. Das maschinenzugängliche Medium kann zum Beispiel eine
elektronische Schaltung, ein Halbleiterspeicherbaustein, ein ROM,
ein Flash-Speicher, ein löschbarer
ROM (EROM), eine Diskette, eine Kompaktdisk (CD-ROM), ein optischer
Datenträger,
eine Festplatte, ein faseroptisches Medium, eine Hochfrequenz-(HF-)Strecke
usw. sein. Das Computerdatensignal kann jedes beliebige Signal sein,
das sich über ein Übertragungsmedium,
wie zum Beispiel elektronische Netzwerkkanäle, optische Fasern, Luft,
elektromagnetisch, HF-Strecken usw. ausbreiten kann. Die Codesegmente
können über Computernetzwerke,
wie zum Beispiel das Internet, ein Intranet usw. heruntergeladen
werden. Das maschinenzugängliche
Medium kann in einem hergestellten Artikel realisiert sein. Das
maschinenzugängliche
Medium kann Daten enthalten, die, wenn eine Maschine auf sie zugreift,
bewirken, daß die
Maschine die im folgenden beschriebene Funktionsweise durchführt. Der
Begriff ”Daten” bedeutet
hier eine beliebige Art von Informationen, die für maschinenlesbare Zwecke codiert werden.
Er umfaßt
deshalb Programm, Code, Daten, Dateien usw.
-
Eine
Ausführungsform
der Erfindung kann vollständig
oder teilweise durch Software implementiert werden. Die Software
kann mehrere miteinander gekoppelte Module aufweisen. Ein Softwaremodul wird
mit einem anderen Modul gekoppelt, um Variablen, Parameter, Argumente,
Zeiger usw. zu empfangen und/oder um Ergebnisse, aktualisierte Variablen, Zeiger
usw. zu erzeugen oder weiterzuleiten. Ein Softwaremodul kann auch
ein Softwaretreiber oder eine Schnittstelle zur Wechselwirkung mit
dem auf der Plattform ablaufenden Betriebssystem sein. Ein Softwaremodul
kann auch ein Hardwaretreiber sein, der einen Hardwarebaustein konfiguriert,
einrichtet, initialisiert und Daten zu und von diesem sendet und empfängt.
-
Es
wird angemerkt, daß eine
Ausführungsform
der Erfindung als ein Prozeß beschrieben
werden kann, der gewöhnlich
als Ablaufplan, Flußdiagramm,
Strukturdiagramm oder Blockdiagramm abgebildet wird. Obwohl ein
Flußdiagramm
die Operationen als sequenziellen Prozeß beschreiben kann, können viele
der Operationen parallel oder gleichzeitig durchgeführt werden.
Außerdem
kann die Reihenfolge der Operationen umgeordnet werden. Ein Prozeß wird beendet,
wenn seine Operationen abgeschlossen sind. Ein Prozeß kann einer
Methode, einer Funktion, einer Prozedur, einer Subroutine, einem
Subprogramm usw. entsprechen. Wenn ein Prozeß einer Funktion entspricht,
entspricht seine Beendigung einer Rückkehr zu der Funktion der
aufrufenden Funktion oder der Hauptfunktion.
-
1 ist
ein Diagramm eines Systems 100, in dem eine Ausführungsform
der Erfindung ausgeübt
werden kann. Das System 100 enthält einen Host-Prozessor 110,
einen Host-Bus 120, einen Speichersteuerverteiler (MCH) 130,
einen Graphikprozessor 135, einen Anzeigemonitor 137,
einen Systemspeicher 140, einen Eingangs-/Ausgangssteuerverteiler
(ICH) 150, einen Peripheriebus 155, ein Massenspeichergerät 170,
einen Umgebungssensor 160 und Eingangs/Ausgangsgeräte 1801 bis 180K .
Man beachte, daß das
System 100 mehr oder weniger Elemente als diese Elemente
enthalten kann.
-
Der
Host-Prozessor 110 repräsentiert
eine Zentralverarbeitungseinheit einer beliebigen Art von Architektur,
wie zum Beispiel eingebettete Prozessoren, mobile Prozessoren, Mikrosteuerungen,
digitale Signalprozessoren, Superscalar-Computer, Vektorprozessoren,
SIMD-Computer (Single
Instruction Multiple Data), Computer mit komplexem Anweisungssatz
(CISC), Computer mit reduziertem Anweisungssatz (RISC) oder Architekturen
mit sehr langen Anweisungswörtern
(VLIW) oder hybride Architekturen.
-
Der
Host-Bus 120 liefert Schnittstellensignale, um dem Prozessor 110 eine
Kommunikation mit anderen Prozessoren oder Vorrichtungen, z. B.
dem MCH 130, zu ermöglichen.
Der Host-Bus 120 kann eine
Einprozessor- oder eine Mehrprozessorkonfiguration unterstützen. Der
Host-Bus 120 kann ein paralleler, ein sequenzieller, ein
Pipeline-, ein asynchroner oder ein synchroner Bus sein oder eine
beliebige Kombination davon.
-
Der
MCH 130 ermöglicht
Steuerung und Konfiguration von Speicher und Eingangs-/Ausgangsgeräten, wie
zum Beispiel des Systemspeichers 140 und des ICH 150.
Der MCH 130 kann in einem Chipsatz integriert werden, der
mehrere Funktionalitäten
integriert, wie zum Beispiel den isolierten Ausführungsmodus, Busschnittstelle
von Host zu Peripheriegerät,
Speichersteuerung. Der MCH 130 ist an den Peripheriebus 155 angeschaltet.
Der Klarheit halber sind nicht alle Peripheriebusse gezeigt. Es wird
in Betracht gezogen, daß das
System auch Peripheriebusse wie etwa Busse des Typs PCI (Peripheral
Component Interconnect), AGP (Accelerated Graphics Port), ISA (Industry
Standard Architecture) und USB (Universal Serial Bus) usw. enthalten
kann.
-
Der
Graphikprozessor 135 ist ein beliebiger Prozessor, der
Graphikfunktionalitäten
bereitstellt. Der Graphikprozessor 135 kann auch in den
MCH 130 integriert werden, um einen Graphik- und Speichersteuerungsverteiler
(GMCH – Graphics
and Memory Controller Hub) zu bilden. Der Graphikprozessor 135 kann
eine Graphikkarte sein, wie zum Beispiel die AGP-Karte (Graphics
Performance Accelerator), die über
einen Graphikport, wie zum Beispiel die AGP-Steuerung (Accelerated
Graphics Port) an den MCH 130 angeschaltet wird. Der Graphikprozessor 135 liefert
eine Schnittstelle zu dem Anzeigemonitor 137, wie zum Beispiel
einem Standard-Zeilenabtastmonitor, eine Fernsehausgangseinrichtung (TV-Out)
und eine TMDS-Steuerung (Transition Minimized Differential Signaling).
Der Anzeigemonitor 137 kann eine beliebige Art von Anzeigegerät sein, wie
zum Beispiel ein Monitor mit Kathodenstrahlröhre (CRT), ein Fernseher, eine
Flüssigkristallanzeige (LCD),
eine Flachtafel und eine digitale CRT.
-
Der
Systemspeicher 140 speichert Systemcode und Daten. Der
Systemspeicher 140 wird in der Regel mit dynamischem Direktzugriffsspeicher (DRAM)
oder statischem Direktzugriffsspeicher (SRAM) implementiert. Der
Systemspeicher kann Programmcode oder Codesegmente enthalten, die eine
Ausführungsform
der Erfindung implementierten. Der Systemspei cher enthält ein Betriebssystem (OS)
mit Energiesparmanagement 145, wozu separate Elemente und
eine Begrenzungsschnittstelle 147 gehören können. Beliebige der Elemente
der Begrenzungsschnittstelle 147 können durch Hardware, Software,
Firmware, Mikrocode oder eine beliebige Kombination davon implementiert
werden. Der Systemspeicher 140 kann außerdem andere Programme oder
Daten enthalten, die nicht gezeigt sind, wie zum Beispiel ein Betriebssystem.
-
Der
ICH 150 besitzt eine Anzahl von Funktionalitäten, die
dafür ausgelegt
sind, E/A-Funktionen zu
unterstützen.
Der ICH 150 kann auch zusammen oder getrennt von dem MCH 130 in
einem Chipsatz integriert werden, um E/A-Funktionen auszuführen. Der
ICH 150 kann eine Anzahl von Schnittstellen- und E/A-Funktionen
umfassen, wie zum Beispiel eine PCI-Busschnittstelle zur Anschaltung an
den Peripheriebus 155, eine Prozessorschnittstelle, eine
Interrupt-Steuerung, eine DMA-Steuerung (Direct Memory Access),
Logik für
Energiemanagement, einen Timer, einen Systemverwaltungsbus (SMBus),
eine USB-Schnittstelle (Universal Serial Bus), eine Massenspeicherungsschnittstelle,
eine LPC-Schnittstelle (Low Pin Count) usw.
-
Der
Umgebungssensor 160 liefert gemessene Informationen bezüglich der
Umgebung der Plattform oder eines lokalen Subsystems. Zu den Umgebungsinformationen
kann folgendes gehören:
Temperatur, thermischer Zustand, akustische Daten, Audio, Lichtintensität, Feuchtigkeit,
Luftdruck, Anzeigebedingungen (z. B. Helligkeit), Stromversorgungsbedingungen
(z. B. Batterie, Wechselstrom) und Benutzerbedingungen (z. B. Benutzerpräferenzen).
-
Das
Massenspeichergerät 170 speichert
Archivinformationen, wie zum Beispiel Code, Programme, Dateien,
Daten, Anwendungen und Betriebssysteme. Das Massenspeichergerät 170 kann
eine CD-ROM (Compact Disc ROM) 172, eine DVD (Digital Video/Versatile
Disc) 173, ein Diskettenlaufwerk 174 und eine
Festplatte 176 und beliebige andere magnetische oder optische
Speichergeräte
umfassen. Das Massenspeichergerät 170 liefert
einen Mechanismus zum Lesen von maschinenlesbaren Medien. Die maschinenlesbaren
Medien können
computerlesbaren Programmcode zur Durchführung der im folgenden beschriebenen
Aufgaben enthalten. Diese Aufgaben sind zum Beispiel Empfangen einer
Umgebungsbedingung, Erzeugen eines Begrenzungsbefehls, Erfassen
der Umgebungsbedingung und Einstellen des ersten Leistungszustands
einer Vorrichtung.
-
Die
E/A-Vorrichtungen 1801 bis 180K sind zum Beispiel beliebige E/A-Vorrichtungen
zur Durchführung
von E/A-Funktionen. Beispiele für
E/A-Einrichtungen 1801 bis 180K sind etwa eine Steuerung für Eingabegeräte (z. B.
eine Tastatur, eine Maus, einen Trackball, ein Zeigegerät), eine
Media-Karte (z. B. Audio, Video, Graphik), eine Netzwerkkarte und beliebige
andere Peripheriesteuerungen.
-
Das
Wesen einer Ausführungsform
der Erfindung ist ein Mechanismus auf Systemebene zur Steuerung
verschiedener unabhängiger
Vorrichtungssubsysteme, die eine lokalisierte Steuerrichtlinie für Leistungszustände der
Vorrichtung implementieren, insbesondere wenn die lokale Steuerrichtlinie eine
auf Bedarf basierende Steuerrichtlinie ist. Ein Benutzer beeinflußt das System-Energiemanagement
durch Eingabe von Präferenzen
bezüglich
Energie, Leistungsfähigkeit
und Software für
thermische Richtlinien, die als vom OS angeleitetes Energiemanagement
(OSPM – OS-Directed
Power Management) bekannt sind. Diese Eingaben umfassen eine Präferenz für Leistungsfähigkeit
oder Energieersparnis und vorrangige Umgebungseingaben, die Notwendigkeiten
des Betriebs, die durch Umgebungsbedingungen gefordert oder angesagt
werden, wie zum Beispiel eine Menge an Umgebungslicht, ein gewünschter
Akustikpegel, und thermische Steueranforderungen des Systems einschließen. Der
Benutzer kann eine Präferenz
für Leistungsfähigkeit
oder Energieersparnis auf lineare Weise zwischen zwei Extremen spezifizieren.
Die vorrangigen Eingaben können
sich spezifisch auf die Steuerung unabhängiger Subsysteme oder einer
Gruppe von Vorrichtungen auswirken, während die Gesamtsystem-Energiemanagementrichtlinie
intakt gelassen wird.
-
Die
Benutzerpräferenz
wird durch eine Begrenzungssteuerung gesteuert, die durch die Begrenzungsschnittstelle 147 implementiert
wird. Wenn die Begrenzung angewandt wird, wird die lokale Richtlinie
darauf beschränkt,
eine kleinere Anzahl oder eine höhere
Anzahl von Zuständen
zu verwenden, und dadurch wird die mögliche Leistungsfähigkeit
und Stromaufnahme der Vorrichtung in dem Subsystem entweder begrenzt
oder erweitert. Durch Delegieren der Aufgaben des Managements der
Energie und/oder der Leistungsfähigkeit
zu den einzelnen Vorrichtungen unter einer globalen Anforderung
kann große
Flexibilität
und Effizienz erzielt werden.
-
2 ist
ein Diagramm der in 1 gezeigten Begrenzungsschnittstelle 147 gemäß einer
Ausführungsform
der Erfindung. Die Begrenzungsschnittstelle 147 enthält einen
Plattformtreiber 210 und N Vorrichtungstreiber 2201 bis 220N .
-
Der
Plattformtreiber 210 ist ein Treiber, der vom Standpunkt
der Plattform aus bezüglich
der Leistungs- und/oder Energiezustände der Vorrichtungen oder
Prozessoren in dem System betrieben wird. Die Vorrichtungen können eine
Anzahl von Leistungszuständen
aufweisen, darunter ein höchstes
Niveau, ein niedrigstes Niveau und ein automatisches oder auf Bedarf
basierendes Niveau. Im allgemeinen entspricht ein Zustand mit hoher
Leistungsfähigkeit einem
Zustand niedriger Energie. Der Plattformtreiber 210 kann
Teil des ACPI OS oder des OSPM-Moduls sein. Der Plattformtreiber 210 enthält eine Überwachungsvorrichtung 212 für die Umgebungsbedingung
und einen Befehlsgenerator 214.
-
Die Überwachungsvorrichtung 212 für die Umgebungsbedingung überwacht
eine Umgebungsbedingung, die eine Vorrichtung oder einen Prozessor
betrifft. Die Vorrichtung kann eine Media-Vorrichtung sein (z. B.
Audio, Abbildung), ein Graphikprozessor oder ein Subsystem (z. B.
eine Zusatz-Berechnungskarte, eine Videoeditiereinheit). Die Umgebungsbedingung
kann eine einzige Vorrichtung, ein Subsystem oder eine Gruppe von
Vorrichtungen betreffen. Jede Vorrichtung wird in einem aktuellen Leistungszustand
betrieben. Die Überwachungsvorrichtung 212 für die Umgebungsbedingung
erfaßt
die Umgebungsbedingung durch Verwendung eines Sensors (z. B. des
Umgebungssensors 160 in 1) oder
einer Eingabe vom Benutzer. Die Umgebungsbedingung kann zum Beispiel
eine thermische Bedingung, eine Leistungsfähigkeitsbedingung (z. B. Betriebsfrequenz)
eine Audiobedingung (z. B. ein Akustikpegel), eine Anzeigebedingung
(z. B. ein Helligkeitspegel), eine Umgebungslichtbedingung oder eine
Stromversorgungsbedingung (z. B. Batterie) sein. Die Benutzereingabe
kann zum Beispiel eine über
das OSPM oder eine beliebige andere Benutzerschnittstelle eingegebene
Benutzerpräferenz sein.
-
Der
Befehlsgenerator 214 erzeugt einen Begrenzungsbefehl auf
der Basis der Umgebungsbedingung, um die Vorrichtung bzw. die Vorrichtungen in
dem überwachten
Subsystem dazu aufzufordern, den aktuellen Leistungszustand auf
einen nächsten Leistungszustand
zu verstellen bzw. einzustellen. Die Umgebungsbedingung kann mit
einer Schwelle oder einem Schwellenband verglichen werden. Die Schwelle
bzw. ein Schwellenband können
vom Benutzer oder durch bestimmte Vorgabewerte gemäß einer
Energiemanagementrichtlinie bestimmt werden. Wenn die Umgebungsbedingung
eine Obergrenze überschreitet,
gibt der Befehlsgenerator 214 einen Begrenzungsbefehl aus,
um die Vorrichtung aufzufordern, ihren Leistungszustand auf einen
niedrigeren Zustand einzustellen. Wenn zum Beispiel die thermi sche
Bedingung des lokalen Subsystems eine obere Schwelle übersteigt,
wodurch angezeigt wird, daß eine
hohe Temperatur erreicht wird, fordert der Begrenzungsbefehl die
Vorrichtung bzw. die Vorrichtungen in dem Subsystem auf, ihren Leistungszustand
zu begrenzen oder den aktuellen Leistungszustand auf einen niedrigeren
Leistungszustand einzustellen, der einem niedrigeren Energiezustand
entspricht. Ähnlich
gibt der Befehlsgenerator 214, wenn die Umgebungsbedingung
eine untere Grenze überschreitet,
einen Begrenzungsbefehl aus, um die Vorrichtung bzw. die Vorrichtungen
aufzufordern, ihren Leistungszustand auf einen höheren Zustand einzustellen.
Die Umgebungsbedingung kann zum Beispiel eine Umfeldbedingung (z.
B. thermisch, akustisch), eine Leistungsbedingung (z. B. Betriebsfrequenz,
Stromverbrauch) oder eine Benutzereingabe sein.
-
Der
Befehlsgenerator 214 sendet den Begrenzungsbefehl zu allen
Vorrichtungen in dem überwachten
Subsystem rund. Die einzelnen Vorrichtungen stellen dann ihre Leistungszustände gemäß ihren
einzelnen Zustandskenngrößen ein.
-
Die
Steuerung jeder Vorrichtung wird durch den entsprechenden Vorrichtungstreiber 220k durchgeführt. Der Klarheit halber werden
in der folgenden Beschreibung die Indizes weggelassen. Der Vorrichtungstreiber 220 ist
ein für
die überwachte
Vorrichtung spezifischer Treiber. Der Vorrichtungstreiber 220 kann
Teil der Begrenzungsschnittstelle 147 (1)
sein oder sich lokal in der Vorrichtung befinden. Der Vorrichtungstreiber 220 wird
in der Regel in dem System installiert, wenn die Vorrichtung als
in dem System vorliegend erkannt wird. Der Vorrichtungstreiber 220 enthält einen
Befehlsempfänger 222,
eine Zustandseinstellvorrichtung 224 und eine Leistungstabelle 226.
-
Der
Befehlsempfänger 222 ist
eine Schnittstelle zum Empfangen des durch den Plattformtreiber 210 ausgegebenen
oder erzeugten Begrenzungsbefehls. Der Befehlsempfänger 222 kann
als ein Register, ein Steuerbit oder eine Steuereingabe implementiert
werden. Der Empfang des Begrenzungsbefehls kann als ein Hardware-Interrupt,
ein Trap, eine Programmausnahme oder eine Statusabfrage implementiert
werden.
-
Die
Zustandseinstellvorrichtung 224 übersetzt den Begrenzungsbefehl
in eine Begrenzungssteueraktion zum Ändern oder Einstellen des aktuellen
Leistungszustands auf einen nächsten
Leistungszustand gemäß dem Begrenzungsbefehl.
Wenn zum Beispiel der Begrenzungsbefehl die Leistungsgrenze vergrößern soll,
stellt die Zustandseinstellvorrichtung 224 den aktuellen Leistungszustand
auf einen höheren
Leistungszustand ein. Die Leistungstabelle 226 enthält durch
die Zustandseinstellvorrichtung 224 in die Vorrichtung
zu ladende Einträge
oder Steuerparameter, die die Vorrichtung anleiten, ihren Leistungs-/Energiezustand
entsprechend einzustellen. Die Leistungstabelle 226 kann
einer Prozedur oder einem Algorithmus entsprechen, die bzw. der
das Energiemanagement implementiert. Wenn sich die Vorrichtung in
dem niedrigsten Leistungszustand befindet und der Begrenzungsbefehl
anfordert, den aktuellen Leistungszustand auf einen niedrigeren
Zustand einzustellen, kann die Vorrichtung unverändert bleiben. Wenn sich die
Vorrichtung in dem höchsten Leistungszustand
befindet und der Begrenzungsbefehl anfordert, den aktuellen Leistungszustand
auf einen höheren
Zustand einzustellen, kann die Vorrichtung in ähnlicher Weise unverändert bleiben.
-
3 ist
ein Flußdiagramm
eines Prozesses 300 zur Begrenzung der Leistungsfähigkeit
durch den Plattformtreiber gemäß einer
Ausführungsform der
Erfindung.
-
Nach
START überwacht
der Prozeß 300 die Umgebungsbedingung über Sensor
oder Benutzereingabe (Block 310). Dazu kann das Empfangen
von Informationen über
folgendes gehören:
eine thermische Bedingung, eine Leistungsbedingung, eine Audiobedingung,
eine Anzeigebedingung, eine Stromversorgungsbedingung, eine Benutzerpräferenz oder -eingabe
oder eine beliebige Kombination davon. Als nächstes führt der Prozeß 300 eine
entsprechende Zeitverzögerung
ein, um eine Stabilisierung des Überwachungsbereichs
zu ermöglichen
(Block 320). Danach bestimmt der Prozeß 300, ob die Umgebungsbedingung
eine Obergrenze übersteigt
(Block 330). Die Obergrenze kann durch Benutzerpräferenz oder
durch Vorgabewert gesetzt werden. Wenn dies der Fall ist, erzeugt
der Prozessor 300 einen Begrenzungsbefehl für die Vorrichtungen,
um die Vorrichtungen aufzufordern, zu einer Untergrenze überzugehen (Block 340).
In der Regel können
dabei die Vorrichtungen aufgefordert werden, ihren aktuellen Leistungszustand
auf einen niedrigeren Leistungszustand zu ändern oder einzustellen oder
gleich zu bleiben, wenn ihre unterste Grenze erreicht wurde. Dann geht
der Prozeß 300 zum
Block 370 über.
Wenn die Umgebungsbedingung die Obergrenze nicht übersteigt,
bestimmt der Prozeß 300,
ob die Umgebungsbedingung jenseits einer Untergrenze liegt (Block 350).
Die Untergrenze kann durch Benutzerpräferenz oder durch Vorgabewert
gesetzt werden. Wenn dies der Fall ist, erzeugt der Prozeß 300 einen
Begrenzungsbefehl für
die Vorrichtungen, um die Vorrichtungen aufzufordern, zu einer höheren Grenze überzugehen
(Block 360). In der Regel können dabei die Vorrichtungen
aufgefordert werden, ihren aktuellen Leistungszustand auf einen
höheren
Leistungszustand zu ändern
oder einzustellen, oder gleich zu bleiben, wenn ihre höchste Grenze
erreicht wurde. Dann geht der Prozeß 300 zum Block 370 über. Wenn
die Umgebungsbedingung weder jenseits der Obergrenze noch jenseits
der Untergrenze liegt, schreitet der Prozeß 300 zum Block 370 voran.
-
Im
Block 370 bestimmt der Prozeß 300, ob es notwendig
ist, die Überwachung
fortzusetzen. Wenn dies der Fall ist, erzeugt der Prozeß 300 eine Verzögerung,
damit die Reaktion der Vorrichtung wirksam werden kann (Block 380).
Diese Verzögerung
kann gemäß der Beschaffenheit
der Umgebungsbedingung bestimmt werden. Zum Beispiel kann eine thermische
Bedingung länger
als eine Benutzerpräferenz
dauern. Dann kehrt der Prozessor 300 zum Block 310 zurück. Andernfalls
wird der Prozeß 300 beendet.
-
4 ist
ein Flußdiagramm
eines Prozesses 400 zur Begrenzung der Leistungsfähigkeit
durch einen Vorrichtungstreiber gemäß einer weiteren Ausführungsform
der Erfindung.
-
Nach
START empfängt
der Prozeß 400 einen
Begrenzungsbefehl von dem Plattformtreiber (Block 410).
Dies läßt sich
durch Speichern des Begrenzungsbefehls in einem Register oder durch
Reagieren auf einen Interrupt oder ein Trap erreichen. Dann bestimmt
der Prozeß 400,
ob der Begrenzungsbefehl eine niedrigere Grenze oder einen niedrigeren
Leistungszustand anfordert (Block 420). Wenn dies der Fall
ist, bestimmt der Prozeß 400,
ob sich die Vorrichtung bereits an der untersten Grenze befindet
(Block 430). Wenn dies der Fall ist, wird der Prozeß 400 beendet.
Andernfalls übersetzt
der Prozeß 400 den
Begrenzungsbefehl in eine Begrenzungssteueraktion zum Herabsetzen
der Vorrichtungsgrenze gemäß ihrer
spezifischen Managementrichtlinie (Block 440). Zu der Steueraktion
können dann
die spezifischen Operationen der Vorrichtung zum Herabsetzen des
Vorrichtungsleistungszustands gemäß der unteren Grenze gehören. Zum Beispiel
können
die Steueroperationen einen Zeiger zu einer Parametertabelle setzen,
die die Steuerparameter enthält,
die einem niedrigeren Leistungszustand entsprechen. Dann geht der
Prozeß 400 zum Block 480 über. Wenn
der Begrenzungsbefehl keine niedrigere Grenze anfordert, bestimmt
der Prozeß 400,
ob er eine höhere
Grenze anfordert (Block 450). Wenn nicht, wird der Prozeß 400 beendet.
Andernfalls bestimmt der Prozeß 400,
ob sich die Vorrichtung bereits an der höchsten Grenze befindet (Block 460).
Wenn dies der Fall ist, wird der Prozeß 400 beendet. Andernfalls übersetzt
der Prozeß 400 den
Begrenzungsbefehl in eine Begrenzungssteueraktion zum Übergehen
zu einer höheren
Grenze (Block 470). Die Steueraktion für eine höhere Grenze kann spezifische
Operationen der Vorrichtung zum Erhöhen des Vorrichtungsleistungszustands
gemäß der höheren Grenze
umfassen, wie zum Beispiel das Setzen eines Zeigers auf Steuerparameter
entsprechend einem höheren
Leistungszustand. Dann geht der Prozeß 400 zum Block 480 über.
-
Im
Block 480 lädt
der Prozeß 400 die
Steuerparameter in die Vorrichtung, um die Steuerfunktion zum Erniedrigen
oder Erhöhen
des Leistungszustands entsprechend zu aktivieren (Block 480).
Die Steuerparameter können
aus einer Leistungstabelle abgerufen oder von einer Prozedur abgeleitet
werden. Die Steuerparameter können
direkt in ein Register in der Vorrichtung oder in eine Energiemanagement-Schnittstellendatenstruktur
geladen werden. Dadurch wird der aktuelle Leistungszustand auf einen
nächsten
Leistungszustand geändert
oder eingestellt. Der Prozeß 400 wird
dann beendet.