DE112016007529T5 - Verwaltung von Energiezuständen - Google Patents

Verwaltung von Energiezuständen Download PDF

Info

Publication number
DE112016007529T5
DE112016007529T5 DE112016007529.4T DE112016007529T DE112016007529T5 DE 112016007529 T5 DE112016007529 T5 DE 112016007529T5 DE 112016007529 T DE112016007529 T DE 112016007529T DE 112016007529 T5 DE112016007529 T5 DE 112016007529T5
Authority
DE
Germany
Prior art keywords
driver
drivers
state
historical
transition operation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112016007529.4T
Other languages
English (en)
Inventor
Yu Chen
Jianghong Du
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112016007529T5 publication Critical patent/DE112016007529T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)

Abstract

In einem Beispiel kann ein System zum Verwalten von Energiezuständen einen Prozessor zum Erkennen eines Energiezustands-Überleitungsbetriebes und zum Erkennen von historischen Rückrufinformationen für jeden von mehreren Treibern des Systems beinhalten. Der Prozessor kann außerdem die mehreren Treiber basierend auf den historischen Rückrufinformationen mehreren Treibergruppen zuzuordnen und den Energiezustands-Überleitungsbetrieb durch Übermitteln mehrerer Energiezustandsbefehle für jeden Treiber an mehrere Prozessoren, basierend auf den mehreren Treibergruppen, ausführen.

