DE112017001772T5 - Systeme, Verfahren und Vorrrichtungen zur Verwendung eines thermischen Spielraums eines Kerns in einem Prozessor - Google Patents

Systeme, Verfahren und Vorrrichtungen zur Verwendung eines thermischen Spielraums eines Kerns in einem Prozessor Download PDF

Info

Publication number
DE112017001772T5
DE112017001772T5 DE112017001772.6T DE112017001772T DE112017001772T5 DE 112017001772 T5 DE112017001772 T5 DE 112017001772T5 DE 112017001772 T DE112017001772 T DE 112017001772T DE 112017001772 T5 DE112017001772 T5 DE 112017001772T5
Authority
DE
Germany
Prior art keywords
core
temperature
thermal
power
calculating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112017001772.6T
Other languages
English (en)
Inventor
Daniel G. Cartagena
Corey D. Gough
Vivek Garg
Nikhil Gupta
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 DE112017001772T5 publication Critical patent/DE112017001772T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)

Abstract

Eine dynamische Anpassung von Kernleistung kann einen thermischen Spielraum zwischen einer thermischen Sollleistung (TDP) und einer zulässigen thermischen Last reduzieren. Zum Beispiel kann, durch ausdrückliches direktes Fokussieren auf die Kerntemperaturen, eine Temperatursteuerung pro Kern mit geschlossenem Regelkreis (pCLTC) durch die Leistungsniveau-1-Richtlinie (PL1, eine Richtlinie, die Frequenz und/oder Leistung für den Prozessor unter anhaltender Last definiert) induzierten Konservatismus entfernen, wodurch eine erhöhte Prozessorperformanz ermöglicht wird, wenn ein Spielraum in dem thermischen System vorhanden ist.

