DE112012001358T5 - Verwalten von Energieverbrauch in einem Mehrfachkernprozessor - Google Patents

Verwalten von Energieverbrauch in einem Mehrfachkernprozessor Download PDF

Info

Publication number
DE112012001358T5
DE112012001358T5 DE112012001358T DE112012001358T DE112012001358T5 DE 112012001358 T5 DE112012001358 T5 DE 112012001358T5 DE 112012001358 T DE112012001358 T DE 112012001358T DE 112012001358 T DE112012001358 T DE 112012001358T DE 112012001358 T5 DE112012001358 T5 DE 112012001358T5
Authority
DE
Germany
Prior art keywords
value
activity
core region
processor
voltage
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.)
Granted
Application number
DE112012001358T
Other languages
English (en)
Other versions
DE112012001358B4 (de
Inventor
Eric Fetzer
Reid J. Reidlinger
Don Soltis
Satish Shrimali
Krishnakanth Sistla
Rakesh Kumar
Lokesh Sharma
William J. Bowhill
Efraim Rotem
Vivek Garg
Alon Naveh
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 DE112012001358T5 publication Critical patent/DE112012001358T5/de
Application granted granted Critical
Publication of DE112012001358B4 publication Critical patent/DE112012001358B4/de
Expired - Fee Related 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
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)
  • Amplifiers (AREA)
  • Microcomputers (AREA)

Abstract

Ein Prozessor kann einen Kern- und einen Nicht-Kern-Bereich aufweisen. Die von dem Kern-Bereich verbrauchte Energie kann durch Kontrollieren der Cdyn des Prozessors kontrolliert werden, so dass die Cdyn unabhängig von der Anwendung, die von dem Kern-Bereich verarbeitet wird, innerhalb eines zulässigen Cdyn-Werts liegt. Die Energieverwaltungstechnik weist ein Messen eines digitalen Aktivitätsfaktors (DAF), ein Überwachen von architektonischen und Datenaktivitätsebenen und ein Kontrollieren eines Energieverbrauchs durch Drosseln der Befehle basierend auf den Aktivitätsebenen auf. Als Ergebnis des Drosselns der Befehle kann das Drosseln in 3. Auslenkung und einem Thermal-Designpunkt (TDP) implementiert sein. Die von dem Nicht-Kern-Bereich verbrauchte Leerlaufenergie, während der Kern-Bereich in tiefen Energiesparzuständen ist, kann ebenfalls durch Verändern der Referenzspannung VR und der dem Nicht-Kern-Bereich bereitgestellten VP reduziert werden. Als Ergebnis kann die von dem Nicht-Kern-Bereich verbrauchte Leerlaufenergie reduziert werden.

