DE112017001805T5 - Bestimmen von thermischen obergrenzen in einem prozessor mit mehreren dies - Google Patents

Bestimmen von thermischen obergrenzen in einem prozessor mit mehreren dies Download PDF

Info

Publication number
DE112017001805T5
DE112017001805T5 DE112017001805.6T DE112017001805T DE112017001805T5 DE 112017001805 T5 DE112017001805 T5 DE 112017001805T5 DE 112017001805 T DE112017001805 T DE 112017001805T DE 112017001805 T5 DE112017001805 T5 DE 112017001805T5
Authority
DE
Germany
Prior art keywords
thermal
die
processor
load curve
upper limit
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
DE112017001805.6T
Other languages
English (en)
Inventor
Sandeep Ahuja
Jeremy RIDGE
Michael Berktold
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 DE112017001805T5 publication Critical patent/DE112017001805T5/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
    • 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/3243Power saving in microcontroller unit
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

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

Abstract

Bei einer Ausführungsform umfasst ein Prozessor Folgendes: einen ersten Die, beinhaltend mindestens einen Kern und mindestens einen ersten Die-Wärmesensor; einen zweiten Die, beinhaltend mindestens einen Speicher und mindestens einen zweiten Die-Wärmesensor; und einen Wärmeregler zum Empfangen von ersten thermischen Daten von dem mindestens einen ersten Die-Wärmesensor und zweiten thermischen Daten von dem mindestens einen zweiten Die-Wärmesensor, zum Berechnen einer ersten thermischen Obergrenze für den ersten Die, zumindest teilweise basierend auf den ersten thermischen Daten und einer ersten thermischen Lastkurve für den ersten Die, und zum Berechnen einer zweiten thermischen Obergrenze für den zweiten Die, zumindest teilweise basierend auf den zweiten thermischen Daten und einer zweiten thermischen Lastkurve für den zweiten Die. Weitere Ausführungsformen sind beschrieben und beansprucht.

