-
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.
-
US 7,281,140 offenbart einen Prozessor, der eine digitale Drossel zum Überwachen der Aktivität verschiedener Einheiten der Befehlsausführungspipeline des Prozessors umfasst. Die überwachte Aktivität wird entsprechend dem momentanen Betriebspunkt des Prozessors skaliert und aus der skalierten Aktivität wird ein Leistungszustand bestimmt. Wenn der Leistungszustand eine erste Schwelle erreicht, wird der Betriebspunkt des Prozessors eingestellt und ein neuer Skalierungsfaktor wird gewählt, um den Leistungszustand zu bestimmen.
-
Es ist die Aufgabe der vorliegenden Erfindung, einen Prozessor mit einer verbesserten Energieverwaltungstechnik sowie ein entsprechendes Verfahren bereitzustellen. Die Aufgabe wird gelöst durch einen Prozessor mit den Merkmalen gemäß dem Hauptanspruch sowie ein Verfahren mit den Merkmalen gemäß Anspruch 9.
-
Ausführungsformen der Erfindung sind in den Unteransprüchen angegeben.
-
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.