DE112017005371B4 - Energiesparen eines Prozessors während Warteereignissen - Google Patents

Energiesparen eines Prozessors während Warteereignissen Download PDF

Info

Publication number
DE112017005371B4
DE112017005371B4 DE112017005371.4T DE112017005371T DE112017005371B4 DE 112017005371 B4 DE112017005371 B4 DE 112017005371B4 DE 112017005371 T DE112017005371 T DE 112017005371T DE 112017005371 B4 DE112017005371 B4 DE 112017005371B4
Authority
DE
Germany
Prior art keywords
instructions
processor
power saving
saving mode
entering
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.)
Active
Application number
DE112017005371.4T
Other languages
English (en)
Other versions
DE112017005371T5 (de
Inventor
Raymond Michael HIGGS
Luke Hopkins
Mushfiq Saleheen
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112017005371T5 publication Critical patent/DE112017005371T5/de
Application granted granted Critical
Publication of DE112017005371B4 publication Critical patent/DE112017005371B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • 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/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • 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
    • 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)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)

Abstract

Verfahren zum Optimieren von Leistungsaufnahme in einer elektrischen Einheit, wobei das Verfahren aufweist:ein Empfangen, durch einen Prozessor (502), von Anweisungen (200) in eine Warteschleife einzutreten, wobei die Anweisungen (200) einen Ruheentscheidungsindex (212, 300) beinhalten, der einen Ruheoperationscode (302), einen Parameter (304) und einen Zustand (306) aufweist;ein Überwachen, durch den Prozessor (502), des durch den Ruheentscheidungsindex (212, 300) spezifizierten Parameters (304);ein Initiieren, durch den Prozessor (502), von Anweisungen (212, 300, 400) zum Eintreten in einen Energiesparmodus auf Grundlage einer Feststellung, dass der Parameter (304) einen durch den Ruheentscheidungsindex (212, 300) spezifizierten Wert erreicht hat, wobei der Wert auf Grundlage einer Historie vorangehender Ereignisse oder Zustände ermittelt wird und wobei die Feststellung auf der Anwendung eines durch den Ruheoperationscode (302) spezifizierten Algorithmus auf den Parameter (304) beruht;ein Initiieren, durch den Prozessor (502), von Anweisungen (212, 300, 400) zum Verlassen des Energiesparmodus auf Grundlage des Parameters (304); undein Bereitstellen einer Mitteilung über einen aktuellen Zustand des Prozessors (502) über eine Benutzerschnittstelle für einen Benutzer.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung betrifft allgemein ein Verringern und Steuern von Wärmeableitung sowie Leistungsaufnahme in einem Computersystem oder Prozessor mit vielen in integrierten Schaltungen (IC) vorhandenen Transistoren, die im Betrieb Energie verbrauchen
  • Typischerweise nutzen elektrische Einheiten Clock-Gating und Zyklussteuerung zum Verringern von Leistungsaufnahme im Betrieb. Da IC-Abmessungen immer kleiner und die Schaltungsdichte immer höher werden, werden die Anforderungen an die entsprechende Leistungsaufnahme und Wärmeableitung ebenfalls größer. Es ist äußerst wünschenswert, die Leistungsaufnahme zu minimieren, vor allem, wenn sich Schaltungen und energieverbrauchende Logikblöcke in einer Warteschleife befinden.
  • Die US 2011 / 0 154 079 A1 offenbart einen Prozessor, der einen Kern mit Decodierlogik aufweist, um einen Befehl zu decodieren, der eine Identifizierung einer zu überwachenden Position und einen Zeitgeberwert vorschreibt, und einen mit der Decodierlogik gekoppelten Zeitgeber, um eine Zählung in Bezug auf den Zeitgeberwert auszuführen. Der Prozessor kann weiter eine mit dem Kern gekoppelte Power-Management-Einheit umfassen, um eine Art eines Energiesparzustandes basierend mindestens teilweise auf dem Zeitgeberwert zu bestimmen und den Prozessor zu veranlassen, in den Energiesparzustand als Reaktion auf die Bestimmung einzutreten.
  • Die US 2010 / 0 077 243 A1 offenbart eine Energieverbrauch-Verwaltungseinheit (PMU), die auf Grundlage einer ersten Richtlinie einen optimalen Energiesparzustand unter Verwendung einer Break-even-Zeitperiode eines Energiesparzustands und einer erwarteten Leerlaufdauer ermitteln kann. Die PMU kann auf Grundlage einer zweiten Richtlinie den optimalen Stromsparzustand unter Verwendung einer ersten Break-even-Zeitperiode und einer tatsächlichen Leerlaufdauer ermitteln. Die Break-even-Zeitperiode kann einer Mindestzeit entsprechen, die ein Computersystem in einem Energiesparzustand verbleiben sollte, um die Energie zu kompensieren, die das System verbraucht, um in diesen Energiesparzustand einzutreten und ihn zu verlassen. Die erwartete Leerlaufdauer wird als Durchschnitt aus einem Erwartungswert der Leerlaufdauer und einer aktuellen Stichprobe der Leerlaufdauer ermittelt. Die tatsächliche Leerlaufdauer ist die Differenz zwischen einem ersten und einem zweiten Zeitpunkt, die den Eintritts- und Austrittspunkt in den bzw. aus dem Stromsparzustand darstellen. Die PMU kann das System in den optimalen Energiesparzustand überführen.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Zu den der Erfindung zugrundeliegenden Aufgaben gehört das Bereitstellen eines Verfahrens zum Optimieren von Leistungsaufnahme in einer elektrischen Einheit, das zusätzliche Energiesparpotenziale ausnutzt. Die der Erfindung zugrunde liegenden Aufgaben werden jeweils mit den Merkmalen der unabhängigen Patentansprüche gelöst. Ausführungsformen der Erfindung sind Gegenstand der abhängigen Patentansprüche.
  • Ausführungsformen beziehen sich auf ein Verfahren zum Optimieren von Leistungsaufnahme in einer elektrischen Einheit. Das Verfahren enthält ein Empfangen, durch einen Prozessor, von Anweisungen zum Eintreten in einer Warteschleife und ein Identifizieren, durch den Prozessor, eines den Anweisungen zugehörigen Parameters zum Eintreten in einen Wartezustand. Das Verfahren enthält auch ein Initiieren, durch den Prozessor, von Anweisungen zum Eintreten in einen Energiesparmodus auf Grundlage des Parameters, ein Initiieren, durch den Prozessor, von Anweisungen zum Verlassen des Energiesparmodus auf Grundlage der Parameter, und über eine Benutzerschnittstelle ein Bereitstellen einer Mitteilung über den aktuellen Zustand des Prozessors für einen Benutzer.
  • Ausführungsformen beziehen sich auch auf ein System, das einen Arbeitsspeicher mit durch einen Computer lesbaren Anweisungen enthält, und einen Prozessor zum Ausführen der durch einen Computer lesbaren Anweisungen. Die durch einen Computer lesbaren Anweisungen enthalten ein Empfangen von Anweisungen zum Eintreten in einen Wartezustand und ein Identifizieren eines den Anweisungen zugehörigen Parameters zum Eintreten in einen Wartezustand. Die durch einen Computer lesbaren Anweisungen enthalten auch ein Initiieren von Anweisungen, auf Grundlage des Parameters in einen Energiesparmodus einzutreten, ein Initiieren, durch den Prozessor, von Anweisungen zum Verlassen des Energiesparmodus auf Grundlage der Parameter, und über eine Benutzerschnittstelle ein Bereitstellen einer Mitteilung über einen aktuellen Zustand des Prozessors für einen Benutzer.
  • Ausführungsformen beziehen sich auch auf ein Computerprogrammprodukt, das ein durch einen Computer lesbares Speichermedium mit darauf enthaltenen Programmanweisungen enthält, wobei das durch den Computer lesbare Speichermedium kein transitorisches Signal per se ist. Die Programmanweisungen sind durch einen Computerprozessor ausführbar und veranlassen den Computerprozessor, ein Verfahren auszuführen. Das Verfahren enthält ein Empfangen, durch einen Prozessor, von Anweisungen zum Eintreten in einen Wartezustand und ein Identifizieren, durch den Prozessor, eines den Anweisungen zugehörigen Parameters zum Eintreten in einen Wartezustand. Das Verfahren enthält auch ein Initiieren von Anweisungen, auf Grundlage des Parameters in einen Energiesparmodus einzutreten, ein Initiieren, durch den Prozessor, von Anweisungen zum Verlassen des Energiesparmodus auf Grundlage der Parameter, und über eine Benutzerschnittstelle ein Bereitstellen einer Mitteilung über einen aktuellen Zustand des Prozessors für einen Benutzer.
  • Figurenliste
  • Die Thematik der vorliegenden Erfindung wird insbesondere in den Ansprüchen am Ende der Patentschrift dargelegt und eindeutig definiert. Die vorgenannten und weitere Funktionen und Vorteile werden aus der folgenden ausführlichen Beschreibung in Verbindung mit den begleitenden Zeichnungen offenkundig, wobei:
    • 1 einen Ablaufplan darstellt, der einen Prozess eines Energiesparereignisses zum Steuern von Leistungsaufnahme gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung zeigt;
    • 2 ein encodiertes Warteereignisanweisungsset gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung darstellt;
    • 3 ein Ruheentscheidungsindexfeld des Warteereignisanweisungssets gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung darstellt;
    • 4 eine Tabelle mit alternativen Anweisungen darstellt, die durch das Auftreten eines auslösenden Ereignisses gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung ausgelöst werden;
    • 5 ein Blockschaubild übergeordneter Ebene eines Computersystems gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung darstellt; und
    • 6 ein Computerprogrammprodukt darstellt, das ein durch einen Computer lesbares Speichermedium und Programmanweisungen gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung enthält.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Verschiedene Ausführungsformen der vorliegenden Erfindung werden hierin unter Bezugnahme auf die zugehörigen Zeichnungen beschrieben. Alternative Ausführungsformen sind denkbar, ohne von dem Schutzumfang dieser Erfindung abzuweichen. Zu beachten ist, dass verschiedene Verbindungen und positionsbezogene Beziehungen (z.B. über, unter, neben usw.) zwischen Elementen in der folgenden Beschreibung und in den Zeichnungen dargelegt werden. Diese Verbindungen und/oder positionsbezogenen Beziehungen können, sofern nicht anders angegeben, direkt oder indirekt sein, und die vorliegende Erfindung ist in dieser Hinsicht keinesfalls als einschränkend zu verstehen. Dementsprechend kann eine Kopplung von Entitäten auf eine direkte oder indirekte Kopplung verweisen, und eine positionsbezogene Beziehung zwischen Entitäten kann eine direkte oder indirekte positionsbezogene Beziehung sein. Als Beispiel für eine indirekte positionsbezogene Beziehung enthalten Verweise in der vorliegenden Beschreibung auf ein Ausbilden einer Schicht „A“ über einer Schicht „B“ Situationen, in denen sich eine oder mehrere Zwischenschichten (z.B. Schicht „C“) zwischen der Schicht „A“ und der Schicht „B“ befindet bzw. befinden, solange die relevanten Merkmale und Funktionalitäten von Schicht „A“ und Schicht „B“ nicht durch die Zwischenschicht(en) wesentlich verändert werden.
  • Die folgenden Definitionen und Abbildungen sind für die Auslegung der Ansprüche und der Patentschrift zu verwenden. Wie hierin verwendet, sollen die Begriffe „weist auf“, „aufweisend“, „umfasst“, „umfassend“, „besitzt“, „besitzend“, „enthält“ oder „enthaltend“ oder irgendeine Variation davon eine nicht ausschließende Einbeziehung abdecken. Zum Beispiel sind eine Zusammensetzung, ein Gemisch, ein Prozess, ein Verfahren, ein Artikel oder eine Vorrichtung, die eine Liste von Elementen umfassen, nicht notwendigerweise auf nur diese Elemente beschränkt, sondern können andere Elemente enthalten, die nicht ausdrücklich aufgelistet oder derartigen Zusammensetzungen, Gemischen, Prozessen, Verfahren, Artikeln oder Vorrichtungen eigen sind.
  • Außerdem bedeutet der hierin verwendete Begriff „beispielhaft“, dass „etwas als Beispiel, Variante oder zur Veranschaulichung dient“. Jede hierin als „beispielhaft“ beschriebene Ausführungsform oder Auslegung muss nicht notwendigerweise als gegenüber anderen Ausführungsformen oder Auslegungen bevorzugt oder vorteilhaft aufgefasst werden. Der Begriff „ein/e oder mehrere“ ist als jede ganzzahlige Anzahl größer oder gleich eins zu verstehen, d.h. eins, zwei, drei, vier usw. Der Begriff „eine Mehrzahl“ ist als ganzzahlige Anzahl größer oder gleich zwei zu verstehen, d.h. zwei, drei, vier, fünf usw. Der Begriff „Verbindung“ kann eine indirekte „Verbindung“ und eine direkte „Verbindung“ enthalten.
  • Verweise in der Patentschrift auf „eine Ausführungsform“, „irgendeine Ausführungsform“, eine „beispielhafte Ausführungsform“ usw. geben an, dass die beschriebene Ausführungsform eine bestimmte Funktion, Struktur oder Eigenschaft enthalten kann, aber jede Ausführungsform die bestimmte Funktion, Struktur oder Eigenschaft enthalten kann. Darüber hinaus verweisen derartige Formulierungen nicht notwendigerweise auf dieselbe Ausführungsform. Wenn ferner eine bestimmte Funktion, Struktur oder Eigenschaft in Verbindung mit einer Ausführungsform beschrieben wird, wird davon ausgegangen, dass es dem Wissensstand eines Fachmanns entspricht, eine derartige Funktion, Struktur oder Eigenschaft in Verbindung mit anderen Ausführungsformen einzuordnen, ungeachtet dessen, ob sie explizit beschrieben wurden.
  • Zum Zweck der folgenden Beschreibung beziehen sich die Begriffe „obere/r“, „untere/r“, „rechts“, „links“, „vertikal“, „horizontal“, „oben“, „unten“ und Ableitungen davon auf die beschriebenen Strukturen und Verfahren in ihrer Ausrichtung in den Zeichnungsfiguren. Die Begriffe „darüber liegend“, „oberhalb“, „oben auf“, „positioniert auf“ oder „positioniert oberhalb“ bedeuten, dass ein erstes Element, wie beispielsweise eine erste Struktur, auf einem zweiten Element vorhanden ist, wie beispielsweise einer zweiten Struktur, wobei dazwischenliegende Elemente wie eine Schnittstellenstruktur zwischen dem ersten Element und dem zweiten Element vorhanden sein können. Der Begriff „direkter Kontakt“ bedeutet, dass ein erstes Element (wie beispielsweise eine erste Struktur) und ein zweites Element (wie beispielsweise eine zweite Struktur) ohne jegliche dazwischenliegenden Schichten an der Schnittstelle der beiden Elemente miteinander verbunden sind.
  • Unter folgender Bezugnahme auf einen Überblick über die vorliegende Erfindung enthalten die hierin beschriebenen Verfahren und Einheiten einen Energiesparereignisprozess zum Steuern der Leistungsaufnahme. Diese Erfindung enthält ein bereits in einem Wartezustand befindliches Computersystem (Prozessor), das Anweisungen zum Eintreten in einen Zustand mit geringer Energie (Energiesparzustand) an Elemente des Prozessors sendet, um dadurch Energie zu sparen und Wärmeerzeugung zu verringern. Damit der Energiesparzustand beginnen kann, muss sich der Prozessor zuerst in einem Wartezustand befinden. Der Prozessor tritt abhängig von der aktuellen Arbeitslast und dem Programmablauf in einen Wartezustand ein und ist nicht von Leistungsaufnahmeparametern abhängig.
  • Unter folgender Bezugnahme auf eine ausführlichere Beschreibung von Ausführungsformen der vorliegenden Erfindung stellt 1 einen Ablaufplan 100 dar, der einen Energiesparprozess zum Steuern von Leistungsaufnahme gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung zeigt. Der Prozess 100 enthält einen Prozessor, der (bei Eintritt in einen Wartezustand) „Wait“-Anweisungen 102 ausführt, einen Entscheidungsblock 104, ob die Bedingungen für ein Fortfahren in einem Wartezustand erfüllt sind, einen Prozess zum Fortsetzen der Programmausführung am Block 106, wenn die Bedingungen am Block 104 nicht erfüllt sind, einen Schritt zum Anhalten der Programmausführung am Block 108, wenn die Bedingungen des Blocks 104 erfüllt sind, und eine Überwachung auf Eintrittsbedingungen in einen Energiesparmodus am Block 110. Der Ablaufplan 100 fährt mit einer Entscheidung zum Eintreten in einen Energiesparmodus auf Grundlage des Ruhezustandscodes (des Weiteren in 2 beschrieben) und eines aktuelles Zustands am Block 112 fort, wobei ein Entscheidungsblock bestimmt, ob die Warteanweisung am Block 114 beendet wurde, einem Prozess zum Abschalten von ausgewählten Funktionseinheiten am Block 116, wenn die Entscheidung am Block 112 „JA“ lautet, einem Prozess zum Überwachen von Austrittsbedingungen des Energiesparmodus am Block 118, und einem Entscheidungsblock am Block 120 zum Bestimmen, ob der Energiesparmodus auf Grundlage des Ruhezustandscodes (erörtert in 2) und des aktuellen Zustands verlassen werden soll. Der Ablaufplan 100 fährt mit einem Entscheidungsblock an Block 122 mit der Frage fort, ob die Warteanweisung auf Grundlage einer „NEIN“-Antwort vom Block 120 beendet wurde, einem Prozess zum erneuten Starten von abgeschalteten Funktionseinheiten am Block 124, wenn die Antwort am Entscheidungsblock 120 „JA“ lautet, einem Entscheidungsblock 126 mit der Frage, ob die Warteanweisung beendet wurde, einem Prozess zum Überwachen der Beendigung der Warteanweisung am Block 128, wenn die Antwort auf den Entscheidungsblock 126 „NEIN“ lautet, und einem Prozess zum erneuten Aufnehmen der Programmausführung am Block 130, wenn die Antwort auf den Entscheidungsblock 126 „JA“ lautet.
  • Wenn sich der Prozessor am Block 108 in einem Wartezustand befindet, trifft der Prozessor am Block 112 eine Entscheidung für den Eintritt in einen Energiesparzustand oder Energiesparmodus. Dies erfolgt dadurch, dass der Prozessor am Block 116 Anweisungen zum Abschalten oder Verringern der Leistungsaufnahme von ausgewählten Schaltungen und Logikblöcken sendet. Die Entscheidung für einen Eintritt in einen Energiesparzustand, wie am Block 116 gezeigt, erfolgt auf Grundlage mehrerer Parameter, wie in 3 beschrieben. Ungeachtet dessen, ob der Prozessor entscheidet, in einen Energiesparzustand einzutreten, arbeitet der Prozessor in einem Wartezustand weiter. Der Prozessor hat die Möglichkeit, unabhängig von einem Betrieb in einem Energiesparzustand in einen Wartezustand einzutreten. Der Prozessor kann jedoch nur in den Energiesparzustand eintreten, wenn sich der Prozessor bereits in einem Wartezustand befindet. Wenn der Prozessor ferner einen Wartezustand verlässt, endet auch der Energiesparzustand. Der Ablaufplan 100 fährt mit Block 112 fort, der das Computersystem enthält, das Systemparameter überwacht, um zu bestimmen, ob der Wartezustand fortgesetzt oder beendet werden soll. Der Prozess fährt mit Block 116 fort, wobei vorab ausgewählte Schaltungen und Logikblöcke abgeschaltet oder angewiesen werden, in einen Energiesparzustand einzutreten Der Ablaufplan 100 enthält außerdem einen Entscheidungsblock 120, in dem der Prozessor entscheidet, ob der Energiesparzustand fortgesetzt oder der Energiesparzustand verlassen werden soll. Diese Entscheidung am Block 120 enthält ein Analysieren der Computersystemparameter am Block 118. Der Prozessor fährt damit fort, den Energiesparzustand am Block 120 bis zu einem derartigen Zeitpunkt zu aktivieren, an dem ein Set von überwachten Parametern den Zustand am Block 118 ändert, wenn zum Beispiel ein auslösendes Ereignis verschwindet, wenn der Prozessor Anweisungen zum Verlassen des Energiesparzustands sendet, oder wenn der Prozessor den Wartezustand am Block 122 verlässt. Wenn die Entscheidung zum Verlassen des Energiesparzustands am Block 120 getroffen wurde, startet der Prozess die abgeschalteten Funktionseinheiten am Block 124 neu und überwacht dann auf einen Befehl, den Wartezustand am Block 126 zu beenden. Wenn der Befehl zum Verlassen des Wartezustands am Block 126 empfangen wird, wird die Programmausführung bei 130 wieder aufgenommen, und der Prozess startet neu am Block 102.
  • 2 stellt ein encodiertes Warteereignisanweisungsset 200 gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung dar. Ein beispielhaftes Anweisungsset 200 hat eine Mehrzahl von Feldern, die als Opcode-Feld 202, Verzweigungsfeld 204, Optionenfeld 205, Maskenfeld 208, Zeitfeld 210, Hinweisfeld (auch bekannt unter Ruheentscheidungsindex (SDI)) 212 und Feld „Reserviert“ 214 bezeichnet werden. Das Opcode-Feld 202 identifiziert das Warteereignisanweisungsset eindeutig in dem Anweisungsset 200. Es können mehrere Variationen von Warteereignissen vorhanden sein, einschließlich einigen Operanden, die auf Register verweisen, und einige, die unmittelbare Verarbeitungsoperanden empfangen und verarbeiten. Das Verzweigungsfeld 204 gibt die Stelle an, an der sich das Programm verzweigen soll, wenn ein Fehler auftritt. Ein Beispiel ist ein Zeitüberschreitungsereignis. Das Verzweigungsfeld 204 kann auch eine absolute oder relative Adressierung enthalten. Das Optionenfeld 206 encodiert, wie das Set von erwarteten Auslöseereignissen bearbeitet wird. In einigen Ausführungsformen ist es wünschenswert, eine Zeitdauer abzuwarten, bis Bits gesetzt oder gelöscht sind, die eine verfügbare Ressource darstellen. In einigen Ausführungsformen ist es wünschenswert zu warten, bis alle Bits oder nur ein einziges Bit, das irgendeine Ressource darstellt, den Zustand ändern. Einige Ressourcen können durch ein einzelnes Bit dargestellt werden und erfordern keine Maske, wie im Folgenden beschrieben. In diesen Ausführungsformen können derartige Ressourcen kurz und prägnant dargestellt werden. Inzwischen encodiert das Maskenfeld 208 zahlreiche Ressourcen. Zum Beispiel kann ein Eingabe/Ausgabe- (E/A) Controller mehrere gleichzeitig ausstehende Direktspeicherzugriffs- (DMA) Operationen haben. Wenn jede DMA-Operation als Einzelbit encodiert wird, kann eine Wartezeit für die 1. und 3. DMA-Operationen vorhanden sein. Inzwischen wird die 2. DMA-Operation ignoriert. Das Maskenfeld 208 kann ebenfalls mit einer Maske „101b“ encodiert werden (wobei „b“ für binäre Maske steht). Die Verwendung des Maskenfelds 208 blockiert keine Operationen; sondern identifiziert diejenigen Operationen, die für die Entscheidung, den Wartezustand zu verlassen, nicht berücksichtigt werden. Die Warteereignisanweisung 200 enthält außerdem ein Zeitfeld 210, das für den Prozessor das maximale Zeitintervall encodiert, das er warten muss. Wenn das System die eingerichtete Zeitdauer für den Eintritt des auslösenden Ereignis gewartet hat, verweist es anschließend auf den Operanden des Verzweigungsfelds 204. Der Operand des Verzweigungsfelds 204 wird anschließend zum Laden des Programmzählers verwendet. In einigen Ausführungsformen kann ein Programmzähler von Null so encodiert werden, dass er ständig wartet. In einigen Ausführungsformen kann das Zeitfeld 210 ebenfalls auf 0 gesetzt werden, damit es ständig wartet. Das SDI-Feld 212 enthält Bits zum Auswählen von Optionen, darunter „immer Energie sparen“, „nie Energie sparen“ usw. Das SDI-Feld 212 wird zum Steuern des Eintritts und Verlassens des Energiesparzustands verwendet und enthält zusätzliche Informationen, die der Software-Entwickler an die Hardware übergeben möchte, und die in 3 ausführlicher erläutert werden.
  • 3 stellt ein Feld 300 eines Ruheentscheidungsindex (SDI) des Warteereignisanweisungssets gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung dar. Das SDI-Feld (Tabelle) 300 ist ein Feld der Warteereignisanweisung 200 von 2. Die SDI-Tabelle 300 enthält einen Ruheoperations-(Op) Code 302, Parameter 304 und einen Zustand 306. Jeder der Tabelleneinträge steuert eine Zustandsmaschine, die einem SDI-Tabellen-, 300, Eintrag zugehörig ist. Die Informationen in einem bestimmten SDI-Tabellen-, 300, Eintrag steuern, wann der Eintritt in den Energiesparzustand und wann der Austritt aus dem Energiesparzustand erfolgt Der Programmierer richtet die Werte der SDI-Tabelle 300 in der Warteereignisanweisung 200 ein. Außerdem programmiert der Programmierer auch den Ruheoperationscode 302 und die Parameter 304 für jeden Eintrag in der SDI-Tabelle 300. Auf einen vorgegebenen Eintrag einer SDI-Tabelle 300 kann je nach Bedarf von mehr als einer Warteereignisanweisung verwiesen werden. Der Ruheoperationscode 302 gibt an, welcher Algorithmus verwendet werden soll. Einige beispielhafte Algorithmen enthalten Folgendes, sind aber nicht darauf beschränkt: keine Operationen (NOP) 308, wobei die Einheit unter keinen Umständen in den Energiesparzustand eintritt und Parameter (keine) und Zustand (keinen) enthält. Ein weiterer Beispielalgorithmus ist eine Zeitverzögerung 310, wobei das SDI-Feld 300 Anweisungen zum Eintritt in einen Energiesparzustand sendet, wenn die vorherigen aufeinander folgenden N Wartezustände länger gedauert haben als ein angegebener Schwellenwertparameter. Die Parameter enthalten eine Anzahl von Operationen und einen Schwellenwert. Der Zustand enthält eine aktuelle Anzahl von vorherigen aufeinander folgenden Operationen, die einen Schwellenwert überschreiten. Ein weiterer Beispielalgorithmus enthält ein Überschreiten eines durchschnittlichen Schwellenwerts 312. Dieses SDI-Feld hat einen Ruhe-Opcode 302, der einen Eintritt in einen Energiesparzustand angibt, wenn der exponentiell gleitende Durchschnitt von Warteereigniszeiten einen Schwellenwert überschreitet. Der exponentiell gleitende Durchschnitt wird definiert als: l a s t _ m e a s u r e d _ w a i t _ t i m e * a + ( 1 a ) * p r e v i o u s _ c a l c u l a t e d _ exponential _ average
    Figure DE112017005371B4_0001
  • Die Parameter enthalten einen Gewichtungsparameter „a“ und einen Schwellenwert. Der Zustand enthält den vorher berechneten Mittelwert. Ein weiterer Beispielalgorithmus enthält eine andere Zeitverzögerung2 314, in der der Energiesparzustand nach einer vorbestimmten Zeit (vorherige Wartedauer - K Zeitgeber-Ticks) verlassen wird. Wenn dieser Wert <= 0 ist, tritt die Einheit nicht in einen Energiesparmodus ein und behält ihren gegenwärtigen Zustand auf unbestimmte Zeit bei. Der Parameter enthält den Wert „K“, während der Zustand die vorherige Wartedauer enthält. Ein weiterer Beispielalgorithmus enthält ein Nicht-Eintreten in einen Energiesparzustand, wenn die Anzahl von vorherigen aufeinander folgenden N Operationen einen vorbestimmten Schwellenwert 316 nicht überschreitet. Die Parameter enthalten eine Anzahl von Operationen N und einen Schwellenwert. Der Zustand enthält die aktuelle Anzahl von aufeinander folgenden Operationen, die kleiner als der Schwellenwert ist. Schließlich enthält ein weiterer Beispielalgorithmus ein Nicht-Eintreten in einen Energiesparzustand, wenn der exponentiell gleitende Durchschnitt kleiner als ein Schwellenwert 318 ist. Die Parameter enthalten einen Gewichtungsparameter „a“ und einen vorbestimmten Schwellenwert. Der Zustand enthält einen vorher berechneten Mittelwert. Dies ist nur ein Beispiel für mögliche Algorithmen, und ist nicht darauf beschränkt. Weitere Ausführungsformen sind möglich, was vom verwendeten System und den Anforderungen des Operators oder Programmierers abhängt. Die Algorithmen 308, 310, 312, 314, 316 und 318 des SDI-Felds 300 können durch Verarbeiten von Elementmikrocode oder auf Hardware-Zustandsmaschinen umgesetzt werden. Der Eintritt in Energiesparzustände und deren Verlassen kann zu jedem Zeitpunkt in einem aktiven Wartezyklusintervall erfolgen. Weitere Algorithmen sind möglich und sind nicht auf die oben beschriebenen Ausführungsformen beschränkt.
  • 4 stellt einen Ablaufplan mit alternativen Anweisungssets 400 dar, die durch das Auftreten eines auslösenden Ereignisses gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung ausgelöst werden. Alle Operanden von Optionen-Maskenfeld, Zeitfeld und SDI-Feld encodieren Informationen, die von der Hardware zum Energiesparen und Verringern von Wärmeerzeugung verwendet werden. Einige der Informationen sind implizit und einige explizit (z.B. der Operand des SDI-Felds). Mehrere Triggerereignisse 402, die einen Eintritt in einen Energiesparzustand auslösen würden, enthalten ein Warten für eine Dauer, die größer als ein Schwellenwert 404 ist, ein ständiges Warten 406, ein Warten auf eine Ressource, die als Anwendung angesehen wird, die nach neuer Arbeit sucht 408, ein Warten auf eine Ressource, die zu langsam ist 410, ein Warten auf mehrere Ereignisse, die eintreten sollen 412, ein Verwenden eines Befehls „Immer Energie sparen“ 414 und ein Warten auf ein „chipexternes Signal“ 416. Verschiedene Bedingungen können verschiedene Eintritte in einen Energiesparzustand auslösen. Zum Beispiel kann das Triggerereignis „Ständig warten 406“ sogar ein Clock-Gating für einige oder alle Prozessorschaltungen vornehmen. Alternativ könnte ein Warten auf einem Hochgeschwindigkeitsbus die Taktgeschwindigkeit des Prozessors drosseln. Einige Bedingungen können eingerichtet werden, um ein Energiesparereignis nicht auszulösen, wie beispielsweise Warten auf ein Ereignis, das bereits eingetreten ist, Warten für eine Zeitdauer, die kleiner als ein eingerichteter Schwellenwert ist, oder Warten, während ein Befehl „Nie Energie sparen“ in Kraft ist. Die aktuelle Ausführungsform ist eine Warteereignisanweisung. Andere Ausführungsformen sind jedoch ebenfalls möglich. Dazu gehören Systemaufrufe, andere Software-Konstrukte wie beispielsweise Mutexe (ein Programmobjekt, das ermöglicht, dass mehrere Programm-Threads dieselbe Ressource gemeinsam nutzen, wie beispielsweise Dateizugriff), Sperren, bedingte Variablen usw. Diese und andere Ausführungsformen können gleichwertige Funktionen umsetzen und viele weitere Anweisungen dazu verwenden.
  • 5 stellt ein Blockschaubild übergeordneter Ebene eines Computersystems 500 dar, das zum Umsetzen von einer oder mehreren Ausführungsformen verwendet werden kann. Insbesondere kann das Computersystem 500 zum Umsetzen von Hardware-Komponenten von Systemen verwendet werden, die zum Ausführen der hierin beschriebenen Verfahren fähig sind. Obwohl ein beispielhaftes Computersystem 500 gezeigt wird, enthält das Computersystem 500 einen Kommunikationspfad 526, der das Computersystem 500 mit weiteren Systemen (nicht dargestellt) verbindet und ein oder mehrere Weitverkehrsnetzwerke (WAN) und/oder lokale Netzwerke (LAN) wie zum Beispiel das Internet, Intranet-System(e) und/oder drahtlose Kommunikationsnetzwerk(e) enthalten kann. Das Computersystem 500 und weitere Systemen stehen über den Kommunikationspfad 526 in Verbindung, um z.B. untereinander Daten auszutauschen.
  • Das Computersystem 500 enthält einen oder mehrere Prozessoren, wie zum Beispiel einen Prozessor 502. Der Prozessor 502 ist mit einer Kommunikationsinfrastruktur 504 verbunden (z.B. einem Kommunikationsbus, einer Kreuzschiene oder ein Netzwerk). Das Computersystem 500 kann eine Anzeigeschnittstelle 506 enthalten, die Grafiken, Textinhalt und andere Daten von einer Kommunikationsinfrastruktur 504 (oder von einem nicht gezeigten Bildspeicher) zum Anzeigen auf einer Anzeigeeinheit 508 weiterleitet. Das Computersystem 500 enthält auch einen Hauptarbeitsspeicher 510, bevorzugt einen Direktzugriffsspeicher (RAM), und kann auch einen sekundären Arbeitsspeicher 512 enthalten. Der sekundäre Arbeitsspeicher 512 kann zum Beispiel ein Festplattenlaufwerk 514 und/oder ein entnehmbares Speicherlaufwerk 516 enthalten, das zum Beispiel ein Diskettenlaufwerk, ein Magnetbandlaufwerk oder ein optisches Plattenlaufwerk ist. Das Festplattenlaufwerk 514 kann ein Solid-State-Laufwerk (SSD), ein herkömmliches Magnetplattenlaufwerk oder eine Hybridausführung aus beidem sein. In dem sekundären Arbeitsspeicher 512 kann auch mehr als ein Festplattenlaufwerk 514 enthalten sein. Das entnehmbare Speicherlaufwerk 516 liest aus einer entnehmbaren Speichereinheit 518 und/oder schreibt in diese auf eine dem Fachmann bekannten Art und Weise. Die entnehmbare Speichereinheit 518 ist beispielsweise eine Diskette, eine CD, ein Magnetband oder eine optische Platte usw., die von dem entnehmbaren Speicherlaufwerk 516 gelesen werden oder in die geschrieben wird. Wie klar sein dürfte, enthält die entnehmbare Speichereinheit 518 ein durch einen Computer lesbares Medium mit darauf gespeicherter Computersoftware und/oder Daten.
  • In alternativen Ausführungsformen kann der sekundäre Arbeitsspeicher 512 weitere ähnliche Mittel enthalten, um zu ermöglichen, dass Computerprogramme oder andere Anweisungen in das Computersystem geladen werden. Derartige Mittel können zum Beispiel eine entnehmbare Speichereinheit 520 und eine Schnittstelle 522 enthalten. Beispiele für derartige Mittel können ein Programmpaket und eine Paketschnittstelle (wie diejenige, die in Videospiel-Geräten zu finden ist), einen ausbaubaren Arbeitsspeicherchip (wie z.B. eine EPROM Secure Digital-Karte (SD-Karte), Compact Flash-Karte (CF-Karte), einen Universal Serial Bus- (USB) Arbeitsspeicher oder PROM) und zugehörige Buchse sowie weitere entnehmbare Speichereinheiten 520 und Schnittstellen 522 enthalten, die ermöglichen, Software und Daten aus der entnehmbaren Speichereinheit 5230 in das Computersystem 500 zu übertragen.
  • Das Computersystem 500 kann auch eine Kommunikationsschnittstelle 524 enthalten. Die Kommunikationsschnittstelle 524 ermöglicht, Software und Daten zwischen dem Computersystem und externen Einheiten zu übertragen. Zu Beispielen für die Kommunikationsschnittstelle 524 zählen ein Modem, eine Netzwerkschnittstelle (wie zum Beispiel eine Ethernet-Karte), ein Kommunikationsanschluss oder ein PC-Kartensteckplatz und eine Karte, ein Universal Serial Bus- (USB) Anschluss und dergleichen. Über die Kommunikationsschnittstelle 524 übertragene Software und Daten liegen in Form von Signalen vor, die zum Beispiel elektronische, elektromagnetische, optische oder andere Signale sein können, die von der Kommunikationsschnittstelle 524 empfangen werden können. Diese Signale werden für die Kommunikationsschnittstelle 524 über einen Kommunikationspfad 526 (d.h. einen Kanal) bereitgestellt. Der Kommunikationspfad 526 transportiert Signale und kann mithilfe von Draht oder Kabel, Lichtwellenleitern, einer Telefonleitung, einer Mobiltelefonverbindung, einer HF-Verbindung und/oder anderen Kommunikationskanälen umgesetzt werden.
  • In der vorliegenden Beschreibung werden die Begriffe „durch einen Computer verwendbares Medium“ und „durch einen Computer lesbares Medium“ für einen Verweis auf Medien verwendet, wie zum Beispiel den Hauptarbeitsspeicher 510 und den sekundären Arbeitsspeicher 512, das entnehmbare Speicherlaufwerk 516 und eine Festplatte, die in dem Festplattenlaufwerk 514 installiert ist. Computerprogramme (die auch als Computersteuerlogik bezeichnet werden) sind im Hauptarbeitsspeicher 510 und/oder dem sekundären Arbeitsspeicher 512 gespeichert. Computerprogramme können auch über die Kommunikationsschnittstelle 524 empfangen werden. Wenn derartige Computerprogramme ausgeführt werden, ermöglichen sie dem Computersystem die Ausführung der hierin erörterten Funktionen. Insbesondere ermöglichen die Computerprogramme, wenn sie ausgeführt werden, dem Prozessor die Ausführung der Funktionen des Computersystems. Dementsprechend stellen derartige Computerprogramme Steuereinrichtungen des Computersystems dar. Aus der vorstehenden ausführlichen Beschreibung ist somit ersichtlich, dass eine oder mehrere Ausführungsformen technischen Nutzen und Vorteile bieten.
  • Unter folgender Bezugnahme auf 6 wird allgemein ein Computerprogrammprodukt 600 gemäß einer Ausführungsform gezeigt, die ein durch einen Computer lesbares Speichermedium 602 und Programmanweisungen 604 enthält.
  • Ausführungsformen können ein System, ein Verfahren und/oder ein Computerprogrammprodukt sein. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) enthalten, auf dem durch einen Computer lesbare Programmanweisungen gespeichert sind, um einen Prozessor dazu zu veranlassen, Aspekte von Ausführungsformen der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen beibehalten und speichern kann. Ein durch den Computer lesbares Speichermedium kann zum Beispiel eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer CD-ROM, eine DVD, ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination des Vorgenannten. Ein durch einen Computer lesbares Speichermedium soll, wie hierin verwendet, nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder andere Übertragungsmedien ausbreiten (z.B. durch ein Glasfaserkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt computerlesbare Programmanweisungen aus dem Netzwerk und leitet die computerlesbaren Programmanweisungen zur Speicherung in einem computerlesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Ausführungsformen kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Anwenders, teilweise auf dem Computer des Anwenders, als eigenständiges Software-Paket, teilweise auf dem Computer des Anwenders und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Anwenders über jeden Typ von Netzwerk verbunden werden, einschließlich ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Nutzung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, feldprogrammierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die computerlesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Ausführungsformen der vorliegenden Erfindung durchzuführen.
  • Aspekte von verschiedenen Ausführungsformen werden hierin unter Bezugnahme auf Ablaufplanveranschaulichungen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen beschrieben. Es versteht sich, dass jeder Block der Ablaufplandarstellungen und/oder der Blockschaubilder und Kombinationen von Blöcken in den Ablaufplandarstellungen und/oder den Blockschaubildern durch computerlesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können für einen Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder andere Vorrichtungen, die programmierbare Daten verarbeiten, bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder andere Vorrichtungen, die programmierbare Daten verarbeiten, ausgeführt werden, Mittel zum Umsetzen der Funktionen/Handlungen erstellen, die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegeben sind. Diese durch einen Computer lesbaren Programmanweisungen können auch in einem durch einen Computer lesbaren Speichermedium gespeichert werden, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Weise funktionieren, sodass das durch einen Computer lesbare Speichermedium mit den darin gespeicherten Anweisungen einen Fertigungsartikel aufweist, einschließlich Anweisungen, welche die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegebene Funktion/Handlung umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Arbeitsschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Diesbezüglich kann jeder Block in dem Ablaufplan oder in den Blockschaubildern ein Modul, ein Segment oder einen Abschnitt von Anweisungen darstellen, der eine oder mehrere ausführbare Anweisungen zum Umsetzen der angegebenen logischen Funktion(en) aufweist. In einigen alternativen Umsetzungen können die in den Blöcken angegebenen Funktionen außerhalb der Reihenfolge auftreten, die in den Figuren angegeben ist. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen parallel ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufplandarstellungen sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplandarstellung durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die angegebenen Funktionen oder Handlungen durchführen oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Die hierin verwendete Terminologie dient nur zum Zweck der Beschreibung von bestimmten Ausführungsformen und soll keinesfalls einschränkend sein. Die hierin verwendeten Singularformen „ein“, „eine“ und „der/die/das“ sollen auch die Pluralformen mit einschließen, es sei denn, der Kontext gibt eindeutig anderes vor. Es versteht sich des Weiteren, dass die Begriffe „weist auf“ und/oder „aufweisend“ bei Verwendung in dieser Patentschrift das Vorhandensein ausgewiesener Funktionen, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten angeben, das Vorhandensein oder die Hinzufügung von einem oder mehreren anderen Funktionen, Ganzzahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen davon aber nicht ausschließen.
  • Die entsprechenden Strukturen, Materialien, Handlungen und Entsprechungen aller Mittel oder Schritt-plus-Funktion-Elemente in den nachstehenden Ansprüchen sollen alle Strukturen, Materialien oder Handlungen zum Ausführen der Funktion in Kombination mit anderen beanspruchten Elementen enthalten, wie speziell beansprucht. Die hierin angegebenen Beschreibungen dienen zur Veranschaulichung und Beschreibung, sollen aber keineswegs erschöpfend oder einschränkend sein. Für Fachleute sind viele Modifizierungen und Variationen offenkundig, die nicht vom Schutzumfang und dem Erfindungsgedanken von Ausführungsformen der Erfindung abweichen. Die Ausführungsform wurde ausgewählt und beschrieben, um die Grundgedanken des Betriebs und die praktische Anwendung am besten zu erklären und es anderen Fachleuten zu ermöglichen, die Ausführungsformen der vorliegenden Erfindung für verschiedene Ausführungsformen mit verschiedenen Modifizierungen zu verstehen, die für die vorgesehene bestimmte Verwendung geeignet sind.
  • In einigen Ausführungsformen können verschiedene Funktionen oder Handlungen an einem bestimmten Ort und/oder in Verbindung mit dem Betrieb von einer oder mehreren Vorrichtungen oder Systemen erfolgen. In einigen Ausführungsformen kann ein Teil einer bestimmten Funktion oder Handlung an einer ersten Einheit oder einem ersten Ort erfolgen, und der Rest der Funktion oder Handlung kann in einer oder mehreren weiteren Einheiten oder Orten erfolgen.
  • Die entsprechenden Strukturen, Materialien, Handlungen und Entsprechungen aller Mittel oder Schritt-plus-Funktion-Elemente in den nachstehenden Ansprüchen sollen alle Strukturen, Materialien oder Handlungen zum Ausführen der Funktion in Kombination mit anderen beanspruchten Elementen enthalten, wie speziell beansprucht.
  • Die Ablaufplan- und Blockschaubilder in den Figuren veranschaulichen die Funktionalität und den Betrieb von möglichen Umsetzungen von Systemen und Verfahren gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In einigen alternativen Umsetzungen können die in den Blöcken angegebenen Funktionen außerhalb der Reihenfolge auftreten, die in den Figuren angegeben ist. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen parallel ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Die Aktionen können in einer anderen Reihenfolge ausgeführt werden, oder Aktionen können hinzugefügt, gelöscht oder modifiziert werden. Der Begriff „gekoppelt“ beschreibt einen Signalpfad zwischen zwei Elementen und impliziert keine direkte Verbindung zwischen den Elementen ohne dazwischen liegende Elemente/Verbindungen. Alle dieser Variationen werden als Teil der Erfindung betrachtet.
  • Die Begriffe „über“, „im Wesentlichen“, „ungefähr“ und Variationen davon sollen das Fehlermaß angeben, das der Messung der bestimmten Menge zugehörig ist, die zum Zeitpunkt der Anmeldungseinreichung auf der verfügbaren Ausrüstung gehostet wird. Zum Beispiel kann „über“ einen Bereich von ± 8 % oder 5 % oder 2 % eines bestimmten Werts enthalten.
  • Die hierin verwendete Terminologie dient nur zum Zweck der Beschreibung von bestimmten Ausführungsformen und soll die vorliegende Erfindung keinesfalls einschränken. Die hierin verwendeten Singularformen „ein“, „eine“ und „der/die/das“ sollen auch die Pluralformen mit einschließen, es sei denn, der Kontext gibt eindeutig anderes vor. Es versteht sich des Weiteren, dass die Begriffe „weist auf“ und/oder „aufweisend“ bei Verwendung in dieser Patentschrift das Vorhandensein ausgewiesener Funktionen, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten angeben, das Vorhandensein oder die Hinzufügung von einem oder mehreren anderen Funktionen, Ganzzahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen davon aber nicht ausschließen.

Claims (20)

  1. Verfahren zum Optimieren von Leistungsaufnahme in einer elektrischen Einheit, wobei das Verfahren aufweist: ein Empfangen, durch einen Prozessor (502), von Anweisungen (200) in eine Warteschleife einzutreten, wobei die Anweisungen (200) einen Ruheentscheidungsindex (212, 300) beinhalten, der einen Ruheoperationscode (302), einen Parameter (304) und einen Zustand (306) aufweist; ein Überwachen, durch den Prozessor (502), des durch den Ruheentscheidungsindex (212, 300) spezifizierten Parameters (304); ein Initiieren, durch den Prozessor (502), von Anweisungen (212, 300, 400) zum Eintreten in einen Energiesparmodus auf Grundlage einer Feststellung, dass der Parameter (304) einen durch den Ruheentscheidungsindex (212, 300) spezifizierten Wert erreicht hat, wobei der Wert auf Grundlage einer Historie vorangehender Ereignisse oder Zustände ermittelt wird und wobei die Feststellung auf der Anwendung eines durch den Ruheoperationscode (302) spezifizierten Algorithmus auf den Parameter (304) beruht; ein Initiieren, durch den Prozessor (502), von Anweisungen (212, 300, 400) zum Verlassen des Energiesparmodus auf Grundlage des Parameters (304); und ein Bereitstellen einer Mitteilung über einen aktuellen Zustand des Prozessors (502) über eine Benutzerschnittstelle für einen Benutzer.
  2. Verfahren nach Anspruch 1, wobei der Parameter (304) Laufzeitinformationen, Anweisungsinformationen und geplante Operationen enthält.
  3. Verfahren nach Anspruch 1, wobei der Parameter (304) ein dynamisches Ändern von Schwellenwerten auf Grundlage eines Verlaufs von vorherigen Ereignissen oder Zuständen enthält.
  4. Verfahren nach Anspruch 1, wobei die Anweisungen (212, 300, 400) zum Eintreten in einen Energiesparmodus oder zu dessen Verlassen an vorbestimmte Schaltungen in der elektrischen Einheit gesendet werden.
  5. Verfahren nach Anspruch 1, wobei der Prozessor (502) ein vorbestimmtes Anweisungsset zum Eintreten in einen Energiesparmodus oder zu dessen Verlassen auf Grundlage des identifizierten Parameters (304) enthält.
  6. Verfahren nach Anspruch 1, wobei auf den Parameter (304) von einem entfernt angeordneten Ort aus zugegriffen wird.
  7. Verfahren nach Anspruch 1, wobei die Anweisungen (212, 300, 400) zum Eintreten in einen Energiesparmodus oder zu dessen Verlassen ein Verzögern eines Starts eines Ereignisses für eine vorgegebene Dauer enthalten.
  8. Verfahren nach Anspruch 1, wobei die Anweisungen (212, 300, 400) zum Eintreten in einen Energiesparmodus nach einem vorbestimmten Zeitraum einen Befehl an eine Hardware-Einheit enthalten, von einem Energiesparmodus zu Routine-Operationen überzugehen.
  9. Verfahren nach Anspruch 1, wobei der Parameter (304) als Operanden der Anweisungen (200, 212, 300, 400) übergeben werden kann.
  10. Verfahren nach Anspruch 1, wobei die Anweisungen (212, 300, 400) zum Eintreten in einen Energiesparmodus und zu dessen Verlassen ein Ausführen einer Verzögerungsaktion für eine vorbestimmte Zeitdauer enthalten, bevor der Eintritt in den Energiesparmodus oder dessen Verlassen erfolgt.
  11. System, aufweisend: einen Arbeitsspeicher (510) mit durch einen Computer lesbaren Anweisungen; und einen Prozessor (502) zum Ausführen der durch einen Computer lesbaren Anweisungen, wobei die durch einen Computer lesbaren Anweisungen den Prozessor (502) zum Ausführen des Verfahrens nach Anspruch 1 veranlassen.
  12. System nach Anspruch 11, wobei die Anweisungen (212, 300, 400) zum Eintreten in einen Energiesparmodus oder zu dessen Verlassen an vorbestimmte Schaltungen in der elektrischen Einheit gesendet werden.
  13. System nach Anspruch 11, wobei der Prozessor (502) ein vorbestimmtes Anweisungsset zum Eintreten in einen Energiesparmodus oder zu dessen Verlassen auf Grundlage des identifizierten Parameters (304) enthält.
  14. System nach Anspruch 11, wobei die Anweisungen (212, 300, 400) zum Eintreten in einen Energiesparmodus oder zu dessen Verlassen ein Verzögern eines Starts eines Ereignisses für eine vorgegebene Dauer enthalten.
  15. System nach Anspruch 11, wobei die Anweisungen (212, 300, 400) zum Eintreten in einen Energiesparmodus ein Ausführen einer Verzögerungsaktion für eine vorbestimmte Zeitdauer enthalten, bevor der Eintritt in den Energiesparmodus erfolgt.
  16. Computerprogrammprodukt (600), aufweisend ein durch einen Computer lesbares Speichermedium (602) mit darauf verkörperten Programmanweisungen (604), wobei die Programmanweisungen (604) durch einen Computerprozessor (502) ausführbar sind, um den Computerprozessor (502) zum Ausführen des Verfahrens nach Anspruch 1 veranlassen.
  17. Computerprogrammprodukt (600) nach Anspruch 16, wobei die Anweisungen (212, 300, 400) zum Eintreten in einen Energiesparmodus oder zu dessen Verlassen an vorbestimmte Schaltungen in der elektrischen Einheit gesendet werden.
  18. Computerprogrammprodukt (600) nach Anspruch 16, wobei der Prozessor (502) ein vorbestimmtes Anweisungsset zum Eintreten in einen Energiesparmodus und zu dessen Verlassen auf Grundlage des identifizierten Parameters (304) enthält.
  19. Computerprogrammprodukt (600) nach Anspruch 16, wobei die Anweisungen (212, 300, 400) zum Eintreten in einen Energiesparmodus und zu dessen Verlassen ein Verzögern eines Starts eines Ereignisses für eine vorgegebene Dauer enthalten.
  20. Computerprogrammprodukt (600) nach Anspruch 16, wobei die Anweisungen (212, 300, 400) zum Eintreten in einen Energiesparmodus ein Ausführen einer Verzögerungsaktion für eine vorbestimmte Zeitdauer enthalten, bevor der Eintritt in den Energiesparmodus erfolgt.
DE112017005371.4T 2017-01-30 2017-12-21 Energiesparen eines Prozessors während Warteereignissen Active DE112017005371B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/419,574 US10627888B2 (en) 2017-01-30 2017-01-30 Processor power-saving during wait events
US15/419,574 2017-01-30
PCT/EP2017/084258 WO2018137870A1 (en) 2017-01-30 2017-12-21 Processor power-saving during wait events

Publications (2)

Publication Number Publication Date
DE112017005371T5 DE112017005371T5 (de) 2019-07-11
DE112017005371B4 true DE112017005371B4 (de) 2021-08-26

Family

ID=60888428

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017005371.4T Active DE112017005371B4 (de) 2017-01-30 2017-12-21 Energiesparen eines Prozessors während Warteereignissen

Country Status (7)

Country Link
US (1) US10627888B2 (de)
JP (1) JP6998385B2 (de)
CN (1) CN110214299B (de)
DE (1) DE112017005371B4 (de)
GB (1) GB2573722B (de)
TW (1) TWI690799B (de)
WO (1) WO2018137870A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10445099B2 (en) * 2016-04-19 2019-10-15 Xiaolin Wang Reconfigurable microprocessor hardware architecture
US11714564B2 (en) * 2020-01-06 2023-08-01 Arm Limited Systems and methods of power management
JP2022064497A (ja) * 2020-10-14 2022-04-26 キオクシア株式会社 メモリシステム
US12007936B2 (en) * 2022-01-21 2024-06-11 VMware LLC Power efficient memory value updates for arm architectures

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100077243A1 (en) 2008-09-25 2010-03-25 Ren Wang Conserving power in a computer system
US20110154079A1 (en) 2009-12-18 2011-06-23 Dixon Martin G Instruction For Enabling A Procesor Wait State

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2264794B (en) * 1992-03-06 1995-09-20 Intel Corp Method and apparatus for automatic power management in a high integration floppy disk controller
US6343363B1 (en) 1994-09-22 2002-01-29 National Semiconductor Corporation Method of invoking a low power mode in a computer system using a halt instruction
US7020788B2 (en) * 2001-06-01 2006-03-28 Microchip Technology Incorporated Reduced power option
US7500127B2 (en) 2003-09-18 2009-03-03 Vulcan Portals Inc. Method and apparatus for operating an electronic device in a low power mode
US20060232809A1 (en) * 2005-04-15 2006-10-19 Eastman Kodak Company RIP status monitor in a printer
JP4775278B2 (ja) * 2007-02-14 2011-09-21 セイコーエプソン株式会社 動作制御装置、電子機器、動作制御方法、および、プログラム
US8006111B1 (en) * 2007-09-21 2011-08-23 Emc Corporation Intelligent file system based power management for shared storage that migrates groups of files based on inactivity threshold
US8156275B2 (en) 2009-05-13 2012-04-10 Apple Inc. Power managed lock optimization
JP2012232539A (ja) 2011-05-09 2012-11-29 Canon Inc 印刷装置、データ処理装置、印刷装置の制御方法及びプログラム
US8862917B2 (en) 2011-09-19 2014-10-14 Qualcomm Incorporated Dynamic sleep for multicore computing devices
JP2014073604A (ja) * 2012-10-03 2014-04-24 Canon Inc 画像形成装置、画像形成装置の制御方法、及びプログラム
US9110671B2 (en) * 2012-12-21 2015-08-18 Advanced Micro Devices, Inc. Idle phase exit prediction
US9170639B2 (en) * 2013-04-09 2015-10-27 International Business Machines Corporation Method and apparatus for mitigating effects of memory scrub operations on idle time power savings modes
US9632569B2 (en) * 2014-08-05 2017-04-25 Qualcomm Incorporated Directed event signaling for multiprocessor systems
US9811142B2 (en) 2014-09-29 2017-11-07 Apple Inc. Low energy processor for controlling operating states of a computer system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100077243A1 (en) 2008-09-25 2010-03-25 Ren Wang Conserving power in a computer system
US20110154079A1 (en) 2009-12-18 2011-06-23 Dixon Martin G Instruction For Enabling A Procesor Wait State

Also Published As

Publication number Publication date
TWI690799B (zh) 2020-04-11
GB2573722B (en) 2022-01-26
US20180217655A1 (en) 2018-08-02
JP2020505696A (ja) 2020-02-20
TW201830197A (zh) 2018-08-16
US10627888B2 (en) 2020-04-21
GB2573722A (en) 2019-11-13
GB201911911D0 (en) 2019-10-02
WO2018137870A1 (en) 2018-08-02
JP6998385B2 (ja) 2022-01-18
CN110214299A (zh) 2019-09-06
CN110214299B (zh) 2023-07-14
DE112017005371T5 (de) 2019-07-11

Similar Documents

Publication Publication Date Title
DE112017005371B4 (de) Energiesparen eines Prozessors während Warteereignissen
DE112011101633B4 (de) Virtualisierung und dynamische Ressourcenzuweisung berücksichtigendes Neuordnen von Speicherebenen
DE112004001320B3 (de) Verfahren, System und Vorrichtung zur Verbesserung der Leistung von Mehrkernprozessoren
DE102009058426B4 (de) Verfahren und Vorrichtung zum Power-Management eines Prozessors
DE112012001358B4 (de) Verwalten von Energieverbrauch in einem Mehrfachkernprozessor
DE112012006377B4 (de) Energieverbrauch und Leistung von Computersystemen steuern
DE102014219905B4 (de) Konfiguration von Leistungsdomänen eines Mikrocontroller-Systems
DE112008000603B4 (de) Verfahren zum Steuern von Kernarbeitsakten unter Verwendung von Niedrigleistungsmodi
DE102009019824A1 (de) Auslastungsbasierte Bestimmung von betrieblichen Kennlinien
DE112005003279T5 (de) Energieverwaltungs-Punkt-zu-Punkt Wechselstrom-gekoppeltes Peripheriegerät
DE102008005852A1 (de) Leistungssteuervorrichtung, tragbares Endgerät und Verfahren zum Steuern einer Leistungssteuervorrichtung
DE102011014681A1 (de) Power-Management basierend auf automatischer Arbeitslasterkennung
DE112007003113T5 (de) Reduzieren von Leerlauf-Verlustleistung in einem integrierten Schaltkreis
DE112013006241T5 (de) Techniken für Plattform-Arbeitszyklus-Wechsel
DE112018003087T5 (de) On-chip-rauschunterdrückung oder -minderung der versorgungsspannung unter verwendung von lokalen detektionsschleifen in einem prozessorkern
DE102015211561A1 (de) Leistungsverfolgungsanschluss zum Verfolgen von Zuständen von Leistungsdomänen
DE102016122375A1 (de) Dynamischer containerisierter Systemspeicherschutz für Niedrigenergie-MCUs
DE112019000676T5 (de) Zentraler scheduler und anweisungszuteiler für einen neuronalen inferenzprozessor
DE112017001376T5 (de) Erkennen und Vorhersagen von Engpässen in komplexen Systemen
DE112015004564T5 (de) Ereignisgesteuerte Reoptimierung einer logisch partitionierten Umgebung zur Energieverwaltung
DE112019001821T5 (de) Verfahren und vorrichtung zur wiedergabe eines aktivierungsrahmens für unterbrechungsfreie speicherbereinigung (pause-less garbage collection)
DE69909924T2 (de) Verfahren und Vorrichtung zur Reduzierung der Verlustleistung in einer Schaltung
DE102007044137B4 (de) Nachfragebasierte Zuweisung von Verarbeitungsressourcen
DE112020001089T5 (de) Verbessern von cache-trefferverhältnissen bei ausgewählten datenträgern in einem speichersystem
DE102013108041B4 (de) Heterogene Mehrprozessor-Anordnung für ein leistungseffizientes und flächeneffizientes Rechnen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final