Description

  • Technisches Gebiet
  • Ausführungsformen betreffen das Wärmemanagement eines Systems und insbesondere das Wärmemanagement einer integrierten Schaltung mit mehreren Dies.
  • Hintergrund
  • Fortschritte in der Halbleiterfertigung und im Logikdesign haben eine Zunahme der Menge an Logik gestattet, die in integrierten Schaltungsvorrichtungen vorhanden sein kann. Im Ergebnis haben sich die Konfigurationen der Computersysteme von einer einzigen oder mehreren integrierten Schaltungen in einem System hin zu mehreren Hardware-Threads, mehreren Kernen, mehreren Vorrichtungen und/oder vollständigen Systemen in einzelnen integrierten Schaltungen entwickelt. Weil außerdem die Dichte der integrierten Schaltungen zugenommen hat, sind die Anforderungen an die Leistung und das Wärmemanagement für Datenverarbeitungssysteme (von eingebetteten Systemen bis hin zu Servern) ebenfalls stark gestiegen. Ferner haben auch Ineffizienzen bei der Software und deren Anforderungen an die Hardware einen Anstieg des Energieverbrauchs bei Datenverarbeitungsvorrichtungen verursacht. In der Tat geben einige Studien an, dass Datenverarbeitungsvorrichtungen einen beträchtlichen prozentualen Anteil der gesamten Elektrizitätsversorgung für ein Land, wie etwa die Vereinigten Staaten von Amerika, verbrauchen. Im Ergebnis besteht im Zusammenhang mit integrierten Schaltungen die zwingende Notwendigkeit nach Energieeffizienz und -einsparung. Diese Notwendigkeit wird noch zunehmen, wenn Server, Desktop-Computer, Notebooks, Ultrabooks™, Tablets, Mobiltelefone, Prozessoren, eingebettete Systeme usw. sogar noch weiter verbreitet werden (von ihrer Einbindung in den typischen Computer, Kraftfahrzeuge und Fernsehgeräte bis hin zur Biotechnologie).
  • Um modernen Prozessoren eine langfristige Lebensdauer zu ermöglichen, wird eine Spezifikationsmethodik für thermische Lastkurven verwendet. Diese Methodik fordert einen Betrieb bei niedrigerer Temperatur bei niedrigeren Leistungsstufen, und ein Betrieb bei höherer Temperatur wird zugelassen, wenn der Prozessor eine höhere Leistung abführt. Diese Spezifikation wird in der Regel als ein Temperaturverlauf bezüglich der Leistung umgesetzt. Indem ein Prozessor durch diese Methodik gesteuert wird, wird eine durchschnittliche Betriebstemperatur der Vorrichtung über ihre Lebensdauer reduziert. Obwohl diese Lastkurven-Spezifikationsmethodik für einen einzelnen Die gut funktioniert, erstreckt sie sich nicht auf Prozessoren mit mehreren Dies, da unterschiedliche, in ein Modul integrierte Dies unterschiedliche Temperaturgrenzen aufweisen. Die Lastkurven-Spezifikation erstreckt sich ebenfalls nicht, wenn die Leistung des Moduls die Summe der Leistungen aller Vorrichtungen in dem Modul bildet und sich die Betriebstemperatur der Dies in dem Modul nicht nur aus der Gesamtleistung des Moduls bestimmt, sondern auch dadurch, wie die Leistung unter den verschiedenen Dies verteilt wird.
  • Figurenliste
    • 1 ist ein Blockschaltbild eines Teils eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 2 ist ein Blockschaltbild eines Prozessors gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 3 ist ein Blockschaltbild eines Prozessors mit mehreren Domänen gemäß einer anderen Ausführungsform der vorliegenden Erfindung.
    • 4 ist eine Ausführungsform eines Prozessors einschließlich mehrerer Kerne.
    • 5 ist ein Blockschaltbild einer Mikroarchitektur eines Prozessorkerns gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 6 ist ein Blockschaltbild einer Mikroarchitektur eines Prozessorkerns gemäß einer anderen Ausführungsform.
    • 7 ist ein Blockschaltbild einer Mikroarchitektur eines Prozessorkerns gemäß einer noch anderen Ausführungsform.
    • 8 ist ein Blockschaltbild einer Mikroarchitektur eines Prozessorkerns gemäß noch einer weiteren Ausführungsform.
    • 9 ist ein Blockschaltbild eines Prozessors gemäß einer anderen Ausführungsform der vorliegenden Erfindung.
    • 10 ist ein Blockschaltbild eines typischen SoC gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 11 ist ein Blockschaltbild eines anderen beispielhaften SoC gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 12 ist ein Blockschaltbild eines beispielhaften Systems, bei dem Ausführungsformen verwendet werden können.
    • 13 ist ein Blockschaltbild eines anderen beispielhaften Systems, bei dem Ausführungsformen verwendet werden können.
    • 14 ist ein Blockschaltbild eines typischen Computersystems.
    • 15 ist ein Blockschaltbild eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 16 ist ein Blockschaltbild eines Multi-Chip-Moduls gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 17 ist eine thermische Lastkurve für eine typische Die-Komponente eines Prozessormoduls gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 18 ist ein Flussdiagramm eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 19 ist ein Flussdiagramm eines Verfahrens gemäß einer anderen Ausführungsform der vorliegenden Erfindung.
    • 20 ist ein Flussdiagramm eines Verfahrens zum Regeln einer Kühllösung gemäß einer Ausführungsform.
    • 21 ist ein Blockschaltbild, das ein Entwicklungssystem für einen IP-Kern darstellt, das zum Herstellen eines integrierten Schaltkreises verwendet wird, um Operationen gemäß einer Ausführungsform durchzuführen.
  • Ausführliche Beschreibung
  • Obwohl die folgenden Ausführungsformen Bezug nehmend auf die Wärmeregulierung und Energieeinsparung und Energieeffizienz bei spezifischen integrierten Schaltungen, wie etwa bei Datenverarbeitungsplattformen oder -prozessoren, beschrieben werden, sind andere Ausführungsformen auf andere Typen von integrierten Schaltungen und logischen Vorrichtungen anwendbar. Ähnliche Techniken und Lehren hier beschriebener Ausführungsformen können auf andere Typen von Schaltungen oder Halbleitervorrichtungen angewendet werden, die ebenfalls von einer besseren Energieeffizienz und Energieeinsparung profitieren können. Die offenbarten Ausführungsformen sind beispielsweise nicht auf einen bestimmten Typ von Computersystemen beschränkt. Das heißt, dass die offenbarten Ausführungsformen bei vielen verschiedenen Systemarten verwendet werden können, die von Servercomputern (z. B. Tower-, Rack-, Blade-, Mikroserver und so weiter), Kommunikationssystemen, Speichersystemen, Desktop-Computern jeder Konfigurierung, Laptop-, Notebook- und Tablet-Computern (einschließlich 2 in 1-Tablets, Phablets und so weiter) reichen, und können auch in anderen Vorrichtungen wie etwa tragbaren Vorrichtungen, Ein-Chip-Systemen (systems on chip - SoCs) und eingebetteten Anwendungen verwendet werden. Einige Beispiele für tragbare Vorrichtungen beinhalten Mobiltelefone wie etwa Smartphones, Internetprotokollvorrichtungen, digitale Kameras, persönliche digitale Assistenten (PDAs) und tragbare PCs. Eingebettete Anwendungen können in der Regel einen Mikrocontroller, einen digitalen Signalprozessor (DSP), Netzwerkcomputer (NetPC), Set-Top-Boxen, Netzwerk-Hubs, Weitverkehrsnetzwerk (wide area network - WAN)-Weichen (switches), am Körper tragbare Vorrichtungen oder jedes andere System beinhalten, das die nachstehend gelehrten Funktionen und Operationen durchführen kann.
  • Bei verschiedenen Ausführungsformen können mehrere thermische Lastkurven in einem Prozessor mit mehreren Dies (wie etwa einem Multi-Chip-Modul (multi-chip package - MCP)) jeweils für einen Die des Moduls implementiert werden. Diese mehreren thermischen Lastkurven können genutzt werden, um thermische Betriebsparameter dynamisch zu bestimmen und zumindest bestimmte Informationen an ein oder mehrere Ziele, einschließlich einem externen Platform-Controller, bereitzustellen. Außerdem können die thermischen Betriebsparameter, die berechnet oder anderweitig bestimmt wurden, zur Regelung der Betriebsparameter und des Energiemanagements des Prozessors verwendet werden.
  • Ausführungsformen stellen ferner Techniken zum Bereitstellen von Echtzeitmetriken zur Einhaltung der Spezifikation bereit. Zumindest teilweise basierend auf thermischen Betriebsparametern, die wie hier beschrieben erhalten werden, kann eine Drosselungssituation durch Aufrechterhalten einer optimalen Obergrenze bis hin zu einer Drosselungsstufe vermieden werden, indem ein erfasster Grenzschichttemperatur (Tj)-Wert und eine Verlustleistung; der Tj-Grenzwert und der Grenzwert der thermischen Verlustleistung (thermal design power - TDP) für jeden Die-Typ berücksichtigt werden. Ausführungsformen ermöglichen, dass sich eine Drosselungsobergrenze bis nahe Null erstreckt, wenn die Verlustleistung eines gegebenen Dies bereits nahe an dessen TDP-Grenzwert liegt. Somit ermöglichen Ausführungsformen eine Spezifikation von einer oder mehreren thermischen Lastkurven für ein MCP, um eine Möglichkeit zur Maximierung der Produktleistung umzusetzen, während die Lüfterdrehzahl minimiert wird. Bei einigen Ausführungsformen kann ein Power-Controller Energiemanagement-Code oder sogenannten p-Code beinhalten, der bei einer Ausführungsform als Mikrocode eines eigenen Mikrocontrollers eines Prozessors implementiert werden kann, um eine optimale thermische Obergrenze zu berechnen, um eine Drosselung zu verhindern. Bei einer Ausführungsform kann dieser optimale Wert basierend auf einer bestimmten Verlustleistung und dem aktuellen Tj eines jeden Dies und dessen Tj- und TDP-Grenzwerten berechnet werden. Die thermischen Spezifikationen eines Multi-Chip-Moduls, wie hier beschrieben, stellen thermische Lastkurven-Merkmale bereit, welche die durchschnittliche Betriebstemperatur der Vorrichtung über deren Lebensdauer senken und ferner verwendet werden können, um eine thermische Obergrenze zu berechnen, die einer Plattform für die Lüfterdrehzahl oder eine andere Kühllösungsverwaltung vorgelegt werden kann.
  • Nun Bezug nehmend auf 1 ist ein Blockschaltbild eines Teils eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 1 gezeigt, kann das System 100 verschiedene Komponenten einschließlich eines Prozessors 110 beinhalten, der als ein Mehrkernprozessor gezeigt ist und als ein Prozessor mit einem Die oder mehreren Dies implementiert sein kann. Der Prozessor 110 kann über einen externen Spannungsregler 160, der eine erste Spannungsumwandlung durchführen kann, um dem Prozessor 110 eine geregelte Primärspannung Vreg bereitzustellen, mit einer Stromversorgung 150 gekoppelt sein.
  • Wie zu erkennen ist, kann der Prozessor 110 ein Prozessor mit einem Die einschließlich mehrerer Kerne 120a - 120n sein. Außerdem kann jeder Kern mit einem integrierten Spannungsregler (integrated voltage regulator - IVR) 125a - 125n verbunden sein, der die geregelte Primärspannung empfängt und eine Betriebsspannung generiert, die einem oder mehreren Agenten des dem IVR verbundenen Prozessors bereitzustellen. Dementsprechend kann eine IVR-Implementierung bereitgestellt werden, um eine feinkörnige Regelung der Spannung und somit der Leistungsfähigkeit und der Leistung jedes einzelnen Kerns zu gestatten. Somit kann jeder Kern bei einer unabhängigen Spannung und einer unabhängigen Frequenz arbeiten, was eine hohe Flexibilität ermöglicht und umfangreiche Möglichkeiten für das Ausgleichen des Energieverbrauchs mit der Leistung bietet. Bei einigen Ausführungsformen ermöglicht die Verwendung mehrerer IVRs das Gruppieren von Komponenten in separate Stromversorgungsebenen, sodass der Strom durch den IVR reguliert wird und nur bestimmten Komponenten in der Gruppe zugeführt wird. Während des Energiemanagements kann eine gegebene Stromversorgungsebene eines IVR heruntergefahren oder abgeschaltet werden, wenn der Prozessor in einen gewissen Niedrigenergiezustand versetzt wird, während eine andere Stromversorgungsebene eines anderen IVR aktiv oder vollständig mit Strom versorgt bleibt. Ähnlich können die Kerne 120 unabhängige Takterzeugungsschaltungen beinhalten oder damit verknüpft sein, wie etwa eine oder mehrere Phasenregelschleifen (phase lock loops - PLLs) zum unabhängigen Regeln der Betriebsfrequenz jedes Kerns 120.
  • Noch Bezug nehmend auf 1 können zusätzliche Komponenten innerhalb des Prozessors vorhanden sein, einschließlich einer Eingabe-/Ausgabeschnittstelle (input/output interface - IF) 132, einer weiteren Schnittstelle 134 und einer integrierten Speichersteuerung (integrated memory controller - IMC) 136. Wie zu erkennen ist, kann jede dieser Komponenten von einem anderen integrierten Spannungsregler 125x mit Energie versorgt werden. Bei einer Ausführungsform kann die Schnittstelle 132 den Betrieb einer Intel® Quick Path Interconnect (QPI)-Verbindung ermöglichen, die Punkt-zu-Punkt (point-to-point - PtP)-Verbindungen in einem Cache-kohärenten Protokoll bereitstellt, das mehrere Schichten einschließlich einer physischen Schicht, einer Verbindungsschicht und einer Protokollschicht beinhaltet. Die Schnittstelle 134 kann wiederum über ein Peripheriekomponenten-Verbindungsexpress (Peripheral Component Interconnect Express - PCIe™)-Protokoll kommunizieren.
  • Ebenfalls gezeigt ist eine Power Control Unit (PCU) 138, die Schaltungen einschließlich Hardware, Software und/oder Firmware beinhalten kann, um Operationen zum Wärme- und Energiemanagement bezüglich des Prozessors 110 durchzuführen. Wie zu erkennen ist, stellt die PCU 138 Regelungsinformationen über eine digitale Schnittstelle 162 an den externen Spannungsregler 160 bereit, um den Spannungsregler zu veranlassen, die angemessene geregelte Spannung zu generieren. Die PCU 138 stellt dem IVR 125 ebenfalls Regelungsinformationen über eine andere digitale Schnittstelle 163 bereit, um die generierte Betriebsspannung zu regeln (oder um zu veranlassen, dass ein entsprechender IVR in einem Niedrigenergiemodus deaktiviert wird). Bei verschiedenen Ausführungsformen kann die PCU 138 eine Vielfalt von logischen Einheiten zum Energiemanagement beinhalten, um ein hardwarebasiertes Energiemanagement durchzuführen. Ein derartiges Energiemanagement kann gänzlich prozessorgeregelt sein (z. B. durch verschiedene Prozessorhardware, und es kann durch die Auslastung und/oder Leistung, thermische oder andere Prozessorvorgaben ausgelöst werden) und/oder das Energiemanagement kann in Reaktion auf externe Quellen (wie etwa eine Plattform- oder Energiemanagement-Quelle oder Systemsoftware) durchgeführt werden. Außerdem kann die PCU 138 eine Wärmeregulierung wie hier beschrieben durchführen, einschließlich einer Berechnung einer minimalen thermischen Obergrenze und der Kommunikation derselben an einen externen Platform-Controller.
  • In 1 ist die PCU 138 als vorliegend als eine separate Logik des Prozessors dargestellt. In anderen Fällen kann die PCU-Logik 138 auf einem oder mehreren gegebenen Kernen 120 ausgeführt werden. In einigen Fällen kann die PCU 138 als ein Mikrocontroller (Spezial- oder Allzweck-) oder andere Regelungslogik implementiert sein, die konfiguriert ist, ihren eigenen Energiemanagement-Code auszuführen, der manchmal als P-code bezeichnet wird. Bei noch anderen Ausführungsformen können von der PCU 138 durchzuführende Energiemanagement-Operationen extern zu einem Prozessor implementiert sein, wie etwa mittels einer separaten integrierten Energiemanagementschaltung (power management integrated circuit - PMIC) oder einer anderen Komponente, die extern zu dem Prozessor liegt. Bei noch anderen Ausführungsformen können von der PCU 138 durchzuführende Energiemanagement-Operationen innerhalb des BIOS oder anderer Systemsoftware implementiert sein.
  • Ausführungsformen können besonders geeignet für einen Mehrkernprozessor sein, in dem jeder von mehreren Kernen an einem unabhängigen Spannungs- und Frequenzpunkt arbeiten kann. Wie hier verwendet, wird der Begriff „Domäne“ verwendet, um eine Ansammlung von Hardware und/oder Logik zu bedeuten, die an dem gleichen Spannungs- und Frequenzpunkt arbeitet. Außerdem kann ein Mehrkernprozessor ferner andere Nicht-Kern-Verarbeitungsengines beinhalten, wie etwa Einheiten mit festgelegten Funktionen, Grafik-Engines und so weiter. Ein solcher Prozessor kann von den Kernen verschiedene unabhängige Domänen beinhalten, wie etwa eine oder mehrere mit einer Grafik-Engine verknüpfte Domänen (hier als eine Grafik-Domäne bezeichnet) und eine oder mehrere Domänen, die mit Nicht-Kern-Schaltungen verknüpft sind, die hier als Nicht-Kern (uncore) oder als Systemdienst bezeichnet werden. Obwohl viele Implementierungen eines Prozessors mit mehreren Domänen auf einem einzelnen Die ausgebildet werden können, können andere Implementierungen durch ein Multi-Chip-Modul umgesetzt werden, in welchem unterschiedliche Domänen auf unterschiedlichen Dies eines einzelnen Moduls vorhanden sein können.
  • Obwohl zur Einfachheit der Darstellung nicht gezeigt, versteht es sich, dass zusätzliche Komponenten innerhalb des Prozessors 110 wie etwa Nicht-Kern-Logik und andere Komponenten wie etwa interne Speicher, z. B. eine oder mehrere Ebenen einer Cache-Hierarchie und so weiter vorhanden sein können. Ferner, obwohl die Implementierung aus 1 mit einem integrierten Spannungsregler dargestellt ist, sind die Ausführungsformen nicht derart eingeschränkt. Andere geregelte Spannungen können den chipinternen Ressourcen beispielsweise von einem externen Spannungsregler 160 oder von einer oder mehreren externen Quellen von geregelter Spannung bereitgestellt werden.
  • Es ist zu beachten, dass die hier beschriebenen Energiemanagementtechniken unabhängig von und ergänzend zu einem Betriebssystem (operating system - OS)-basierten Energiemanagement (OSPM)-Mechanismus sein können. Gemäß einer beispielhaften OSPM-Technik kann ein Prozessor in verschiedenen Leistungszuständen oder -ebenen, sogenannten P-Zuständen, und zwar von P0 bis PN, arbeiten. Im Allgemeinen kann der P1-Leistungszustand dem höchsten garantierten Leistungszustand entsprechen, der von einem OS angefordert werden kann. Zusätzlich zu diesem P1-Zustand kann das OS ferner einen höheren Leistungszustand anfordern, und zwar einen P0-Zustand. Dieser P0-Zustand kann somit ein opportunistischer, übertaktender oder Turbo-Modus-Zustand sein, in dem, sofern die Energie und/oder das thermische Budget verfügbar sind, die Prozessorhardware den Prozessor oder zumindest Teile davon konfigurieren kann, bei einer höheren als der garantierten Frequenz zu arbeiten. Bei vielen Implementierungen kann ein Prozessor mehrere sogenannte Klassenfrequenzen oberhalb der garantierten maximalen P1-Frequenz beinhalten, die bis zu einer maximalen Spitzenfrequenz des spezifischen Prozessors reichen, wie fusioniert oder anderweitig während der Herstellung in den Prozessor eingeschrieben. Außerdem kann ein Prozessor gemäß eines OSPM-Mechanismus in verschiedenen Betriebszuständen oder Betriebsstufen arbeiten. Hinsichtlich der Betriebszustände kann ein OSPM-Mechanismus unterschiedliche Energieverbrauchszustände festlegen, die allgemein als C-Zustände, C0-, C1- bis Cn-Zustände bezeichnet werden. Wenn ein Kern aktiv ist, läuft er in einem C0-Zustand, und wenn der Kern im Leerlauf ist, kann er in einen Niedrigenergiezustand des Kerns versetzt werden, der auch Kern-Nicht-Null-C-Zustand genannt wird (z. B. C1-C6-Zustände), wobei jeder C-Zustand auf einer niedrigeren Energieverbrauchsstufe liegt (sodass C6 ein tieferer Niedrigenergiezustand als C1 ist und so weiter).
  • Es versteht sich, dass bei unterschiedlichen Ausführungsformen viele unterschiedliche Typen von Energiemanagementtechniken einzeln oder in Kombination verwendet werden können. Als typische Beispiele kann ein Power-Controller den Prozessor derart regeln, dass seinen Energieverbrauch durch eine Form der Verringerung der Versorgungsspannung und der Taktfrequenz (dynamic voltage frequency scaling - DVFS) geregelt wird, bei der eine Betriebsspannung und/oder eine Betriebsfrequenz von einem oder mehreren Kernen oder andere Prozessorlogik dynamisch geregelt werden können, um den Energieverbrauch in bestimmten Situationen zu reduzieren. In einem Beispiel kann DVFS unter Verwendung der Enhanced Intel SpeedStep™-Technologie durchgeführt werden, die von Intel Corporation, Santa Clara, CA verfügbar ist, um eine optimale Leistung auf der niedrigsten Energieverbrauchsstufe bereitzustellen. In einem anderen Beispiel kann DVFS unter Verwendung der Intel TurboBoost™-Technologie durchgeführt werden, um einen oder mehrere Kerne oder andere Datenverarbeitungs-Engines zu befähigen, basierend auf Bedingungen (z. B. Auslastung und Verfügbarkeit) bei einer höheren als der garantierten Betriebsfrequenz zu arbeiten.
  • Eine andere Energiemanagementtechnik, die in bestimmten Beispielen angewendet werden kann, ist dynamisches Umlagern (swapping) von Auslastungen zwischen unterschiedlichen Datenverarbeitungs-Engines. Der Prozessor kann beispielsweise asymmetrische Kerne oder andere Verarbeitungs-Engines beinhalten, die auf unterschiedlichen Energieverbrauchsstufen arbeiten, sodass in einer Situation mit vorgegebener Leistung eine oder mehrere Auslastungen dynamisch umgelagert werden können, um auf einem Kern mit niedrigerem Stromverbrauch oder einer anderen Datenverarbeitungs-Engine ausgeführt zu werden. Eine andere beispielhafte Energiemanagementtechnik besteht in der Anpassung des Hardware-Arbeitszyklus (hardware duty cycling - HDC), welcher Kerne und/oder andere Datenverarbeitungs-Engines veranlassen kann, gemäß einem Arbeitszyklus periodisch aktiviert und deaktiviert zu werden, sodass ein oder mehrere Kerne während einer inaktiven Periode des Arbeitszyklus inaktiviert werden können und während einer aktiven Periode des Arbeitszyklus aktiviert werden können.
  • Energiemanagementtechniken können auch verwendet werden, wenn Vorgaben in einer Betriebsumgebung vorliegen. Wenn beispielsweise eine Energie- und/oder eine thermische Vorgabe angetroffen wird, kann die Leistung durch Reduzieren der Betriebsfrequenz und/oder -spannung reduziert werden. Andere Energiemanagementtechniken beinhalten das Drosseln der Ausführungsgeschwindigkeit von Befehlen oder das Begrenzen der Ablaufplanung von Befehlen. Weiter noch ist es möglich, dass Befehle einer gegebenen Befehlssatzarchitektur eine ausdrückliche oder implizite Anweisung bezüglich Energiemanagement-Operationen beinhalten. Obwohl mit diesen spezifischen Beispielen beschrieben, versteht es sich, dass viele andere Energiemanagementtechniken bei spezifischen Ausführungsformen verwendet werden können.
  • Ausführungsformen können in Prozessoren für verschiedene Märkte implementiert sein, einschließlich Serverprozessoren, Desktop-Prozessoren, mobilen Prozessoren und so weiter. Nun Bezug nehmend auf 2 ist ein Blockschaltbild eines Prozessors gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 2 gezeigt, kann der Prozessor 200 ein Mehrkernprozessor sein, der mehrere Kerne 210a - 210n beinhaltet. Bei einer Ausführungsform kann jeder dieser Kerne von einer unabhängigen Leistungsdomäne sein und kann konfiguriert sein, basierend auf der Auslastung in aktive Zustände und/oder maximale Leistungszustände einzutreten und dieselben zu verlassen. Ein oder mehrere Kerne 210 können gegenüber den anderen Kernen heterogen sein und z. B. unterschiedliche Mikroarchitekturen, Befehlssatzarchitekturen, Pipelinetiefen, Energie- und Leistungsvermögen aufweisen. Die verschiedenen Kerne können über eine Verbindung 215 mit einem Systemdienst oder Nicht-Kern 220 gekoppelt sein, der verschiedene Komponenten beinhaltet. Wie zu erkennen ist, kann der Nicht-Kern 220 einen gemeinsam genutzten Cache 230 beinhalten, der ein Cache der letzten Ebene (last level cache) sein kann. Außerdem kann der Nicht-Kern eine integrierte Speichersteuerung 240 zum Kommunizieren mit einem Systemspeicher (in 2 nicht gezeigt), z. B. über einen Speicherbus, beinhalten. Der Nicht-Kern 220 beinhaltet auch verschiedene Schnittstellen 250 und eine Power Control Unit 255, die Logik beinhalten kann, um die hier beschriebenen Wärme- und Energiemanagementtechniken durchzuführen.
  • Außerdem kann durch die Schnittstellen 250a-250n eine Verbindung zu verschiedenen chipexternen Komponenten wie etwa Peripheriegeräten, Massenspeichern und so weiter hergestellt werden. Obwohl in der Ausführungsform aus 2 mit dieser spezifischen Implementierung gezeigt, ist der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt. Es versteht sich beispielsweise, dass ein Prozessormodul mehrere Dies beinhalten kann, einschließlich eines oder mehrerer Prozessor-Dies, Speicher-Dies und Fabric-Dies.
  • Nun Bezug nehmend auf 3 ist ein Blockschaltbild eines Prozessors mit mehreren Domänen gemäß einer anderen Ausführungsform der vorliegenden Erfindung gezeigt. Wie in der Ausführungsform aus 3 gezeigt, beinhaltet der Prozessor 300 mehrere Domänen. Konkret kann eine Kern-Domäne 310 mehrere Kerne 310a-310n beinhalten, eine Grafik-Domäne 320 kann eine oder mehrere Grafik-Engines beinhalten und ferner kann eine Systemdienst-Domäne 350 vorhanden sein. Bei einigen Ausführungsformen kann eine Systemdienst-Domäne 350 bei einer unabhängigen Frequenz als die Kern-Domäne ausgeführt werden und kann jederzeit eingeschaltet bleiben, um Stromversorgungregelungsereignisse und das Energiemanagement so zu bearbeiten, dass die Domänen 310 und 320 geregelt werden können, um dynamisch in Hochleistungs- und Niedrigleistungszustände einzutreten und dieselben zu verlassen. Jede der Domänen 310 und 320 kann bei einer unterschiedlichen Spannung und/oder Leistung arbeiten. Es ist zu beachten, dass, obwohl nur drei Domänen gezeigt sind, es sich versteht, dass der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt ist und zusätzliche Domänen bei anderen Ausführungsformen vorhanden sein können. Es können beispielsweise mehrere Kern-Domänen vorhanden sein, von denen jede mindestens einen Kern beinhaltet.
  • Im Allgemeinen kann jeder Kern 310 zusätzlich zu verschiedenen Ausführungseinheiten und zusätzlichen Verarbeitungselementen ferner niedere Caches (low level caches) beinhalten. Die verschiedenen Kerne können wiederum miteinander und mit einem gemeinsamen Cache-Speicher, der aus mehreren Einheiten eines Caches der höchsten Ebene (last level cache - LLC) 340a - 340n ausgebildet ist, gekoppelt sein. Bei verschiedenen Ausführungsformen kann der LLC 340 von den Kernen und der Grafik-Engine sowie verschiedenen Schaltungen zur Verarbeitung von Medien gemeinsam genutzt werden. Wie zu erkennen ist, koppelt somit eine Ringverbindung 330 die Kerne zusammen und stellt eine Verbindung zwischen den Kernen, der Grafik-Domäne 320 und der Systemdienstschaltung 350 bereit. Bei einer Ausführungsform kann die Verbindung 330 ein Teil der Kern-Domäne sein. Bei anderen Ausführungsformen jedoch kann die Ringverbindung ihre eigene Domäne darstellen.
  • Wie ferner zu erkennen ist, kann die Systemdienst-Domäne 350 eine Anzeigesteuerung 352 beinhalten, welche die Steuerung einer zugehörigen Anzeige und eine Schnittstelle zu derselben bereitstellen kann. Wie ferner zu erkennen ist, kann die Systemdienst-Domäne 350 eine Power Control Unit 355 beinhalten, die Logik beinhalten kann, um die hier beschriebenen Wärme- und Energiemanagement-Techniken durchzuführen.
  • Wie ferner in 3 zu erkennen ist, kann der Prozessor 300 ferner eine integrierte Speichersteuerung (integrated memory controller - IMC) 370 beinhalten, die eine Schnittstelle zu einem Systemspeicher bereitstellen kann, wie etwa einem dynamischen Direktzugriffsspeicher (dynamic random access memory - DRAM). Mehrere Schnittstellen 380a - 380n können vorhanden sein, um eine Verbindung zwischen dem Prozessor und anderen Schaltungen zu ermöglichen. Bei einer Ausführungsform können beispielsweise mindestens eine direkte Medienschnittstellen (direct media interface - DMI)-Schnittstelle sowie eine oder mehrere PCIe™-Schnittstellen bereitgestellt werden. Noch ferner können auch eine oder mehrere QPI-Schnittstellen bereitgestellt werden, um Kommunikationen zwischen anderen Agenten wie etwa zusätzlichen Prozessoren oder anderen Schaltungen bereitzustellen. Obwohl auf dieser hohen Stufe bei der Ausführungsform aus 3 gezeigt, versteht es sich, dass der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt ist.
  • Bezug nehmend auf 4 ist eine Ausführungsform eines Prozessors einschließlich mehrerer Kerne dargestellt. Der Prozessor 400 beinhaltet jeden Prozessor oder Verarbeitungsvorrichtung wie etwa einen Mikroprozessor, einen eingebetteten Prozessor, einen digitalen Signalprozessor (DSP), einen Netzwerkprozessor, einen tragbaren Prozessor, einen Anwendungsprozessor, einen Co-Prozessor, ein System auf einem Chip (system on a chip - SoC) oder eine andere Vorrichtung zum Ausführen von Code. Der Prozessor 400 beinhaltet bei einer Ausführungsform mindestens zwei Kerne, die Kerne 401 und 402, die asymmetrische Kerne oder symmetrische Kerne beinhalten können (die dargestellte Ausführungsform). Der Prozessor 400 kann jedoch jede Anzahl von Verarbeitungselementen beinhalten, die symmetrisch oder asymmetrisch sein können.
  • Bei einer Ausführungsform bezieht sich ein Verarbeitungselement auf Hardware oder Logik zum Unterstützen eines Software-Threads. Beispiele für Hardware-Verarbeitungselemente beinhalten Folgendes: eine Thread-Einheit, einen Thread-Schlitz, einen Thread, eine Verarbeitungseinheit, einen Kontext, eine Kontext-Einheit, einen Logikprozessor, einen Hardware-Thread, einen Kern und/oder jedes andere Element, das dazu geeignet ist, einen Zustand für einen Prozessor aufrechtzuerhalten, wie etwa einen Ausführungszustand oder einen Architekturzustand. Anders ausgedrückt bezieht sich ein Verarbeitungselement bei einer Ausführungsform auf jede Hardware, die dazu geeignet ist, unabhängig einem Code, wie etwa einem Software-Thread, einem Betriebssystem, einer Anwendung oder einem anderen Code zugeordnet zu sein. Ein physischer Prozessor bezieht sich auf eine integrierte Schaltung, die potenziell jede Anzahl von anderen Verarbeitungselementen wie etwa Kerne oder Hardware-Threads beinhaltet.
  • Ein Kern bezieht sich häufig auf eine Logik, die sich in einer integrierten Schaltung befindet und dazu geeignet ist, einen unabhängigen Architekturzustand aufrechtzuerhalten, wobei jeder unabhängig aufrechterhaltene Architekturzustand mit mindestens einigen zweckbestimmten Ausführungsressourcen verknüpft ist. Im Gegensatz zu Kernen bezieht sich ein Hardware-Thread in der Regel auf jede Logik, die sich in einer integrierten Schaltung befindet und dazu geeignet ist, einen unabhängigen Architekturzustand aufrechtzuerhalten, wobei sich die unabhängig aufrechterhaltenen Architekturzustände einen Zugang zu Ausführungsressourcen teilen. Wie zu erkennen ist, überschneiden sich die Grenzen zwischen der Nomenklatur eines Hardware-Threads und eines Kerns, wenn bestimmte Ressourcen gemeinsam genutzt werden und andere für einen Architekturzustand zweckbestimmt sind. Häufig jedoch werden ein Kern und ein Hardware-Thread von einem Betriebssystem als individuelle logische Prozessoren gesehen, wobei das Betriebssystem in der Lage ist, Operationen auf jedem logischen Prozessor individuell zu planen.
  • Der physische Prozessor 400, wie in 4 dargestellt, beinhaltet zwei Kerne, die Kerne 401 und 402. Hier werden die Kerne 401 und 402 als symmetrische Kerne betrachtet, d. h. als Kerne mit den gleichen Konfigurationen, funktionellen Einheiten und/oder Logik. Bei einer anderen Ausführungsform beinhaltet der Kern 401 einen Out-of-order-Prozessorkern, während der Kern 402 einen In-order-Prozessorkern beinhaltet. Die Kerne 401 und 402 können jedoch individuell aus jeder Art von Kern ausgewählt werden, wie etwa einem systemeigenen Kern, einem softwareverwalteten Kern, einem Kern, der angepasst ist, eine systemeigene Befehlssatzarchitektur (instruction set architecture - ISA) auszuführen, einem Kern, der angepasst ist, eine übersetzte ISA auszuführen, einem gemeinsam konzipierten Kern oder einem anderen bekannten Kern. Zur noch weiteren Erörterung sind die im Kern 401 dargestellten funktionalen Einheiten nachstehend in weiteren Einzelheiten beschrieben, da die Einheiten im Kern 402 auf eine ähnliche Weise arbeiten.
  • Wie abgebildet, beinhaltet der Kern 401 zwei Hardware-Threads 401a und 401b, die auch als Hardware-Thread-Schlitze 401a und 401b bezeichnet werden können. Deshalb können Software-Einheiten wie etwa ein Betriebssystem bei einer Ausführungsform den Prozessor 400 potenziell als vier separate Prozessoren ansehen, d. h. vier logische Prozessoren oder Verarbeitungselemente, die dazu geeignet sind, gleichzeitig vier Software-Threads auszuführen. Wie vorstehend bereits angedeutet wurde, ist ein erster Thread mit den Architekturzustandregistern 401a verknüpft, ein zweiter Thread ist mit den Architekturzustandregistern 401b verknüpft, ein dritter Thread kann mit den Architekturzustandregistern 402a verknüpft sein und ein vierter Thread kann mit den Architekturzustandregistern 402b verknüpft sein. Hier kann jedes der Architekturzustandregister (401a, 401b, 402a und 402b) wie vorstehend beschrieben als Verarbeitungselemente, Thread-Schlitze oder Thread-Einheiten bezeichnet werden. Wie dargestellt, sind die Architekturzustandregister 401a in Architekturzustandregistern 401b repliziert, sodass einzelne Architekturzustände/Kontexte für den logischen Prozessor 401a und den logischen Prozessor 401b gespeichert werden können. In Kern 401 können andere kleinere Ressourcen wie etwa Befehlszeiger und Umbenennungslogik im Zuordnungs- und Umbenennungsblock 430 auch für die Threads 401a und 401b repliziert werden. Einige Ressourcen wie etwa Neuordnungspuffer in der Neuordnungs-/Rückordnungseinheit 435, Verzweigungszielpuffer und Befehlsübersetzungspuffer (branch target buffer - BTB und instruction translation lookaside buffer - I-TLB) 420, Lade-/Speicherpuffer und Warteschlangen können durch Partitionierung gemeinsam genutzt werden. Andere Ressourcen wie etwa interne Allzweckregister, Seiten-Tabellen-Basisregister, ein niederer Datencache und Daten-TLB 450, Ausführungseinheit(en) 440 und Teile einer Out-of-Order-Einheit 435 werden potenziell vollständig gemeinsam genutzt.
  • Der Prozessor 400 beinhaltet häufig andere Ressourcen, die vollständig gemeinsam genutzt werden können, durch Partitionierung gemeinsam oder zweckbestimmt durch/für Verarbeitungselemente genutzt werden können. In 4 ist eine Ausführungsform eines rein beispielhaften Prozessors mit darstellenden logischen Einheiten/Ressourcen eines Prozessors dargestellt. Es ist zu beachten, dass ein Prozessor jede dieser funktionalen Einheiten beinhalten oder auf dieselben verzichten kann sowie jede andere bekannte, nicht abgebildete funktionale(n) Einheiten, Logik oder Firmware beinhalten kann. Wie dargestellt, beinhaltet der Kern 401 einen vereinfachten, typischen Out-of-Order (OOO)-Prozessorkern. Jedoch kann bei anderen Ausführungsformen ein In-Order-Prozessor verwendet werden. Der OOO-Kern beinhaltet einen Verzweigungszielpuffer 420 zum Vorhersagen von Verzweigungen, die ausgeführt/genommen werden sollen, und einen Befehlsübersetzungspuffer (instruction-translation buffer - I-TLB) 420 zum Speichern von Adressübersetzungseinträgen für Befehle.
  • Der Kern 401 beinhaltet ferner ein Decodiermodul 425, das mit einer Abrufeinheit gekoppelt ist, um abgerufene Elemente zu decodieren. Abruflogik beinhaltet bei einer Ausführungsform einzelne Mikroprogrammsteuerwerke (Sequencer), die jeweils den Thread-Schlitzen 401a, 401b zugeordnet sind. Üblicherweise ist der Kern 401 einer ersten ISA zugeordnet, die auf dem Prozessor 400 ausführbare Befehle definiert/spezifiziert. Häufig beinhalten Maschinencodebefehle, die einen Teil der ersten ISA bilden, einen Abschnitt des Befehls (bezeichnet als ein Op-Code), der sich auf eine(n) auszuführende(n) Befehl oder Operation bezieht/diese(n) spezifiziert. Decodierlogik 425 beinhaltet Schaltungen, die diese Befehle aus ihren Op-Codes erkennen und diese decodierten Befehle in der Pipeline zur Verarbeitung, wie von der ersten ISA definiert, weiterleitet. Die Decodierer 425 beinhalten bei einer Ausführungsform beispielsweise Logik, die konzipiert oder angepasst ist, spezifische Befehle zu erkennen, wie etwa Transaktionsbefehle. Im Ergebnis der Erkennung durch den Decodierer 425 unternimmt die Architektur oder der Kern 401 spezifische, vordefinierte Handlungen, um Aufgaben durchzuführen, die mit dem angemessenen Befehl verknüpft sind. Es ist wichtig anzumerken, dass jegliche der hier beschriebenen Aufgaben, Blöcke, Operationen und Verfahren in Reaktion auf einen oder mehrere Befehle durchgeführt werden können; von denen einige neue oder alte Befehle sein können.
  • In einem Beispiel beinhaltet der Zuordnungs- und Umbenennungsblock 430 eine Zuordnungseinheit zum Reservieren von Ressourcen wie etwa Registerdateien zum Speichern von Ergebnissen einer Befehlsverarbeitung. Jedoch sind die Threads 401a und 401b potenziell fähig zu einer Out-of-Order-Ausführung, wobei der Zuordnungs- und Umbenennungsblock 430 auch andere Ressourcen reserviert wie etwa Neuordnungspuffer zum Nachverfolgen von Befehlsergebnissen. Die Einheit 430 kann auch eine Registerumbenennungseinheit zum Umbenennen von Programm-/Befehlsreferenzregistern in andere Register, die intern im Prozessor 400 vorliegen, beinhalten. Die Neuordnungs/Rückordnungseinheit 435 beinhaltet Komponenten wie etwa die vorstehend genannten Neuordnungspuffer, Ladepuffer und Speicherpuffer zum Unterstützen der Out-of-Order-Ausführung und späteren In-Order-Rückordnung von Befehlen, die Out-of-Order ausgeführt wurden.
  • Der Ablaufplanungs- und Ausführungseinheit(en)-Block 440 beinhaltet bei einer Ausführungsform eine Ablaufplanungseinheit zur Ablaufplanung von Befehlen/Operationen auf Ausführungseinheiten. Ein Fließkommabefehl ist beispielsweise auf einem Port einer Ausführungseinheit geplant, die eine verfügbare Fließkomma-Ausführungseinheit aufweist. Registerdateien, die mit den Ausführungseinheiten verknüpft sind, sind zum Speichern von Ergebnissen einer Befehlsverarbeitung ebenfalls beinhaltet. Beispielhafte Ausführungseinheiten beinhalten eine Fließkomma-Ausführungseinheit, eine Ganzzahl-Ausführungseinheit, eine Sprungausführungseinheit, eine Ladeausführungseinheit, eine Speicherausführungseinheit und andere bekannte Ausführungseinheiten.
  • Ein niederer Datencache und ein Datenübersetzungspuffer (data translation lookaside buffer - D-TLB) 450 sind mit den Ausführungseinheit(en) 440 gekoppelt. Im Datencache sind kürzlich verwendete Elemente oder Elemente, auf denen Operationen durchgeführt wurden, zu speichern, wie etwa Datenoperanden, die potenziell in Speicherkohärenzzuständen gehalten werden. Im D-TLB sind kürzliche Adressübersetzungen von virtuell/linear in physisch zu speichern. Als ein spezifisches Beispiel kann ein Prozessor eine Seiten-Tabellen-Struktur beinhalten, um einen physischen Speicher in mehrere virtuelle Seiten aufzuteilen.
  • Hier nutzen die Kerne 401 und 402 einen gemeinsamen Zugang zu einem höheren oder weiter entfernteren Cache 410, der kürzlich abgerufene Elemente zwischenspeichern soll. Es ist angemerkt, dass höher oder entfernter sich auf Cache-Ebenen bezieht, die aufsteigen oder sich weiter von den Ausführungseinheit(en) entfernen. Bei einer Ausführungsform ist ein höherer Cache 410 ein Datencache der letzten Ebene - der letzte Cache in der Speicherhierarchie auf dem Prozessor 400 - wie etwa ein Datencache der zweiten oder dritten Ebene. Jedoch ist ein höherer Cache 410 nicht derart eingeschränkt, da er mit einem Befehls-Cache verknüpft sein kann oder einen solchen beinhaltet. Ein Ablaufverfolgungscache - eine Art von Befehls-Cache - kann statt dessen nach dem Decodierer 425 gekoppelt sein, um kürzlich decodierte Ablaufverfolgungen zu speichern.
  • In der abgebildeten Konfiguration beinhaltet der Prozessor 400 auch ein Busschnittstellenmodul 405 und eine Power Control Unit 460, die Energiemanagement gemäß einer Ausführungsform der vorliegenden Erfindung durchführen kann. In diesem Szenario soll die Busschnittstelle 405 mit Vorrichtungen kommunizieren, die extern zum Prozessor 400 liegen, wie etwa Systemspeicher und andere Komponenten.
  • Eine Speichersteuerung 470 kann eine Schnittstelle zu anderen Vorrichtungen wie etwa einem oder mehreren Speichern bilden. In einem Beispiel beinhaltet die Busschnittstelle 405 eine Ringverbindung mit einer Speichersteuerung zur Schnittstellenbildung zu einem Speicher und einer Grafiksteuerung zur Schnittstellenbildung zu einem Grafikprozessor. In einer SoC-Umgebung können sogar noch mehr Vorrichtungen wie etwa eine Netzwerkschnittstelle, Co-Prozessoren, ein Speicher, ein Grafikprozessor und jegliche andere bekannte Computervorrichtungen/schnittstellen auf einem einzelnen Die oder auf einer integrierten Schaltung integriert werden, um einen kleinen Formfaktor mit einer hohen Funktionalität und geringem Energieverbrauch bereitzustellen.
  • Nun Bezug nehmend auf 5 ist ein Blockschaltbild einer Mikroarchitektur eines Prozessorkerns gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 5 gezeigt, kann der Prozessorkern 500 ein Out-of-Order-Prozessor mit einer mehrstufigen Pipeline sein. Der Kern 500 kann bei verschiedenen Spannungen basierend auf einer empfangenen Betriebsspannung arbeiten, die von einem integrierten Spannungsregler oder einem externen Spannungsregler empfangen werden kann.
  • Wie 5 zu erkennen ist, beinhaltet der Kern 500 Front-End-Einheiten 510, die verwendet werden können, um auszuführende Befehle abzurufen und sie zur späteren Verwendung in der Prozessorpipeline vorzubereiten. Die Front-End-Einheiten 510 können beispielsweise eine Abrufeinheit 501, einen Befehlscache 503 und einen Befehlsdecodierer 505 beinhalten. Bei einigen Implementierungen können die Front-End-Einheiten 510 ferner einen Ablaufverfolgungscache zusammen mit einem Mikrocodespeicher sowie einem Mikrooperationsspeicher beinhalten. Die Abrufeinheit 501 kann Makrobefehle abrufen, z. B. aus dem Speicher oder Befehlscache 503, und sie dem Befehlsdecodierer 505 zuführen, um sie in Primitive, d. h. Mikrooperationen zur Ausführung durch den Prozessor, zu decodieren.
  • Zwischen die Front-End-Einheiten 510 und die Ausführungseinheiten 520 ist eine Out-of-order (OOO)-Engine 515 gekoppelt, die zum Empfangen der Mikrobefehle verwendet wird und sie für die Ausführung vorbereiten kann. Insbesondere kann die OOO-Engine 515 verschiedene Puffer beinhalten, um den Mikrobefehlsfluss neu zu ordnen und verschiedene für die Ausführung benötigte Ressourcen zuzuordnen sowie eine Umbenennung von logischen Registern auf Speicherstellen innerhalb verschiedener Registerdateien wie etwa der Registerdatei 530 und der erweiterten Registerdatei 535 bereitzustellen. Die Registerdatei 530 kann separate Registerdateien für Ganzzahl- und Fließkommaoperationen beinhalten. Zu Zwecken der Konfigurierung, Steuerung und zusätzlicher Operationen kann auch ein Satz von maschinenspezifischen Registern (machine specific registers - MSRs) 538 vorliegen und für verschiedene Logik innerhalb des Kerns 500 (und extern zum Kern) zugreifbar sein.
  • Verschiedene Ressourcen können in den Ausführungseinheiten 520 vorhanden sein, einschließlich, beispielsweise, verschiedene Ganzzahl-, Fließkomma- und SIMD (single instruction multiple data)-Logikeinheiten, neben anderer spezialisierter Hardware. Solche Ausführungseinheiten können beispielsweise eine oder mehrere arithmetisch-logische Einheiten (arithmetic logic units - ALUs) 522 und eine oder mehrere Vektor-Ausführungseinheiten 524, neben anderen solchen Ausführungseinheiten, beinhalten.
  • Die Ergebnisse von den Ausführungseinheiten können der Rückordnungslogik bereitgestellt werden, genauer einem Neuordnungspuffer (reorder buffer - ROB) 540. Insbesondere kann der ROB 540 verschiedene Anordnungen und Logik beinhalten, um Informationen zu empfangen, die mit Befehlen, die ausgeführt werden, verknüpft sind. Diese Informationen werden dann durch den ROB 540 geprüft, um zu bestimmen, ob die Befehle gültig rückgeordnet werden können und Ergebnisdaten in den Architekturzustand des Prozessors gegeben werden können oder ob eine oder mehrere Ausnahmen aufgetreten sind, die eine ordnungsgemäße Rückordnung der Befehle verhindern. Natürlich kann der ROB 540 andere mit der Rückordnung verknüpfte Operationen bearbeiten.
  • Wie in 5 gezeigt, ist der ROB 540 mit einem Cache 550 gekoppelt, der bei einer Ausführungsform ein niederer Cache (z. B. ein L1-Cache) sein kann, obwohl der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt ist. Die Ausführungseinheiten 520 können auch unmittelbar mit dem Cache 550 gekoppelt sein. Von dem Cache 550 aus kann die Datenkommunikation mit höheren Caches, dem Systemspeicher und so weiter vorgenommen werden. Wie ferner gezeigt ist, kann der Kern 500 mehrere Wärmesensoren 5601 -5604 beinhalten, um Thermische Informationen z. B. an eine PCU (nicht innerhalb des Kerns gezeigt) bereitzustellen. Obwohl auf dieser hohen Stufe bei der Ausführungsform aus 5 gezeigt, versteht es sich, dass der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt ist. Obwohl beispielsweise die Implementierung aus 5 mit Hinsicht auf eine Out-of-Order-Maschine wie etwa eine Intel® x86-Befehlssatzarchitektur (instruction set architecture - ISA) besteht, ist der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt. Das heißt, dass andere Ausführungsformen in einem In-Order-Prozessor, einem (RISC - reduced instruction set computing) Prozessor mit reduziertem Befehlssatz wie etwa einem ARM-basierten Prozessor oder einem Prozessor eines anderen Typs von ISA, der Befehle und Operationen einer anderen ISA über eine Emulations-Engine und damit verknüpfte Logikschaltungen emulieren kann, implementiert werden können.
  • Nun Bezug nehmend auf 6 ist ein Blockschaltbild einer Mikroarchitektur eines Prozessorkerns gemäß einer anderen Ausführungsform gezeigt. Bei der Ausführungsform aus 6 kann der Kern 600 ein Kern niedrigem Stromverbrauch einer anderen Mikroarchitektur sein, wie etwa ein Intel® Atom™-basierter Prozessor, der eine relativ begrenzte Pipelinetiefe aufweist, die konzipiert ist, den Energieverbrauch zu reduzieren. Wie zu erkennen ist, beinhaltet der Kern 600 einen Befehlscache 610, der gekoppelt ist, um einem Befehlsdecodierer 615 Befehle bereitzustellen. Eine Zweigvorhersageeinheit 605 kann mit dem Befehlscache 610 gekoppelt sein. Es wird angemerkt, dass der Befehlscache 610 ferner mit einer anderen Ebene eines Cache-Speichers gekoppelt werden kann, wie etwa einem L2-Cache (zur Einfachheit der Darstellung in 6 nicht gezeigt). Der Befehlsdecodierer 615 wiederum stellt einer Ausgabewarteschlange (issue queue - IQ) 620 decodierte Befehle zur Speicherung und Lieferung an eine gegebene Ausführungspipeline bereit. Eine Mikrocode-ROM 618 ist mit dem Befehlsdecodierer 615 gekoppelt.
  • Eine Fließkomma-Pipeline 630 beinhaltet eine Fließkomma (floating point - FP)-Registerdatei 632, die mehrere Architektur-Register einer gegebenen Bitbreite wie etwa 128, 256 oder 512 Bit beinhalten kann. Die Pipeline 630 beinhaltet einen Fließkomma-Ablaufplaner 634 zum Planen von Befehlen zur Ausführung auf einer oder mehreren Ausführungseinheiten der Pipeline. Bei der gezeigten Ausführungsform beinhalten solche Ausführungseinheiten eine ALU 635, eine Shuffle-Einheit 636 und einen Fließkomma-Addierer 638. Die in diesen Ausführungseinheiten generierten Ergebnisse können wiederum zurück an die Puffer und/oder Register der Registerdatei 632 bereitgestellt werden. Natürlich versteht es sich, dass bei einer anderen Ausführungsform zusätzliche oder andere Fließkomma-Ausführungseinheiten vorhanden sein können, obwohl mit diesen wenigen beispielhaften Ausführungseinheiten gezeigt.
  • Eine Ganzzahl-Pipeline 640 kann ebenfalls bereitgestellt sein. Bei der gezeigten Ausführungsform beinhaltet die Pipeline 640 eine Ganzzahl (INT)-Registerdatei 642, die mehrere Architektur-Register einer gegebenen Bitbreite wie etwa 128 oder 256 Bit beinhalten kann. Die Pipeline 640 beinhaltet einen Ganzzahl-Ausführungs (integer execution - IE)-Ablaufplaner 644 zum Planen von Befehlen zur Ausführung auf einer von mehreren Ausführungseinheiten der Pipeline. Bei der gezeigten Ausführungsform können solche Ausführungseinheiten eine ALU 645, eine Verschiebungseinheit 646 und eine SprungAusführungseinheit (JEU) 648 beinhalten. Die in diesen Ausführungseinheiten generierten Ergebnisse können wiederum zurück an Puffer und/oder Register der Registerdatei 642 bereitgestellt werden. Es versteht sich natürlich, dass, obwohl mit diesen wenigen beispielhaften Ausführungseinheiten gezeigt, zusätzliche oder andere Ganzzahl-Ausführungseinheiten bei einer anderen Ausführungsform vorhanden sein können.
  • Ein Speicherausführungs (memory execution - ME)-Ablaufplaner 650 kann Speicheroperationen zur Ausführung in einer Adressengenerierungseinheit (address generation unit - AGU) 652 planen, die auch mit einem TLB 654 gekoppelt ist. Wie zu erkennen ist, können diese Strukturen auch mit einem Datencache 660 gekoppelt werden, der ein L0- und/oder L1-Datencache sein kann, der wiederum mit zusätzlichen Ebenen einer Cache-Speicherhierarchie gekoppelt ist, einschließlich eines L2- Cache-Speichers.
  • Zum Bereitstellen von Unterstützung bei der Out-of-Order-Ausführung kann eine Neuordnungs-/Umbenennungseinheit 670 zusätzlich zu einem Neuordnungspuffer 680 bereitgestellt sein, der konfiguriert ist, um Befehle neu zu ordnen, die Out-of-Order zur Rückordnung in In-Order ausgeführt wurden. Obwohl mit dieser spezifischen Pipeline-Architektur in der Darstellung aus 6 gezeigt, versteht es sich, dass viele Variationen und Alternativen möglich sind.
  • Es ist angemerkt, dass bei einem Prozessor, der asymmetrische Kerne aufweist, wie etwa gemäß den Mikroarchitekturen aus 5 und 6, Auslastungen zwischen den Kernen aus Gründen des Energiemanagements dynamisch umgelagert werden können, da diese Kerne, obwohl sie unterschiedliche Pipelinedesigns und -tiefen aufweisen, von der gleichen oder einer verwandten ISA sein können. Eine solche dynamische Umlagerung bei Kernen („Swapping“) kann auf eine Weise durchgeführt werden, die für eine Benutzeranwendung (und möglicherweise auch dem Betriebssystemkern) transparent ist.
  • Bezug nehmend auf 7 ist ein Blockschaltbild einer Mikroarchitektur eines Prozessorkerns gemäß einer noch anderen Ausführungsform gezeigt. Wie in 7 dargestellt, kann ein Kern 700 eine mehrstufige In-Order-Pipeline beinhalten, die bei sehr niedrigen Energieverbrauchsstufen ausgeführt wird. Als ein solches Beispiel kann der Prozessor 700 eine Mikroarchitektur gemäß einem ARM Cortex A53-Design aufweisen, die von ARM Holdings, LTD., Sunnyvale, CA, verfügbar ist. Bei einer Implementierung kann eine 8-stufige Pipeline bereitgestellt werden, die konfiguriert ist, sowohl 32-Bit- und 64-Bit-Code auszuführen. Der Kern 700 beinhaltet eine Abrufeinheit 710, die konfiguriert ist, Befehle abzurufen und sie an eine Decodiereinheit 715 bereitzustellen, welche die Befehle decodieren kann, z. B. Makrobefehle einer gegebenen ISA wie etwa einer ARMv8 ISA. Es wird ferner angemerkt, dass eine Warteschlange 730 mit der Decodiereinheit 715 gekoppelt werden kann, um decodierte Befehle zu speichern. Decodierte Befehle werden an eine Ausgabelogik 725 bereitgestellt, wo die decodierten Befehle an eine gegebene aus mehreren Ausführungseinheiten ausgegeben werden können.
  • Weiter Bezug nehmend auf 7 kann die Ausgabelogik 725 Befehle an eine aus mehreren Ausführungseinheiten ausgeben. Bei der gezeigten Ausführungsform können diese Ausführungseinheiten eine Ganzzahl-Einheit 735, eine Multiplizierungseinheit 740, eine Fließkomma-/Vektoreinheit 750, eine Dual-Ausgabeeinheit 760 und eine Lade-/Speichereinheit 770 beinhalten. Die Ergebnisse dieser unterschiedlichen Ausführungseinheiten können einer Rückschreib (writeback - WB)-Einheit 780 bereitgestellt werden. Es versteht sich, dass, obwohl eine einzige Rückschreibeinheit zur Einfachheit der Darstellung gezeigt ist, bei einigen Implementierungen separate Rückschreibeinheiten mit jeder der Ausführungseinheiten verknüpft sein können. Ferner versteht es sich, dass, obwohl jede der in 7 gezeigten Einheiten und Logik auf einer hohen Stufe veranschaulicht ist, eine spezifische Implementierung mehrere oder andere Strukturen beinhalten kann. Ein Prozessor, der konzipiert ist, einen oder mehrere Kerne zu verwenden und der eine Pipeline wie in 7 aufweist, kann bei vielen unterschiedlichen Endprodukten implementiert werden, die von Mobilvorrichtungen bis hin zu Serversystemen reichen.
  • Bezug nehmend auf 8 ist ein Blockschaltbild einer Mikroarchitektur eines Prozessorkerns gemäß noch einer weiteren Ausführungsform gezeigt. Wie in 8 dargestellt, kann ein Kern 800 eine mehrstufige Out-of-Order-Pipeline mit Mehrfach-Ausgabe beinhalten, die auf sehr hohen Leistungsstufen ausgeführt wird (was bei höheren Energieverbrauchsstufen als bei Kern 700 aus 7 auftreten kann). Als ein solches Beispiel kann der Prozessor 800 eine Mikroarchitektur gemäß einem ARM Cortex A57-Design aufweisen. Bei einer Implementierung kann eine 15 (oder größer)-stufige Pipeline bereitgestellt sein, die konfiguriert ist, sowohl 32-Bit- als auch 64-Bit-Code auszuführen. Außerdem kann die Pipeline einen 3 (oder größer)-breiten und 3 (oder größer)-AusgabeBetrieb bereitstellen. Der Kern 800 beinhaltet eine Abrufeinheit 810, die konfiguriert ist, Befehle abzurufen und sie an eine mit einem Cache 820 gekoppelte Decodierer-/Umbenennungs-/Dispatchereinheit 815 bereitzustellen. Die Einheit 815 kann die Befehle, z. B. Makrobefehle einer ARMv8-Befehlssatzarchitektur decodieren, Registerreferenzen innerhalb der Befehle umbenennen und (schließlich) die Befehle an eine ausgewählte Ausführungseinheit senden. Decodierte Befehle können in einer Warteschlange 825 gespeichert werden. Es ist angemerkt, dass, obwohl eine einzelne Warteschlangenstruktur zur Einfachheit der Darstellung in 8 gezeigt ist, es sich versteht, dass separate Warteschlangen für jede der mehreren unterschiedlichen Typen von Ausführungseinheiten bereitgestellt sein können.
  • Ebenfalls in 8 ist eine Ausgabelogik 830 gezeigt, von der in der Warteschlange 825 gespeicherte decodierte Befehle an eine ausgewählte Ausführungseinheit ausgegeben werden können. Die Ausgabelogik 830 kann auch bei einer spezifischen Ausführungsform implementiert sein mit einer separaten Ausgabelogik für jeden aus den mehreren unterschiedlichen Typen von Ausführungseinheiten, mit denen die Ausgabelogik 830 gekoppelt.
  • Decodierte Befehle können einer gegebenen aus mehreren Ausführungseinheiten ausgegeben werden. Bei der gezeigten Ausführungsform beinhalten diese Ausführungseinheiten eine oder mehrere Ganzzahl-Einheiten 835, eine Multiplizierungseinheit 840, eine Fließkomma-/Vektoreinheit 850, eine Verzweigungseinheit 860 und eine Lade-/Speichereinheit 870. Bei einer Ausführungsform kann die Fließkomma-/Vektoreinheit 850 konfiguriert sein, SIMD- oder Vektordaten von 128 oder 256 Bit zu bearbeiten. Ferner noch kann eine Fließkomma-/Vektor-Ausführungseinheit 850 IEEE-754 Fließkommaoperationen mit doppelter Genauigkeit durchführen. Die Ergebnisse dieser unterschiedlichen Ausführungseinheiten können an eine Rückschreibeinheit 880 bereitgestellt werden. Es ist angemerkt, dass bei einigen Implementierungen separate Rückschreibeinheiten mit jeder der Ausführungseinheiten verknüpft sein können. Ferner versteht es sich, dass, obwohl jede der in 8 gezeigten Einheiten und Logik auf einer hohen Ebene veranschaulicht ist, eine spezifische Implementierung mehr oder unterschiedliche Strukturen beinhalten kann.
  • Es ist angemerkt, dass bei einem Prozessor, der asymmetrische Kerne aufweist, wie etwa gemäß den Mikroarchitekturen aus 7 und 8, Auslastungen aus Gründen des Energiemanagements dynamisch umgelagert werden können, da diese Kerne, obwohl sie unterschiedliche Pipeline-Designs und -tiefen aufweisen, von der gleichen oder einer verwandten ISA sein können. Eine solche dynamische Auslastungsumlagerung der Kerne kann auf eine Weise durchgeführt werden, die für eine Benutzeranwendung (und möglicherweise auch für den Betriebssystemkern) transparent ist.
  • Ein Prozessor, der konzipiert ist, einen oder mehrere Kerne zu verwenden und Pipelines wie in einer oder mehreren der 5-8 aufweist kann in vielen unterschiedlichen Endprodukten implementiert sein, die von Mobilvorrichtungen bis hin zu Serversystemen reichen. Nun Bezug nehmend auf 9 ist ein Blockschaltbild eines Prozessors gemäß einer anderen Ausführungsform der vorliegenden Erfindung gezeigt. Bei der Ausführungsform aus 9 kann der Prozessor 900 ein SoC einschließlich mehrerer Domänen sein, von denen jede gesteuert sein kann, bei einer unabhängigen Betriebsspannung und Betriebsfrequenz zu arbeiten. Als ein spezifisches darstellendes Beispiel kann der Prozessor 900 ein Intel® Architecture Core™-basierter Prozessor wie etwa ein i3-, i5-, i7- oder ein anderer solcher von der Intel Corporation verfügbarer Prozessor sein. Jedoch können andere Niedrigenergieprozessoren wie etwa von Advanced Micro Devices, Inc. (AMD), Sunnyvale, CA verfügbar, ein ARM-basiertes Design von ARM Holdings, Ltd. oder einem derer Lizenznehmer oder ein MIPS-basiertes Design von MIPS Technologies, Inc., Sunnyvale, CA, oder deren Lizenznehmer oder Anwender statt dessen bei anderen Ausführungsformen wie etwa einem Apple A7-Prozessor, einem Qualcomm Snapdragon-Prozessor oder einem Texas Instruments OMAP-Prozessor vorhanden sein. Solche SoC können bei einem Niedrigenergiesystem wie etwa einem Smartphone, einem Tablet-Computer, einem Phablet-Computer, einem Ultrabook™-Computer oder einer anderen tragbaren Datenverarbeitungsvorrichtung verwendet werden, die eine heterogene Systemarchitektur einbinden kann, die ein heterogenes Systemarchitektur-basiertes Prozessordesign aufweist.
  • In der in 9 gezeigten übergeordneten Ansicht beinhaltet der Prozessor 900 mehrere Kerneinheiten 910a-910n. Jede Kerneinheit kann einen oder mehrere Prozessorkerne, einen oder mehrere Cache-Speicher und andere Schaltungen beinhalten. Jede Kerneinheit 910 kann einen oder mehrere Befehlssätze unterstützen (z. B. einen x86-Befehlssatz (mit einigen Erweiterungen, die bei neueren Versionen hinzugefügt wurden); einen MIPS-Befehlssatz; einen ARM-Befehlssatz (mit optionalen zusätzlichen Erweiterungen wie etwa NEON)) oder einen anderen Befehlssatz oder Kombinationen davon. Es ist angemerkt, dass einige der Kerneinheiten heterogene Ressourcen sein können (z. B. von einem anderen Design). Außerdem kann jeder solche Kern mit einem Cache-Speicher (nicht gezeigt) gekoppelt sein, der bei einer Ausführungsform ein gemeinsamer Cache-Speicher der zweiten Ebene (level two - L2) sein kann. Ein nichtflüchtiger Speicher 930 kann zum Speichern von verschiedenen Programmen und anderen Daten verwendet werden. Dieser Speicher kann beispielsweise zum Speichern zumindest von Abschnitten von Mikrocode, Startinformationen wie etwa einem BIOS, anderer Systemsoftware und so weiter verwendet werden.
  • Jede Kerneinheit 910 kann auch eine Schnittstelle wie etwa eine Busschnittstelleneinheit beinhalten, um eine Verbindung zu zusätzlichen Schaltungen des Prozessors zu ermöglichen. Bei einer Ausführungsform wird jede Kerneinheit 910 mit einem kohärenten Fabric gekoppelt, das als eine primäre Cache-kohärente Die-interne Verbindung agieren kann, die wiederum mit einer Speichersteuerung 935 gekoppelt wird. Die Speichersteuerung 935 steuert wiederum die Kommunikationen mit einem Speicher wie etwa einem DRAM (in 9 zur Einfachheit der Darstellung nicht gezeigt).
  • Zusätzlich zu den Kerneinheiten sind zusätzliche Verarbeitungs-Engines innerhalb des Prozessors vorhanden, einschließlich mindestens einer Grafikeinheit 920, die eine oder mehrere Grafikverarbeitungseinheiten (graphics processing units - GPUs) beinhalten kann, um Grafikverarbeitung durchzuführen und um möglicherweise Allzweck-Operationen auf dem Grafikprozessor auszuführen (sogenannten GPGPU-Betrieb). Außerdem kann mindestens ein Bildsignalprozessor 925 vorhanden sein. Der Signalprozessor 925 kann konfiguriert sein, eintreffende Bilddaten zu verarbeiten, die von einer oder mehreren Aufnahmevorrichtungen entweder intern auf dem SoC oder chipextern empfangen wurden.
  • Andere Beschleunigungsvorrichtungen können auch vorhanden sein. In der Darstellung aus 9 kann ein Videocodierer 950 Codierungsoperationen einschließlich Codierung und Decodierung für Videoinformationen durchführen, z. B. Bereitstellen von Hardware-Beschleunigungsunterstützung für High-Definition-Videoinhalt. Eine Anzeigesteuerung 955 kann ferner bereitgestellt sein, um Anzeigeoperationen zu beschleunigen, einschließlich Bereitstellen von Unterstützung für interne und externe Anzeigen eines Systems. Außerdem kann ein Sicherheitsprozessor 945 vorhanden sein, um Sicherheitsoperationen wie etwa sichere Startoperationen, verschiedene Kryptographieoperationen und so weiter durchzuführen.
  • Jede der Einheiten kann ihre Temperatur und ihren Energieverbrauch über einen Energie-/Wärmemanager 940 regeln lassen, der Regelungslogik beinhalten kann, um die verschiedenen hier beschriebenen Wärme- und Energiemanagementtechniken zu regeln.
  • Bei einigen Ausführungsformen kann das SoC 900 ferner ein nichtkohärentes Fabric beinhalten, das mit dem kohärenten Fabric gekoppelt ist, mit welchem verschiedene Peripheriegeräte gekoppelt werden können.-Eine oder mehrere Schnittstellen 960a-960d ermöglichen die Kommunikation mit einer oder mehreren chipexternen Vorrichtungen. Solche Kommunikationen können über eine Vielfalt von Kommunikationsprotokollen wie etwa PCIe™, GPIO, USB, I2C, UART, MIPI, SDIO, DDR, SPI, HDMI, neben anderen Typen von Kommunikationsprotokollen, erfolgen. Obwohl auf dieser hohen Stufe in der Ausführungsform aus 9 gezeigt, versteht es sich, dass der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt ist.
  • Nun Bezug nehmend auf 10 ist ein Blockschaltbild eines typischen SoC gezeigt. Bei der gezeigten Ausführungsform kann der SoC 1000 ein SoC mit mehreren Kernen und mehreren Dies sein, konfiguriert für einen Niedrigenergiebetrieb, um für eine Einbindung in ein Smartphone oder eine andere Niedrigenergievorrichtung wie etwa einen Tablet-Computer oder eine andere tragbare Datenverarbeitungsvorrichtung optimiert zu werden. Als ein Beispiel kann SoC 1000 unter Verwendung von asymmetrischen oder unterschiedlichen Typen von Kernen implementiert werden, wie etwa Kombinationen von Kernen mit höherem und/oder niedrigem Stromverbrauch, z. B. Out-of-Order-Kerne und In-Order-Kerne. Bei unterschiedlichen Ausführungsformen können diese Kerne auf einem Intel® Architecture™ Kern-Design oder einem ARM-Architektur-Design basieren. Bei noch anderen Ausführungsformen kann eine Mischung von Intel- und ARM-Kernen in einem gegebenen SoC implementiert werden.
  • Wie in 10 zu erkennen ist, beinhaltet das SoC 1000 eine erste Kern-Domäne 1010, die mehrere erste Kerne 1012a - 1012d aufweist. In einem Beispiel kann es sich bei diesen Kernen um Kerne handeln, die einen niedrigeren Stromverbrauch aufweisen, wie etwa In-Order Kerne. Bei einer Ausführungsform können diese ersten Kerne als ARM Cortex A53-Kerne implementiert sein. Diese Kerne können wiederum mit einem Cache-Speicher 1015 der Kern-Domäne 1010 gekoppelt werden. Außerdem beinhaltet das SoC 1000 eine zweite Kern-Domäne 1020. In der Darstellung aus 10 weist die zweite Kern-Domäne 1020 mehrere zweite Kerne 1022a - 1022d auf. In einem Beispiel kann es sich bei diesen Kernen um Kerne handeln, die mehr Strom verbrauchen als die ersten Kerne 1012. Bei einer Ausführungsform können die zweiten Kerne Out-of-Order-Kerne sein, die als ARM Cortex A57-Kerne implementiert sein können. Diese Kerne werden wiederum mit einem Cache-Speicher 1025 der Kern-Domäne 1020 gekoppelt. Es ist anzumerken, dass, obwohl das in 10 gezeigte Beispiel 4 Kerne in jeder Domäne beinhaltet, es sich versteht, dass in anderen Beispielen mehr oder weniger Kerne in einer gegebenen Domäne vorhanden sein können.
  • Weiter Bezug nehmend auf 10 ist auch eine Grafik-Domäne 1030 bereitgestellt, die eine oder mehrere Grafikverarbeitungseinheiten (graphics processing units - GPU) beinhalten kann, die konfiguriert sind, Grafikaufgaben unabhängig auszuführen, die z. B. von einem oder mehreren Kernen der Kern-Domänen 1010 und 1020 bereitgestellt sind. Als ein Beispiel kann die GPU-Domäne 1030 verwendet werden, um Anzeigeunterstützung für eine Vielfalt von Bildschirmgrößen zusätzlich zum Bereitstellen von Grafik- und Anzeigerenderingoperationen bereitzustellen.
  • Wie zu erkennen ist, werden die verschiedenen Domänen mit einer kohärenten Verbindung 1040 gekoppelt, die bei einer Ausführungsform ein Cache-kohärentes Verbindungs-Fabric sein kann, das wiederum mit einer integrierten Speichersteuerung 1050 gekoppelt wird. Die kohärente Verbindung 1040 kann bei einigen Beispielen einen gemeinsam genutzten Cache-Speicher, wie etwa einen L3-Cache, beinhalten. Bei einer Ausführungsform kann die Speichersteuerung 1050 eine direkte Speichersteuerung sein, um mehrere Kommunikationskanäle mit einem chipexternen Speicher bereitzustellen, wie etwa mehrere Kanäle eines DRAM (in 10 zur Einfachheit der Darstellung nicht gezeigt).
  • In verschiedenen Beispielen kann die Anzahl der Kern-Domänen variieren. Für beispielsweise einen SoC mit niedrigem Stromverbrauch, der zur Integrierung in eine mobile Datenverarbeitungsvorrichtung geeignet ist, kann eine begrenzte Anzahl von Kern-Domänen, wie etwa in 10 gezeigt, vorhanden sein. Ferner noch kann bei solchen SoCs mit niedrigem Stromverbrauch die Kern-Domäne 1020 einschließlich Kernen mit höherem Stromverbrauch eine geringere Anzahl solcher Kerne aufweisen. Bei einer Implementierung können beispielsweise zwei Kerne 1022 bereitgestellt sein, um einen Betrieb bei geringeren Energieverbrauchsstufen zu ermöglichen. Außerdem können die unterschiedlichen Kern-Domänen auch mit einer Unterbrechungssteuerung gekoppelt sein, um ein dynamisches Umlagern von Auslastungen zwischen den unterschiedlichen Domänen zu ermöglichen.
  • Bei noch anderen Ausführungsformen kann eine größere Anzahl von Kern-Domänen sowie zusätzliche optionale IP-Logik vorhanden sein, sodass ein SoC auf höhere Leistungs-(und Stromverbrauchs)-Stufen skaliert werden kann zur Einbindung in andere Datenverarbeitungsvorrichtungen wie etwa Desktops, Server, Hochleistungs-Datenverarbeitungssysteme, Basisstationen und so weiter. Als ein solches Beispiel können 4 Kern-Domänen, die jeweils eine gegebene Anzahl von Out-of-Order-Kernen aufweisen, bereitgestellt sein. Ferner noch können zusätzlich zur optionalen GPU-Unterstützung (die als ein Beispiel die Form eines GPGPU annehmen kann) auch ein oder mehrere Beschleuniger zum Bereitstellen von optimierter Hardwareunterstützung für bestimmte Funktionen (z. B. als Webserver, zur Netzwerkverarbeitung, zum Switching und so weiter) bereitgestellt sein. Außerdem kann eine Eingabe-/Ausgabeschnittstelle vorhanden sein, um solche Beschleuniger mit chipexternen Komponenten zu koppeln.
  • Nun Bezug nehmend auf 11 ist ein Blockschaltbild eines anderen beispielhaften SoC gezeigt. Bei der Ausführungsform aus 11 kann das SoC 1100 verschiedene Schaltungen zum Ermöglichen einer hohen Leistung für Multimedia-Anwendungen, Kommunikationen und andere Funktionen beinhalten. Als solches ist das SoC 1100 zum Einbau in eine große Vielfalt von tragbaren und anderen Vorrichtungen geeignet, wie etwa Smartphones, Tablet-Computer, Smart-TVs und so weiter. In dem gezeigten Beispiel beinhaltet das SoC 1100 eine zentrale Prozessoreinheits (central processor unit - CPU)-Domäne 1110. Bei einer Ausführungsform können mehrere einzelne Prozessorkerne in der CPU-Domäne 1110 vorhanden sein. Als ein Beispiel kann die CPU-Domäne 1110 ein Vierkernprozessor sein, der 4 Mehrfach-Thread-Kerne aufweist. Bei solchen Prozessoren kann es sich um homogene oder heterogene Prozessoren, z. B. eine Mischung aus Prozessorkernen mit niedrigem und hohem Stromverbrauch, handeln.
  • Eine GPU-Domäne 1120 ist wiederum bereitgestellt, um fortgeschrittene Grafikverarbeitung in einem oder mehreren GPU durchzuführen, um Grafiken zu bearbeiten und APIs zu berechnen. Eine DSP-Einheit 1130 kann eine oder mehrere DSPs mit niedrigem Stromverbrauch bereitstellen zum Bearbeiten von Multimedia-Anwendungen mit niedrigem Stromverbrauch wie etwa Abspielen von Musik, Audio/Video und so weiter, zusätzlich zu fortgeschrittenen Berechnungen, die während der Ausführung von Multimedia-Befehlen auftreten können. Eine Kommunikationseinheit 1140 kann wiederum verschiedene Komponenten beinhalten, um Konnektivität über verschiedene drahtlose Protokolle bereitzustellen wie etwa mobile Kommunikationen (einschließlich 3G/4G LTE), drahtlose lokale Protokolle wie etwa Bluetooth™, IEEE 802.11 und so weiter.
  • Ferner noch kann ein Multimediaprozessor 1150 verwendet werden, um Aufnehmen und Abspielen von High-Definition-Video- und Audioinhalten durchzuführen, einschließlich des Verarbeitens von Benutzergesten. Eine Sensoreinheit 1160 kann mehrere Sensoren und/oder eine Sensorsteuerung beinhalten zur Schnittstellenbildung mit verschiedenen chipexternen Sensoren, die in einer gegebenen Plattform vorhanden sind. Ein Bildsignalprozessor 1170 kann mit einem oder mehreren separaten ISPs bereitgestellt sein, um Bildverarbeitung hinsichtlich von einer oder mehreren Kameras einer Plattform, einschließlich Stehbild- und Videokameras, aufgenommenem Inhalt durchzuführen.
  • Ein Anzeigeprozessor 1180 kann Unterstützung für eine Verbindung zu einer High-Definition-Anzeige von einer gegebenen Pixeldichte bereitstellen, einschließlich der Fähigkeit, drahtlos Inhalte zum Abspielen auf einer solchen Anzeige zu kommunizieren. Noch ferner kann eine Positionsbestimmungseinheit 1190 einen GPS-Empfänger beinhalten mit Unterstützung für mehrere GPS-Konstellationen, um Anwendungen hochgenaue Positionierungsinformationen bereitzustellen, die durch die Verwendung als ein solcher GPS-Empfänger erhalten werden. Es versteht sich, dass, obwohl im Beispiel aus 11 mit diesem spezifischen Satz von Komponenten gezeigt, viele Variationen und Alternativen möglich sind.
  • Nun Bezug nehmend auf 12 ist ein Blockschaltbild eines beispielhaften Systems gezeigt, in dem Ausführungsformen verwendet werden können. Wie zu erkennen ist, kann das System 1200 ein Smartphone oder eine andere drahtlose Kommunikationseinrichtung sein. Ein Basisband-Prozessor 1205 ist konfiguriert, um verschiedene Signalverarbeitung hinsichtlich von Kommunikationssignalen durchzuführen, die von dem System gesendet oder empfangen werden sollen. Der Basisband-Prozessor 1205 ist wiederum mit einem Anwendungsprozessor 1210 gekoppelt, der eine Haupt-CPU des Systems sein kann, um zusätzlich zu Benutzeranwendungen wie etwa vielen bekannten sozialen Medien- und Multimedia-Apps ein OS und andere Systemsoftware auszuführen. Der Anwendungsprozessor 1210 kann ferner konfiguriert sein, eine Vielfalt von anderen Datenverarbeitungsoperationen für die Vorrichtung durchzuführen.
  • Der Anwendungsprozessor 1210 kann wiederum mit einer Benutzerschnittstelle/Anzeige 1220, z. B. einer berührungsempfindlichen Anzeige, gekoppelt werden. Außerdem kann der Anwendungsprozessor 1210 mit einem Speichersystem gekoppelt werden, einschließlich einem nichtflüchtigen Speicher, und zwar einem Flash-Speicher 1230 und einem Systemspeicher, und zwar einem dynamischen Direktzugriffsspeicher (dynamic random access memory - DRAM) 1235. Wie ferner zu erkennen ist, ist der Anwendungsprozessor 1210 ferner mit einer Aufnahmevorrichtung 1240 wie etwa einer oder mehrerer Bildaufnahmevorrichtungen, die Video- und/oder stehende Bilder aufzeichnen können, gekoppelt.
  • Noch Bezug nehmend auf 12 ist eine universelle Prozessorchipkarte (universal integrated circuit card - UICC) 1240, umfassend ein Teilnehmer-Identitätsmodul und möglicherweise einen sicheren Speicher- und Crypto-Prozessor, auch mit dem Anwendungsprozessor 1210 gekoppelt. Das System 1200 kann ferner einen Sicherheitsprozessor 1250 beinhalten, der mit dem Anwendungsprozessor 1210 gekoppelt werden kann. Mehrere Sensoren 1225 können mit dem Anwendungsprozessor 1210 gekoppelt werden, um eine Eingabe einer Vielzahl von erfassten Informationen wie etwa Beschleunigungsmesser- und anderen Umgebungsinformationen zu ermöglichen. Eine Audioausgabevorrichtung 1295 kann eine Schnittstelle zum Ausgeben von Ton bereitstellen, z. B. in der Form von Sprachkommunikationen, gespielten oder gestreamten Audiodaten und so weiter.
  • Wie ferner dargestellt, ist eine kontaktlose Nahfeldkommunikations (near field communication - NFC)-Schnittstelle 1260 bereitgestellt, die in einem NFC-Nahfeld über eine NFC-Antenne 1265 kommuniziert. Obwohl separate Antennen in 12 gezeigt sind, versteht es sich, dass bei einigen Implementierungen eine Antenne oder ein anderer Satz von Antennen bereitgestellt sein können, um verschiedene Drahtlos-Funktionalitäten zu ermöglichen.
  • Eine integrierte Energiemanagementschaltung (power management integrated circuit - PMIC) 1215 ist mit dem Anwendungsprozessor 1210 gekoppelt, um Energiemanagement auf der Plattformebene durchzuführen. Zu diesem Ziel kann die PMIC 1215 Energiemanagement-Anfragen an den Anwendungsprozessor 1210 herausgeben, um wie gewünscht in bestimmte Niedrigenergiezustände einzutreten. Ferner kann die PMIC 1215, basierend auf Plattformvorgaben, auch die Leistungsstufe anderer Komponenten des Systems 1200 regeln.
  • Um zu ermöglichen, dass Kommunikationen gesendet und empfangen werden, können verschiedene Schaltungen zwischen dem Basisband-Prozessor 1205 und einer Antenne 1290 gekoppelt werden. Konkret können ein Hochfrequenz (radio frequency - RF)-Transceiver 1270 und ein drahtloser lokaler Netzwerk (wireless local area network - WLAN)-Transceiver 1275 vorhanden sein. Im Allgemeinen kann der RF-Transceiver 1270 zum Empfangen und Senden von drahtlosen Daten und Anrufen gemäß eines gegebenen drahtlosen Kommunikationsprotokoll wie etwa 3G oder 4G, einem drahtlosen Kommunikationsprotokoll wie etwa gemäß einem Codemultiplexverfahren (code division multiple access - CDMA), einem globalen System für mobile Kommunikation (GSM), Long Term Evolution (LTE) oder einem anderen Protokoll verwendet werden. Außerdem kann ein GPS-Sensor 1280 vorhanden sein. Andere drahtlose Kommunikationen wie etwa Empfang oder Senden von Radiosignalen, z. B. AM/FM und anderen Signalen können auch bereitgestellt sein. Außerdem können lokale drahtlose Kommunikationen über einen WLAN-Transceiver 1275 umgesetzt werden.
  • Nun Bezug nehmend auf 13 ist ein Blockschaltbild eines anderen beispielhaften Systems gezeigt, mit dem Ausführungsformen verwendet werden können. In der Darstellung aus 13 kann das System 1300 ein mobiles System mit geringem Stromverbrauch wie etwa ein Tablet-Computer, ein 2 in 1-Tablet, ein Phablet oder ein anderes umwandelbares oder eigenständiges Tabletsystem sein. Wie dargestellt, ist ein SoC 1310 vorhanden und kann konfiguriert sein, als ein Anwendungsprozessor für die Vorrichtung zu arbeiten.
  • Eine Vielfalt von Vorrichtungen kann mit dem SoC 1310 gekoppelt werden. In der gezeigten Darstellung beinhaltet ein Speicher-Teilsystem einen mit dem SoC 1310 gekoppelten Flash-Speicher 1340 und ein DRAM 1345. Außerdem ist ein berührungsempfindliches Bedienfeld 1320 mit dem SoC 1310 gekoppelt, um Anzeigefähigkeit und Benutzereingabe über Berührung bereitzustellen, einschließlich der Bereitstellung einer virtuellen Tastatur an einer Anzeige des berührungsempfindlichen Bedienfelds 1320. Zum Bereitstellen von drahtgebundener Netzwerkkonnektivität wird das SoC 1310 mit einer Ethernetschnittstelle 1330 gekoppelt. Ein Peripherie-Hub 1325 ist mit dem SoC 1310 gekoppelt, um eine Schnittstellenbildung zu verschiedenen Peripheriegeräten zu ermöglichen, und kann mit dem System 1300 durch jeden von verschiedenen Ports oder anderen Verbindern gekoppelt werden.
  • Außerdem ist zur internen Energiemanagement-Schaltung und Funktionalität innerhalb des SoC 1310 eine PMIC 1380 mit dem SoC 1310 gekoppelt, um ein plattformbasiertes Energiemanagement bereitzustellen, z. B. basierend darauf, ob das System von einer Batterie 1390 oder mit Wechselstrom über einen Wechselstromadapter 1395 mit Strom versorgt wird. Zusätzlich zu diesem stromquellenbasierten Energiemanagement kann die PMIC 1380 ferner Energiemanagementaufgaben für die Plattform basierend auf Umgebungs- und Nutzungsbedingungen durchführen. Noch ferner kann die PMIC 1380 Regelungs- und Statusinformationen an das SoC 1310 kommunizieren, um verschiedene Energiemanagementmaßnahmen innerhalb des SoC 1310 zu veranlassen.
  • Noch Bezug nehmend auf 13 ist zum Bereitstellen von Drahtlosfunktionen eine WLAN-Einheit 1350 mit dem SoC 1310 und wiederum mit einer Antenne 1355 gekoppelt. Bei verschiedenen Implementierungen kann die WLAN-Einheit 1350 Kommunikation gemäß einem oder mehreren Drahtlosprotokollen bereitstellen.
  • Wie ferner dargestellt, können mehrere Sensoren 1360 mit dem SoC 1310 gekoppelt werden. Diese Sensoren können verschiedene Beschleunigungsmesser-, Umgebungs- und andere Sensoren beinhalten, einschließlich Benutzergestensensoren. Schließlich ist ein Audio-Codec 1365 mit dem SoC 1310 gekoppelt, um eine Schnittstelle zu einer Audioausgabevorrichtung 1370 bereitzustellen. Es versteht sich natürlich, dass, obwohl bei dieser spezifischen Implementierung in 13 gezeigt, viele Variationen und Alternativen dazu möglich sind.
  • Nun Bezug nehmend auf 14 ist ein Blockschaltbild eines typischen Computersystems wie etwa Notebook, Ultrabook™ oder eines anderen Systems mit einem kleinen Formfaktor gezeigt. Ein Prozessor 1410 beinhaltet bei einer Ausführungsform Folgendes: einen Mikroprozessor, einen Mehrkernprozessor, einen Mehrfachthread-Prozessor, einen Prozessor mit Ultra-Niedrigspannung, einen eingebetteten Prozessor oder ein anderes bekanntes Verarbeitungselement. Bei der dargestellten Implementierung agiert der Prozessor 1410 als eine Hauptprozessoreinheit und Zentralstelle für die Kommunikation mit vielen der verschiedenen Komponenten des Systems 1400 und kann Energiemanagementschaltungen wie hier beschrieben beinhalten. Als ein Beispiel ist der Prozessor 1410 als ein SoC implementiert.
  • Der Prozessor 1410 kommuniziert bei einer Ausführungsform mit einem Systemspeicher 1415. Als ein darstellendes Beispiel ist der Systemspeicher 1415 über mehrere Speichervorrichtungen oder -module implementiert, um eine gegebene Menge an Systemspeicher bereitzustellen.
  • Um eine dauerhafte Speicherung von Informationen wie etwa Daten, Anwendungen, einem oder mehreren Betriebssystemen und so weiter bereitzustellen, kann ein Massenspeicher 1420 auch mit dem Prozessor 1410 gekoppelt werden. Bei verschiedenen Ausführungsformen kann zum Ermöglichen eines dünneren und leichteren Systemdesigns und zum Verbessern der Systemreaktionsfähigkeit dieser Massenspeicher über eine SSD implementiert sein oder der Massenspeicher kann primär unter Verwendung eines Festplattenlaufwerks (hard disk drive - HDD) mit einer kleineren Menge von SSD-Speicher implementiert sein, um als ein SSD-Cache zu fungieren, um einen nichtflüchtigen Speicher von Kontext-Zustand und anderen solchen Informationen während Stromausfällen zu ermöglichen, sodass ein schnelles Hochfahren bei der Reinitialisierung der Systemaktivitäten stattfinden kann. Wie auch in 14 gezeigt, kann eine Flash-Vorrichtung 1422 mit dem Prozessor 1410 gekoppelt werden, z.B. über eine serielle Peripherieschnittstelle (serial peripheral interface - SPI). Diese Flash-Vorrichtung kann nichtflüchtigen Speicher von Systemsoftware bereitstellen, einschließlich von Basis-Eingabe-/Ausgabe-Software (input/output software - BIOS) sowie anderer Firmware des Systems.
  • Verschiedene Eingabe-/Ausgabe (input/output - I/O)-Vorrichtungen können innerhalb des Systems 1400 vorhanden sein. Bei der Ausführungsform aus 14 konkret gezeigt ist eine Anzeige 1424, die ein High Definition-LCD- oder LED-Bedienfeld sein kann, das ferner einen berührungsempfindlichen Bildschirm 1425 bereitstellt. Bei einer Ausführungsform kann die Anzeige 1424 mit dem Prozessor 1410 über eine Anzeigeverbindung gekoppelt sein, die als Hochleistungsgrafikverbindung implementiert sein kann. Der berührungsempfindliche Bildschirm 1425 kann mit dem Prozessor 1410 über eine andere Verbindung gekoppelt sein, die bei einer Ausführungsform eine I2C.Verbindung sein kann. Wie ferner in 14 gezeigt, kann zusätzlich zu dem berührungsempfindlichen Bildschirm 1425 eine Benutzereingabe auch über ein berührungsempfindliches Bedienfeld 1430 mittels Berührung vorgenommen werden, das innerhalb des Chassis konfiguriert sein kann und auch mit der gleichen I2C-Verbindung als berührungsempfindlicher Bildschirm 1425 gekoppelt sein kann.
  • Für perzeptive Datenverarbeitung und andere Zwecke können verschiedene Sensoren innerhalb des Systems vorhanden sein und können auf verschiedene Weisen mit dem Prozessor 1410 gekoppelt sein. Bestimmte Inertial- und Umgebungssensoren können mit dem Prozessor 1410 durch einen Sensor-Hub 1440 gekoppelt werden, z.B. über eine I2C-Verbindung. Bei der in 14 gezeigten Ausführungsform können diese Sensoren einen Beschleunigungsmesser 1441, einen Umgebungslichtsensor (ambient light sensor - ALS) 1442, einen Kompass 1443 und einen Kreiselsensor 1444 beinhalten. Andere Umgebungssensoren können einen oder mehrere Wärmesensoren 1446 beinhalten, die bei einigen Ausführungsformen mit dem Prozessor 1410 über einen Systemverwaltungsbus (system management bus - SMBus)-Bus koppeln.
  • Auch in 14 zu erkennen sind verschiedene Peripheriegeräte, die mit dem Prozessor 1410 über eine (low pin count - LPC)-Verbindung mit niedriger Pin-Anzahl gekoppelt werden können. Bei der gezeigten Ausführungsform können verschiedene Komponenten durch eine eingebettete Steuerung 1435 gekoppelt werden. Solche Komponenten können eine Tastatur 1436 (z. B. über eine PS2-Schnittstelle gekoppelt), einen Lüfter 1437 und einen Wärmesensor 1439 beinhalten. Bei einigen Ausführungsformen kann ein berührungsempfindliches Bedienfeld 1430 auch mit der EC 1435 über eine PS2-Schnittstelle gekoppelt werden. Außerdem kann ein Sicherheitsprozessor wie etwa ein Trusted Platform Module (TPM) 1438 auch mit dem Prozessor 1410 über diese LPC-Verbindung gekoppelt werden. Bei einer Ausführungsform kann die EC 1435 als ein Platform-Controller fungieren, um eine Regelung einer oder mehrerer Kühllösungen basierend zumindest teilweise auf den vom Prozessor 1410 erhaltenen Informationen zu thermischer Obergrenze und Wärmeregulierung wie hier beschrieben bereitzustellen.
  • Das System 1400 kann mit externen Vorrichtungen auf eine Vielfalt von Arten kommunizieren, einschließlich drahtlos. Bei der gezeigten Ausführungsform in 14 sind verschiedene drahtlose Module, von denen jedes einer Funkeinheit entsprechen kann, die für ein spezifisches drahtloses Kommunikationsprotokoll konfiguriert ist, vorhanden. Eine Art von drahtloser Kommunikation in kurzer Reichweite wie etwa Nahfeld kann über eine NFC-Einheit 1445 vorgenommen werden, die bei einer Ausführungsform mit dem Prozessor 1410 über einen SMBus kommunizieren kann. Es wird angemerkt, dass Vorrichtungen in großer Nähe zueinander über diese NFC-Einheit 1445 kommunizieren können.
  • Wie ferner in 14 zu erkennen ist, können zusätzliche Drahtlos-Einheiten andere Drahtlos-Engines kurzer Reichweite einschließlich einer WLAN-Einheit 1450 und einer Bluetooth™-Einheit 1452 beinhalten. Unter Verwendung der WLAN-Einheit 1450 können Wi-Fi™-Kommunikationen umgesetzt werden, während über die Bluetooth™-Einheit 1452, Bluetooth™-Kommunikationen von kurzer Reichweite vorgenommen werden können. Diese Einheiten können mit dem Prozessor 1410 über einen gegebenen Link kommunizieren.
  • Außerdem können drahtlose Weitverkehrskommunikationen, z.B. gemäß einem Funk- oder einem anderen drahtlosen Weitverkehrsprotokoll, über eine WWAN-Einheit 1456 vorgenommen werden, die wiederum mit einem Teilnehmer-Identitätsmodul (subscriber identity module - SIM) 1457 gekoppelt werden kann. Außerdem kann auch ein GPS-Modul 1455 vorhanden sein, um den Empfang und die Verwendung von Positionsinformationen zu ermöglichen. Es wird angemerkt, dass bei der gezeigten Ausführungsform in 14 die WWAN-Einheit 1456 und eine integrierte Aufnahmevorrichtung wie etwa ein Kameramodul 1454 über einen gegebenen Link kommunizieren können.
  • Um Audioeingaben und -ausgaben bereitzustellen, kann ein Audioprozessor über einen digitalen Signalprozessor (DSP) 1460 implementiert sein, der mit dem Prozessor 1410 über einen High Definition Audio (HDA)-Link gekoppelt werden kann. Ähnlich kann der DSP 1460 mit einem integrierten Codierer/Decodierer (coder/decoder - CODEC) und Verstärker 1462 kommunizieren, die wiederum mit Ausgabelautsprechern 1463 gekoppelt werden können, die innerhalb des Chassis implementiert sein können. Ähnlich können ein Verstärker und ein CODEC 1462 gekoppelt werden, um Audioeingaben von einem Mikrofon 1465 zu empfangen, das bei einer Ausführungsform über Dual-Array-Mikrofone (wie etwa eine digitale Mikrofonanordnung) implementiert werden kann, um Audioeingaben von hoher Qualität bereitzustellen, um eine sprachaktivierte Steuerung verschiedener Operationen innerhalb des Systems zu ermöglichen. Es ist angemerkt, dass vom Verstärker/CODEC 1462 auch Audioausgaben an einen Kopfhöreranschluss 1464 bereitgestellt werden können. Obwohl mit diesen spezifischen Komponenten bei der Ausführungsform aus 14 gezeigt, versteht es sich, dass der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt ist.
  • Die Ausführungsformen können in vielen unterschiedlichen Systemtypen implementiert werden. Nun Bezug nehmend auf 15 ist ein Blockschaltbild eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie in 15 gezeigt, ist das Mehrprozessorsystem 1500 ein Punkt-zu-Punkt-Verbindungssystem und beinhaltet einen ersten Prozessor 1570 und einen zweiten Prozessor 1580, die über eine Punkt-zu-Punkt-Verbindung 1550 gekoppelt sind. Wie in 15 gezeigt, kann jeder der Prozessoren 1570 und 1580 Mehrkernprozessoren sein, die erste und zweite Prozessorkerne (d. h. die Prozessorkerne 1574a und 1574b sowie die Prozessorkerne 1584a und 1584b) beinhalten, obwohl potenziell viele weitere Kerne in den Prozessoren vorhanden sein können. Jeder der Prozessoren kann eine PCU oder eine andere Energiemanagementlogik beinhalten, um ein prozessorbasiertes Energiemanagement wie hier beschrieben durchzuführen.
  • Noch Bezug nehmend auf 15 beinhaltet der erste Prozessor 1570 ferner einen Speichersteuerungs-Hub (memory controller hub - MCH) 1572 und Punkt-zu-Punkt (P-P)-Schnittstellen 1576 und 1578. Ähnlich beinhaltet der zweite Prozessor 1580 einen MCH 1582 und P-P-Schnittstellen 1586 und 1588. Wie in 15 gezeigt, sind die Prozessoren durch die MCHs 1572 und 1582 mit jeweiligen Speichern gekoppelt, und zwar einem Speicher 1532 und einem Speicher 1534, die Teile des Systemspeichers (z. B. DRAM) sein können, der lokal mit den jeweiligen Prozessoren verknüpft ist. Der erste Prozessor 1570 und der zweite Prozessor 1580 können über P-P-Verbindungen 1562 und 1564 jeweils mit einem Chipsatz 1590 gekoppelt sein. Wie in 15 gezeigt, beinhaltet der Chipsatz 1590 die P-P-Schnittstellen 1594 und 1598.
  • Darüber hinaus beinhaltet der Chipsatz 1590 eine Schnittstelle 1592, um den Chipsatz 1590 über eine P-P-Verbindung 1539 mit einer Hochleistungs-Grafik-Engine 1538 zu koppeln. Der Chipsatz 1590 wiederum kann mit einem ersten Bus 1516 über eine Schnittstelle 1596 gekoppelt werden. Wie in 15 gezeigt, können verschiedene Eingabe-/Ausgabe- (input/output - I/O)-Vorrichtungen 1514 mit dem ersten Bus 1516 gekoppelt werden, gemeinsam mit einer Busbrücke 1518, die den ersten Bus 1516 mit einem zweiten Bus 1520 koppelt. Verschiedene Vorrichtungen können mit dem zweiten Bus 1520 gekoppelt werden, einschließlich, beispielsweise, einer Tastatur/Maus 1522, Kommunikationsvorrichtungen 1526 und eine Datenspeichereinheit 1528 wie etwa ein Disk-Laufwerk oder eine andere Massenspeichervorrichtung, die bei einer Ausführungsform Code 1530 beinhalten kann. Ferner kann eine Audio-I/O 1524 mit dem zweiten Bus 1520 gekoppelt werden. Ausführungsformen können in andere Typen von Systemen eingebaut werden, einschließlich mobiler Vorrichtungen wie etwa einem smarten Mobiltelefon, Tablet-Computer, Netbook, Ultrabook™ und so weiter.
  • 16 ist ein Blockschaltbild eines Multi-Chip-Moduls 1600 gemäß einer Ausführungsform der vorliegenden Erfindung. Das MCP 1600 kann mehrere Dies 16100 - 1610N , einschließlich eines Prozessor-Dies 16100 und eines Fabric-Dies 16101 beinhalten. Der Prozessor-Die 16100 kann einen Kernbereich beinhalten, der mehrere Kerne, mehrere Temperatursensoren und einen oder mehrere Cache-Speicher aufweist. Der Prozessor-Die 16100 kann, neben anderen Schaltungen, auch zusätzliche Schaltungen wie etwa einen Nicht-Kern-Bereich beinhalten, der eine Power Control Unit (PCU), Verbindungslogik und einen oder mehrere Nicht-Kern-Agenten mit jeweils einem oder mehreren Temperatursensoren aufweist. Der Fabric-Die 16101 kann, neben Fabric-Schaltungen, einen oder mehrere Temperatursensoren beinhalten. Zusätzliche Dies 16102 - 1610N können einen oder mehrere dynamische Direktzugriffsspeicher (dynamic random access memory - DRAM), einen Netzwerkschnittstellensteuerungs (network interface controller - NIC)-Die und/oder andere Schaltungen beinhalten. Jeder der anderen Dies 16102 - 1610N kann einen oder mehrere Temperatursensoren zusätzlich zu Speicherzellen und anderen Schaltungen beinhalten. Wie an den Pfeilen aus 16 zu erkennen ist, können die verschiedenen Dies miteinander kommunizieren. Es wird angemerkt, dass hier der Prozessor-Die 16100 bei den Ausführungsformen von jedem Die thermische Daten gemeinsam mit Leistungsinformationen empfangen kann.
  • Nun Bezug nehmend auf 17 ist eine thermische Lastkurve für eine typische Die-Komponente eines Prozessormoduls gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Es versteht sich, dass ähnliche thermischen Lastkurven (obwohl sie unterschiedliche Werte oder Merkmale aufweisen) für jeden in einem wie in 17 gezeigten Modul eingebauten Die bereitgestellt werden können, eine grafische Darstellung vorgelegt wird, die eine thermische Lastkurve 1700 aufweist, in der die y-Achse die Vorrichtungstemperatur darstellt und die x-Achse die Vorrichtungsleistung darstellt.
  • Wie ferner in 17 dargestellt, ist ein Drosselungsschwellenwert 1710 bereitgestellt. Der Drosselungsschwellenwert 1710 kann eine vorbestimmte Schwellenwerttemperatur sein, bei der eine sofortige Drosselung der Aktivität auf einem oder mehreren Dies eines MCP stattzufinden hat, um einen Schaden am Prozessor zu verhindern. Sollte daher ein gemessener thermischer Wert von einem oder mehreren Dies eine Ebene an oder über dem Drosselungsschwellenwert 1710 anzeigen, kann die Drosselung beginnen.
  • Wie weiter dargestellt, ist auch eine Wärmeregulierungsebene 1720 bereitgestellt. Dieser Wärmeregulierungs (Tctrl)-Wert kann einer prozessorexternen Regelung, wie etwa einen Platform-Controller, bereitgestellt werden, um eine thermische Ebene anzuzeigen, unter welcher eine begrenzte Kühllösungsregelung erforderlich sein kann.
  • Noch Bezug nehmend auf 17 kann, wenn die gemessene Temperatur unter der thermischen Lastkurve 1700 liegt, sodass der Betrieb in einer sicheren Zone 1730 liegt, kein Energiemanagement oder thermisch basierte Vorgaben von einer Wärmeregulierungslogik oder einem anderen Power-Controller eines Prozessors angewendet werden. Statt dessen kann, sollte eine gemessene Temperatur die thermische Lastkurve 1700 in eine Warnzone 1740 hinein übersteigen, eine prozessorinterne und/oder prozessorexterne Wärme- und/oder Energiemanagementregelung auftreten.
  • Es versteht sich, dass die thermische Lastkurve 1700 auf Bauteilbasis konfiguriert sein kann, unter Verwendung von Informationen, die während Fertigungstestabläufen erhalten wurden. Bei unterschiedlichen Ausführungsformen können verschiedene Informationen in einem gegebenen nichtflüchtigen Speicher eines Prozessors gespeichert werden, um eine Identifizierung einer und/oder eine Generierung einer thermischen Lastkurve während des normalen Prozessorbetriebs zu ermöglichen. Die Lastkurve für einen gegebenen Die kann bei einer Ausführungsform definiert werden als: Thermische Lastkurve  ( Tj _ Spezifikation _ i ) = Tj _ max _ i ( TDP _ i P _ i ) * R _ ii
    Figure DE112017001805T5_0001
    wobei Tj_i die Grenzschichttemperatur der i-ten Die-Komponente des Moduls ist; Tj_max_i die Tj_Höchstgrenze (maximum limit) der i-ten Die-Komponente ist, P_i die gemessene Leistung der i-ten Die-Komponente ist, und R_ii ein thermischer Widerstandswert ist, der zum Definieren der thermischen Lastkurve verwendet wird. Ein vorsichtiger Wert für R_ii wäre psi_ja_ii, der im Wesentlichen ein Maß dessen ist, wie die Temperatur des i-ten Dies mit der Leistung ansteigt, wenn maximale Kühlung bereitgestellt ist. Deshalb stellt er einen Widerstandswert dar und wird in Celsius pro Watt (C/W) gemessen. Es versteht sich, dass für diesen Wert auch niedrigere Werte verwendet werden können; und TDP_i ist der TDP für den i-ten Die des Moduls (wobei der TDP basierend auf einer ungünstigsten Auslastung für einen gegebenen Die spezifiziert ist).
  • Bei einer Ausführungsform kann die thermische Lastkurve für eine ungünstigste Auslastung für die gegebene Komponente berechnet werden. Als ein Beispiel kann diese ungünstigste Auslastung für einen modulinternen Speicher eine gegebene speicherzentrische Auslastung sein. Bei einem CPU-Die kann die ungünstigste Auslastung eine gegebene CPUzentrische Auslastung sein.
  • Bei der Ausführung dieser Die-zentrischen Auslastungen können die anderen Dies auf niedrigeren Betriebsstufen gehalten werden, um die Die-übergreifenden thermischen Effekte zu minimieren. Es ist angemerkt, dass die Temperatur durch eine Regelung gemäß einer wie vorstehend bestimmten thermischen Lastkurve für entsprechende niedrigere Leistungswerte auf niedrigeren Niveaus gehalten wird.
  • Nun Bezug nehmend auf Table 1 ist eine Aufstellung thermischer Widerstandswerte und Zeitkonstanten eines Prozessors und einer Wärmesenkenbaugruppe gemäß einer Ausführungsform bei verschiedenen Luftdurchsätzen angegeben. Es ist angemerkt, dass die thermischen Zeitkonstanten bei konstantem Luftstrom bestimmt werden können und dass die Eingangsleistung an den Prozessor einer drastischen Änderung unterliegt und die Zunahme/Abnahme der Prozessor-Die-Temperatur als eine Funktion der Zeit überwacht wird, um die Werte für den Widerstand und die thermische Zeitkonstante zu bestimmen. Tabelle 1
    Luftdurchsatz
    5 CFM 7,5 CFM 12 CFM
    R1 (C/W) 0,217 0,214 0,212
    R2 (C/W) 0,310 0,226 0,154
    R3 (C/W) 0,061 0,031 0,013
    τ1 (s) 0,84 0,80 0,76
    τ2 (s) 37,46 26,92 17,67
    τ3 (s) 114,56 110,8 80,64
  • In diesem Beispiel wurden die Werte für den Widerstand und die Zeitkonstante durch Untersuchen der Temperaturreaktion auf eine Leistungseingangsgröße bestimmt. Es ist angemerkt, dass R1 54% des gesamten Widerstands am höchsten Design-Luftdurchsatz in dem vorstehenden Beispiel beträgt. Die Die-Temperaturen sind auch betroffen, wenn eine drastische Änderung bei der Luftzufuhr vorliegt (z. B. verläuft die Luftzufuhr von 5 CFM auf 12 CFM). Man kann die Die-Temperatur als eine Funktion der Zeit überwachen, wenn die Prozessorleistung auf einem festen Wert gehalten und die Luftzufuhr geändert wird. Werte des thermischen Widerstands und der thermischen Zeitkonstante, die mit einer Veränderung bei der Luftzufuhr verbunden sind, sind extrahierbar. In der Regel ist die thermische Zeitkonstante für die Die-Temperatur zum Erkennen einer Änderung bei der Luftzufuhr hoch (annähernd 20 Sekunden). Wenn ein Die etwa 20 Sekunden braucht, um den Effekt von Änderungen bei der Lüfterdrehzahl (Kühlung) zu erkennen, ist ein Wert R_ii zu wählen, der mit einer derart langen Zeitkonstante verknüpft ist. In der vorstehenden Table 1 würde bei der höchsten Kühlung eine Zeitkonstante von 20 Sekunden gleich annähernd (R1+R2) betragen.
  • Es ist angemerkt, dass die Temperatur über einen kurzen Zeitraum signifikant ansteigen kann, und zwar kurz für eine Erhöhung der Lüfterdrehzahl, um eine Auswirkung auf die Die-Temperatur zu haben. Deshalb können, um eine thermische Drosselung zu verhindern, Werte zwischen R1 und psi_ja (z. B. R1+R2+R3) verwendet werden, um beim Definieren der Lastkurven gemäß Gleichung 1 verwendet zu werden.
  • Die bestimmten thermischen Lastkurven können in einem gegebenen nichtflüchtigen Speicher des Prozessors gespeichert werden. Bei einer Ausführungsform können beispielsweise der Tjmax-Grenzwert und die Steigung (R_ii) für jeden Die-Typ als vereinigte Werte gespeichert werden. Solche Werte können verwendet werden, um eine gegebene thermische Lastkurve darzustellen. Wie hier verwendet, kann eine Speicherung einer thermischen Lastkurve verstanden werden als dass sie eine Speicherung von mindestens diesen Werten beinhaltet, die ausreichend sind, um eine vollständige thermische Lastkurve neu zu erstellen.
  • Während des Betriebs kann von einer Wärmeregulierungslogik auf diese vereinigten Werte zugegriffen werden, um die Berechnung einer thermischen Lücke oder Obergrenze während des tatsächlichen Prozessorbetriebs (und zwar einer Obergrenze, die sich in eine sichere Zone erstreckt und der thermischen Lastkurve zuwiderläuft) zu ermöglichen. Bei der thermischen Lastkurve aus 17 liegt eine sichere Zone 1730 im Bereich unter der thermischen Lastkurve 1700. Bei einer Ausführungsform kann ein exponentiell gleitender Durchschnitt, der der ersten Zeitkonstante (τ1) entspricht, zum Bewerten der thermischen Spezifikation verwendet werden.
  • Zum dynamischen Bestimmen einer thermischen Obergrenze für einen gegebenen Die werden alle Wärmesensoren auf dem gegebenen Die abgefragt und es wird eine maximale Betriebstemperatur (Tj) bestimmt. Außerdem wird auch der Energieverbrauch des Die überwacht. Dieser Betriebstemperatur (Tj)-Wert wird mit der tatsächlichen thermischen Spezifikation für den Die verglichen, um die thermische Obergrenze zu berechnen. Diese thermische Obergrenze wird für jeden Die-Typ berechnet. Die minimale thermische Obergrenze kann wiederum an die Plattform gemeldet werden, um die Lüfterdrehzahlregelung zu ermöglichen.
  • Bei einer Ausführungsform kann die thermische Obergrenze wie folgt bestimmt werden: Thermische _ Obergrenze _ i = Tj _ Spezifikation _ i Tj _ i
    Figure DE112017001805T5_0002
  • Im Echtzeitbetrieb eines Prozessors kann sich die Leistung eines gegebenen Die schnell ändern, wodurch die Tj_Spezifikation ihren Wert ebenfalls ändert. Zum Vermeiden dieser Situation kann ein exponentiell gleitender Durchschnittswert der berechneten Tj_Spezifikation zum Berechnen der thermischen Obergrenze verwendet werden. Der exponentiell gleitende Durchschnitt wird über eine thermisch relevante Zeitkonstante berechnet.
  • Die minimale thermische Obergrenze kann wiederum gemäß Folgendem bestimmt werden: Minimale Thermische_Obergrenze=min ( Thermische_Obergrenze _ 1, Thermische_Obergrenze _ 2,....., Thermische_Obergrenze _ Die_Typ_ N )
    Figure DE112017001805T5_0003
  • Durch Berechnen einer lastkurvenbasierten minimalen thermischen Obergrenze an Stelle einer thermischen Obergrenze bis zu einem Drosselungsschwellenwert senkt die thermische Lastkurve die durchschnittliche Betriebstemperatur der Vorrichtung über ihre Lebensdauer und stellt einen optimalen thermischen Betriebspunkt bereit, um eine Drosselung zu verhindern.
  • Es ist angemerkt, dass die vorstehende Lastkurvenbestimmung auf Tj_max-Werten basieren kann, anstatt dass sie bei einer lokalen Umgebungstemperatur beginnt. Mit dieser Bestimmung funktioniert die sich ergebende thermische Lastkurve gut für einen MCP, da der Tj_max-Wert Wärmeeffekte von angrenzenden Dies umfasst.
  • Ausführungsformen können auch verwendet werden, um optimale Regelungstemperatur (Tcontrol)-Werte für jeden Die-Typ basierend auf der thermischen Spezifikation zu bestimmen. Zu diesem Ziel kann, wenn eine Wärmesensortemperatur oberhalb von Tcontrol liegt, eine Kühllösung entsprechend geregelt werden. Beispielsweise kann ein Lüfter hochfahren. Bei einer Ausführungsform kann ein Tcontrol-Wert wie folgt berechnet werden: Tcontrol= ( TDP idle_Power ) * R _ ii
    Figure DE112017001805T5_0004
    Bei Gl. 4 entspricht die Leerlaufleistung der Leistungsstufe des Die, wenn er keine aktive Arbeit leistet und es sich bei der Leistung hauptsächlich um die Verlustleistung des Die handelt. Für einen DRAM-Die kann dies der Leistung entsprechen, die von dem Die bei einer Speicherbandbreitennutzung von Null abgeführt wird.
  • Diese Gleichung zur Wärmeregulierung setzt voraus, dass ein Prozessor bei Tcontrol bei einer Leerlauf-Auslastung arbeiten kann und eine maximale (z. B. TDP)-Auslastung plötzlich einsetzt. Die vorstehende Gleichung 4 kann verwendet werden, um einen Tcontrol-Wert zu berechnen, der die thermische Drosselung minimieren wird. Dieser Tcontrol-Wert kann gemeinsam mit den anderen gespeicherten thermischen Werten in einem angemessenen Speicher gespeichert werden, z. B. in einem nichtflüchtigen Speicher, und kann gemeinsam mit der thermischen Lastkurven-Spezifikation aus Gl. 1 für jeden Die-Typ verwendet werden. Als ein Beispiel kann ein Fabric-Die, der kein thermisches Drosselungsmerkmal aufweisen kann, unter Verwendung dieses Tcontrol-Werts geregelt werden, der mittels der Gl. 4 berechnet wurde, um zu gewährleisten, dass der Die seine Grenze nicht überschreitet. Während die vorstehenden Gl. 1-4 Tj-Grenzwerte verwenden, kann man die Gleichungen leicht auf die Sensortemperatur umschreiben, indem ein Wärmezentrum einbezogen wird, um einen ortsspezifischen thermischen Widerstandswert zu erfühlen.
  • Ausführungsformen stellen somit eine Lastkurven-Spezifikationsmethodik für ein Multi-Chip-Modul bereit, die eine verbesserte Klassenaufteilung (Prozentsatz hergestellter Module, die bestimmte Design-Spezifikationen erfüllen) und eine erhöhte Betriebsfrequenz ergibt.
  • Nun Bezug nehmend auf 18 ist ein Flussdiagramm eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Insbesondere kann das Verfahren 1800 aus 18 während Herstellungs- und Kennzeichnungsoperationen während der Herstellung eines Prozessors oder eines anderen SoC durchgeführt werden. Zu diesem Ziel kann das Verfahren 1800 zumindest teilweise unter Verwendung von einem oder mehreren Servercomputern oder anderen Datenverarbeitungssystemen innerhalb einer Fertigungsanlage durchgeführt werden. Diese Verfahren ermöglichen die Kennzeichnung und Ausbildung von Prozessoren, auf denen Konfigurationsdaten wie hier beschrieben gespeichert sind, die während des Normalbetriebs verwendet werden können, um thermische Überwachung, Kommunikations- und Regelungsoperationen wie hier erörtert durchzuführen. Es wird angemerkt, dass diese Kennzeichnung auch durch Simulationen vorgenommen werden kann.
  • Wie gezeigt, kann das Verfahren 1800 bei Block 1810 durch Auswählen eines gegebenen Dies aus mehreren Dies innerhalb eines Multi-Chip-Moduls beginnen. Danach wird bei Block 1820 eine ungünstigste Auslastung für diesen Die bestimmt, die ausgeführt/simuliert werden kann. Diese ungünstigste Auslastung kann beispielsweise einer Die-zentrischen Auslastung entsprechen, sodass der gegebene Die der aktivste Die innerhalb des Moduls ist. Danach können bei Block 1830 die Temperatur und die Leistung des Die während der Ausführung/Simulation dieser ungünstigsten Auslastung gemessen werden. Ein oder mehrere Die-interne Wärmesensoren können beispielsweise Temperaturinformationen bereitstellen. Außerdem können ein oder mehrere Die-interne Leistungssensoren oder andere Sensoren verwendet werden, um den Energieverbrauch zu messen. Somit können Tj_max und TDP für den gegebenen Die bestimmt werden. Es wird auch angemerkt, dass Tj gegenüber der Leistungssensitivität durch Laufenlassen von weniger belastenden Auslastungen (psi_ja_ii = Steigung von Tj ggü. Leistung) bestimmt werden können. Danach können bei Block 1840 diese Informationen in einem Speichereingang für den Die gespeichert werden. Es wird angemerkt, dass diese Speicherung von Inforationen in einem Speichereingang für einen Die innerhalb einer Tabelle vorgenommen werden kann, die z. B. auf einem gegebenen Servercomputer, Herstellungswerkzeug und so weiter gespeichert sein kann. Bei einer Ausführungsform können Tj, TDP und Rii, ein Wert zwischen 0 und psi_ja_ii gespeichert werden. Danach wird bei Raute 1850 bestimmt, ob weitere Dies zu kennzeichnen sind. Falls ja, wird der Die-Zähler inkrementiert (Block 1860) und die Steuerung geht zurück zu Block 1810, für eine weitere Iteration der Kennzeichnungsoperationen.
  • Noch Bezug nehmend auf 18, wenn statt dessen alle Dies innerhalb eines Moduls angemessen gekennzeichnet wurden, rückt die Steuerung vor zu Block 1870. Danach kann zumindest teilweise basierend auf dem TDP-Wert und dem Wärmewiderstandswert (pro Die) ein Wärmeregulierungswert für die unterschiedlichen Dies berechnet werden (Block 1890), z. B. durch die vorstehende Gl. 4. Dieser Wärmeregulierungswert kann in einem nichtflüchtigen Speicher des Prozessors gespeichert werden (Block 1875). Als ein Beispiel kann dieser nichtflüchtige Speicher ein Sicherungsspeicher innerhalb des Prozessors sein, wie etwa auf einem CPU-Die innerhalb des Prozessors vorhanden ist. In anderen Fällen kann ein separater nichtflüchtiger Speicher innerhalb des Prozessors vorhanden sein, z. B. ein Sicherungsspeicher, der mit jedem der separaten Dies verknüpft ist. In jedem Fall können diese Wärmeregulierungsinformationen während des Herstellungsprozesses dauerhaft gespeichert werden.
  • Noch Bezug nehmend auf 18 rückt die Steuerung danach vor zu Block 1880, wo eine thermische Lastkurve für jeden Die berechnet werden kann. Insbesondere kann diese thermische Lastkurve für jeden Die basierend auf der gespeicherten Temperatur und Leistung (z. B. erhalten wie vorstehend erörtert) gemeinsam mit anderen Werten berechnet werden, einschließlich eines Werts der thermischen Verlustleistung für den Die und eines thermischen Widerstandswerts (gemeinsam mit dem Wärmeregulierungswert). Bei einer Ausführungsform kann die thermische Lastkurve gemäß der vorstehend erörterten Gleichung 1 berechnet werden. Somit kann jeder Die eine unabhängige, für ihn bestimmte thermische Lastkurve aufweisen. Danach können bei Block 1890 die thermischen Lastkurven und die thermischen Widerstandswerte im nichtflüchtigen Speicher gespeichert werden.
  • Wie vorstehend beschrieben, kann die thermische Lastkurve bei einer Ausführungsform einfach durch Speichern von Tjmax und Rii für den gegebenen Kern gespeichert werden. Natürlich versteht es sich, dass zusätzlich TDP-Werte für den anderen Die auch in diesem nichtflüchtigen Speicher gespeichert werden können. In anderen Fällen können zumindest einige Koordinatenpunkte für jede thermische Lastkurve (z. B. eine gegebene Anzahl von Punkten auf der Lastkurve) gespeichert werden, um eine Interpolation anderer Werte der Lastkurve während Regelungsvorgängen zu ermöglichen. Ebenso, da eine Lastkurve eine gerade Linie sein kann, kann das Speichern eines Punkts auf der Linie (Tjmax, TDP) und Steigung (Rii) ausreichende Informationen für eine Interpolation bereitstellen. Es wird angemerkt, dass die Lastkurve nur oberhalb von Tcntrol anwendbar ist. Es versteht sich, dass, obwohl auf dieser hohen Stufe bei der Ausführungsform aus 18 gezeigt, viele Variationen und Alternativen möglich sind.
  • Somit ist bei Abschluss des Verfahrens 1800 ein Prozessor angemessen konfiguriert, um einen Zugriff auf mehrere thermische Lastkurven und Wärmeregulierungswerte während des Normalbetriebs für verschiedene Zwecke bereitzustellen, einschließlich der Bestimmung von thermischen Obergrenzen für die unterschiedlichen Dies, aus denen eine minimale Obergrenze bestimmt und z. B. chipextern an einen Platform-Controller kommuniziert werden kann. Außerdem können solche thermischen Lastkurveninformationen zum Durchführen von thermischer Drosselung verwendet werden, falls bestimmt wird, dass eine gemessene Temperatur während des Betriebs eine gegebene thermische Lastkurve überschreitet. Außerdem können Informationen einschließlich der thermischen Lastkurve für andere Wärme- und Energiemanagement-Operationen verwendet werden.
  • Nun Bezug nehmend auf 19 ist ein Flussdiagramm eines Verfahrens gemäß einer anderen Ausführungsform der vorliegenden Erfindung gezeigt. Insbesondere kann das in 19 gezeigte Verfahren 1900 von Hardware, Software und/oder Firmware und Kombinationen daraus durchgeführt werden. Als ein Beispiel kann das Verfahren 1900 von Wärmeregulierungslogik wie etwa Hardware-Wärmeregulierungslogik, die innerhalb eines Power-Controllers eines Prozessors implementiert ist, durchgeführt werden. Als ein Beispiel kann eine PCU eines Prozessors, die bei einer Ausführungsform als ein eigener Hardware-Mikrocontroller implementiert sein kann, eine solche Wärmeregulierungslogik beinhalten.
  • Wie dargestellt, beginnt das Verfahren 1900 mit Empfangen von thermischen Daten von mehreren Dies (Block 1910). Bei einer Ausführungsform kann jeder von mehreren Dies einen oder mehrere Wärmesensoren beinhalten. Wie vorstehend erörtert, können die thermischen Informationen von einem solchen Die empfangen werden, z. B. bei gegebenen Zeitintervallen. Es versteht sich, dass jeder Die in anderen Fällen die thermischen Daten vor Kommunikation an die Wärmeregulierungslogik zumindest teilweise verarbeiten kann (um eine maximale Temperatur zu generieren). In jedem Fall rückt die Steuerung vor zu Block 1920, wo eine maximale Betriebstemperatur pro Die basierend auf den thermischen Daten bestimmt werden kann. Dann wird bei Raute 1930 bestimmt, ob die maximale Betriebstemperatur eines der Dies größer ist als ein Drosselungsschwellenwert (der ein Schwellenwert pro Die sein kann oder ein Schwellenwert für den gesamten Prozessor). Falls ja, rückt die Steuerung vor zu Block 1940, wo die Drosselungsregelung an einem oder mehreren Dies durchgeführt werden kann. Das heißt, dass aufgrund dieser Anzeige der Temperatur, die einen unerwünschten Drosselungsschwellenwert überschreitet, eine sofortige Maßnahme ergriffen werden kann, um die Aktivität auf einem oder mehreren Dies innerhalb des Prozessors zum Reduzieren von Wärme zu drosseln. Als ein Beispiel können die Prozessoroperationen durch Reduzieren der Betriebsfrequenz, Drosselungsmaßnahmen oder andere Formen der Drosselung einschließlich des vollständigen Deaktivierens von Aktivität in einem oder mehreren Kernen geregelt werden.
  • Noch Bezug nehmend auf 19, wenn statt dessen bestimmt wird, dass die maximale Betriebstemperatur pro Die einen gegebenen Drosselungsschwellenwert nicht überschreitet, rückt die Steuerung vor zu Block 1950. Dort kann eine thermische Obergrenze pro Die berechnet werden. Insbesondere kann diese thermische Obergrenze basierend auf der thermischen Lastkurve für den gegebenen Die und der maximalen Betriebstemperatur des Dies bestimmt werden. Bei einer Ausführungsform kann die thermische Obergrenze pro Die gemäß der vorstehenden Gleichung 2 berechnet werden. Nach Berechnung dieser thermischen Obergrenzen rückt die Steuerung vor zu Block 1960, wo die minimale thermische Obergrenze identifiziert werden kann (z. B. gemäß Gleichung 3). Danach kann bei Block 1970 diese minimale thermische Obergrenze an einen Platform-Controller kommuniziert werden. Es wird angemerkt, dass der Platform-Controller, die diese Nachricht z. B. über eine Plattformumgebungsregelungsschnittstelle (platform environment control interface - PECI)-Schnittstelle empfangen kann, basierend auf solchen Informationen verschiedene Regelungen durchführen kann. Als ein Beispiel kann der Platform-Controller basierend auf solchen Informationen die Regelung einer oder mehrerer Kühllösungen durchführen. Als ein Beispiel kann die Regelung der Lüfterdrehzahl zumindest teilweise basierend auf diesen Informationen erfolgen. Natürlich können auch andere Regelungsvorgänge wie etwa Ändern der Pumpgeschwindigkeit im Falle eines flüssigkeitsgekühlten Systems durchgeführt werden.
  • Noch Bezug nehmend auf 19 können bei Block 1980 die verschiedenen Dies geregelt werden, unterhalb der entsprechenden thermischen Lastkurven zu arbeiten. Das heißt, dass die Wärmeregulierungslogik Informationen an andere Teile einer PCU senden kann, um zu veranlassen, dass verschiedene Betriebsparameter der unterschiedlichen Dies geregelt werden können, um zu gewährleisten, dass die Temperatur des gegebenen Dies unterhalb der thermischen Lastkurve bleibt, sodass negative Auswirkungen, die mit Drosselungsmaßnahmen verbunden sind, vermieden werden können. Es versteht sich, dass, obwohl auf dieser hohen Stufe bei der Ausführungsform aus 19 gezeigt, viele Variationen und Alternativen möglich sind.
  • Unter Verwendung der Informationen zur thermischen Obergrenze, die in einem MCP und anderen Komponenten einer Plattform bestimmt wurden, wie etwa anderen MCPs innerhalb einer gegebenen Serverplattform sowie anderer Komponenten auf einer oder mehreren Hauptplatinen einer Plattform, kann ein Platform-Controller die Regelung der Kühllösung durchführen. Bei einer Ausführungsform kann dieser Platform-Controller als eine Hauptplatinenverwaltungsregelung (baseboard management controller - BMC) implementiert werden. Noch ferner kann die Kühllösung einem oder mehreren Lüftern entsprechen, deren Drehzahl von diesem BMC geregelt wird.
  • Nun Bezug nehmend auf 20 ist ein Flussdiagramm eines Verfahrens zum Regeln einer Kühllösung gemäß einer Ausführungsform gezeigt. Wie in 20 gezeigt, kann das Verfahren 2000 von einem Platform-Controller durchgeführt werden, wie etwa einer Hardware-Hauptplatinenverwaltungsregelung, z. B. auf einer Hauptplatine einer Serverplattform gemeinsam mit einem oder mehreren MCPs, Speicher, Netzwerk-Hardware und anderen Hardwareressourcen eines Systems konfiguriert. Auf einer hohen Stufe kann das Verfahren 2000 verwendet werden, um eine systemweite Lüfterdrehzahlregelung durch eine BMC durchzuführen, die zumindest teilweise auf Informationen zur thermischen Obergrenze basiert, die von verschiedenen Komponenten auf einer oder mehreren Leiterplatten einer gegebenen Plattform erhalten wurden. Danach können Regelsignale, z. B. Pulsweitenmodulations (pulse width modulation - PWM) Lüfterdrehzahl-Regelsignale an einen oder mehrere Lüfter oder andere Teile einer Kühllösung gesendet werden. Bei einer Ausführungsform kann das Verfahren 2000 in einem regelmäßigen Intervall, z. B. annähernd jede Sekunde durchgeführt werden. Sobald die thermischen Obergrenzen einen gegebenen Bereich überschreiten, erhöht sich die Lüfterdrehzahl, und anstatt dass die thermischen Obergrenzen unter diese Bereiche fallen, können die Lüfterdrehzahlen reduziert werden.
  • Wie zu erkennen ist, das Verfahren 2000 durch Empfangen von Informationen zur thermischen Obergrenze von mehreren Vorrichtungen (Block 2010). Als ein Beispiel kann eine minimale thermische Obergrenze von einer MCP für die mehreren Dies innerhalb der entsprechenden MCP gemeldet werden. Andere Komponenten der Serverplattform können ähnlich konfiguriert sein, um eine entsprechende minimale thermische Obergrenze zu melden. In anderen Fällen können bestimmte Komponenten einfach thermische Informationen, z. B. Wärmesensordaten, bereitstellen und die BMC selbst kann eine angemessene thermische Obergrenze für die entsprechende Komponente oder Komponenten bestimmen.
  • In jedem Fall rückt die Steuerung danach vor zu Block 2020, wo eine minimale thermische Obergrenze bestimmt werden kann. Bei einer Ausführungsform kann diese minimale thermische Obergrenze der kleinsten identifizierten thermischen Obergrenze entsprechen. Danach kann eine endgültige thermische Obergrenze berechnet werden (Block 2030). Insbesondere kann diese endgültige thermische Obergrenze basierend auf der minimalen thermischen Obergrenze und einer Regeltemperaturverschiebung berechnet werden, die aus einem gegebenen Speicher ausgelesen werden kann (Block 2025). Es ist angemerkt, dass diese Regeltemperaturverschiebung eine Verschiebung von einer Regel- oder Zieltemperatur zur Feineinstellung der Lüfterreaktion sein kann.
  • Noch Bezug nehmend auf 20 wird als Nächstes bei Raute 2040 bestimmt, ob diese endgültige thermische Obergrenze außerhalb eines Hysterese-Bereichs liegt. Dieser Hysterese-Bereich kann bei Block 2035 gelesen oder empfangen werden. Der Hysterese-Bereich entspricht einer Hysterese-Stufe, bei der die Obergrenze variieren kann, ohne Regelungsparameter zu aktualisieren. Falls bestimmt ist, dass diese endgültige thermische Obergrenze nicht außerhalb des Hysterese-Bereichs liegt, wird für diese Schlaufe des Betriebs keine weitere Maßnahme unternommen und statt dessen geht die Steuerung zurück zu Block 2010.
  • Anderenfalls, wenn die berechnete endgültige thermische Obergrenze diesen Hysterese-Bereich überschreitet, rückt die Steuerung vor zu Block 2050. Bei Block 2050 kann eine Änderung eines Pulsweitenmodulations (pulse width modulation - PWM)-Werts berechnet werden. Bei einer Ausführungsform kann dieser PWM-Wert eine Anzeige der Lüfterdrehzahl sein (z. B. ein prozentualer Wert), um einen oder mehrere Lüfter zu veranlassen, gemäß dieser gegebenen Lüfterdrehzahl zu arbeiten. Bei einer Ausführungsform kann eine Proportional-Integral-Differential (proportional integral derivative - PID)-Regelungstechnik verwendet werden, um die PWM-Änderung zumindest teilweise basierend auf der endgültigen thermischen Obergrenze zu berechnen.
  • Als Nächstes rückt die Steuerung vor zu Block 2060, wo ein neuer PWM-Wert berechnet werden kann. Insbesondere kann dieser Wert basierend auf dem letzten PWM-Wert (wie bei Block 2055 hingewiesen) und dem berechneten PWM-Änderungswert berechnet werden. Danach wird dieser neue PWM-Wert bei Block 2070 an einen oder mehrere Lüfter gesendet, um ein Aktualisieren der Lüfterdrehzahl zu ermöglichen, sodass eine verbesserte Wärmeregulierung wie hier beschrieben ermöglicht werden kann. Es versteht sich, dass, obwohl bei der Ausführungsform aus 20 auf dieser hohen Stufe gezeigt, viele Variationen und Alternativen dazu möglich sind.
  • Ein oder mehrere Aspekte mindestens einer Ausführungsform können durch typischen Code implementiert werden, der auf einem maschinenlesbaren Medium gespeichert ist und Logik innerhalb einer integrierten Schaltung wie etwa einem Prozessor darstellt und/oder definiert. Das maschinenlesbare Medium kann beispielsweise Befehle beinhalten, die verschiedene Logik innerhalb des Prozessors darstellen. Wenn sie von einer Maschine gelesen werden, können die Befehle die Maschine veranlassen, die Logik herzustellen, um die hier beschriebenen Techniken durchzuführen. Solche Darstellungen, bekannt als „IP-Kerne,“ sind wiederverwendbare Logikeinheiten für eine integrierte Schaltung, die auf einem greifbaren, maschinenlesbaren Medium als ein Hardware-Modell gespeichert werden können, das die Struktur der integrierten Schaltung beschreibt. Das Hardware-Modell kann verschiedenen Kunden oder Fertigungsanlagen zur Verfügung gestellt werden, die das Hardware-Modell auf Fertigungsmaschinen laden, welche die integrierte Schaltung herstellen. Die integrierte Schaltung kann so gefertigt werden, dass die integrierte Schaltung Operationen durchführt, die in Verbindung mit jeder der hier beschriebenen Ausführungsformen beschrieben wurden.
  • 21 ist ein Blockschaltbild, das ein Entwicklungssystem 1600 für einen IP-Kern darstellt, welches zum Herstellen einer integrierten Schaltung verwendet werden kann, um Operationen gemäß einer Ausführungsform durchzuführen. Das Entwicklungssystem 2100 für einen IP-Kern kann verwendet werden, um moduläre, wiederverwendbare Designs zu generieren, die in ein größeres Design eingebunden oder zum Konstruieren einer gesamten integrierten Schaltung verwendet werden können (z. B. einer integrierten Schaltung für ein SoC). Ein Design-Produktionsanlage 2130 kann eine Softwaresimulation 2110 eines IP-Kern-Designs in einer höheren Programmiersprache (z. B. C/C++) generieren. Die Softwaresimulation 2110 kann zum Modellieren, Testen und Prüfen des Verhaltens des IP-Kerns verwendet werden. Dann kann aus dem Simulationsmodell ein Registertransferebenen (register transfer level - RTL)-Design erzeugt oder synthetisiert werden. Das RTL-Design 2115 ist eine Abstrahierung des Verhaltens der integrierten Schaltung, die den Fluss digitaler Signale zwischen Hardwareregistern modelliert, einschließlich der verknüpften Logik, die unter Verwendung der modellierten digitalen Signale durchgeführt wird. Zusätzlich zu einem RTL-Design 2115 können auch Designs auf niedrigeren Ebenen auf der Logikebene oder Transistorebene erzeugt, modelliert oder synthetisiert werden. Somit können die spezifischen Einzelheiten des anfänglichen Designs und der Simulation variieren.
  • Das RTL-Design 2115 oder ein Äquivalent kann ferner durch die Design-Produktionsanlage in ein Hardware-Modell 2120 synthetisiert werden, welches in einer Hardwarebeschreibungssprache (hardware description language - HDL) oder einer anderen Darstellung physischer Designdaten vorliegen kann. Die HDL kann ferner simuliert oder getestet werden, um das IP-Kern-Design zu verifizieren. Das IP-Kern-Design kann unter Verwendung von nichtflüchtigem Speicher 2140 (z. B. Festplatten-, Flash-Speicher oder jedem nichtflüchtigen Speichermedium) zur Lieferung an eine Fremdproduktionsanlage 2165 gespeichert sein. Alternativ dazu kann das IP-Kern-Design über eine drahtgebundene Verbindung 2150 oder eine drahtlose Verbindung 2160 übertragen werden (z. B. über das Internet). Die Produktionsanlage 2165 kann dann eine integrierte Schaltung fertigen, die zumindest teilweise auf dem IP-Kern-Design basiert. Die gefertigte integrierte Schaltung kann konfiguriert sein, Operationen gemäß mindestens einer hier beschriebenen Ausführungsform durchzuführen.
  • Die folgenden Beispiele gehören zu weiteren Ausführungsformen.
  • In einem Beispiel umfasst ein Prozessor Folgendes: einen ersten Die einschließlich mindestens eines Kerns und mindestens eines ersten Die-Wärmesensors; einen zweiten Die einschließlich mindestens eines Speichers und mindestens eines zweiten Die-Wärmesensors; und einen Wärmeregler, um erste thermische Daten von dem mindestens einen ersten Die-Wärmesensor und zweiten thermischen Daten von dem mindestens einen zweiten Die-Wärmesensor zu empfangen, eine erste thermische Obergrenze für den ersten Die, zumindest teilweise basierend auf den ersten thermischen Daten und einer ersten thermischen Lastkurve für den ersten Die, zu berechnen und eine zweite thermische Obergrenze für den zweiten Die, zumindest teilweise basierend auf den zweiten thermischen Daten und einer zweiten thermischen Lastkurve für den zweiten Die, zu berechnen.
  • In einem Beispiel soll der Wärmeregler eine minimale thermische Obergrenze aus der ersten thermischen Obergrenze und der zweiten thermischen Obergrenze an einen mit dem Prozessor gekoppelten Platform-Controller kommunizieren, um dem Platform-Controller zu ermöglichen, eine Kühllösung zu regeln.
  • In einem Beispiel umfasst der erste Die einen Power-Controller, umfassend den Wärmeregler, und wobei der Power-Controller die Tätigkeit von mindestens einem aus dem ersten Die und dem zweiten Die drosseln soll, falls eine maximale Betriebstemperatur, die aus den ersten thermischen Daten erhalten wurde, einen ersten Drosselungsschwellenwert übersteigt.
  • In einem Beispiel soll der Power-Controller einen oder mehrere Betriebsparameter von zumindest dem ersten Die regeln, um eine Temperatur des ersten Dies unterhalb der ersten thermischen Lastkurve für den ersten Die aufrecht zu erhalten.
  • In einem Beispiel umfasst der Prozessor ferner einen nichtflüchtigen Speicher, um zumindest einige Informationen der ersten thermischen Lastkurve für den ersten Die zu speichern, wobei die erste thermische Lastkurve zumindest teilweise basierend auf einer maximalen Betriebstemperatur des ersten Dies, einer ersten thermischen Verlustleistung für den ersten Die, einer ersten gemessenen Leistung des ersten Dies und einem ersten thermischen Widerstand des ersten Dies bestimmt wird.
  • In einem Beispiel umfassen die zumindest einigen Informationen die maximale Betriebstemperatur und den ersten thermischen Widerstand.
  • In einem Beispiel soll der Wärmeregler, basierend auf einer gemessenen Leistung des ersten Dies, mindestens einen thermischen Wert aus der ersten thermischen Lastkurve für den ersten Die erhalten und die erste thermische Obergrenze als eine Differenz aus dem mindestens einen thermischen Wert und einer ersten gemessenen Betriebstemperatur der ersten thermischen Daten berechnen.
  • In einem Beispiel soll der Wärmeregler auf einen Eingang eines nichtflüchtigen Speichers zugreifen, um eine maximale Betriebstemperatur des ersten Dies und einen ersten thermischen Widerstand des ersten Dies zu erhalten, und den mindestens einen thermischen Wert basierend auf der maximalen Betriebstemperatur, dem ersten thermischen Widerstand, einer thermischen Verlustleistung für den ersten Die und der gemessenen Leistung berechnen.
  • In einem Beispiel soll der Wärmeregler auf einen Eingang eines nichtflüchtigen Speichers zugreifen, um einen Wärmeregulierungswert für den ersten Die zu erhalten und den Wärmeregulierungswert an einen mit dem Prozessor gekoppelten Platform-Controller kommunizieren, um dem Platform-Controller zu ermöglichen, eine Kühllösung zu regeln.
  • In einem Beispiel umfasst der Prozessor ferner einen dritten Die, einschließlich Fabric-Schaltungen und mindestens einen dritten Die-Wärmesensor, wobei der Wärmeregler dritte thermische Daten von dem mindestens einen dritten Die-Wärmesensor empfangen soll, eine dritte thermische Obergrenze für den dritten Die, zumindest teilweise basierend auf den dritten thermischen Daten und einer dritten thermischen Lastkurve für den dritten Die, berechnen soll, wobei die erste thermische Lastkurve, die zweite thermische Lastkurve und die dritte thermische Lastkurve unabhängige thermische Lastkurven umfassen, die Lastkurven-Generierungs-Informationen aufweisen, welche in einem nichtflüchtigen Speicher des Prozessors gespeichert sind.
  • Es ist angemerkt, dass der vorstehende Prozessor unter Verwendung von verschiedenen Mitteln implementiert werden kann.
  • In einem Beispiel umfasst der Prozessor ein SoC, das in eine Benutzergerätevorrichtung mit Berührungsfunktion eingebunden ist.
  • In einem anderen Beispiel umfasst ein System eine Anzeige und einen Speicher und beinhaltet den Prozessor aus einem oder mehreren der vorstehenden Beispiele.
  • In einem anderen Beispiel umfasst ein Verfahren Folgendes: Veranlassen der Ausführung einer ausgewählten Die-Auslastung für mehrere Dies eines Prozessors; Messen einer Temperatur und einer Leistung der mehreren Dies während der Ausführung der ausgewählten Die-Auslastung; Berechnen, für jeden aus den mehreren Dies, einer thermischen Lastkurve, zumindest teilweise basierend auf der gemessenen Temperatur und der Leistung; und Speichern der thermischen Lastkurve für jeden aus den mehreren Dies in einem nichtflüchtigen Speicher des Prozessors.
  • In einem Beispiel umfasst das Verfahren ferner Berechnen der thermischen Lastkurve ferner basierend auf einer thermischen Verlustleistung und einem thermischen Widerstandswert für den entsprechenden Die.
  • In einem Beispiel umfasst das Verfahren ferner Speichern des thermischen Widerstandswerts in dem nichtflüchtigen Speicher.
  • In einem Beispiel umfasst Speichern der thermischen Lastkurve für einen ersten Die Speichern einer gemessenen Temperatur des ersten Dies und eines thermischen Widerstandswerts für den ersten Die, wobei die gemessene Temperatur eine maximale gemessene Betriebstemperatur des ersten Dies während der Ausführung der ausgewählten Die-Auslastung umfasst.
  • In einem Beispiel umfasst Speichern der thermischen Lastkurve Speichern der thermischen Lastkurve in einem Sicherheitsspeicher des Prozessors.
  • In einem Beispiel umfasst das Verfahren ferner Berechnen eines Wärmeregulierungswerts für jeden aus den mehreren Dies, zumindest teilweise basierend auf einer thermischen Verlustleistung, einer Leerlaufleistung und einem thermischen Widerstandswert für den entsprechenden Die, und Speichern des Wärmeregulierungswerts für jeden aus den mehreren Dies in dem nichtflüchtigen Speicher.
  • In einem anderen Beispiel soll ein computerlesbares Medium einschließlich Befehlen das Verfahren nach einem der vorstehenden Beispiele durchführen.
  • In einem anderen Beispiel soll ein computerlesbares Medium einschließlich Daten von mindestens einer Maschine verwendet werden, um mindestens eine integrierte Schaltung herzustellen, um das Verfahren nach einem der vorstehenden Beispiele durchzuführen.
  • In einem anderen Beispiel umfasst eine Einrichtung Mittel zum Durchführen des Verfahrens nach einem der vorstehenden Beispiele.
  • In noch einem anderen Beispiel umfasst das System Folgendes: mehrere Prozessoren, wobei mindestens einer der mehreren Prozessoren ein Multi-Chip-Modul umfasst einschließlich eines ersten Dies, eines zweiten Dies und eines Wärmereglers zum Empfangen von ersten thermischen Daten von einem ersten Wärmesensor des ersten Dies und von zweiten thermischen Daten von einem zweiten Wärmesensor des zweiten Dies, zum Berechnen einer ersten thermischen Obergrenze für den ersten Die zumindest teilweise basierend auf den ersten thermischen Daten und einer ersten thermischen Lastkurve für den ersten Die, zum Berechnen einer zweiten thermischen Obergrenze für den zweiten Die zumindest teilweise basierend auf den zweiten thermischen Daten und einer zweiten thermischen Lastkurve für den zweiten Die und zum Bestimmen einer minimalen thermischen Obergrenze aus der ersten und der zweiten thermischen Obergrenze; eine Netzwerkschaltung, die mit den mehreren Prozessoren gekoppelt ist; eine Kühllösung, einschließlich mindestens einen Lüfter; und einen Platform-Controller zum Empfangen der minimalen thermischen Obergrenze und von Informationen zur thermischen Obergrenze von anderen aus den mehreren Prozessoren, und Berechnen eines Regelwerts für den mindestens einen Lüfter zumindest teilweise basierend auf der minimalen thermischen Obergrenze und den Informationen zur thermischen Obergrenze.
  • In einem Beispiel umfasst der Platform-Controller einen Proportional-Integral-Regler zum Berechnen des Regelwerts.
  • In einem Beispiel umfasst der Regelwert ein pulsweitenmoduliertes Signal.
  • In einem Beispiel soll der Platform-Controller eine erste thermische Obergrenze basierend auf der minimalen thermischen Obergrenze, den Informationen zur thermischen Obergrenze und einem Verschiebungswert berechnen.
  • In einem Beispiel soll der Platform-Controller den Regelwert berechnen, falls die erste thermische Obergrenze einen Bereichswert überschreitet, und anderenfalls einen aktuellen Regelwert aufrechterhalten.
  • In einem Beispiel soll der Wärmeregler, basierend auf einer gemessenen Leistung des ersten Dies, mindestens einen thermischen Wert aus der ersten thermischen Lastkurve für den ersten Die erhalten und die erste thermische Obergrenze als eine Differenz aus dem mindestens einen thermischen Wert und einer ersten gemessenen Betriebstemperatur der ersten thermischen Daten berechnen.
  • Es versteht sich, dass verschiedene Kombinationen der vorstehenden Beispiele möglich sind.
  • Ausführungsformen können in vielen unterschiedlichen Typen von Systemen verwendet werden. Bei einer Ausführungsform kann beispielsweise eine Kommunikationsvorrichtung angeordnet sein, die verschiedenen hier beschriebenen Verfahren und Techniken durchzuführen. Natürlich ist der Umfang der vorliegenden Erfindung nicht auf eine Kommunikationsvorrichtung beschränkt und statt dessen können andere Ausführungsformen auf andere Typen von Einrichtungen zum Verarbeiten von Befehlen oder auf ein oder mehrere, maschinenlesbare Befehle beinhaltende Medien, die in Reaktion auf ihr Ausführen auf einer Datenverarbeitungsvorrichtung die Vorrichtung veranlassen, ein oder mehrere der hier beschriebenen Verfahren und Techniken auszuführen, gerichtet sein.
  • Ausführungsformen können in Code implementiert sein und können auf einem nichtflüchtigen Speichermedium gespeichert sein, auf dem Befehle gespeichert sind, die zum Programmieren eines Systems zum Durchführen der Befehle verwendet werden können. Ausführungsformen können auch in Daten implementiert sein und können auf einem nichtflüchtigen Speichermedium gespeichert sein, welches, wenn es von mindestens einer Maschine verwendet wird, die mindestens eine Maschine veranlasst, mindestens eine integrierte Schaltung zum Durchführen einer oder mehrerer Operationen herzustellen. Noch weitere Ausführungsformen können in einem computerlesbaren Speichermedium implementiert sein, das Informationen beinhaltet, die, wenn sie in ein SoC oder einen anderen Prozessor eingearbeitet sind, das SoC oder den anderen Prozessor konfigurieren sollen, eine oder mehrere Operationen durchzuführen. Das Speichermedium kann unter anderem jeden Typ von Disk beinhalten, einschließlich Disketten, optischen Disks, Solid State Drives (SSDs), Compact Disk Read-Only Memories (CD-ROMs), wiederbeschreibbare Compact Disks (CD-RWs) und magnetooptischen Disks, Halbleitervorrichtungen wie etwa Nur-Lese-Speicher (read-only memories - ROMs), Direktzugriffsspeicher (random access memories - RAMs) wie etwa dynamische Direktzugriffsspeicher (dynamic random access memories - DRAMs), statische Direktzugriffsspeicher (static random access memories - SRAMs), löschbare programmierbare Nur-Lese-Speicher (erasable programmable read-only memories - EPROMs), Flash-Speicher, elektrisch löschbare programmierbare Nur-Lese-Speicher (electrically erasable programmable read-only memories - EEPROMs), Magnet- oder optische Karten oder jeden anderen Typ von Medien, der zum Speichern elektrischer Befehle geeignet ist.
  • Obwohl die vorliegende Erfindung Bezug nehmend auf eine begrenzte Anzahl von Ausführungsformen beschrieben wurde, erschließen sich Fachleuten daraus zahlreiche Modifikationen und Variationen. Es ist beabsichtigt, dass die beigefügten Ansprüche alle derartigen Modifikationen und Variationen als in den Geist und den Umfang der vorliegenden Erfindung fallend abdecken.