Description

  • Gebiet der Erfindung
  • Die vorliegende Offenbarung betrifft im Allgemeinen die Verwaltung von Energiezuständen und insbesondere, aber nicht ausschließlich das Verkürzen einer Zeitspanne zum Wechseln des Energiezustandes eines Rechengerätes.
  • Stand der Technik
  • Rechengeräte beziehen eine steigende Anzahl an Peripheriegeräten und entsprechenden Treibern ein, welche die Rechengeräte in die Lage versetzen, mit den Peripheriegeräten zu kommunizieren. Rechengeräte unterstützen außerdem eine beliebige Anzahl verschiedener Energiezustände, die den Energieverbrauch der Rechengeräte verringern. In einigen Beispielen lösen Rechengeräte Aufrufe von Treibern der Peripheriegeräte aus, um die Rechengeräte in einen Zustand verringerten Energieverbrauchs zu versetzen, wie unter anderem einen Ruhezustand.
  • Figurenliste
  • Die folgende detaillierte Beschreibung ist anhand der dazugehörigen Zeichnungen besser zu verstehen, die spezielle Beispiele für zahlreiche Merkmale des offenbarten Erfindungsgegenstandes enthalten.
    • 1 veranschaulicht ein Blockdiagramm eines Rechengerätes, das Energiezustände verwalten kann;
    • 2 veranschaulicht ein Blockdiagramm eines Prozessablaufdiagramms zum Verwalten von Energiezuständen eines Rechengerätes;
    • 3 ist ein Blockdiagramm eines Zeitplanungsprogramms und Prozessors, die Energiezustände verwalten können; und
    • 4 ist ein Beispiel für ein materielles, nicht-flüchtiges computerlesbares Medium zum Verwalten von Energiezuständen.
  • In einigen Fällen werden in der gesamten Offenbarung und den Figuren die gleichen Nummern verwendet, um gleichartige Komponenten und Merkmale zu bezeichnen. Zahlen der 100er-Reihe bezeichnen Merkmale, die ursprünglich in 1 zu finden sind; Nummern der 200er-Reihe bezeichnen Merkmale, die ursprünglich in 2 zu finden sind, usw.
  • Beschreibung der Ausführungsformen
  • Wie vorstehend erläutert, können Rechengeräte eine beliebige geeignete Anzahl verschiedener Energiezustände unterstützen. Zum Beispiel können Rechengeräte verschiedene systemweite Energiezustände unterstützen, wie unter anderem einen Arbeitsenergiezustand, einen Bereitschaftsenergiezustand, einen Ruheenergiezustand und einen Null-Energie-(Hibemate-)Zustand. In einigen Beispielen zeigen die Rechengeräte jedem Treiber in den Rechengeräten ein Überleiten zwischen Energiezuständen an. Zum Beispiel kann ein Betriebssystem eines Rechengeräts einen Indikator an jeden Treiber eines Rechengerätes übermitteln, wobei der Indikator Informationen über die Energiezustandsüberleitung bereitstellt. Ein Treiber, auf den im Vorliegenden Bezug genommen wird, kann jeden geeigneten Gerätetreiber beinhalten, der eine Art von Gerät betreibt oder steuert, das elektrisch mit einem Rechengerät gekoppelt ist. Ein Treiber kann zum Beispiel den Betrieb einer Tastatur, einer Maus, einer Kamera, eines Sensors oder eines beliebigen anderen geeigneten Gerätes oder einer beliebigen anderen geeigneten Komponente steuern. In einigen Beispielen führen die Treiber eine Rückruffunktion aus, die anzeigt, ob ein Treiber die Energiezustandsüberleitung eines bestimmten Gerätes umgesetzt hat.
  • Die im Vorliegenden beschriebenen Techniken beinhalten ein System, das einen Energiezustands-Überleitungsbetrieb erkennen kann. Ein Energiezustands-Überleitungsbetrieb, auf den im Vorliegenden Bezug genommen wird, kann jeden Betrieb beinhalten, der einen Systemzustand eines Gerätes dahingehend ändert, den Energieverbrauch des Geräts zu verringern oder zu erhöhen. Zum Beispiel kann ein Energiezustands-Überleitungsbetrieb neben anderen Systemzustandsbetrieben ein Wiederaufnahmebetrieb, ein Unterbrechungsbetrieb, ein Null-Energie-Betrieb, ein Bereitschaftsbetrieb, ein Arbeits- oder Vollenergiebetrieb und ein Ruhebetrieb sein. In einigen Ausführungsformen kann das System außerdem historische Rückrufinformationen für jeden von mehreren Treibern des Systems erkennen. In einigen Beispielen zeigen die historischen Rückrufinformationen eine Zeitspanne an, die dem Ausführen des Energiezustands-Überleitungsbetriebs auf einem bestimmten Gerät durch einen Treiber entspricht.
  • Des Weiteren kann das System in einigen Ausführungsformen die mehreren Treiber basierend auf den historische Rückrufinformationen mehreren Treibergruppen zuordnen. Darüber hinaus kann das System den Energiezustands-Überleitungsbetrieb durch Übermitteln mehrerer Energiezustandsbefehle für jeden Treiber an mehrere Prozessoren, basierend auf den mehreren Treibergruppen, ausführen. Zum Beispiel kann das System eine beliebige Anzahl an Prozessoren oder Verarbeitungskernen beinhalten, die den Energiezustands-Überleitungsbetrieb auslösen können. In einigen Ausführungsformen können die Prozessoren oder Verarbeitungskerne mit Hilfe einer beliebigen geeigneten sequentiellen oder parallelen Technik den Energiezustands-Überleitungsbetrieb für eine beliebige Anzahl von Treibern verarbeiten. Dementsprechend kann das im Vorliegenden beschriebene System zugeordnete Gruppen von Treibern an Prozessoren oder Verarbeitungskerne des Systems übermitteln, um Wartezeiten zu minimieren, die mit dem Überleiten zwischen Energiezuständen in Verbindung stehen.
  • Die Bezugnahme auf „eine Ausführungsform“ des offenbarten Erfindungsgegenstandes in der Beschreibung bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft, das/die in Verbindung mit der Ausführungsform beschrieben ist, in mindestens einer Ausführungsform des offenbarten Erfindungsgegenstandes enthalten ist. Somit kann die Formulierung „in einer Ausführungsform“ an verschiedenen Stellen in der Beschreibung auftreten, jedoch muss sich die Formulierung nicht notwendigerweise die gleiche Ausführungsform beziehen.
  • 1 ist ein Blockdiagramm eines Beispiels für ein Rechengerät, das Energiezustände verwalten kann. Das Rechengerät 100 kann zum Beispiel unter anderem ein Mobiltelefon, ein Laptop, ein Desktop-Computer oder ein Tablet sein. Das Rechengerät 100 kann Prozessoren 102 beinhalten, die dafür eingerichtet sind, gespeicherte Befehle auszuführen, sowie ein Speichergerät 104, das Befehle speichert, die von den Prozessoren 102 ausgeführt werden können. Die Prozessoren 102 können Einkernprozessoren, Mehrkernprozessoren, ein Rechencluster oder eine beliebige Anzahl anderer Konfigurationen sein. In einigen Ausführungsformen können die Prozessoren 102, auf die im Vorliegenden Bezug genommen wird, Verarbeitungskerne sein, die sich in einem einzelnen Mehrkernprozessor befinden. Ein Verarbeitungskern, auf den im Vorliegenden Bezug genommen wird, kann eine beliebige geeignete Verarbeitungseinheit beinhalten, die computerausführbare Befehle lesen und ausführen kann. Ein einzelner Mehrkernprozessor kann mehrere Verarbeitungskerne auf einem einzelnen Nacktchip mit integrierter Schaltung oder mehrere Verarbeitungskerne auf mehreren Nacktchips mit integrierter Schaltung in einem Einzelchipträger oder einem Chip-Package beinhalten. In einigen Beispielen können die Verarbeitungskerne Befehle parallel ausführen. In einigen Ausführungsformen können die Verarbeitungskerne einen Cache-Speicher gemeinsam nutzen oder nicht. In einigen Beispielen können die Verarbeitungskerne einen Nachrichtenaustausch oder eine beliebige geeignete Inter-Kern-Kommunikationstechnik mit gemeinsam genutztem Speicher umsetzen. Das Speichergerät 104 kann einen Speicher mit wahlfreiem Zugriff, einen Nur-Lese-Speicher, einen Flash-Speicher oder ein beliebiges anderes geeignetes Speichersystem beinhalten. Die von den Prozessoren 102 ausgeführten Befehle können verwendet werden, um ein Verfahren umzusetzen, das Energiezustände verwalten kann.
  • Die Prozessoren 102 können außerdem durch die Systemverbindung 106 (z. B. PCI®, PCI-Express®, NuBus usw.) mit einer Anzeigeschnittstelle (108) verknüpft sein, die dafür eingerichtet ist, das Rechengerät 100 mit einem Anzeigegerät 110 zu verbinden. Das Anzeigegerät 110 kann einen Anzeigebildschirm beinhalten, der eine Einbaukomponente des Rechengerätes 100 ist. Das Anzeigegerät 110 kann unter anderem außerdem einen Computermonitor, ein Fernsehgerät oder einen Projektor beinhalten, der/das extern mit dem Rechengerät 100 verbunden ist. Das Anzeigegerät 110 kann unter anderem Leuchtdioden (LED) und Mikro-LED beinhalten.
  • Des Weiteren kann ein Netzwerk-Schnittstellen-Controller 112 (im Vorliegenden auch NIC genannt) dafür eingerichtet sein, das Rechengerät 100 durch die Systemverbindung 106 mit einem Netzwerk (nicht abgebildet) zu verbinden. Das (nicht abgebildete) Netzwerk kann unter anderem ein Mobilfunknetz, ein Funknetz, ein Weitverkehrsnetz (WAN), ein lokales Netz (LAN) oder das Internet sein.
  • Die Prozessoren 102 können durch eine Systemverbindung 106 mit einer Eingabe/Ausgabe-(E/A-)Geräteschnittstelle 114 verbunden sein, die dafür eingerichtet ist, das Rechengerät 100 mit einem oder mehreren E/A-Geräten 116 zu verbinden. Die E/A-Geräte 116 können zum Beispiel eine Tastatur und ein Zeigegerät beinhalten, wobei das Zeigegerät unter anderem ein Touchpad oder einen Touchscreen beinhalten kann. Die E/A-Geräte 116 können Einbaukomponenten des Rechengerätes 100 sein oder sie können Geräte sein, die extern mit dem Rechengerät 100 verbunden sind.
  • In einigen Ausführungsformen können die Prozessoren 102 außerdem durch die Systemverbindung 106 mit einem Langzeitspeichergerät 118 verknüpft sein, das eine Festplatte, ein optisches Laufwerk, ein USB-Flash-Laufwerk, ein Feld aus Laufwerken, ein Netzwerk- Langzeitspeichergerät oder eine Kombination daraus beinhalten kann. In einigen Ausführungsformen kann das Langzeitspeichergerät 118 beliebige geeignete Anwendungen beinhalten. In einigen Ausführungsformen kann das Langzeitspeichergerät 118 eine Energiezustandsverwaltung 120, eine Rückrufinformationsverwaltung 122, eine Treiberzuordnungseinrichtung 124 und ein Zeitplanungsprogramm 126 beinhalten. In einigen Ausführungsformen kann die Energiezustandsverwaltung 120 einen Energiezustands-Überleitungsbetrieb erkennen, der den Energieverbrauch des Rechengerätes 100 ändert. In einigen Ausführungsformen kann die Rückrufinformationsverwaltung 122 historische Rückrufinformationen für jeden von mehreren Treibern des Systems erkennen. Die historischen Rückrufinformationen können für jeden Treiber eine Ausführungszeit für das Überleiten zwischen Energiezuständen anzeigen, die durch den Energiezustands-Überleitungsbetrieb spezifiziert wird. In einigen Ausführungsformen kann eine Treiberzuordnungseinrichtung 124 die mehreren Treiber basierend auf den historischen Rückrufinformationen mehreren Treibergruppen zuordnen. In einigen Ausführungsformen kann das Zeitplanungsprogramm 126 den Energiezustands-Überleitungsbetrieb durch Übermitteln mehrerer Energiezustandsbefehle für jeden Treiber an mehrere Prozessoren, basierend auf den mehreren Treibergruppen, ausführen. Die Energiezustandsbefehle können Funktionen beinhalten, die durch jeden Treiber ausgeführt werden, wenn ein Gerät von einem ersten Energiezustand in einen zweiten Energiezustand überleitet. In einigen Beispielen kann das Zeitplanungsprogramm 126 als Teil eines Betriebssystems enthalten sein. Das Zeitplanungsprogramm 126 kann auch als Teil einer Energieverwaltungslogik enthalten sein.
  • Es versteht sich, dass das Blockdiagramm von 1 nicht anzeigen soll, dass das Rechengerät 100 alle der in 1 gezeigten Komponenten beinhalten muss. Stattdessen kann das Rechengerät 100 weniger oder zusätzliche Komponenten beinhalten, die in 1 nicht dargestellt sind (z. B. zusätzliche Speicherkomponenten, eingebettete Controller, zusätzliche Module, zusätzliche Netzwerkschnittstellen usw.). Darüber hinaus können einige der Funktionalitäten der Energiezustandsverwaltung 120, der Rückrufinformationsverwaltung 122, der Treiberzuordnungseinrichtung 124 und des Zeitplanungsprogramms 126 teilweise oder gänzlich in Hardware und/oder in dem Prozessor 102 umgesetzt sein. Die Funktionalität kann zum Beispiel unter anderem mit einer anwendungsspezifischen integrierten Schaltung, einer Logik, die in einem eingebetteten Controller umgesetzt ist, einem feldprogrammierbaren Gate-Array oder in Logik umgesetzt sein, die in den Prozessoren 102 umgesetzt ist. In einigen Ausführungsformen können die Funktionalitäten der Energiezustandsverwaltung 120, der Rückrufinformationsverwaltung 122, der Treiberzuordnungseinrichtung 124 und des Zeitplanungsprogramms 126 mit Logik umgesetzt sein, wobei die Logik, auf die im Vorliegenden Bezug genommen wird, beliebige geeignete Hardware (z. B. unter anderem einen Prozessor), Software (z. B. unter anderem eine Anwendung), Firmware oder eine beliebige geeignete Kombination aus Hardware, Software und Firmware beinhalten kann.
  • 2 veranschaulicht ein Prozessablaufdiagramm für das Verwalten von Energiezuständen. Das in 2 dargestellte Verfahren 200 kann mit jeder geeigneten Rechenkomponente oder jedem geeigneten Rechengerät umgesetzt werden, wie beispielsweise dem Rechengerät 100 von 1.
  • Bei Block 202 kann eine Energiezustandsverwaltung 120 einen Energiezustands-Überleitungsbetrieb erkennen. Ein Energiezustands-Überleitungsbetrieb, wie er vorstehend erläutert ist, kann anzeigen, dass ein System den Energieverbrauch verringern soll oder den Energieverbrauch erhöhen soll. Der Energiezustands-Überleitungsbetrieb kann zum Beispiel anzeigen, dass ein System von einem aktiven Zustand in eine beliebige Anzahl von Ruhezuständen oder von einem Ruhezustand in einen aktiven Zustand überleiten soll. In einigen Ausführungsformen kann der Energiezustands-Überleitungsbetrieb den Energieverbrauch eines Systems verändern, das einen Prozessor und eine Anzahl an Peripheriekomponenten beinhaltet. In einigen Beispielen kann der Energiezustands-Überleitungsbetrieb einen Energiezustand eines Systems ändern, wobei die Energiezustände einen aktiven Zustand, einen Unterbrechungszustand, einen Null-Energie-Zustand und dergleichen beinhaltet. In einigen Ausführungsformen kann ein aktiver Zustand oder ein Aktivierungsereignis ein beliebiges Ereignis beinhalten, dass eine Energiezustandsänderungs-Unterbrechung feststellt, wie beispielsweise das Einführen einer Karte, eine Änderung eines Batteriezustandes und dergleichen. In einigen Beispielen kann jeder Energiezustand einen anderen Umfang an Wartezeit aufweisen. Zum Beispiel kann ein System fünf verschiedene Ruhezustände unterstützen, die mit unterschiedlichen Wartezeiten und Speicherverwaltungstechniken in Verbindung stehen.
  • Ein erster Ruhezustand (im Vorliegenden auch als S1 bezeichnet) kann ein Ruhezustand mit kurzer Aktivierungswartezeit sein. In diesem Zustand kann kein Systemkontext verloren gehen (Prozessor oder Chipsatz) und Hardware kann den Systemkontext aufrechterhalten. Ein zweiter Ruhezustand (im Vorliegenden auch als S2 bezeichnet) kann ein separater Ruhezustand mit kurzer Aktivierungswartezeit sein. Der zweite Ruhezustand kann ähnlich dem ersten Ruhezustand S1 sein, nur dass der Prozessor- und der System-Cache-Kontext gelöscht werden oder verlorengehen können. In einigen Beispielen kann ein Betriebssystem oder ein Zeitplanungsprogramms 126 für das Aufrechterhalten des Cache- und Prozessorkontexts verantwortlich sein. In Reaktion auf eine Wiederaufnahmezustandsüberleitung kann von einem Prozessor-Rücksetzvektor nach dem Aktivierungsereignis eine Steuerung beginnen. In einigen Ausführungsformen kann ein dritter Ruhezustand (im Vorliegenden auch als S3 bezeichnet) ein zusätzlicher Ruhezustand mit kurzer Aktivierungswartezeit sein, bei dem alle Systemkontexte verlorengehen können, mit Ausnahme des Systemspeichers. In einigen Beispielen werden in dem dritten Ruhezustand die Kontexte von Prozessor, Cache und Chipsatz gelöscht oder gehen verloren. In einigen Ausführungsformen kann Hardware Speicherkontext aufrechterhalten und einen Teil des Prozessor- und Cache-Konfigurationskontext wiederherstellen. In Reaktion auf eine WiederaufnahmeZustandsüberleitung kann eine Steuerung von einem Prozessor-Rücksetzvektor nach dem Aktivierungsereignis beginnen.
  • In einigen Ausführungsformen kann ein vierter Ruhezustand (im Vorliegenden auch als S4 bezeichnet) der Ruhezustand mit der geringsten Energie und der längsten Aktivierungswartezeit sein, der unterstützt wird. Um die Energie auf ein Minimum zu verringern, kann die Hardware-Plattform alle Geräte abschalten, während der Plattformkontext aufrechterhalten wird. In einigen Ausführungsformen kann ein fünfter Ruhezustand (im Vorliegenden auch als S5 bezeichnet) ähnlich dem Ruhezustand S4 sein, nur dass das Betriebssystem möglicherweise keinerlei Kontext speichert. Der Ruhezustand S5 kann ein System in einen „weichen“ Ausschaltzustand versetzen und ein vollständiges Booten erfordern, wenn das System in einen aktiven Zustand überleitet. In einigen Beispielen kann der erste Ruhezustand als ein Bereitschaftszustand bezeichnet werden, kann der zweite Ruhezustand als ein Ruhezustand bezeichnet werden, kann der dritte Ruhezustand als ein Unterbrechungszustand bezeichnet werden, kann der vierte Ruhezustand als ein Null-Energie-Zustand bezeichnet werden und kann der fünfte Ruhezustand als ein weicher Ausschaltzustand bezeichnet werden.
  • Bei Block 204 kann eine Rückrufinformationsverwaltung 122 für jeden von mehreren Treibern des Systems historische Rückrufinformationen erkennen. Ein Energiezustands-Überleitungsbetrieb kann zum Beispiel einen Satz von Befehlen beinhalten, die von jedem Treiber auszuführen sind, der in einem Rechengerät gespeichert ist. In einigen Ausführungsformen können die historischen Rückrufinformationen eine Ausführungszeit für einen Treiber zum Ausführen eines Satzes von Befehlen für das Überleiten zwischen Energiezuständen beinhalten. Zum Beispiel können die Rückrufinformationen einer Zeitspanne entsprechen, die ein Prozessor nutzt, um den Energiezustands-Überleitungsbetrieb auszuführen und ein Ergebnis zurückmelden. In einigen Beispielen können die Rückrufinformationen eine Zeitspanne für einen Prozessor zum Bereitstellen eines Ergebnisses aus einem sperrenden oder synchronen Rückrufcode anzeigen, der ausgeführt werden kann, bevor eine Funktion zurückgegeben wird, die dem zurückgemeldeten Energiezustands-Überleitungsbetrieb entspricht. In einigen Ausführungsformen kann die Rückrufinformationsverwaltung 122 die historischen Rückrufinformationen für jeden Treiber aus einem früheren ausgeführten Energiezustands-Überleitungsbetrieb erfassen. In einigen Beispielen umfassen die historischen Rückrufinformationen für jeden Treiber einen Unterbrechungswert und einen Wiederaufnahmewert. Ein Unterbrechungswert, auf den im Vorliegenden Bezug genommen wird, zeigt eine Ausführungszeit für einen Prozessor zum Ausführen eines Treibers gemäß einem Überleiten eines Geräts von einem aktiven Zustand in einen beliebigen geeigneten Ruhezustand an. Ein Wiederaufnahmewert, auf den im Vorliegenden Bezug genommen wird, zeigt eine Ausführungszeit für einen Prozessor zum Ausführen eines Treibers gemäß einem Überleiten eines Gerätes von einem Ruhezustand in einen aktiven Zustand an. In einigen Ausführungsformen können ein Unterbrechungswert und ein Wiederaufnahmewert für einen Treiber unterschiedlich sein, was anzeigt, dass ein Treiber beim Überleiten von einem aktiven Zustand in einen Ruhezustand eine andere Ausführungszeit aufweist als beim Überleiten von einem Ruhezustand in einen aktiven Zustand.
  • In einigen Ausführungsformen kann die Rückrufinformationsverwaltung 122 den Unterbrechungswert oder den Wiederaufnahmewert für mindestens einen der mehreren Treiber in Reaktion auf das Erkennen einer Veränderung des mindestens einen Treibers aktualisieren. Eine Aktualisierung für einen Treiber kann zum Beispiel dazu führen, dass die Rückrufinformationsverwaltung 122 bestimmt, ob der Treiber eine andere Ausführungszeit aufweist, wenn ein Energiezustands-Überleitungsbetrieb ausgeführt wird.
  • In einigen Beispielen können die Rückrufinformationen für ein Überleiten zwischen einer beliebigen Anzahl von Energiezuständen gespeichert werden. Zum Beispiel kann ein erster Ruhezustand oder Ruhezustand S1 das Bewahren eines Video-Controller-Kontexts und eines Videospeicherinhalts beinhalten. In einigen Ausführungsformen beinhaltet ein zweiter Ruhezustand oder Ruhezustand S2 möglicherweise kein Bewahren des Video-Controller-Kontexts oder des Videospeicherinhalts. In ähnlicher Weise kann ein Audiogerätetreiber eine Pausenanweisung erzeugen und Audiokontextinformationen speichern, die nach dem Überleiten eines Geräts in einen Niedrigenergiezustand, wie beispielsweise einen beliebigen geeigneten Ruhezustand, wiederaufgenommen werden können. In einigen Ausführungsformen kann ein Überleiten in einen Ruhezustand dazu führen, dass der Audiogerätetreiber alle Audioverbindungen schließt. Dementsprechend können der Wiederaufnahmewert oder der Unterbrechungswert, die einem ersten Ruhezustand oder einem zweiten Ruhezustand entsprechen, unterschiedlich sein. In einigen Ausführungsformen kann die Rückrufinformationsverwaltung 122 die Rückrufinformationen für einen Treiber für eine einzelne Ausführung eines Energiezustands-Überleitungsbetriebes speichern und der Rückrufinformationen für einen nachfolgenden Energiezustands-Überleitungsbetrieb verwenden. Die Rückrufinformationsverwaltung 122 kann zum Beispiel einen Unterbrechungswert für ein Überleiten von einem aktiven Zustand in einen ersten Ruhezustand erkennen und den Unterbrechungswert für nachfolgende Energieüberleitungen von einem aktiven Zustand in einen ersten Ruhezustand verwenden. In ähnlicher Weise kann die Rückrufinformationsverwaltung 122 Unterbrechungs- und Wiederaufnahmewerte für ein Überleiten zwischen einem aktiven Zustand und einem ersten Energiezustand, einem aktiven Zustand und einem zweiten Energiezustand, einem aktiven Zustand und einem dritten Energiezustand und einem aktiven Zustand und einem vierten Energiezustand und einem aktiven Zustand und einem fünften Energiezustand speichern.
  • Bei Block 206 kann die Treiberzuordnungseinrichtung 124 die mehreren Treiber basierend auf den historischen Rückrufinformationen mehreren Treibergruppen zuordnen. Eine Treiberzuordnungseinrichtung 124 kann zum Beispiel eine Anzahl von Prozessoren in einem System bestimmen, die den Energiezustands-Überleitungsbetrieb für verschiedene Treiber ausführen können. In einigen Ausführungsformen können die Prozessoren den Energiezustands-Überleitungsbetrieb für mehrere Treiber parallel ausführen. Zum Beispiel kann ein erster Prozessor einen Audiotreiber ausführen, um einen Energiezustand eines Audiogerätes von einem aktiven Zustand in einen Ruhezustand oder von einem Ruhezustand in einen aktiven Zustand überzuleiten. Ein zweiter Prozessor kann gleichzeitig einen Grafiktreiber ausführen, um den Energiezustand des Grafikgerätes von einem aktiven Zustand in einen Ruhezustand oder von einem Ruhezustand in einen aktiven Zustand überzuleiten. Somit können mehrere Prozessoren gleichzeitig den Energiezustands-Überleitungsbetrieb für eine beliebige Anzahl von Treibern basierend auf den Treibergruppen auswähren, was die Wartezeit für das Versetzen eines Geräts in einen anderen Energiezustand verkürzen kann. In einigen Ausführungsformen ordnet die Treiberzuordnungseinrichtung 124 die Treiber zu, die aktuell durch ein Rechengerät ausgeführt werden, und ordnet keine Treiber zu, die zurzeit nicht verwendet werden.
  • In einigen Beispielen kann die Treiberzuordnungseinrichtung 124 mit Hilfe einer beliebigen geeigneten Technik, wie beispielsweise einer Greedy-Technik, einer Brute-Force-Technik, einer Neuralnetzwerktechnik und dergleichen, mehrere Treiber Gruppen zuordnen. Zum Beispiel kann die Treiberzuordnungseinrichtung 124 einen beliebigen geeigneten Algorithmus oder eine beliebige geeignete Technik verwenden, um eine Gruppe von Treibern zu bestimmen, die mit jedem Prozessor auszuführen sind, um die Wartezeit während des Energiezustands-Überleitungsbetriebes zu verkürzen. In einigen Ausführungsformen kann die Treiberzuordnungseinrichtung 124 die mehreren Treiber basierend auf der historischen Rückrufzeit jedes Treibers, einer Anzahl von Prozessoren des Systems und einer Anzahl von Treibern, die in den Energiezustands-Überleitungsbetrieb eingebunden sind, zuordnen. In einigen Ausführungsformen ordnet die Treiberzuordnungseinrichtung 124 Treiber zu und sendet die Treiber für jede Überleitung zwischen Energiezuständen an verschiedene Prozessoren. Ein Bespiel für das Gruppieren von Treibern ist im Weiteren detaillierter in Bezug auf 3 beschrieben.
  • Bei Block 208 kann ein Zeitplanungsprogramm 126 den Energiezustands-Überleitungsbetrieb durch Übermitteln von Energiezustandsbefehlen für jeden Treiber an mehrere Prozessoren basierend auf den mehreren Treibergruppen ausführen. Wie vorstehend erläutert, können die mehreren Prozessoren unter anderem Einkernprozessoren, Mehrkernprozessoren oder einen einzelnen Mehrkernprozessor beinhalten. In einigen Beispielen sind die mehreren Prozessoren, welche die Energiezustandsbefehle ausführen, mehrere Verarbeitungskerne, die sich in einem einzelnen Mehrkernprozessor befinden. Die Energiezustandsbefehle, auf den im Vorliegenden Bezug genommen wird, kann die Befehle beinhalten, die durch jeden Treiber ausgeführt werden, um ein Gerät von einem ersten Energiezustand in einen zweiten Energiezustand überzuleiten. Die Energiezustandsbefehle können zum Beispiel ein Audiogerät zwischen Energiezuständen überleiten, eine Grafikkarte zwischen Energiezuständen überleiten und dergleichen. In einigen Ausführungsformen führen die Prozessoren den Energiezustands-Überleitungsbetrieb für jeden Treiber aus, bevor eine Energie-zu-Ruhe-Routine ausgeführt wird. Der Energiezustands-Überleitungsbetrieb für jeden Treiber kann zum Beispiel ausgeführt werden, bevor das Zeitplanungsprogramm 126 einen Ruhevektor von im Cache gespeicherten Daten in einen dauerhaften oder nicht-flüchtigen Speicher schreibt. In einigen Ausführungsformen zeigt das Zeitplanungsprogramm 126 eine Aktivierungsroutine an, die im Cache gespeicherte Daten aus dem dauerhaften oder nicht-flüchtigen Speicher abruft, bevor der Energiezustands-Überleitungsbetrieb an eine beliebige Anzahl von Treibern für Geräte übermittelt wird. Das Zeitplanungsprogramm 126 kann das System in Reaktion darauf, dass Treiber für eine beliebige Anzahl von Geräte den Energiezustands-Überleitungsbetrieb ausführen, in den angeforderten Energiezustand überleiten. Wie vorstehend erläutert, kann das Zeitplanungsprogramm 126 die Gruppen von Treibern an eine beliebige Anzahl von Prozessoren übermitteln, wobei die Gruppen basierend auf Treibern ausgewählt werden, die gleichzeitig von mehreren Prozessoren ausgeführt werden können, um die Wartezeit zu verkürzen, die durch das Überleiten von einem ersten Energiezustand in einen zweiten Energiezustand verursacht wird.
  • Das Prozessablaufdiagramm von 2 soll nicht anzeigen, dass die Operationen des Verfahrens 200 in einer bestimmten Reihenfolge ausgeführt werden müssen oder dass alle Operationen des Verfahrens 200 in jedem Fall enthalten sein müssen. Des Weiteren kann das Verfahren 200 eine beliebige geeignete Anzahl zusätzlicher Operationen beinhalten. Zum Beispiel kann das Zeitplanungsprogramm 126 den Prozessoren anzeigen, dass der Prozessorzustand in einen anderen Energiezustand überzuleiten ist, sobald die Gerätetreiber den Energiezustands-Überleitungsbetrieb ausgeführt haben. Die anderen Energiezustände der Prozessoren können das Modifizieren der Cache-Kohärenz, das Leeren eines Caches oder das Drosseln des Ausführens von Befehlen beinhalten.
  • 3 ist ein Blockdiagramm von Prozessoren, die einen Energiezustands-Überleitungsbetrieb ausführen. Das Zeitplanungsprogramm 126 kann Energiezustands-Überleitungsbetriebe für Treiber an eine beliebige Anzahl von Prozessoren übermitteln, wie beispielsweise den Prozessor 0 302 und den Prozessor 1 304. In einigen Ausführungsformen können der Prozessor 0 302 und der Prozessor 1 304 Einkernprozessoren oder Verarbeitungskerne sein, die sich in einem einzelnen Mehrkernprozessor befinden. Zum Beispiel können der Prozessor 0 302 und der Prozessor 1 304 unabhängige Verarbeitungseinheiten sein, die auf einem einzelnen Nacktchip mit integrierter Schaltung gefertigt sind. In einigen Beispielen können der Prozessor 0 302 und der Prozessor 1 304 unabhängige Verarbeitungseinheiten sein, die auf mehreren Nacktchips mit integrierter Schaltung in einem einzelnen Chipträger oder einem einzelnen Chip-Package gefertigt sind. In einigen Ausführungsformen übermittelt das Zeitplanungsprogramm 126 den Energiezustands-Überleitungsbetrieb basierend auf einer Rückrufzeit jedes Treibers. Zum Beispiel kann der Treiber 0 eine Rückrufzeit von 20 Millisekunden aufweisen, der Treiber 1 kann eine Rückrufzeit von 30 Millisekunden aufweisen und der Treiber 2 kann eine Rückrufzeit von 50 Millisekunden aufweisen. Das Zeitplanungsprogramm 126 kann Befehle für den Energiezustands-Überleitungsbetrieb für Treiber 0 und Treiber 1 an den Prozessor 0 302 übermitteln und kann Befehle für den Energiezustands-Überleitungsbetrieb für Treiber 2 an den Prozessor 1 304 übermitteln. Das Zeitplanungsprogramm 126 kann somit gewährleisten, dass der Energiezustands-Überleitungsbetrieb durch den Treiber 0, den Treiber 1 und den Treiber 2 innerhalb von 50 Millisekunden ausgeführt wird. Wenn das Zeitplanungsprogramm 126 den Treiber 1, den Treiber 1 und den Treiber 2 nicht zuordnet, um die Wartezeit zu minimieren, kann die Zeitspanne zum Ausführen der Energiezustands-Überleitungsbetriebe für die Treiber länger sein. Wenn das Zeitplanungsprogramm 126 zum Beispiel die Befehle für den Energiezustands-Überleitungsbetrieb für Treiber 2 und Treiber 0 an entweder den Prozessor 0 302 oder den Prozessor 1 304 übermittelte, wäre die Ausführungszeit länger als 50 Millisekunden. Somit können die im Vorliegenden beschriebenen Techniken die Zeitspanne zum Ausführen des Energiezustands-Überleitungsbetriebes mit Hilfe einer beliebigen Anzahl an Prozessoren oder Verarbeitungskernen minimieren.
  • In einigen Ausführungsformen kann die Treiberzuordnungseinrichtung 124 Abhängigkeiten zwischen Treibern bestimmen. Zum Beispiel kann ein erster Treiber von einem zweiten Treiber abhängen. Die Treiberzuordnungseinrichtung 124 kann den ersten Treiber und den zweiten Treiber einem einzelnen Prozessor zuweisen, um eine sequentielle Ausführung des ersten Treibers und des zweiten Treibers zu ermöglichen. Dementsprechend können die Rückrufinformationen für den ersten Treiber und den zweiten Treiber vereinigt werden, um anzuzeigen, dass der erste Treiber und der zweite Treiber nicht parallel auf mehreren Prozessoren ausgeführt werden können.
  • Es versteht sich, dass das Blockdiagramm von 3 nicht anzeigen soll, dass das Rechengerät 300 alle Komponenten enthalten muss, die in 3 gezeigt sind. Stattdessen kann das Rechengerät 300 weniger oder zusätzliche Komponenten beinhalten, die in 3 nicht dargestellt sind (z. B. zusätzliche Prozessoren, Treiber usw.).
  • 4 ist ein beispielhaftes Blockdiagramm für ein nicht-flüchtiges computerlesbares Medium zum Verwalten von Energiezuständen. Auf das materielle, nicht-flüchtige computerlesbare Medium 400 kann durch einen Prozessor 402 über eine Computerverbindung 404 zugegriffen werden. Darüber hinaus kann das materielle, nicht-flüchtige computerlesbare Medium 400 Code beinhalten, um den Prozessor 402 anzuweisen, die Operationen des derzeitigen Verfahrens auszuführen.
  • Die im Vorliegenden beschriebenen verschiedenen Software-Komponenten können auf dem materiellen, nicht-flüchtigen computerlesbaren Medium 400 gespeichert sein, wie in 4 angezeigt. Zum Beispiel kann eine Energiezustandsverwaltung 406 einen Energiezustands-Überleitungsbetrieb erkennen. In einigen Ausführungsformen kann eine Rückrufinformationen-Verwaltung 408 für jeden von mehreren Treibern des Systems historische Rückrufinformationen erkennen. In einigen Ausführungsformen kann eine Treiberzuordnungseinrichtung 410 die mehreren Treiber basierend auf den historischen Rückrufinformationen mehreren Treibergruppen zuordnen. In einigen Ausführungsformen kann ein Zeitplanungsprogramm 410 den Energiezustands-Überleitungsbetrieb durch Übermitteln mehrerer Energiezustandsbefehle für jeden Treiber an mehrere Prozessoren basierend auf den mehreren Treibergruppen ausführen.
  • Es versteht sich, dass eine beliebige geeignete Anzahl der in 4 gezeigten Software-Komponenten in dem materiellen, nicht-flüchtigen computerlesbaren Medium 400 enthalten sein kann. Darüber hinaus kann abhängig von der speziellen Anwendung eine beliebige Anzahl zusätzlicher Software-Komponenten, die in 4 nicht gezeigt sind, in dem materiellen, nicht-flüchtigen computerlesbaren Medium 400 enthalten sein.
  • BEISPIEL 1
  • In einigen Beispielen kann ein System zum Verwalten von Energiezuständen mehrere Prozessoren und ein Langzeitspeichergerät zum Speichern computerausführbarer Befehle beinhalten, wobei die computerausführbaren Befehle einen Energiezustands-Überleitungsbetrieb und historische Rückrufinformationen für jeden von mehreren Treibern des Systems erkennen können. In einigen Ausführungsformen kann der Prozessor außerdem die mehreren Treiber basierend auf den historischen Rückrufinformationen mehreren Treibergruppen zuordnen und den Energiezustands-Überleitungsbetrieb durch Übermitteln mehrerer Energiezustandsbefehle für jeden Treiber an die mehreren Prozessoren, basierend auf den mehreren Treibergruppen, ausführen.
  • Alternativ oder zusätzlich können die computerausführbaren Befehle die historischen Rückrufinformationen für jeden Treiber aus einem vorher ausgeführten Energiezustands-Überleitungsbetrieb erfassen. Alternativ oder zusätzlich können die historischen Rückrufinformationen für jeden Treiber einen Unterbrechungswert und einen Wiederaufnahmewert beinhalten. Alternativ oder zusätzlich können die computerausführbaren Befehle den Unterbrechungswert oder den Wiederaufnahmewert für mindestens einen der mehreren Treiber in Reaktion auf das Erkennen einer Veränderung des mindestens einen Treibers aktualisieren. Alternativ oder zusätzlich können die computerausführbaren Befehle die mehreren Treiber basierend auf einer Greedy-Technik, einer Brute-Force-Technik oder einer Neurainetzwerktechnik zuordnen. Alternativ oder zusätzlich kann eine Anzahl der Treibergruppen einer Anzahl von Prozessoren des Systems entsprechen. Alternativ oder zusätzlich können die computerausführbaren Befehle die mehreren Treiber basierend auf der historischen Rückrufzeit für jeden Treiber, einer Anzahl von Prozessoren in dem System und einer Anzahl von Treibern, die dem Energiezustands-Überleitungsbetrieb entsprechen, zuordnen. Alternativ oder zusätzlich kann der Energiezustands-Überleitungsbetrieb eine Überleitung zwischen einem aktiven Zustand und einem ersten Ruhezustand, dem aktiven Zustand und einem zweiten Ruhezustand, dem aktiven Zustand und einem dritten Ruhezustand, dem aktiven Zustand und einem vierten Ruhezustand oder dem aktiven Zustand und einem fünften Ruhezustand beinhalten.
  • BEISPIEL 2
  • In einigen Ausführungsformen kann ein Verfahren zum Verwalten von Energiezuständen das Erkennen eines Energiezustands-Überleitungsbetriebes und das Erkennen von historischen Rückrufinformationen für jeden von mehreren Treibern des Systems beinhalten. Das Verfahren kann außerdem das Zuordnen der mehreren Treiber zu mehreren Treibergruppen, basierend auf den historischen Rückrufinformationen, und das Ausführen des Energiezustands-Überleitungsbetriebes durch Übermitteln mehrerer Energiezustandsbefehle für jeden Treiber an mehrere Prozessoren, basierend auf den mehreren Treibergruppen, beinhalten.
  • Alternativ oder zusätzlich kann das Verfahren das Erfassen der historischen Rückrufinformationen für jeden Treiber aus einem vorher ausgeführten Energiezustands-Überleitungsbetrieb beinhalten. Alternativ oder zusätzlich können die historischen Rückrufinformationen für jeden Treiber einen Unterbrechungswert und einen Wiederaufnahmewert beinhalten. Alternativ oder zusätzlich kann das Verfahren das Aktualisieren des Unterbrechungswertes oder des Wiederaufnahmewertes für mindestens einen der mehreren Treiber in Reaktion auf das Erkennen einer Veränderung des mindestens einen Treibers beinhalten. Alternativ oder zusätzlich kann das Verfahren das Zuordnen der mehreren Treiber basierend auf einer Greedy-Technik, einer Brute-Force-Technik oder einer Neuralnetzwerktechnik beinhalten. Alternativ oder zusätzlich kann eine Anzahl der Treibergruppen einer Anzahl von Prozessoren des Systems entsprechen. Alternativ oder zusätzlich kann das Verfahren das Zuordnen der mehreren Treiber basierend auf der historischen Rückrufzeit jedes Treibers, einer Anzahl von Prozessoren in dem System und einer Anzahl von Treibern, die dem Energiezustands-Überleitungsbetrieb entsprechen, beinhalten. Alternativ oder zusätzlich kann der Energiezustands-Überleitungsbetrieb eine Überleitung zwischen einem aktiven Zustand und einem ersten Ruhezustand, dem aktiven Zustand und einem zweiten Ruhezustand, dem aktiven Zustand und einem dritten Ruhezustand, dem aktiven Zustand und einem vierten Ruhezustand oder dem aktiven Zustand und einem fünften Ruhezustand beinhalten.
  • BEISPIEL 3
  • In einigen Ausführungsformen kann ein nicht-flüchtiges computerlesbares Medium zum Verwalten von Energiezuständen mehrere Befehle beinhalten, die in Reaktion darauf, dass sie von einem Prozessor ausgeführt werden, den Prozessor veranlassen, einen Energiezustands-Überleitungsbetrieb und historische Rückrufinformationen für jeden von mehreren Treibern des Systems zu erkennen. Die mehreren Befehle können den Prozessor außerdem veranlassen, die mehreren Treiber basierend auf den historischen Rückrufinformationen mehreren Treibergruppen zuzuordnen und den Energiezustands-Überleitungsbetrieb durch Übermitteln mehrerer Energiezustandsbefehle für jeden Treiber an mehrere Prozessoren, basierend auf den mehreren Treibergruppen, auszuführen.
  • Alternativ oder zusätzlich können die mehreren Befehle außerdem den Prozessor veranlassen, die historischen Rückrufinformationen für jeden Treiber aus einem vorher ausgeführten Energiezustands-Überleitungsbetrieb zu erfassen. Alternativ oder zusätzlich können die historischen Rückrufinformationen für jeden Treiber einen Unterbrechungswert und einen Wiederaufnahmewert beinhalten. Alternativ oder zusätzlich können die mehreren Befehle den Prozessor außerdem veranlassen, den Unterbrechungswert oder den Wiederaufnahmewert für mindestens einen der mehreren Treiber in Reaktion auf das Erkennen einer Veränderung des mindestens einen Treibers zu aktualisieren. Alternativ oder zusätzlich können die mehreren Befehle den Prozessor außerdem veranlassen, die mehreren Treiber basierend auf einer Greedy-Technik, einer Brute-Force-Technik oder einer Neuralnetzwerktechnik zuzuordnen. Alternativ oder zusätzlich kann eine Anzahl der Treibergruppen einer Anzahl von Prozessoren des Systems entsprechen. Alternativ oder zusätzlich können die mehreren Befehle den Prozessor außerdem veranlassen, die mehreren Treiber basierend auf der historischen Rückrufzeit jedes Treibers, einer Anzahl von Prozessoren in dem System und einer Anzahl von Treibern, die dem Energiezustands-Überleitungsbetrieb entsprechen, zuzuordnen. Alternativ oder zusätzlich kann der Energiezustands-Überleitungsbetrieb eine Überleitung zwischen einem aktiven Zustand und einem ersten Ruhezustand, dem aktiven Zustand und einem zweiten Ruhezustand, dem aktiven Zustand und einem dritten Ruhezustand, dem aktiven Zustand und einem vierten Ruhezustand oder dem aktiven Zustand und einem fünften Ruhezustand beinhalten.
  • BEISPIEL 4
  • In einigen Beispielen kann ein System zum Verwalten von Energiezuständen mehrere Prozessoren und ein Langzeitspeichergerät zum Speichern computerausführbarer Befehle beinhalten, wobei die computerausführbaren Befehle Mittel zum Erkennen eines Energiezustands-Überleitungsbetriebes und Mittel zum Erkennen von historischen Rückrufinformationen für jeden von mehreren Treibern des Systems umfassen. In einigen Ausführungsformen können die computerausführbaren Befehle außerdem Mittel zum Zuordnen der mehreren Treiber zu mehreren Treibergruppen basierend auf den historischen Rückrufinformationen und Mittel zum Ausführen des Energiezustands-Überleitungsbetriebes durch Übermitteln mehrerer Energiezustandsbefehle für jeden Treiber an die mehreren Prozessoren, basierend auf den mehreren Treibergruppen, umfassen.
  • Alternativ oder zusätzlich können die computerausführbaren Befehle Mittel zum Erfassen der historischen Rückrufinformationen für jeden Treiber aus einem vorher ausgeführten Energiezustands-Überleitungsbetrieb beinhalten. Alternativ oder zusätzlich können die historischen Rückrufinformationen für jeden Treiber einen Unterbrechungswert und einen Wiederaufnahmewert beinhalten. Alternativ oder zusätzlich können die computerausführbaren Befehle Mittel zum Aktualisieren des Unterbrechungswertes oder des Wiederaufnahmewertes für mindestens einen der mehreren Treiber in Reaktion auf das Erkennen einer Veränderung des mindestens einen Treibers beinhalten. Alternativ oder zusätzlich können die computerausführbaren Befehle Mittel zum Zuordnen der mehreren Treiber basierend auf einer Greedy-Technik, einer Brute-Force-Technik oder einer Neuralnetzwerktechnik beinhalten. Alternativ oder zusätzlich kann eine Anzahl der Treibergruppen einer Anzahl von Prozessoren des Systems entsprechen. Alternativ oder zusätzlich können die computerausführbaren Befehle Mittel zum Zuordnen der mehreren Treiber basierend auf der historischen Rückrufzeit für jeden Treiber, einer Anzahl von Prozessoren in dem System und einer Anzahl von Treibern, die dem Energiezustands-Überleitungsbetrieb entsprechen, beinhalten. Alternativ oder zusätzlich kann der Energiezustands-Überleitungsbetrieb eine Überleitung zwischen einem aktiven Zustand und einem ersten Ruhezustand, dem aktiven Zustand und einem zweiten Ruhezustand, dem aktiven Zustand und einem dritten Ruhezustand, dem aktiven Zustand und einem vierten Ruhezustand oder dem aktiven Zustand und einem fünften Ruhezustand beinhalten.
  • Obwohl in Bezug auf die Block- und Ablaufdiagramme in 1-4 eine beispielhafte Ausführungsform des offenbarten Erfindungsgegenstandes beschrieben ist, werden Durchschnittsfachleute leicht erkennen, dass alternativ viele andere Verfahren zum Umsetzen des offenbarten Erfindungsgegenstandes angewandt werden können. Zum Beispiel kann die Reihenfolge der Ausführung der Blöcke in Ablaufdiagrammen verändert werden und/oder einige der Blöcke in den beschriebenen Block/Ablaufdiagrammen können verändert, entfernt oder kombiniert werden.
  • In der vorstehenden Beschreibung wurden verschiedene Aspekte des offenbarten Erfindungsgegenstandes beschrieben. Zu Zwecken der Erläuterung wurden spezielle Zahlen, Systeme und Gestaltungen dargelegt, um ein gründliches Verständnis des Erfindungsgegenstandes bereitzustellen. Fachleuten, die den Nutzen dieser Offenbarung haben, wird sich jedoch erschließen, dass der Erfindungsgegenstand ohne diese speziellen Details in die Praxis umgesetzt werden kann. In anderen Fällen wurden allgemein bekannte Merkmale, Komponenten oder Module ausgelassen, vereinfacht, kombiniert oder geteilt, um den offenbarten Erfindungsgegenstand nicht zu verundeutlichen.
  • Verschiedene Ausführungsformen des offenbarten Erfindungsgegenstandes können in Hardware, Firmware, Software oder Kombinationen daraus umgesetzt werden und können durch Bezug oder in Verbindung mit Programmcode beschrieben sein, wie beispielsweise Befehle, Funktionen, Vorgänge, Datenstrukturen, Logik, Anwendungsprogramme, gestalterische Darstellungen oder Formate zur Simulation, Emulation und Fertigung einer Gestaltung, die, wenn durch eine Maschine darauf zugegriffen wird, dazu führen, das die Maschine Aufgaben ausführt, abstrakte Datenarten oder Hardware-Kontexte niedriger Ebene definiert oder ein Ergebnis erzeugt.
  • Programmcode kann Hardware mit Hilfe einer Hardware-Beschreibungssprache oder einer anderen funktionalen Beschreibungssprache darstellen, die im Wesentlichen ein Modell dafür bereitstellt, wie gestaltete Hardware erwartungsgemäß funktioniert. Programmcode kann Assembler- oder Maschinensprache oder Hardware-Definitionssprachen oder Daten sein, die kompiliert und/oder interpretiert werden können. Darüber hinaus ist es auf dem Fachgebiet üblich, von Software in der einen oder anderen Form als eine Aktion ausführend oder ein Ergebnis bewirkend zu sprechen. Derartige Ausdrücke sind lediglich eine verkürzte Art, die Ausführung von Programmcode durch ein Verarbeitungssystem anzugeben, das einen Prozessor veranlasst, eine Aktion durchzuführen oder ein Ergebnis zu erzeugen.
  • Programmcode kann zum Beispiel in einem flüchtigen und/oder einem nicht-flüchtigen Speicher, wie beispielsweise Langzeitspeichergeräten, und/oder in einem zugehörigen maschinenlesbaren oder maschinenzugängliche Medium gespeichert sein, einschließlich Festkörperspeicher, Festplatten, Disketten, optischer Speicher, Bändern, Flash-Speicher, Speicher-Sticks, Digitalvideoscheiben, DVDs, eines feldprogrammierbaren Gate-Arrays usw. sowie in exotischeren Medien, wie beispielsweise maschinenzugänglichen, den biologischen Zustand erhaltenden Langzeitspeicher. Ein maschinenlesbares Medium kann einen beliebigen materiellen Mechanismus zum Speichern, Übermitteln oder Empfangen von Informationen in einer durch eine Maschine, wie beispielsweise Antennen, Lichtleiter, Kommunikationsschnittstellen usw., lesbaren Form beinhalten. Programmcode kann in Form von Paketen, seriellen Daten, parallelen Daten usw. übermittelt werden und kann in einem komprimierten oder verschlüsselten Format verwendet werden.
  • Programmcode kann in Programmen umgesetzt sein, die auf programmierbaren Maschinen laufen, wie beispielsweise mobilen oder stationären Computern, PDAs, Beistellgeräten, Mobiltelefonen und Pagern, und anderen elektronischen Geräten, die jeweils einen Prozessor, einen flüchtigen und/oder nicht-flüchtigen Speicher, der vom Prozessor gelesen werden kann, mindestens ein Eingabegerät und/oder ein oder mehr Ausgabegeräte beinhalten. Programmcode kann auf die Daten angewandt werden, die mit Hilfe des Eingabegerätes eingegeben werden, um die beschriebenen Ausführungsformen auszuführen und um Ausgabeinformationen zu erzeugen. Die Ausgabeinformationen können auf ein oder mehrere Ausgabegerät angewandt werden. Durchschnittsfachleute können erkennen, dass Ausführungsformen des offenbarten Erfindungsgegenstandes mit verschiedenen Computersystemkonfigurationen in die Praxis umgesetzt werden können, einschließlich Multiprozessor- oder Mehrkernprozessorsystemen, Minicomputern, Großrechnern sowie Computern für Pervasive Computing oder Miniaturcomputern oder -prozessoren, die in praktisch jedes Gerät eingebettet sein können. Ausführungsformen des offenbarten Erfindungsgegenstandes können außerdem in verteilten Rechenumgebungen in die Praxis umgesetzt werden, in denen Aufgaben durch ferne Verarbeitungsgeräte ausgeführt werden können, die durch ein Kommunikationsnetz verknüpft sind.
  • Obwohl Operationen als sequentielle Prozesse beschrieben sein können, können einige der Operationen tatsächlich parallel, gleichzeitig und/oder in einer verteilten Umgebung ausgeführt werden und mit Programmcode, der für den Zugriff durch Ein- oder Mehrkernprozessormaschinen lokal und/oder fern gespeichert ist. Des Weiteren kann in einigen Ausführungsformen die Reihenfolge von Operationen neu angeordnet werden, ohne vom Geist des offenbarten Erfindungsgegenstandes abzuweichen. Programmcode kann durch oder in Verbindung mit eingebetteten Controllern verwendet werden.
  • Obwohl der offenbarte Erfindungsgegenstand anhand veranschaulichender Ausführungsformen beschrieben wurde, soll die Beschreibung nicht in einem beschränkenden Sinne ausgelegt werden. Verschiedene Modifizierungen der veranschaulichenden Ausführungsformen sowie weiterer Ausführungsformen des Erfindungsgegenstandes, die sich Fachleuten auf dem Gebiet, das der Erfindungsgegenstand betrifft, schließen, werden als im Geltungsbereich des offenbarten Erfindungsgegenstandes liegend betrachtet.

Claims (21)

  1. System zum Verwalten von Energiezuständen, Folgendes umfassend: mehrere Prozessoren und ein Langzeitspeichergerät zum Speichern von computerausführbaren Befehlen, wobei die computerausführbaren Befehle Folgendes umfassen: Mittel zum Erkennen eines Energiezustands-Überleitungsbetriebes, Mittel zum Erkennen von historischen Rückrufinformationen für jeden von mehreren Treibern des Systems, Mittel zum Zuordnen der mehreren Treiber zu mehreren Treibergruppen, basierend auf den historischen Rückrufinformationen, und Mittel zum Ausführen des Energiezustands-Überleitungsbetriebes durch Übermitteln mehrerer Energiezustandsbefehle für jeden Treiber an die mehreren Prozessoren, basierend auf den mehreren Treibergruppen.
  2. System nach Anspruch 1, wobei die computerausführbaren Befehle Mittel zum Erfassen der historischen Rückrufinformationen für jeden Treiber aus einem vorher ausgeführten Energiezustands-Überleitungsbetrieb umfassen.
  3. System nach Anspruch 1, wobei die historischen Rückrufinformationen für jeden Treiber einen Unterbrechungswert und einen Wiederaufnahmewert umfassen.
  4. System nach Anspruch 3, wobei die computerausführbaren Befehle Mittel zum Aktualisieren des Unterbrechungswertes oder des Wiederaufnahmewertes für mindestens einen der mehreren Treiber in Reaktion auf das Erkennen einer Veränderung des mindestens einen Treibers umfassen.
  5. System nach Anspruch 1, 2 oder 3, wobei die computerausführbaren Befehle Mittel zum Zuordnen der mehreren Treiber basierend auf einer Greedy-Technik, einer Brute-Force-Technik oder einer Neuralnetzwerktechnik umfassen.
  6. System nach Anspruch 1, 2 oder 3, wobei eine Anzahl der Treibergruppen einer Anzahl von Prozessoren des Systems entspricht.
  7. System nach Anspruch 1, 2 oder 3, wobei die computerausführbaren Befehle Mittel zum Zuordnen der mehreren Treiber basierend auf der historischen Rückrufzeit jedes Treibers, einer Anzahl von Prozessoren in dem System und einer Anzahl von Treibern, die dem Energiezustands-Überleitungsbetrieb entspricht, umfassen.
  8. System nach Anspruch 1, 2 oder 3, wobei der Energiezustands-Überleitungsbetrieb einen Übergang zwischen einem aktiven Zustand und einem ersten Ruhezustand, dem aktiven Zustand und einem zweiten Ruhezustand, dem aktiven Zustand und einem dritten Ruhezustand, dem aktiven Zustand und einem vierten Ruhezustand oder dem aktiven Zustand und einem fünften Ruhezustand umfasst.
  9. Verfahren zum Verwalten von Energiezuständen, Folgendes umfassend: Erkennen eines Energiezustands-Überleitungsbetriebes, Erkennen von historischen Rückrufinformationen für jeden von mehreren Treibern des Systems, Zuordnen der mehreren Treiber zu mehreren Treibergruppen, basierend auf den historischen Rückrufinformationen, und Ausführen des Energiezustands-Überleitungsbetriebes durch Übermitteln mehrerer Energiezustandsbefehle für jeden Treiber an mehrere Prozessoren, basierend auf den mehreren Treibergruppen.
  10. Verfahren nach Anspruch 9, umfassend das Erfassen der historischen Rückrufinformationen für jeden Treiber aus einem vorher ausgeführten Energiezustands-Überleitungsbetrieb.
  11. Verfahren nach Anspruch 9, wobei die historischen Rückrufinformationen für jeden Treiber einen Unterbrechungswert und einen Wiederaufnahmewert umfassen.
  12. Verfahren nach Anspruch 11, umfassend das Aktualisieren des Unterbrechungswertes oder des Wiederaufnahmewertes für mindestens einen der mehreren Treiber in Reaktion auf das Erkennen einer Veränderung des mindestens einen Treibers.
  13. Verfahren nach Anspruch 9, 10 oder 11, umfassend das Zuordnen der mehreren Treiber basierend auf einer Greedy-Technik, einer Brute-Force-Technik oder einer Neuralnetzwerktechnik.
  14. Verfahren nach Anspruch 9, 10 oder 11, wobei eine Anzahl der Treibergruppen einer Anzahl von Prozessoren des Systems entspricht.
  15. Verfahren nach Anspruch 9, 10 oder 11, umfassend das Zuordnen der mehreren Treiber basierend auf der historischen Rückrufzeit jedes Treibers, einer Anzahl an Prozessoren in dem System und einer Anzahl an Treibern, die dem Energiezustands-Überleitungsbetrieb entspricht.
  16. Verfahren nach Anspruch 9, 10 oder 11, wobei der Energiezustands-Überleitungsbetrieb einen Übergang zwischen einem aktiven Zustand und einem ersten Ruhezustand, dem aktiven Zustand und einem zweiten Ruhezustand, dem aktiven Zustand und einem dritten Ruhezustand, dem aktiven Zustand und einem vierten Ruhezustand oder dem aktiven Zustand und einem fünften Ruhezustand umfasst.
  17. Nicht-flüchtiges computerlesbares Medium zum Verwalten von Energiezuständen, mehrere Befehle umfassend, die in Reaktion darauf, dass sie durch einen Prozessor ausgeführt werden, den Prozessor zu Folgendem veranlassen: Erkennen eines Energiezustands-Überleitungsbetriebes, Erkennen von historischen Rückrufinformationen für jeden von mehreren Treibern des Systems, Zuordnen der mehreren Treiber zu mehreren Treibergruppen, basierend auf den historischen Rückrufinformationen, und Ausführen des Energiezustands-Überleitungsbetriebes durch Übermitteln mehrerer Energiezustandsbefehle für jeden Treiber an mehrere Prozessoren, basierend auf den mehreren Treibergruppen.
  18. Nicht-flüchtiges computerlesbares Medium nach Anspruch 17, wobei die mehreren Befehle den Prozessor veranlassen, die historischen Rückrufinformationen für jeden Treiber aus einem vorher ausgeführten Energiezustands-Überleitungsbetrieb zu erfassen.
  19. Nicht-flüchtiges computerlesbares Medium nach Anspruch 17, wobei die mehreren Befehle den Prozessor veranlassen, die mehreren Treiber basierend auf einer Greedy-Technik, einer Brute-Force-Technik oder einer Neuralnetzwerktechnik zuzuordnen.
  20. Nicht-flüchtiges computerlesbares Medium nach Anspruch 17, 18 oder 19, wobei die mehreren Befehle den Prozessor veranlassen, die mehreren Treiber basierend auf der historischen Rückrufzeit jedes Treibers, einer Anzahl von Prozessoren in dem System und einer Anzahl von Treibern, die in den Energiezustands-Überleitungsbetrieb eingebunden sind, zuzuordnen.
  21. Nicht-flüchtiges computerlesbares Medium nach Anspruch 17, 18 oder 19, wobei der Energiezustands-Überleitungsbetrieb einen Übergang zwischen einem aktiven Zustand und einem ersten Ruhezustand, dem aktiven Zustand und einem zweiten Ruhezustand, dem aktiven Zustand und einem dritten Ruhezustand, dem aktiven Zustand und einem vierten Ruhezustand oder dem aktiven Zustand und einem fünften Ruhezustand umfasst.
DE112016007529.4T 2016-12-20 2016-12-20 Verwaltung von Energiezuständen Pending DE112016007529T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/111024 WO2018112738A1 (en) 2016-12-20 2016-12-20 Power state management

Publications (1)

Publication Number Publication Date
DE112016007529T5 true DE112016007529T5 (de) 2019-09-26

Family

ID=62624430

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112016007529.4T Pending DE112016007529T5 (de) 2016-12-20 2016-12-20 Verwaltung von Energiezuständen

Country Status (4)

Country Link
US (1) US10936047B2 (de)
CN (1) CN109983418B (de)
DE (1) DE112016007529T5 (de)
WO (1) WO2018112738A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115617539A (zh) 2021-07-16 2023-01-17 联发科技(新加坡)私人有限公司 处理实时应用消息的方法及装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7065663B2 (en) * 2002-12-19 2006-06-20 Intel Corporation Methods and apparatus to control power state transitions
US7313708B2 (en) * 2004-04-28 2007-12-25 Microsoft Corporation Interlocked plug and play with power management for operating systems
US7565562B2 (en) 2004-09-03 2009-07-21 Intel Corporation Context based power management
JP4961781B2 (ja) * 2006-03-14 2012-06-27 ソニー株式会社 情報処理装置、その起動方法およびプログラム
US7971084B2 (en) * 2007-12-28 2011-06-28 Intel Corporation Power management in electronic systems
US20090204837A1 (en) * 2008-02-11 2009-08-13 Udaykumar Raval Power control system and method
CN101419485B (zh) * 2008-11-24 2014-12-31 电子科技大学 一种功能可变的可穿戴计算机主板
CN101827088B (zh) * 2010-03-15 2013-03-27 北京航空航天大学 基于cpu总线互联的底层通信协议实现方法
KR101738641B1 (ko) * 2010-12-17 2017-05-23 삼성전자주식회사 멀티 코어 시스템의 프로그램 컴파일 장치 및 방법
US8775836B2 (en) * 2010-12-23 2014-07-08 Intel Corporation Method, apparatus and system to save processor state for efficient transition between processor power states
CN102238236A (zh) 2011-07-12 2011-11-09 华南理工大学 基于ZigBee和页面生成的智能家电***及其实现方法
US8930633B2 (en) * 2012-06-14 2015-01-06 International Business Machines Corporation Reducing read latency using a pool of processing cores
US9207749B2 (en) * 2012-08-28 2015-12-08 Intel Corporation Mechanism for facilitating efficient operations paths for storage devices in computing systems
US9785447B2 (en) * 2014-06-27 2017-10-10 Intel Corporation System standby emulation with fast resume
US10198274B2 (en) * 2015-03-27 2019-02-05 Intel Corporation Technologies for improved hybrid sleep power management

Also Published As

Publication number Publication date
US10936047B2 (en) 2021-03-02
CN109983418B (zh) 2023-02-10
CN109983418A (zh) 2019-07-05
US20190278361A1 (en) 2019-09-12
WO2018112738A1 (en) 2018-06-28

Similar Documents

Publication Publication Date Title
DE112012000749B4 (de) Techniken zum Verwalten des Stromverbrauchszustands eines Prozessors
DE102013104328B4 (de) Aufgabenzuteilung in großen und kleinen Kernen
DE19728726B4 (de) Robotercontroller und dessen Steuerverfahren
DE102020132764A1 (de) Solid-state-drive mit externer softwareausführung zum bewirken von internen operationen des solid-state-drive
DE102016118210A1 (de) Granulare Dienstqualität für Computer-Ressourcen
DE60031404T2 (de) Verfahren und vorrichtung zur dynamischen änderung der grössen von pools, die die leistungsaufnahme von speichern steuern
DE112007001987B4 (de) Überführen einer Rechenplattform in einen Systemzustand niedriger Leistung
DE102010045743B4 (de) Verfahren und Vorrichtung, um Turboleistung für das Event-Handling zu verbessern
DE102014003704B4 (de) Plattform-agnostisches Powermanagement
DE102013017509A1 (de) Effiziente Speichervirtualisierung in mehrsträngigen Verarbeitungseinheiten
DE102015102684A1 (de) Dynamische leistungssversorgungseinheit- schienenumschaltung
DE102008016181A1 (de) Prioritätsbasiertes Drosseln für Leistungsaufnahme-Verarbeitungsleistung-Dienstgüte
DE102013017510A1 (de) Effiziente Speichervirtualisierung in mehrsträngigen Verarbeitungseinheiten
DE102013017511A1 (de) Effiziente speichervirtualisierung in mehrsträngigen verarbeitungseinheiten
DE112013000369T5 (de) Verwaltung von Threads innerhalb einer Datenverarbeitungsumgebung
DE112018005427T5 (de) Autonome adress-/befehls-chip-synchronisierte datenchip-adress-ablaufsteuerung für ein verteiltes pufferspeichersystem
DE102009031125A1 (de) Nand-Fehlerbehandlung
DE112013006093T5 (de) System und Verfahren zum Vorsehen von Energieeinsparungen in einer Prozessorumgebung
DE102008013033A1 (de) Fehlsicherer Computer-Support-Assistent
DE102016122375A1 (de) Dynamischer containerisierter Systemspeicherschutz für Niedrigenergie-MCUs
DE102008058209A1 (de) Anordnung und Verfahren um zu verhindern, dass ein Anwenderbetriebssystem in einem VMM System eine Anordnung abschaltet, die von einem Servicebetriebssystem verwendet wird
DE102013209643B4 (de) Mechanismus für optimierte Nachrichtenaustauschdatenübertragung zwischen Nodelets innerhalb eines Plättchens
DE112004001887T5 (de) Optimierung der SMI-Handhabung und -Initialisierung
DE112011101019T5 (de) Verarbeitung von Befehlen mit mehreren Prioritäten zwischen Back-End-Prozessoren
DE10393396B4 (de) Schnittstelle und Vorrichtungstreiber zum lokalen Leistungsmanagement sowie Verfahren und Software zu deren Steuerung

Legal Events

Date Code Title Description
R012 Request for examination validly filed