Description

  • Technisches Gebiet
  • Die vorliegende Offenbarung betrifft die Leistungssteuerung in Prozessoren und insbesondere die dynamische Anpassung von Kernleistung zum Reduzieren des thermischen Spielraums zwischen einer thermischen Sollleistung (TDP) und einer zulässigen thermischen Last.
  • Figurenliste
    • 1 zeigt ein schematisches Diagramm, das eine mit hierin offenbarten Ausführungsformen übereinstimmende thermische Auslegung eines Prozessors darstellt.
    • 2 zeigt einen Graphen, der Prozessoren zeigt, begrenzt auf eine mit hierin offenbarten Ausführungsformen übereinstimmende TDP.
    • 3 zeigt einen Graphen, der den thermischen Spielraum von Prozessoren zeigt, wenn diese auf eine mit hierin offenbarten Ausführungsformen übereinstimmende TDP beschränkt sind.
    • 4 zeigt ein Diagramm, das Komponenten einer mit hierin offenbarten Ausführungsformen übereinstimmenden Steuerungsimplementierung darstellt.
    • 5 zeigt ein Blockdiagramm, das ein mit hierin offenbarten Ausführungsformen übereinstimmendes Verfahren für dynamische Temperatursteuerung darstellt.
    • 6 zeigt ein Diagramm, das einen mit hierin offenbarten Ausführungsformen übereinstimmenden Mehrkernprozessor darstellt.
    • 7 zeigt ein Diagramm, das ein mit hierin offenbarten Ausführungsformen übereinstimmendes Computersystem darstellt.
    • 8 zeigt ein Diagramm, das eine Repräsentation für Simulation, Emulation und Fertigung einer mit hierin offenbarten Ausführungsformen übereinstimmenden Auslegung darstellt.
  • Ausführliche Beschreibung
  • Nachstehend wird eine ausführliche Beschreibung von mit Ausführungsformen der vorliegenden Offenbarung übereinstimmenden Systemen und Verfahren bereitgestellt. Während mehrere Ausführungsformen beschrieben werden, versteht es sich, dass die Offenbarung nicht auf eine beliebige Ausführungsform beschränkt ist, sondern stattdessen zahlreiche Alternativen, Abwandlungen und Äquivalente umschließt. Zusätzlich können, während zahlreiche spezifische Einzelheiten in der nachstehenden Beschreibung angeführt werden, um ein gründliches Verständnis der hierin offenbarten Ausführungsformen bereitzustellen, einige Ausführungsform ohne einige oder sämtliche dieser Einzelheiten praktiziert werden. Zudem wurde, der Klarheit halber, bestimmtes technisches Material, das im zugehörigen Fachgebiet bekannt ist, nicht ausführlich beschrieben, um unnötiges Undeutlichmachen der Offenbarung zu vermeiden.
  • Techniken, Geräte und Verfahren werden offenbart, die dynamische Anpassung von Kernleistung zum Reduzieren des thermischen Spielraums zwischen der thermischen Sollleistung (TDP) und einer zulässigen thermischen Last ermöglichen. Zum Beispiel kann, durch ausdrückliches direktes Fokussieren auf die Kerntemperaturen, eine Temperatursteuerung pro Kern mit geschlossenem Regelkreis (pCLTC) durch die Leistungsniveau-1-Richtlinie (PL1, eine Richtlinie, die Frequenz und/oder Leistung für den Prozessor unter anhaltender Last definiert) induzierten Konservatismus entfernen, wodurch eine erhöhte Prozessorperformanz ermöglicht wird, wenn ein Spielraum in dem thermischen System vorhanden ist.
  • In einer Ausführungsform ist eine Aufgabe einer pCLTC-Richtlinie, ein Leistungsbudget derart zu berechnen, dass die Prozessortemperatur an einer gewünschten Vorgabewert-Temperatur (Tsp) ist, die geringfügig unter einer Temperatur ist, bei der ein Prozessor gedrosselt wird (T_trip). Auf diese Weise wird eine maximal zulässige Prozessorleistung definiert.
  • Durch Migrieren von PL1 zu dynamischer Temperatursteuerung können Benutzer von Zentralverarbeitungseinheiten (CPU) von einer erhöhten Performanz unter einer großen Vielfalt von Bedingungen, die allgemein vorhanden sind, Nutzen ziehen (z. B. Temperaturen niedriger als die TDP, abweichende thermische Verlustleistung des Kerns usw.). Außerdem kann pCLTC Kunden, die willens sind, thermische Systeme oder Datenzentren mit verbesserten Kühlfähigkeiten auszulegen (oder diese bereits installiert haben), gestatten, direkte Performanzvorteile aus derartigen Investitionen zu erlangen.
  • Einige Server-Kunden, einschließlich von Anbietern von Cloud-Diensten, können hinsichtlich von Erwartungen der maximalen Performanz sensibel sein. Dabei ist eine Turbofunktionen (oder Betreiben eines Prozessors über einer TDP-stabilen Dauerzustand-Frequenz) ein hoch geschätztes Merkmal. Die Turbo-Performanz kann jedoch durch bestehende thermische Schutzfunktionen, die die im Turbobetrieb verbrachte Zeit basierend auf Leistungs- anstelle von Temperaturmessungen begrenzen, unnötigerweise begrenzt sein.
  • In einigen Ausführungsformen sind CPUs durch Zuverlässigkeitsbeschränkungen maximaler Spannung, maximalen Stroms und maximaler Temperatur begrenzt. Spannungsbeschränkungen können durch Sicherungseinstellungen gehandhabt werden. Strombeschränkungen können durch eine in Leistungssteuerung-Firmware, -Hardware und/oder -Software (z. B. pcode) implementierte Iccmax-Richtlinie gehandhabt werden. In einigen Ausführungsformen können Server-Prozessoren Einhaltung maximaler Temperaturbeschränkungen durch eine Kombination thermischer Einstellungen (z. B. PROCHOT) und von PL1-Richtlinieninerkmalen beibehalten. Die Definitionen dieser Merkmale (PROCHOT und PL1) werden nachstehend beschrieben.
  • Als ein Beispiel von PROCHOT wird, wenn der Prozessor die maximal zulässige Sperrschichttemperatur übersteigt, gesagt, dass ein katastrophales thermisches Ereignis eingetreten ist, und ein in pcode implementiertes PROCHOT-Merkmal kann Spannung und Frequenz eines Prozessors aggressiv auf eine Leistungseinstellung (Pm) drosseln. Dies kann ein im höchsten Maße unerwünschtes Ereignis sein, da es eine drastische Performanzeinbuße auferlegen kann. Die Temperatur, bei der sich PROCHOT durchsetzt, wird hierin als T_trip bezeichnet.
  • Als ein Beispiel von PL1 sind thermische Lösungen der Plattform auf eine TDP-Spezifikation der Prozessorleistung ausgelegt. Bei einer spezifizierten maximalen lokalen Umgebungstemperatur wird eine thermische Referenzlösung ausreichend Kühlung bereitstellen, so dass, wenn die CPU-Leistung lange Zeitperioden bei TDP gehalten wird, die CPU-Temperatur bei T_TDP sein wird, die unter T_trip (die die Sperrschichttemperatur ist, die PROCHOT aktivieren würde) ist.
  • PL1 erreicht implizit Einhaltung der Temperaturbeschränkung durch Aufrechterhalten einer durchschnittlichen Leistung zur TDP durch dynamische Spannungs- und Frequenzskalierung (DVFS). Dadurch kann die Performanz im Fokus bleiben, da niedrigere Spannungen/Frequenzen unnötigerweise ausgewählt werden (z. B. wenn eine Umgebungstemperatur niedriger ist als die TDP-Auslegung usw.). Eine Temperatursteuerung pro Kern mit geschlossenem Regelkreis (pCLTC) kann den PL1-Regelkreis ersetzen und eine explizite Temperatursteuerung bereitstellen. Die explizite Temperatursteuerung kann einen Spielraum im thermischen System (z. B. zwischen der TDP und der tatsächlichen Temperatur) nutzen, um eine größere zulässige Performanz über Arbeitslasten als nur PL1 bereitzustellen. Durch wirksamen Einsatz von linearer Systemtheorie und dynamischer Modellierung kann die Steuerung mit geschlossenem Regelkreis auf zusätzliche Performanzergebnisse abgestimmt werden und Konservatismus weiter minimieren.
  • Eine etwas verwandte Technologie, RATL (laufende gemittelte Temperaturgrenze), wird jedoch nicht verwendet, das maximal zulässige momentane Leistungsbudget zu definieren. Stattdessen wird RATL verwendet, eine maximale Temperatur der alternativen momentanen zulässigen Temperatur (Tjmax) zu definieren. RATL wird verwendet, zu verändern, bei welcher Tjmax der Prozessor drosselt. RATL gestattet, dass die Sperrschichttemperatur (Tj) Tjmax über kurze Dauern übersteigt, solange das mit dem exponentiell gewichteten beweglichen Mittel (EWMA) berechnete Tj_average unter Tj_max ist.
  • 1 zeigt eine thermische Auslegung eines Prozessors einschließlich von thermischen Verhältnissen. Ein Substrat 118 ist an ein Siliciumplättchen 116 und einen integrierten Wärmeverteiler 114 gekoppelt. Ein Kühlkörper 112 ist an den integrierten Wärmeverteiler 114 gekoppelt. Eine Sperrschichttemperatur (Tj) 110 wird an der Grenze zwischen dem Siliciumplättchen 116 und dem integrierten Wärmeverteiler 114 gemessen. Eine Gehäusetemperatur (Tcase) 108 wird an dem integrierten Wärmeverteiler 114 gemessen. Eine Umgebungstemperatur (TLA) 102 wird an oder nahe dem Kühlkörper 112 gemessen. Der thermische Widerstand von Gehäuse zu Umgebung (PSI_CA) 104 quantifiziert den thermischen Widerstand eines Referenzkühlkörpers. Der thermische Widerstand von Sperrschicht zu Gehäuse (PSI_JC) 106 quantifiziert einen thermischen Widerstand von dem Siliciumplättchen 116 zum Kühlkörper 112.
  • Zur Darstellung, wie der thermische Spielraum sich selbst in Systemen präsentiert, werden relevante thermische Verhältnisse des Dauerzustands dargestellt: T _ T D P = ( P _ T D P P S I _ J C ) + T _ c a s e _ m a x
    Figure DE112017001772T5_0001
  • T_TDP ist eine Dauerzustand-Sperrschichttemperatur (°C) unter Dauerzustand-TDP-Bedingungen (wie durch die maximale Temperatur über das Plättchen gemessen). P_TDP ist eine spezifizierte thermische Sollleistung des Bausteinprozessors (in Watt). PSI_JC 106 ist ein thermischer Widerstand von Sperrschicht zu Gehäuse (°C/Watt). T_case_max ist eine maximale Temperatur an der Mitte der Oberseite des integrierten Wärmeverteilers des Prozessorbausteins (d. h. unter Dauerzustand-TDP). T _ c a s e _ m a x = ( P _ T D P P S I _ C A ) + T _ L A _ m a x
    Figure DE112017001772T5_0002
  • PSI_CA 104 ist ein thermischer Widerstand von Gehäuse zu Umgebung (°C/Watt), der den thermischen Widerstand des Referenzkühlkörpers quantifiziert. T_LA_max ist eine spezifizierte maximale lokale Umgebungstemperatur (in °C).
  • In einigen Ausführungsformen wird der erforderliche PSI_CA 104 Erstausrüstern (OEMs) zum Auslegen von Kühlkörpern spezifiziert. Durch diese Spezifikation kann die anhaltende TDP-Leistung so ausgelegt werden, dass sie keine thermische Auslösung verursacht. Unter den vorstehenden Annahmen wird eine folgende Beziehung beibehalten: T _ T D P < T _ T r i p
    Figure DE112017001772T5_0003
  • Da dem Prozessor gestattet wird, bei Turbofrequenzen zu laufen, die mehr Leistung als TDP verbrauchen, kann PL1 verwendet werden, zu gewährleisten, dass die mittlere Prozessorleistung über einen relativ langen Zeitraum (z. B. fünf Sekunden) gleich TDP ist. Bei dieser Auslegung kann der Prozessor in Fällen, in denen eine thermische Lösung fehlschlägt, T_trip übersteigen.
  • Während PL1 gewährleisten kann, dass Gleichung 3 unter den spezifizierten Bedingungen hält, kann sie auch beträchtlichen Konservatismus (z. B. thermischen Spielraum) auferlegen. Ein Spielraum zwischen T_TDP und T_trip kann unter jeder der folgenden Bedingungen (oder Kombinationen davon) beträchtlich sein: (1) die lokale Umgebungstemperatur ist unter T_LA_max; (2) PSI_CA ist kleiner als spezifiziert (eine bessere thermische Lösung als die Referenzauslegung); (3) PSI_JC ist kleiner als spezifiziert aufgrund einer weniger aggressiven arbeitslastspezifischen Leistungskarte, als in Gleichung 2 angenommen; und (4) die Temperatur eines gegebenen Kerns ist geringer als die Bausteintemperatur.
  • Die 2 und 3 zeigen ein grafisches Beispiel eines Prozessors, der eine Arbeitslast ausführt, wobei PL1 die Performanz auf TDP-Niveaus begrenzt (2), während die maximale Temperatur unter den Temperaturgrenzen bleibt (3). Dieser thermische Spielraum repräsentiert Performanzmöglichkeiten für die CPU. In 2 laufen eine erste Kernleistung 202 und eine zweite Kernleistung 204 nahe der TDP, wie durch PL1 beschränkt. Dies stellt einen thermischen Spielraum 306 bereit, wie in 3 dargestellt. Die Temperatur eines Kerns 304 ist unter einer Temperaturgrenze 302 (z. B. T_trip).
  • Wenn zum Beispiel die Temperatur eines Kerns niedriger ist als die Bausteintemperatur (z. B. Nummer 4 von oben), sind thermische Gradienten über das Plättchen vorhanden. Infolgedessen kann jeder Kern eine verschiedene Temperatur aufweisen. Selbst wenn ein gegebener Kern nahe dem Auslösungspunkt ist, können andere Kerne einen thermischen Spielraum von dem Auslösungspunkt aufweisen. Dabei ist eine Möglichkeit bei Implementierung auf einer Basis pro Kern größer.
  • Eine pCLTC-Richtlinie kann implementiert werden, in Übereinstimmung mit existierenden Leistungsverwaltungsrichtlinien zu arbeiten. Zum Beispiel kann pCLTC ein maximal zulässiges Leistungsbudget zur Auswahl des p-Zustands bereitstellen, aber der tatsächliche p-Zustand kann nach Vergleichen mit anderen PM-Richtlinien (z. B. Hardware-Leistungsverwaltung (HWPM)) ausgewählt werden.
  • Es gibt Systeme, die einen maximalen p-Zustandswert bestimmen können. Zum Beispiel kann ein Algorithmus des laufenden Mittels, wie für PL1 verwendet, auf eine maximale Baustein-Tj angewandt werden. Es ist jedoch nicht bekannt, welche Performanzgarantien ein derartiges System bereitstellen würde (d. h. welchen Temperaturfehler es gestatten würde). Eine Performanz mit geschlossenem Regelkreis kann eine Differenz zwischen T_sp und T_trip einstellen (z. B. 1 Grad, 2 Grad). Je kleiner die Differenz zwischen einem Vorgabewert einer dynamischen Temperatursteuerung (DTC) und einem Auslösungspunkt ist, desto mehr zusätzliche Performanz ist möglich.
  • Eine Methodologie zum Erreichen einer pCLTC kann durch Entwickeln einer Steuerung basierend auf einem dynamischen Modell und Methodologien zum Berechnen der Performanz in einem geschlossenen Regelkreis und Schätzen, wie nicht modellierte Dynamik die Performanz verschlechtern kann, gefunden werden. Zum Beispiel kann die Auslegung der Steuerung durch die nachstehenden Abläufe entwickelt werden. Ein Modell für die thermische Dynamik kann zwischen der Leistung und Temperatur eines Kerns entwickelt werden. Annahmen können gemacht werden, die Unsicherheit in das thermische Modell einführen (z. B. Umgebungstemperatur, konvektive Kühlung, Abflusstemperatur usw.). Basierend auf dem thermischen Modell kann eine Steuerung (z. B. PID) entworfen werden. Die Performanz der Steuerung kann über eine Vielfalt von Arbeitslast- und Umgebungsbedingungen (z. B. Simulation, empirische Experimente usw.), die explizit modelliert sein können oder nicht, validiert werden. Die Auslegung des thermischen Modells und der Steuerung können erforderlichenfalls überarbeitet werden, um Performanz zu erreichen, durch Eingehen auf unbekannte Unsicherheiten in dem Modell (z. B. variierende Veränderungen der Umgebungstemperatur; durch Veränderungen der Lüfterdrehzahl induzierter variierender konvektiver Wärmetransfer; nichtlineare Kernabflussleistung; und/oder thermische Kopplung von Kern zu Kern). Ein/e fortgeschrittene/s Modell/Steuerung kann entwickelt werden, um auf Unsicherheiten einzugehen, die die DTC-Performanz unter einer gewünschten Performanz begrenzen können.
  • Zum Beispiel kann eine Steuerung (wie für einen integrierten Chip) konstruiert werden, wie in 4 dargestellt. Ein Vorgabewert 402 (wie der Temperaturvorgabewert T_node_sp) kann in die Steuerung eingegeben werden (wie durch eine Leistungsschnittstelle, die einen p-Zustand bereitstellt). Der Vorgabewert 402 und eine Differenz können in Block 404 verglichen werden. Eine Steuerung 406 (wie eine MIMO-Steuerung, PID-Steuerung, PD-Steuerung, PI-Steuerung usw.) kann Kerntemperaturen und -spannungen empfangen. Kernspannungsgrenzen können in Block 408 implementiert werden. Block 410 kann den Eingang der Grenzen empfangen und einer Kernleistung basierend auf der Spannung schätzen. Block 412 kann den Ausgang der Spannung-zu-Leistung-Stufen 410 und einen Aktivitätsverhältnis-Störungswert 418 nehmen. Eine Abflussleistung 421 kann mit dem Produkt von Block 412 (die dynamische Leistung repräsentiert) summiert werden. Die Summe von Block 413 kann verwendet werden, Leistung in Temperatur in Block 414 umzuwandeln. Dieser Temperaturausgang von Block 414 kann geschätzt und mit einer Nennleistung 420 in Block 422 kombiniert werden. Der Ausgang von Block 422 kann durch das System verwendet werden, die tatsächliche Temperatur 416 einzustellen und zu messen (wie durch eine Messungsschnittstelle).
  • Zum Beispiel wird, gegeben das Vorhandensein von thermischer Kopplung zwischen Kernen, eine Steuerung mit mehreren Eingängen und mehreren Ausgängen Vorteile gegenüber entkoppelten (separaten) Steuerungen mit einem Eingang und einem Ausgang (z. B. PID) bereitstellen. Das System kann außerdem Unsicherheiten, die adressiert werden können, verhindern, wie spannungs- und temperaturabhängige Abflussleistung und/oder Arbeitslast-Aktivitätsverhältnis.
  • In der dargestellten Ausführungsform ist ein Format einer MIMO-Steuerung im statischen Raumformat: x ˙ = A x + B u
    Figure DE112017001772T5_0004
    y = C x + D u
    Figure DE112017001772T5_0005
    wobei X die Kerntemperatur(en) ist, U ein Kerntemperaturfehler ist und Y Kernspannung(en) ist.
  • In einer Ausführungsform kann die Steuerung im p-Code unter Verwendung des folgenden Pseudocodes implementiert werden. Der folgende Code kann bei jeder Schleifeniteration des p-Codes ausgeführt werden. Der Einfachheit halber wird die Struktur einer PI-Steuerung angenommen. Die an einen Variablennamen angehängte „1" dient zur Kennzeichnung von „Kern1“ und würde für alle Kerne auf dem Plättchen repliziert werden.
  • Berechnen der Zeit seit der letzten Abtast-/Steuerungsaktualisierung. Setzen des Kennzeichnungsbits, wenn außerhalb der Toleranz.
  • Berechnen des Temperaturfehlers für jeden Kern basierend auf der folgenden Gleichung: e r r o r 1 = s e t p o i n t t 1
    Figure DE112017001772T5_0006
  • Berechnen des Fehlerintegrals über ein endliches Abtastzeitfenster.
  • Erforderlichenfalls, um einen Integratorüberlauf zu verhindern, Begrenzen der Integrationssumme auf ein im Voraus bestimmtes Maximum.
  • Berechnen des Steuerungsausgangs. Zum Beispiel: P c o n t r o l 1 = K p e r r o r 1 + K i i n t e g r a l s u m 1
    Figure DE112017001772T5_0007
  • Berechnen einer Schätzung des temperaturabhängigen Abflusses unter Annahme einer nomimalen (konservativen) Annahme von Spannung und gemessener Temperatur. Das folgende Verhältnis kann verwendet werden: P l e a k = V 1 I o 1   e x p ( u 1 ( V r e f V ) ) e x p ( u 2 ( T r e f T ) )
    Figure DE112017001772T5_0008
  • Berechnen einer Schätzung des Aktivitätsverhältnisses (AR) basierend auf einem Mittel vorheriger Abtastungen. Der Abfluss und die dynamische Leistung der vorherigen Abtastungen kann verwendet werden. P d y n 1 = P t o t a l 1 P l e a k 1
    Figure DE112017001772T5_0009
    A R = ( C d y n V 1 2 F r e q 1 ) P d y n 1
    Figure DE112017001772T5_0010
  • Berechnen der assoziierten p-Zustandsspannung für die verbleibende dynamische Leistung unter Annahme des oben berechneten Aktivitätsverhältnisses.
  • Auswählen des assoziierten p-Zustands aus der Spannungsberechnung.
  • Es sollte anerkannt werden, dass die hier beschriebenen Operationen außerhalb der Reihenfolge, parallel, in der Reihenfolge usw. durchgeführt werden können. Beispiele von Ausführungsformen werden gegeben, die die Operationen der Übersichtlichkeit halber in einer Reihenfolge beschreiben können. Andere Reihenfolgen können jedoch möglich sein.
  • 5 zeigt ein Blockdiagramm, das ein Verfahren 500 für dynamische Temperatursteuerung darstellt. Das Verfahren 500 kann durch Systeme einschließlich derjenigen in Verbindung mit den 1, 4, 6 und 7 beschriebenen erreicht werden. Zum Beispiel kann in Block 502 eine Leistungseinheit eine Temperatur des Kerns messen. In Block 504 kann die Leistungseinheit eine zulässige thermische Last bestimmen. In Block 506 kann die Leistungseinheit einen temperaturabhängigen Abfluss bestimmen. In Block 508 kann die Leistungseinheit eine verfügbare Leistung basierend mindestens teilweise auf einem Aktivitätsverhältnis, dem temperaturabhängigen Abfluss und der gesamten verfügbaren Leistung berechnen. In Block 510 kann die Leistungseinheit eine p-Zustandsspannung basierend mindestens teilweise auf der verfügbaren Leistung bestimmen. In Block 512 kann die Leistungseinheit den p-Zustand für den Kern auswählen.
  • Der Begriff „Schaltungen“, wie hierin verwendet, kann sich auf eine anwendungsspezifische Schaltung (ASIC), eine elektronische Schaltung, einen Prozessor (geteilt, dediziert oder Gruppe) und/oder einen Speicher (geteilt, dediziert oder Gruppe), der ein oder mehrere Software- oder Firmwareprogramme ausführt, eine Schaltung kombinatorischer Logik und/oder geeignete Hardwarekomponenten, die die beschriebene Funktionalität bereitstellen, beziehen, davon Teil sein oder diese enthalten. In einigen Ausführungsformen können die Schaltungen in einem oder mehreren Software- oder Firmwaremodulen implementiert sein oder können mit den Schaltungen assoziierte Funktionen dadurch implementiert sein. In einigen Ausführungsformen können Schaltungen Logik enthalten, die mindestens teilweise in Hardware funktionsfähig ist.
  • In dieser Offenbarung verweist eine mit Bindestrich versehen Form einer Bezugszahl durchgängig auf eine spezifische Instanz eines Elements und verweist die Form ohne Bindestrich der Bezugszahl allgemein oder kollektiv auf das Element. Demgemäß verweist Ding 12-1 auf eine Instanz einer Dingklasse, auf die kollektiv als Dinge 12 verwiesen werden kann, und auf jedes eine davon kann allgemein als ein Ding 12 verwiesen werden.
  • 6 zeigt einen Mehrkernprozessor, verwendet in Verbindung mit mindestens einer Ausführungsform. In mindestens einer Ausführungsform enthält ein Prozessor eine Kernregion 620 und einen Nichtkern 622. In einigen Ausführungsformen enthält die Kernregion 620 mehrere Verarbeitungskerne 602, aber offenbarte Funktionalität kann auf Einkernprozessoren in einem Mehrkernprozessorsystem anwendbar sein. In einigen Ausführungsformen enthält der Prozessor 601 einen ersten Verarbeitungskern 602-1, einen zweiten Verarbeitungskern 602-2 und so weiter bis zu einem n-ten Verarbeitungskern 602-n.
  • In einigen Ausführungsformen enthalten die Verarbeitungskerne 602 Teilelemente oder Cluster, die verschiedene Aspekte der gesamten Funktionalität bereitstellen. In einigen Ausführungsformen enthalten die Verarbeitungskerne 602 eine Eingangsstufe 604, eine Ausführungspipeline 606 und eine Kernperipherie 628. Die Kernperipherie 628 kann einen Datenzwischenspeicher der ersten Ebene (L1) 608, einen C6-Speicher 630 und eine fortgeschrittene programmierbare Unterbrechungssteuerung (APIC) 632 enthalten. In mindestens einer Ausführungsform ist die Eingangsstufe 604 funktionsfähig, Anweisungen aus einem Anweisungszwischenspeicher (nicht dargestellt) zu holen und die geholten Anweisungen für Ausführung zu terminieren. In einigen Ausführungsformen decodiert die Ausführungspipeline 606 verschiedene mathematische, logische, Speicherzugriffs- und Ablaufsteuerungsanweisungen in Verbindung mit einer Registerdatei (nicht dargestellt) und dem L1-Datenzwischenspeicher 608 und führt diese durch. Demgemäß kann die Eingangsstufe 604 in einigen Ausführungsformen verantwortlich sein, zu gewährleisten, dass ein stetiger Strom von Anweisungen der Ausführungspipeline 606 zugeführt wird, während die Ausführungspipeline 606 verantwortlich sein kann, Anweisungen auszuführen und die Ergebnisse zu verarbeiten. In einigen Ausführungsformen kann die Ausführungspipeline 606 zwei oder mehrere arithmetische Pipelines parallel, zwei oder mehrere Speicherzugriffs- oder Lade-/Speicherungspipelines parallel und zwei oder mehr Ablaufsteuerungs- oder Verzweigungspipelines enthalten. In mindestens einer Ausführungsform können die Ausführungspipelines 606 fernen eine oder mehrere Fließkommapipelines enthalten. In einigen Ausführungsformen können die Ausführungspipelines 606 Register und logische Betriebsmittel zum Ausführen von Anweisungen außerhalb der Reihenfolge, spekulativen Ausführen von Anweisungen oder beide enthalten. Ein Hyperthreadkern ist ein Kern, der imstande ist, zwei oder mehr Anweisungen parallel auszuführen. Jede Ausführungspipeline 606 eines Kerns wird als ein Hyperthread bezeichnet. Ein Hyperthread kann einem Betriebssystem als ein logischer Kern exponiert werden.
  • Die Kernperipherie 628 kann Logik enthalten, die die Eingangsstufe 604 und die Ausführungspipeline 606 unterstützt, einschließlich der Verwaltung von Speicherung und Unterbrechungen. Die Kernperipherie 628 kann den L1-Datenzwischenspeicher 608, den C6-Speicher 630 und die fortgeschrittene programmierbare Unterbrechungssteuerung (APIC) 632 enthalten. Der C6-Speicher 630 kann einen Kontext (oder Zustand) des Verarbeitungskerns 602 speichern, wenn der Verarbeitungskern 602 in einen Zustand niedriger Leistung (wie ein C6-Zustand) übergeht. Eine periphere Steuerung (z. B. APIC 632) kann Unterbrechungen für den Verarbeitungskern 602 verwalten, einschließlich des Identifizierens, welche Unterbrechungen auf den assoziierten Verarbeitungskern 602 anwendbar sind, und des Verwaltens einer APIC-ID, die zum Identifizieren eines assoziierten Kerns verwendet werden kann.
  • In mindestens einer Ausführungsform versucht die Ausführungspipeline 606 während der Ausführung von Speicherzugriffsanweisungen, die Anweisungen durch Zugreifen auf eine Kopie der anwendbaren Speicheradresse, die im Zwischenspeicher der untersten Schicht eines Zwischenspeicherteilsystems residiert, die zwei oder mehr in einer hierarchischen Konfiguration angeordnete Zwischenspeicher enthalten kann, auszuführen. In mindestens einer Ausführungsform enthält ein Zwischenspeicher-Speicherteilsystem die L1-Datenzwischenspeicher und einen Zwischenspeicher der letzten Schicht (LLC) 618 in dem Nichtkern 622. In mindestens einer Ausführungsform können andere Elemente des Zwischenspeicher-Speicherteilsystems einen Anweisungszwischenspeicher pro Kern (nicht dargestellt), der in Verbindung mit der Eingangsstufe 604 arbeitet, und einen oder mehrere zwischenliegende Zwischenspeicher (nicht dargestellt) enthalten. In mindestens einer Ausführungsform enthält das Zwischenspeicher-Speicherteilsystem für den Prozessor 601 L1-Daten- und Anweisungszwischenspeicher pro Kern, einen zwischenliegenden oder L2-Zwischenspeicher pro Kern, der sowohl Anweisungen als auch Daten enthält, und den LLC 618, der Anweisungen und Daten enthält und von mehreren Verarbeitungskernen 602 gemeinsam genutzt wird. In einigen Ausführungsformen kann, wenn eine Speicherzugriffsanweisung in dem L1-Datenzwischenspeicher 608 fehlschlägt, die Ausführung des zugehörigen Programms oder Threads angehalten oder langsamer werden, während das Zwischenspeicher-Speicherteilsystem auf die verschiedenen Zwischenspeicher zugreift, bis ein Exemplar der zugehörigen Speicheradresse gefunden wird.
  • In mindestens einer Ausführungsform kommunizieren der Prozessor 601, der erste Verarbeitungskern 602-1, der zweite Verarbeitungskern 602-2 und der Verarbeitungskern 602-n über eine Kreuzschiene 612, die Datenwarteschlangenbildung, Punkt-zu-Punkt-Protokolle und Mehrkernschnittstellenbildung unterstützen kann. Andere Ausführungsformen des Prozessors 601 können eine gemeinsam genutzte Busverschaltung oder direkte Kern-zu-Kern-Verschaltungen und -Protokolle nutzen. In mindestens einer Ausführungsform dient die Kreuzschiene 612 als eine Nichtkernsteuerung, die die Verarbeitungskerne 602 mit der LLC 618 verschaltet. In einigen Ausführungsformen enthält der Nichtkern 622 eine Zwischenspeichersteuerung 617 zum Implementieren einer Zwischenspeicher-Kohärenzrichtlinie und, in Verbindung mit einer Speichersteuerung (nicht dargestellt), Aufrechterhalten von Kohärenz zwischen einem Systemspeicher (nicht dargestellt) und den verschiedenen Zwischenspeichern.
  • In mindestens einer Ausführungsform enthält eine Leistungssteuereinheit (PCU) 624 eine Platzierungssteuerung 634. Die Platzierungssteuerung 634 kann die Arbeitslasten der Verarbeitungskerne 602 überwachen und bestimmen, welche Arbeit zu einem anderen Kern verlagert werden kann, um die Effizienz zu erhöhen. Die Effizienz kann in thermischer Ausgabe, Leistungsnutzung und/oder geleisteter Arbeit gemessen werden. Zum Beispiel kann die Effizienz erhöht werden, indem Threads zwischen Kernen verlagert werden, die sich aufgrund von Indie-Variation (niedrigerer thermischer Ausgang, verringerte Leistungsnutzung, Nutzungsdauer-Verwendungsverwaltung oder mehr durchgeführte Arbeit) unterscheiden. Die Effizienz kann erhöht werden, indem ein Niederspannungsbetrieb eines Kerns aufrechterhalten wird, der keine Arbeitslast über einem Schwellenwert bereitstellt (d. h. Verlagern von Threads zwischen Kernen, um zu verhindern, dass ein Kern über einem Schwellenwert arbeitet, was als „Stressen“ eines Kerns bekannt ist). Die Effizienz kann erhöht werden, indem mehrere Threads in einem einzelnen Hyperthreading-Kern kombiniert werden, wodurch Leistung eines Mehrkern-Overheads eingespart wird. Die Effizienz kann erhöht werden, indem Threads in Kerne platziert werden, die physikalisch getrennt sind, um eine bessere Wärmeverteilung auf dem Prozessorplättchen zu ermöglichen. Die Effizienz kann erhöht werden, indem Wärme verteilt wird, indem Threads von physikalischem Prozessor zu physikalischem Prozessor der Reihe nach verlagert werden, um verschiedene Teile eines Prozessorplättchens zu erwärmen. Die Effizienz kann erhöht werden, indem Kerne mit ausgefallenen Arithmetikeinheiten verwendet werden, wenn Anweisungen die Arithmetikeinheit nicht verwenden werden, und/oder Threads zwischen Kernen migriert werden, wenn die Anweisungen die ausgefallenen Arithmetikeinheiten verwenden werden. Die Effizienz kann erhöht werden, indem Lastausgleich für Nutzungsdauer-Verwendungsverwaltung und/oder thermische Verwaltung durchgeführt wird.
  • In einigen Ausführungsformen nimmt die Effizienz des Kerns ab, während der Kern verwendet wird und/oder zum Durchführen einer großen Arbeitslast verwendet wird. Die Effizienzabnahme kann aufgrund einer höheren Betriebsspannung und/oder eines höheren thermischen Ausgangs bestehen. In einigen Ausführungsformen kann eine Nutzungsdauer-Verwendung von Kernen verwaltet werden und können Arbeitslasten zwischen Kernen verlagert werden, um die Nutzungsdauer-Verwendung von Kernen zu verteilen. In einer Ausführungsform kann der Prozessor eine niedrigere Kernzählung berichten, als tatsächlich in dem Prozessor verfügbar ist. Die Arbeitslast kann unter Kernen verteilt werden, um die gesamte Nutzungsdauer und Effizienz der Kerne über die, die ohne die zusätzlichen, nicht berichteten Kerne möglich wäre, zu erhöhen. In einigen Ausführungsformen können Threads von einem Kern weggenommen werden, um den Kern zu sequestrieren. Der sequestrierte Kern kann getestet und/oder Performanzcharakteristika des Kerns können bestimmt werden. In einer Ausführungsform kann Kernsequestrierung in Verbindung mit Lösungen der virtuellen Maschinenverwaltung verwendet werden. In anderen Ausführungsformen kann ein sequestrierter Kern verwendet werden, andere versteckte Ausführungsanordnungen mit dediziertem Zweck zu unterstützen.
  • In einigen Ausführungsformen kann die PCU 624 Threadplatzierung zwischen dem Kern und verfügbaren Hyperthreadbetriebsmitteln entscheiden. Logische Prozessoren können dem OS benannt werden. Die Anzahl logischer Prozessoren kann jedoch geringer sein als eine Anzahl physikalischer Kerne und/oder Hyperthreads, die in dem Prozessor vorhanden sind (d. h. es können mehr Prozessorbetriebsmittel vorhanden sein, als dem OS benannt wurden). Das OS versieht die logischen Prozessoren, die ihm sichtbar sind, mit Arbeit und der Prozessor (z. B. die PCU 624) kann einen Thread zu einer späteren Zeit zu einem anderen Betriebsmittel verlagern. Zum Beispiel kann die PCU 624 einen Ablauf einleiten, der den Kontext des Kerns speichert, den Kontext in einem anderen Kern wiederherstellt und eine lokale APIC-ID des vorherigen Kerns zu dem neuen Kern umleitet. Die Migration kann auf der Kern- oder Threadebene erfolgen. Alternativ kann die Hardware dem OS Migrationshinweise durch eine Betriebssystemschnittstelle 626 bereitstellen und kann das OS die Arbeit von einem Kern oder Thread zu einem anderen verlagern.
  • In mindestens einer Ausführungsform enthält die Kernregion 620 zusätzlich zu den Verarbeitungskernen 602 Spannungsregulierungs-/Takterzeugungs- bzw. VRCG-Schaltungen 614 für jeden Verarbeitungskern 602. In einigen Ausführungsformen unterstützen die VRCG-Schaltungen 614 in Verbindung mit durch die PCU 624 erzeugten und jedem Verarbeitungskern 602 bereitgestellten Spannungsversorgungssignalen und Taktfrequenzsignalen pro Kern Leistungszustände pro Kern durch Anwenden eines durch das betreffende Versorgungsspannungssignal und Taktfrequenzsignal angegebenen Leistungszustands auf den betreffenden Verarbeitungskern 602 sowie auf den Nichtkern 622.
  • In einigen Ausführungsformen ist die PCU 624 ferner funktionsfähig, Verarbeitungskerne 602 zur Ausführung spezifischer Threads auszuwählen und einen Thread und seine korrespondierenden Performanzziel- oder Kontextinformationen von einem ersten Kern (z. B. der erste Verarbeitungskern 602-1) zu einem zweiten Kern (z. B. der zweite Verarbeitungskern 602-2) zu migrieren, wenn die Performanzcharakteristika des zweiten Verarbeitungskerns 602-2 den zweiten Verarbeitungskern 602-2 besser geeignet machen als den ersten Verarbeitungskern 602-1, ein gewünschtes Effizienzziel zu erreichen. Siehe z. B. die 2 und 3 für eine ausführlichere Beschreibung der Migration.
  • In einigen Ausführungsformen kann der Prozessor 601 ein hybrides Sortiment von Kernen enthalten, einschließlich von grafischen Kernen und anderen Typen von Kernlogik, zusätzlich zu den Verarbeitungskernen 602. In diesen hybriden Kernausführungsformen bestimmt die PCU 624 einen optimalen oder wünschenswerten Leistungszustand, nicht nur für die Verarbeitungskerne 602, sondern auch für diese anderen Typen von Kernelementen in der Kernregion 602. Gleichermaßen enthält der Prozessor 601 in mindestens einer Ausführungsform eine VRCG-Schaltung 614-u, die den Leistungszustand für den Nichtkern 622 bereitstellt, und in dieser Ausführungsform kann die PCU 624 die optimalen oder bevorzugten Leistungszustände für den Nichtkern 622 bestimmen. In einigen Ausführungsformen unterstützt der Prozessor 601 individualisierte Leistungszustände für jeden Verarbeitungskern 602, beliebige andere Typen von Kernen in der Kernregion 620 und den Nichtkern 622. Andere Ausführungsformen können einen Leistungszustand für die gesamte Kernregion 620 und einen Leistungszustand für den Nichtkern 622 unterstützen.
  • Die PCU 624 kann außerdem die Betriebssystemschnittstelle 626 enthalten. In einigen Ausführungsformen kann die PCU 624 Empfehlungen für Arbeitsplatzierung oder -migration zu einem Betriebssystem durch die Betriebssystemschnittstelle 626 bereitstellen. Das Betriebssystem kann dann die Threadmigration zwischen Kernen durchführen. Zum Beispiel kann ein Betriebssystem nicht über ausreichend Informationen verfügen, um zu erkennen, dass zwei logische Prozessoren tatsächlich mit einem Hyperthreadkern assoziiert sind. Die PCU 624 kann dem Betriebssystem empfehlen, dass zwei Threads auf den zwei logischen Prozessoren konsolidiert werden, wodurch Mehrkern-Overhead eliminiert werden kann.
  • Ausführungsformen können in vielen verschiedenen Plattformen implementiert werden. 7 zeigt ein Computersystem 700, das in Verbindung mit mindestens einer Ausführungsform verwendet wird. In mindestens einer Ausführungsform sind ein Prozessor, Speicher und Eingabe-/Ausgabevorrichtungen eines Prozessorsystems durch eine Anzahl von Punkt-zu-Punkt- bzw. P-P-Schnittstellen verschaltet, wie ausführlicher beschrieben werden wird. In anderen Ausführungsformen kann das Prozessorsystem jedoch andere Busarchitekturen nutzen, wie ein Front-Side-Bus, ein Multi-Drop-Bus und/oder eine andere Implementierung. Obwohl in 7 ein Prozessor der deutlichen Beschreibung halber dargestellt ist, kann in verschiedenen Ausführungsformen eine andere Anzahl von Prozessoren unter Verwendung von Elementen der dargestellten Architektur genutzt werden.
  • In mindestens einer Ausführungsform ist das System 700 ein Punkt-zu-Punkt-Verschaltungssystem und enthält einen Prozessor 701. Während das System 700 in einigen Ausführungsformen nur einen einzelnen Prozessor enthalten kann, kann das System 700 in anderen Ausführungsformen mehrere Prozessoren unterstützen. In mindestens einer Ausführungsform ist der Prozessor 701 ein Mehrkernprozessor, der einen ersten Verarbeitungskern 702-1 und einen zweiten Verarbeitungskern 702-2 enthält. Es ist zu beachten, dass andere Elemente des Prozessors 701 neben den Verarbeitungskernen 702 als der Nichtkern 723 bezeichnet werden können, während die Verarbeitungskerne 702 auch als die Kernregion 721 bezeichnet werden können. In verschiedenen Ausführungsformen kann eine variierende Anzahl von Kernen in einem bestimmten Prozessor vorhanden sein. In mindestens einer Ausführungsform können die Verarbeitungskerne 702 eine Anzahl von Unterelementen (nicht dargestellt in 7), die auch als Cluster bezeichnet werden, die verschiedene Aspekte der gesamten Funktionalität bereitstellen, umfassen. Die Verarbeitungskerne 702 können in einigen Ausführungsformen jeweils einen Speichercluster enthalten (nicht dargestellt in 7), der eine oder mehrere Ebenen von Zwischenspeicher umfassen kann. In einigen Ausführungsformen können andere Cluster (nicht dargestellt in 7) in den Verarbeitungskernen 702 einen Eingangsstufen-Cluster und einen Ausführungspipelinecluster enthalten. In mindestens einer Ausführungsform können die Verarbeitungskerne 702 einen L1-Datenzwischenspeicher enthalten. In einigen Ausführungsformen kann der Nichtkern 723 eine Kreuzschiene 712, eine LLC 718, eine Speichersteuerung (MC) 722, eine PCU 724 und eine P-P-Schnittstelle 776 enthalten. In einigen Ausführungsformen kann die PCU 724 verwendet werden, einen spezifischen Kern basierend auf den individuellen Charakteristika jedes Kerns auf dem Plättchen und den Anforderungen der Aufgabe auszuwählen.
  • In bestimmten Ausführungsformen sind die Verarbeitungskerne 702 im Prozessor 701 nicht mit Mitteln zur direkten Kommunikation miteinander ausgestattet, sondern vielmehr zur Kommunikation über eine Kreuzschiene 712, die intelligente Funktionalität wie eine Zwischenspeichersteuerung, Datenwarteschlangenbildung, P-P-Protokolle und Mehrkernschnittstellenbildung enthalten kann. In einigen Ausführungsformen kann die Kreuzschiene 712 demgemäß eine intelligente Nichtkernsteuerung repräsentieren, die die Verarbeitungskerne 702 mit der MC 772, der LLC 718 und der P-P-Schnittstelle 776 unter anderen Elementen verschaltet. Insbesondere kann die Funktionalität der Zwischenspeichersteuerung in der Kreuzschiene 712, um die Performanz in einer derartigen Architektur zu verbessern, in einigen Ausführungsformen selektives Zwischenspeichern von Daten in einer Zwischenspeicherhierarchie, die die LLC 718 und einen oder mehrere Zwischenspeicher, die in den Verarbeitungskernen 702 vorhanden sind, ermöglichen. In mindestens einer Ausführungsform wird die Kreuzschiene 712 als eine globale Warteschlange bezeichnet.
  • In mindestens einer Ausführungsform kann die LLC 718 an ein jeweiliges Paar der Verarbeitungskerne 702 gekoppelt werden. In einigen Ausführungsformen kann die LLC 718 durch den ersten Verarbeitungskern 702-1 und den zweiten Verarbeitungskern 702-2 gemeinsam genutzt werden. In einigen Ausführungsformen kann die LLC 718 derart vollständig gemeinsam genutzt werden, dass jeder einzelne eine der Verarbeitungskerne 702 die vollständige Speicherkapazität der LLC 718 füllen oder darauf zugreifen kann. Zusätzlich kann die MC 772 in einigen Ausführungsformen direkten Zugriff durch den Prozessor 701 auf einen Speicher 723 über die Speicherschnittstelle 782 bereitstellen. In einigen Ausführungsformen kann der Speicher 732 ein dynamischer Direktzugriffspeicher (DRAM) in doppelter Datenraten- bzw. DDR-Ausführung sein, während die Speicherschnittstelle 782 und die MC 772 einer DDR-Schnittstellenspezifikation entsprechen. In mindestens einer Ausführungsform kann der Speicher 732 eine Bank von Speicherschnittstellen (oder -schlitzen) repräsentieren, die mit korrespondierenden Speicherschaltungen für eine gewünschte DRAM-Kapazität besetzt werden können.
  • In einigen Ausführungsformen kann der Prozessor 701 außerdem mit anderen Elementen des Systems 700 kommunizieren wie ein naher Verteiler 790 und ein entfernter Verteiler 719, die auch zusammen als ein Chipsatz, der den Prozessor 701 unterstützt, bezeichnet werden. In mindestens einer Ausführungsform kann die P-P-Schnittstelle776 durch den Prozessor 701 verwendet werden, mit den nahen Verteiler 790 über eine Verschaltungsverknüpfung 752 zu kommunizieren. In bestimmten Ausführungsformen sind die P-P-Schnittstellen 776, 794 und die Verschaltungsverknüpfung 752 unter Verwendung der Architektur Intel QuickPath Interconnect implementiert. In mindestens einer Ausführungsform enthält der nahe Verteiler 790 eine Schnittstelle 792 zum Koppeln des nahen Verteilers 790 mit einem ersten Bus 716, der Hochleistung-E/A mit korrespondierenden Busvorrichtungen wie Grafik 738 und/oder anderen Busvorrichtungen unterstützen kann. In einigen Ausführungsformen kann die Grafik 738 eine Hochleistung-Grafikengine repräsentieren, die zu einer Anzeigevorrichtung (nicht dargestellt in 7) ausgibt. In mindestens einer Ausführungsform ist der erste Bus 716 ein Peripheral-Component-Interconnect- bzw. PCI-Bus wie ein PCI-Express- bzw. PCie-Bus und/oder ein anderer Computererweiterungsbus. In einigen Ausführungsformen kann der nahe Verteiler 790 außerdem an den entfernten Verteiler 719 an einer Schnittstelle 796 über eine Verschaltungsverknüpfung 756 gekoppelt sein. In bestimmten Ausführungsformen wird die Schnittstelle 796 als eine Southbridge bezeichnet. Der entfernte Verteiler 719 kann in einigen Ausführungsformen E/A-Verschaltungen für verschiedene Computersystem-Peripherievorrichtungen und -schnittstellen bereitstellen und kann Rückwärtskompatibilität mit älteren Computersystem-Peripherievorrichtungen und -schnittstellen bereitstellen. Demgemäß stellt der entfernte Verteiler 719 in mindestens einer Ausführungsform eine Netzwerkschnittstelle 730 und eine Audio-E/A 734 sowie Schnittstellen zu einem zweiten Bus 720, einem dritten Bus 722 und einem vierten Bus 721 bereit, wie nachstehend ausführlich beschrieben werden wird.
  • In einigen Ausführungsformen kann der zweite Bus 720 erweiterte Funktionalität für das System 700 mit E/A-Vorrichtungen 712 und einer Berührungsbildschirmsteuerung 714 unterstützen und kann ein Computerbus des PCI-Typs sein. In mindestens einer Ausführungsform kann der dritte Bus 722 ein peripherer Bus für Endbenutzer-Verbrauchervorrichtungen sein, repräsentiert durch Desktopvorrichtungen 725 und Kommunikationsvorrichtungen 726, die verschiedene Typen von Tastaturen, Computermäusen, Kommunikationsvorrichtungen, Datenspeichervorrichtungen, Buserweiterungsvorrichtungen usw. enthalten können. In bestimmten Ausführungsformen repräsentiert der dritte Bus 722 einen universellen seriellen Bus (USB) oder einen ähnlichen peripheren Verschaltungsbus. In einigen Ausführungsformen kann der vierte Bus 721 einen Computerschnittstellenbus zum Verbinden von Massenspeichervorrichtungen wie Festplattenlaufwerke, optische Laufwerke und Plattenanordnungen, die allgemein durch einen dauerhaften Speicher 728 repräsentiert werden, der durch den Prozessor 701 ausführbar sein kann, repräsentieren.
  • In mindestens einer Ausführungsform inkorporiert das System 700 verschiedene Merkmale, die einen in der Hand getragenen oder Tablet-Operationstyp erleichtern, und andere Merkmale, die Laptop- oder Desktop-Operation erleichtern. Außerdem enthält das System 700 in einigen Ausführungsformen Merkmale, die zusammenwirken, um Leistung in aggressiver Weise einzusparen, während sie gleichzeitig mit herkömmlichen Leistungseinsparung-Performanzzielen assoziierte Latenz reduzieren.
  • In mindestens einer Ausführungsform enthält das System 700 ein Betriebssystem 740, das vollständig oder teilweise in dem dauerhaften Speicher 728 gespeichert sein kann. In einigen Ausführungsformen kann das Betriebssystem 740 verschiedene Module, Anwendungsprogrammierungsschnittstellen und dergleichen enthalten, die verschiedene Hardware- und Softwaremerkmale des Systems 700 in unterschiedlichem Ausmaß exponieren. In mindestens einer Ausführungsform enthält das System 700 eine Sensor-Anwendungsprogrammierungsschnittstelle (API) 742, ein Wiederaufnahmemodul 744, ein Verbindungsmodul 746 und eine Berührungsbildschirm-Benutzerschnittstelle 748. In einigen Ausführungsformen kann das System 700 ferner verschiedene Hardware-/Firmwaremerkmale einschließlich der kapazitiven oder resistiven Berührungsbildschirmsteuerung 714 und einer zweiten Quelle von dauerhafter Speicherung wie ein Festkörperlaufwerk (SSD) 750 enthalten.
  • In einigen Ausführungsformen stellt die Sensor-API 742 Zugriff von Anwendungsprogrammen auf einen oder mehrere Sensoren (nicht dargestellt), die in dem System 700 enthalten sein können, bereit. Sensoren, die das System in einigen Ausführungsformen aufweisen kann, enthalten einen Beschleunigungsmesser, eine Vorrichtung eines globalen Positionierungssystems (GPS), ein Gyrometer, einen Neigungsmesser und einen Lichtsensor. Das Wiederaufnahmemodul 744 kann in einigen Ausführungsformen als Software implementiert sein, die, wenn sie ausgeführt wird, Operationen zum Reduzieren von Latenz beim Übergehen des Systems 700 von einem Leistungseinsparung-Performanzziel zu einem Operation-Performanzziel durchführt. In mindestens einer Ausführungsform kann das Wiederaufnahmemodul 744 in Verbindung mit dem SSD 750 arbeiten, um den Umfang von erforderlicher SSD-Speicherung zu reduzieren, wenn das System 700 in einen Leistungseinsparungsmodus eintritt. Das Wiederaufnahmemodul 744 kann in einigen Ausführungsformen Bereitschafts- und temporäre Speicherseiten löschen, bevor es in einen Ruhemodus übergeht. In einigen Ausführungsformen reduziert das Wiederaufnahmemodul 744 vorteilhaft die erforderliche Zeitdauer zum Durchführen des Übergangs von dem Zustand niedriger Leistung zu einem Operation-Performanzziel durch Reduzieren der Größe des Systemspeicherplatzes, den das System beim Eintreten in einen Zustand niedriger Leistung erhalten muss. In mindestens einer Ausführungsform kann das Verbindungsmodul 746 Softwareanweisungen enthalten, die, wenn sie ausgeführt werden, komplementäre Funktionen zum Konservieren von Leistung durchführen, während sie den Umfang von mit herkömmlichen „Weck“-Abläufen assoziierter Latenz oder Verzögerung reduzieren. Das Verbindungsmodul 746 kann in einigen Ausführungsformen bestimmte „dynamische“ Anwendungen einschließlich von E-Mail-Anwendungen und Anwendungen sozialer Netzwerke periodisch aktualisieren, so dass, wenn das System 700 aus einem Modus niedriger Leistung erwacht, die Anwendungen, die häufig am wahrscheinlichsten eine Auffrischung benötigen, auf dem neuesten Stand sind. In mindestens einer Ausführungsform unterstützt die Berührungsbildschirm-Benutzerschnittstelle 748 die Berührungsbildschirmsteuerung 714, die Benutzereingabe über Berührungsbildschirme, die herkömmlicherweise für in der Hand getragene Anwendungen reserviert ist, ermöglicht. In einigen Ausführungsformen ermöglicht die Einbeziehung von Berührungsbildschirm-Unterstützung in Verbindung mit Unterstützung für die Kommunikationsvorrichtungen 726 dem System 700, Merkmale, die herkömmlicherweise in dedizierten Tablet-Vorrichtungen gefunden werden, sowie Merkmale, die in dedizierten Laptop- und Desktop-Systemen gefunden werden, bereitzustellen.
  • 8 zeigt eine Repräsentation für Simulation, Emulation und Fertigung einer Auslegung, die die offenbarten Techniken implementiert. Daten, die eine Auslegung repräsentieren, können die Auslegung in einer Anzahl von Weisen repräsentieren. Erstens, wie es in Simulationen nützlich ist, kann die Hardware unter Verwendung einer Hardware-Beschreibungssprache oder einer anderen funktionellen Beschreibungssprache repräsentiert werden, die grundsätzlich ein computerisiertes Modell davon bereitstellt, wie erwartet wird, dass sich die ausgelegte Hardware verhält. In mindestens einer Ausführungsform kann ein Hardwaremodell 814 in einem Speichermedium 810 wie ein Computerspeicher gespeichert werden, so dass das Hardwaremodell 814 unter Verwendung von Simulationssoftware 812, die eine bestimmte Testreihe auf das Hardwaremodell 814 anwendet, um zu bestimmen, ob es wirklich wie vorgesehen funktioniert, simuliert werden kann. In einigen Ausführungsformen wird die Simulationssoftware 812 nicht in dem Speichermedium 810 aufgezeichnet oder erfasst oder ist nicht darin enthalten.
  • Zusätzlich kann ein Modell auf Schaltungsebene mit logischen und/oder Transistorgates in einigen Stadien des Auslegungsprozesses produziert werden. Dieses Modell kann in ähnlicher Weise simuliert werden, manchmal durch dedizierte Hardwaresimulatoren, die das Modell unter Verwendung von programmierbarer Logik bilden. Dieser Typ von Simulation kann, eine Stufe weiter genommen, eine Emulationstechnik sein. In jedem Fall ist umkonfigurierbare Hardware eine weitere Ausführungsform, die ein materielles maschinenlesbares Medium beinhaltet, das ein Modell unter Nutzung der offenbarten Techniken speichert.
  • Des Weiteren erreichen die meisten Entwürfe in einem gewissen Stadium eine Ebene, auf der Daten die physikalische Anordnung verschiedener Vorrichtungen in dem Hardwaremodell repräsentieren. In dem Fall, in dem herkömmliche Halbleiterfertigungstechniken verwendet werden, können die Daten, die das Hardwaremodell repräsentieren, die Daten sein, die das Vorhandensein oder die Abwesenheit verschiedener Merkmale auf verschiedenen Maskenschichten für Masken, die zum Produzieren der integrierten Schaltung verwendet werden, repräsentieren. Wiederum verkörpern diese Daten, die die integrierte Schaltung repräsentieren, die offenbarten Techniken insofern, als die Schaltungen oder Logik in den Daten simuliert oder gefertigt werden können, um diese Techniken durchzuführen.
  • In jeder Repräsentation des Entwurfs können die Daten in jeder Form eines materiellen, maschinenlesbaren Mediums gespeichert werden. In einigen Ausführungsformen kann eine optische oder elektrische Welle 840, moduliert oder in anderer Weise erzeugt, um derartige Informationen zu übertragen, oder ein magnetischer oder optischer Speicher 820 wie eine Platte das materielle, maschinenlesbare Medium sein. Beliebige dieser Medien können die Auslegungsinformationen „tragen“. Der Begriff „tragen“ (z. B. ein materielles, maschinenlesbare Medium, das Informationen trägt) deckt demgemäß Informationen ab, die in einer Speichervorrichtung gespeichert sind, oder Informationen, die in einer oder auf eine Trägerwelle codiert oder moduliert sind. Die Menge von Bits, die den Entwurf oder den bestimmten Teil des Entwurfs beschreiben, ist (bei Verkörperung in einem maschinenlesbaren Medium wie ein Träger oder ein Speichermedium) ein Artikel, der an und für sich verkauft oder durch andere für weitere Auslegung oder Fertigung verwendet werden kann.
  • Beispiele
  • Die folgenden Beispiele betreffen weitere Ausführungsformen.
  • Beispiel 1 ist ein Gerät zum Schätzen der dynamischen Leistung in einem integrierten Chip. Das Gerät enthält eine Messungsschnittstelle, eine Leistungsschnittstelle und einen oder mehrere Prozessoren. Die Messungsschnittstelle ist dafür ausgelegt, Temperaturmessungen für eine Vielzahl von Kernen zu empfangen. Die Leistungsschnittstelle ist dafür ausgelegt, einen p-Zustand für jeden Kern aus einer Menge von Kernen bereitzustellen. Jeder Kern aus der Menge von Kernen in dem einen oder den mehreren Prozessoren ist dafür ausgelegt, eine Temperatur des Kerns zu messen; eine zulässige thermische Last zu bestimmen; einen temperaturabhängigen Abfluss zu bestimmen; die verfügbare Leistungsschnittstelle basierend teilweise auf einem Aktivitätsverhältnis, dem temperaturabhängigen Abfluss und der gesamten verfügbaren Leistung zu berechnen; eine p-Zustandsspannung basierend teilweise auf der verfügbaren Leistung zu bestimmen; und den p-Zustand für den Kern auszuwählen.
  • In Beispiel 2 kann der Gegenstand von Beispiel 1 oder eines der hierin beschriebenen Beispiele ferner das Aktivitätsverhältnis basierend auf Kernarbeitslast in Bezug auf die p-Zustandsspannung enthalten.
  • In Beispiel 3 kann der Gegenstand von Beispiel 1 oder eines der hierin beschriebenen Beispiele ferner den temperaturabhängigen Abfluss basierend teilweise auf Spannung und Temperatur enthalten.
  • In Beispiel 4 kann der Gegenstand von Beispiel 1 oder eines der hierin beschriebenen Beispiele ferner enthalten, dass der temperaturabhängige Abfluss basierend teilweise auf Spannung und gemessener Temperatur zu bestimmen ist.
  • In Beispiel 5 kann der Gegenstand von Beispiel 1 oder eines der hierin beschriebenen Beispiele ferner eine Bestimmung enthalten, dass die zulässige thermische Last ferner enthält, eine Zeit seit der letzten Aktualisierung zu berechnen; einen Temperaturfehler für jeden Kern zu berechnen; ein Fehlerintegral über ein endliches Abtastzeitfenster zu berechnen; und einen Steuerungsausgang zu berechnen.
  • In Beispiel 6 kann der Gegenstand von Beispiel 5 oder eines der hierin beschriebenen Beispiele ferner enthalten, eine Integrationssumme auf ein im Voraus bestimmtes Maximum zu begrenzen, um einen Integratorüberlauf zu verhindern.
  • In Beispiel 7 kann der Gegenstand von Beispiel 6 oder eines der hierin beschriebenen Beispiele ferner enthalten, ein Kennzeichnungsbit zu setzen, wenn die Zeit seit der letzten Aktualisierung außerhalb der Toleranz ist.
  • In Beispiel 8 kann der Gegenstand von Beispiel 5 oder eines der hierin beschriebenen Beispiele ferner enthalten, den Temperaturfehler für jeden Kern zu berechnen, enthaltend, den Fehler unter Verwendung einer Gleichung Fehler = Vorgabewert - Temperatur zu bestimmen.
  • In Beispiel 9 kann der Gegenstand von Beispiel 5 oder eines der hierin beschriebenen Beispiele ferner enthalten, den Steuerungsausgang zu berechnen, enthaltend, eine Gleichung Pcontrol = Kp * error + Ki * integralsum zu verwenden.
  • In Beispiel 10 kann der Gegenstand von Beispiel 1 oder eines der hierin beschriebenen Beispiele ferner enthalten, die verfügbare Leistung (Pdyn1) zu berechnen, enthaltend, eine Gleichung Pdyn1 = Ptotal1 - Pleak1 zu verwenden.
  • In Beispiel 11 kann der Gegenstand von Beispiel 1 oder eines der hierin beschriebenen Beispiele ferner enthalten, das Aktivitätsverhältnis (AR) basierend auf einer Gleichung A R = ( C d y n V 1 2 F r e q 1 ) P d y n 1
    Figure DE112017001772T5_0011
    zu berechnen.
  • In Beispiel 12 kann der Gegenstand von Beispiel 1 oder eines der hierin beschriebenen Beispiele ferner enthalten, die zulässige thermische Last basierend auf einem Modell, das Leistung und die Temperatur verknüpft, zu bestimmen.
  • In Beispiel 13 kann der Gegenstand von Beispiel 1 oder eines der hierin beschriebenen Beispiele ferner enthalten, zu bestimmen, dass die zulässige thermische Last ferner enthält, eine thermische Kopplung zwischen Kernen zu bestimmen.
  • In Beispiel 14 kann der Gegenstand von Beispiel 1 oder eines der hierin beschriebenen Beispiele ferner den einen oder die mehreren Prozessoren enthalten, ausgelegt für eine Steuerungsauslegung mit mehreren Eingängen und mehreren Ausgängen, zum Verwalten der Temperatur jedes Kern.
  • Beispiel 15 ist ein Prozessorsystem zum dynamischen Anpassen von Leistung innerhalb eines thermischen Budgets. Das Prozessorsystem enthält eine Zentralverarbeitungseinheit, eine Menge von Temperatursensoren, eine Leistungsschnittstelle, Speicherung für ein Modell thermischer Dynamik zwischen einem Kern bereitgestellter Leistung und Kerntemperatur und einen oder mehrere Prozessoren. Die Zentralverarbeitungseinheit enthält eine Menge von Kernen. Die Menge von Temperatursensoren ist an die Menge von Kernen angebracht. Der eine oder die mehreren Prozessoren sind dafür ausgelegt, einen Steuerungsausgang für jeden Kern basierend teilweise auf dem Modell zu bestimmen; eine Schätzung eines temperaturabhängigen Abflusses für jeden Kern zu berechnen; eine Schätzung eines Verhältnisses von Aktivität zu Leistung für jeden Kern basierend teilweise auf einem Mittel vorheriger Abtastungen zu berechnen; eine assoziierte p-Zustandsspannung für jeden Kern für die verbleibende dynamische Leistung basierend teilweise auf einem Aktivitätsverhältnis zu berechnen; und den mit der assoziierten p-Zustandsspannung assoziierten p-Zustand für jeden Kern auszuwählen.
  • In Beispiel 16 kann der Gegenstand von Beispiel 15 oder eines der hierin beschriebenen Beispiele ferner enthalten, dass der Steuerungsausgang ferner enthält, eine Zeit seit einer letzten Steuerungsaktualisierung zu berechnen; einen Temperaturfehler für jeden Kern zu berechnen; ein Fehlerintegral über ein endliches Abtastzeitfenster zu berechnen; eine Integrationssumme auf einen maximalen Wert zu begrenzen; und den Steuerungsausgang basierend auf dem Fehler und der Integrationssumme zu berechnen.
  • In Beispiel 17 kann der Gegenstand von Beispiel 15 oder eines der hierin beschriebenen Beispiele ferner enthalten, dass der eine oder die mehreren Prozessoren konfiguriert sind, die assoziierte p-Zustandsspannung jedes Kerns für mindestens eine nächste Abtastperiode zu implementieren.
  • In Beispiel 18 kann der Gegenstand von Beispiel 15 oder eines der hierin beschriebenen Beispiele ferner das Modell enthalten, das ferner eine PID-Steuerung, eine PD-Steuerung oder eine PI-Steuerung enthält.
  • In Beispiel 19 kann der Gegenstand von Beispiel 15 oder eines der hierin beschriebenen Beispiele ferner das Modell enthalten, das ferner Daten hinsichtlich thermischer Kopplung zwischen Kernen enthält.
  • In Beispiel 20 kann der Gegenstand von Beispiel 15 oder eines der hierin beschriebenen Beispiele ferner das Modell enthalten, das ferner Daten hinsichtlich thermischer Dynamik zwischen einem Kern bereitgestellter Leistung und Programmtemperatur enthält.
  • In Beispiel 21 kann der Gegenstand von Beispiel 15 oder eines der hierin beschriebenen Beispiele ferner das Modell enthalten, das ferner Daten hinsichtlich temperaturabhängigen Abflusses enthält.
  • In Beispiel 22 kann der Gegenstand von Beispiel 15 oder eines der hierin beschriebenen Beispiele ferner temperaturabhängigen Abfluss basierend teilweise auf Spannung und gemessener Temperatur enthalten.
  • In Beispiel 23 kann der Gegenstand von Beispiel 22 oder eines der hierin beschriebenen Beispiele ferner enthalten, dass temperaturabhängiger Abfluss (Pleak) unter Verwendung einer Gleichung Pleαk = V1 * Io1 eu 1(Vref-V)eu 2(Tref-T) bestimmt wird.
  • In Beispiel 24 kann der Gegenstand von Beispiel 22 oder eines der hierin beschriebenen Beispiele ferner enthalten, dass Berechnen der verfügbaren Leistung (Pdyn1) ferner enthält, eine Gleichung Pdyn1 = Ptotal1 - Pleak1 zu verwenden.
  • In Beispiel 25 kann der Gegenstand von Beispiel 22 oder eines der hierin beschriebenen Beispiele ferner enthalten, dass das Aktivitätsverhältnis (AR) basierend auf einer Gleichung A R = ( C d y n V 1 2 F r e q 1 ) P d y n 1
    Figure DE112017001772T5_0012
    berechnet wird.
  • Beispiel 26 ist ein Computerprogrammprodukt. Das Computerprogrammprodukt enthält ein computerlesbares Speichermedium, das Programmcode speichert. Der Programmcode bewirkt, dass ein oder mehrere Prozessoren ein Verfahren durchführen. Das Verfahren enthält Messen einer Temperatur einer Vielfalt von Kernen in einer Zentralverarbeitungseinheit (CPU); Bestimmen eines thermischen Spielraums eines Kerns zwischen einer tatsächlichen Temperatur und einer Temperatur einer thermischen Sollleistung; Schätzen eines temperaturabhängigen Abflusses für einen Kern basierend auf Spannung und gemessener Temperatur; Bestimmen einer verfügbaren Leistung basierend auf dem thermischen Spielraum und dem temperaturabhängigen Abfluss; Bestimmen einer assoziierten p-Zustandsspannung für eine verfügbare Leistung und Kernanforderung; und Aktualisieren eines Kern-p-Zustands mit der assoziierten p-Zustandsspannung.
  • In Beispiel 27 kann der Gegenstand von Beispiel 26 oder eines der hierin beschriebenen Beispiele ferner die Bestimmung enthalten, dass die verfügbare Leistung basierend auf dem thermischen Spielraum und dem temperaturabhängigen Abfluss ferner enthält, einen Temperaturvorgabewert zwischen der Temperatur der thermischen Sollleistung und der gemessenen Temperatur einzustellen.
  • In Beispiel 28 kann der Gegenstand von Beispiel 26 oder eines der hierin beschriebenen Beispiele ferner enthalten, dass der temperaturabhängige Abfluss basierend teilweise auf Spannung und der tatsächlichen Temperatur geschätzt wird.
  • In Beispiel 29 kann der Gegenstand von Beispiel 26 oder eines der hierin beschriebenen Beispiele ferner die Bestimmung enthalten, dass die verfügbare Leistung basierend auf dem thermischen Spielraum und dem temperaturabhängigen Abfluss ferner enthält, den thermischen Spielraum in eine Leistungsschätzung umzuwandeln, die in dem thermischen Spielraum resultiert.
  • Beispiel 30 ist ein Verfahren für Leistungszustandsauswahl. Das Verfahren enthält Berechnen einer Schätzung des temperaturabhängigen Abflusses eines Kerns; Berechnen einer Schätzung eines Aktivitätsverhältnisses des Kerns basierend auf einem Mittel vorheriger Abtastungen; Berechnen einer assoziierten p-Zustandsspannung eines Kerns für die verbleibende dynamische Leistung unter Annahme des berechneten Aktivitätsverhältnisses; und Auswählen eines p-Zustands für den Kern unter Verwendung der assoziierten p-Zustandsspannung.
  • In Beispiel 31 kann der Gegenstand von Beispiel 30 oder eines der hierin beschriebenen Beispiele ferner enthalten, eine Zeit seit der letzten Aktualisierung zu berechnen; einen Temperaturfehler für den Kern zu berechnen; ein Fehlerintegral für den Kern über ein endliches Abtastzeitfenster zu berechnen; die Integrationssumme für den Kern auf ein im Voraus bestimmtes Maximum zu begrenzen; und einen Steuerungsausgang für den Kern zu berechnen.
  • In Beispiel 32 kann der Gegenstand von Beispiel 31 oder eines der hierin beschriebenen Beispiele ferner enthalten, dass Berechnen der Zeit seit der letzten Aktualisierung ferner enthält, die Zeit seit einer letzten Abtastaktualisierung oder Steuerungsaktualisierung zu berechnen.
  • In Beispiel 33 kann der Gegenstand von Beispiel 30 oder eines der hierin beschriebenen Beispiele ferner enthalten, dass das Verfahren auf eine Menge von Kernen angewandt wird.
  • In Beispiel 34 kann der Gegenstand von Beispiel 30 oder eines der hierin beschriebenen Beispiele ferner enthalten, eine zulässige thermische Last des Kerns zu bestimmen und, unter Verwendung der zulässigen thermischen Last des Kerns, eine gesamte Leistung, die dem Kern zur Verfügung steht, zu schätzen.
  • In Beispiel 35 kann der Gegenstand von Beispiel 34 oder eines der hierin beschriebenen Beispiele ferner enthalten, einen thermischen Kopplungseffekt anderer Kerne auf den Kern zu bestimmen.
  • Beispiel 36 ist ein Gerät, enthaltend eine Weise zum Durchführen eines Verfahrens, wie in einem der Beispiel 30-32 identifiziert.
  • Beispiel 37 ist ein maschinenlesbarer Speicher, enthaltend maschinenlesbare Anweisungen, die, wenn sie ausgeführt werden, ein Verfahren implementieren oder ein Gerät realisieren, wie in einem der Beispiele 30-32 identifiziert.
  • Beispiel 38 ist ein maschinenlesbares Medium, das Code enthält, der, wenn er ausgeführt wird, bewirkt, dass eine Maschine das Verfahren eines der Beispiele 30-32 durchführt.
  • Ausführungsformen und Implementierungen der hierin beschriebenen Systeme und Verfahren können verschiedene Operationen enthalten, die in maschinenausführbaren Anweisungen verkörpert werden können, die durch ein Computersystem auszuführen sind. Ein Computersystem kann einen oder mehrere Allzweck- oder Spezialcomputer (oder andere elektronische Vorrichtungen) enthalten. Das Computersystem kann Hardwarekomponenten enthalten, die spezifische Logik zum Durchführen der Operationen enthalten, oder kann eine Kombination von Hardware, Software und/oder Firmware enthalten.
  • Computersysteme und die Computer in einem Computersystem können über ein Netzwerk verbunden sein. Geeignete Netzwerke für Konfiguration und/oder Verwendung, wie hierin beschrieben, enthalten ein oder mehrere Nahbereichsnetzwerke, Weitbereichsnetzwerke, Metropolregionsnetzwerke und/oder das Internet oder IP-Netzwerke wie das World-Wide-Web, ein privates Internet, ein sicheres Internet, ein Wertschöpfungsnetzwerk, ein virtuelles privates Netzwerk, ein Extranet, ein Intranet oder sogar unabhängige Maschinen, die mit anderen Maschinen durch den physikalischen Transport von Medien kommunizieren. Insbesondere kann ein geeignetes Netzwerk aus Teilen oder Gesamtheiten von zwei oder mehr anderen Netzwerken gebildet werden, einschließlich von Netzwerken, die disparate Hardware und Netzwerkkommunikationstechnologien verwenden.
  • Ein geeignetes Netzwerk enthält einen Server und einen oder mehrere Clients; andere geeignete Netzwerke können andere Kombinationen von Servern, Clients und/oder Peer-to-Peer-Knoten enthalten, und ein gegebenes Computersystem kann sowohl als ein Client als auch als ein Server funktionieren. Jedes Netzwerk enthält mindestens zwei Computer oder Computersysteme wie den Server und/oder Clients. Ein Computersystem kann eine Workstation, einen Laptop-Computer, einen abtrennbaren mobilen Computer, einen Server, einen Großrechner, ein Cluster, einen so genannten „Netzwerkcomputer“ oder „Thin Client“, ein Tablet, ein Smartphone, einen persönlichen digitalen Assistenten oder eine andere, in der Hand getragene Berechnungsvorrichtung, eine „intelligente“ Verbraucherelektronik-Vorrichtung oder -Anwendung, eine medizinische Vorrichtung oder eine Kombination davon enthalten.
  • Geeignete Netzwerke können Kommunikations- oder Vernetzungssoftware wie die von Novell®, Microsoft® und anderen Anbietern erhältliche Software enthalten und können unter Verwendung von TCP/IP, SPX, IPX und anderen Protokollen über verdrillte Doppel-, Koaxial- oder Lichtwellenleiterkabel, Telefonleitungen, Funkwellen, Satelliten, Mikrowellenrelais, modulierten Wechselstrom-Hochspannungsleitungen, Transfer physikalischer Medien und/oder andere „Drähte“ zur Datenübertragung, die Fachleuten im Fachgebiet bekannt sind, operieren. Das Netzwerk kann kleinere Netzwerk umschließen und/oder kann durch ein Gateway oder einen ähnlichen Mechanismus mit anderen Netzwerken verbindbar sein.
  • Verschiedene Techniken oder bestimmte Aspekte oder Abschnitte davon können die Form von Programmcode (d. h. Anweisungen) annehmen, verkörpert in materiellen Medien wie Disketten, CD-ROMs, Festplattenlaufwerken, magnetischen oder optischen Karten, Festkörperspeichervorrichtungen, einem nichtflüchtigen, computerlesbaren Speichermedium oder einem beliebigen anderen maschinenlesbaren Speichermedium, wobei, wenn der Programmcode in eine Maschine wie ein Computer geladen wurde und davon ausgeführt wird, die Maschine ein Gerät zum Praktizieren der verschiedenen Techniken wird. Im Fall der Ausführung von Programmcode in programmierbaren Computern kann die Berechnungsvorrichtung einen Prozessor, ein durch das Programm lesbares Speichermedium (einschließlich von flüchtigem/n und nichtflüchtigem/n Speicher und/oder Speicherelementen), mindestens eine Eingabevorrichtung und mindestens eine Ausgabevorrichtung enthalten. Der flüchtige und nichtflüchtige Speicher und/oder die Speicherelemente können ein RAM, ein EPROM, ein Flash-Laufwerkt, ein optisches Laufwerk, ein magnetisches Festplattenlaufwerk oder ein anderes Medium zum Speichern elektronischer Daten sein. Ein oder mehrere Programme, die die hierin beschriebenen verschiedenen Techniken implementieren oder nutzen können, können eine Anwendungsprogrammierungsschnittstelle (API), wiederverwendbare Steuerungen und dergleichen verwenden. Derartige Programme können in einer höheren prozeduralen oder einer objektorientierten Programmiersprache zum Kommunizieren mit einem Computersystem implementiert sein. Das oder die Programme können jedoch in Assembly oder Maschinensprache implementiert sein, falls gewünscht. In jedem Fall kann die Sprache eine kompilierte oder interpretierte Sprache und mit Hardware-Implementierungen kombiniert sein.
  • Jedes Computersystem enthält einen oder mehrere Prozessoren und/oder Speicher; Computersysteme können außerdem verschiedene Eingabevorrichtungen und/oder Ausgabevorrichtungen enthalten. Der Prozessor kann eine Allzweckvorrichtung wie einen Intel®-, AMD®- oder anderen serienmäßig produzierten Mikroprozessor enthalten. Der Prozessor kann eine spezielle Verarbeitungsvorrichtung wie ASIC, SoC, SiP, FPGA, PAL, PLA, FPLA, PLD oder andere kundenspezifisch angepasste oder programmierbare Vorrichtungen enthalten. Der Speicher kann statischen RAM, dynamischen RAM, Flash-Speicher, ein oder mehrere Flipflops, ROM, CD-ROM, DVD, Platte, Band oder magnetisches, optisches oder anderes Computerspeichermedium enthalten. Das oder die Eingabevorrichtungen können eine Tastatur, eine Maus, einen Berührungsbildschirm, einen Lichtgriffel, eine Tafel, ein Mikrofon, einen Sensor oder andere Hardware mit zugehöriger Firmware und/oder Software enthalten. Das oder die Ausgabevorrichtungen können einen Monitor oder eine andere Anzeige, einen Drucker, einen Sprach- oder Textsynthetisierer, eine Vermittlungseinrichtung, eine Signalleitung und/oder andere Hardware mit zugehöriger Firmware oder Software enthalten.
  • Es versteht sich, dass viele der in dieser Patentschrift beschriebenen funktionellen Einheiten als ein oder mehrere Komponenten implementiert werden können, wobei mit diesem Ausdruck ihre Implementierungsunabhängigkeit stärker betont werden soll. Zum Beispiel kann eine Komponente als eine Hardwareschaltung implementiert werden, umfassend kundenspezifische Höchstintegrations- bzw. VLSI-Schaltungen oder Gate-Anordnungen oder serienmäßig produzierte Logikchips, Transistoren oder andere diskrete Komponenten. Eine Komponente kann auch in programmierbaren Hardwarevorrichtungen wie feldprogrammierbaren Gate-Anordnungen, programmierbarer Anordnungslogik, programmierbaren Logikvorrichtungen oder dergleichen implementiert sein.
  • Komponenten können auch in Software zur Ausführung durch verschiedene Typen von Prozessoren implementiert sein. Eine identifizierte Komponente von ausführbarem Code kann zum Beispiel als ein Objekt, eine Prozedur oder eine Funktion organisiert sein. Nichtsdestoweniger müssen die ausführbaren Codeabschnitte einer identifizierten Komponente nicht physikalisch zusammen angeordnet sein, sondern können disparate, an verschiedenen Orten gespeicherte Anweisungen umfassen, die, wenn sie logisch zusammengefügt werden, die Komponente umfassen und den für die Komponente angegebenen Zweck erreichen.
  • In der Tat kann eine Komponente von ausführbarem Code eine einzelne Anweisung oder viele Anweisungen sein und kann sogar über mehrere Codesegmente, in verschiedenen Programmen oder über mehrere Speichervorrichtungen verteilt sein. Gleichermaßen können funktionsfähige Daten hierin in Komponenten identifiziert und dargestellt sein und können in jeder geeigneten Form verkörpert und in jedem geeigneten Typ von Datenstruktur organisiert sein. Die funktionsfähigen Daten können als eine einzelne Datenmenge erfasst sein oder können über verschiedene Orte, einschließlich über verschiedene Speichervorrichtungen, verteilt sein und können mindestens teilweise lediglich als elektronische Signale in einem System oder Netzwerk existieren. Die Komponenten können passiv oder aktiv sein, einschließlich von Agenten, die funktionsfähig sind, gewünschte Funktionen durchzuführen.
  • Mehrere Aspekte der beschriebenen Ausführungsformen werden als Softwaremodule oder -komponenten dargestellt. Ein Softwaremodul oder eine -komponente, wie hierin verwendet, kann jeden Typ von Computeranweisung oder computerausführbaren Code enthalten, die/der in einer Speichervorrichtung angeordnet ist. Ein Softwaremodul kann zum Beispiel einen oder mehrere physikalische oder logische Blöcke von Computeranweisungen enthalten, die als eine Routine, ein Programm, ein Objekt, eine Komponente, eine Datenstruktur usw. organisiert sein können, die eine oder mehrere Ausgaben durchführen oder bestimmte Datentypen implementieren. Es wird anerkannt, dass ein Softwaremodul in Hardware und/oder Firmware anstelle von oder zusätzlich zu Software implementiert wird. Ein oder mehrere der hierin beschriebenen funktionellen Module können in Teilmodule unterteilt und/oder zu einem einzelnen oder einer kleineren Anzahl von Modulen kombiniert sein.
  • In bestimmten Ausführungsformen kann ein bestimmtes Softwaremodul disparate Anweisungen enthalten, die an verschiedenen Orten einer Speichervorrichtung, in verschiedenen Speichervorrichtungen oder verschiedenen Computern gespeichert sind, die zusammen die beschriebene Funktionalität des Moduls implementieren. In der Tat kann ein Modul eine einzelne Anweisung oder viele Anweisungen enthalten und kann über mehrere verschiedene Codesegmente, in verschiedenen Programmen und über mehrere Speichervorrichtungen verteilt sein. Einige Ausführungsformen können in einer verteilten Berechnungsumgebung praktiziert werden, wobei Aufgaben durch eine durch ein Kommunikationsnetzwerk verknüpfte entfernte Verarbeitungsvorrichtung durchgeführt werden. In einer verteilten Berechnungsumgebung können Softwaremodule in lokalen und/oder entfernten Speichervorrichtungen angeordnet sein. Außerdem können Daten, die in einer Datenbankaufzeichnung miteinander verbunden oder zusammen wiedergegeben werden, in derselben Speichervorrichtung oder über mehrere Speichervorrichtungen resident sein und können in Feldern einer Aufzeichnung in einer Datenbank über ein Netzwerk miteinander verknüpft sein.
  • Verweis in dieser gesamten Patentschrift auf „ein Beispiel“ bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder ein bestimmtes Charakteristikum, das/die in Verbindung mit dem Beispiel beschrieben wird, in mindestens einer Ausführungsform enthalten ist. Folglich verweisen Vorkommen des Ausdrucks „in einem Beispiel“ an verschiedenen Plätzen in dieser Patentschrift nicht notwendigerweise alle auf dieselbe Ausführungsform.
  • Wie hierin verwendet, kann eine Vielzahl von Gegenständen, strukturellen Elemente, kompositorischen Elementen und/oder Materialien der Zweckmäßigkeit halber in einer gemeinsamen Liste präsentiert werden. Diese Listen sollten jedoch so verstanden werden, als ob jedes Mitglied der Liste einzeln als ein separates und eindeutiges Mitglied identifiziert wäre. Demgemäß sollte kein einzelnes Mitglied einer derartigen Liste als ein faktisches Äquivalent irgendeines anderen Mitglieds derselben Liste ausschließlich basierend auf seiner Präsentation in einer gemeinsamen Gruppe aufgefasst werden, wenn keine gegenteilige Angabe vorhanden ist. Außerdem kann hierin auf verschiedene Ausführungsformen und Beispiele zusammen mit Alternativen für die verschiedenen Komponenten davon verwiesen werden. Es versteht sich, dass derartige Ausführungsformen, Beispiele und Alternativen nicht als faktische Äquivalente voneinander zu verstehen sind, sondern dass sie als separate und autonome Repräsentationen anzusehen sind.
  • Des Weiteren können die beschriebenen Merkmale, Strukturen oder Charakteristika in jeder geeigneten Weise in einer oder mehreren Ausführungsform kombiniert werden. In der folgenden Beschreibung werden zahlreiche spezifische Einzelheiten bereitgestellt, wie Beispiele von Materialien, Häufigkeiten, Größen, Längen, Breiten, Formen usw., um ein gründliches Verständnis der Ausführungsformen bereitzustellen. Ein Fachmann im relevanten Fachgebiet wird jedoch anerkennen, dass die Ausführungsformen ohne eine oder mehrere der spezifischen Einzelheiten oder mit anderen Verfahren, Komponenten, Materialien usw. praktiziert werden können. In anderen Fällen werden gut bekannte Strukturen, Materialien oder Operationen nicht detailliert dargestellt oder beschrieben, um zu vermeiden, dass Aspekte der Ausführungsformen undeutlich gemacht werden.
  • Es sollte anerkannt werden, dass die hierin beschriebenen Systeme Beschreibungen von spezifischen Ausführungsformen enthalten. Diese Ausführungsformen können zu einzelnen Systemen kombiniert, teilweise in andere Systeme kombiniert, in mehrere Systeme aufgeteilt oder auf andere Weisen unterteilt oder kombiniert werden. Außerdem wird erwogen, dass Parameter/Attribute/Aspekte/usw. einer Ausführungsform in einer anderen Ausführungsform verwendet werden können. Die Parameter/Attribute/Aspekte/usw. werden lediglich der Übersichtlichkeit halber in einer oder mehreren Ausführungsformen beschrieben und es wird anerkannt, dass die Parameter/Attribute/Aspekte/usw. mit Parametern/Attributen/Aspekten/usw. einer anderen Ausführungsform kombiniert oder dadurch ersetzt werden können, außer wenn hierin spezifisch in Abrede gestellt.
  • Obwohl das Vorstehende der Übersichtlichkeit halber in gewissen Einzelheiten beschrieben wurde, wird es offensichtlich sein, dass bestimmte Änderungen und Abwandlungen vorgenommen werden können, ohne dessen Grundsätze zu verlassen. Es ist zu beachten, dass es viele alternative Weisen zum Implementieren der hierin beschriebenen Prozesse und Geräte gibt. Dementsprechend sind die präsentierten Ausführungsformen als veranschaulichend und nicht als einschränkend anzusehen, und die Ausführungsformen sind nicht auf die hierin gegebenen Einzelheiten zu begrenzen, sondern können innerhalb des Schutzumfangs und der Äquivalente der beigefügten Ansprüche abgewandelt werden.
  • Fachleute im Fachgebiet werden anerkennen, dass viele Änderungen an den Einzelheiten der vorstehend beschriebenen Ausführungsformen vorgenommen werden können, ohne von den zugrunde liegenden Grundsätzen abzuweichen. Der Schutzumfang der Offenbarung und der Ausführungsformen sollte daher nur durch die folgenden Ansprüche bestimmt werden.

Claims (25)

  1. Gerät zum Schätzen der dynamischen Leistung in einem integrierten Chip, umfassend: eine Messungsschnittstelle, konfiguriert zum Empfangen von Temperaturmessungen für eine Vielzahl von Kernen; eine Leistungsschnittstelle, konfiguriert zum Bereitstellen eines p-Zustands für jeden Kern aus einer Menge von Kernen; und einen oder mehrere Prozessoren, konfiguriert zum: für jeden Kern aus der Menge von Kernen: Messen einer Temperatur des Kerns; Bestimmen einer zulässigen thermischen Last; Bestimmen eines temperaturabhängigen Abflusses; Berechnen einer verfügbaren Leistung basierend mindestens teilweise auf einem Aktivitätsverhältnis, dem temperaturabhängigen Abfluss und der gesamten verfügbaren Leistung; Bestimmen einer p-Zustandsspannung basierend mindestens teilweise auf der verfügbaren Leistung; und Auswählen des p-Zustands für den Kern.
  2. Gerät nach Anspruch 1, wobei das Aktivitätsverhältnis auf einer Kernarbeitslast in Bezug auf die p-Zustandsspannung basiert.
  3. Gerät nach Anspruch 1, wobei der temperaturabhängige Abfluss mindestens teilweise auf einer Spannung und der Temperatur basiert.
  4. Gerät nach Anspruch 1, wobei der temperaturabhängige Abfluss basierend mindestens teilweise auf einer Spannung und gemessenen Temperatur geschätzt wird.
  5. Gerät nach Anspruch 1, wobei Bestimmen der zulässigen thermischen Last ferner umfasst: Berechnen einer Zeit seit einer letzten Aktualisierung; Berechnen eines Temperaturfehlers für jeden Kern; Berechnen eines Fehlerintegrals über ein endliches Abtastzeitfenster; und Berechnen eines Steuerungsausgangs.
  6. Gerät nach Anspruch 5, ferner umfassend, eine Integrationssumme auf ein im Voraus bestimmtes Maximum zu begrenzen, um Integratorüberlauf zu verhindern.
  7. Gerät nach Anspruch 6, ferner umfassend, ein Kennzeichnungsbit zu setzen, wenn die Zeit seit der letzten Aktualisierung außerhalb der Toleranz ist.
  8. Gerät nach Anspruch 5, wobei Berechnen des Steuerungsausgangs ferner umfasst, eine Gleichung Pcontrol = Kp * error + Ki * integralsum zu verwenden.
  9. Gerät nach einem der Ansprüche 1-8, wobei Berechnen der verfügbaren Leistung (Pdyn1) ferner umfasst, eine Gleichung Pdyn1 = Ptotal1 - Pleak1 zu verwenden.
  10. Gerät nach einem der Ansprüche 1-8, wobei das Aktivitätsverhältnis (AR) basierend auf einer Gleichung A R = ( C d y n V 1 2 F r e q 1 ) P d y n 1
    Figure DE112017001772T5_0013
    berechnet wird.
  11. Gerät nach einem der Ansprüche 1-8, wobei Bestimmen der zulässigen thermischen Last ferner umfasst, eine zulässige Leistung aus der zulässigen thermischen Last basierend auf einem Modell, das Leistung und die Temperatur verknüpft, zu bestimmen.
  12. Gerät nach einem der Ansprüche 1-8, wobei Bestimmen der zulässigen thermischen Last ferner umfasst, eine thermische Kopplung zwischen Kernen zu bestimmen.
  13. Gerät nach einem der Ansprüche 1-8, wobei der eine oder die mehreren Prozessoren für eine Steuerungsauslegung mit mehreren Eingängen und mehreren Ausgängen zum Verwalten der Temperatur jedes Kerns konfiguriert sind.
  14. Prozessorsystem zum dynamischen Anpassen von Leistung in einem thermischen Budget, umfassend: eine Zentralverarbeitungseinheit, umfassend eine Menge von Kernen; eine Menge von Temperatursensoren, gekoppelt an die Menge von Kernen; eine Leistungsschnittstelle, konfiguriert zum Bereitstellen eines p-Zustands für jeden Kern aus der Menge von Kernen; Speicher für ein Modell thermischer Dynamik zwischen einer einem Kern bereitgestellten Leistung und einer Kerntemperatur; und einen oder mehrere Prozessoren, konfiguriert zum: Bestimmen eines Steuerungsausgangs für jeden Kern basierend mindestens teilweise auf dem Modell; Berechnen einer Schätzung von temperaturabhängigem Abfluss für jeden Kern; Berechnen einer Schätzung eines Verhältnisses von Aktivität zu Leistung für jeden Kern basierend mindestens teilweise auf einem Durchschnitt vorheriger Abtastwerte; Berechnen einer assoziierten p-Zustandsspannung für jeden Kern für die verbleibende dynamische Leistung basierend mindestens teilweise auf einem Aktivitätsverhältnis; und Auswählen des mit der assoziierten p-Zustandsspannung assoziierten p-Zustands für jeden Kern.
  15. System nach Anspruch 14, wobei Bestimmen des Steuerungsausgangs ferner umfasst: Berechnen einer Zeit seit einer letzten Steuerungsaktualisierung; Berechnen eines Temperaturfehlers für jeden Kern; Berechnen eines Fehlerintegrals über ein endliches Abtastzeitfenster; Begrenzen einer Integrationssumme auf einen maximalen Wert; und Berechnen des Steuerungsausgangs basierend auf dem Fehler und der Integrationssumme.
  16. System nach Anspruch 14, wobei der eine oder die mehreren Prozessoren ferner konfiguriert sind zum Implementieren der assoziierten p-Zustandsspannung jedes Kerns für mindestens eine nächste Abtastperiode.
  17. System nach Anspruch 14, wobei das Modell ferner eine PID-Steuerung, eine PD-Steuerung oder eine PI-Steuerung umfasst.
  18. System nach einem der Ansprüche 14-17, wobei das Modell ferner Daten hinsichtlich einer thermischen Kopplung zwischen Kernen umfasst.
  19. System nach einem der Ansprüche 14-17, wobei das Modell ferner Daten hinsichtlich einer thermischen Dynamik zwischen einer einem Kern bereitgestellten Leistung und einer Prozessortemperatur umfasst.
  20. System nach einem der Ansprüche 14-17, wobei das Modell ferner Daten hinsichtlich des temperaturabhängigen Abflusses umfasst.
  21. System nach einem der Ansprüche 14-17, wobei der temperaturabhängige Abfluss mindestens teilweise auf einer Spannung und einer gemessenen Temperatur basiert.
  22. Computerprogrammprodukt, umfassend ein computerlesbares Speichermedium, das Programmcode zum Bewirken, dass ein oder mehrere Prozessoren ein Verfahren ausführen, speichert, das Verfahren umfassend: Messen einer Temperatur einer Vielzahl von Kernen in einer Zentralverarbeitungseinheit (CPU); Bestimmen eines thermischen Spielraums eines Kerns zwischen einer tatsächlichen Temperatur und einer thermischen Sollleistungstemperatur; Schätzen eines temperaturabhängigen Abflusses für einen Kern basierend auf einer Spannung und einer gemessenen Temperatur; Bestimmen einer verfügbaren Leistung basierend auf dem thermischen Spielraum und dem temperaturabhängigen Abfluss; Bestimmen einer assoziierten p-Zustandsspannung für eine verfügbare Leistung und Kernanforderung; und Aktualisieren eines p-Zustands des Kerns mit der assoziierten p-Zustandsspannung.
  23. Computerprogrammprodukt nach Anspruch 22, wobei Bestimmen der verfügbaren Leistung basierend auf dem thermischen Spielraum und dem temperaturabhängigen Abfluss ferner umfasst, einen Temperaturvorgabewert zwischen der thermischen Sollleistungstemperatur und der gemessenen Temperatur zu setzen.
  24. Computerprogrammprodukt nach Anspruch 22, wobei der temperaturabhängige Abfluss basierend mindestens teilweise auf einer Spannung und einer tatsächlichen Temperatur geschätzt wird.
  25. Computerprogrammprodukt nach Anspruch 22, wobei Bestimmen der verfügbaren Leistung basierend auf dem thermischen Spielraum und dem temperaturabhängigen Abfluss ferner umfasst, den thermischen Spielraum in eine Schätzung einer Leistung, die in dem thermischen Spielraum resultiert, umzuwandeln.
DE112017001772.6T 2016-03-31 2017-01-31 Systeme, Verfahren und Vorrrichtungen zur Verwendung eines thermischen Spielraums eines Kerns in einem Prozessor Pending DE112017001772T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/086,456 2016-03-31
US15/086,456 US10474208B2 (en) 2016-03-31 2016-03-31 Systems, methods and devices for using thermal margin of a core in a processor
PCT/US2017/015868 WO2017172028A1 (en) 2016-03-31 2017-01-31 Systems, methods and devices for using thermal margin of a core in a processor

Publications (1)

Publication Number Publication Date
DE112017001772T5 true DE112017001772T5 (de) 2018-12-20

Family

ID=59961529

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017001772.6T Pending DE112017001772T5 (de) 2016-03-31 2017-01-31 Systeme, Verfahren und Vorrrichtungen zur Verwendung eines thermischen Spielraums eines Kerns in einem Prozessor

Country Status (4)

Country Link
US (1) US10474208B2 (de)
CN (1) CN108780342B (de)
DE (1) DE112017001772T5 (de)
WO (1) WO2017172028A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9563724B2 (en) * 2013-09-28 2017-02-07 International Business Machines Corporation Virtual power management multiprocessor system simulation
US10268248B2 (en) * 2016-08-01 2019-04-23 Microsoft Technology Licensing, Llc Power based thermal management of device
JP2019114009A (ja) * 2017-12-22 2019-07-11 ルネサスエレクトロニクス株式会社 半導体装置、半導体システム、及びその方法
US20220075443A1 (en) * 2018-12-14 2022-03-10 Hewlett-Packard Development Company, L.P. Regulating power core consumption
CN113366409A (zh) * 2019-01-08 2021-09-07 惠普发展公司,有限责任合伙企业 稳定处理设备的性能
CN111665882B (zh) * 2019-03-05 2022-04-22 北京北方华创微电子装备有限公司 温度控制方法及系统
CN111736641B (zh) * 2019-03-25 2021-08-27 鸿富锦精密电子(天津)有限公司 应用于amd平台的过温保护电路
US20220291729A1 (en) * 2019-10-03 2022-09-15 Hewlett-Packard Development Company, L.P. Modify clock-boost parameters
CN113900912B (zh) * 2021-12-10 2022-04-05 飞腾信息技术有限公司 测试方法、测试装置、计算机设备及计算机可读存储介质
US11874717B2 (en) 2022-02-09 2024-01-16 Microsoft Technology Licensing, Llc PSU control based on PSU temperature

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10268963A (ja) * 1997-03-28 1998-10-09 Mitsubishi Electric Corp 情報処理装置
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
US9032223B2 (en) 2008-09-05 2015-05-12 Intel Corporation Techniques to manage operational parameters for a processor
US8135970B2 (en) 2009-03-06 2012-03-13 Via Technologies, Inc. Microprocessor that performs adaptive power throttling
US8509959B2 (en) * 2010-08-12 2013-08-13 Schneider Electric It Corporation System and method for predicting transient cooling performance for a data center
US8601298B2 (en) * 2010-09-15 2013-12-03 Qualcomm Incorporated System and method for determining optimal operating parameters for conserving power in a portable device from a hypersurface which represents optimal values of the operating parameters under various synthetic workloads
US9753516B2 (en) 2011-12-22 2017-09-05 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation by mitigating performance variations between integrated circuit devices
US9804656B2 (en) 2012-09-29 2017-10-31 Intel Corporation Micro-architectural energy monitor event-assisted temperature sensing
US10151786B2 (en) * 2013-09-09 2018-12-11 Advanced Micro Devices, Inc. Estimating leakage currents based on rates of temperature overages or power overages
US9483092B2 (en) 2013-10-14 2016-11-01 Advanced Micro Devices, Inc. Performance state boost for multi-core integrated circuit
US9927866B2 (en) * 2013-11-21 2018-03-27 Qualcomm Incorporated Method and system for optimizing a core voltage level and enhancing frequency performance of individual subcomponents for reducing power consumption within a PCD
US10031180B2 (en) * 2015-07-22 2018-07-24 International Business Machines Corporation Leakage power characterization at high temperatures for an integrated circuit

Also Published As

Publication number Publication date
CN108780342B (zh) 2022-08-09
CN108780342A (zh) 2018-11-09
US20170285700A1 (en) 2017-10-05
US10474208B2 (en) 2019-11-12
WO2017172028A1 (en) 2017-10-05

Similar Documents

Publication Publication Date Title
DE112017001772T5 (de) Systeme, Verfahren und Vorrrichtungen zur Verwendung eines thermischen Spielraums eines Kerns in einem Prozessor
US20210247829A1 (en) Holistic global performance and power management
US10671404B2 (en) Systems, methods and devices for dynamic power management of devices using game theory
US9223383B2 (en) Guardband reduction for multi-core data processor
Karpuzcu et al. VARIUS-NTV: A microarchitectural model to capture the increased sensitivity of manycores to process variations at near-threshold voltages
Harman et al. Cloud engineering is search based software engineering too
US20150095009A1 (en) Virtual power management multiprocessor system simulation
US20160274636A1 (en) Gpu power measuring method of heterogeneous multi-core system
DE112017001805T5 (de) Bestimmen von thermischen obergrenzen in einem prozessor mit mehreren dies
DE102019112776A1 (de) Thermisches selbstlernen mit durch bestärkung lernendem agenten
DE102013109014A1 (de) Dynamisches Spannungs- und Frequenzskalierungsverfahren und -vorrichtung
Haj-Yahya et al. SysScale: Exploiting multi-domain dynamic voltage and frequency scaling for energy efficient mobile processors
DE102019109357A1 (de) Selektive ausführung von cache-linien-ausräumoperationen
DE102021119090A1 (de) Einrichtung und verfahren für energieeffiziente kernspannungsauswahl
DE202022002976U1 (de) Skalierbares System-on-a-Chip
DE112017001012T5 (de) Prozessoren, verfahren und systeme zum einstellen maximaler taktfrequenzen basierend auf dem befehlstyp
US20170078373A1 (en) Dynamically reallocating resources for optimized job performance in distributed heterogeneous computer system
Omara et al. Optimum resource allocation of database in cloud computing
DE102020130910A1 (de) System, vorrichtung und verfahren für dynamische energiezustandsskalierung eines spannungsreglers für einen prozessor
DE102018214008A1 (de) Dynamische Plattformmerkmaleinstellung basierend auf Laufzeiterfordernissen virtueller Maschinen
DE102020128219A1 (de) System, Einrichtung und Verfahren zur Latenzüberwachung und Reaktion
US20140059371A1 (en) Power management of multiple compute units sharing a cache
DE102022133747A1 (de) Vorrichtungen, systeme und verfahren für das intelligente abstimmen von übertaktungsfrequenz
DE112019002564T5 (de) System, Vorrichtung und Verfahren zur dynamischen Wärmeverteilung eines Ein-Chip-Systems
DE102023101325A1 (de) Systeme, vorrichtungen und verfahren zur leistungsverwaltung und leistungsschätzung

Legal Events

Date Code Title Description
R012 Request for examination validly filed