Description

  • HINTERGRUND
  • Ein Computersystem kann einen Prozessor umfassen, der einen Kern-Bereich und einen Nicht-Kern-Bereich aufweisen kann. Der Kern-Bereich kann einen oder mehrere Verarbeitungskerne, Caches (beispielsweise L1 und L2), Zeilenfüllpuffer aufweisen und der Nicht-Kern-Bereich kann Caches auf letzter Ebene (Last Level-Caches), einen Speicher-Controller und solche anderen Blöcke umfassen. Die Energieverwaltungstechniken des Prozessors zielen auf ein Reduzieren der von dem Kern-Bereich verbrauchten Energie ab. In einem bisherigen Ansatz wird ein Aktivitätsfaktor in dem Kern-Bereich gemessen und ein Energiewert (derzeitige Energieverbrauchswert), der dem Aktivitätsfaktor entspricht, wird bestimmt. Dann kann der Spannungs- und/oder Frequenzbetriebspunkt basierend auf einem Vergleich zwischen dem tatsächlichen Energieverbrauchswert und einem zulässigen Energiewert variiert werden. Die Energieverwaltungstechnik kann den Spannungs- und/oder Frequenzbetriebspunkt senken, nachdem detektiert worden ist, dass der derzeitige Energieverbrauchswert dem zulässigen Energiewert gleicht oder höher ist. Jedoch würde eine spezifische Zeitdauer zwischen dem Punkt, an dem die hohe Aktivität detektiert wird, und dem Punkt, an dem der Spannungs- und/oder Frequenzbetriebspunkt tatsächlich gesenkt wird, anfallen. Zwischen diesen beiden Punkten kann das Computersystem ebenfalls in einem höheren Energiezustand und einem höheren Aktivitätszustand arbeiten. Um eine solche Situation zu vermeiden, muss der Prozessor (oder der Teil) auf einen niedrigeren Spannungs- und Frequenzpunkt(V/F)-Punkt ausgelagert werden.
  • In einem weiteren bisherigen Ansatz können die Spannungs- und/oder Frequenzbetriebspunkte basierend auf den Energiespar(P)-Zuständen und Boost-Modi des Prozessors ausgewählt werden, die die Spannungs- und/oder Frequenzbetriebspunkte basierend auf dem derzeitigen Energieverbrauchswert modulieren können. Die obigen Ansätze beruhen auf einem Spannungsbetriebsbereich, um die Energie und Leistung durch Frequenz zu erhöhen oder zu verringern. Mit jeder neuen Generation von Prozessoren wird der Spannungsbereich reduziert, da VCCmax für Gate-Oxid-Zuverlässigkeit gesenkt wird, während VCCmin annähernd konstant bleibt. Die obigen Ansätze sind ihrer Natur nach auf die Über-Energie-Bedingung reaktiv. Die oben dargelegten Energieverwaltungstechniken reagieren nur, nachdem der Prozessor einen hohen Thermal- oder Energiezustand erreicht hat. Als Ergebnis ist die benötigte Zeit (oder Latenz), um tatsächlich den Spannung- und/oder Frequenzbetriebspunkt als Reaktion auf eine Änderung des Thermal- oder Energiezustands zu ändern, wesentlich und es besteht ein Bedarf nach einer Reduzierung der Latenz.
  • Andererseits werden moderne Prozessoren ebenfalls für viele Kern-Designs geplant und diese Kerne sind an einen allgemeinen Nicht-Kern-Bereich gekoppelt. Mit dem Fortschritt der Verarbeitungstechnologie wird der Nicht-Kern-Bereich innerhalb des Prozessors im Format größer. Die Nicht-Kern-Bereiche in modernen Prozessoren können viele funktionale und logische Blöcke (z. B. Speicher-Controller, Caches auf letzter Ebene, Heimagenten, Routing-Agenten, Caching-Agenten, Energiekontrolleinheiten, Schnittstellen und solche weiteren Blöcke) aufweisen und können typischerweise auf einer anderen Powerplane oder Versorgungsfläche arbeiten, als die des Kern-Bereichs. Wünschenswerter Weise sollten diese Prozessoren eine niedrige Leerlaufenergie verbrauchen, um beispielsweise die verbrauchte Gesamtenergie zu reduzieren und/oder die Batterielebensdauer zu verbessern. Jedoch hat die von einem derart größeren Nicht-Kern-Bereich verbrauchte Energie beträchtliche Ebenen erreicht (in der Nähe zu 50% der von dem Prozessor verbrauchten Gesamtenergie).
  • Verwaltung von Energieverbrauch in dem Nicht-Kern-Bereich wird wichtiger denn je. Die Energieverwaltung in dem Nicht-Kern-Bereich weist zusätzliche Herausforderungen auf, da es keine wohldefinierten Schlafzustände (beispielsweise C0 bis C6/C7) wie die des Kern-Bereichs gibt. Wenn insbesondere der Kern-Bereich in einem tiefen Schlafzustand ist, wie z. B. ein C3, C6/C7 oder irgendwelche anderen ähnlichen Zustände (auf die als C-Zustand einer Packung oder Einheit Bezug genommen wird), werden die Kernarchitekturzustände in dem Nicht-Kern-Bereich gesichert und die Kernspannung wird auf einen im Wesentlichen minimalen Wert unter Verwendung von pro-Kern-Energiegattertransistoren (Power Gate Transistors, PGT) oder eingebetteten Energiegattern (Embedded Power Gates, EPG) reduziert. Unter dieser Bedingung ist der Leerlaufenergieverbrauch des Kern-Bereichs fast Null und die von dem Nicht-Kern-Bereich verbrauchte Leerlaufenergie ist beachtlich. Der Nicht-Kern-Bereich muss, anders als der Kern-Bereich, ebenfalls aktiv sein, um beliebige externe Anfragen innerhalb einer spezifizierten Latenz zu bedienen. Zahlreiche dieser Prozessoren werden für eine Mehrfachsockelkonfiguration mit verteiltem Speicher entworfen, der an die mehreren Sockel gekoppelt ist. Verwenden von Energieoptimierungstechniken, wie z. B.
  • Spannungs- und Frequenzskalierung, kann die Snoops oder die Speicherzugriffsantwort zu den gleichrangigen Sockeln (Peer Sockets) oder die Systemagentenantwortlatenz beeinflussen. Somit verwenden die aktuellen Prozessoren keine Spannungs-/Frequenzskalierungstechniken, um Energie in dem Nicht-Kern-Bereich zu schonen, während der Kern-Bereich im C-Zustand der Packung ist. Als Ergebnis ist die Prozessorpackungsleerlaufenergie so hoch wie 20 bis 40% der Thermal-Design-Energie(Thermal Design Power, TDP)-Energie. Somit besteht ein Bedarf nach verbesserten Energieverwaltungstechniken sowohl in dem Kern- als auch in dem Nicht-Kern-Bereich des Prozessors.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die hier beschriebene Erfindung wird beispielhaft und nicht beschränkend in den begleitenden Figuren dargestellt. Der Einfachheit und Klarheit der Darstellung halber sind die in den Figuren dargestellten Elemente nicht notwendigerweise maßstabsgetreu gezeichnet. Die Dimensionen einiger Elemente können beispielsweise relativ zu anderen Elementen der Klarheit wegen übertrieben sein. Des Weiteren wurden, wo dies angebracht erschien, Bezugszeichen zwischen den Figuren wiederholt, um entsprechende oder analoge Elemente anzugeben.
  • 1 stellt einen Prozessor 100 dar, der aktivitätsbasierte Energiespartechniken in dem Kern-Bereich und die Ladezeilen-IR-Drop-basierte Energiespartechniken in dem Nicht-Kern-Bereich in Übereinstimmung mit einer Ausführungsform unterstützt.
  • 2 stellt den Kern-Bereich des Prozessors dar, der im Sinne von Gesamtkapazität (Ctotal) und dynamischer Kapazität (Cdyn) in Übereinstimmung mit einer Ausführungsform moduliert ist.
  • 3 stellt einen Plot einer Veränderung von Cdyn mit Bezug auf eine Änderung der Arbeitslast der Anwendungen in Übereinstimmung mit einer Ausführungsform dar.
  • 4 stellt ein Flussdiagramm dar, das eine aktivitätsbasierte Energiespartechnik abbildet, die in dem Kern-Bereich in Übereinstimmung mit einer Ausführungsform verwendet wird.
  • 5 stellt ein Blockdiagramm dar, das verwendet wird, um die aktivitätsbasierte Energiespartechnik zu implementieren, die in dem Kern-Bereich in Übereinstimmung mit einer Ausführungsform verwendet wird.
  • 6 stellt ein Blockdiagramm einer Aktivitätsakkumulationslogik dar, die verwendet wird, um die aktivitätsbasierte Energiespartechnik zu implementieren, die in dem Kern-Bereich in Übereinstimmung mit einer Ausführungsform verwendet wird.
  • 7 ist ein Graph, der einen Effekt der aktivitätsbasierten Energiespartechnik auf die unmittelbare Aktivität in dem Kern-Bereich in Übereinstimmung mit einer Ausführungsform darstellt.
  • 8 ist ein Graph, der einen Effekt der aktivitätsbasierten Energiespartechnik auf die durchschnittliche Aktivität in dem Kern-Bereich in Übereinstimmung mit einer Ausführungsform darstellt.
  • 9 ist ein Flussdiagramm, das eine Ladezeilen-IR-Drop-basierte Energiespartechnik darstellt, die in dem Nicht-Kern-Bereich in Übereinstimmung mit einer Ausführungsform verwendet wird.
  • 10(A), 10(B) und 10(C) stellen eine Reduktion der Spannung dar, die dem Nicht-Kern-Bereich während einer Verwendung einer Ladezeilen-IR-Drop-basierten Energiespartechnik in Übereinstimmung mit einer Ausführungsform bereitgestellt wird.
  • 11(a), 11(b) und 11(c) sind Zeitdiagramme, die die Veränderung von Ladung, Spannung und Energie als Reaktion auf ein Verwenden der Ladezeilen-IR-Drop-basierten Energiespartechnik in dem Nicht-Kern-Bereich in Übereinstimmung mit einer Ausführungsform darstellen.
  • 12 stellt ein Blockdiagramm eines Computersystems in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung dar.
  • DETAILLIERTE BESCHREIBUNG
  • Die folgende Beschreibung beschreibt Ausführungsformen einer Technik zum Aufstellen wöchentlich geordneter Transaktionen. In der folgenden Beschreibung werden zahlreiche spezifische Details, wie z. B. Logikimplementierungen, eine Ressourcenpartitionierung oder -zugriff oder Duplizierungsimplementierungen, Typen und Beziehungen von Systemkomponenten und Logikpartitionierung oder Integrationsauswahlmöglichkeiten dargelegt, um ein tiefergehendes Verständnis der vorliegenden Erfindung bereitzustellen. Dem Fachmann wird jedoch klar, dass die Erfindung ohne solche spezifischen Details ausgeführt werden kann. In anderen Fällen werden Kontrollstrukturen, Schaltungen auf Gatter-Ebene und vollständige Softwarebefehlssequenzen nicht detailliert gezeigt, um die Erfindung nicht zu verschleiern. Der Fachmann wird mit der enthaltenen Beschreibung in der Lage sein, geeignete Funktionalität ohne unangemessenes Experimentieren zu implementieren.
  • Bezüge in der Schrift auf „(genau) eine Ausführungsform”, „eine Ausführungsform”, „eine beispielhafte Ausführungsform” geben an, dass die beschriebene Ausführungsform ein bestimmtes Merkmal, eine Struktur oder eine Eigenschaft aufweisen kann, jedoch nicht jede Ausführungsform notwendigerweise das bestimmte Merkmal, die Struktur oder die Eigenschaft aufweisen muss. Darüber hinaus beziehen sich solche Formulierungen nicht notwendigerweise auf dieselbe Ausführungsform. Wenn ein bestimmtes Merkmal, eine Struktur oder eine Eigenschaft in Verbindung mit einer Ausführungsform beschrieben wird, wird ferner vorgebracht, dass es im Wissen des Fachmanns liegt, ein solches Merkmal, eine solche Struktur oder Eigenschaft in Verbindung mit weiteren Ausführungsformen zu beeinflussen, ob dies explizit beschrieben ist oder nicht.
  • Ausführungsformen der Erfindung können als Hardware, Firmware, Software oder eine beliebige Kombination davon implementiert sein. Ausführungsformen der Erfindung können ebenfalls als Befehle implementiert sein, die auf einem maschinenlesbaren Medium oder Datenträger gespeichert sind, die von einem oder mehreren Prozessoren gelesen und ausgeführt werden können. Ein maschinenlesbares Medium oder Datenträger kann einen beliebigen Mechanismus zum Speichern oder Übermitteln von Informationen in einer Form aufweisen, die von einer Maschine (z. B. einer Rechenvorrichtung) lesbar ist.
  • Beispielsweise kann ein maschinenlesbares Medium oder Datenträger einen Festwertspeicher (Read Only Memory, ROM); einen Direktzugriffsspeicher (Random Access Memory, RAM); magnetische Plattenspeichermedien oder Datenträger; optische Speichermedien oder Datenträger; Flash-Speichervorrichtungen; elektrische, optische, akustische oder andere ähnliche Signale aufweisen. Ferner können Firmware, Software, Routinen und Befehle hier derart beschrieben sein, als dass sie bestimmte Aktionen durchführen. Jedoch sollte klar sein, dass solche Beschreibungen lediglich der Einfachheit halber angegeben sind und dass solche Aktionen eigentlich aus Rechenvorrichtungen, Prozessoren, Controller und anderen Vorrichtungen resultieren, die die Firmware, Software, Routinen und Befehle ausführen.
  • Ein Prozessor bildet einen wesentlichen Abschnitt eines Rechensystems. Die heutigen Prozessoren haben einen Kern-Bereich, der mehrere Verarbeitungskerne und Caches umfasst, und einen großen Nicht-Kern-Bereich. Die von dem Prozessor verbrauchte Energie hat einen Einfluss auf die von dem Rechensystem verbrauchte Gesamtenergie. Die von dem Prozessor verbrauchte dynamische Energie (P) kann als P = Cdyn·(Vcc)2·F gegeben sein. In einer Ausführungsform kann die von dem Kern-Bereich des Prozessors verbrauchte Energie durch Kontrollieren, Steuern oder Regeln der Cdyn des Prozessors kontrolliert, gesteuert oder geregelt werden. In einer Ausführungsform kann die Cdyn derart kontrolliert werden, dass die Cdyn innerhalb eines zulässigen Cdyn-Werts ist, unabhängig von der Anwendung (oder dem Code), die (der) von dem Kern-Bereich verarbeitet wird. In einer Ausführungsform kann die Energieverwaltungstechnik ein Messen eines digitalen Aktivitätsfaktors (DAF), ein Überwachen von architektonischen und Datenaktivitätsebenen und ein Kontrollieren eines Energieverbrauchs durch Drosseln der Befehle basierend auf der Aktivitätsebene aufweisen. In einer Ausführungsform kann ein solcher Ansatz eine feingranulare Energieverwaltungstechnik und eine Fähigkeit bereitstellen, Boost-Modi zu erzeugen, die den Code kontrollieren, während der Code verarbeitet wird, im Vergleich zu Boost-Modi, die auf den Code, der verarbeitet wird, reagieren können. In einer Ausführungsform kann der Boost-Modus Bezug nehmen auf ein Betreiben des Kerns/der Kerne oder eines Prozessors mit einer höheren Frequenz und einem höheren Spannungsbetriebspunkt, um eine höhere Leistungsfähigkeit für leichtere Arbeitslasten zu ermöglichen.
  • Um die von dem Kern-Bereich verbrauchte Energie zu kontrollieren, kann in einer Ausführungsform der Prozessor mehrere Aktivitätssensoren, eine Aktivitätsakkumulationslogik, eine Drosselungslogik und eine Drossel aufweisen. In einer Ausführungsform können die Aktivitätssensoren die Aktivität abfühlen oder abtasten, die innerhalb der Blöcke auftritt (z. B. Befehlsabruf- und -decodiereinheit, Ausführeinheiten und solche weiteren Einheiten innerhalb des Verarbeitungskerns) und die Aktivitätsebenen (architektonische und Datenaktivitätswerte) der Aktivitätsakkumulationslogik bereitstellen. In einer Ausführungsform können die Aktivitätssensoren in den Schnittstellen (oder Ports) von jedem Block innerhalb der Verarbeitungskerne bereitgestellt sein, um die Aktivitätssensoren in die Lage zu versetzen, die architektonischen und Datenaktivitätsereignisse zu detektieren. In einer Ausführungsform kann die Aktivitätsakkumulationslogik einen akkumulierten Aktivitätswert als Reaktion auf ein Sammeln der Aktivitätswerte von den Aktivitätssensoren generieren. In einer Ausführungsform kann die Aktivitätsakkumulationslogik die akkumulierte Aktivitätsebene der Drosselungslogik bereitstellen. In einer Ausführungsform kann die Aktivitätsakkumulationslogik (AAL) eine Gewichtungslogik und Aggregatoren aufweisen und die Gewichtungslogik kann jedem Aktivitätswert, der von den Aktivitätssensoren bereitgestellt wird, einen Gewichtungsfaktor zuweisen und die Aggregatoren können die Aktivitätswerte akkumulieren (oder aufsummieren), um einen akkumulierten Aktivitätswert zu generieren.
  • In einer Ausführungsform kann die Drosselungslogik eine Cdyn_actual als Reaktion auf ein Empfangen der akkumulierten Aktivitätsebene bestimmen. In einer Ausführungsform kann die Drosselungslogik ebenfalls die Cdyn_actual auf einen Energie-Score-Wert kalibrieren. In einer Ausführungsform kann die Drosselungslogik den Energie-Score mit einem Zielwert (zulässiger Cdyn-Wert) vergleichen, der von einer Energiekontrolleinheit bereitgestellt wird, und ein erstes Signal generieren, wenn der Energie-Score größer als der Zielwert ist, und ein zweites Signal generieren, wenn der Energie-Score kleiner als der Zielwert ist. In einer Ausführungsform kann die Drosselungslogik eine erste Befehlsverteilungsrate (oder Wert) basierend auf dem ersten Signal und einen zweiten Befehlsverteilungswert basierend auf dem zweiten Signal bestimmen. In einer Ausführungsform stellt die Drosselungslogik der Drossel entweder den ersten oder den zweiten Befehlsverteilungswert bereit.
  • In einer Ausführungsform kann die Drossel entweder das Drosseln der Befehlsverteilung (oder der Rate, mit der die Befehle den Ausführeinheiten bereitgestellt werden) verändern (erhöhen oder verringern) oder eine frühere Drosselebene basierend auf dem von der Drosselungslogik empfangenen Signal halten. In einer Ausführungsform kann die Drossel das Befehlsdrosseln als Reaktion auf Empfangen des ersten Befehlsverteilungswerts erhöhen (d. h. weniger Befehle können den Ausführeinheiten bereitgestellt werden) und die Drossel kann das Befehlsdrosseln als Reaktion auf Empfangen des zweiten Befehlsverteilungswerts verringern (d. h., eine größere Anzahl von Befehlen wird in die Lage versetzt, die Ausführeinheiten zu erreichen). Somit kann der Energieverbrauch in dem Kern-Bereich (oder innerhalb des Verarbeitungskerns) durch Drosseln der Befehlsverteilung basierend auf den Aktivitätsebenen in dem Verarbeitungskern kontrolliert werden. Als Ergebnis des Drosselns der Befehle basierend auf den Aktivitätsebenen (oder Cdyn_actual) kann das Drosseln in unterschiedlichen Zeitdomänen implementiert werden, wie z. B. 3. Auslenkung oder Droop (eine Mikrosekunde) und Thermal-Designpunkt (Thermal Design Point, TDP) (eine Millisekunde), wodurch Langzeit- (d. h. TDP) und Kurzzeit- (d. h. 3. Auslenkung) Operationen in die Lage versetzt werden, den Energieverbrauch in dem Kern-Bereich des Prozessors zu kontrollieren.
  • Die Größe des Nicht-Kern-Bereichs nimmt in den heutigen Prozessoren ständig zu und ebenso die von dem Nicht-Kern-Bereich des Prozessors verbrauchte Energie. Insbesondere kann in einer Ausführungsform die von dem Nicht-Kern-Bereich verbrauchte Leerlaufenergie (d. h. die von dem Nicht-Kern-Bereich verbrauchte Energie, während der Kern-Bereich in einem tiefen Energiesparzustand ist, beispielsweise ein C-Zustand einer Packung) durch Verändern der Spannung (d. h. Referenzspannung VR), die dem Nicht-Kern-Bereich bereitgestellt wird, reduziert werden. In einer Ausführungsform kann der Ausgang eines Spannungsreglers an einen Versorgungs-Pin des Nicht-Kern-Bereichs durch einen Lastwiderstand RL gekoppelt sein. Die Spannung (VP) an diesem Versorgungs-Pin des Nicht-Kern-Bereichs ist um einen Betrag kleiner als die VR, der dem IR-Abfall gleicht (= ICC·RL), d. h., VP = [VR – (ICC·RL)].
  • In einer Ausführungsform soll ein minimaler Wert einer Spannung (VPmin) dem Nicht-Kern-Bereich bereitgestellt werden, wenn der Nicht-Kern-Bereich mit einem Frequenzwert betrieben werden soll, der von dem Hersteller des Teils spezifiziert ist. In einer Ausführungsform wenn VR = X und ICC = ICC_peak ist, dann ist VP_peak = (X – ICC_peak·RL) Volt. In einer Ausführungsform sollte die VP_peak mindestens gleich VPmin sein, um Design-Fehlschläge zu vermeiden und es kann sein, dass es nicht möglich ist, die VP_peak unter den VPmin-Wert zu reduzieren. Wenn der Kern-Bereich in einem C-Zustand der Packung ist, kann in einer Ausführungsform der Wert von ICC gleich ICC_idle sein und die Spannung (VP_idle) an dem Versorgungs-Pin des Nicht-Kern-Bereichs kann gleich = (X – ICC_idle·RL) sein. Da ICC_idle kleiner als der ICC_peak ist, wird das Produkt von (ICC_idle·RL) kleiner als das Produkt von (ICC_peak·RL) sein. Als Ergebnis wird die VP_idle größer als die VP_peak sein. In einer Ausführungsform kann es ausreichend sein, eine minimale Spannung (VP_min) an dem Pin des Nicht-Kern-Bereichs bereitzustellen, während der Kern-Bereich in einem C-Zustand der Packung ist.
  • Beim Fehlen einer Technik zum Verändern der Referenzspannung VP während ein Strom (ICC_idle) durch den Lastwiderstand RL fließt, wird jedoch eine Spannung VP_idle, die größer als die VPmin (oder die VP_peak) ist, dem Nicht-Kern-Bereich bereitgestellt. Unnötigerweise wird ein zusätzlicher Spannungswert, der (VP_idle–VP_peak) gleicht, dem Nicht-Kern-Bereich bereitgestellt, sogar wenn ICC_idle durch den Lastwiderstand RL fließt. Als Ergebnis wird, sogar wenn der Nicht-Kern-Bereich im Leerlauf ist, eine Überschussenergie proportional zum Quadrat der Spannung, die (VP_idle–VP_peak) gleicht, von dem Nicht-Kern-Bereich verbraucht. In einer Ausführungsform kann die Referenzspannung (VR) verändert werden, während der Kern-Bereich in einem tiefen C-Zustand der Packung ist, um die Spannung (VP_idle) zu reduzieren, die an dem Versorgungs-Pin des Nicht-Kern-Bereichs bereitgestellt wird. In einer Ausführungsform kann die Referenzspannung VR auf VP_reduced reduziert werden, so dass sich die VP_idle auf einen Wert reduziert, der leicht höher als die VPmin (oder VP_peak) ist. In einer Ausführungsform kann die von dem Nicht-Kern-Bereich verbrauchte Leerlaufenergie minimal sein, wenn (VP_idle–VP_peak) zu Null tendiert. In einer Ausführungsform kann die Referenzspannung (VR) verändert werden, während der Kern-Bereich in einem C-Zustand der Packung ist, um die von dem Nicht-Kern-Bereich verbrauchte Leerlaufenergie einzusparen oder zu reduzieren.
  • Eine Ausführungsform eines Prozessors 100, der Energiespartechniken unterstützen kann, um die in dem Kern und dem Nicht-Kern des Prozessors verbrauchte Energie zu reduzieren, ist in 1 dargestellt. In einer Ausführungsform kann der Prozessor 100 einen Kern-Bereich 105 und einen Nicht-Kern-Bereich 150 umfassen. In einer Ausführungsform kann der Kern 105 und der Nicht-Kern 150 einen bidirektionalen Punkt-zu-Punkt-Bus unterstützen, um eine Kommunikation zwischen den Verarbeitungskernen (p-cores) 110 und zwischen dem Kern-Bereich 105 und dem Nicht-Kern-Bereich 150 zu verbessern. In einer Ausführungsform kann der Kern-Bereich 105 mit einer Powerplane oder Versorgungsfläche 195 ausgestattet sein, die einen Spannungsregler 180 aufweisen kann, und der Ausgang 101 des Spannungsreglers 180 kann an einen Versorgungs-Pin 104 durch einen Lastwiderstand RL 102 gekoppelt sein.
  • In einer Ausführungsform kann der Kern-Bereich 105 Verarbeitungskerne umfassen, wie z. B. p-core 110-A bis 110-N, pro-Kern-Caches 120-A bis 120-N, die entsprechend den p-cores 110-A bis 110-N zugeordnet sind, und Caches auf mittlerer Ebene 130-A bis 130-N umfassen, die entsprechend den p-cores 110-A bis 110-N zugeordnet sind. In einer Ausführungsform können die p-cores 110 eine Befehlswarteschlange 106, eine Drossel 107, eine Aktivitätsakkumulationslogik AAL 108, eine Drosselungslogik TL 109, eine Befehlsabrufeinheit IFU 112, eine Decodiereinheit 113, eine Reservierungsstation RS 114, eine Ausführeinheit EU 115, eine Gleitkommaausführeinheit FPU 116, einen Umordnungspuffer ROB 117 und eine Ausscheideeinheit RU 118 aufweisen. In einer Ausführungsform kann jeder Prozessorkern 110-B bis 110-N Blöcke aufweisen, die ähnlich zu den Blöcken sind, die in dem Verarbeitungskern 110-A abgebildet sind, und die internen Details jedes der Verarbeitungskerne 110-B bis 110-N sind der Kürze halber nicht gezeigt. In einer Ausführungsform können die pro-Kern-Caches 120 Speichertechnologien aufweisen, die höhere Zugriffsgeschwindigkeiten unterstützen können, die beispielsweise die Latenz von Befehls- und Datenabrufvorgängen verringern können.
  • In einer Ausführungsform können die Aktivitätssensoren 179 die Aktivität abfühlen oder abtasten, die in den Blöcken IFU 112, DU 113, RS 114, EU 115, FPU 116, ROB 117 und RU 118 auftreten, und die Aktivitätsebenen (architektonische und Datenaktivitätswerte) der Aktivitätsakkumulationslogik bereitstellen. In einer Ausführungsform können die Aktivitätssensoren 179 in den Datenpfaden von jedem Block innerhalb des Verarbeitungskerns 110-A bereitgestellt sein, um die Aktivitätssensoren 179 in die Lage zu versetzen, die architektonischen und Datenaktivitätswerte zu detektieren. Um die von dem Kernbereich 105 verbrauchte Energie zu kontrollieren, kann in einer Ausführungsform die AAL 108 die Aktivitätsebenen sammeln, die von den mehreren Aktivitätssensoren 179 abgefühlt oder abgetastet werden, und einen akkumulierten Aktivitätswert generieren. In einer Ausführungsform kann die Aktivitätsakkumulationslogik AAL 108 der Drosselungslogik TL 109 den akkumulierten Aktivitätswert bereitstellen.
  • In einer Ausführungsform kann die TL 109 eine Cdyn_actual als Reaktion auf ein Empfangen der akkumulierten Aktivitätsebene bestimmen. In einer Ausführungsform kann die TL 109 ebenfalls die Cdyn_actual auf einen Energie-Score-Wert kalibrieren. In einer Ausführungsform kann die TL 109 den Energie-Score mit einem Zielwert (zulässiger Cdyn-Wert) vergleichen und ein Kontrollsignal generieren, das angeben kann, ob die Drosselebene von Befehlen oder die Befehlsverteilungsrate erhöht oder verringert oder gehalten werden soll. In einer Ausführungsform kann die Drossel 107 entweder das Drosseln von Befehlen oder die Befehlsverteilungsrate basierend auf dem Kontrollsignal, das von der TL 109 empfangen wird, entweder verändern (erhöhen oder verringern) oder halten. In einer Ausführungsform kann die Drossel 107 entweder das Befehlsdrosseln erhöhen (d. h. weniger Befehle können den Ausführeinheiten bereitgestellt werden) oder das Befehlsdrosseln verringern (d. h. eine größere Anzahl von Befehlen wird in die Lage versetzt, die Ausführeinheiten zu erreichen), als Reaktion auf das Empfangen des Kontrollsignals.
  • Der Energieverbrauch in dem Kern-Bereich 105 (oder innerhalb der Verarbeitungskerne 110) kann somit durch Drosseln der Befehle basierend auf den Aktivitätsebenen in (oder Cdyn_actual von) dem Verarbeitungskern 110 kontrolliert werden. In einer Ausführungsform kann das Drosseln von Befehlen direkt basierend auf den Aktivitätsebenen (oder der Cdyn) durchgeführt werden, wobei das Vermögen, den Energieverbrauch zu kontrollieren, schneller sein kann. Ebenfalls kann durch Beschränken der Cdyn auf einen gesetzten Wert die Kontrolle des Verbrauchs der Energie in dem Kern auf einer proaktiven Basis durchgeführt werden, statt auf ein Auftreten von Bedingungen eines exzessiven Energieverbrauchs zu reagieren. Als Ergebnis des Drosseln der Befehle basierend auf den Aktivitätsebenen (oder Cdyn_actual) kann das Drosseln in unterschiedlichen Zeitdomänen implementiert werden, wie zum Beispiel 3. Auslenkung oder Droop (eine Mikrosekunde) und Thermal-Designpunkt (TDP) (eine Millisekunde), wodurch Langzeit- (d. h. TDP) und Kurzzeit- (d. h. 3. Auslenkung) Operationen in die Lage versetzt werden können, den Energieverbrauch in dem Kern-Bereich 105 des Prozessors 100 zu kontrollieren. In einer Ausführungsform ist die Cdyn und ihre Beziehung zu den Typanwendungen unten in 3 dargestellt.
  • Während der Energieverbrauch in dem Kern-Bereich 105 unter Verwendung der oben diskutierten Aktivitätsebenen-basierten Techniken kontrolliert oder verwaltet werden kann, kann der Energieverbrauch in dem Nicht-Kern-Bereich 150 unter Verwendung der unten beschriebenen Energieverwaltungstechniken verwaltet werden. In einer Ausführungsform kann der Nicht-Kern-Bereich 150 einen Speicher-Controller 155, einen Cache auf letzter Ebene LLC 160, einen Heimagenten HA 161, einen Caching-Agenten CA 162, einen Routing-Agenten RA 162, einen globalen Taktgeber/PLL 164, eine Schnittstelle 165 und eine Energieverwaltungseinheit 168 aufweisen. In einer Ausführungsform kann die Referenzspannung VR verändert werden, um insbesondere die von dem Nicht-Kern-Bereich 150 verbrauchte Leerlaufenergie zu reduzieren, während der Kern-Bereich 105 in einem tiefen C-Zustand der Packung sein kann (d. h. ein tiefer Energiesparzustand, wie z. B. C3, C6/C7). In einer Ausführungsform kann der Nicht-Kern-Bereich 150 mit einer Versorgungsfläche 197 bereitgestellt sein und die Versorgungsfläche 197 kann einen Spannungsregler 195 aufweisen und der Ausgang 196 des Spannungsreglers 195 kann an den Versorgungs-Pin 194 des Nicht-Kern-Bereichs 150 durch einen Lastwiderstand RL 192 gekoppelt sein. In einer Ausführungsform kann die Aktivität oder können die Transaktionen auf dem Schnittstellenpfad 199 Null sein, während der Kern-Bereich 150 in einem C-Zustand der Packung ist.
  • Während der Kern-Bereich 105 aktiv ist, kann ein Spitzenbetrag eines Stroms (ICC_peak) durch den RL 192 fließen und die Spannung (VP_peak) an dem Versorgungs-Pin 194 des Nicht-Kern-Bereichs 150 kann um einen Betrag kleiner als die Referenzspannung VR (an dem Ausgang 196 des Spannungsregler 195) sein, der dem IR-Abfall (= ICC_peak·RL) gleicht, d. h. VP_peak = [VR – (ICC_peak·RL)]. Wenn beispielsweise VR = 1 Volt, RL 192 = 1,4 Milliohm und ICC 193 = ICC_peak = 50 Ampere ist, dann kann der IR-Abfall gleich (ICC·RL) = (50 Ampere·1,4 Milliohm) = 70 Millivolt (mv) sein. Als Ergebnis kann die Spannung (VP_peak), die an dem Versorgungs-Pin 194 bereitgestellt wird, gleich [1 Volt – 70 mv] = 0,93 Volt sein. In einer Ausführungsform kann ein minimaler Wert einer Spannung VPmin (der dem VP-Peak in diesem Beispiel gleicht) dem Nicht-Kern-Bereich 150 bereitgestellt werden, wenn der Nicht-Kern-Bereich 150 mit einem Frequenzwert (oder einer Bin-Frequenz) arbeiten soll, die von dem Hersteller des Teils (d. h. des Prozessors 100) spezifiziert ist. In einer Ausführungsform kann es sein, dass es nicht möglich ist, den Wert der Referenzspannung VR unter einen spezifizierten Wert (1 Volt in dem obigen Beispiel) zu reduzieren, um Design-Fehlschläge zu vermeiden.
  • Beim Fehlen einer Technik zum Verändern der Referenzspannung VR und während der Kern-Bereich 105 in einem C-Zustand der Packung ist, kann der Strom (ICC 193), der durch RL 192 fließt, ICC_idle gleichen und die Spannung (VP_idle) an dem Versorgungs-Pin 194 des Nicht-Kern-Bereichs 150 kann = [VR – (ICC_idle·RL)] gleichen. Da ICC_idle kleiner als der ICC_peak ist, wird das Produkt von (ICC_idle·RL) kleiner als das Produkt von (ICC-peak·RL) sein. Als Ergebnis wird die VP_idle größer als die VP_peak sein. Beispielsweise kann ICC_idle 20 Ampere gleichen und VP = [1 Volt – (20 Ampere·1,4 Milliohm)] = [ 1 Volt – 28 mv] = 0,972 Volt sein, was größer als die VP_peak (0,93 Volt) ist. Als Ergebnis wird unnötigerweise eine Überschussspannung, die (VP_idle – VP-peak) = (0,972 – 0,93 = 0,042 Volt) gleicht, dem Nicht-Kern-Bereich 150 bereitgestellt. Als Ergebnis kann die von dem Nicht-Kern-Bereich in dem Leerlaufzustand verbrauchte Energie (d. h. power consumed_idle) normal_power_consumed_idle sein, was gleich sein kann zu (= dynamische Energie + Verlustenergie = {[Cdyn·(VP_idle)2·f] + [Funktion von (VP_idle)4]} = {[5nF·(0,972)2·2,53 GhZ] + [5 Watt]} = 16,95 Watt.
  • In einer Ausführungsform kann durch opportunistisches Verändern der Referenzspannung VR basierend darauf, ob der Kern-Bereich 105 in einem tiefen Energiesparzustand oder einem C-Zustand der Packung ist, eine Möglichkeit geboten werden, den Energieverbrauch während des Leerlaufzustands des Kern-Bereichs 105 einzusparen. In einer Ausführungsform kann die Spannung, die dem Kern-Bereich 105 bereitgestellt wird, unter Verwendung von Leistungsgattertransistoren (Power Gate Transistors, PGT) oder eines eingebetteten Leistungsgatters (Embedded Power Gate, EPG) im Wesentlichen abgeschnitten werden. In einer Ausführungsform kann die Aktivität, die von dem Kern-Bereich 105 in den Nicht-Kern-Bereich 150 injiziert wird im Wesentlichen niedrig sein, während der Kern-Bereich 105 in dem tiefen Energiesparzustand arbeitet. In einer Ausführungsform kann es ausreichend sein, eine minimale Spannung (VPmin = 0,93 Volt) an dem Versorgungs-Pin 194 des Nicht-Kern-Bereichs 150 bereitzustellen, während der Kern-Bereich 105 in einem C-Zustand der Packung ist. Um die VP_idle auf VP_reduced zu reduzieren, einen Wert, der näher an VPmin sein kann, kann die Energieverwaltungseinheit 168 eine Bedingung eines C-Zustands der Packung des Kern-Bereichs 105 erkennen und kann einen Spannungswert (VID_R) in einem digitalen Format generieren. In einer Ausführungsform kann der VID_R-Wert dem Spannungsregler 195 bereitgestellt werden. In einer Ausführungsform kann der Spannungsregler 195 eine Referenzspannung VR, die kleiner als VR_peak (= 1 Volt) sein kann, als Reaktion auf ein Empfangen des VID_R-Werts von der Energieverwaltungseinheit 168 generieren.
  • In einer Ausführungsform kann die VP_idle (oder VP_normal), die an dem Versorgungs-Pin 194 bereitgestellt wird, aufgrund einer Verringerung des Werts von VR von einem VR_peak-Wert (oder VR_normal) auf einen VR_reduced-Wert reduziert werden. In einer Ausführungsform kann das Reduzieren der Referenzspannung VR von einem VR_normal-Wert auf einen VR_reduced-Wert eine Reduktion der VP von VP_idle auf VP_reduced verursachen. In einer Ausführungsform kann sich die von dem Nicht-Kern-Bereich 150 verbrauchte Energie ebenfalls als Reaktion auf das Reduzieren des Werts von VP von VP_idle auf VP_reduced reduzieren. Der Spannungsregler 195 kann beispielsweise als Reaktion auf das Empfangen des VID die VR von VR_normal (1 Volt) auf VR_reduced (0,96 Volt) reduzieren, und als Ergebnis kann sich VP von VP_idle auf VP_reduced [= 0,96 – (20 Ampere·1,4 Milliohm) = (0,96 – 0,028) = 0,932 Volt] reduzieren. In einer Ausführungsform kann die power consumed_idle auf Reduced_power_consumed_idle (d. h. P_idle_reduced = dynamische Energie + Verlustenergie = {[Cdyn·(VP_reduced)2·f] + [Funktion von (VP_reduced)4]} = {zum Beispiel [5nF·(0,932)2·2,53 GhZ] + [4 Watt]} = 14,998 Watt reduziert werden. Als Ergebnis ist die gesparte Energie = [(normal_power_consumed_idle) – (Reduced_power_consumed_idle) = (16,95 – 14,998) = 1,96 Watt). Deshalb kann in einer Ausführungsform durch opportunistisches Verändern der Referenzspannung VR die von dem Nicht-Kern-Bereich 150 verbrauchte Energie von normal_power_consumed_idle auf reduced_power_consumed_idle als Reaktion darauf reduziert werden, dass der Kern-Bereich 105 in einen C-Zustand der Packung eintritt.
  • In einer Ausführungsform kann die Energieverwaltungseinheit 168 ein Einsetzen eines Austrittsereignisses aus dem C-Zustand der Packung in einen normalen Modus des Kern-Bereichs 105 detektieren. Als Reaktion auf die Detektion des Einsetzens des Austrittsereignisses kann die Energieverwaltungseinheit 168 einen VID_N-Wert generieren, der einer normalen Referenzspannung entspricht, und der VID_N-Wert kann dem Spannungsregler 195 bereitgestellt werden. Als Reaktion auf ein Empfangen des VID_N-Werts kann in einer Ausführungsform der Spannungsregler 195 den VR-Wert von VR_reduced auf einen VR_normal (oder VR_peak)-Wert erhöhen. Als Ergebnis kann die an dem Versorgungs-Pin 104 des Nicht-Kern-Bereichs 150 bereitgestellte Spannung bei dem VPmin-Wert oder leicht darüber gehalten werden. In einer Ausführungsform können die Änderungen der Referenzspannung von VR_reduced auf VR_normal und die Änderungen der VP von VP_reduced auf VP_idle (oder VP_normal) völlig innerhalb der Austrittslatenz auftreten, bevor der Nicht-Kern 150 irgendeine Aktivität sehen kann, die von dem Kern-Bereich 105 eingeleitet wird. Somit können die minimalen VPmin-Spannungsebenen gehalten werden, ohne die Leistungsfähigkeit des Prozessors 100 zu beeinflussen.
  • Eine Ausführungsform des Kern-Bereichs 105 und ein Bestimmen einer entsprechenden dynamischen Kapazität Cdyn ist in 2 dargestellt. In einer Ausführungsform kann der Kern 210 durch eine Gesamtkapazität CTotal 220 repräsentiert werden und die dynamische Kapazität Cdyn 240 kann zu (CTotal 220·Aktivitätsfaktor) gleich sein. In einer Ausführungsform kann sich die Cdyn 240 basierend auf der Anwendung (oder dem Code) verändern, die (der) verarbeitet wird. Beispielsweise können einige Anwendungen, wie z. B. ein Power-Virus und HPC, im Vergleich zu einigen anderen Anwendungen, wie beispielsweise Mainstream-Anwendungen, höhere Aktivitätsebenen zeigen. Somit kann Cdyn 240 ein Bruchteil der CTotal 220 sein.
  • Ein Graph 300 von Cdyn Vs-Arbeitslast von verschiedenen Anwendungstypen ist in 3 abgebildet. Der Graph 300 weist eine Y-Achse 310 und eine X-Achse 320 auf, die entsprechend die normalisierte Cdyn und eine ungefähre Anzahl von Anwendungen repräsentieren kann, die basierend auf der Arbeitslast von verschiedenen Anwendungstypen verfügbar ist. In einer Ausführungsform weist der Graph 300 verschiedene Anwendungen auf, wie z. B. Leerlaufanwendungen 330, die zahlreicher sein können, gefolgt von den Mainstream-Anwendungen 340, den Hochleistungsrechnen(HPC)-Anwendungen 350 und den Power-Virus-Anwendungen 360. In einer Ausführungsform kann der Prozessor 100 durch Setzen der Drosselung auf ein niedriges Anwendungsverhältnis von 0,55 für Mainstream-Anwendungen 340 optimiert sein, was durch eine Linie 345 angegeben ist. Die Drosselung kann jedoch auf ein höheres Anwendungsverhältnis von 0,633 gesetzt sein, was durch eine Linie 355 angegeben ist, wenn der Prozessor 100 für HPC-Anwendungen optimiert werden soll. In einer Ausführungsform kann sich das Anwendungsverhältnis auf ein Verhältnis der für eine gegebene Anwendung verbrauchten Energie im Vergleich zu der von der Anwendung mit dem höchsten Energieverbrauch verbrauchten Energie, wie z. B. der Power-Virus (PV), beziehen. In einer weiteren Ausführungsform kann sich das Anwendungsverhältnis ebenfalls auf ein Verhältnis einer realen Anwendung und einer Power-Virus-Anwendung beziehen.
  • In einer Ausführungsform kann der Zielwert (zulässige Cdyn) auf einen Wert gesetzt sein, wenn die Power-Virus-Anwendung 360 verarbeitet werden soll, so dass der Vergleich von Cdyn_actual mit dem Zielwert einen stärker einschränkenden (d. h. höheren) Drosselwert setzen kann, um weniger Befehle in die Lage zu versetzen, Ausführeinheiten in einer gegebenen Zeitperiode zu erreichen, im Vergleich zu dem während einer Verarbeitung von HPC-Anwendungen 350 oder Mainstream-Anwendungen 340. In einer Ausführungsform kann die oben dargelegte Energieverwaltungstechnik die Power-Virus-Anwendungen in die Lage versetzen, von dem Prozessor 100 verarbeitet zu werden, jedoch kann das Drosseln von Befehlen einen stärker einschränkenden (d. h. höheren) Drosselwert setzen, um weniger Befehle in die Lage zu versetzen, verarbeitet zu werden. Ein solcher Ansatz verhindert eine Bedingung, in der eine Anwendung mit hoher Energie (z. B. ein Power-Virus) die Frequenz beschränkt, mit der alle Anwendung verarbeitet werden können. Des Weiteren wird durch Drosseln von Anwendungen mit hoher Energie der beim Verarbeiten der Anwendung mit höherer Energie gezogene Strom reduziert, wodurch möglich wird, dass eine niedrigste Betriebsspannung (und deshalb die Frequenz) durch die Drosselebene gesetzt wird. Ein solcher Ansatz kann ebenfalls einen Benutzer in die Lage versetzen, den Prozessor, der für HPC-Code oder Mainstream-Code optimiert werden soll, durch Konfigurieren von maschinenspezifischen Registern MSR 111 in Echtzeit zu überwachen und zu konfigurieren.
  • Ein Flussdiagramm, das den Betrieb des Kern-Bereichs 105 während eines Durchführens von oben beschriebenen Energieverwaltungstechniken abbildet, ist in 4 dargestellt. In Block 410 können die Aktivitätssensoren 179 oder die Datenmustersensoren 505 einen Aktivitätswert/-ebene generieren, basierend auf einem Muster von Daten und architektonischen Ereignissen, die auf Ports oder Datenpfaden von einer oder mehreren funktionalen Einheiten bereitgestellt werden, wie z. B. IFU 510, IQ 520 und die EU 550. In einer Ausführungsform können die Aktivitätswerte einer Aktivitätsakkumulationslogik AAL 570 bereitgestellt werden.
  • In Block 420 kann die Aktivitätsakkumulationslogik AAL 570 die Aktivitätswerte von den Datenmuster-(oder Aktivitäts-)Sensoren empfangen und einen akkumulierten Aktivitätswert generieren. In einer Ausführungsform kann die AAL 570 eine Gewichtungslogik 610, Summiereinheiten 630, 640, 650 und 660 und einen Akkumulator 670 aufweisen. In einer Ausführungsform kann die Gewichtungslogik 610 Gewichtungselemente 610-A bis 610-H aufweisen und jedes der Gewichtungselemente 610-A bis 610-D kann Dateneingänge 605-A bis 605-D von funktionalen Einheiten empfangen, wie z. B. IFU 510, IQ 520 und EU 550, und die derart empfangenen Dateneingänge 605-A bis 605-D können die Arbeit angeben, die gemacht wird. In einer Ausführungsform können die von den funktionalen Einheiten 510, 520 und 550 empfangenen Dateneingänge 605-A bis 605-D in jedem Zyklus aktualisiert werden und die Breite solcher Dateneingänge 605-A bis 605-D kann weniger als 128 Bit sein. In einer Ausführungsform können die von den funktionalen Einheiten empfangenen Dateneingänge 605-A bis 605-D eine Betriebsenergie repräsentieren und können beispielsweise einen digitalen Aktivitätsfaktor einer Gleitkommaeinheit (Floating Point Unit Digital Activity Factor, FPUDAF), einen digitalen Aktivitätsfaktor eines Befehlsabruf- und -neuausrichtungsvorgangs (Instruction Fetch and Resteer Digital Activity Factor, IFRDAF) und solche weiteren ähnlichen Eingangswerte aufweisen. In einer Ausführungsform können die Dateneingänge 605-A bis 605-D mit einem Gewichtungswert basierend auf einer vorbestimmten Logik vor einem Bereitstellen der gewichteten Eingänge für die Summiereinheit 630 bereitgestellt werden. In einer Ausführungsform können die gewichteten Elemente 610-E bis 610-H Dateneingänge 605-E bis 605-H von Registerdateien empfangen, die Daten angeben, die verbraucht werden. In einer Ausführungsform können die Dateneingänge 605-E bis 605-H alle 128 Zyklen aktualisiert werden und die Gewichtungselemente 610-E bis 610-H können den Dateneingängen 605-E bis 605-H Gewichtungswerte bereitstellen, vor einem Bereitstellen der gewichteten Eingänge für die Summiereinheit 640. In einer Ausführungsform können die Summiereinheiten 650 und 660 und der Akkumulator 670 zusammen den akkumulierten Aktivitätswert einer geeigneten Breite (beispielsweise 44 Bit breit) generieren. In einer Ausführungsform kann die Summiereinheit 650 die Dateneingangssumme aus 640 mit der Aktivitätseingangssumme aus 650 summieren. In einer Ausführungsform kann die Akkumulatorverriegelung (Latch) 670 den Wert durch den Akkumulatorsummierer 660 zurückführen und kann den akkumulierten Aktivitätswert einer geeigneten Breite generieren.
  • In Block 430 kann die Drosselungslogik TL 560 den akkumulierten Aktivitätswert, der von der AAL 560 bereitgestellt wird, empfangen und einen Wert der dynamischen Kapazität (Cdyn) generieren. In einer Ausführungsform kann die Drosselungslogik TL 560 die Cdyn_actual basierend auf der CTotal und dem akkumulierten Aktivitätswert bestimmen. In Block 450 kann die Drosselungslogik TL 560 die Cdyn_actual kalibrieren, um einen Energie-Score-Wert zu repräsentieren.
  • In Block 460 kann die Drosselungslogik TL 560 den Energie-Score, der basierend auf dem Cdyn_acutal-Wert generiert wird, mit einem Zielwert vergleichen, der von der Energieverwaltungseinheit PMU 580 bereitgestellt wird. In einer Ausführungsform kann der Zielwert, der von der PMU 580 bereitgestellt wird, einen zulässigen Cdyn-Wert, der als Energie-Score kalibriert wird, repräsentieren. In einer Ausführungsform kann der Benutzer den Prozessor für HPC-Anwendungen 350 optimieren und der zulässige Cdyn-Wert kann einem Anwendungsverhältnis von 0,633 gleich sein, das auf einen Energie-Score-Wert kalibriert sein kann. In einer Ausführungsform können die Aktivitätsebenen, der akkumulierte Aktivitätswert, die Cdyn_actual und der Energie-Score einen höheren Wert repräsentieren, wenn der Kern-Bereich 105 eine Power-Virus-Anwendung 360 verarbeitet.
  • In Block 470 kann die TL 560 den Energie-Score, der der zulässigen Cdyn entspricht, und den Energie-Score, der der Cdyn_actual entspricht, vergleichen und die Steuerung wird zu Block 480 weitergegeben, wenn der Energie-Score kleiner als der Zielwert ist, und sonst zu Block 490. In einer Ausführungsform kann die TL 560 ein erstes Signal generieren, wenn der Energie-Score kleiner als der Zielwert ist, und kann ein zweites Signal generieren, wenn der Energie-Score größer als der Zielwert ist. In dem obigen Beispiel kann die TL 560 den Energie-Score (d. h. auf die Cdyn_actual kalibriert), der der Power-Virus PV-Anwendung 360 entspricht, mit dem Zielwert vergleichen, der für eine zulässige Cdyn gesetzt sein kann, die der HPC-Anwendung 350 entspricht, und die TL 560 kann ein zweites Signal generieren, da der Energie-Score größer als der Zielwert sein kann.
  • In Block 480 kann die Drossel 530 das Drosseln von Befehlen als Reaktion auf ein Empfangen des ersten Signals halten oder reduzieren. In einer Ausführungsform kann das erste Signal angeben, dass mehr Befehle verarbeitet werden können, ohne die Cdyn-Hülle oder Energie-Score-Hülle zu überschreiten, und die Drossel 530 kann das Drosseln verringern (oder den Befehlsdurchsatz erhöhen). Andererseits kann, wenn das erste Signal angibt, dass der Befehlsdurchsatz kleiner als der Zielwert ist, jedoch sehr nah an dem Zielwert ist, die Drossel 530 den Befehlsdurchsatz ohne Abwandeln der Drosselebene halten.
  • In Block 490 kann die Drossel 530 das Drosseln von Befehlen verringern, um sicherzustellen, dass der Energieverbrauch innerhalb der TDP-Hülle ist. Wenn der Energie-Score größer als der Zielwert ist, wird in einer Ausführungsform der Befehlsdurchsatz durch Verringern der Drosselungsebene reduziert, wodurch weniger Befehle in die Lage versetzt werden, die Ausführeinheiten zu erreichen. In dem obigen Beispiel kann die Drossel 530 schnell die Drosselebene erhöhen, um den Befehlsdurchsatz zu verringern. Als Ergebnis des Drosselns der Befehle basierend auf den Aktivitätsebenen (oder Cdyn_actual) kann das Drosseln in unterschiedlichen Zeitdomänen implementiert werden, wie z. B. 3. Auslenkung oder Droop (eine Mikrosekunde) und Thermal-Designpunkt (TDP) (eine Millisekunde), wodurch Langzeit- (d. h. TDP) und Kurzzeit- (d. h. 3. Auslenkung) Operationen in die Lage versetzt werden können, den Energieverbrauch in dem Kern-Bereich 105 des Prozessors 100 zu kontrollieren.
  • Ein Graph 700, der einen Plot einer unmittelbaren Aktivität mit und ohne Drosselung abbildet, ist in 7 dargestellt. Der Graph 700 weist eine Y-Achse 710, die ein Anwendungsverhältnis repräsentiert, und eine X-Achse 740 auf, die die Zeit (in Mikrosekunden) repräsentiert. Wenn eine Burst-Aktivität (unmittelbare Aktivität), die für eine kürzere Dauer als eine kurze Dauer T1 auftreten kann, in einer Ausführungsform mit irgendeiner Drosselung erlaubt sein kann und solch eine Burst-Aktivität 750, die erlaubt sein kann, ohne dass sie gedrosselt wird, ist in Graph 700 abgebildet. Jedoch kann in einer Ausführungsform, wenn eine anhaltende Aktivität auftritt, die außerhalb der Zeitdauer T1 auftreten kann, die oben beschriebene Energieverwaltungstechnik damit beginnen, die Befehle zu drosseln. Der Graph 700 bildet eine solche anhaltende Aktivität 760 ab, die gedrosselt werden kann, wie es durch die gedrosselte Aktivität 770 gezeigt ist. Es ist ersichtlich, dass die anhaltende Aktivität 760, wenn sie ungedrosselt belassen wird, für eine Zeitdauer T2 auftreten kann, jedoch kann in einer Ausführungsform die anhaltende Aktivität 760 unter Verwendung der oben beschriebenen Energieverwaltungstechnik gedrosselt werden. Als Ergebnis des Drosselns kann die Befehlsverteilung oder der Befehlsdurchsatz verändert werden und die anhaltende Aktivität 760 kann auf eine längere Zeitdauer T3 verteilt werden und auf eine solche verteilte Aktivität kann als gedrosselte Aktivität 770 Bezug genommen werden.
  • Ein Graph 800, der einen Plot einer angefragten durchschnittlichen Aktivität und einer durchschnittlichen Aktivität abbildet, die in einer Zeitperiode gewährt wird, ist in 8 dargestellt. Der Graph 800 weist eine Y-Achse 810, die ein Anwendungsverhältnis repräsentiert, und eine X-Achse 840 auf, die die Zeit (in Mikrosekunden) repräsentiert. In einer Ausführungsform kann die angefragte durchschnittliche Aktivität von einem Plot 830 repräsentiert sein und die gewährte durchschnittliche Aktivität kann durch einen Plot 820 repräsentiert sein. In einer Ausführungsform kann die in einer Zeitperiode T5 angefragte durchschnittliche Aktivität ein Spitzenanwendungsverhältnis von 1 haben. Jedoch muss in einer Ausführungsform das Spitzenanwendungsverhältnis nicht von der oben dargelegten Energieverwaltungstechnik gewährt werden. Stattdessen kann ein niedrigeres Anwendungsverhältnis (beispielsweise von 0,8) zulässig sein und die Zeitperiode, in der eine solche gedrosselte gewährte Durchschnittsaktivität 820 auftreten kann, ist T6, die länger als T5 sein kann.
  • Eine Ausführungsform einer Operation des Energieverwaltungspfads, der die Energieverwaltungseinheit PMU 168 und den Spannungsregler 195 aufweist, um die von dem Nicht-Kern-Bereich 150 verbrauchte Leerlaufenergie zu reduzieren, während der Kern-Bereich 105 in einem C-Zustand der Packung ist, ist in 9 dargestellt.
  • In Block 910 kann die PMU 168 prüfen, ob der Kern-Bereich 105 in einen C-Zustand der Packung eingetreten ist, und die Steuerung wird zu Block 915 weitergegeben, wenn der Kern-Bereich 105 in einen C-Zustand der Packung eingetreten ist, und die PMU 168 kann darauf warten, dass der Kern-Bereich 105 in einen tiefen Energiesparzustand (oder C-Zustand der Packung) eintritt.
  • In Block 915 kann die PMU 168 einen ersten Spannungswert (oben dargelegten FVID oder VID_R) generieren, der einem Spannungsregler 195 bereitgestellt werden soll, der den Nicht-Kern-Bereich 150 des Prozessors 100 versorgt. In einer Ausführungsform kann der FVID oder VID_R einen digitalen Wert (9 Bit-Wert) repräsentieren, basierend auf dem Spannungsregler 195 eine Referenzspannung VR (= VR_reduced) generieren kann. In Block 920 kann die PMU 168 den FVID dem Spannungsregler 195 bereitstellen.
  • In Block 930 kann der Spannungsregler 195 die VR von einer normalen Referenzspannung (VR_normal) auf eine reduziertere Referenzspannung (VR_reduced) basierend auf dem FVID-Wert ändern. In einer Ausführungsform kann die VR von einem VR_normal von 1 Volt auf einen VR_reduced-Wert von 0,96 Volt reduziert werden.
  • In Block 940 kann sich als Ergebnis der Änderung in VR von VR_normal auf VR_reduced die Spannung VP, die an dem Versorgungs-Pin 194 bereitgestellt wird, auf VP_reduced ändern. In einer Ausführungsform kann die VP von VP_idle von 0,972 Volt auf 0,932 Volt reduziert werden, wie es oben dargelegt ist, als Reaktion auf eine Änderung in VR von 1 Volt auf 0,96 Volt.
  • In Block 945 kann als Ergebnis der Änderung in VP von VP_idle auf VP_reduced (d. h. von 0,972 Volt auf 0,932 Volt) dem Versorgungs-Pin 194 des Nicht-Kern-Bereichs 150 eine Pin-Spannung von VP_reduced (= 0,932 Volt) bereitgestellt werden. Als Ergebnis eines Senkens des Spannungswerts, der dem Nicht-Kern-Bereich 150 bereitgestellt wird, kann die von dem Nicht-Kern-Bereich 150 verbrauchte Leerlaufenergie auch verringert werden (z. B. von 16,95 Watt auf 14,988 Watt, wodurch eine Energieeinsparung von 1,96 Watt verursacht wird, wie es oben beschrieben ist).
  • In Block 950 kann die PMU 168 ein Austrittsereignis aus einem C-Zustand der Packung des Kerns prüfen und wenn die PMU 168 ein Austrittsereignis aus dem C-Zustand der Packung detektiert, kann die Steuerung zu Block 960 weitergegeben werden. In einer Ausführungsform kann die von der PMU 168 in Block 950 durchgeführte Operation parallel und unabhängig von der Operation in den Blöcken 915 bis 945 durchgeführt werden.
  • In Block 960 kann die PMU 168 die Blöcke 965 bis 990 durchführen, bevor der Kern-Bereich 105 oder irgendein Verarbeitungskern 110 innerhalb des Kern-Bereichs 105 aus dem C-Zustand der Packung austritt, um in einen aktiven Zustand einzutreten. In Block 965 kann die PMU 168 einen zweiten Spannungswert (oben dargelegten SVID oder VID_N) generieren, der dem Spannungsregler 195 bereitgestellt werden soll, der den Nicht-Kern-Bereich 150 des Prozessors 100 versorgt. In einer Ausführungsform kann der SVID oder VID_N einen digitalen Wert (9 Bit-Wert) repräsentieren, basierend auf dem der Spannungsregler 195 eine Referenzspannung VR (= VR_normal) generieren kann. In Block 970 kann die PMU 168 den SVID (oder VID_N) dem Spannungsregler 195 bereitstellen.
  • In Block 975 kann der Spannungsregler 195 die VR von VR_reduced auf die normale Referenzspannung (VR_normal) basierend auf dem SVID-Wert ändern. In einer Ausführungsform kann die VR von einem VR_reduced-Wert von 0,96 Volt auf einen VR_normal-Wert von 1 Volt erhöht werden.
  • In Block 980 kann sich als Ergebnis der Änderung in VR von VR_reduced auf VR_normal die Spannung VP, die an dem Versorgungs-Pin 194 bereitgestellt wird, auf VP_idle ändern. In einer Ausführungsform kann die VP von dem VP_reduced (0,932) Volt auf 0,972 Volt erhöht werden, wie es oben dargelegt ist, als Reaktion auf eine Änderung in VR von 0,96 Volt auf 1 Volt.
  • In Block 990 kann sich der Strom, der durch den Lastwiderstand RL 192 fließt, von ICC_idle (20 Ampere) auf ICC_peak (= 50 Ampere) ändern, als Ergebnis der Änderung in VP von VP_reduced auf VP_idle (d. h. von 0,932 auf 0,972 Volt) und die Änderung des Stroms ICC_idle auf ICC_peak, und die Spannung VP (= 0,93 Volt) kann an dem Versorgungs-Pin 194 des Nicht-Kern-Bereichs 150 bereitgestellt werden.
  • Eine Ausführungsform eines Betriebs des Spannungsreglers 195 unter einer normalen und einer Leerlauf-Bedingung mit und ohne ein Verwenden der oben beschriebenen Energieverwaltungstechnik ist in 10(A), 10(B) und 10(C) dargestellt. In 10(A) kann, während der Nicht-Kern 150 auf einer Spitze arbeitet, die Referenzspannung VR zu VR_normal gleich sein, ICC 193 kann zu ICC_peak gleich sein und die Pin-Spannung VP kann zu VP_idle gleich sein. In einer Ausführungsform kann die VP_idle zu {[VR_normal – (ICC_peak·RL 192)]} gleich sein.
  • Wenn VR_normal = 1 Volt, ICC_peak = 50 Ampere und RL 192 = 1,4 MOhm ist, ist beispielsweise VP_idle = 1 – (50·1,4) = 0,93 V. Wenn der Prozessor 100 mit einer Frequenz F (beispielsweise = 2,53 GhZ) arbeiten soll, die für dieses Teil spezifiziert ist, soll ein minimaler Wert von Spannung (= 0,93 Volt) als VP_idle bereitgestellt werden.
  • Jedoch kann sich, wenn der Kern-Bereich 105 in einem C-Zustand einer Packung ist, wie es in 10(B) gezeigt ist, der Strom ICC 193, der durch den Lastwiderstand RL 192 fließt, auf ICC_idle (beispielsweise = 20 A) ändern, dann ist VP_idle zu [VR_normal – (ICC_idle·RL 192)] gleich, d. h., VP_idle = 1 – (20·1,4) = 0,972 V. Jedoch ist VP_idle mit 0,93 Volt ausreichend, um den Prozessor 100 mit der Frequenz F, die für dieses Teil spezifiziert ist, zu betreiben, und eine Überschussspannung von (VP_idle – minimaler Wert der Spannung = 0,972 – 0,93 = 0,042 Volt) wird dem Nicht-Kern-Bereich 150 bereitgestellt. Die Überschussspannung kann zu einem Überschussverbrauch von mehr Energie führen, als erforderlich ist. Als Ergebnis ist der Energieverbrauch P_normal = dynamische Energie + Verlustenergie, P_normal = Cdyn·V2·f + f(V4), = 5nf·(0,972·0,972)·2,53 GhZ + 5 Watt, = (11,95 + 5) = 16,95 Watt.
  • Um die VP zu reduzieren, muss der VR von VR_normal auf VR_reduced reduziert werden, wie es in 10(C) gezeigt ist. Um VR_uncore zu reduzieren, kann die PMU 168 einen FVID generieren (wie es in Block 915 beschrieben ist) und den FVID (wie es in Block 920 beschrieben ist) dem Spannungsregler 195 bereitstellen. Als Reaktion auf ein Empfangen des FVID kann der Spannungsregler 195 VR auf VR_reduced (beispielsweise = 0,96 Volt) reduzieren. Als Reaktion auf eine Änderung der VR von VR_normal auf VR_reduced wird VP_idle zu VP_reduced (= 0,96 – (20·1,4) = 0,96 – 0,028 = 0,932 Volt). Als Ergebnis ist der Energieverbrauch P_reduced = Cdyn·V2·f + f(V4) = 5nf·(0,932·0,932)·2,53 Ghz + 4 Watt = (10,988 + 4) = 14,988 Watt. Deshalb ist die eingesparte Energie = P_normal – P_reduced = 16,95 – 14,988 = 1,96 Watt.
  • Graphen 1100, 1140 und 1160 stellen den Effekt des Nicht-Kern-Bereichs 150 als Reaktion darauf dar, dass der Kern-Bereich 105 in einen tiefen Energiesparzustand eintritt (C-Zustand der Packung), was in 11(a), 11(b) bzw. 11(c) abgebildet ist. In einer Ausführungsform weist der Graph aus 11(a) eine X-Achse 1101, die die Zeit repräsentiert, und eine Y-Achse 1102 auf, die den Strom (ICC 193) repräsentiert. In einer Ausführungsform kann der ICC 193 zu ICC_peak 1106 (beispielsweise = 50 Ampere) gleich sein, bevor der Kern-Bereich 105 in einen C-Zustand der Packung eintritt, wie es durch eine Region vor einem Eintrittspunkt 1105 angegeben ist. Beim Eintrittspunkt 1105 kann der Kern-Bereich 105 damit beginnen, in den C-Zustand der Packung einzutreten, und als Reaktion auf das Eintrittsereignis an dem Punkt 1105 kann sich der Strom ICC 193 von ICC_peak auf ICC_idle (= 20 Ampere) an einem Punkt 1108 ändern und die ICC_idle-Ebene kann durch den ICC_idle 1107 angegeben sein. In einer Ausführungsform kann sich der ICC 193 an dem Austrittspunkt 1109 von ICC_idle 1107 auf ICC_peak 1106 ändern und das Austrittsereignis des Kern-Bereichs 105 kann zum Zeitpunkt 1110 abgeschlossen sein. In einer Ausführungsform kann der Zeitunterschied zwischen den Punkten 1108 und 1105 die Gesamtlatenz repräsentieren und der Zeitunterschied zwischen den Punkten 1109 und 1110 kann die Austrittslatenz repräsentieren.
  • 11(b) stellt eine Veränderung der Referenzspannung VR und der Pin-Spannung VP als Reaktion auf eine Änderung des Stroms von ICC_peak 1106 auf ICC_idle 1107 und von dem ICC_idle 1107 zurück zu ICC_peak 1106 dar. In einer Ausführungsform weist der Graph aus 11(b) eine X-Achse 1111, die die Zeit repräsentiert, und eine Y-Achse 1112 auf, die die Spannung (VR und VP) repräsentiert. Vor dem Eintrittspunkt 1105 kann die Spannungsreferenz VR und VP jeweils zu VR_normal 1113 und VP_idle oder VP_normal 1115 gleich sein. Nach dem Austrittspunkt 1109 kann die Spannungsreferenz VR und VP jeweils zu VR_normal 1113 und VP_idle 1115 gleich sein. Als Reaktion auf das Auftreten des Eintrittsereignisses an Punkt 1105 kann der Spannungsregler 195 einen FVID (oder VID_R) empfangen und die Referenzspannung VR kann sich von VR_normal 1113 (beispielsweise = 1 Volt) auf VR_reduced 1114 (beispielsweise = 0,96 Volt) ändern. Als Reaktion auf eine Änderung der Referenzspannung VR von VR_normal 1113 auf VR_reduced 1114 kann sich die Spannung VP des Pins an dem Versorgungs-Pin 194 von VP_idle 1115 (beispielsweise = 0,972 Volt) auf VP_reduced 1116 (beispielsweise = 0,932 Volt) verringern. In einer Ausführungsform können die Referenzspannung VR und die Pin-Spannung VP bei VR_reduced 1114 bzw. VP_reduced 1116 zwischen den Zeitpunkten 1108 und 1109 verbleiben, die die Zeitdauer repräsentieren können, in der der Kern-Bereich 105 in dem tiefen Energiesparzustand verbleibt.
  • 11(c) stellt eine Veränderung der als Reaktion auf eine Änderung der Pin-Spannung VP von VP_idle 1115 auf VP_reduced 1116 verbrauchten Energie dar. In einer Ausführungsform weist der Graph aus 11(c) eine X-Achse 1121, die die Zeit repräsentiert, und eine Y-Achse 1122 auf, die die verbrauchte Energie repräsentiert. Vor dem Eintrittspunkt 1105 kann die Energie verbraucht Leerlauf zu Normale Energie verbraucht 1123 gleich sein (beispielsweise = 16,95 Watt). Nach dem Austrittspunkt 1109 kann die Energie verbraucht_Leerlauf wieder die vorhergehende Ebene Normale Energie verbraucht 1123 erreichen. In einer Ausführungsform kann als Reaktion darauf, dass der Kern-Bereich 105 in den C-Zustand der Packung eintritt, die von dem Nicht-Kern-Bereich 150 verbrauchte Energie auf Reduzierte Energie verbraucht 1124 verringert werden (beispielsweise = 14,988 Watt). Da sich die Pin-Spannung VP von VP_idle 1115 auf VP_reduced 1116 verringert, kann sich in einer Ausführungsform die von dem Nicht-Kern-Bereich 150 verbrauchte Energie ebenfalls verringern, da die von dem Nicht-Kern-Bereich 150 verbrauchte Energie zu dem Quadrat der Pin-Spannung, die an dem Versorgungs-Pin 164 bereitgestellt wird, proportional sein kann. In einer Ausführungsform kann die Menge der eingesparten Energie gleich (Energie verbraucht_Leerlauf – Reduzierte Energie verbraucht) = (16,95 – 14,988) = 1,95 Volt sein.
  • Bezug nehmend auf 12 kann ein Computersystem 1200 einen Allzweckprozessor 1202 aufweisen, aufweisend einen Single Instruction Multiple Data(SIMD)-Prozessor und eine Graphikprozessoreinheit (GPU) 1205. Der Prozessor 1202 kann in einer Ausführungsform erweiterte Operationen zusätzlich zum Durchführen verschiedener weiterer Aufgaben durchführen oder eine Sequenz von Befehlen speichern, um erweiterte Operationen auf einem maschinenlesbaren Speichermedium oder Datenträger 1225 bereitzustellen. Jedoch kann die Sequenz von Befehlen ebenfalls in dem Speicher 1220 oder auf irgendeinem anderen geeigneten Speichermedium gespeichert sein.
  • Während eine separate Grafikprozessoreinheit 1205 in 12 abgebildet ist, kann als ein weiteres Beispiel in einigen Ausführungsformen die Grafikprozessoreinheit verwendet werden, um die erweiterten Operationen durchzuführen. Der Prozessor 1202, der das Computersystem 1200 betreibt, kann einer oder mehrere Prozessorkerne sein, die an eine Logik 1230 gekoppelt sind. Die Logik 1230 kann an eine oder mehrere I/O-Vorrichtungen 1260 gekoppelt sein, die eine Schnittstelle des Computersystems 1200 bereitstellen können. Die Logik 1230 könnte z. B. in einer Ausführungsform eine Chipsatzlogik sein. Die Logik 1230 ist an den Speicher 1220 gekoppelt, der ein beliebiger Typ eines Speichers sein kann, aufweisend optischer, magnetischer oder Halbleiterspeicher. Die Grafikprozessoreinheit 1205 ist durch einen Frame-Puffer an eine Anzeige 1240 gekoppelt.
  • In einer Ausführungsform kann der Prozessor 1202 einen Kern-Bereich 1203 und einen Nicht-Kern-Bereich 1204 aufweisen. In einer Ausführungsform kann die von dem Kern-Bereich 1203 des Prozessors 1202 verbrauchte Energie durch Kontrollieren der Cdyn des Prozessors 1202 kontrolliert werden. In einer Ausführungsform kann die Cdyn derart kontrolliert werden, dass die Cdyn innerhalb eines zulässigen Cdyn-Werts ist, unabhängig von der Anwendung (oder dem Code), die (der) von dem Kern-Bereich 1203 verarbeitet wird. In einer Ausführungsform kann die Energieverwaltungstechnik ein Messen eines digitalen Aktivitätsfaktors (DAF), ein Überwachen von architektonischen und Datenaktivitätsebenen und ein Kontrollieren eines Energieverbrauchs durch Drosseln der Befehle basierend auf den Aktivitätsebenen aufweisen, wie es oben beschrieben ist. Als Ergebnis des Drosselns der Befehle basierend auf den Aktivitätsebenen (oder Cdyn_actual) kann das Drosseln in unterschiedlichen Zeitdomänen implementiert sein, wie z. B. 3. Auslenkung oder Droop (1 Mikrosekunde) und Thermal-Designpunkt (TDP) (1 Millisekunde), wodurch Langzeit- (d. h. TDP) und Kurzzeit- (d. h. 3. Auslenkung) Operationen in die Lage versetzt werden, den Energieverbrauch in dem Kern-Bereich des Prozessors zu kontrollieren. In einer Ausführungsform kann ein solcher Ansatz eine feingranulare Energieverwaltungstechnik und eine Fähigkeit bereitstellen, Boost-Modi zu erzeugen, die den Code kontrollieren, während der Code verarbeitet wird, im Vergleich zu Boost-Modi, die auf den Code, der verarbeitet wird, reagieren können.
  • In einer Ausführungsform kann die von dem Nicht-Kern-Bereich 1204 verbrauchte Leerlauf-Energie (d. h. die von dem Nicht-Kern-Bereich verbrauchte Energie, während der Kern-Bereich in einem tiefen Energiesparzustand ist, wie z. B. ein C-Zustand einer Packung) durch Verändern der Spannung (d. h. Referenzspannung VR) reduziert werden, die dem Nicht-Kern-Bereich 1204 bereitgestellt wird. In einer Ausführungsform kann der Ausgang eines Spannungsreglers 1206 an einen Versorgungs-Pin des Nicht-Kern-Bereichs 1204 durch einen Lastwiderstand gekoppelt sein. Die Referenzspannung VR und somit die Pin-Spannung (VP) an dem Versorgungs-Pin des Nicht-Kern-Bereichs 1204 kann verringert werden, während der Kern-Bereich in einem tiefen C-Zustand der Packung ist. In einer Ausführungsform kann die Referenzspannung VR derart reduziert werden, dass sich die VP_idle auf einen Wert reduziert, der leicht höher als die VPmin (oder VP_peak) ist. Als Ergebnis kann die Referenzspannung (VR) verändert werden, um die von dem Nicht-Kern-Bereich 1204 verbrauchte Leerlauf-Energie einzusparen oder zu reduzieren.
  • Bestimmte Merkmale der Erfindung wurden mit Bezug auf beispielhafte Ausführungsformen beschrieben. Die Beschreibung ist jedoch nicht dazu bestimmt, in einem beschränkenden Sinn ausgelegt zu werden. Verschiedene Modifikationen der beispielhaften Ausführungsformen sowie andere Ausführungsformen der Erfindung, die dem einschlägigen Fachmann klar sind, auf den sich die Erfindung bezieht, gelten als innerhalb des Geistes und des Umfangs der Erfindung liegend.

Claims (30)

  1. Prozessor, der Folgendes umfasst: einen Nicht-Kern-Bereich, wobei der Nicht-Kern-Bereich eine Energieverwaltungseinheit und einen Spannungsregler umfasst, wobei der Spannungsregler eingerichtet ist, eine regulierte Spannung (VR) dem Nicht-Kern-Bereich bereitzustellen, und einen Kern-Bereich, wobei der Kern-Bereich eine Vielzahl von funktionalen Blöcken, eine Vielzahl von Sensoren, eine Aktivitätsakkumulationslogik, eine Drosselungslogik und eine Drossel aufweist, wobei die Vielzahl von Sensoren eingerichtet ist, eine Vielzahl von Aktivitätsebenen von der Vielzahl von funktionalen Blöcken zu sammeln und die Vielzahl von Aktivitätsebenen der Aktivitätsakkumulationslogik bereitzustellen, wobei die Aktivitätsakkumulationslogik eingerichtet ist, einen akkumulierten Aktivitätswert zu generieren und die akkumulierte Aktivitätsebene der Drosselungslogik bereitzustellen, wobei die Drosselungslogik eingerichtet ist, ein Signal zu generieren, das eine Drosselebene angibt, die basierend auf einem Vergleich des akkumulierten Aktivitätswerts mit einem Zielwert anzupassen ist, wobei die Drossel eingerichtet ist, die Befehle, die den Ausführeinheiten bereitgestellt werden, basierend auf der Drosselebene zu drosseln.
  2. Prozessor nach Anspruch 1, wobei die Vielzahl von Sensoren in einem oder mehreren Ports der Vielzahl von funktionalen Einheiten bereitgestellt werden, um eine Datenaktivität und architektonische Aktivität der Vielzahl von funktionalen Einheiten abzufühlen oder abzutasten.
  3. Prozessor nach Anspruch 1, wobei die Drosselungslogik eingerichtet ist, einen derzeitigen dynamischen Kapazitätswert basierend auf einer Datenmusterbeobachtung und dem akkumulierten Aktivitätswert zu bestimmen.
  4. Prozessor nach Anspruch 4, wobei die Drosselungslogik eingerichtet ist, den derzeitigen dynamischen Kapazitäts(Cdyn)-Wert auf einen Energie-Score-Wert zu kalibrieren.
  5. Prozessor nach Anspruch 4, wobei die Drosselungslogik eingerichtet ist, den Energie-Score-Wert mit einem Zielwert zu vergleichen, der von der Energieverwaltungseinheit bereitgestellt wird, wobei der Zielwert basierend auf einem zulässigen dynamischen Kapazitätswert bestimmt ist.
  6. Prozessor nach Anspruch 3, wobei die Drosselungslogik eingerichtet ist, das Signal zu generieren, das ein Erhöhen der Drosselebene angibt, wenn der Energie-Score-Wert größer als der Zielwert ist.
  7. Prozessor nach Anspruch 6, wobei die Drossel eingerichtet ist, einen Befehlsdurchsatz als Reaktion auf ein Empfangen des Signals zu verringern, das das Erhöhen der Drosselebene angibt, wobei das Verringern des Befehlsdurchsatzes die derzeitige dynamische Kapazität unterhalb der zulässigen dynamischen Kapazität halten soll.
  8. Prozessor nach Anspruch 3, wobei die Drosselungslogik eingerichtet ist, das Signal zu generieren, das das Verringern der Drosselebene angibt, wenn der Energie-Score-Wert kleiner als der Zielwert ist.
  9. Prozessor nach Anspruch 8, wobei die Drossel eingerichtet ist, den Befehlsdurchsatz als Reaktion auf ein Empfangen des Signals zu erhöhen, das das Verringern der Drosselebene angibt.
  10. Prozessor, der einen Kern-Bereich und einen Nicht-Kern-Bereich umfasst, wobei der Nicht-Kern-Bereich eine Energieverwaltungseinheit und einen Spannungsregler umfasst, wobei der Spannungsregler eingerichtet ist, eine regulierte Spannung (VR) dem Nicht-Kern-Bereich bereitzustellen, wobei die Energieverwaltungseinheit eingerichtet ist, ein Ereignis zu detektieren, basierend auf dem der Kern-Bereich in einen tiefen Energiesparzustand eintreten soll und als Reaktion einen ersten Spannungswert dem Spannungsregler bereitstellen soll, wobei der Spannungsregler eingerichtet ist, die regulierte Spannung (VR) von einem normalen Referenzspannungswert auf einen reduzierten Referenzspannungswert basierend auf dem ersten Spannungswert zu verringern, wobei das Verringern der regulierten Spannung (VR) eine Reduktion eines Pin-Spannungswerts verursacht, der an einem Versorgungs-Pin des Nicht-Kern-Bereichs bereitgestellt ist, wobei die Reduktion des Pin-Spannungswerts eine von dem Nicht-Kern-Bereich verbrauchte Energie verringern soll, wobei der Pin-Spannungswert auf eine Ebene verringert wird, die ausreichend ist, um einen minimalen Pin-Spannungswert zu halten, um den Prozessor mit einem spezifischen Frequenzwert zu betreiben.
  11. Prozessor nach Anspruch 10, wobei der Nicht-Kern-Bereich eingerichtet ist, eine reduzierte Menge von Energie zu verbrauchen, bis der Kern-Bereich in dem tiefen Energiesparzustand ist.
  12. Prozessor nach Anspruch 11, wobei die dem Kern-Bereich bereitgestellte Spannung im Wesentlichen abgeschnitten ist, während der Kern-Bereich in dem tiefen Energiesparzustand arbeitet und eine von den Kern-Bereich in den Nicht-Kern-Bereich injizierte Aktivität im Wesentlichen niedrig ist.
  13. Prozessor nach Anspruch 10, wobei die Energiekontrolleinheit eingerichtet ist, einen zweiten Spannungswert zu generieren, als Reaktion auf ein Detektieren eines Austrittsereignisses, durch den der Kern-Bereich aus dem tiefen Energiesparzustand austritt, und den zweiten Spannungswert dem Spannungsregler bereitzustellen.
  14. Prozessor nach Anspruch 13, wobei der Spannungsregler eingerichtet ist, die Referenzspannung (VR) von dem reduzierten Referenzspannungswert auf den normalen Referenzspannungswert als Reaktion auf ein Empfangen des zweiten Spannungswerts zu erhöhen.
  15. Prozessor nach Anspruch 14, wobei die Erhöhung der Referenzspannung auf den normalen Referenzspannungswert mindestens den minimalen Spannungswert an dem Versorgungs-Pin des Nicht-Kern-Bereichs bereitstellen soll, um den Prozessor in die Lage zu versetzen, mit dem spezifizierten Frequenzwert betrieben zu werden.
  16. Verfahren in einem Kern-Bereich eines Prozessors, das folgende Schritte umfasst: Sammeln von Aktivitätsebenen aus einer Vielzahl von funktionalen Blöcken unter Verwendung einer Vielzahl von Sensoren und Bereitstellen der Vielzahl von Aktivitätsebenen einer Aktivitätsakkumulationslogik, Generieren eines akkumulierten Aktivitätswerts basierend auf der Vielzahl von Aktivitätsebenen in einer akkumulierten Aktivitätslogik, Generieren eines Signals, das angibt, dass eine Drosselebene angepasst werden soll basierend auf einem Vergleich des akkumulierten Aktivitätswerts unter Verwendung einer Drosselungslogik, und Drosseln von Befehlen, die Ausführeinheiten bereitgestellt werden, basierend auf der Drosselebene, die durch das Signal bereitgestellt wird, wobei der Prozessor einen Kern-Bereich umfasst, der die Vielzahl von funktionalen Blöcken, die Vielzahl von Sensoren, die Aktivitätsakkumulationslogik, die Drosselungslogik und die Drossel aufweist.
  17. Verfahren nach Anspruch 16, das ein Bereitstellen der Vielzahl von Sensoren in einem oder mehreren Ports der Vielzahl von funktionalen Einheiten umfasst, um eine Datenaktivität und eine architektonische Aktivität der Vielzahl von funktionalen Einheiten abzufühlen oder abzutasten.
  18. Verfahren nach Anspruch 16, das ein Bestimmen eines derzeitigen dynamischen Kapazitätswerts basierend auf einer Datenmusterbeobachtung und dem akkumulierten Aktivitätswert in der Drosselungslogik umfasst.
  19. Verfahren nach Anspruch 18, das ein Kalibrieren des derzeitigen dynamischen Kapazitäts(Cdyn)-Werts auf einen Energie-Score-Wert in der Drosselungslogik umfasst.
  20. Verfahren nach Anspruch 18, das ein Vergleichen des Energie-Score-Werts mit dem Zielwert umfasst, der von einer Energieverwaltungseinheit in der Drosselungslogik bereitgestellt wird, wobei der Zielwert basierend auf einem zulässigen dynamischen Kapazitätswert bestimmt wird.
  21. Verfahren nach Anspruch 18, das ein Generieren des Signals in der Drosselungslogik umfasst, wobei das Signal ein Erhöhen der Drosselebene angibt, wenn der Energie-Score-Wert größer als der Zielwert ist.
  22. Verfahren nach Anspruch 21, das ein Verringern eines Befehlsdurchsatzes in einer Drossel umfasst, als Reaktion auf ein Empfangen des Signals, das das Erhöhen der Drosselebene angibt, wobei das Verringern des Befehlsdurchsatzes die derzeitige dynamische Kapazität unterhalb der zulässigen dynamischen Kapazität halten soll.
  23. Verfahren nach Anspruch 18, das ein Generieren des Signals in der Drosselungslogik umfasst, wobei das Signal ein Verringern der Drosselebene angibt, wenn der Energie-Score-Wert kleiner als der Zielwert ist.
  24. Verfahren nach Anspruch 23, das ein Erhöhen des Befehlsdurchsatzes in der Drossel, als Reaktion auf ein Empfangen des Signals, das das Verringern der Drosselebene angibt, umfasst.
  25. Verfahren in einem Nicht-Kern-Bereich eines Prozessors, das folgende Schritte umfasst: Detektieren eines Eintrittsereignisses, basierend auf dem ein Kern-Bereich in einen tiefen Energiesparzustand eintritt, wobei das Eintrittsereignis unter Verwendung einer Energieverwaltungseinheit detektiert wird, Bereitstellen eines ersten Spannungswerts einem Spannungsregler, wobei der erste Spannungswert unter Verwendung der Energieverwaltungseinheit generiert wird, Verringern einer regulierten Spannung von einem normalen Referenzspannungswert auf einen reduzierten Referenzspannungswert basierend auf dem ersten Spannungswert und Bereitstellen der reduzierten Referenzspannung dem Nicht-Kern-Bereich, wobei das Verringern der regulierten Spannung (VR) eine Reduktion eines Pin-Spannungswerts verursacht, der an einem Versorgungs-Pin des Nicht-Kern-Bereichs bereitgestellt wird, wobei die Reduktion des Pin-Spannungswerts eine von dem Nicht-Kern-Bereich verbrauchte Energie verringern soll, wobei der Nicht-Kern-Bereich an den Kern-Bereich gekoppelt ist, wobei der Nicht-Kern-Bereich die Energieverwaltungseinheit und einen Spannungsregler aufweist.
  26. Verfahren nach Anspruch 25, das ein Bestimmen des ersten Spannungswerts umfasst, der den Pin-Spannungswert auf eine Ebene verringern soll, die ausreichend ist, um einen minimalen Pin-Spannungswert zu halten, um den Prozessor mit einem spezifizierten Frequenzwert zu betreiben.
  27. Verfahren nach Anspruch 26, wobei der Nicht-Kern-Bereich eingerichtet ist, eine reduzierte Menge von Energie zu verbrauchen, bis der Kern-Bereich in dem tiefen Energiesparzustand ist.
  28. Verfahren nach Anspruch 27, wobei eine von dem Kern-Bereich in den Nicht-Kern Bereich injizierte Aktivität im Wesentlichen niedrig ist, während der Kern-Bereich in dem tiefen Energiesparzustand betrieben wird.
  29. Verfahren nach Anspruch 26, das folgende Schritte umfasst: Generieren eines zweiten Spannungswerts als Reaktion auf ein Detektieren eines Austrittsereignisses, durch das der Kern-Bereich aus dem tiefen Energiesparzustand austritt, und Bereitstellen des zweiten Spannungswert dem Spannungsregler.
  30. Verfahren nach Anspruch 28, das ein Erhöhen der Referenzspannung (VR) von dem reduzierten Referenzspannungswert auf den normalen Referenzspannungswert als Reaktion auf ein Empfangen des zweiten Spannungswerts umfasst.
DE112012001358.1T 2011-03-21 2012-03-19 Verwalten von Energieverbrauch in einem Mehrfachkernprozessor Expired - Fee Related DE112012001358B4 (de)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
IN773/DEL/2011 2011-03-21
IN773DE2011 2011-03-21
ININ-773/DEL/2011 2011-03-21
US13/422,476 US9069555B2 (en) 2011-03-21 2012-03-16 Managing power consumption in a multi-core processor
USUS-13/422,476 2012-03-16
US13/422,476 2012-03-16
PCT/US2012/029604 WO2012129147A2 (en) 2011-03-21 2012-03-19 Managing power consumption in a multi-core processor

Publications (2)

Publication Number Publication Date
DE112012001358T5 true DE112012001358T5 (de) 2013-12-24
DE112012001358B4 DE112012001358B4 (de) 2016-08-18

Family

ID=54187870

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012001358.1T Expired - Fee Related DE112012001358B4 (de) 2011-03-21 2012-03-19 Verwalten von Energieverbrauch in einem Mehrfachkernprozessor

Country Status (8)

Country Link
US (2) US9069555B2 (de)
JP (2) JP2014514641A (de)
KR (2) KR101515318B1 (de)
CN (1) CN103492976B (de)
DE (1) DE112012001358B4 (de)
GB (1) GB2503367B (de)
TW (1) TWI628537B (de)
WO (1) WO2012129147A2 (de)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9069555B2 (en) 2011-03-21 2015-06-30 Intel Corporation Managing power consumption in a multi-core processor
US9594412B2 (en) * 2012-03-30 2017-03-14 Intel Corporation Controlling power gate circuitry based on dynamic capacitance of a circuit
WO2013162523A1 (en) * 2012-04-24 2013-10-31 Intel Corporation Dynamic interrupt reconfiguration for effective power management
US9218045B2 (en) * 2012-06-30 2015-12-22 Intel Corporation Operating processor element based on maximum sustainable dynamic capacitance associated with the processor
US9183144B2 (en) 2012-12-14 2015-11-10 Intel Corporation Power gating a portion of a cache memory
US9075556B2 (en) 2012-12-21 2015-07-07 Intel Corporation Controlling configurable peak performance limits of a processor
US9335813B2 (en) * 2013-05-28 2016-05-10 Intel Corporation Method and system for run-time reallocation of leakage current and dynamic power supply current
US9250910B2 (en) * 2013-09-27 2016-02-02 Intel Corporation Current change mitigation policy for limiting voltage droop in graphics logic
KR20150050135A (ko) 2013-10-31 2015-05-08 삼성전자주식회사 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법
US9514715B2 (en) * 2013-12-23 2016-12-06 Intel Corporation Graphics voltage reduction for load line optimization
US10108454B2 (en) * 2014-03-21 2018-10-23 Intel Corporation Managing dynamic capacitance using code scheduling
US9874927B2 (en) * 2014-06-26 2018-01-23 Intel Corporation Method and apparatus for precision CPU maximum power detection
US9864551B2 (en) * 2014-08-29 2018-01-09 Hewlett Packard Enterprise Development Lp Determining throughput based on system busy level
US10339023B2 (en) 2014-09-25 2019-07-02 Intel Corporation Cache-aware adaptive thread scheduling and migration
US9477243B2 (en) 2014-12-22 2016-10-25 Intel Corporation System maximum current protection
CN107077180B (zh) * 2014-12-23 2021-11-19 英特尔公司 基于功率状态而调整电压调节器
US9880601B2 (en) 2014-12-24 2018-01-30 Intel Corporation Method and apparatus to control a link power state
US10234930B2 (en) 2015-02-13 2019-03-19 Intel Corporation Performing power management in a multicore processor
US9910481B2 (en) * 2015-02-13 2018-03-06 Intel Corporation Performing power management in a multicore processor
US9760160B2 (en) * 2015-05-27 2017-09-12 Intel Corporation Controlling performance states of processing engines of a processor
KR20170000625A (ko) 2015-06-24 2017-01-03 에스케이하이닉스 주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
US9710041B2 (en) * 2015-07-29 2017-07-18 Intel Corporation Masking a power state of a core of a processor
US9952651B2 (en) 2015-07-31 2018-04-24 International Business Machines Corporation Deterministic current based frequency optimization of processor chip
US9568982B1 (en) 2015-07-31 2017-02-14 International Business Machines Corporation Management of core power state transition in a microprocessor
US9874917B2 (en) 2016-01-04 2018-01-23 International Business Machines Corporation Adaptive power capping in a chip
US9971390B1 (en) 2016-01-05 2018-05-15 Apple Inc. Processor energy consumption rate limiting system
US10048738B2 (en) * 2016-03-03 2018-08-14 Intel Corporation Hierarchical autonomous capacitance management
US10209726B2 (en) * 2016-06-10 2019-02-19 Microsoft Technology Licensing, Llc Secure input voltage adjustment in processing devices
US10268255B2 (en) * 2016-06-29 2019-04-23 Intel Corporation Management of system current constraints with current limits for individual engines
US10423206B2 (en) * 2016-08-31 2019-09-24 Intel Corporation Processor to pre-empt voltage ramps for exit latency reductions
US10234920B2 (en) 2016-08-31 2019-03-19 Intel Corporation Controlling current consumption of a processor based at least in part on platform capacitance
US10423209B2 (en) 2017-02-13 2019-09-24 Apple Inc. Systems and methods for coherent power management
KR20180098904A (ko) 2017-02-27 2018-09-05 삼성전자주식회사 컴퓨팅 장치 및 컴퓨팅 장치에 포함된 복수의 코어들에 전력을 할당하는 방법
US10290289B2 (en) * 2017-04-01 2019-05-14 Intel Corporation Adaptive multibit bus for energy optimization
US10481014B2 (en) * 2017-06-15 2019-11-19 Micron Technology, Inc. Adaptive throttling
US10565079B2 (en) 2017-09-28 2020-02-18 Intel Corporation Determination of idle power state
US10627883B2 (en) * 2018-02-28 2020-04-21 Advanced Micro Devices, Inc. Onboard monitoring of voltage levels and droop events
US10969858B2 (en) 2019-01-03 2021-04-06 Apple Inc. Operation processing controlled according to difference in current consumption
US11054882B2 (en) 2019-02-21 2021-07-06 Apple Inc. Externally-triggered throttling
US10921872B2 (en) 2019-03-29 2021-02-16 Intel Corporation Performing soft throttling and hard throttling in a processor
US11079825B2 (en) * 2019-08-13 2021-08-03 Intel Corporation Compiler guided power allocation in computing devices
KR102372213B1 (ko) 2019-09-09 2022-03-08 한국화학연구원 히알루론산 또는 그의 염 및 폴리페놀 화합물을 포함하는 수분해성 필름
US11416056B2 (en) 2020-09-18 2022-08-16 Apple Inc. Power sense correction for power budget estimator
WO2022236782A1 (zh) * 2021-05-13 2022-11-17 华为技术有限公司 一种功耗调节方法及装置
US11989077B2 (en) * 2021-12-06 2024-05-21 Mediatek Inc. Maximum current suppression for power management in a multi-core system

Family Cites Families (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5163153A (en) 1989-06-12 1992-11-10 Grid Systems Corporation Low-power, standby mode computer
US5522087A (en) 1994-03-22 1996-05-28 Verifone Inc. System for selectively operating in different modes depending upon receiving signal from a host computer within a time window upon power up
US5590341A (en) 1994-09-30 1996-12-31 Intel Corporation Method and apparatus for reducing power consumption in a computer system using ready delay
US5621250A (en) 1995-07-31 1997-04-15 Ford Motor Company Wake-up interface and method for awakening an automotive electronics module
US6029006A (en) * 1996-12-23 2000-02-22 Motorola, Inc. Data processor with circuit for regulating instruction throughput while powered and method of operation
US5931950A (en) 1997-06-17 1999-08-03 Pc-Tel, Inc. Wake-up-on-ring power conservation for host signal processing communication system
US6823516B1 (en) 1999-08-10 2004-11-23 Intel Corporation System and method for dynamically adjusting to CPU performance changes
US6564328B1 (en) * 1999-12-23 2003-05-13 Intel Corporation Microprocessor with digital power throttle
US7010708B2 (en) 2002-05-15 2006-03-07 Broadcom Corporation Method and apparatus for adaptive CPU power management
US7539885B2 (en) 2000-01-13 2009-05-26 Broadcom Corporation Method and apparatus for adaptive CPU power management
JP2001318742A (ja) 2000-05-08 2001-11-16 Mitsubishi Electric Corp コンピュータシステムおよびコンピュータ読み取り可能な記録媒体
KR100361340B1 (ko) 2000-05-15 2002-12-05 엘지전자 주식회사 씨피유 클럭 제어 방법
US6792392B1 (en) 2000-06-30 2004-09-14 Intel Corporation Method and apparatus for configuring and collecting performance counter data
US6636976B1 (en) * 2000-06-30 2003-10-21 Intel Corporation Mechanism to control di/dt for a microprocessor
JP2002033457A (ja) 2000-07-18 2002-01-31 Hitachi Ltd 半導体集積回路装置
US6748546B1 (en) 2000-09-26 2004-06-08 Sun Microsystems, Inc. Method and apparatus for reducing power consumption
US6829713B2 (en) 2000-12-30 2004-12-07 Intel Corporation CPU power management based on utilization with lowest performance mode at the mid-utilization range
US7058824B2 (en) 2001-06-15 2006-06-06 Microsoft Corporation Method and system for using idle threads to adaptively throttle a computer
US20030061383A1 (en) 2001-09-25 2003-03-27 Zilka Anthony M. Predicting processor inactivity for a controlled transition of power states
US7111179B1 (en) 2001-10-11 2006-09-19 In-Hand Electronics, Inc. Method and apparatus for optimizing performance and battery life of electronic devices based on system and application parameters
US20030126477A1 (en) * 2001-12-28 2003-07-03 Zhang Kevin X. Method and apparatus for controlling a supply voltage to a processor
US7281140B2 (en) 2001-12-28 2007-10-09 Intel Corporation Digital throttle for multiple operating points
US7096145B2 (en) * 2002-01-02 2006-08-22 Intel Corporation Deterministic power-estimation for thermal control
US6996728B2 (en) 2002-04-26 2006-02-07 Hewlett-Packard Development Company, L.P. Managing power consumption based on utilization statistics
US7051227B2 (en) 2002-09-30 2006-05-23 Intel Corporation Method and apparatus for reducing clock frequency during low workload periods
US6898689B2 (en) 2002-11-15 2005-05-24 Silicon Labs Cp, Inc. Paging scheme for a microcontroller for extending available register space
US7043649B2 (en) 2002-11-20 2006-05-09 Portalplayer, Inc. System clock power management for chips with multiple processing modules
US6971033B2 (en) 2003-01-10 2005-11-29 Broadcom Corporation Method and apparatus for improving bus master performance
CN1759368A (zh) 2003-01-23 2006-04-12 罗切斯特大学 多时钟域微处理器
JP4061492B2 (ja) 2003-02-10 2008-03-19 ソニー株式会社 情報処理装置および消費電力制御方法
US7093147B2 (en) 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
TW591372B (en) * 2003-05-15 2004-06-11 High Tech Comp Corp Power control method of portable electronic device, portable electronic device and electronic system
US20050046400A1 (en) * 2003-05-21 2005-03-03 Efraim Rotem Controlling operation of a voltage supply according to the activity of a multi-core integrated circuit component or of multiple IC components
US7272732B2 (en) 2003-06-30 2007-09-18 Hewlett-Packard Development Company, L.P. Controlling power consumption of at least one computer system
TW200502847A (en) 2003-07-08 2005-01-16 Benq Corp Control device and method for reducing number of interrupts in a processor
US7146514B2 (en) 2003-07-23 2006-12-05 Intel Corporation Determining target operating frequencies for a multiprocessor system
US7272730B1 (en) 2003-07-31 2007-09-18 Hewlett-Packard Development Company, L.P. Application-driven method and apparatus for limiting power consumption in a processor-controlled hardware platform
US7194643B2 (en) 2003-09-29 2007-03-20 Intel Corporation Apparatus and method for an energy efficient clustered micro-architecture
US7770034B2 (en) 2003-12-16 2010-08-03 Intel Corporation Performance monitoring based dynamic voltage and frequency scaling
US7451333B2 (en) 2004-09-03 2008-11-11 Intel Corporation Coordinating idle state transitions in multi-core processors
US20070156992A1 (en) 2005-12-30 2007-07-05 Intel Corporation Method and system for optimizing latency of dynamic memory sizing
US9001801B2 (en) 2004-09-07 2015-04-07 Broadcom Corporation Method and system for low power mode management for complex Bluetooth devices
US7941585B2 (en) 2004-09-10 2011-05-10 Cavium Networks, Inc. Local scratchpad and data caching system
US7426648B2 (en) 2004-09-30 2008-09-16 Intel Corporation Global and pseudo power state management for multiple processing elements
US7434073B2 (en) 2004-11-29 2008-10-07 Intel Corporation Frequency and voltage scaling architecture
US7502948B2 (en) 2004-12-30 2009-03-10 Intel Corporation Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores
US8041967B2 (en) 2005-02-15 2011-10-18 Hewlett-Packard Development Company, L.P. System and method for controlling power to resources based on historical utilization data
JP4555140B2 (ja) * 2005-04-22 2010-09-29 株式会社日立製作所 複合型計算機装置およびその管理方法
US7454632B2 (en) 2005-06-16 2008-11-18 Intel Corporation Reducing computing system power through idle synchronization
US7430673B2 (en) 2005-06-30 2008-09-30 Intel Corporation Power management system for computing platform
US8301868B2 (en) 2005-09-23 2012-10-30 Intel Corporation System to profile and optimize user software in a managed run-time environment
US20070079294A1 (en) 2005-09-30 2007-04-05 Robert Knight Profiling using a user-level control mechanism
US20070106827A1 (en) 2005-11-08 2007-05-10 Boatright Bryan D Centralized interrupt controller
US7634678B2 (en) * 2006-02-07 2009-12-15 Omx Technology Ab Application software initiated speedup
US20070245163A1 (en) 2006-03-03 2007-10-18 Yung-Hsiang Lu Power management in computer operating systems
US7397703B2 (en) 2006-03-21 2008-07-08 Freescale Semiconductor, Inc. Non-volatile memory with controlled program/erase
US7437270B2 (en) 2006-03-30 2008-10-14 Intel Corporation Performance state management
US7752468B2 (en) 2006-06-06 2010-07-06 Intel Corporation Predict computing platform memory power utilization
US7529956B2 (en) 2006-07-17 2009-05-05 Microsoft Corporation Granular reduction in power consumption
US7930564B2 (en) 2006-07-31 2011-04-19 Intel Corporation System and method for controlling processor low power states
US7673160B2 (en) 2006-10-19 2010-03-02 International Business Machines Corporation System and method of power management for computer processor systems
US7949887B2 (en) 2006-11-01 2011-05-24 Intel Corporation Independent power control of processing cores
US7793125B2 (en) * 2007-01-10 2010-09-07 International Business Machines Corporation Method and apparatus for power throttling a processor in an information handling system
US7730340B2 (en) 2007-02-16 2010-06-01 Intel Corporation Method and apparatus for dynamic voltage and frequency scaling
TWI388974B (zh) * 2007-03-01 2013-03-11 Via Tech Inc 根據工作溫度的變化來動態改變功率損耗的微處理器及方法
US8510581B2 (en) 2007-03-26 2013-08-13 Freescale Semiconductor, Inc. Anticipation of power on of a mobile device
US7900069B2 (en) * 2007-03-29 2011-03-01 Intel Corporation Dynamic power reduction
JP2008257578A (ja) 2007-04-06 2008-10-23 Toshiba Corp 情報処理装置、スケジューラおよび情報処理置のスケジュール制御方法
US7870407B2 (en) * 2007-05-18 2011-01-11 Advanced Micro Devices, Inc. Dynamic processor power management device and method thereof
US7971074B2 (en) 2007-06-28 2011-06-28 Intel Corporation Method, system, and apparatus for a core activity detector to facilitate dynamic power management in a distributed system
US20090150696A1 (en) 2007-12-10 2009-06-11 Justin Song Transitioning a processor package to a low power state
US8024590B2 (en) 2007-12-10 2011-09-20 Intel Corporation Predicting future power level states for processor cores
US7966506B2 (en) 2007-12-12 2011-06-21 Intel Corporation Saving power in a computer system
US8442697B2 (en) 2007-12-18 2013-05-14 Packet Digital Method and apparatus for on-demand power management
KR101459140B1 (ko) 2007-12-26 2014-11-07 엘지전자 주식회사 전원관리 제어 장치 및 방법
US7949889B2 (en) * 2008-01-07 2011-05-24 Apple Inc. Forced idle of a data processing system
US8977790B2 (en) * 2008-02-15 2015-03-10 Freescale Semiconductor, Inc. Peripheral module register access methods and apparatus
US8156362B2 (en) 2008-03-11 2012-04-10 Globalfoundries Inc. Hardware monitoring and decision making for transitioning in and out of low-power state
US8010822B2 (en) * 2008-03-28 2011-08-30 Microsoft Corporation Power-aware thread scheduling and dynamic use of processors
US8028181B2 (en) 2008-09-19 2011-09-27 Intel Corporation Processor power consumption control and voltage drop via micro-architectural bandwidth throttling
US8386807B2 (en) 2008-09-30 2013-02-26 Intel Corporation Power management for processing unit
US8402290B2 (en) 2008-10-31 2013-03-19 Intel Corporation Power management for multiple processor cores
US8954977B2 (en) 2008-12-09 2015-02-10 Intel Corporation Software-based thread remapping for power savings
US8219831B2 (en) * 2009-01-28 2012-07-10 Oracle America, Inc. Reducing temperature and power by instruction throttling at decode stage of processor pipeline in time constant duration steps
US8700943B2 (en) 2009-12-22 2014-04-15 Intel Corporation Controlling time stamp counter (TSC) offsets for mulitple cores and threads
US8356194B2 (en) * 2010-01-28 2013-01-15 Cavium, Inc. Method and apparatus for estimating overshoot power after estimating power of executing events
US8943334B2 (en) 2010-09-23 2015-01-27 Intel Corporation Providing per core voltage and frequency control
US9069555B2 (en) 2011-03-21 2015-06-30 Intel Corporation Managing power consumption in a multi-core processor
US8949637B2 (en) 2011-03-24 2015-02-03 Intel Corporation Obtaining power profile information with low overhead

Also Published As

Publication number Publication date
KR101591811B1 (ko) 2016-02-05
US20120254643A1 (en) 2012-10-04
JP5985708B2 (ja) 2016-09-06
US9075614B2 (en) 2015-07-07
GB2503367A (en) 2013-12-25
WO2012129147A2 (en) 2012-09-27
DE112012001358B4 (de) 2016-08-18
KR101515318B1 (ko) 2015-04-24
US20130232368A1 (en) 2013-09-05
US9069555B2 (en) 2015-06-30
JP2014514641A (ja) 2014-06-19
KR20130124575A (ko) 2013-11-14
JP2015165434A (ja) 2015-09-17
KR20150016614A (ko) 2015-02-12
WO2012129147A3 (en) 2013-03-14
TW201303573A (zh) 2013-01-16
TWI628537B (zh) 2018-07-01
GB2503367B (en) 2020-10-21
CN103492976B (zh) 2017-11-07
CN103492976A (zh) 2014-01-01
GB201316089D0 (en) 2013-10-23

Similar Documents

Publication Publication Date Title
DE112012001358B4 (de) Verwalten von Energieverbrauch in einem Mehrfachkernprozessor
DE102014001914B4 (de) Dynamische Steuerung einer maximalen Betriebsspannung für einen Prozessor
DE112018007545T5 (de) Energiesteuerungsarbitration
DE112011103193B4 (de) Bereitstellung einer Pro-Kern-Spannungs-und Frequenzsteuerung
DE102009051387A1 (de) Power Management für Mehrprozessorkerne
DE102010054337B4 (de) Mechanismen, um ineffizientes Core-Hopping zu vermeiden und Hardware-unterstützte Auswahl eines Niedrigleitungszustands bereitzustellen
DE102007048505B4 (de) Server, konfiguriert zum Verwalten von Leistung und Betriebsverhalten
DE102010045743B4 (de) Verfahren und Vorrichtung, um Turboleistung für das Event-Handling zu verbessern
DE112012002664B4 (de) Erhöhen der Energieeffizienz des Turbo-Modus-Betriebs in einem Prozessor
DE102005037635B4 (de) Hardwaresteuerung für den Wechsel des Betriebsmodus eines Speichers
DE112017008096T5 (de) Stromsteuerung einer verarbeitungseinheit
DE10339500A1 (de) System und Verfahren zum Implementieren einer integrierten Schaltung mit einer dynamisch variablen Leistungsgrenze
DE112018000372B4 (de) Systeme und verfahren für eine kohärente energieverwaltung
DE202012008539U1 (de) Dynamisches Zuordnen eines Leistungsbudgets über mehrere Domänen eines Prozessors
DE112008002594T5 (de) Systeme und Verfahren für eine Spannungsregulatorkommunikation
DE202008018394U1 (de) Wenigstens teilweise auf einem Leistungszustand eines integrierten Schaltkreises basierende Versorgungsspannungssteuerung
DE60129423T2 (de) Verfahren und vorrichtung zur steuerung von prozessorenergie und prozessorleistung für einzelphasenregelkreisprozessorsysteme
DE102015211561A1 (de) Leistungsverfolgungsanschluss zum Verfolgen von Zuständen von Leistungsdomänen
DE112017001772T5 (de) Systeme, Verfahren und Vorrrichtungen zur Verwendung eines thermischen Spielraums eines Kerns in einem Prozessor
DE102015102689A1 (de) Steuern von Flankensteilheiten eines Prozessors auf der Basis eines Batterieladezustands
DE102021117226A1 (de) Konfigurierbarer reduzierter speicherstart
DE102019118631A1 (de) Speichervorrichtung, welche eine Wartungsarbeit unabhängig ohne Befehl des Host initiiert, und elektronisches System mit derselben
EP3356910B1 (de) Entwurf eines power-bewussten stromnetz
DE102023101325A1 (de) Systeme, vorrichtungen und verfahren zur leistungsverwaltung und leistungsschätzung
DE102019124194A1 (de) Elektronische schaltung zum steuern von leistung

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
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee