DE102009019824A1 - Auslastungsbasierte Bestimmung von betrieblichen Kennlinien - Google Patents

Auslastungsbasierte Bestimmung von betrieblichen Kennlinien Download PDF

Info

Publication number
DE102009019824A1
DE102009019824A1 DE102009019824A DE102009019824A DE102009019824A1 DE 102009019824 A1 DE102009019824 A1 DE 102009019824A1 DE 102009019824 A DE102009019824 A DE 102009019824A DE 102009019824 A DE102009019824 A DE 102009019824A DE 102009019824 A1 DE102009019824 A1 DE 102009019824A1
Authority
DE
Germany
Prior art keywords
processor
processor component
utilization
operational characteristics
events
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.)
Withdrawn
Application number
DE102009019824A
Other languages
English (en)
Inventor
Dan Baum
Rybnikov Dany
Efraim Rotem
Ronny Santa Clara Komer
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 DE102009019824A1 publication Critical patent/DE102009019824A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • 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
    • 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/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • G06F11/3423Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time where the assessed time is active or idle time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • 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

Abstract

Techniken werden offenbart, welche Techniken umfassen, die das Leistungsverhalten eines Prozessors (z. B. einer CPU) dynamisch anpassen können. Zum Beispiel umfasst eine Vorrichtung einen Zähler, ein Modul für Feststellen der Auslastung und ein Verwaltungsmodul. Der Zähler bestimmt eine Anzahl aufgetretener Ereignisse, wobei jedes der aufgetretenen Ereignisse mit sich bringt, dass eine Prozessorkomponente (z. B. ein Prozessorkern) auf eine Antwort von einer Baugruppe wartet. Das Modul für Feststellen der Aulastung bestimmt eine Auslastungsmetrik, basierend auf der Anzahl aufgetretener Ereignisse. Das Verwaltungsmodul erstellt eine oder mehrere betriebliche Kennlinien für die Prozessorkomponente, die der Auslastung entsprechen. Weitere Ausführungsformen sind beschrieben und beansprucht.

Description

  • HINTERGRUND
  • Das Verringern des Energie- und Leistungsverbrauches von Prozessoren wird in vielen Situationen zunehmend wichtig. Zum Beispiel können derartige Leistungs- und Energieeinsparungen die Gesamtkosten für den Verbraucher herabsetzen. Zusätzlich können derartige Leistungs- und Energieverringerungen die Lebensdauer der Batterie bei mobilen Produkten erhöhen.
  • Prozessoren können entsprechend verschiedenen Zuständen im aktiven Modus arbeiten. Jeder dieser Zustände kann einen bestimmten Grad des Leistungsverhaltens (z. B. die Geschwindigkeit) zur Verfügung stellen. Für diese Zustände jedoch nimmt der Energieverbrauch mit dem Leistungsverhalten des Prozessors zu. Zusätzlich können Prozessoren in einem Schlafmodus arbeiten. In diesem Modus können eine oder mehrere Komponenten abgeschaltet werden, um den Energieverbrauch zu senken.
  • Das Leistungsverhalten des Prozessors ist oftmals durch externe Geräte oder Komponenten so wie Speicher oder Eingabe/Ausgabe (I/O – Input/Output)-Baugruppen begrenzt. Wenn zum Beispiel auf ein externes Gerät wartet, kann er entweder in den Schlafmodus gehen oder aktiv bleiben. Genauer kann, wenn eine erwartete Verzögerung lang ist (beispielsweise, wenn er auf eine Antwort von einem Festplattenlaufwerk wartet), der Prozessor in den Schlafmodus eintreten. Für kurze erwartete Verzögerungen jedoch wird der Prozessor typischerweise in einem aktiven Modus verbleiben, während er auf eine Antwort wartet.
  • In vielen betrieblichen Szenarios werden die meisten solcher Wartezeiten als kurz betrachtet. Daher ist es während des Betriebes für den Computer üblich, das er den Großteil seiner Wartezeit in dem aktiven Modus verbringt. Während solcher Zeiträume arbeiten die Prozessoren typischerweise bezüglich der Energie nicht effizient.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 veranschaulicht eine Ausführungsform einer ersten Vorrichtung.
  • 2 veranschaulicht eine Ausführungsform einer zweiten Vorrichtung.
  • 3 veranschaulicht eine Ausführungsform eines beispielhaften logischen Flusses.
  • 4 veranschaulicht eine Ausführungsform einer grafischen Darstellung des Leistungsverhaltens.
  • 5 veranschaulicht eine Ausführungsform eines beispielhaften Systems.
  • GENAUE BESCHREIBUNG
  • Verschiedene Ausführungsformen stellen Techniken zur Verfügung, die das Leistungsverhalten eines Prozessors dynamisch anpassen können. Zum Beispiel können derartige Techniken die Auslastung des Prozessors identifizieren und können das Leistungsverhalten des Prozessors (z. B. seine Geschwindigkeit) anpassen. Derartige Anpassungen können das Ändern des Betriebszustandes des Prozessors (z. B. seines P-Zustandes) einbeziehen. Zum Beispiel können, wenn erfasst wird, dass ein Prozessor speichergebunden ist oder auf eine andere Baugruppe wartet (so wie eine Grafikkarte), Techniken den Betrieb des Prozessors so anpassen, dass er langsamer läuft. Als ein Ergebnis wird Energie gespart. Im Gegensatz dazu kann, wenn erfasst wird, dass der Prozessor durch solche Beschränkungen nicht länger eingeschränkt ist, der Prozessor die gesparte Energie neu einbringen, indem ein verbessertes Leistungsverhalten (z. B. schnellerer Betrieb) durch Arbeiten bei einer höheren Frequenz geliefert wird. Solche Anpassungen an den Prozessorbetrieb können verschiedene Techniken einbeziehen. Beispielhafte Techniken umfassen das Umschalten des Taktsignals des Prozessors zwischen Ein und Aus und/oder das Ändern der Betriebsfrequenz des Prozessors mit oder ohne Spannungsänderung.
  • Bei Ausführungsformen können solche Techniken innerhalb des Prozessors implementiert werden. Bei weiteren Ausführungsformen jedoch können Implementierungen externe Software und/oder externe Hardware umfassen.
  • Ausführungsformen können ein oder mehrere Elemente umfassen. Ein Element kann irgendeine Struktur aufweisen, die so ausgerichtet ist, dass sie bestimmte Arbeitsschritte ausführt. Jedes Element kann als Hardware, Software oder irgendeine Kombination aus diesen implementiert werden, wie es für einen gegebenen Satz an Gestaltungsparametern oder Einschränkungen des Leistungsverhaltens gewünscht ist. Obwohl Ausführungsformen mit bestimmten Elementen in bestimmten Anordnungen beispielhaft beschrieben werden können, können Ausführungsformen andere Kombinationen von Elementen in alternativen Anordnungen umfassen.
  • Es ist Wert anzumerken, dass jedweder Bezug auf ”eine Ausführungsform” bedeutet, dass ein bestimmtes Merkmal, eine Struktur oder Eigenschaft, die in Verbindung mit der Ausführungsform beschrieben ist, in wenigstens einer Ausführungsform enthalten ist. Das Auftreten des Ausdruckes ”bei einer Ausführungsform” an verschiedenen Stellen in der Beschreibung bezieht sich nicht notwendigerweise immer auf dieselbe Ausführungsform.
  • 1 veranschaulicht eine beispielhafte Vorrichtung 100, die den Betrieb basierend auf Feststellungen bezüglich der Auslastung anpassen kann. Die Vorrichtung 100 kann verschiedene Elemente umfassen. Zum Beispiel zeigt die 1, dass die Vorrichtung 100 einen Prozessorkern 102, eine Steuereinheit 104 und eine externe Schnittstelle 106 umfassen kann. Außerdem kann die Vorrichtung 100 einen Temperatursensor 116 umfassen. Die Elemente der Vorrichtung 100 können innerhalb eines Prozessors implementiert werden. Beispielhafte Prozessoren umfassen (sind jedoch nicht beschränkt auf) zentrale Verarbeitungseinheiten (CPUs – Central Processing Units), Grafikprozessoren und Digitalsignalprozessoren (DSPs – Digital Signal Processors).
  • Der Prozessorkern 102 führt Arbeitsschritte aus, die bestimmte Ausgaben für einen gegebenen Satz an Eingaben erzeugen. Solche Eingaben können Befehle sein, die mit einem Befehlssatz verknüpft sind. Bei Ausführungsformen kann der Prozessorkern 104 mit einer Vielzahl von logischen Gattern implementiert werden und kann für universelle Funktionen gestaltet sein.
  • Der Prozessorkern 102 kann in verschiedenen Zuständen im aktiven Modus arbeiten. Zum Beispiel kann die Vorrichtung 100 in unterschiedlichen Zuständen des Leistungsverhaltens arbeiten (auch als ”P”-Zustände bezeichnet). Jeder dieser P-Zustände hat eine entsprechende Betriebsfrequenz und einen Spannungspegel. Insbesondere bieten P-Zustände mit höheren Spannungen und Frequenzen ein besseres Leistungsverhalten (z. B. höhere Geschwindigkeit). Jedoch, wie oben angegeben, erfordern solche Verbesserungen im Leistungsverhalten einen größeren Energieverbrauch.
  • Die externe Schnittstelle 106 kann für den Austausch von Information mit verschiedenen externen Baugruppen/Geräten durch eine oder mehrere Verbindungen sorgen. Solche Baugruppen/Geräte können Speicher (z. B. einen dynamischen Speicher mit wahlfreiem Zugriff (DRAM – Dynamic Random Access Memory)), Grafikchips, I/O-Baugruppen und/oder Plattenlaufwerke umfassen. Beispielhafte Verbindungen umfassen eine oder mehrere Busschnittstellen und/oder eine oder mehrere Punkt-zu-Punkt-Schnittstellen. Die Ausführungsformen sind jedoch nicht auf diese Beispiele beschränkt. Dementsprechend kann die externe Schnittstelle 106 Steuerlogik und Elektronik (z. B. Transceiver) umfassen, um einen derartigen Austausch von Information zu vereinfachen.
  • Die externe Schnittstelle 106 kann eine Benutzerpräferenzschnittstelle 128 umfassen. Die Benutzerpräferenzschnittstelle 128 kann als eine Schnittstelle arbeiten, um Information für einen Benutzer der Bediener anzuzeigen, indem verschiedene Elemente einer Grafikbenutzerschnittstelle (GUI – Graphic User Interface) verwendet werden. Die Benutzerpräferenzschnittstelle 128 kann auch so arbeiten, dass sie Information von einem Benutzer empfängt, so wie Benutzerbefehle, Benutzerpräferenzen und so weiter. Insbesondere kann die Benutzerpräferenzschnittstelle 128 Steueranweisungen und Präferenzinformation für das Modul 110, das die Auslastung feststellt, für ein Verwaltungsmodul 112 und ein Strategiemodul 114, neben anderen Elementen der Vorrichtung 100, empfangen.
  • Bei Ausführungsformen kann der Prozessorkern 102 Daten im Hinblick auf bestimmte Arbeitsschritte erzeugen. Diese Daten können von einem oder mehreren Zählern gesammelt werden. Zum Beispiel zeigt die 1 den Prozessorkern 102 mit einem Ereigniszähler 108, der das Auftreten von bestimmten Ereignissen zählt. Derartige Ereignisse können solche umfassen, bei denen der Prozessorkern 102 auf Antwort von externen Geräten/Baugruppen wartet. Beispiele solcher Ereignisse umfassen Kommunikation mit externen Geräten/Baugruppen, so wie Kommunikation mit externem Speicher, I/O-Kommunikation, Kommunikation mit Grafikprozessoren/karten und/oder Kommunikation mit Festplattenlaufwerken. Die Ausführungsformen sind jedoch nicht auf diese Beispiele beschränkt.
  • Zum Beispiel können die Zähler 108 einen oder mehrere bestimmte Typen von Speicherzugriffen zählen. Beispiele für solche Zugriffe umfassen (sind jedoch nicht beschränkt auf) lang dauernde Zugriffe, Zugriffe, die nicht spekulativ sind und/oder Zugriffe, die die Ausführung anderer Befehle blockieren.
  • Der Ereigniszähler 108 umfasst Steuerlogik, um das Auftreten solcher Ereignisse zu identifizieren. Diese Steuerlogik kann in irgendeiner Kombination aus Hardware, Software und/oder Firmware implementiert sein. Die Identifikation von Ereignissen kann basierend auf dem Vorhandensein entsprechender Schnittstellen (z. B. Bus)-Signale und/oder Befehle geschehen. Auch kann die Identifikation von Ereignissen aus der Ausführung von Softwarebefehlen, die mit dem Zugriff auf eine externe Baugruppe/ein externes Gerät verknüpft sind, ebenso wie durch das Vorhandensein von tätigen Schleifen, die auf Daten warten, geschehen. Die Ausführungsformen sind jedoch nicht auf diese Beispiele beschränkt.
  • Genauer kann der Ereigniszähler 108 eine Strichliste solcher Ereignisse erzeugen, die in einem vorangegangenen (z. B. einem unmittelbar vorangegangenen) Zeitintervall aufgetreten sind. Somit sammelt der Ereigniszähler 108 Strichlisten für Ereignisse, die in einem verschieblichen Zeitfenster geschehen. Verschiedene Dauern für das Zeitintervall können verwendet werden. Eine beispielhafte Dauer ist 1 Millisekunden. Wie in der 1 gezeigt ist, wird diese Strichliste an die Steuereinheit 104 als ein Zählwert 120 zur Verfügung gestellt. Bei Ausführungsformen kann der Zählwert 120 an die Steuereinheit 104 durch parallele (z. B. 16 Bit) Signalleitungen geliefert werden. Jedoch können andere Techniken als Alternative benutzt werden.
  • Die Steuereinheit 104 erstellt Leistungskennlinien für den Prozessorkern 102. Diese erstellten Leistungskennlinien basieren auf einer angenommenen betrieblichen Auslastung des Prozessorkerns 102. Wie in der 1 gezeigt ist, umfasst die Steuereinheit 104 ein Modul 110 zum Feststellen der Auslastung, ein Verwaltungsmodul 102 und einen Zeitgeber 118.
  • Das Modul 110 für das Feststellen der Auslastung bestimmt eine betriebliche Auslastung für den Prozessorkern 102 basierend auf seinem Leistungsverhalten. Zum Beispiel kann das Mo dul 110 für das Feststellen der Auslastung eine Auslastungsmetrik 122 aus dem Zählwert 120 bestimmen.
  • Wie oben beschrieben ist, gibt der Zählwert 120 eine Anzahl von Ereignissen an, die über ein Zeitintervall (z. B. innerhalb eines verschieblichen Zeitfensters) aufgetreten sind. Solche Ereignisse können welche sein, bei denen der Prozessorkern 102 auf Antwort von externen Geräten/Baugruppen wartet. Somit zeigt der Zählwert 120 eine niedrigere Auslastung an, wenn er größer ist, und gibt eine größere Auslastung an, wenn er kleiner ist. Demgemäß kann das Modul 110 für das Feststellen der Auslastung die Auslastungsmetrik 122 derart bestimmen, dass sie umgekehrt proportional zu dem Zählwert 120 ist.
  • Als ein Zusatz oder als Alternative zum Ableiten der Auslastungsmetrik 122 aus dem Zählwert 120 kann das Modul 110 für das Feststellen der Auslastung die Auslastungsmetrik 122 bestimmen, indem verschiedene andere Techniken verwendet werden. Bei einer Ausführungsform kann das Modul 110 für das Feststellen der Auslastung die Auslastungsmetrik 122 zum Beispiel bestimmen, indem sie eine Versuchs- und Irrtumstechnik verwendet. Zum Beispiel kann ein Bereich von Werten für die Auslastungsmetrik 122 implementiert werden, bis eine gewünschte gemessene Ausgabe erreicht worden ist. Die gemessene Ausgabe kann als eine Geschwindigkeit des Energieverbrauchs, eine mittlere Prozessornutzung, Antwortzeiten bei Anwendungen und so weiter sein. Bei einer Ausführungsform kann das Modul 110 für das Feststellen der Auslastung die Auslastungsmetrik 122 beispielsweise bestimmen, indem verschiedene Eigenschaften einer Anwendung überwacht und aufgezeichnet werden, während sie zuvor von dem Prozessorkern 110 (oder einem anderen Prozessorkern) ausgeführt worden sind, um eine Anwendungshistorie zu erzeugen. Das Modul 110 für das Feststellen der Auslastung kann die Anwendungshistorie und einen Voraussagealgorithmus verwenden, um einen Wert für die Auslastungsmetrik 122 vorauszusagen, der zum Einsatz kommt, wenn die Anwendung tatsächlich von dem Prozessorkern 102 ausgeführt wird. Weitere Techniken und Heuristik für den Prozessorkern kann verwendet werden, um die Auslastungsmetrik 122 zu erzeugen, und die Ausführungsformen sind in diesem Zusammenhang nicht eingeschränkt. Das Verwaltungsmodul 112 erstellt betriebliche Kennlinien für den Prozessorkern 102. Dies kann das Einrichten von Betriebsfrequenzen und/oder -spannungen für den Prozessorkern 102 umfassen. Solche betrieblichen Kennlinien für den Prozessorkern 102 können basierend auf der Auslastungsmetrik 122 erstellt werden. Demgemäß zeigt die 1 ein Verwaltungs modul 112, das die Auslastungsmetrik 122 von dem Modul 110 für das Feststellen der Auslastung enthält.
  • Nach dem Empfang der Auslastungsmetrik 122 kann das Verwaltungsmodul 112 entsprechende betriebliche Kennlinien auswählen. Basierend auf dieser Auswahl kann das Verwaltungsmodul 112 eine Anweisung 124 an den Prozessorkern 102 senden. Diese Anweisung befiehlt dem Prozessorkern 102, entsprechend der ausgewählten Kennlinie zu arbeiten. Wie oben ausgeführt, können die Kennlinien eine bestimmte Betriebsfrequenz und/oder -spannung (z. B. einen bestimmten P-Zustand) umfassen. Als Alternative oder zusätzlich können solche Kennlinien Taktumschalteinstellungen für den Prozessorkern 102 umfassen.
  • Diese Auswahl von betrieblichen Kennlinien für den Prozessorkern 102 kann in Übereinstimmung mit einem Schema stehen, das Bereiche der Auslastungsmetrik 122 auf bestimmte betriebliche Kennlinie(n) abbildet. Wie oben beschrieben können solche betrieblichen Kennlinie(n) eine Betriebsfrequenz und/oder -spannung (z. B. einen P-Zustand) umfassen. Als Alternative oder zusätzlich können solche Kennlinien Taktumschalteinstellungen für den Prozessorkern 102 umfassen.
  • Dieses Abbilden zwischen Bereichen der Auslastungsmetrik 122 und betrieblichen Kennlinien kann durch ein Strategiemodul 114 zur Verfügung gestellt werden. Wie es in der 1 gezeigt ist, kann das Strategiemodul 114 in dem Verwaltungsmodul 112 enthalten sein. Bei Ausführungsformen kann das Strategiemodul 114 ein Speichermedium (z. B. Speicher) aufweisen, der diese Entsprechungen enthält. Jedoch können andere Implementierungstechniken verwendet werden.
  • Das Zuweisen von betrieblichen Kennlinien kann mit Nachteilen verbunden sein. Zum Beispiel bringt das Ändern der Betriebsfrequenz und -spannung das Sperren von PLL und das Ändern der Spannung mit sich, das einige Zeit brauchen kann. Das häufige Ändern der betrieblichen Kennlinie kann zu einem tatsächlichen Verlust und nicht zu einem Gewinn führen. Ein Zeitgeber 118 kann verwendet werden, um die Änderungen der betrieblichen Kennlinien auf nicht mehr als vorab definierte Übergänge/Sekunde zu begrenzen.
  • Wie oben beschrieben kann die externe Schnittstelle 106 für die Vorrichtung 100 eine Benutzerpräferenzschnittstelle 128 umfassen. Die Benutzerpräferenzschnittstelle 128 erlaubt es ei nem Benutzer oder Bediener, Präferenzen für den Algorithmus hinzuzufügen. Beispiele solcher Strategien können das Erhöhen der Energieeinsparungen, das Bereitstellen verbesserten Leistungsverhaltens und so weiter umfassen.
  • Wie oben beschrieben kann die Vorrichtung 100 einen Temperatursensor 116 umfassen. Dieser Sensor bestimmt eine aktuelle Betriebstemperatur der Vorrichtung 100. Der Temperatursensor 116 kann in verschiedener Weise implementiert werden. Zum Beispiel kann der Temperatursensor 116 eine auf einem Thermistor basierende Schaltung umfassen.
  • Wie in der 1 gezeigt, kann der Temperatursensor 116 dem Verwaltungsmodul 112 ein Signal 125 zur Verfügung stellen, das die aktuelle Betriebstemperatur angibt. Basierend auf diesem Signal kann das Verwaltungsmodul 112 die Menge an zusätzlichem Energieverbrauch bestimmen, die die Vorrichtung 100 handhaben kann, ohne zu bewirken, dass eine maximale Temperatur überschritten wird. Dieser zusätzliche Energieverbrauch wird als ”Aussteuerungsreserve (headroom)” bezeichnet.
  • Das Verwaltungsmodul 112 kann diese zusätzliche Aussteuerungsreserve in verschiedener Weise bestimmen. Bei beispielhaften Implementierungen kann das Verwaltungsmodul 112 eine Nachschlagetabelle umfassen, die vorab gespeicherte Werte für die Aussteuerungsreserve für bestimmte Temperaturwerte (oder Bereiche von Werten) enthält. Bei weiteren beispielhaften Implementierungen kann das Verwaltungsmodul 112 die Aussteuerungsreserve in Echtzeit berechnen.
  • Basierend auf dieser Aussteuerungsreserve kann das Verwaltungsmodul 112 Grenzen für betriebliche Kennlinien festlegen, so wie eine maximale Betriebsfrequenz und/oder -spannung (z. B. einen P-Zustand), ebenso wie Grenzen für das Umschalten des Taktes. Demgemäß kann beim Bestimmen solcher Kennlinien für die Anweisung 124 das Strategiemodul 114 betriebliche Kennlinien abändern, die aus der Auslastungsmetrik 122 bestimmt worden sind, so dass sie nicht bewirken, dass die bestimmte Aussteuerungsreserve überschritten wird.
  • 2 veranschaulicht eine weitere Vorrichtung 200, die den Betrieb bestimmend auf Feststellungen der Auslastung anpassen können. Die Vorrichtung 200 kann verschiedene Elemente umfassen. Zum Beispiel zeigt die 2, dass die Vorrichtung 200 mehrere Prozessorkerne 202a–b, eine Steuereinheit 204 und eine externe Schnittstelle 206 umfassen kann. Außerdem kann die Vorrichtung 100 einen Temperatursensor 216 umfassen. Die Elemente der Vorrichtung 200 können innerhalb eines Prozessors (z. B. einer CPU, einem Grafikprozessor, einem DSP usw.) implementiert werden. Die Ausführungsformen jedoch sind auf solche Implementierungen nicht beschränkt.
  • Jeder der Prozessorkerne 202a–b führt Arbeitsschritte aus, die für einen gegebenen Satz von Eingaben bestimmte Ausgaben erzeugen. Solche Eingaben können Befehle sein, die mit einem Befehlssatz verknüpft sind. Bei Ausführungsformen kann jeder der Prozessorkerne 202a–b mit einer Vielzahl logischer Gatter implementiert werden und kann für universelle Funktionen gestaltet werden. Zusätzlich kann jeder der Prozessorkerne 202a–b in verschiedenen Zuständen im aktiven Modus arbeiten (z. B. in unterschiedlichen P-Zuständen).
  • Die externe Schnittstelle 206 kann für den Austausch von Information mit verschiedenen Geräten/Baugruppen über eine oder mehrere Verbindungen (Busschnittstelle(n) und/oder Punkt-zu-Punkt-Schnittstelle(n)) sorgen. Wie oben beschrieben können solche Geräte/Baugruppen Speicher (z. B. DRAM), Grafikchips, I/O-Baugruppen und/oder Plattenlaufwerke umfassen (sind jedoch nicht darauf beschränkt). Die externe Schnittstelle 206 kann in der Weise wie die externe Schnittstelle 106 implementiert werden, wie es oben mit Bezug auf die 1 beschrieben worden ist.
  • Bei Ausführungsformen kann jeder der Prozessorkerne 202a–b Daten im Hinblick auf bestimmte Arbeitsschritte erzeugen. Diese Daten können von einem oder mehreren Zählern gesammelt werden. Zum Beispiel zeigt die 2 den Prozessorkern 202a, der einen Ereigniszähler 208a umfasst, und den Prozessorkern 202b, der einen Ereigniszähler 208b umfasst. Der Ereigniszähler 208a zählt das Auftreten bestimmter Ereignisse innerhalb des Prozessorkerns 202a. In ähnlicher Weise zählt der Ereigniszähler 208b das Auftreten bestimmter Ereignisse innerhalb des Prozessorkerns 202b.
  • Wie es oben mit Bezug auf die 1 beschrieben ist, können derartige Ereignisse solche umfassen, bei denen der entsprechende Prozessorkern 202 auf Antwort von externen Geräten/Baugruppen wartet. Beispiele solcher Ereignisse umfassen die Kommunikation mit externen Geräten/Baugruppen, so wie Kommunikation mit externem Speicher, I/O-Kommunikation, Kommunikation mit Grafikprozessoren/-karten und/oder Kommunikation mit Festplattenlaufwerken. Die Ausführungsformen sind jedoch auf diese Beispiele nicht beschränkt.
  • Zum Beispiel kann jeder der Zähler 208a–b einen oder mehrere spezielle Typen von Speicherzugriffen zählen. Beispiele solcher Zugriffe umfassen (sind jedoch nicht darauf beschränkt) Zugriffe mit langer Dauer, Zugriffe, die nicht spekulativ sind, und/oder Zugriffe, die das Ausführen anderer Befehle blockieren.
  • Die Ereigniszähler 208a–b können jeder Steuerlogik umfassen, um das Auftreten solcher Ereignisse zu identifizieren. Diese Steuerlogik kann in irgendeiner Kombination aus Hardware, Software und/oder Firmware implementiert sein. Die Identifikation von Ereignissen kann basierend auf dem Vorhandensein entsprechender Signale und/oder Befehle auf der Schnittstelle (z. B. einem Bus) geschehen. Auch kann die Identifizierung von Ereignissen durch die Ausführung von Softwarebefehl(en) geschehen, die mit einem Zugriff auf externe Geräte/Baugruppen verknüpft sind, ebenso wie durch das Vorhandensein tätiger Schleifen, die auf Daten warten. Die Ausführungsformen jedoch sind auf diese Beispiele nicht beschränkt.
  • Somit kann jeder der Ereigniszähler 208a–b eine Strichliste solcher Ereignisse erzeugen, die in einem vorangegangenen (z. B. einem unmittelbar vorangegangenen) Zeitintervall geschehen sind. Verschiedene Dauern für das Zeitintervall können verwendet werden. Eine beispielhafte Dauer ist 1 Millisekunde. Wie es in der 2 gezeigt ist, liefert der Ereigniszähler 208 seine Strichliste an die Steuereinheit 204 als einen Zählwert 220a und der Ereigniszähler 208b liefert seine Strichliste an die Steuereinheit 204 als einen Zählwert 220b. Bei Ausführungsformen können die Zählwerte 220a–b der Steuereinheit 204 jeweils durch parallele (z. B. mit 16 Bit) Signalleitungen zur Verfügung gestellt werden. Jedoch können andere Techniken als Alternative verwendet werden.
  • Die Steuereinheit 204 erstellt Kennlinien des Leistungsverhaltens für jeden der Prozessorkerne 202a–b basierend auf ihrer jeweiligen bewerteten betrieblichen Auslastung. Wie es in der 2 gezeigt ist, umfasst die Steuereinheit 204 Module 210a–b für das Feststellen der Auslastung und ein Verwaltungsmodul 212.
  • Die Module 210a–b für das Feststellen der Auslastung bestimmen jedes eine betriebliche Auslastung für einen entsprechenden Prozessorkern. Genauer bestimmt das Modul 210a für das Feststellen der Auslastung eine betriebliche Auslastung für den Prozessorkern 202a und das Modul 210b für das Feststellen der Auslastung bestimmt eine betriebliche Auslastung für den Prozessorkern 202b. Jede dieser Auslastungen kann basierend auf dem Leistungsverhalten des entsprechenden Prozessorkerns bestimmt werden.
  • Zum Beispiel kann das Modul 210a für das Feststellen der Auslastung eine Auslastungsmetrik 202a aus dem Zählwert 220a bestimmen und das Modul 210b für das Feststellen der Auslastung kann eine Auslastungsmetrik 222b aus dem Zählwert 220b bestimmen. Somit können in der Weise, die oben mit Bezug auf die 1 beschrieben ist, die Module 210a–b zum Feststellen der Auslastung die Auslastungsmetriken 222a und 222b derart bestimmen, dass sie umgekehrt proportional zu den Zählwerten 220a bzw. 220b sind.
  • Das Verwaltungsmodul 212 erstellt betriebliche Kennlinien der Prozessorkerne 202a–b. Dieses kann das Erstellen von Betriebsfrequenzen und/oder -spannungen (z. B. P-Zuständen) für die Prozessorkerne 202a–b aufweisen. Als Alternative oder zusätzlich können solche Kennlinien Taktumschalteinstellungen für die Prozessorkerne 202 umfassen. Derartige betriebliche Kennlinien der Prozessorkerne 202a–b können basierend auf den Auslastungsmetriken 222a–b erstellt werden. Demgemäß zeigt die 2, dass das Verwaltungsmodul 212 die Auslastungsmetrik 222a–b von den Modulen 210a–b für das Feststellen der Auslastung erhält.
  • Nach dem Empfang dieser Auslastungsmetriken kann das Verwaltungsmodul 212 entsprechende betriebliche Kennlinien für jeden der Prozessorkerne 202a–b auswählen. Zum Beispiel kann das Verwaltungsmodul 212 eine Anweisung 224a an den Prozessorkern 202a und eine Anweisung 224b an den Prozessorkern 202b senden. Diese Anweisungen befehlen den Prozessorkernen 202a–b, entsprechenden den betrieblichen Kennlinien zu arbeiten, die für jeden von ihnen ausgewählt worden sind.
  • Wie es oben mit Bezug auf die 1 beschrieben ist, kann die Auswahl der betrieblichen Kennlinien für die Prozessorkerne 202a–b entsprechend einem Schema sein, das Bereiche der Auslastungsmetrik 222a–b auf (eine) bestimmte betriebliche Kennlinie(n) abbildet. Dieses Abbilden kann durch ein Strategiemodul 214 zur Verfügung gestellt werden. Wie in 2 gezeigt, kann das Strategiemodul 214 in dem Verwaltungsmodul 212 enthalten sein. Auch kann das Strategiemodul 214 in der Weise implementiert werden, wie das Strategiemodul 114, wie es oben mit Bezug auf die 1 beschrieben ist.
  • Als Alternative oder zusätzlich kann das Verwaltungsmodul 212 eine Koordination von betrieblichen Kennlinien für die Prozessorkerne 202a und 202b durchführen. Ein Beispiel für die Koordination kann das Auswählen einer einzigen Frequenz und Spannung für beide Kerne 202a und 202b sein. Weiter kann das Verwaltungsmodul 212 verschiedene Budget-Zuweisungen durchführen. Derartige Techniken für die Budget-Zuweisung können das proportionale Zuweisen von Betriebsbedingungen zu jedem der Prozessorkerne 202a und 202b basierend auf den entsprechenden Auslastungsmetriken 222a und 222b umfassen. Jedoch können weitere Techniken verwendet werden. Somit können die Ausführungsformen vorteilhaft die Energiekapazität unter den verschiedenen Komponenten ausgleichen.
  • Wie oben beschrieben kann die Vorrichtung 200 einen Temperatursensor 216 umfassen. Dieser Sensor bestimmt eine laufende Betriebstemperatur der Vorrichtung 200. Der Temperatursensor 216 kann in verschiedener Weise implementiert werden. Zum Beispiel kann der Temperatursensor 216 eine Thermistor-basierte Schaltung umfassen.
  • Wie in der 2 gezeigt, kann der Temperatursensor 216 das Verwaltungsmodul 212 mit einem Signal 225 versorgen, das die gegenwärtige Betriebstemperatur angibt. Basierend auf diesem Signal kann das Verwaltungsmodul 212 die Menge an zusätzlichem Energieverbrauch bestimmen, die die Vorrichtung 200 handhaben kann, ohne dass bewirkt wird, dass eine maximale Temperatur überschritten wird. Dieser zusätzliche Energieverbrauch wird als „Aussteuerungsreserve” bezeichnet. Das Verwaltungsmodul 212 kann diese zusätzliche Aussteuerungsreserve in verschiedener Weise bestimmen. Bei beispielhaften Implementierungen kann das Verwaltungsmodul 212 eine Nachschlagetabelle enthalten, die vorab gespeicherte Werte für die Aussteuerungsreserve für bestimmte Temperaturwerte (oder Bereiche von Werten) enthält.
  • Basierend auf dieser Aussteuerungsreserve kann das Verwaltungsmodul 212 Grenzen für betriebliche Kennlinien(n) für die Prozessorkerne 202a–b festlegen, so wie eine maximale Betriebsfrequenz und/oder -spannung (z. B. einen P-Zustand). Als Alternative oder zusätzlich können Grenzen für das Taktumschalten für die Prozessorkerne 202a–b festgelegt werden. Demgemäß kann beim Festlegen solcher Kennlinie(n) für die Anweisungen 224a–b das Stra tegiemodul 214 betriebliche Kennlinie(n) modifizieren, die aus Auslastungsmetriken 222a–b bestimmt worden sind, so dass sie nicht bewirken, dass die festgestellte Aussteuerungsreserve überschritten wird.
  • Im allgemeinen Betrieb identifizieren die Ausführungsformen der 1 und 2 das Auftreten eines nicht effizienten Prozessorbetriebes von externen Beschränkungen (z. B. Warten auf externe Geräte/Baugruppe(n)). Wenn daher ein derartiges Auftreten identifiziert wird, können betriebliche Kennlinien ausgewählt werden, die für einen geringen Energieverbrauch (und weniger Leistung) sorgen. Solche Kennlinien können einen Zustand im aktiven Modus (z. B. einen niedrigeren P-Zustand) umfassen. Als Alternative oder zusätzlich können derartige Kennlinien Taktumschaltkennlinien für den Kern 102 und/oder die Kerne 202a–b umfassen. Obwohl weniger Leistungskapazität zur Verfügung gestellt wird, verschlechtern die ausgewählten Kennlinien das tatsächliche Leistungsverhalten nicht. Dies rührt daher, da zu solchen Zeiten zusätzliche Leistungsmöglichkeiten nicht benötigt werden.
  • Im Gegensatz dazu, wenn das Auftreten solcher nicht effizienter Arbeitsschritte abnimmt, können die betrieblichen Kennlinien so ausgewählt werden, dass sie einen höheren Energieverbrauch (und bessere Leistung) verursachen. Solche Kennlinien können einen Zustand im aktiven Modus (z. B. einen höheren P-Zustand) umfassen. Als Alternative oder zusätzlich können derartige Kennlinien Taktumschaltkennlinien für den Kern 102 und/oder die Kerne 202a–b umfassen. Somit kann durch solche Techniken der Energieverbrauch vorteilhaft gesenkt werden.
  • Darüber hinaus können Ausführungsformen die verfügbare Aussteuerungsreserve bestimmen. Solche Feststellungen können von Temperatursensoren herrühren. Demgemäß können betriebliche Parameter basierend auf der Auslastung ausgewählt werden und auch, damit die verfügbare Aussteuerungsreserve nicht überschritten wird.
  • Die Merkmale der 1 und 2 können durch irgendeine Kombination aus Hardware, Software und/oder Firmware implementiert werden. Darüber hinaus, obwohl die 1 und 2 Prozessorkerne zeigen, die jeder einen einzelnen Ereigniszähler haben, können Prozessorkerne mehrere Ereigniszähler umfassen. Bei solchen Implementierungen können mehrere Zähler das Auftreten unterschiedlicher Typen von Ereignissen zählen. Somit können die Ausführungsformen Auslastungsmetriken basierend auf mehreren Zählwerten bestimmen.
  • Ausführungsformen können weiter mit Bezug auf die folgenden Figuren und die begleitenden Beispiele beschrieben werden. Einige der Figuren können einen logischen Fluss umfassen. Obwohl derartige Figuren, wie sie hierin dargestellt sind, einen bestimmten logischen Fluss umfassen können, kann verstanden werden, dass der logische Fluss lediglich ein Beispiel dafür zur Verfügung stellt, wie die allgemeine Funktionalität, wie sie hierin beschrieben ist, implementiert werden kann. Weiter muss der gegebene logische Fluss nicht notwendigerweise in der dargestellten Reihenfolge ausgeführt werden, wenn dies nicht anders angegeben ist. Zusätzlich kann der gegebene logische Fluss durch ein Hardwareelement, ein Softwareelement, das von einem Prozessor ausgeführt wird, oder irgendeiner Kombination aus diesen implementiert werden. Die Ausführungsformen sind in diesem Zusammenhang nicht beschränkt.
  • 3 ist ein Schaubild eines beispielhaften logischen Flusses 300, der die Bestimmung der betrieblichen Kennlinien basierend auf der Auslastung umfasst. Obwohl dieses Diagramm eine bestimmte Abfolge zeigt, können andere Abfolgen eingesetzt werden. Auch können die dargestellten Arbeitsschritte in verschiedenen parallelen und/oder sequentiellen Kombinationen ausgeführt werden.
  • Wie es in der 3 gezeigt ist, umfasst der logische Fluss 300 einen Block 302, bei dem Ereignisdaten im Hinblick auf eine oder mehrere Prozessorkomponenten (z. B. einen oder mehrere Prozessorkerne) erzeugt werden. Zum Beispiel kann dieses für jede Prozessorkomponente das Erfassen einer Anzahl von Ereignisauftritten umfassen, bei denen die Prozessorkomponente auf eine Antwort von einem Gerät/einer Baugruppe wartet.
  • In einem Block 304 wird/werden die Auslastungsmetrik(en) für die Prozessorkomponente(n) aus den Ereignisdaten bestimmt. Mit Bezug auf 1 kann dies das Erzeugen der Auslastungsmetrik 122 durch das Modul 110 für das Feststellen der Auslastung umfassen. Auch kann dies in dem Kontext der 2 das Erzeugen von Auslastungsmetriken 222a und 222b durch die Module 210a bzw. 210b für das Feststellen der Auslastung umfassen.
  • Basierend auf der/den Auslastungsmetrik(en) werden für jede Prozessorkomponente in einem Block 306 betriebliche Kennlinien ausgewählt. Wie es oben mit Bezug auf die 1 und 2 beschrieben ist, können solche Kennlinien eine Betriebsfrequenz und/oder Spannung (z. B. einen P-Zustand) für jede der einen oder der mehreren Prozessorkomponenten umfassen. Als Alternative oder zusätzlich können derartige Kennlinien Taktumschalteinstellungen für jede der einen oder der mehreren Prozessorkomponenten umfassen. Durch derartige Auswahl(en) kann die eine oder können die mehreren Prozessorkomponenten in einem Block 308 angewiesen werden, die betrieblichen Kennlinien zu nutzen.
  • 4 ist eine grafische Darstellung 400, die Auftragungen des Leistungsverhaltens (z. B. Geschwindigkeit) als eine Funktion der Betriebsfrequenz umfasst. Diese Auftragungen sind zum Zwecke der Veranschaulichung und nicht als Beschränkung angegeben. Zum Beispiel umfasst die grafische Darstellung 400 eine Auftragung 402, die ein ideales Leistungsprofil zeigt, bei der das Leistungsverhalten eines Prozessors sich linear mit seiner Betriebsfrequenz verbessert (und somit sein Energieverbrauch steigt). In ähnlicher Weise zeigt eine Auftragung 404 ein Profil, bei dem sich wesentliche Verbesserungen im Leistungsverhalten des Prozessors zeigen, wenn die Betriebsfrequenz erhöht wird.
  • Im Gegensatz dazu zeigt eine Auftragung 406 ein Leistungsprofil für einen Prozessor, der durch externe Geräte/Baugruppen eingeschränkt ist. Wie hierin beschrieben ist, kann dies umfassen, dass eine beträchtliche Anzahl an Ereignissen bewirkt, dass der Prozessor auf Antwort von den externen Geräten/Baugruppen wartet. Somit liefern bei der Auftragung 406 Erhöhungen der Frequenz minimale (wenn überhaupt) Verbesserung beim Leistungsverhalten. Somit ist es bei diesem Leistungsprofil im Allgemeinen nicht wünschenswert, die Frequenz zu erhöhen. Dies ist der Fall, da wesentlicher zusätzlicher Energieverbrauch erforderlich ist, um kleine Verbesserungen im Leistungsverhalten zu erreichen.
  • 5 ist ein Schaubild einer beispielhaften Ausführungsform eines Systems. Insbesondere ist die 5 ein Schaubild, das ein System 500 zeigt, welches verschiedene Elemente umfassen kann. Zum Beispiel zeigt die 5, dass das System 500 einen Prozessor 502, einen Chipsatz 504, eine Eingabe/Ausgabe (I/O – Input/Output)-Baugruppe 506, einen Speicher mit wahlfreiem Zugriff (RAM – Random Access Memory) (so wie einen dynamischen RAM (DRAM)) 508 und einen Nur-Lese-Speicher (ROM – Read Only Memory) 510 umfassen. Diese Elemente können in Hardware, Software, Firmware oder irgendeiner Kombination aus diesen implementiert werden. Die Ausführungsformen sind jedoch nicht auf diese Elemente beschränkt.
  • Wie es in der 5 gezeigt ist, sind die I/O-Baugruppe 506, der RAM 508 und der ROM 510 über den Chipsatz 504 an den Prozessor 502 gekoppelt. Der Chipsatz 504 kann an den Prozessor 502 mit einem Bus 512 gekoppelt sein. Demgemäß kann der Bus 512 mehrere Leitungen umfassen.
  • Der Prozessor 502 kann eine zentrale Verarbeitungseinheit sein, die einen oder mehrere Kerne aufweist. Demgemäß kann der Prozessor 502 in verschiedene Betriebszustände eintreten, so wie in einen oder in mehrere P-Zustände im aktiven Modus. Somit kann der Prozessor 502 Merkmale umfassen, die oben mit Bezug auf die 13 beschrieben sind. Zum Beispiel kann der Prozessor 502 die Elemente der Vorrichtung 100 und/oder die Elemente der Vorrichtung 200 umfassen.
  • Daher können bei den Ausführungsformen betriebliche Kennlinien für den Prozessor 504 (z. B. ein P-Zustand oder mehrere P-Zustände) basierend auf Ereignissen erstellt werden, bei denen er auf Antworten von externen Geräten/Baugruppen wartet. Beispiele solcher externen Geräte/Baugruppen umfassen (sind jedoch nicht beschränkt auf) den Chipsatz 504, die I/O-Baugruppe 506, den RAM 508 und den ROM 510.
  • Zahlreiche bestimmte Einzelheiten sind hierin aufgeführt worden, um für ein gründliches Verständnis der Ausführungsformen zu sorgen. Es wird jedoch von den Fachleuten verstanden werden, dass die Ausführungsformen ohne diese bestimmten Einzelheiten in die Praxis umgesetzt werden können. In anderen Fällen sind gut bekannte Arbeitsschritte, Komponenten und Schaltungen nicht in Einzelheiten beschrieben worden, um die Ausführungsformen nicht zu verschleiern. Es kann verstanden werden, dass die bestimmten strukturellen und funktionalen Einzelheiten, die hierin offenbart sind, repräsentativ sein können und nicht notwendigerweise den Umfang der Ausführungsformen beschränken.
  • Die verschiedenen Ausführungsformen können implementiert werden, indem Hardwareelemente, Softwareelemente oder eine Kombination aus beiden verwendet wird. Beispiele für Hardwareelemente können Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Induktoren usw.), integrierte Schaltunge, anwendungsspezifische integrierte Schaltungen (ASIC – Application Specific Integrated Circuits), programmierbare Logikbaugruppen (PLD – Programmable Logic Devices), Digitalsignalprozessoren (DSP – Digital Signal Processors), ein vor Ort modifizierbarer Logikbaustein (FPGA – Field Programmable Gate Array), logische Gatter, Register, Halbleiterbausteine, Chips, Mikrochips, Chipsätze usw. umfassen. Beispiele für Software können Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Unterroutinen, Funktionen, Verfahren, Prozeduren, Softwareschnittstellen, Anwendungsprogrammschnittstellen (API – Application Programm Interfaces), Befehlssätze, Rechencode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder irgendeine Kombination aus diesen umfassen. Das Festlegen, ob eine Ausführungsform implementiert wird, indem Hardwareelemente und/oder Softwareelemente verwendet werden, kann entsprechend irgendeiner Anzahl von Faktoren variieren, so wie der gewünschten Rechengeschwindigkeit, Leistungspegeln, Wärmetoleranzen, Vorgaben für den Verarbeitungszyklus, Eingangsdatengeschwindigkeiten, Ausgangsdatengeschwindigkeiten, Speicherressourcen, Datenbusgeschwindigkeiten oder anderen Einschränkungen für die Gestaltung oder das Leistungsverhalten.
  • Einige Ausführungsformen können beschrieben werden, indem der Ausdruck „gekoppelt” und „verbunden” zusammen mit ihren Ableitungen verwendet werden. Diese Ausdrücke sind nicht als Synonyme füreinander gedacht. Zum Beispiel können manche Ausführungsformen beschrieben werden, indem die Ausdrücke „verbunden” und/oder „gekoppelt” benutzt werden, um anzugeben, dass zwei oder mehr Elemente in direktem physikalischen oder elektrischen Kontakt miteinander sind. Der Ausdruck „gekoppelt” kann jedoch außerdem bedeuten, dass zwei oder mehr Elemente nicht in direktem Kontakt miteinander sind, jedoch weiterhin zusammen arbeiten oder miteinander Wechselwirken.
  • Einige Ausführungsformen können implementiert werden, indem zum Beispiel ein maschinenlesbares Medium oder ein Gegenstand verwendet wird, der einen Befehl oder einen Satz aus Befehlen speichern kann, die, wenn sie von einer Maschine ausgeführt werden, bewirken können, dass die Maschine ein Verfahren und/oder Arbeitsschritte gemäß den Ausführungsformen ausführt. Eine solche Maschine kann zum Beispiel irgendeine geeignete Verarbeitungsplattform, Rechenplattform, Rechenbaugruppe, Verarbeitungsbaugruppe, ein Rechensystem, ein Verarbeitungssystem, einen Computer, einen Prozessor oder dergleichen umfassen und kann implementiert werden, indem irgendeine geeignete Kombination aus Hardware und/oder Software verwendet wird. Das maschinenlesbare Medium oder der Gegenstand kann zum Beispiel irgendeinen geeigneten Typ einer Speichereinheit, einer Speicherbaugruppe, eines Speichergegenstandes, eines Speichermediums, einer Ablagebaugruppe, eines Ablagegegenstandes, eines Ablagemediums und/oder einer Ablageeinheit umfassen, zum Beispiel Speicher, entfernbare oder nicht entfernbare Medien, löschbare oder nicht löschbare Medien, beschreibbare oder wiederbeschreibbare Medien, digitale oder analoge Medien, Festplatte, Floppy-Disk, Compact-Disk, Nur-Lese-Speicher (CD-ROM), eine Compact-Disk zum Aufzeichnen (CD-R – Compact Disk Recordable), eine wiederbeschreibbare Compact-Disk (CD-RW – Compact Disk Rewriteable), eine optische Platte, magnetische Medien, magnetooptische Medien, entfernbare Speicherkarten oder -platten, verschiedene Typen einer digitalen Mehrzweckplatte (DVD – Digital Versatile Disk), ein Band, eine Kassette oder dergleichen. Die Befehle können irgendeinen geeigneten Typ eines Codes umfassen, so wie Quellencode, kompilierter Code, interpretierter Code, ausführbarer Code, statischer Code, dynamischer Code, verschlüsselter Code und dergleichen, implementiert wird, indem irgendeine geeignete hochwertige, niederwertige, objektorientierte, visuelle, kompilierte und/oder interpretierte Programmiersprache verwendet wird.
  • Obwohl der Gegenstand in einer Sprache beschrieben worden ist, die für strukturelle Merkmale und/oder methodologische Vorgänge spezifisch ist, soll verstanden werden, dass der in den angehängten Ansprüchen definierte Gegenstand nicht notwendigerweise auf die bestimmten Merkmale oder Vorgänge beschränkt ist, die oben beschrieben sind. Statt dessen sind die oben beschrieben bestimmten Merkmale und Vorgänge als beispielhafte Formen des Implementierens der Ansprüche offenbart.

Claims (20)

  1. Vorrichtung, die aufweist: einen Zähler, um eine Anzahl auftretender Ereignisse zu bestimmen, wobei jedes der auftretenden Ereignisse mit einer Prozessorkomponente verknüpft ist, die auf eine Antwort von einem Gerät/einer Baugruppe wartet; ein Modul für das Feststellen der Auslastung, um eine Auslastungsmetrik basierend auf der Anzahl der auftretenden Ereignisse zu bestimmen; und ein Verwaltungsmodul, um eine oder mehrere betriebliche Kennlinien für die Prozessorkomponente zu erstellen, wobei die betrieblichen Kennlinien der Auslastungsmetrik entsprechen.
  2. Vorrichtung nach Anspruch 1, bei der die eine oder die mehreren betrieblichen Kennlinien eine Frequenz und einen Spannungspegel umfassen.
  3. Vorrichtung nach Anspruch 1, bei der die eine oder die mehreren betrieblichen Kennlinien einen P-Zustand umfassen.
  4. Vorrichtung nach Anspruch 1, bei der die Anzahl auftretender Ereignisse innerhalb eines bestimmten Zeitintervalls erfolgt.
  5. Vorrichtung nach Anspruch 1, die einen Zeitgeber aufweist, um ein Zeitintervall zu messen, wobei das Verwaltungsmodul eine Anzahl betrieblicher Kennlinien, die für die Prozessorkomponente erstellt worden sind, innerhalb des Zeitintervalls beschränkt.
  6. Vorrichtung nach Anspruch 1, die weiter eine Benutzerpräferenzschnittstelle aufweist, um Benutzerreferenzinformation zu empfangen, wobei das Verwaltungsmodul die eine oder die mehreren betrieblichen Kennlinien für die Prozessorkomponente entsprechend der Auslastungsmetrik und der Benutzerpräferenzinformation erstellt.
  7. Vorrichtung nach Anspruch 1, bei der das Auftreten von Ereignissen eine oder mehrere Kommunikationsvorgänge mit externem Speicher und/oder Eingabe/Ausgabe-Kommunikationsvorgänge umfasst.
  8. Vorrichtung nach Anspruch 1, bei der die betrieblichen Kennlinien zwischen zwei oder mehr Modulen koordiniert sind.
  9. Vorrichtung nach Anspruch 1, die einen Temperatursensor aufweist, um das Verwaltungsmodul mit einem Signal zu versorgen, das eine gegenwärtige Betriebstemperatur angibt, wobei das Verwaltungsmodul basierend auf dem Signal eine verfügbare Auslastungsreserve bestimmt und die eine oder die mehreren betrieblichen Kennlinien basierend auf der Auslastungsmetrik und auf der verfügbaren Aussteuerungsreserve erstellt.
  10. Vorrichtung nach Anspruch 1, bei der das Verwaltungsmodul: eine erhöhte Betriebsfrequenz für die Prozessorkomponente einrichtet, wenn die Auslastungsmetrik eine erhöhte Auslastung für die Prozessorkomponente angibt; und eine erniedrigte Betriebsfrequenz für die Prozessorkomponente einrichtet, wenn die Auslastungsmetrik eine verringerte Auslastung für die Prozessorkomponente angibt.
  11. Verfahren, das aufweist: Bestimmen einer Auslastungsmetrik für eine Prozessorkomponente; Auswählen einer oder mehrerer betrieblicher Kennlinien für die Prozessorkomponente, wobei die eine oder die mehreren betrieblichen Kennlinien der Auslastungsmetrik entsprechen.
  12. Verfahren nach Anspruch 11, bei dem das Auswählen der einen oder der mehreren betrieblichen Kennlinien das Auswählen eines P-Zustands aufweist.
  13. Verfahren nach Anspruch 11, das weiter aufweist: Bestimmen einer Anzahl aufgetretener Ereignisse, bei denen die Prozessorkomponente auf eine Antwort von einer Baugruppe wartet; wobei die Auslastungsmetrik auf der Anzahl der aufgetretenen Ereignisse basiert.
  14. Verfahren nach Anspruch 11, bei dem das Auswählen der einen oder der mehreren betrieblichen Kennlinien aufweist: Auswählen einer erhöhten Betriebsfrequenz für die Prozessorkomponente, wenn die Auslastungsmetrik eine erhöhte Auslastung der Prozessorkomponente angibt; und Auswählen einer erniedrigten Betriebsfrequenz für die Prozessorkomponente, wenn die Auslastungsmetrik eine erniedrigte Auslastung für die Prozessorkomponente angibt.
  15. Verfahren nach Anspruch 11, bei dem die aufgetretenen Ereignisse einen oder mehrere Kommunikationsvorgänge mit externem Speicher oder Eingabe/Ausgabe-Kommunikationsvorgänge umfassen.
  16. Verfahren nach Anspruch 11, bei dem die Auslastungsmetrik auf einer Anwendungshistorie für eine Anwendung basiert.
  17. Vorrichtung, die aufweist: zwei oder mehr Prozessorkerne; und ein Steuermodul, um für jeden der zwei oder mehr Prozessorkerne betriebliche Kennlinien zu bestimmen, basierend auf einer betrieblichen Auslastung für jeden der zwei oder mehr Prozessorkerne.
  18. Vorrichtung nach Anspruch 17, bei der die bestimmten betrieblichen Kennlinien eine Betriebsfrequenz oder eine Taktumschaltung für jeden der zwei oder mehr Prozessorkerne umfassen.
  19. Vorrichtung nach Anspruch 17, bei der das Steuermodul dazu dient, jede der betrieblichen Auslastungen basierend auf einer Anzahl aufgetretener Ereignisse, bei denen die entsprechenden Prozessorkerne auf eine Antwort von einem Gerät/einer Baugruppe warten, zu bestimmen.
  20. Vorrichtung nach Anspruch 17, bei der die zwei oder mehr Prozessorkerne und das Steuermodul in einer zentralen Verarbeitungseinheit (CPU) enthalten sind.
DE102009019824A 2008-05-16 2009-05-04 Auslastungsbasierte Bestimmung von betrieblichen Kennlinien Withdrawn DE102009019824A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/122,221 US20090327656A1 (en) 2008-05-16 2008-05-16 Efficiency-based determination of operational characteristics
US12/122,221 2008-05-16

Publications (1)

Publication Number Publication Date
DE102009019824A1 true DE102009019824A1 (de) 2009-11-26

Family

ID=40833857

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102009019824A Withdrawn DE102009019824A1 (de) 2008-05-16 2009-05-04 Auslastungsbasierte Bestimmung von betrieblichen Kennlinien

Country Status (7)

Country Link
US (1) US20090327656A1 (de)
JP (1) JP2009277228A (de)
KR (1) KR101155757B1 (de)
CN (1) CN101604199B (de)
DE (1) DE102009019824A1 (de)
GB (1) GB2459968B (de)
TW (1) TW201001292A (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017128711A1 (de) 2017-05-24 2018-11-29 Tu Dresden Mehrkernprozessor und Verfahren zur dynamischen Einstellung einer Versorgungsspannung und einer Taktfrequenz

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5182792B2 (ja) * 2007-10-07 2013-04-17 アルパイン株式会社 マルチコアプロセッサ制御方法及び装置
GB201008785D0 (en) 2009-12-18 2010-07-14 Univ Gent A counter architecture for online dvfs profitability estimation
JP5668505B2 (ja) * 2011-02-03 2015-02-12 富士通株式会社 クロック周波数制御プログラム、クロック周波数制御装置
US8533512B2 (en) 2011-02-10 2013-09-10 International Business Machines Corporation Dynamic power and performance calibration of data processing systems
US9021473B2 (en) 2011-03-14 2015-04-28 International Business Machines Corporation Hardware characterization in virtual environments
CN108509021B (zh) 2011-11-21 2021-11-09 英特尔公司 用于性能改善的可重配置图形处理器
EP2798570A4 (de) * 2011-12-30 2015-08-26 Intel Corp Mehrstufiger hochstromschutz für eine cpu
US8972759B2 (en) 2012-06-29 2015-03-03 Qualcomm Incorporated Adaptive thermal management in a portable computing device including monitoring a temperature signal and holding a performance level during a penalty period
KR101961318B1 (ko) 2012-09-07 2019-07-17 삼성전자주식회사 중앙처리장치에서의 점유시간을 최소화하는 방어코드 운영 방법 및 그에 따른 메모리 시스템
CN102929383A (zh) * 2012-11-06 2013-02-13 山东大学 一种通过cpu动态调频技术降低嵌入式系统功耗的方法
US9087146B2 (en) * 2012-12-21 2015-07-21 Intel Corporation Wear-out equalization techniques for multiple functional units
US10353765B2 (en) * 2013-03-08 2019-07-16 Insyde Software Corp. Method and device to perform event thresholding in a firmware environment utilizing a scalable sliding time-window
US10242652B2 (en) 2013-06-13 2019-03-26 Intel Corporation Reconfigurable graphics processor for performance improvement
US9354930B2 (en) * 2014-04-11 2016-05-31 Telefonaktiebolaget Lm Ericsson (Publ) Scheduling of global voltage/frequency scaling switches among asynchronous dataflow dependent processors
US9864667B2 (en) 2015-09-25 2018-01-09 Intel Corporation Techniques for flexible and dynamic frequency-related telemetry
CN105573961B (zh) * 2015-12-10 2019-04-05 中国航空工业集团公司西安航空计算技术研究所 综合核心处理机系统分布式多处理器识别方法
US11399720B2 (en) 2016-04-05 2022-08-02 Qulacomm Incorporated Circuits and methods providing temperature mitigation for computing devices
US10437313B2 (en) 2016-06-10 2019-10-08 Apple Inc. Processor unit efficiency control
US10303575B2 (en) * 2017-01-10 2019-05-28 International Business Machines Corporation Time-slice-instrumentation facility
US11514551B2 (en) 2020-09-25 2022-11-29 Intel Corporation Configuration profiles for graphics processing unit

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5218704A (en) * 1989-10-30 1993-06-08 Texas Instruments Real-time power conservation for portable computers
JP2507833B2 (ja) * 1990-12-25 1996-06-19 三菱電機株式会社 マイクロコンピュ−タ
WO1993012480A1 (en) * 1991-12-17 1993-06-24 Compaq Computer Corporation Apparatus for reducing computer system power consumption
US5586332A (en) * 1993-03-24 1996-12-17 Intel Corporation Power management for low power processors through the use of auto clock-throttling
WO1995031782A1 (en) * 1994-05-12 1995-11-23 Ast Research, Inc. Cpu activity monitoring through cache watching
US6378081B1 (en) * 1998-10-01 2002-04-23 Gateway, Inc. Power conservation without performance reduction in a power-managed system
US20030056123A1 (en) * 2001-09-19 2003-03-20 Hsieh Kuang Hsun Power management method for hand-held information processing apparatus
US6898718B2 (en) * 2001-09-28 2005-05-24 Intel Corporation Method and apparatus to monitor performance of a process
US6983389B1 (en) * 2002-02-01 2006-01-03 Advanced Micro Devices, Inc. Clock control of functional units in an integrated circuit based on monitoring unit signals to predict inactivity
US20050071688A1 (en) * 2003-09-25 2005-03-31 International Business Machines Corporation Hardware CPU utilization meter for a microprocessor
US7430672B2 (en) * 2004-10-27 2008-09-30 Intel Corporation Method and apparatus to monitor power consumption of processor
US7386737B2 (en) * 2004-11-02 2008-06-10 Intel Corporation Method and apparatus to control temperature of processor
US7814485B2 (en) * 2004-12-07 2010-10-12 Intel Corporation System and method for adaptive power management based on processor utilization and cache misses
US7461272B2 (en) * 2004-12-21 2008-12-02 Intel Corporation Device, system and method of thermal control
KR100663864B1 (ko) * 2005-06-16 2007-01-03 엘지전자 주식회사 멀티-코어 프로세서의 프로세서 모드 제어장치 및 방법
US7882379B2 (en) * 2006-09-22 2011-02-01 Sony Computer Entertainment Inc. Power consumption reduction in a multiprocessor system
US7818596B2 (en) * 2006-12-14 2010-10-19 Intel Corporation Method and apparatus of power management of processor

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017128711A1 (de) 2017-05-24 2018-11-29 Tu Dresden Mehrkernprozessor und Verfahren zur dynamischen Einstellung einer Versorgungsspannung und einer Taktfrequenz
WO2018215023A1 (de) 2017-05-24 2018-11-29 Tu Dresden Mehrkernprozessor und verfahren zur dynamischen einstellung einer versorgungsspannung und einer taktfrequenz
US11163352B2 (en) 2017-05-24 2021-11-02 Technische Universität Dresden Multicore processor and method for dynamically adjusting a supply voltage and a clock speed

Also Published As

Publication number Publication date
KR101155757B1 (ko) 2012-06-12
TW201001292A (en) 2010-01-01
US20090327656A1 (en) 2009-12-31
KR20090119745A (ko) 2009-11-19
GB0908132D0 (en) 2009-06-24
GB2459968A (en) 2009-11-18
CN101604199A (zh) 2009-12-16
GB2459968B (en) 2011-03-02
JP2009277228A (ja) 2009-11-26
CN101604199B (zh) 2014-04-09

Similar Documents

Publication Publication Date Title
DE102009019824A1 (de) Auslastungsbasierte Bestimmung von betrieblichen Kennlinien
DE102011015555B4 (de) Verfahren und vorrichtung für interrupt-power-management
DE102009058426B4 (de) Verfahren und Vorrichtung zum Power-Management eines Prozessors
DE112006000569B4 (de) Thermisches Steuerungsverfahren, thermische Steuerungsvorrichtung und thermisches Steuerungssystem
DE112005002672B4 (de) Dynamische Neukonfiguration eines Cache-Speichers
DE69627144T2 (de) Verfahren und gerät zur leistungsverbesserung eines prozessors
DE112012001358B4 (de) Verwalten von Energieverbrauch in einem Mehrfachkernprozessor
DE112004001320B3 (de) Verfahren, System und Vorrichtung zur Verbesserung der Leistung von Mehrkernprozessoren
DE102009051387A1 (de) Power Management für Mehrprozessorkerne
DE102007016060B4 (de) Computerarbeitslastneuverteilung
DE10296549T5 (de) Ein Verfahren zum Bestimmen von Überführungspunkten bei Mikroprozessoren mit mehreren Leistungszuständen
DE102005044533A1 (de) Aufgabenplanungsverfahren für geringe Leistungsableitung in einem Systemchip
CN110196767B (zh) 服务资源控制方法、装置、设备和存储介质
DE112017008096T5 (de) Stromsteuerung einer verarbeitungseinheit
DE102010045743A1 (de) Verfahren und Vorrichtung um Turboleistung für das Event-Handling zu verbessern
DE112011100695T5 (de) Prozessorkernkommunikation bei mehrkernprozessoren
DE112010004420T5 (de) Verfahren und System zur Verbesserung der Ausführungszeit von Software durch Optimierung elnes Leistungsmodells
DE112018000372B4 (de) Systeme und verfahren für eine kohärente energieverwaltung
DE102007053796A1 (de) Betreiben integrierter Schaltkreis-Logikblöcke bei unabhängigen Spannungen mit einer einzelnen Spannungsversorgung
CN103376874B (zh) 一种多核处理器设备及其实现时钟控制的方法
DE112017001376T5 (de) Erkennen und Vorhersagen von Engpässen in komplexen Systemen
DE112012006163T5 (de) Steuerung des Energieverbrauchs in Mehrkernumgebungen
DE102020118005A1 (de) Verfahren und einrichtung zum dynamischen drosseln von rechenengines
DE112007003007T5 (de) Verfahren und Vorrichtung für die Energieverwaltung bei einem Prozessor
DE10027359A1 (de) Verfahren und Vorrichtung zur Vorhersage einer Wiederanlaufzeit und Festplattenlaufwerk

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R120 Application withdrawn or ip right abandoned
R120 Application withdrawn or ip right abandoned

Effective date: 20121015