Claims (24)

  1. Prozessor, Folgendes umfassend: einen ersten Die, beinhaltend mindestens einen Kern und mindestens einen ersten Die-Wärmesensor; einen zweiten Die, beinhaltend mindestens einen Speicher und mindestens einen zweiten Die-Wärmesensor; und einen Wärmeregler zum Empfangen von ersten thermischen Daten von dem mindestens einen ersten Die-Wärmesensor und zweiten thermischen Daten von dem mindestens einen zweiten Die-Wärmesensor, Berechnen einer ersten thermischen Obergrenze für den ersten Die, zumindest teilweise basierend auf den ersten thermischen Daten und einer ersten thermischen Lastkurve für den ersten Die, und Berechnen einer zweiten thermischen Obergrenze für den zweiten Die, zumindest teilweise basierend auf den zweiten thermischen Daten und einer zweiten thermischen Lastkurve für den zweiten Die.
  2. Prozessor nach Anspruch 1, wobei der Wärmeregler eine minimale thermische Obergrenze aus der ersten thermischen Obergrenze und der zweiten thermischen Obergrenze an einen mit dem Prozessor gekoppelten Platform-Controller kommunizieren soll, um dem Platform-Controller zu ermöglichen, eine Kühllösung zu regeln.
  3. Prozessor nach Anspruch 1, wobei der erste Die einen Power-Controller umfasst, der Power-Controller den Wärmeregler umfasst, und wobei der Power-Controller die Tätigkeit von mindestens einem aus dem ersten Die und dem zweiten Die drosseln soll, wenn eine aus den ersten thermischen Daten erhaltene maximale Betriebstemperatur einen ersten Drosselungsschwellenwert überschreitet.
  4. Prozessor nach Anspruch 3, wobei der Power-Controller einen oder mehrere Betriebsparameter von mindestens dem ersten Die regeln soll, um eine Temperatur des ersten Dies unter der ersten thermischen Lastkurve für den ersten Die aufrecht zu erhalten.
  5. Prozessor nach Anspruch 1, wobei der Prozessor ferner einen nichtflüchtigen Speicher umfasst, um mindestens einige Informationen aus der ersten thermischen Lastkurve für den ersten Die zu speichern, wobei die erste thermische Lastkurve zumindest teilweise basierend auf einer maximalen Betriebstemperatur des ersten Dies, einer ersten thermischen Verlustleistung für den ersten Die, einer ersten gemessenen Leistung des ersten Dies und einem ersten thermischen Widerstand des ersten Dies bestimmt wird.
  6. Prozessor nach Anspruch 5, wobei die zumindest einigen Informationen die maximale Betriebstemperatur und den ersten thermischen Widerstand umfassen.
  7. Prozessor nach Anspruch 1, wobei der Wärmeregler, basierend auf einer gemessenen Leistung des ersten Dies, mindestens einen thermischen Wert aus der ersten thermischen Lastkurve für den ersten Die erhalten soll und die erste thermische Obergrenze als eine Differenz aus dem mindestens einen thermischen Wert und einer ersten gemessenen Betriebstemperatur aus den ersten thermischen Daten berechnen soll.
  8. Prozessor nach Anspruch 7, wobei der Wärmeregler auf einen Eingang eines nichtflüchtigen Speichers zugreifen soll, um eine maximale Betriebstemperatur des ersten Dies und einen ersten thermischen Widerstand des ersten Dies zu erhalten und den mindestens einen thermischen Wert basierend auf der maximalen Betriebstemperatur, dem ersten thermischen Widerstand, einer thermischen Verlustleistung für den ersten Die und der gemessenen Leistung berechnen soll.
  9. Prozessor nach Anspruch 1, wobei der Wärmeregler auf einen Eingang eines nichtflüchtigen Speichers zugreifen soll, um einen Wärmeregulierungswert für den ersten Die zu erhalten und den Wärmeregulierungswert an einen mit dem Prozessor gekoppelten Platform-Controller zu kommunizieren, um dem Platform-Controller zu ermöglichen, eine Kühllösung zu regeln.
  10. Prozessor nach Anspruch 1, ferner umfassend einen dritten Die einschließlich Fabric-Schaltungen und mindestens eines dritten Die-Wärmesensors, wobei der Wärmeregler dritte thermische Daten von dem mindestens eine dritten Die-Wärmesensor empfangen soll, eine dritte thermische Obergrenze für den dritten Die, zumindest teilweise basierend auf den dritten thermischen Daten und einer dritten thermischen Lastkurve für den dritten Die, berechnen soll, wobei die erste thermische Lastkurve, die zweite thermische Lastkurve und die dritte thermische Lastkurve unabhängige thermische Lastkurven umfassen, die Lastkurven-Generierungs-Informationen, die in einem nichtflüchtigen Speicher des Prozessors gespeichert sind, aufweisen.
  11. Verfahren, Folgendes umfassend: Veranlassen der Ausführung einer ausgewählten Die-Auslastung für mehrere Dies eines Prozessors; Messen einer Temperatur und einer Leistung der mehreren Dies während der Ausführung der ausgewählten Die-Auslastung; Berechnen, für jeden aus den mehreren Dies, einer thermischen Lastkurve, zumindest teilweise basierend auf der gemessenen Temperatur und der Leistung; und Speichern der thermischen Lastkurve für jeden aus den mehreren Dies in einem nichtflüchtigen Speicher des Prozessors.
  12. Verfahren nach Anspruch 11, ferner umfassend Berechnen der thermischen Lastkurve, ferner basierend auf einer thermischen Verlustleistung und einem thermischen Widerstandswert für den entsprechenden Die.
  13. Verfahren nach Anspruch 12, ferner umfassend Speichern des thermischen Widerstandswerts in dem nichtflüchtigen Speicher.
  14. Verfahren nach Anspruch 11, wobei Speichern der thermischen Lastkurve für einen ersten Die Speichern einer gemessenen Temperatur des ersten Dies und eines thermischen Widerstandswerts für den ersten Die umfasst, wobei die gemessene Temperatur eine maximale gemessene Betriebstemperatur des ersten Dies während der Ausführung der ausgewählten Die-Auslastung umfasst.
  15. Verfahren nach Anspruch 11, wobei Speichern der thermischen Lastkurve Speichern der thermischen Lastkurve in einem Sicherheitsspeicher des Prozessors umfasst.
  16. Verfahren nach Anspruch 11, ferner umfassend Berechnen eines Wärmeregulierungswerts für jeden aus den mehreren Dies, zumindest teilweise basierend auf einer thermischen Verlustleistung, einer Leerlaufleistung und einem thermischen Widerstandswert für den entsprechenden Die, und Speichern des Wärmeregulierungswerts für jeden aus den mehreren Dies in dem nichtflüchtigen Speicher.
  17. Computerlesbares Speichermedium einschließlich computerlesbarer Befehle, um, wenn sie ausgeführt werden, ein Verfahren nach einem der Ansprüche 11 bis 16 zu implementieren.
  18. Einrichtung, umfassend Mittel zum Durchführen eines Verfahrens nach einem der Ansprüche 11 bis 16.
  19. System, Folgendes umfassend: mehrere Prozessoren, wobei mindestens einer aus den mehreren Prozessoren ein Multi-Chip-Modul einschließlich eines ersten Dies, eines zweiten Dies und eines Wärmereglers umfasst, um erste thermische Daten von einem ersten Wärmesensor des ersten Dies und zweite thermische Daten von einem zweiten Wärmesensor des zweiten Dies zu empfangen, eine erste thermische Obergrenze für den ersten Die, zumindest teilweise basierend auf den ersten thermischen Daten und einer ersten thermischen Lastkurve für den ersten Die, zu berechnen, eine zweite thermische Obergrenze für den zweiten Die, zumindest teilweise basierend auf den zweiten thermischen Daten und einer zweiten thermischen Lastkurve für den zweiten Die, zu berechnen und eine minimale thermische Obergrenze aus der ersten und zweiten thermischen Obergrenze zu bestimmen; eine mit den mehreren Prozessoren gekoppelte Netzwerkschaltung; eine Kühllösung, die mindestens einen Lüfter beinhaltet; und einen Platform-Controller zum Empfangen der minimalen thermischen Obergrenze und Informationen zu der thermischen Obergrenze von weiteren aus den mehreren Prozessoren und Berechnen eines Regelwerts für den mindestens einen Lüfter, zumindest teilweise basierend auf der minimalen thermischen Obergrenze und den Informationen zu der thermischen Obergrenze.
  20. System nach Anspruch 19, wobei der Platform-Controller einen Proportional-Integral-Regler zum Berechnen des Regelwerts umfasst.
  21. System nach Anspruch 20, wobei der Regelwert ein pulsweitenmoduliertes Signal umfasst.
  22. System nach Anspruch 19, wobei der Platform-Controller eine erste thermische Obergrenze basierend auf der minimalen thermischen Obergrenze, den Informationen zur thermischen Obergrenze und einem Verschiebungswert berechnen soll.
  23. System nach Anspruch 22, wobei der Platform-Controller den Regelwert berechnen soll, wenn die erste thermische Obergrenze einen Bereichswert überschreitet, und anderenfalls einen aktuellen Regelwert aufrechterhalten soll.
  24. System nach Anspruch 19, wobei der Wärmeregler, basierend auf einer gemessenen Leistung des ersten Dies, mindestens einen thermischen Wert aus der ersten thermischen Lastkurve für den ersten Die erhalten soll und die erste thermische Obergrenze als eine Differenz aus dem mindestens einen thermischen Wert und einer ersten gemessenen Betriebstemperatur der ersten thermischen Daten berechnen soll.
DE112017001805.6T 2016-03-31 2017-01-25 Bestimmen von thermischen obergrenzen in einem prozessor mit mehreren dies Pending DE112017001805T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/086,387 US10248173B2 (en) 2016-03-31 2016-03-31 Determining thermal margins in a multi-die processor
US15/086,387 2016-03-31
PCT/US2017/014835 WO2017171998A1 (en) 2016-03-31 2017-01-25 Determining thermal margins in a multi-die processor

Publications (1)

Publication Number Publication Date
DE112017001805T5 true DE112017001805T5 (de) 2019-02-07

Family

ID=59961549

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112017001805.6T Pending DE112017001805T5 (de) 2016-03-31 2017-01-25 Bestimmen von thermischen obergrenzen in einem prozessor mit mehreren dies

Country Status (4)

Country Link
US (2) US10248173B2 (de)
CN (1) CN108885483B (de)
DE (1) DE112017001805T5 (de)
WO (1) WO2017171998A1 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10248173B2 (en) * 2016-03-31 2019-04-02 Intel Corporation Determining thermal margins in a multi-die processor
US10281975B2 (en) * 2016-06-23 2019-05-07 Intel Corporation Processor having accelerated user responsiveness in constrained environment
KR20180088193A (ko) * 2017-01-26 2018-08-03 삼성전자주식회사 적응적 열 저항 및 열 용량을 사용하는 열 관리 장치 및 방법
US11042681B1 (en) * 2017-03-24 2021-06-22 Ansys, Inc. Integrated circuit composite test generation
US10238011B1 (en) * 2017-10-10 2019-03-19 Baidu Usa Llc Optimal controller for hybrid liquid-air cooling system of electronic racks of a data center
US11137807B2 (en) 2018-03-28 2021-10-05 Intel Corporation System, apparatus and method for controllable processor configuration based on a temperature specification
US10838471B2 (en) * 2019-02-08 2020-11-17 Dell Products, L.P. System for estimating airflow exiting an information handling system and method therefor
CN111142598B (zh) * 2019-12-30 2021-06-25 广州享药户联优选科技有限公司 一种智能药箱的内部环境控制方法及装置
JP7500263B2 (ja) 2020-04-27 2024-06-17 キオクシア株式会社 メモリデバイス、および温度センサのキャリブレーション方法
US11722138B2 (en) 2020-10-20 2023-08-08 Micron Technology, Inc. Dynamic power and thermal loading in a chiplet-based system
US11500436B2 (en) * 2020-11-12 2022-11-15 Dell Products L.P. System and method for predictive fan speed control and management
CN114489235A (zh) * 2022-01-18 2022-05-13 上海天数智芯半导体有限公司 一种用于异常温度处理的芯片频率动态调节方法及***
US11886260B2 (en) * 2022-05-19 2024-01-30 Western Digital Technologies, Inc. Thermal management of storage devices increasing host write performance

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7216064B1 (en) * 1993-09-21 2007-05-08 Intel Corporation Method and apparatus for programmable thermal sensor for an integrated circuit
US7878016B2 (en) 2004-12-30 2011-02-01 Intel Corporation Device and method for on-die temperature measurement
US7421598B2 (en) * 2005-02-09 2008-09-02 International Business Machines Corporation Dynamic power management via DIMM read operation limiter
US7225100B2 (en) * 2005-07-05 2007-05-29 Via Technologies, Inc. Apparatus and method for dynamic configuration of temperature profile in an integrated circuit
US7584369B2 (en) * 2006-07-26 2009-09-01 International Business Machines Corporation Method and apparatus for monitoring and controlling heat generation in a multi-core processor
US8260474B2 (en) 2009-09-25 2012-09-04 Intel Corporation Sensor-based thermal specification enabling a real-time metric for compliance
US8793512B2 (en) 2010-10-29 2014-07-29 Advanced Micro Devices, Inc. Method and apparatus for thermal control of processing nodes
US9490003B2 (en) * 2011-03-31 2016-11-08 Intel Corporation Induced thermal gradients
US9037882B2 (en) 2013-02-27 2015-05-19 Qualcomm Incorporated System and method for thermal management in a portable computing device using thermal resistance values to predict optimum power levels
US9285278B2 (en) 2013-05-09 2016-03-15 Apple Inc. System and methods for thermal control using sensors on die
US20150094875A1 (en) * 2013-09-30 2015-04-02 Yacov Duzly Temperature-Controlled Storage Module that Cools Memory Prior to a Data Burst
US10248173B2 (en) * 2016-03-31 2019-04-02 Intel Corporation Determining thermal margins in a multi-die processor

Also Published As

Publication number Publication date
CN108885483A (zh) 2018-11-23
US20190204885A1 (en) 2019-07-04
WO2017171998A1 (en) 2017-10-05
CN108885483B (zh) 2023-03-10
US10908660B2 (en) 2021-02-02
US10248173B2 (en) 2019-04-02
US20170285699A1 (en) 2017-10-05

Similar Documents

Publication Publication Date Title
DE112017001805T5 (de) Bestimmen von thermischen obergrenzen in einem prozessor mit mehreren dies
DE112019001522T5 (de) System, vorrichtung und verfahren zur optimierten drosselung eines prozessors
TWI599960B (zh) 在多核心處理器中執行電源管理
CN107368174B (zh) 用于具有非同构性能状态的多核处理器的热扼制的自适应算法
EP2894542B1 (de) Schätzung der Skalierbarkeit einer Belastung
DE112020001586T5 (de) System, gerät und verfahren zur leistungslizenzsteuerung eines prozessors
DE202015009867U1 (de) Einrichtung zum Bereitstellen einer Wärmeparametermeldung für eine Mehrchip-Baugruppe
DE112013005131T5 (de) Verfahren, Vorrichtung, System zur automatischen Abstimmung von Coderegionen
DE112017004361T5 (de) Steuern eines leistungszustands eines prozessors unter verwendung einer kombination von package- und thread-hinweis-informationen
DE102018129330A1 (de) System, Vorrichtung und Verfahren zur prozessorexternen Überschreibung der Hardwareleistungszustandssteuerung eines Prozessors
DE112020000231T5 (de) Einstellung von Anzeige Auffrischung Raten basierend auf Benutzer Aktivität
DE102018125236A1 (de) System, Vorrichtung und Verfahren zum Selbsstest vor Ort in einem Diagnose-Ruhezustand
US9983644B2 (en) Dynamically updating at least one power management operational parameter pertaining to a turbo mode of a processor for increased performance
DE112019000693T5 (de) System, vorrichtung und verfahren zur bereitstellung von hardware-rückmeldungsinformationen in einem prozessor
US9342122B2 (en) Distributing power to heterogeneous compute elements of a processor
DE102020134491A1 (de) System, Vorrichtung und Verfahren zum dynamischen Justieren von Plattformenergie und -leistung basierend auf Aufgabeneigenschaften
DE112019001001T5 (de) System, vorrichtung und verfahren für eine datengestützte niedrigenergiezustandssteuerung auf der grundlage von leistungsüberwachungsinformationen
DE202012011944U1 (de) Vorrichtung und System zur Energie-Effizienz und Energie-Einsparung mit einem Strom- und Leistungsabgleich zwischen mehreren Verarbeitungselementen
DE112017003080T5 (de) Prozessor mit gleichzeitigem kern und gewebeausgang aus einem zustand mit geringer energie
DE102020130910A1 (de) System, vorrichtung und verfahren für dynamische energiezustandsskalierung eines spannungsreglers für einen prozessor
JP2022532838A (ja) プロセッサの処理回路の電流消費を動的に制御するためのシステム、装置及び方法
DE112017005000T5 (de) Prozessorspannungssteuerung unter verwendung eines beweglichen mittelwerts
DE112017004991T5 (de) Ausgleichssteuerung für variable energieschienen
DE102021119090A1 (de) Einrichtung und verfahren für energieeffiziente kernspannungsauswahl
DE112017003873T5 (de) Bereitstellung einer Schnittstelle für Herabstufungssteuerinformationen in einem Prozessor

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication