DE112017004758T5 - Verfahren und vorrichtung zum reduzieren des stromverbrauchs von rechenvorrichtungen - Google Patents

Verfahren und vorrichtung zum reduzieren des stromverbrauchs von rechenvorrichtungen Download PDF

Info

Publication number
DE112017004758T5
DE112017004758T5 DE112017004758.7T DE112017004758T DE112017004758T5 DE 112017004758 T5 DE112017004758 T5 DE 112017004758T5 DE 112017004758 T DE112017004758 T DE 112017004758T DE 112017004758 T5 DE112017004758 T5 DE 112017004758T5
Authority
DE
Germany
Prior art keywords
idle
idle period
determining
cpu
power
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
DE112017004758.7T
Other languages
English (en)
Inventor
Derrick A. Jones
Jithendra S. Kancherlapalli
Michael C. Walz
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 DE112017004758T5 publication Critical patent/DE112017004758T5/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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • 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
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • 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/3243Power saving in microcontroller unit
    • 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)
  • Power Sources (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)

Abstract

Verfahren, Vorrichtungen, Systeme und Herstellungsartikel zum Reduzieren des Stromverbrauchs von Rechenvorrichtung werden offenbart. Beispiele bestimmen eine Leerlaufperiode auf Basis von Hardwareresidenz der Rechenvorrichtung und legen einen Timer zum Aufwecken einer zentralen Verarbeitungseinheit (CPU) aus einem Zustand mit niedriger Leistung nach der Leerlaufperiode fest, wobei die CPU den Leerlaufzustand mit niedriger Leistung in Reaktion auf den Ablauf der Leerlaufperiode zu verlassen hat.

Description

  • GEBIET DER OFFENBARUNG
  • Diese Offenbarung betrifft generell Leistungsmanagement und insbesondere Verfahren und eine Vorrichtung zum Reduzieren des Stromverbrauchs von Computervorrichtungen.
  • HINTERGRUND
  • In den letzten Jahren sind Leerlaufzustände mit niedriger Leistung auf statisch definierte Zeiträume beschränkt. Die Leerlaufzustände mit niedriger Leistung werden basierend auf einer Zuordnung von Plattformzuständen mit niedriger Leistung zu akzeptablen Geräteleistungszuständen für zugeordnete Geräte initiiert/beendet. Die akzeptablen Leistungszustände von Vorrichtungen werden häufig im Basic Input Output System (BIOS) einer Rechenvorrichtung programmiert und überwachen daher keine Änderungen der Hardwarekonfiguration, die während der Laufzeit der Rechenvorrichtung auftreten können.
  • Figurenliste
    • 1 ist eine Veranschaulichung einer beispielhaften Rechenvorrichtung.
    • 2 ist eine Veranschaulichung einer beispielhaften Rechenvorrichtung mit einer beispielhaften Leistungssteuereinrichtung gemäß den Lehren dieser Offenbarung.
    • 3 ist ein Flussdiagramm, das für computerlesbare Anweisungen repräsentativ ist, die ausgeführt werden können, um die beispielhafte Leistungssteuereinrichtung der 2 zu implementieren.
    • 4 ist eine beispielhafte Implementierung computerlesbarer Anweisungen, die ausgeführt werden können, um die beispielhafte Leerlaufzeitvorhersagefunktion der 2 zu implementieren.
    • 5 ist ein Flussdiagramm, das für computerlesbare Anweisungen repräsentativ ist, die ausgeführt werden können, um die beispielhafte Leerlaufzeitvorhersagefunktion der 2 zu implementieren.
    • 6 ist eine beispielhafte Prozessorplattform, die dazu in der Lage ist, die computerlesbaren Anweisungen der 3 auszuführen, um die beispielhafte Leistungssteuereinrichtung der 2 zu implementieren, und die computerlesbaren Anweisungen der 5 auszuführen, um die beispielhafte Leerlaufzeitvorhersagefunktion der 2 zu implementieren.
  • Wann immer möglich werden die gleichen Referenzzahlen in der bzw. den Zeichnung(en) und der beigefügten schriftlichen Beschreibung als Bezugnahme auf die gleichen oder ähnlichen Teile verwendet.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Rechenvorrichtungen gehen aus zahlreichen Gründen von einem Leistungszustand zum anderen über. Eine Rechenvorrichtung kann beispielsweise von einem Leerlaufzustand mit niedriger Leistung zum Normalbetrieb übergehen (zum Beispiel Aufwachen), um eine oder mehrere Anweisungen auszuführen, als Resultat des Ablaufs eines Softwaretimers, als ein Resultat eines Interrupts usw. In manchen Beispielen kann ein Betriebssystem (OS) der Rechenvorrichtung einen oder mehrere Softwaretimer innerhalb einer vordefinierten Toleranz (zum Beispiel durch einen Schwellenwertbetrag) derart verzögern, dass mehrere Softwaretimer zur gleichen Zeit oder im Wesentlichen zur gleichen Zeit ablaufen, und es kann während eines einzelnen Wachzustands der Computerverarbeitungseinheit (CPU) adressiert werden, anstatt die CPU jedes Mal zu wecken, wenn ein nicht verzögerter Softwaretimer abläuft. Solche Verzögerungen veranlassen eine Rechenvorrichtung über einen längeren Zeitraum hinweg in einem Zustand mit niedriger Leistung zu verbleiben.
  • Rechenvorrichtungen verfügen häufig über mehrere Niedrigleistungszustände mit unterschiedlichen Privilegien. Eine Rechenvorrichtung mit einem Windows® Betriebssystem hat beispielsweise Leistungszustände S0, S1, S2, S3 und S4. Leistungszustand S0 entspricht einem voll funktionsfähigem Betriebszustand. Hardware kann Plattformleerlaufzustände innerhalb von Leistungszustand S0 implementieren, wie etwa S0i1, s0i2 usw., die wenig Leistung verbrauchen, aber eine kurze Wiederaufnahmezeit bereitstellen. Leistungszustände S1-S3 entsprechen Schlafzuständen. Leistungszustand S4 entspricht einem Ruhezustand. Rechenvorrichtungen gehen häufig in den niedrigsten möglichen Leistungszustand über, wenn ein Plattformleerlaufzustand-Eintrittmechanismus (zum Beispiel CPU-Anweisung „mwait“) ausgeführt wird.
  • Leistungszustand S1 entspricht einem ersten Niedrigleistungszustand, in dem die Rechenvorrichtung und/oder Komponenten davon, ausgeschaltet zu sein scheinen. Leistungszustand S1 konsumiert weniger Strom als der Leistungszustand S0. Leistungszustand S2 entspricht einem zweiten Niedrigleistungszustand, in dem die Rechenvorrichtung und/oder Komponenten davon ausgeschaltet zu sein scheinen. Leistungszustand S2 konsumiert weniger Strom als der Leistungszustand S0-S1. Leistungszustand S3 entspricht einem dritten Niedrigleistungszustand, in dem die Rechenvorrichtung und/oder Komponenten davon, ausgeschaltet zu sein scheinen. Leistungszustand S3 konsumiert weniger Strom als der Leistungszustand S0-S2. In Leistungszuständen S1-S3 wird der flüchtige Speicher aktualisiert (z. B. sparsam bereitgestellte Leistung), um den Systemzustand innerhalb des flüchtigen Speichers zu erhalten.
  • Leistungszustand S4 entspricht einem vierten Leistungszustand, in dem die Rechenvorrichtung und/oder Komponenten davon, ausgeschaltet zu sein scheinen. Im Gegensatz zu den Leistungszuständen S1-S3, in denen der flüchtige Speicher aktualisiert wird (z. B. sparsam bereitgestellte Leistung), um den Systemzustand innerhalb des flüchtigen Speichers zu erhalten, werden die Inhalte des flüchtigen Speichers in nicht-flüchtigen Speicher (z.B. einem, der keinen Strom benötigt) gespeichert, um den Systemzustand im Leistungszustand S4 zu erhalten. Da der flüchtige Speicher nicht aktualisiert werden muss, um den Systemzustand zu erhalten, konsumiert Leistungszustand S4 sogar noch weniger Strom als Leistungszustände S0 bis S3.
  • 1 veranschaulicht eine beispielhafte Rechenvorrichtung 100, einschließlich Hardware 102 und Software 104. In manchen Beispielen können Teile der Hardware 102 unter Verwendung von Software implementiert sein, Teile der Software 104 können unter Verwendung von Hardware implementiert sein und/oder Kombinationen davon aufweisen. Die beispielhafte Hardware 102 beinhaltet eine zentrale Recheneinheit (CPU) 106, einen Speicher 108, eine oder mehrere Hardwarevorrichtungen 110 und eine Stromversorgung 112. Die beispielhafte CPU 106 ist ein Mikroprozessor, wie etwa beispielsweise Intel® Core i3, i5, i7, Intel® Atom oder andere Prozessoren/Mikroprozessoren, die x86-Anweisungssätze nutzen. Es können auch andere Anweisungssätze verwendet werden. Der beispielhafte Speicher 108 kann ein flüchtiger oder nicht-flüchtiger Speicher sein. Der beispielhafte Speicher 108 speichert Anweisungen zur Ausführung durch die beispielhafte CPU 106. Beispielhafte Hardwarevorrichtungen 110 beinhalten Eingabe-/Ausgabevorrichtungen (z.B. Maus, Tastatur, Display, Touchscreen usw.), Netzwerkvorrichtungen (z.B. Modems, Netzwerkkarten usw.) oder andere Rechenvorrichtungshardware (z.B. Videokarten, Grafikkarten, Soundkarten usw.). In manchen Beispielen ist die Stromversorgung 112 einer Batterie (zum Beispiel Lithium-Ionen). Alternativ kann die Stromversorgung 112 eine Stromversorgungseinheit sein, die mit einem Stromnetz verbunden ist (zum Beispiel wird Strom über eine Steckdose empfangen).
  • Die beispielhafte Software 104 beinhaltet ein beispielhaftes Betriebssystem 114 und eine oder mehrere beispielhafte Anwendungen 116. Das beispielhafte Betriebssystem 114 beinhaltet eine beispielhafte Anwendungsprogrammschnittstelle 118 und eine beispielhafte Leistungssteuereinrichtung 119. Die beispielhafte Anwendungsprogrammschnittstelle 118 verbindet die eine oder mehreren beispielhaften Anwendungen 116 mit der beispielhaften Hardware 102. Die beispielhafte Leistungssteuereinrichtung 119 steuert den Leistungszustand (zum Beispiel S0-S4), in dem die Rechenvorrichtung 100 arbeitet.
  • Die beispielhafte Leistungssteuereinrichtung 119 der 1 beinhaltet einen Betriebssystem-Leistungsmanager (Operating System Power Manager; OSPM) 120, ein Vorrichtung-Scoreboard 122, eine Interrupt-Steuereinrichtung 124 und ein oder mehrere Timer 126. In manchen Beispielen überwacht der OSPM 120 Niedrigleistungsplattformzustände der Hardwarevorrichtungen 110, die der Rechenvorrichtung 100 zugeordnet sind. In manchen Beispielen bildet das Vorrichtung-Scoreboard 122 die Niedrigleistungsplattformzustände mit akzeptablen Vorrichtungsleistungszuständen für jede der Hardwarevorrichtungen 110 ab. Der OSPM 120 bestimmt auf Basis des Vorrichtung-Scoreboard 122, ob sich die überwachten Niedrigleistungsplattformzustände der Hardwarevorrichtung 110 in akzeptablen Zuständen befinden. In dem in 1 veranschaulichen Beispiel ist die Interrupt-Steuereinrichtung 124 eine Software-Interrupt-Steuereinrichtung 124. Wenn alle der überwachten Plattformzustände mit niedriger Leistung aller der Hardwarevorrichtung 110 sich in akzeptablen Zuständen befinden, weist der OSPM 120 die Software-Interrupt-Steuereinrichtung 124 an, den einen oder die mehreren Timer 126 auf einen bestimmten Wert einzustellen. Der eine oder die mehreren Timer 126 verzögern das Aufwachen der CPU 106 aus Niedrigleistungszuständen. Falls jedoch eine der Hardwarevorrichtungen 110 nicht mehr in einem akzeptablen Zustand verbleibt und/oder die Veränderung eines Leistungszustands auftritt (z.B. Änderung des Vorrichtungszustands, Verringerung der Hardware-Residenz, Benutzerinteraktion und/oder anderer externer Interrupt), wacht die CPU 106 aus einem Niedrigleistungszustand auf. Weiterhin verzögert sich der Eintritt der CPU 106 in noch niedrigere Leistungszustände, falls der eine oder die mehreren Timer 126 ein Aufwachen der CPU 106 aus Niedrigleistungszuständen zu lange verzögert bzw. verzögern, (z.B. das Aufwachen der CPU 106 aus Leistungszustand S1 zum Ausführen einer Anweisung, in den niedrigeren Leistungszustand S2 einzutreten, kann sich verzögern).
  • Wie hierin offenbart, sagen die beispielhaften Verfahren und die beispielhafte Vorrichtung den optimalen Zeitpunkt dafür, dass eine Rechenvorrichtung in einem bestimmten Leistungszustand verbleibt, voraus. 2 veranschaulicht eine beispielhafte Rechenvorrichtung 200 gemäß den Lehren dieser Offenbarung. Die beispielhafte Rechenvorrichtung 200 beinhaltet Hardware 202 und Software 204. In manchen Beispielen können Teile der Hardware 202 unter Verwendung von Software implementiert sein, Teile der Software 204 können unter Verwendung von Hardware implementiert sein, und/oder Kombinationen davon aufweisen. Die beispielhafte Hardware 202 beinhaltet eine CPU 206, einen Speicher 208, eine oder mehrere Hardwarevorrichtung(en) 210 und eine Stromversorgung 212. Die beispielhafte CPU 206 ist ein Mikroprozessor, wie etwa beispielsweise Intel® Core i3, i5, i7, Intel® Atom oder andere Prozessoren/Mikroprozessoren, die x86-Anweisungssätze nutzen. Es können auch andere Anweisungssätze verwendet werden. Der beispielhafte Speicher 208 kann ein flüchtiger oder nichtflüchtiger Speicher sein. Der beispielhafte Speicher 208 speichert Anweisungen zur Ausführung durch die beispielhafte CPU 206. Beispielhafte Hardwarevorrichtungen 210 beinhalten Eingabe-/Ausgabevorrichtungen (z.B. Maus, Tastatur, Display, Touchscreen usw.), Netzwerkvorrichtungen (z.B. Modems, Netzwerkkarten usw.) oder andere Rechenvorrichtungshardware (z.B. Videokarten, Grafikkarten, Soundkarten usw.). In manchen Beispielen ist die Stromversorgung 212 einer Batterie (zum Beispiel Lithium-Ionen). Alternativ kann die Stromversorgung 212 eine Stromversorgungseinheit sein, die mit einem Stromnetz verbunden ist (zum Beispiel wird Strom über eine Steckdose empfangen).
  • Die beispielhafte Software 204 beinhaltet ein Betriebssystem 214 und eine oder mehrere Anwendungen 216. Das beispielhafte Betriebssystem 214 beinhaltet eine beispielhafte Anwendungsprogrammschnittstelle 218 und eine beispielhafte Leistungssteuereinrichtung 219. Die beispielhafte Anwendungsprogrammschnittstelle 218 verbindet die eine oder mehreren beispielhaften Anwendungen 216 mit der beispielhaften Hardware 202. Die beispielhafte Leistungssteuereinrichtung 219 steuert den Leistungszustand (z.B. S0-S4), in dem die Rechenvorrichtung 200 arbeitet. Wie hierin offenbart, nutzt die Leistungssteuereinrichtung 219 Leistungszustands-Residenz-Zähler 220, um die optimale Leerlaufzeit für die beispielhafte Rechenvorrichtung 200 zum Verbleib in jeweiligen Niedrigleistungszuständen zu bestimmen.
  • In dem in 2 veranschaulichen Beispiel sind die beispielhaften Leistungszustand-Residenz-Zähler 220 Hardwaretimer, die von der CPU 206 implementiert werden. Die Leistungszustand-Residenz-Zähler 220 können beispielsweise modellspezifische Register (Model Specific Registers; MSR) sein. Die beispielhaften Leistungszustand-Residenz-Zähler 220 können jedoch auch durch andere Hardware 202 und/oder Firmware der Rechenvorrichtung 200 implementiert sein. Die beispielhaften Leistungszustand-Residenz-Zähler 220 zählen die Zeit, in der sich die Rechenvorrichtung 200 in den jeweiligen Leistungszuständen befindet. So kann beispielsweise ein erster einer der Leistungszustand-Residenz-Zähler 220 die Residenz der Rechenvorrichtung 200 in Leistungszustand S0i0 (z.B. residency_0) zählen, ein zweiter einer der Leistungszustand-Residenz-Zähler 220 kann die Residenz der Rechenvorrichtung 200 in Leistungszustand S0i1 (z.B. residency_1) zählen usw. Die Leistungszustand-Residenz-Zähler 220 können eine Systemuhr nutzen und von Null aufwärts zählen, wenn sich die Rechenvorrichtung 200 in jedem der jeweiligen Leistungszustände befindet. In manchen Beispielen können die jeweiligen einen der Leistungszustand-Residenz-Zähler 220 zurückgesetzt werden, wenn die Rechenvorrichtung 200 zu einem jeweiligen der Leistungszustände zurückkehrt. In manchen Beispielen wird die Residenz auf Basis einer Differenz zwischen zwei Zeitpunkten bestimmt.
  • Die beispielhafte Leistungssteuereinrichtung 219 beinhaltet einen beispielhaften OSPM 222, eine beispielhafte Leerlaufzeitvorhersagefunktion 224, einen beispielhaften Hardware-Residenz-Monitor 226, ein beispielhaftes Vorrichtung-Scoreboard 228, eine beispielhafte Interrupt-Steuereinrichtung 230 und einen oder mehrere beispielhafte Timer 232. In manchen Beispielen überwacht der OSPM 222 Niedrigleistungsplattformzustände der Hardwarevorrichtungen 210, die der Rechenvorrichtung 200 zugeordnet sind. In dem in 2 veranschaulichen Beispiel ist die Interrupt-Steuereinrichtung 230 eine Software-Interrupt-Steuereinrichtung 230.
  • Die beispielhafte Leerlaufzeitvorhersagefunktion 224 bestimmt eine Zeit, für die die CPU 206 in einem Niedrigleistungszustand zu verbleiben hat. Die beispielhafte Leerlaufzeitvorhersagefunktion 224 erhöht den Zeitbetrag, während dem die CPU 206 in einem oder mehreren Niedrigleistungszuständen residiert und reduziert dadurch den Stromverbrauch der Rechenvorrichtung 200. Die beispielhafte Leerlaufzeitvorhersagefunktion 224 erzeugt einen Leerlaufperiodenkoeffizienten (Idle Period Coefficient; IPC). In manchen Beispielen ist der Leerlaufperiodenkoeffizient statisch (z.B. eine Konstante, wie etwa beispielsweise 2). In manchen Beispielen erhöht sich der Leerlaufperiodenkoeffizient, je länger sich die CPU 206 in einem Niedrigleistungszustand befindet. In solchen Beispielen nimmt der Leerlaufperiodenkoeffizient im Laufe der Zeit unter der Annahme zu, dass je länger sich eine Rechenvorrichtung in einem Niedrigleistungszustand befindet, es desto wahrscheinlicher ist, dass die Rechenvorrichtung in dem Niedrigleistungszustand verbleiben wird.
  • Die beispielhafte Leerlaufzeitvorhersagefunktion 224 empfängt Residenzzeiten (Ri ) von dem beispielhaften Hardware-Residenz-Monitor 226 entsprechend der Zeiten, die die CPU 206 in jedem Niedrigleistungszustand verbleibt. Für N Niedrigleistungszustände empfängt die Leerlaufzeitvorhersagefunktion 224 zum Beispiel Variablen residency_0, residency_1, ..., residency_N. In manchen Beispielen bestimmt die Leerlaufzeitvorhersagefunktion 224 Skalierungsfaktoren (Si ), die jedem Niedrigleistungszustand entsprechen. Für NNiedrigleistungszustände bestimmt die Leerlaufzeitvorhersagefunktion 224 zum Beispiel die Variablen scale_0, scale_1, ..., scale_N, die den Variablen residency_0, residency_1, ..., residency_N zugeordnet sind. In manchen Beispielen gewichten die Skalierungsfaktoren (Si ) die verschiedenen Residenzvariablen gemäß der Tiefe des jeweiligen Leistungszustands. Ein niedrigerer Leistungszustand (z.B. S3) kann beispielsweise stärker gewichtet sein als ein höherer Leistungszustand (z.B. S2). In manchen Beispielen sind die Skalierungsfaktoren (Si ) heuristisch. In manchen Beispielen basieren die Skalierungsfaktoren (Si ) auf Statistiken zuvor bekannter Leistungszustandsresidenzen (z.B. historische Analysen der Hardware 202 der Rechenvorrichtung 200). In manchen Beispielen normalisieren die Skalierungsfaktoren (Si ) die Variablen residency_0, residency_1, ..., residency_N.
  • Die Leerlaufzeitvorhersagefunktion 224 bestimmt eine Leerlaufzeitperiode (Idle Time Period; ITP) für die ein Softwaretimer auf Basis des Leerlaufperiodenkoeffizienten, der Residenzfaktoren und der Skalierungsfaktoren zu verzögern ist. In manchen Beispielen nutzt die Leerlaufzeitvorhersagefunktion 224 Gleichung 1, um die vorhergesagte Zeit zu bestimmen: I T P = I P C i = 0 n R i S i
    Figure DE112017004758T5_0001
    Der beispielhafte IPC kann ein beliebiger Wert größer als 1 sein, sodass Gleichung 1 eine exponentielle Wachstumskurve reflektiert. Wie hierin offenbart, wächst die ITP exponentiell im Laufe der Zeit der Annahme folgend, dass eine sich im Leerlauf befindliche Rechenvorrichtung auch weiterhin im Leerlauf bleiben wird.
  • In manchen Beispielen legt die Leerlaufzeitvorhersagefunktion 224 minimale und maximale Verzögerungen fest. Die Leerlaufzeitvorhersagefunktion 224 legt zum Beispiel eine maximale Verzögerung derart fest, dass, wenn die bestimmte Leerlaufzeitperiode die maximale Verzögerung überschreitet, die Leerlaufzeitvorhersagefunktion 224 die maximale Verzögerung als die Leerlaufzeitperiode auswählt. In manchen Beispielen legt die Leerlaufzeitvorhersagefunktion 224 eine Mindestverzögerung derart fest, dass, wenn die festgelegte Leerlaufzeitperiode die Mindestverzögerung nicht erfüllt oder sie überschreitet, die Leerlaufzeitvorhersagefunktion 224 die Mindestverzögerung als die Leerlaufzeitperiode auswählt.
  • Der beispielhafte Hardware-Residenz-Monitor 226 überwacht die Leistungszustand-Residenz-Zähler 220 der CPU 206. Der beispielhafte Hardware-Residenz-Monitor 226 bestimmt Residenzzeiten (Ri ) der jeweiligen Leistungszustände auf Basis der Leistungszustand-Residenz-Zähler 220 (z.B. durch Lesen der Leistungszustand-Residenz-Zähler 220 und Wandeln ihre Ausgabe zu der Zeitdomäne). In manchen Beispielen identifiziert der Hardware-Residenz-Monitor 226 Veränderungen von Gerätezuständen mit niedriger Leistung (z.B. D3) zu höheren Leistungszuständen (z.B. D0) und/oder verringerte Residenzzeiten für einen bestimmten Leistungszustand als eine Notwendigkeit für einen höheren Leistungszustand. In solchen Beispielen kommuniziert der Hardware-Residenz-Monitor 226 solche Zustandsveränderungen an die Leerlaufzeitvorhersagefunktion 224.
  • In manchen Beispielen bildet das Vorrichtung-Scoreboard 228 die Niedrigleistungsplattformzustände mit akzeptablen Vorrichtungsleistungszuständen für jede der Hardwarevorrichtungen 210 ab. Die Software-Interrupt-Steuereinrichtung 230 legt den einen oder die mehreren Timer 232 fest, um Ausführung eines Interrupts zu verzögern und dadurch den Schlaf-/Aufwachzyklus der CPU 206 zu steuern. Der eine oder die mehreren Timer 232 verzögern die CPUs 206 beim Ausführen eines Interrupts, der ansonsten die CPU 206 aus Niedrigleistungszuständen aufwecken würde.
  • In manchen Beispielen bestimmt der OSPM 222 auf Basis des Vorrichtung-Scoreboard 228, ob die überwachten Plattform Zustände mit niedriger Leistung der Hardwarevorrichtungen 210 in akzeptablen Zuständen sind. Wenn sich alle der überwachten Plattformzustände mit niedriger Leistung aller der Hardwarevorrichtungen 210 in akzeptablen Zuständen befinden, weist der OSPM 222 die Software-Interrupt-Steuereinrichtung 230 an, den einen oder die mehreren Timer 232 auf die Leerlaufzeitperiode (ITP), die von der Leerlaufzeitvorhersagefunktion 224 bestimmt wurde, einzustellen. Der eine oder die mehreren Timer 232 verzögern das Aufwachen der CPU 206 aus Niedrigleistungszuständen bis die Leerlaufzeitperiode abläuft. Falls sich jedoch eine der Hardwarevorrichtungen 210 nicht mehr in akzeptablen Zuständen befindet und/oder die Veränderung eines Leistungszustands auftritt (z.B. Änderung des Vorrichtungszustands, Verringerung der Hardware-Residenz, Benutzerinteraktion und/oder anderer externer Interrupt), wacht die CPU 206 aus dem Niedrigleistungszustand auf.
  • Obwohl in 2 eine beispielhafte Weise zum Implementieren der Leistungssteuereinrichtung 219 veranschaulicht ist, können ein oder mehrere der Elemente, Prozesse und/oder Vorrichtungen, die in 2 veranschaulicht sind, kombiniert, dividiert, neu angeordnet, ausgelassen, eliminiert und/oder auf eine andere Weise implementiert werden. Ferner können der beispielhafte OSPM 222, die beispielhafte Leerlaufzeitvorhersagefunktion 224, der beispielhafte Hardware-Residenz-Monitor 226, das beispielhafte Vorrichtung-Scoreboard 228, die beispielhafte Software-Interrupt-Steuereinrichtung 230, der bzw. die beispielhaften Timer 232 und/oder, allgemeiner, die Leistungssteuereinrichtung 219 der 2 durch Hardware, Software, Firmware und/oder jedwede Kombination von Hardware, Software und/oder Firmware implementiert sein. Somit könnten beispielsweise jedwede von beispielhaftem OSPM 222, beispielhafter Leerlaufzeitvorhersagefunktion 224, beispielhaftem Hardware-Residenz-Monitor 226, beispielhaftem Vorrichtung-Scoreboard 228, beispielhafter Software-Interrupt-Steuereinrichtung 230, beispielhaftem bzw. beispielhaften Timer(n) 232 und/oder, allgemeiner, die Leistungssteuereinrichtung 219 der 2 durch eine oder mehrere analoge oder digitale Schaltung(en), Logikschaltungen, programmierbare Prozessoren, applikationsspezifische integrierte Schaltung(en) (ASIC(s)), programmierbare Logikvorrichtung(en) (PLD(s)) und/oder feldprogrammierbare Logikvorrichtung(en) (FPLD(s)) implementiert sein. Beim Lesen der Ansprüche zu der Vorrichtung oder dem System dieses Patents wird zum Abdecken einer reinen Software- und/oder für Firmwareimplementierung mindestens eines von beispielhaftem OSPM 222, beispielhafter Leerlaufzeitvorhersagefunktion 224, beispielhaftem Hardware-Residenz-Monitor 226, beispielhaftem Vorrichtung-Scoreboard 228, beispielhafter Software-Interrupt-Steuereinrichtung 230 und/oder beispielhaften Timern 232 hierdurch ausdrücklich als eine materielle computerlesbare Speichervorrichtung oder Speicherplatte, wie etwa einen Speicher, eine Digital Versatile Disk (DVD), eine Compact Disk (CD), eine Blu-ray Disk usw., zum Speichern der Software und/oder Firmware, beinhaltend definiert. Noch des Weiteren kann die beispielhafte Leistungssteuerung 219 der 2 ein oder mehrere Elemente, Prozesse und/oder Vorrichtungen zusätzlich zu oder anstatt der in 2 veranschaulichten beinhalten und/oder sie kann mehr als eine der oder alle der veranschaulichten Elemente, Prozesse und Vorrichtungen beinhalten.
  • Für beispielhafte maschinenlesbare Anweisungen zum Implementieren der Steuereinrichtung 219 der 2 repräsentative Flussdiagramme werden in 3 und 5 gezeigt. In diesem Beispiel umfassen die maschinenlesbaren Anweisungen ein Programm zur Ausführung durch einen Prozessor, wie etwa dem Prozessor 612, der in der beispielhaften Prozessorplattform 600, die nachfolgend in Verbindung mit 6 diskutiert wird. Das Programm kann in Software verkörpert sein, die auf einem materiellen computerlesbarem Speichermedium, wie etwa einer CD-ROM, einer Floppy Disk, einer Festplatte, einer Digital Versatile Disk (DVD), einer Blu-ray Disk oder einem Speicher, der dem Prozessor 612 zugeordnet ist, gespeichert ist, aber das gesamte Programm und/oder Teile davon könnten alternativ von einer anderen Vorrichtung als dem Prozessor 612 ausgeführt werden und/oder in Firmware oder dedizierte Hardware verkörpert sein. Ferner können, obwohl die beispielhaften Programme unter Bezugnahme auf die Flussdiagramme, die in 3 und 5 veranschaulicht sind, beschrieben sind, viele andere Verfahren zum Implementieren der beispielhaften Leistungssteuerungseinrichtung 219 alternativ verwendet werden. Die Reihenfolge der Ausführung der Blöcke kann beispielsweise verändert werden und/oder einige der beschriebenen Blöcke können verändert, eliminiert oder kombiniert werden.
  • Wie vorstehend erwähnt, können die beispielhaften Prozesse der 3 und 5 unter Verwendung codierter Anweisungen (z.B. computer- und/oder maschinenlesbare Anweisungen), die auf einem materiellen computerlesbaren Speichermedium gespeichert sind, wie etwa einem Festplattenlaufwerk, einem Flash-Speicher, einem Nur-Lese-Speicher (ROM), einer Compact Disc (CD), einer Digital Versatile Disk (DVD), einem Cache, einem direkt Zugriffsspeicher (RAM) und/oder jedweder anderer Speichervorrichtung oder jedwedem anderen Speicherlaufwerk, in dem Informationen für einen Zeitraum gespeichert sind (z.B. für längere Zeiträume, permanent, für kurze Momente, für zeitweises Puffern und/oder für das Zwischenspeichern der Informationen), implementiert werden. Wie hierin verwendet ist der Ausdruck „materielles computerlesbares Speichermedium“ ausdrücklich als jedwede Art von computerlesbarer Steuervorrichtung und/oder Speicherlaufwerk beinhaltend und als sich verbreitende Signale und Übertragungsmedium ausschließend definiert. Wie hierin verwendet, werden „materielles computerlesbares Speichermedium“ und „materielles maschinenlesbares Speichermedium“ austauschbar verwendet. Zusätzlich oder alternativ können die beispielhaften Prozesse der 3 und 5 unter Verwendung codierter Anweisungen (z.B. computer- und/oder maschinenlesbare Anweisungen), die auf einem nichttransitorischem computer- und/oder maschinenlesbaren Medium gespeichert sind, wie etwa einem Festplattenlaufwerk, einem Flash-Speicher, einem Nur-Lese-Speicher, einer Compact Disc, einer Digital Versatile Disk, einem Cache, einem Direktzugriffsspeicher und/oder jedweder anderer Speichervorrichtung oder jedwedem anderen Speicherlaufwerk, in dem Informationen für einen Zeitraum gespeichert sind (z.B. für längere Zeiträume, permanent, für kurze Momente, für zeitweises Puffern und/oder für das Zwischenspeichern der Informationen), implementiert werden. Wie hierin verwendet ist der Ausdruck „nicht-transitorisches computerlesbares Medium“ ausdrücklich als jedwede Art von computerlesbarer Speichervorrichtung und/oder Speicherlaufwerk beinhaltend und als sich verbreitende Signale und Übertragungsmedium ausschließend definiert. Wie hierin verwendet, ist die Formulierung „zumindest/mindestens“, wenn sie als der Übergangsbegriff in einer Präambel eines Anspruchs verwendet wird, auf die gleiche Weise offen, wie der Begriff „umfassend“ offen ist. „Umfassend“ und alle anderen Varianten von „umfassen“ sind ausdrücklich als offene Begriffe definiert. „Einschließlich/beinhaltend“ und alle anderen Varianten von „einschließen/beinhalten“ sind ebenfalls als offene Begriffe definiert. Demgegenüber sind der Begriff „bestehend aus“ und/oder andere Formen von „bestehen“ als geschlossene Begriffe definiert.
  • 3 ist ein Flussdiagramm, das für computerlesbare Anweisungen repräsentativ ist, die in einem Programm 300 zum Implementieren der Leistungssteuereinrichtung 219 der 2 verkörpert sind. Das Programm 300 der 3 beginnt am Block 302. Am Block 302 bestimmt die beispielhafte Leerlaufzeitvorhersagefunktion 224 eine Leerlaufzeitperiode auf Basis von Hardware-Residenz. Am Block 304 weist die beispielhafte Leerlaufzeitvorhersagefunktion 224 die beispielhafte Software-Interrupt-Steuereinrichtung 230 an, den einen oder die mehreren Timer 232 einzustellen, die CPU 206 nach der Leerlaufzeitperiode aufzuwecken. Am Block 306 geht die CPU 206 in einen Leerlaufzustand mit niedriger Leistung über. In manchen Beispielen geht die CPU 206 in den niedrigstmöglichen Leistungszustand über (z.B. aus S1-S4). Am Block 308 bestimmt die beispielhafte Software-Interrupt-Steuereinrichtung 230, ob der eine oder die mehreren Timer 232 abgelaufen ist bzw. sind. Falls der eine oder die mehreren Timer 232 nicht abgelaufen ist bzw. sind (Block 308: NEIN), fährt die Steuerung zu Block 310 fort. Am Block 310 bestimmt die beispielhafte Software-Interrupt-Steuereinrichtung 230, ob ein externer Interrupt vorliegt (z.B. Änderung des Vorrichtungsleistungszustands, Benutzerinteraktion usw.). Falls die beispielhafte Software-Interrupt-Steuereinrichtung 230 bestimmt, dass kein externes Interrupt vorliegt (Block 310: NEIN), kehrt die Steuerung zu Block 308 zurück.
  • Falls der eine oder die mehreren Timer 232 abgelaufen ist bzw. sind (Block 308: JA) oder falls die beispielhafte Software-Interrupt-Steuereinrichtung 230 bestimmt, dass ein externes Interrupt vorliegt (Block 310: JA), fährt die Steuerung zu Block 312 fort. Am Block 312 wacht die beispielhafte CPU 206 auf oder verlässt den Niedrigleistungszustand anderweitig (z.B. in den Leistungszustand S0). Am Block 314 liest der beispielhafte Hardware-Residenz-Monitor 226 die beispielhaften Leistungszustand-Residenz-Zähler 220, um die Residenzzeiten für jeden Leerlaufzustand mit niedriger Leistung zu bestimmen. Falls die Rechenvorrichtung 200 ausgeschaltet ist (Block 316: JA), stellt das beispielhafte Programm 300 den Betrieb ein. Ansonsten (Block 316: NEIN) kehrt die Steuerung zu Block 302 mit den zuletzt gelesenen Residenzzeiten zurück.
  • 4 ist eine beispielhafte Veranschaulichung der Anweisungen 400 zum Implementieren der Leerlaufzeitvorhersagefunktion 224. 5 ist ein Flussdiagramm, das für die beispielhaften Anweisungen 400 der 4 zum Implementieren in Block 302 von 3 repräsentativ ist. Die beispielhafte Implementierung von Block 302 beginnt am Block 500. Am Block 500 bestimmt die beispielhafte Leerlaufzeitvorhersagefunktion 224, ob ein Zustand mit hoher Leistung benötigt wird. Die Leerlaufzeitvorhersagefunktion 224 bestimmt beispielsweise, dass ein Zustand mit höherer Leistung benötigt wird, wenn die CPU 206 aus einem Zustand mit niedrigerer Leistung aufwachen soll (z.B. in Reaktion auf einem Interrupt, eine Vorrichtungszustandsveränderung, Benutzerinteraktion usw.). In manchen Beispielen identifiziert der Hardware-Residenz-Monitor 226 Veränderungen von Zuständen mit niedrigerer Leistung (z.B. S2) zu höheren Leistungszuständen (z.B. S1) und/oder verringert Residenzzeiten für einen bestimmten Leistungszustand als eine Notwendigkeit für einen höheren Leistungszustand. Falls ein Zustand mit höherer Leistung benötigt wird (Block 500: JA), fährt die Steuerung zu Block 502 fort. Ansonsten (Block 500: NEIN), fährt die Steuerung zu Block 504 fort.
  • Am Block 502 weist die beispielhafte Leerlaufzeitvorhersagefunktion 224 einen ersten Wert als einen Leerlaufperiodenkoeffizienten (IPC) zu. In manchen Beispielen ist der erste Wert eine Konstante, wie etwa beispielsweise 2. Am Block 504 erhöht die Leerlaufzeitvorhersagefunktion 224 den IPC. In manchen Beispielen verdoppelt die Leerlaufzeitvorhersagefunktion den IPC. Die Erhöhung des IPC verlängert die nächste Leerlaufzeitperiode aufgrund der Annahme, dass die Rechenvorrichtung 200 bei weiteren Iterationen der beispielhaften Implementierung von Block 302 in einem Leerlaufzustand verbleiben wird. Nach Block 502 oder 504 fährt die Steuerung zu Block 506 fort. Am Block 506 empfängt die Leerlaufzeitvorhersagefunktion 224 Residenzzeiten (Ri ) von dem beispielhaften Hardware-Residenz-Monitor 226. Am Block 508 bestimmt die Leerlaufzeitvorhersagefunktion 224 Skalierungsfaktoren (Si ) für jeweilige Residenzzeiten (Ri ). Die Leerlaufzeitvorhersagefunktion 224 bestimmt die Leerlaufzeitperiode auf Basis des Leerlaufperiodenkoeffizienten, der Skalierungsfaktoren (Si ) und der Residenzzeiten (Ri ) (Block 510). In manchen Beispielen nutzt die Leerlaufzeitvorhersagefunktion 224 Gleichung 1, um die Leerlaufzeitperiode unter Verwendung des Leerlaufperiodenkoeffizienten, der Skalierungsfaktoren (Si ) und der Residenzzeiten (Ri ) zu bestimmen.
  • In manchen Beispielen bestimmt die Leerlaufzeitvorhersagefunktion 224, ob die Leerlaufzeitperiode, die an Block 510 bestimmt wurde, größer war als eine maximale Verzögerungszeit (Block 512). Falls die Leerlaufzeitperiode, die am Block 510 bestimmt wurde, größer war als die maximale Verzögerungszeit (Block 512: JA), fährt die Steuerung zu Block 514 fort. Am Block 514 wählt die Leerlaufzeitperiode die maximale Verzögerungszeit als die Leerlaufzeitperiode. Daraufhin stellt die beispielhafte Implementierung von Block 302 den Betrieb ein.
  • Falls die Leerlaufzeitperiode, die am Block 510 bestimmt wurde, nicht größer war als eine maximale Verzögerungszeit (Block 512: NEIN), fährt die Steuerung zu Block 516 fort. Am Block 516 bestimmt die Leerlaufzeitvorhersagefunktion 224, ob die Leerlaufzeitperiode, die am Block 510 bestimmt wurde, kleiner war als eine Mindestverzögerungszeit (Block 516). Falls die Leerlaufzeitperiode, die am Block 510 bestimmt wurde, kleiner war als eine maximale Verzögerungszeit (Block 516: JA), fährt die Steuerung zu Block 520 fort. Am Block 520 wählt die Leerlaufzeitperiode die Mindestverzögerungszeit als die Leerlaufzeitperiode. Daraufhin, oder falls die Leerlaufzeitperiode, die am Block 510 bestimmt wurde, nicht weniger als die Mindestverzögerungszeit war (Block 516: NEIN), stellt die beispielhafte Implementierung von Block 302 den Betrieb ein.
  • 6 ist ein Blockdiagramm einer beispielhaften Prozessorplattform 600, die dazu in der Lage ist, die Anweisungen von 3 auszuführen, um die beispielhafte Leistungssteuereinrichtung der 2 zu implementieren, und die computerlesbaren Anweisungen der 5 auszuführen, um die beispielhafte Leerlaufzeitvorhersagefunktion der 2 zu implementieren. Die Prozessorplattform 600 kann beispielsweise ein Server, ein Personal Computer, eine mobile Vorrichtung (z.B. ein Mobiltelefon, ein Smartphone, ein Tablet, wie etwa ein iPad™), ein persönlicher digitaler Assistent (PDA), eine Internetanwendung, ein DVD-Abspielgerät, ein CD-Abspielgerät, ein digitaler Videorecorder, ein Blu-Ray Abspielgerät, eine Spielkonsole, ein persönlicher Videorecorder, eine Set-Top-Box oder jedwede andere Art von Rechenvorrichtung sein.
  • Die Prozessorplattform 600 des veranschaulichten Beispiels beinhaltet einen Prozessor 612. Der Prozessor 612 des veranschaulichten Beispiels ist Hardware. Der Prozessor 612 kann beispielsweise durch eine oder mehrere integrierte Schaltungen, Logikschaltungen, Mikroprozessoren oder Steuereinrichtungen aus einer beliebigen gewünschten Familie oder von einem beliebigen Hersteller sein.
  • Der Prozessor 612 des veranschaulichten Beispiels beinhaltet einen lokalen Speicher 630 (z.B. ein Cache). Der Prozessor 612 des veranschaulichten Beispiels ist über einen Bus 618 in Kommunikation mit einem Hauptspeicher, einschließlich einem flüchtigen Speicher 614 und einem nichtflüchtigen Speicher 616. Der flüchtige Speicher 614 kann durch Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAMBUS Dynamic Random Access Memory (RDRAM) und/oder jedweder anderen Art von Direktzugriffsspeichervorrichtung implementiert sein. Der nichtflüchtige Speicher 616 kann durch Flash-Speicher und/oder jedwede andere gewünschte Art von Speichervorrichtung implementiert sein. Zugriff auf den Hauptspeicher 614, 616 wird von einer Speichersteuereinrichtung gesteuert.
  • Die Prozessorplattform 600 des veranschaulichten Beispiels beinhaltet auch eine Schnittstellenschaltung 620. Die Schnittstellenschaltung 620 kann durch jedwede Art von Schnittstellenstandard, wie etwa als eine Ethernet-Schnittstelle, einen Universal Serial Bus (USB) und/oder eine PCI-Express-Schnittstelle implementiert sein.
  • In dem veranschaulichten Beispiel ist bzw. sind eine oder mehrere Eingabevorrichtungen 622 mit der Schnittstellenschaltung 620 verbunden. Die Eingabevorrichtung(en) 622 erlauben es einem Benutzer, Daten und Befehle in den Prozessor 612 einzugeben. Die Eingabevorrichtung(en) können beispielsweise durch einen Audiosensor, ein Mikrofon, eine Kamera (Still-Kamera oder Video), eine Tastatur, eine Taste, eine Maus, einen Touchscreen, ein Trackpad, einen Trackball, Isopunkt und/oder ein Stimmerkennungssystem implementiert sein.
  • Eine oder mehrere Ausgabevorrichtungen 624 sind auch mit der Schnittstellenschaltung 620 des veranschaulichten Beispiels verbunden. Die Ausgabevorrichtungen 624 können beispielsweise durch Anzeigegeräte (z.B. eine Leuchtdiode (LED), eine organische Leuchtdiode (OLED), eine Flüssigkristallanzeige, eine Kathodenstrahlröhrenanzeige (CRT), ein Touchscreen, eine taktile Ausgabevorrichtung, eine Leuchtdiode (LED), einen Drucker und/oder Lautsprecher) implementiert sein. Die Schnittstellenschaltung 620 des veranschaulichten Beispiels beinhaltet somit typischerweise eine Grafiktreiberkarte, einen Grafiktreiberchip oder einen Grafiktreiberprozessor.
  • Die Schnittstellenschaltung 620 des veranschaulichten Beispiels beinhaltet auch eine Kommunikationsvorrichtung, wie etwa einen Sender, einen Empfänger, einen Sendeempfänger, ein Modem und/oder eine Netzwerkschnittstellenkarte, um Datenaustausch mit externen Maschinen (z.B. Rechenvorrichtungen jedweder Art) über ein Netzwerk 626 (z.B. eine Ethernet-Verbindung, eine digitale Teilnehmerleitung (DSL), eine Telefonleitung, ein Koaxialkabel, ein Mobiltelefonsystem usw.) zu ermöglichen.
  • Die Prozessorplattform 600 des veranschaulichten Beispiels beinhaltet auch eine oder mehrere Massenspeichervorrichtungen 628 zum Speichern von Software und/oder Daten. Beispiele solcher Massenspeichervorrichtungen 628 beinhalten Floppy-Disc-Laufwerke, Festplattenlaufwerke, Kompaktdiskettenlaufwerke, Blu-Ray-Laufwerke, RAID-Systeme und Digital Versatile Disk (DVD) Laufwerke.
  • Die codierten Anweisungen 632 der 3 und 5 können in der Massenspeichervorrichtung 628, in dem flüchtigen Speicher 614, in dem nichtflüchtigen Speicher 616 und/oder auf einem entfernbaren, materiellen computerlesbarem Speichermedium, wie etwa einer CD oder DVD, gespeichert sein.
  • Aus dem Vorstehenden ist zu würdigen, dass die vorstehend offenbarten Verfahren, Vorrichtungen und Herstellungsartikel sich auf Softwareverzögerungstimer auf Basis von Hardware-Residenz zum Bestimmen optimaler Zeiten, zu denen eine Rechenvorrichtung in Zuständen mit niedriger Leistung verbleibt, erstrecken. Basierend auf den optimalen Zeiten, während denen die Rechenvorrichtung in den Zuständen mit niedriger Leistung verbleibt, wird der Gesamtstromverbrauch der Rechenvorrichtung reduziert. Reduzierter Stromverbrauch kann in längerer Akkulaufzeit, Energieeinsparungen, kleineren Stromversorgungskonzepten und/oder geringeren Stromkühlungserfordernissen resultieren.
  • Hierin werden beispielhafte Verfahren, Vorrichtungen, Systeme und Herstellungsartikel zum Reduzieren des Stromverbrauchs einer Rechenvorrichtung offenbart. Weitere Beispiele und Kombinationen davon sind die folgenden.
  • Beispiel 1 ist eine Vorrichtung zum Reduzieren des Stromverbrauchs einer Rechenvorrichtung, wobei die Vorrichtung eine Leerlaufzeitvorhersagefunktion zum Bestimmen einer Leerlaufperiode auf Basis von Hardware-Residenz der Rechenvorrichtung, und eine Software-Interrupt-Steuereinrichtung zum Festlegen eines Timers zum Aufwecken einer zentralen Verarbeitungseinheit (CPU) aus einem Leerlaufzustand mit niedriger Leistung nach der Leerlaufperiode, wobei die CPU den Leerlaufzustand mit niedriger Leistung in Reaktion auf den Ablauf der Leerlaufperiode zu verlassen hat, beinhaltet.
  • Beispiel 2 beinhaltet die Vorrichtung gemäß Definition in Beispiel 1 und beinhaltet ferner einen Hardware-Residenz-Monitor zum Überwachen von Leistungszustands-Residenz-Zählern auf Zeiten, in denen die CPU sich in jeweiligen Leerlaufzuständen mit niedriger Leistung befindet.
  • Beispiel 3 beinhaltet die Vorrichtung gemäß Definition in Beispiel 2, wobei der Hardware-Residenz-Monitor die Leistungszustand-Residenz-Zähler in Reaktion darauf, dass die CPU die jeweiligen Leerlaufzustände mit niedriger Leistung verlässt, zu beobachten hat.
  • Beispiel 4 beinhaltet die Vorrichtung gemäß Definition in Beispiel 2 oder Beispiel 3, wobei zum Bestimmen der Leerlaufperiode auf Basis der Hardware-Residenz die Leerlaufzeitvorhersagefunktion einen Leerlaufperiodenkoeffizienten zu bestimmen hat, Skalierungsfaktoren für jeweilige Leerlaufzustände mit niedrigerer Leistung zu bestimmen hat und die Leerlaufperiode durch Multiplizieren des Leerlaufperiodenkoeffizienten mit einer Summe der Zeiten, in denen sich die CPU in Leerlaufzuständen mit niedriger Leistung befindet, multipliziert mit jeweiligen Skalierungsfaktoren, zu bestimmen hat.
  • Beispiel 5 beinhaltet die Vorrichtung gemäß Definition in Beispiel 2, wobei zum Bestimmen der Leerlaufperiode auf Basis der Hardwareresidenz die Leerlaufzeitvorhersagefunktion einen Leerlaufperiodenkoeffizienten zu bestimmen hat, Skalierungsfaktoren für jeweilige Leerlaufzustände mit niedrigerer Leistung zu bestimmen hat und die Leerlaufperiode durch Multiplizieren des Leerlaufperiodenkoeffizienten mit einer Summe der Zeiten, in denen sich die CPU in den jeweiligen Leerlaufzuständen mit niedriger Leistung befindet, multipliziert mit den jeweiligen Skalierungsfaktoren, zu bestimmen hat.
  • Beispiel 6 beinhaltet die Vorrichtung gemäß Definition in Beispiel 5, wobei zum Bestimmen des Leerlaufperiodenkoeffizienten die Leerlaufzeitvorhersagefunktion den Leerlaufperiodenkoeffizienten, wenn eine Erhöhung des Leistungszustands einer Vorrichtung auftritt, den Leerlaufperiodenkoeffizienten zu einem ersten Wert zu initialisieren hat, den Leerlaufperiodenkoeffizienten zu verdoppeln hat.
  • Beispiel 7 beinhaltet die Vorrichtung gemäß Definition in Beispiel 5, wobei zum Bestimmen des Leerlaufperiodenkoeffizienten die Leerlaufzeitvorhersagefunktion den Leerlaufperiodenkoeffizienten, wenn eine Erhöhung des Leistungszustands einer Vorrichtung auftritt, den Leerlaufperiodenkoeffizienten zu einem ersten Wert zu initialisieren hat, den Leerlaufperiodenkoeffizienten zu verdoppeln hat.
  • Beispiel 8 beinhaltet die Vorrichtung gemäß Definition in Beispiel 5, wobei zum Bestimmen der Leerlaufperiode auf Basis der Hardwareresidenz die Leerlaufzeitvorhersagefunktion in Reaktion auf das Bestimmen, dass die Leerlaufperiode größer ist als ein erster Schwellenwert, den ersten Schwellenwert als die Leerlaufperiode zuzuweisen hat, und in Reaktion auf das Bestimmen, dass die Leerlaufperiode kleiner ist als ein zweiter Schwellenwert, den zweiten Schwellenwert als die Leerlaufperiode zuzuweisen hat.
  • Beispiel 9 beinhaltet die Vorrichtung gemäß Definition in Beispiel 4, wobei zum Bestimmen der Leerlaufperiode auf Basis der Hardwareresidenz die Leerlaufzeitvorhersagefunktion in Reaktion auf das Bestimmen, dass die Leerlaufperiode größer ist als ein erster Schwellenwert, den ersten Schwellenwert als die Leerlaufperiode zuzuweisen hat, und in Reaktion auf das Bestimmen, dass die Leerlaufperiode kleiner ist als ein zweiter Schwellenwert, den zweiten Schwellenwert als die Leerlaufperiode zuzuweisen hat.
  • Beispiel 10 beinhaltet die Vorrichtung gemäß Definition in Beispiel 1 oder Beispiel 2, wobei, in Reaktion darauf, dass die Leerlaufzeitvorhersagefunktion die Leerlaufperiode auf Basis von Hardwareresidenz der Computervorrichtung bestimmt, Leerlaufzeit der Rechenvorrichtung erhöht wird und Stromverbrauch der Rechenvorrichtung verringert wird.
  • Beispiel 11 beinhaltet die Vorrichtung gemäß Definition in Beispiel 1, wobei, in Reaktion darauf, dass die Leerlaufzeitvorhersagefunktion die Leerlaufperiode auf Basis von Hardwareresidenz der Rechenvorrichtung bestimmt, Leerlaufzeit der Rechenvorrichtung erhöht wird und Stromverbrauch der Rechenvorrichtung verringert wird.
  • Beispiel 12 ist ein Verfahren zum Reduzieren von Stromverbrauch einer Rechenvorrichtung, das das Bestimmen einer Leerlaufperiode auf Basis von Hardwareresidenz der Rechenvorrichtung und das Festlegen eines Timers zum Aufwecken einer zentralen Verarbeitungseinheit (CPU) aus einem Zustand mit niedriger Leistung nach der Leerlaufperiode, wobei die CPU den Leerlaufzustand mit niedriger Leistung in Reaktion auf den Ablauf der Leerlaufperiode verlässt, beinhaltet.
  • Beispiel 13 beinhaltet das Verfahren gemäß Definition in Beispiel 12 und beinhaltet ferner Überwachen von Leistungszustandsresidenzzählern auf Zeiten, in denen sich die CPU in jeweiligen Leerlaufzuständen mit niedriger Leistung befindet.
  • Beispiel 14 beinhaltet das Verfahren gemäß Definition im Beispiel 13, wobei das Überwachen der Leistungszustandresidenzzähler in Reaktion darauf auftritt, dass die CPU die jeweiligen Leerlaufzustände mit niedriger Leistung verlässt.
  • Beispiel 15 beinhaltet das Verfahren gemäß Definition in Beispiel 13 oder Beispiel 14, wobei das Bestimmen der Leerlaufperiode auf Basis der Hardwareresidenz das Bestimmen eines Leerlaufperiodenkoeffizienten, das Bestimmen von Skalierungsfaktoren für jeweilige Leerlaufzustände mit niedrigerer Leistung und das Bestimmen der Leerlaufperiode durch Multiplizieren des Leerlaufperiodenkoeffizienten mit einer Summe der Zeiten, in denen sich die CPU in Leerlaufzuständen mit niedriger Leistung befindet, multipliziert mit jeweiligen Skalierungsfaktoren, beinhaltet.
  • Beispiel 16 beinhaltet das Verfahren gemäß Definition in Beispiel 13, wobei das Bestimmen der Leerlaufperiode auf Basis der Hardwareresidenz das Bestimmen der Leerlaufzeitvorhersagefunktion eines Leerlaufperiodenkoeffizienten, das Bestimmen von Skalierungsfaktoren für jeweilige Leerlaufzustände mit niedrigerer Leistung und das Bestimmen der Leerlaufperiode durch Multiplizieren des Leerlaufperiodenkoeffizienten mit einer Summe der Zeiten, in denen sich die CPU in den jeweiligen Leerlaufzuständen mit niedriger Leistung befindet, multipliziert mit den jeweiligen Skalierungsfaktoren, beinhaltet.
  • Beispiel 17 beinhaltet das Verfahren gemäß Definition in Beispiel 15, wobei das Bestimmen des Leerlaufperiodenkoeffizienten das Initialisieren Leerlaufzeitvorhersagefunktion des Leerlaufperiodenkoeffizienten auf einen ersten Wert und das Verdoppeln des Leerlaufperiodenkoeffizienten, wenn eine Erhöhung des Leistungszustands einer Vorrichtung auftritt, beinhaltet.
  • Beispiel 18 beinhaltet das Verfahren gemäß Definition in Beispiel 16, wobei das Bestimmen des Leerlaufperiodenkoeffizienten das Initialisieren Leerlaufzeitvorhersagefunktion des Leerlaufperiodenkoeffizienten auf einen ersten Wert und das Verdoppeln des Leerlaufperiodenkoeffizienten, wenn eine Erhöhung des Leistungszustands einer Vorrichtung auftritt, beinhaltet.
  • Beispiel 19 beinhaltet das Verfahren gemäß Definition in Beispiel 15, wobei zum Bestimmen der Leerlaufperiode auf Basis der Hardwareresidenz in Reaktion auf das Bestimmen, dass die Leerlaufperiode größer ist als ein erster Schwellenwert, das Zuweisen des ersten Schwellenwerts als die Leerlaufperiode und in Reaktion auf das Bestimmen, dass die Leerlaufperiode kleiner ist als ein zweiter Schwellenwert, das Zuweisen des zweiten Schwellenwerts als die Leerlaufperiode beinhaltet.
  • Beispiel 20 beinhaltet das Verfahren gemäß Definition in Beispiel 16, wobei zum Bestimmen der Leerlaufperiode auf Basis der Hardwareresidenz in Reaktion auf das Bestimmen, dass die Leerlaufperiode größer ist als ein erster Schwellenwert, das Zuweisen des ersten Schwellenwerts als die Leerlaufperiode und in Reaktion auf das Bestimmen, dass die Leerlaufperiode kleiner ist als ein zweiter Schwellenwert, das Zuweisen des zweiten Schwellenwerts als die Leerlaufperiode beinhaltet.
  • Beispiel 21 beinhaltet das Verfahren gemäß Definition im Beispiel 12, wobei das Bestimmen der Leerlaufperiode basierend auf Hardwareresidenz der Rechenvorrichtung die Leerlaufzeit der Rechenvorrichtung erhöht und Stromverbrauch der Rechenvorrichtung vermindert.
  • Beispiel 22 ist ein materielles computerlesbares Speichermedium, das Anweisungen beinhaltet, die, wenn sie ausgeführt werden, eine Maschine veranlassen, zumindest eine Leerlaufperiode auf Basis von Hardwareresidenz der Rechenvorrichtung zu bestimmen, und einen Timer zum Aufwecken einer zentralen Verarbeitungseinheit (CPU) aus einem Leerlaufzustand mit niedriger Leistung nach der Leerlaufperiode festzulegen, wobei die CPU den Leerlaufzustand mit niedriger Leistung in Reaktion auf den Ablauf der Leerlaufperiode verlässt.
  • Beispiel 23 beinhaltet das computerlesbare Medium gemäß Definition in Beispiel 22, wobei die Anweisungen, wenn sie ausgeführt werden, ferner die Maschine veranlassen, Leistungszustandsresidenzzähler auf Zeiten, in denen sich die CPU in jeweiligen Leerlaufzuständen mit niedriger Leistung befindet, zu überwachen.
  • Beispiel 24 beinhaltet das computerlesbare Medium gemäß Definition in Beispiel 23, wobei die Anweisungen, wenn sie ausgeführt werden, die Maschine ferner veranlassen, die Leistungszustandsresidenzzähler in Reaktion darauf, dass die CPU die jeweiligen Leerlaufzustände mit niedriger Leistung verlässt, zu überwachen.
  • Beispiel 25 beinhaltet das computerlesbare Medium gemäß Definition in Beispiel 23 oder Beispiel 24, wobei die Anweisungen, wenn sie ausgeführt werden, die Maschine ferner veranlassen, einen Leerlaufperiodenkoeffizienten zu bestimmen, Skalierungsfaktoren für jeweilige Leerlaufzustände mit niedriger Leistung zu bestimmen und die Leerlaufperiode durch Multiplizieren des Leerlaufperiodenkoeffizienten mit einer Summe der Zeiten, in denen sich die CPU in den jeweiligen Leerlaufzuständen mit niedriger Leistung befindet, multipliziert mit den jeweiligen Skalierungsfaktoren, zu bestimmen.
  • Beispiel 26 beinhaltet das computerlesbaren Medium gemäß Definition in Beispiel 23, wobei die Anweisung, wenn sie ausgeführt werden, die Maschine ferner veranlassen, einen Leerlaufperiodenkoeffizienten zu bestimmen, Skalierungsfaktoren für jeweilige Leerlaufzustände mit niedriger Leistung zu bestimmen und die Leerlaufperiode durch Multiplizieren des Leerlaufperiodenkoeffizienten mit einer Summe der Zeiten, in denen sich die CPU in den jeweiligen Leerlaufzuständen mit niedriger Leistung befindet, multipliziert mit jeweiligen Skalierungsfaktoren, zu bestimmen.
  • Beispiel 27 beinhaltet das computerlesbare Medium gemäß Definition in Beispiel 25, wobei die Anweisungen, wenn sie ausgeführt werden, die Maschine ferner veranlassen den Leerlaufperiodenkoeffizienten auf einen ersten Wert zu initialisieren und den Leerlaufperiodenkoeffizienten zu verdoppeln, wenn eine Erhöhung eines Leistungszustands einer Vorrichtung auftritt.
  • Beispiel 28 beinhaltet das computerlesbare Medium gemäß Definition in Beispiel 26, wobei die Anweisungen, wenn sie ausgeführt werden, die Maschine ferner veranlassen den Leerlaufperiodenkoeffizienten auf einen ersten Wert zu initialisieren und den Leerlaufperiodenkoeffizienten zu verdoppeln, wenn eine Erhöhung eines Leistungszustands einer Vorrichtung auftritt.
  • Beispiel 29 beinhaltet das computerlesbare Medium gemäß Definition in Beispiel 26, wobei die Anweisungen, wenn sie ausgeführt werden, die Maschine ferner veranlassen in Reaktion auf das Bestimmen, dass die Leerlaufzeit größer ist als ein erster Schwellenwert, den ersten Schwellenwert als die Leerlaufperiode zuweisen, und in Reaktion auf das Bestimmen, dass die Leerlaufzeit kleiner ist als ein zweiter Schwellenwert, den zweiten Schwellenwert als die Leerlaufperiode zuweisen.
  • Beispiel 30 ist ein System zum Reduzieren von Stromverbrauch einer Rechenvorrichtung, Mittel zum Bestimmen einer Leerlaufperiode auf Basis von Hardwareresidenz der Rechenvorrichtung beinhaltend, und Mittel zum Festlegen eines Timers zum Aufwecken einer zentralen Verarbeitungseinheit (CPU) aus einem Zustand mit niedriger Leistung nach der Leerlaufperiode, wobei die CPU den Leerlaufzustand mit niedriger Leistung in Reaktion auf das Ausführen eines Interrupts bei Ablauf der Leerlaufperiode verlässt.
  • Beispiel 31 beinhaltet das System gemäß Definition in Beispiel 30 und beinhaltet ferner Mittel zum Überwachen von Leistungszustandsresidenzzählern auf Zeiten, in denen sich die CPU in jeweiligen Leerlaufzuständen mit niedriger Leistung befindet.
  • Beispiel 32 beinhaltet das System gemäß Definition im Beispiel 31, wobei das Überwachen der Leistungszustandsresidenzzähler in Reaktion darauf auftritt, dass die CPU die jeweiligen Leerlaufzustände mit niedriger Leistung verlässt.
  • Beispiel 33 beinhaltet das System gemäß Definition in Beispiel 31 oder Beispiel 32, wobei die Mittel zum Bestimmen der Leerlaufperiode auf Basis der Hardwareresidenz beinhaltet: Mittel zum Bestimmen eines Leerlaufperiodenkoeffizienten, Mittel zum Bestimmen von Skalierungsfaktoren für jeweilige Leerlaufzustände mit niedriger Leistung und Mittel zum Bestimmen der Leerlaufperiode durch Multiplizieren des Leerlaufperiodenkoeffizienten mit einer Summe der Zeiten, in denen sich die CPU sich in Leerlaufzuständen mit niedriger Leistung befindet, multipliziert mit jeweiligen Skalierungsfaktoren.
  • Beispiel 34 beinhaltet das System gemäß Definition in Beispiel 33, wobei die Mittel zum Bestimmen des Leerlaufperiodenkoeffizienten beinhalten: Mittel zum Initialisieren des Leerlaufperiodenkoeffizienten auf einen ersten Wert und Mittel zum Verdoppeln des Leerlaufperiodenkoeffizienten, wenn eine Erhöhung des Leistungszustands einer Vorrichtung auftritt, beinhaltet.
  • Beispiel 35 beinhaltet das System gemäß Definition in Beispiel 34, wobei die Mittel zum Bestimmen der Leerlaufperiode auf Basis der Hardwareresidenz beinhalten: in Reaktion auf das Bestimmen, dass die Leerlaufperiode größer ist als ein erster Schwellenwert, Mittel zum Zuweisen des ersten Schwellenwerts als die Leerlaufperiode und in Reaktion auf das Bestimmen, dass die Leerlaufperiode kleiner ist als ein zweiter Schwellenwert, Mittel zum Zuweisen des zweiten Schwellenwerts als die Leerlaufperiode.
  • Beispiel 36 beinhaltet das System gemäß Definition im Beispiel 30, wobei die Mittel zum Bestimmen der Leerlaufperiode basierend auf Hardwareresidenz der Rechenvorrichtung die Leerlaufzeit der Rechenvorrichtung erhöht und Stromverbrauch der Rechenvorrichtung vermindert.
  • Obwohl hierin bestimmte beispielhafte Verfahren, Vorrichtungen und Herstellungsartikel offenbart wurden, ist der Umfang der Abdeckung dieses Patents nicht hierauf beschränkt. Im Gegenteil, dieses Patent deckt alle Verfahren, Vorrichtungen und Herstellungsartikel ab, die bei fairer Betrachtung innerhalb des Umfangs der Ansprüche dieses Patents fallen.

Claims (25)

  1. Vorrichtung zum Reduzieren von Stromverbrauch einer Rechenvorrichtung, wobei die Vorrichtung umfasst: eine Leerlaufzeitvorhersagefunktion zum Bestimmen einer Leerlaufperiode auf Basis von Hardwareresidenz der Rechenvorrichtung; und eine Interrupt-Steuereinrichtung zum Einstellen eines Timers zum Aufwecken einer zentralen Verarbeitungseinheit (CPU) aus einem Leerlaufzustand mit niedriger Leistung nach der Leerlaufperiode, wobei die CPU den Leerlaufzustand mit niedriger Leistung in Reaktion auf das Ausführen eines Interrupts bei Ablauf der Leerlaufperiode zu verlassen hat.
  2. Vorrichtung gemäß Definition in Anspruch 1, ferner einen Hardware-Residenz-Monitor zum Überwachen von Leistungszustands-Residenz-Zählern auf Zeiten, in denen die CPU sich in jeweiligen Leerlaufzuständen mit niedriger Leistung befindet, beinhaltend.
  3. Vorrichtung gemäß Definition in Anspruch 2, wobei der Hardware-Residenz-Monitor die Leistungszustand-Residenz-Zähler in Reaktion darauf, dass die CPU die jeweiligen Leerlaufzustände mit niedriger Leistung verlässt, zu beobachten hat.
  4. Vorrichtung gemäß Definition in Ansprüchen 2 oder 3, wobei zum Bestimmen der Leerlaufperiode auf Basis der Hardwareresidenz die Leerlaufzeitvorhersagefunktion: einen Leerlaufperiodenkoeffizienten zu bestimmen hat; Skalierungsfaktoren für jeweilige Leerlaufzustände mit niedriger Leistung zu bestimmen hat; und die Leerlaufperiode durch Multiplizieren des Leerlaufperiodenkoeffizienten mit einer Summe der Zeiten, zu denen sich die CPU in den jeweiligen Leerlaufzuständen mit niedriger Leistung befindet, multipliziert mit jeweiligen Skalierungsfaktoren, zu bestimmen hat.
  5. Vorrichtung gemäß Definition in Anspruch 4, wobei zum Bestimmen des Leerlaufperiodenkoeffizienten die Leerlaufzeitvorhersagefunktion: den Leerlaufperiodenkoeffizienten auf einen ersten Wert zu initialisieren hat, wenn eine Zunahme eines Leistungszustands einer Vorrichtung auftritt, und den Leerlaufperiodenkoeffizienten zu verdoppeln hat.
  6. Vorrichtung gemäß Definition in Anspruch 4, wobei zum Bestimmen der Leerlaufperiode auf Basis der Hardwareresidenz die Leerlaufzeitvorhersagefunktion: in Reaktion auf das Bestimmen, dass die Leerlaufperiode größer ist als ein erster Schwellenwert, den ersten Schwellenwert als die Leerlaufperiode zuzuweisen hat, und in Reaktion auf das Bestimmen, dass die Leerlaufperiode kleiner ist als ein zweiter Schwellenwert, den zweiten Schwellenwert als die Leerlaufperiode zuzuweisen hat.
  7. Vorrichtung gemäß Definition in Ansprüchen 1 oder 2, wobei, in Reaktion darauf, dass die Leerlaufzeitvorhersagefunktion die Leerlaufperiode auf Basis von Hardwareresidenz der Rechenvorrichtung bestimmt, Leerlaufzeit der Rechenvorrichtung erhöht wird und Stromverbrauch der Rechenvorrichtung verringert wird.
  8. Vorrichtung gemäß Definition in Anspruch 1, wobei, in Reaktion darauf, dass die Leerlaufzeitvorhersagefunktion die Leerlaufperiode auf Basis von Hardwareresidenz der Rechenvorrichtung bestimmt, Leerlaufzeit der Rechenvorrichtung erhöht wird und Stromverbrauch der Rechenvorrichtung verringert wird.
  9. Verfahren zum Reduzieren von Stromverbrauch einer Rechenvorrichtung, wobei das Verfahren umfasst: Bestimmen, durch Ausführen einer Anweisung mit einem Prozessor, einer Leerlaufperiode basierend auf Hardwareresidenz der Rechenvorrichtung; und Einstellen, durch Ausführen einer Anweisung mit dem Prozessor, eines Timers zum Aufwecken einer zentralen Verarbeitungseinheit (CPU) aus einem Leerlaufzustand mit niedriger Leistung nach der Leerlaufperiode, wobei die CPU den Leerlaufzustand mit niedriger Leistung in Reaktion auf das Ausführen eines Interrupts bei Ablauf der Leerlaufperiode zu verlassen hat.
  10. Verfahren gemäß Definition in Anspruch 9, ferner Überwachen von Leistungszustandsresidenzzählern auf Zeiten, in denen sich die CPU in jeweiligen Leerlaufzuständen mit niedriger Leistung befindet, beinhaltend.
  11. Verfahren gemäß Definition in Anspruch 10, wobei das Überwachen der Leistungszustandsresidenzzähler in Reaktion darauf auftritt, dass die CPU die jeweiligen Leerlaufzustände mit niedriger Leistung verlässt.
  12. Verfahren gemäß Definition in Ansprüchen 10 oder 11, wobei das Bestimmen der Leerlaufperiode auf Basis der Hardwareresidenz beinhaltet: Bestimmen eines Leerlaufperiodenkoeffizienten; Bestimmen von Skalierungsfaktoren für jeweilige Leerlaufzustände mit niedriger Leistung; und Bestimmen der Leerlaufperiode durch Multiplizieren des Leerlaufperiodenkoeffizienten mit einer Summe der Zeiten, zu denen sich die CPU in den jeweiligen Leerlaufzuständen mit niedriger Leistung befindet, multipliziert mit jeweiligen Skalierungsfaktoren.
  13. Verfahren gemäß Definition in Anspruch 12, wobei das Bestimmen des Leerlaufperiodenkoeffizienten beinhaltet: Initialisieren des Leerlaufperiodenkoeffizienten auf ein ersten Wert, wenn eine Zunahme eines Leistungszustands einer Vorrichtung auftritt; und Verdoppeln des Leerlaufperiodenkoeffizienten.
  14. Verfahren gemäß Definitionen Anspruch 12, wobei das Bestimmen der Leerlaufperiode auf Basis der Hardwareresidenz beinhaltet: in Reaktion auf das Bestimmen, dass die Leerlaufperiode größer ist als ein erster Schwellenwert, Zuordnen des ersten Schwellenwerts als die Leerlaufperiode; und in Reaktion auf das Bestimmen, dass die Leerlaufperiode kleiner ist als ein zweiter Schwellenwert, Zuordnen des zweiten Schwellenwerts als die Leerlaufperiode.
  15. Verfahren gemäß Definition in Anspruch 9, wobei das Bestimmen der Leerlaufperiode basierend auf Hardwareresidenz der Rechenvorrichtung Leerlaufzeit der Rechenvorrichtung erhöht und Stromverbrauch der Rechenvorrichtung vermindert.
  16. Mindestens ein materielles computerlesbares Speichermedium, Anweisungen umfassend, die, wenn sie ausgeführt werden, eine Maschine zumindest veranlassen: eine Leerlaufperiode auf Basis von Hardwareresidenz der Rechenvorrichtung zu bestimmen; und einen Timer zum Aufwecken einer zentralen Verarbeitungseinheit (CPU) aus einem Leerlaufzustand mit niedriger Leistung nach der Leerlaufperiode einzustellen, wobei die CPU den Leerlaufzustand mit niedriger Leistung in Reaktion auf das Ausführen eines Interrupts bei Ablauf der Leerlaufperiode zu verlassen hat.
  17. Mindestens eine Speichervorrichtung gemäß Definition in Anspruch 16, ferner Anweisungen beinhaltend, die, wenn sie ausgeführt werden, die Maschine veranlassen, Leistungszustandsresidenzzähler auf Zeiten zu überwachen, in denen die CPU sich in jeweiligen Leerlaufzuständen mit niedriger Leistung befinden.
  18. Mindestens eine Speichervorrichtung gemäß Definition in Anspruch 17, ferner Anweisungen beinhaltend, die, wenn sie ausgeführt werden, die Maschine veranlassen, die Leistungszustandsresidenzzähler in Reaktion darauf, dass die CPU die jeweiligen Leerlaufzustände mit niedriger Leistung verlässt, zu beobachten.
  19. Mindestens eine Speichervorrichtung gemäß Definition in Ansprüchen 17 oder 18, ferner Anweisungen beinhaltend, die, wenn sie ausgeführt werden, die Maschine veranlassen: einen Leerlaufperiodenkoeffizienten zu bestimmen; Skalierungsfaktoren für jeweilige Leerlaufzustände mit niedriger Leistung zu bestimmen; und die Leerlaufperiode durch Multiplizieren des Leerlaufperiodenkoeffizienten mit einer Summe der Zeiten, zu denen sich die CPU in den jeweiligen Leerlaufzuständen mit niedriger Leistung befindet, multipliziert mit jeweiligen Skalierungsfaktoren, zu bestimmen.
  20. Mindestens eine Speichervorrichtung gemäß Definition in Anspruch 19, ferner Anweisungen beinhaltend, die, wenn sie ausgeführt werden, die Maschine veranlassen: den Leerlaufperiodenkoeffizienten auf einen ersten Wert zu initialisieren, wenn eine Zunahme eines Leistungszustands einer Vorrichtung auftritt; und den Leerlaufperiodenkoeffizienten zu verdoppeln.
  21. System zum Reduzieren von Stromverbrauch einer Rechenvorrichtung, wobei das System umfasst: Mittel zum Bestimmen einer Leerlaufperiode auf Basis von Hardwareresidenz der Rechenvorrichtung; und Mittel zum Einstellen eines Timers zum Aufwecken einer zentralen Verarbeitungseinheit (CPU) aus einem Leerlaufzustand mit niedriger Leistung nach der Leerlaufperiode, wobei die CPU den Leerlaufzustand mit niedriger Leistung in Reaktion auf das Ausführen eines Interrupts bei Ablauf der Leerlaufperiode zu verlassen hat.
  22. System gemäß Definition in Anspruch 21, ferner Mittel zum Überwachen von Leistungszustandsresidenzzählern auf Zeiten, in denen sich die CPU in jeweiligen Leerlaufzuständen mit niedriger Leistung befindet, beinhaltend.
  23. System gemäß Definition in Anspruch 22, wobei das Überwachen der Leistungszustandsresidenzzähler in Reaktion darauf auftritt, dass die CPU die jeweiligen Leerlaufzustände mit niedriger Leistung verlässt.
  24. System gemäß Definition in Ansprüchen 22 oder 23, wobei die Mittel zum Bestimmen der Leerlaufperiode auf Basis der Hardwareresidenz beinhalten: Mittel zum Bestimmen eines Leerlaufperiodenkoeffizienten, Mittel zum Bestimmen von Skalierungsfaktoren für jeweilige Leerlaufzustände mit niedriger Leistung; und Mittel zum Bestimmen der Leerlaufperiode durch Multiplizieren des Leerlaufperiodenkoeffizienten mit einer Summe der Zeiten, zu denen sich die CPU in den jeweiligen Leerlaufzuständen mit niedriger Leistung befindet, multipliziert mit jeweiligen Skalierungsfaktoren.
  25. System gemäß Definition in Anspruch 24, wobei die Mittel zum Bestimmen des Leerlaufperiodenkoeffizienten beinhalten: Mittel zum Initialisieren des Leerlaufperiodenkoeffizienten auf ein ersten Wert, wenn eine Zunahme eines Leistungszustands einer Vorrichtung auftritt; und Mittel zum Verdoppeln des Leerlaufperiodenkoeffizienten.
DE112017004758.7T 2016-09-22 2017-08-07 Verfahren und vorrichtung zum reduzieren des stromverbrauchs von rechenvorrichtungen Pending DE112017004758T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/272,629 2016-09-22
US15/272,629 US10275008B2 (en) 2016-09-22 2016-09-22 Methods and apparatus to reduce computing device power consumption
PCT/US2017/045691 WO2018057130A1 (en) 2016-09-22 2017-08-07 Methods and apparatus to reduce computing device power consumption

Publications (1)

Publication Number Publication Date
DE112017004758T5 true DE112017004758T5 (de) 2019-06-13

Family

ID=61620305

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017004758.7T Pending DE112017004758T5 (de) 2016-09-22 2017-08-07 Verfahren und vorrichtung zum reduzieren des stromverbrauchs von rechenvorrichtungen

Country Status (4)

Country Link
US (1) US10275008B2 (de)
CN (1) CN109643151B (de)
DE (1) DE112017004758T5 (de)
WO (1) WO2018057130A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210101632A (ko) 2020-02-10 2021-08-19 삼성전자주식회사 스토리지 장치 및 상기 스토리지 장치의 동작 방법
US20220091657A1 (en) * 2020-09-24 2022-03-24 Advanced Micro Devices, Inc. Mechanism for performing distributed power management of a multi-gpu system

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7146439B1 (en) * 2003-06-27 2006-12-05 Emc Corporation Management of background copy task for point-in-time copies
US20060227605A1 (en) * 2005-01-05 2006-10-12 Choi David S Memory architectures including non-volatile memory devices
US8041967B2 (en) * 2005-02-15 2011-10-18 Hewlett-Packard Development Company, L.P. System and method for controlling power to resources based on historical utilization data
US7930564B2 (en) * 2006-07-31 2011-04-19 Intel Corporation System and method for controlling processor low power states
US8887171B2 (en) * 2009-12-28 2014-11-11 Intel Corporation Mechanisms to avoid inefficient core hopping and provide hardware assisted low-power state selection
US20130290758A1 (en) * 2010-01-11 2013-10-31 Qualcomm Incorporated Sleep mode latency scaling and dynamic run time adjustment
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
TWI493332B (zh) * 2011-11-29 2015-07-21 Intel Corp 用於電力管理的方法與設備及其平台與電腦可讀取媒體
US8972763B2 (en) 2011-12-05 2015-03-03 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including determining an optimal power state of the apparatus based on residency time of non-core domains in a power saving state
US8775838B2 (en) * 2012-02-01 2014-07-08 Texas Instruments Incorporated Limiting the number of unexpected wakeups in a computer system implementing a power-saving preemptive wakeup method from historical data
US9026817B2 (en) * 2012-06-29 2015-05-05 Intel Corporation Joint optimization of processor frequencies and system sleep states
US20140181553A1 (en) * 2012-12-21 2014-06-26 Advanced Micro Devices, Inc. Idle Phase Prediction For Integrated Circuits
US9720487B2 (en) 2014-01-10 2017-08-01 Advanced Micro Devices, Inc. Predicting power management state duration on a per-process basis and modifying cache size based on the predicted duration
US9448617B2 (en) * 2014-03-11 2016-09-20 Futurewei Technologies, Inc. Systems and methods for messaging-based fine granularity system-on-a-chip power gating
US9760158B2 (en) * 2014-06-06 2017-09-12 Intel Corporation Forcing a processor into a low power state

Also Published As

Publication number Publication date
US10275008B2 (en) 2019-04-30
WO2018057130A1 (en) 2018-03-29
CN109643151B (zh) 2024-03-08
CN109643151A (zh) 2019-04-16
US20180081420A1 (en) 2018-03-22

Similar Documents

Publication Publication Date Title
DE102009015495B4 (de) Energieverwaltung bei einer Plattform basierend auf der Lenkung über die Wartezeit
DE112006003444B4 (de) Verfahren und Vorrichtung zum Erfassen von Prozessorzustands-Übergängen
DE102013104328B4 (de) Aufgabenzuteilung in großen und kleinen Kernen
DE112007001987B4 (de) Überführen einer Rechenplattform in einen Systemzustand niedriger Leistung
DE102010054337B4 (de) Mechanismen, um ineffizientes Core-Hopping zu vermeiden und Hardware-unterstützte Auswahl eines Niedrigleitungszustands bereitzustellen
DE112012006377B4 (de) Energieverbrauch und Leistung von Computersystemen steuern
DE112011105867B4 (de) Kollaboratives Prozessor- und Systemleistungs- und Energiemanagement
DE112007000446B4 (de) Verfahren und Vorrichtung zum Verwenden dynamischer Arbeitsmengenmerkmale, um die Skalierung von Frequenz und Spannung einer CPU zu steuern
DE102020120019A1 (de) Proaktive di/dt-spannungs-dachabfall-abschwächung
DE102009058426B4 (de) Verfahren und Vorrichtung zum Power-Management eines Prozessors
DE112008000603B4 (de) Verfahren zum Steuern von Kernarbeitsakten unter Verwendung von Niedrigleistungsmodi
DE112013006241T5 (de) Techniken für Plattform-Arbeitszyklus-Wechsel
DE102009060267A1 (de) Leerlaufzeit-Bericht für ein Power-Management
DE112007001713T5 (de) System und Verfahren zum Steuern von Zuständen niedriger Energie bei Prozessoren
DE102019112776A1 (de) Thermisches selbstlernen mit durch bestärkung lernendem agenten
DE10393969T5 (de) Mechanismus zur Verteilung von Unterbrechungen niedrigster Priorität unter Berücksichtigung des Prozessorleistungszustands
DE112013006184T5 (de) Verwalten eines Leistungszustandes eines Prozessors
DE10296549T5 (de) Ein Verfahren zum Bestimmen von Überführungspunkten bei Mikroprozessoren mit mehreren Leistungszuständen
DE102016118210A1 (de) Granulare Dienstqualität für Computer-Ressourcen
DE112012000749T5 (de) Techniken zum Verwalten des Stromverbrauchszustands eines Prozessors
DE102009051387A1 (de) Power Management für Mehrprozessorkerne
DE112004002506T5 (de) Vorrichtung und Verfahren für Energieleistungsüberwachungsgeräte zur Programmanpassung auf einen geringen Energieverbrauch
DE10297158B4 (de) Computersystem mit Regelung seiner zugeführten Spannung
DE102013104329A1 (de) Aufgabenzuteilung in großen und kleinen Kernen
DE112007000632T5 (de) Energieoptimierte Frame-Synchronisation für mehrere USB-Controller mit nicht gleichförmigen Frame-Raten