DE102020130910A1 - System, vorrichtung und verfahren für dynamische energiezustandsskalierung eines spannungsreglers für einen prozessor - Google Patents

System, vorrichtung und verfahren für dynamische energiezustandsskalierung eines spannungsreglers für einen prozessor Download PDF

Info

Publication number
DE102020130910A1
DE102020130910A1 DE102020130910.4A DE102020130910A DE102020130910A1 DE 102020130910 A1 DE102020130910 A1 DE 102020130910A1 DE 102020130910 A DE102020130910 A DE 102020130910A DE 102020130910 A1 DE102020130910 A1 DE 102020130910A1
Authority
DE
Germany
Prior art keywords
processor
energy
voltage regulator
workload
energy state
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
DE102020130910.4A
Other languages
English (en)
Inventor
Patrick Kam-shing Leung
Ashraf H. Wadaa
Trevor S. Love
Vasudevan Bibikar
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 DE102020130910A1 publication Critical patent/DE102020130910A1/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/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05FSYSTEMS FOR REGULATING ELECTRIC OR MAGNETIC VARIABLES
    • G05F1/00Automatic systems in which deviations of an electric quantity from one or more predetermined values are detected at the output of the system and fed back to a device within the system to restore the detected quantity to its predetermined value or values, i.e. retroactive systems
    • G05F1/10Regulating voltage or current
    • G05F1/46Regulating voltage or current wherein the variable actually regulated by the final control device is dc
    • G05F1/56Regulating voltage or current wherein the variable actually regulated by the final control device is dc using semiconductor devices in series with the load as final control devices
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

In einer Ausführungsform umfasst ein Prozessor: mindestens einen Kern zum Ausführen einer Arbeitslast; einen Spannungsregler zum Bereitstellen einer Betriebsspannung an den mindestens einen Kern; und einen Energiecontroller, der mit dem Spannungsregler gekoppelt ist. Der Energiecontroller kann den Spannungsregler steuern, die Betriebsspannung bereitzustellen, und kann eine Spannungsreglersteuerschaltung aufweisen, um eines aus mehreren Energiezustandsprofilen mindestens teilweise auf Grundlage einer Klassifizierung der Arbeitslast zu wählen und eine Aktualisierung eines Energiezustands des Spannungsreglers dem gewählten Energiezustandsprofil entsprechend zu veranlassen. Andere Ausführungsformen sind beschrieben und beansprucht.

Description

  • Technisches Gebiet
  • Ausführungsformen beziehen auch auf das Steuern eines Spannungsreglers für einen Prozessor.
  • Hintergrund
  • Fortschritte der Halbleiterverarbeitung und des Logikdesigns haben eine Erhöhung der Logikmenge erlaubt, die auf Vorrichtungen mit integrierten Schaltungen vorhanden sein kann. Als Ergebnis davon haben sich Computersystemkonfigurationen aus einer einzelnen oder mehreren integrierten Schaltungen in einem System zu mehreren Hardware-Threads, mehreren Kernen, mehreren Vorrichtungen und/oder vollständigen Systemen auf einzelnen integrierten Schaltungen entwickelt. Weiterhin sind mit zunehmender Dichte der integrierten Schaltungen die Energieanforderungen für Rechnersysteme (von eingebetteten Systemen auf Servern) ebenfalls eskaliert. Weiterhin haben Softwareineffizienzen und ihre Anforderungen an die Hardware ebenfalls zu einer Erhöhung des Energieverbrauchs von Rechnervorrichtungen geführt. Einige Studien weisen in der Tat darauf hin, dass Rechnervorrichtungen einen beträchtlichen Anteil an der gesamten Stromversorgung eines Landes verbrauchen, wie etwa in den Vereinigten Staaten von Amerika. Daher besteht ein lebenswichtiger Bedarf an Energieeffizienz und -einsparung in Zusammenhang mit integrierten Schaltungen. Dieser Bedarf steigt an, wenn Server, Desktop-Computer, Notebooks, Ultrabooks™, Tablets, Handys, Prozessoren, eingebettete Systeme usw. immer weiter verbreitet werden (aus der Einbeziehung des typischen Computers, von Autos und Fernsehern, bis zur Biotechnologie).
  • Aktuell tragen Energiezufuhrverluste (PD-Verluste) in verschiedenen Szenarios bis zu 20 % zur Gesamtsystemleistung bei, unter anderem bei der Videowiedergabe. Die Energiezufuhroptimierung wird bei der Verbesserung der gesamten Batteriestandzeit in zahlreichen Arten von Plattformen immer wichtiger.
  • Figurenliste
    • 1 ist ein Blockdiagramm eines Abschnitts eines Systems nach einer Ausführungsform dieser Erfindung.
    • 2 ist ein Blockdiagramm eines Prozessors nach einer Ausführungsform dieser Erfindung.
    • 3 ist ein Blockdiagramm eines Multidomain-Prozessors nach einer anderen Ausführungsform dieser Erfindung.
    • 4 ist eine Ausführungsform eines Prozessors, der mehrere Kerne umfasst.
    • 5 ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns nach einer Ausführungsform dieser Erfindung.
    • 6 ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns nach einer anderen Ausführungsform.
    • 7 ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns nach noch einer anderen Ausführungsform.
    • 8 ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns nach noch weiter weiteren Ausführungsform.
    • 9 ist ein Blockdiagramm eines Prozessors nach einer anderen Ausführungsform dieser Erfindung.
    • 10 ist ein Blockdiagramm eines repräsentativen SoC nach einer Ausführungsform dieser Erfindung.
    • 11 ist ein Blockdiagramm eines anderen beispielhaften SoC nach einer Ausführungsform dieser Erfindung.
    • 12 ist ein Blockdiagramm eines beispielhaften Systems, mit dem Ausführungsformen verwendet werden können.
    • 13 ist ein Blockdiagramm eines anderen beispielhaften Systems, mit dem Ausführungsformen verwendet werden können.
    • 14 ist ein Blockdiagramm eines repräsentativen Computersystems.
    • 15 ist ein Blockdiagramm eines Systems nach einer Ausführungsform dieser Erfindung.
    • 16 ist ein Blockdiagramm, das ein IP-Kernentwicklungssystem illustriert, das verwendet werden kann, um eine integrierte Schaltung herzustellen, um Funktionen nach einer Ausführungsform auszuführen.
    • 17 ist eine grafische Illustration eines Satzes von Effizienzkurven für einen Spannungsregler.
    • 18 ist eine Illustration einer Arbeitslastklasse-zu-Energiezustandsprofilzuordnung nach einer Ausführungsform.
    • 19 ist ein Blockdiagramm einer Rechnerplattform zum Ausführen von dynamischen Energiezustandsprofilbestimmungen nach einer Ausführungsform.
    • 20 ist ein Ablaufdiagramm eines Verfahrens nach einer Ausführungsform dieser Erfindung.
    • 21 ist ein Ablaufdiagramm eines Verfahrens nach einer anderen Ausführungsform dieser Erfindung.
  • Ausführliche Beschreibung
  • In verschiedenen Ausführungsformen kann eine Rechnerplattform einen oder mehrere Prozessoren umfassen, die wiederum einen oder mehrere Prozessorkerne und/oder eine oder mehrere Verarbeitungseinheiten umfassen können. Solche Prozessoren können durch integrierte Spannungsregler und/oder andere Spannungsregler der Plattform betrieben werden. Ausführungsformen stellen eine dynamische Steuerung der Konfiguration eines oder mehrerer Spannungsregler bereit, um eine verbesserte Energiezufuhreffizienz zu ermöglichen. Zu diesem Zweck kann eine Plattform mit mehreren Energiezustandsprofilen konfiguriert sein, die mit einem oder mehreren ihrer Spannungsregler assoziiert sind. Dann kann während des normalen Systembetriebs eine dynamische Rekonfiguration eines oder mehrerer Spannungsregler unter Verwendung eines Energiezustandsprofils auftreten, das dynamisch gewählt wird. Wie hierin beschrieben wird, kann diese dynamische Auswahl mindestens teilweise auf Grundlage einer Arbeitslastklassifizierung für eine aktuell auf dem Prozessor ausgeführte Arbeitslast erfolgen. Weiterhin können verschiedene Umweltbedingungen, unter anderem, ob die Plattform aktiv durch eine AC- oder DC-Quelle betrieben wird, sowie andere solche Informationen, verwendet werden, um das passende Energiezustandsprofil zu wählen. Noch weiter können Benutzervorzugsinformationen bezüglich Benutzervorzügen zwischen Leistung und Energieverbrauch bei der Auswahl eines geeigneten Energiezustandsprofils verwendet werden.
  • Es ist zu verstehen, dass die Energiezustandsprofile selbst während des Systembetriebs im Feld dynamisch aktualisiert werden können. Beispielsweise können verschiedenen Benutzer verschiedene Muster der Arbeitslastausführung aufweisen. So können z. B. unter Verwendung einer Maschinenlernumgebung mehrere Energiezustandsprofile dynamisch auf Grundlage einer Laufzeitanalyse von Arbeitslasten bestimmt werden, die unter Verwendung verschiedener Energiezustandsprofile ausgeführt werden, um Einstellungen solcher Energiezustandsprofile auf Grundlage erkannter Arbeitslastbedingungen zu optimieren. So können Ausführungsformen Maschinenlernen einsetzen, um Spannungsreglerverluste durch Auswahl eines geeigneten Energiezustandsprofils mindestens teilweise auf Grundlage von Arbeitslastklassifizierung und Laufzeitvorhersagen dynamisch zu optimieren. Ausführungsformen können so den Plattformenergieverbrauch verringern und die Batteriestandzeit verlängern. Bei mehreren Energiezustandsprofilen kann ein Systemdesigner sichere Werte für Cutoff-Grenzwerte bestimmen, die sich in einem Betriebsbereich des Spannungsreglers befinden. Im Gegensatz dazu kann das Erlauben von zufälliger Programmierung eines bestimmten Cutoff-Grenzwerts das System anfällig für böswillige Angriffe machen.
  • Um Ausführungsformen hierin besser zu verstehen, ist es nützlich, an einen repräsentativen Spannungsregler zu denken. Wie oben erklärt, können Ausführungsformen in Verbindung mit integrierten Spannungsreglern verwendet werden, die etwa in einem Einzel-Halbleiterdie zusammen mit Kernen und anderen Schaltungsanordnungen eines Mehrkernprozessors umfasst sein können. Es ist zu verstehen, dass ein gegebener Prozessor mehrere solche integrierte Spannungsregler umfassen kann, die z. B. jeweils mit einer anderen Energiedomäne assoziiert sind, wie etwa unter anderem eine oder mehrere Kernenergiedomänen oder Grafikenergiedomäne. In jedem Fall können diese integrierten Spannungsregler mehrere Phasenzählungen, Regelungstopologien und so weiter umfassen. Abhängig von den aktuellen Verbrauchsstufen kann ein geeigneter Energiezustand oder eine Spannungsreglerkonfiguration gewählt werden. Wiederum können die Spannungsregler eine Konfigurationsschaltungsanordnung umfassen, um dynamische Rekonfigurationen ihrer Energiezustände auszulösen.
  • Nun wird mit Verweis auf die folgende Tabelle 1 eine beispielhafte Auflistung von Energiezuständen gezeigt, die für einen bestimmten Spannungsregler verfügbar sind. Wie gezeigt, kann es mindestens fünf Energiezustände geben, wobei jeder Energiezustand für eine gegebene Spannungsreglerkonfiguration gilt und mit einem Cutoff-Grenzwert assoziiert ist. Kollektiv bilden diese Energiezustände und die entsprechenden Cutoff-Grenzwerte ein einzelnes Energiezustandsprofil. Speziell wird ein gegebener Energiezustand verwendet, bis der Stromverbrauch eine Ebene entspricht, die einer Cutoff-Grenzwertebene entspricht. Dann kann ein höherer Energiezustand (mit einer geringeren Nummer, z. B. ist PS0 ein höherer Energiezustand als PS1) gewählt werden. Wie weiter in Tabelle 1 gezeigt ist, entspricht jeder Energiezustand einem gegebenen Konfigurationsbetriebsmodus des Spannungsreglers, wie etwa einem Einzelphasen- oder Multiphasenmodus, einem unterbrochenen Leitungsmodus (DCM) oder einem ständigen Leitungsmodus (CCM). Natürlich können weitere Konfigurationsparameter mit jedem Energiezustand verbunden sein. Und es ist zu verstehen, dass ein gegebener Spannungsregler mehr oder weniger Energiezustände zur Verfügung haben kann. Tabelle 1
    Energiezustand Cutoff-Stromeintrittskriterien (Standard) Spannungsreglerbetrieb
    PS0 >20 A Multiphasig
    PS1 <20 A 1-phasig, CCM
    PS2 <5 A 1-phasig, DCM
    PS3 <1 A 1-phasig, DCM (z. B. ADC aus)
    PS4 0 V/0 A Meistens aus. Verbrauch <1 mW
  • Wie hierin weiter beschrieben wird, kann in Ausführungsformen ein Energiecontroller eines Prozessors konfiguriert sein, Stromverbrauchspegel zu erkennen (unter möglicherweise anderen Betriebsbedingungen) und dynamisch einen geeigneten Energiezustand für einen oder mehrere Spannungsregler auszuwählen. Wiederum kann auf Grundlage der Auswahl der Energiecontroller einen geeigneten Befehl an den Spannungsregler senden, um diesen zu veranlassen, sich dynamisch von einer Energiezustandskonfiguration auf eine andere zu rekonfigurieren.
  • Wenn auch die folgenden Ausführungsformen mit Verweis auf Energieerhalt und Energieeffizienz in spezifischen integrierten Schaltungen beschrieben sind, wie etwa in Rechnerplattformen oder Prozessoren, gelten andere Ausführungsformen für andere Typen von integrierten Schaltungen und Logikvorrichtungen. Ähnliche Techniken und Lehren der hierin beschriebenen Ausführungsformen können auf andere Arten von Schaltungen oder Halbleitervorrichtungen angewendet werden, die ebenfalls von besserer Energieeffizienz und Energieeinsparung einen Nutzen ziehen könnten. Beispielsweise sind die offenbarten Ausführungsformen nicht auf eine bestimmte Art von Computersystemen beschränkt. Das heiß, offenbarte Ausführungsformen können in vielen verschiedenen Systemtypen verwendet werden, von Servercomputern (z. B. Tower, Rack, Blade, Mikroserver und so weiter), Kommunikationssystemen, Speichersystemen, Desktop-Computern jeder Konfiguration, Laptop, Notebook und Tabletcomputern (umfassend 2:1-Tablets, Phablets und so weiter), und kann auch in anderen Vorrichtungen verwendet werden, wie etwa in tragbaren Vorrichtungen, Systemen auf Chip (SoCs), und eingebetteten Anwendungen. Einige Beispiele von tragbaren Vorrichtungen umfassen Handys, wie etwa Smartphones, Internet-Protokoll-Vorrichtungen, Digitalkameras, Personal Digital Assistants (PDAs) und tragbare PCs. Eingebettete Anwendungen können typischerweise einen Mikrocontroller, einen Digitalsignalprozessor (DSP), Netzwerkcomputer (NetPC), Set-Top Boxen, Netzwerkhubs, Wide Area Network (WAN) Switches, tragbare Vorrichtungen oder jedes andere System umfassen, das sie Funktionen und Operationen ausführen kann, die nachfolgend offenbart werden. Weiterhin können Ausführungsformen in mobilen Terminals umgesetzt worden sein, die Standardstimmfunktionen aufweisen, wie etwa Handys, Smartphones und Phablets, und/oder in nicht mobilen Terminals ohne Standarddrahtlosstimmfunktions-Kommunikationsfähigkeit, wie etwa viele Wearables, Tablets, Notebooks, Desktops, Mikroserver, Server und so weiter. Weiterhin sind die hierin beschriebenen Vorrichtungen, Verfahren und System nicht auf physische Rechnervorrichtungen beschränkt, sondern können sich auch auf Softwareoptimierungen zur Energieeinsparung und -effizienz beziehen. Wie leicht in der nachfolgenden Beschreibung zu erkennen ist, sind die Ausführungsformen von Verfahren, Vorrichtungen und Systemen, die hierin beschrieben sind (egal, ob mit Verweis auf Hardware, Firmware, Software, oder eine Kombination daraus) entscheidend für eine Zukunft mit „grüner Technologie“, wie etwa für Energiesparen und Energieeffizienz bei Produkten, die einen großen Abschnitt der Wirtschaft der USA ausmachen.
  • Nun wird mit Verweis auf 1 ein Blockdiagramm eines Abschnitts eines Systems nach einer Ausführungsform dieser Erfindung gezeigt. Wie in 1 gezeigt ist, kann System 100 verschiedene Bauteile umfassen, darunter einen Prozessor 110, der in der gezeigten Form ein Mehrkernprozessor ist. Prozessor 110 kann mit einer Energieversorgung 150 über einen externen Spannungsregler 160 verbunden sein, der eine erste Spannungsumwandlung durchführen kann, um eine primäre geregelte Spannung an den Prozessor 110 bereitzustellen.
  • Wie zu sehen ist, kann der Prozessor 110 ein Einzel-Die-Prozessor sein, der mehrere Kerne 120a bis 120n umfasst. Weiterhin kann jeder Kern mit einem integrierten Spannungsregler (IVR) 125a bis 125n assoziiert sein, der die primär geregelte Spannung empfängt und eine Betriebsspannung erzeugt, die einem oder mehreren Agenten des Prozessors bereitgestellt werden soll, der mit dem IVR assoziiert ist. Dementsprechend kann eine IVR-Umsetzung bereitgestellt sein, um die feinmaschige Steuerung der Spannung, und damit der Energie und Leistung für jeden einzelnen Kern zu erlauben. So kann jeder Kern mit einer unabhängigen Spannung und Frequenz, funktionieren und eine große Flexibilität ermöglichen und breitgefächerte Gelegenheiten zum Ausgleich des Energieverbrauchs mit der Leistung bereitstellen. In einigen Ausführungsformen ermöglicht die Verwendung mehrerer IVRs die Gruppierung von Komponenten in verschiedene Energieebenen, sodass die Energie geregelt und durch den IVR nur den Komponenten der Gruppe bereitgestellt wird. Während des Energiemanagements kann eine bestimmte Energieebene eines IVR heruntergefahren oder abgeschaltet sein, wenn der Prozessor in einen bestimmten Niedrigenergiezustand versetzt wird, während eine andere Energieebene eines anderen IVR aktiv oder vollständig unter Energie bleibt. In Ausführungsformen hierin kann jeder IVR 125 eine entsprechende Konfigurationsschaltung 126 umfassen die, wie hierin beschrieben sein wird, verwendet werden kann, um den entsprechenden IVR zu konfigurieren, bei einem bestimmten Energiezustand zu laufen, wobei dieser Energiezustand mindestens teilweise auf Grundlage einer klassifizierten Arbeitslast gewählt werden kann, die sich in der entsprechenden Domäne in Ausführung befindet.
  • Noch immer mit Verweis auf 1 können weitere Bauteile innerhalb des Prozessors vorhanden sein, umfassend eine Ein-/Ausgangsschnittstelle 132, eine andere Schnittstelle 134 und einen integrierten Speichercontroller 136. Wie gesehen, kann jede dieser Komponenten durch einen anderen integrierten Spannungsregler 125x mit Energie versorgt werden. In einer Ausführungsform kann die Schnittstelle 132 den Betrieb für einen Intel® Quick Path Interconnect (QPI) verbinden, was Punkt-zu-Punkt-Verbindungen (PtP-Verbindungen) in einem cachekohärenten Protokoll ermöglicht, das mehrere Schichten umfasst, die eine physische Schicht, eine Verbindungsschicht und eine Protokollschicht umfassen. Wiederum kann die Schnittstelle 134 über ein Peripheral-Component-Interconnect-Express-Protokoll (PCIe™-Protokoll) kommunizieren.
  • Ebenfalls gezeigt ist eine Energiesteuereinheit (PCU) 138, die Hardware, Software und/oder Firmware umfassen kann, um Energiemanagementoperationen bezüglich Prozessor 110 ausführen kann. Wie zu sehen ist, stellt die PCU 138 Steuerinformationen an den externen Spannungsregler 160 über eine digitale Schnittstelle bereit, um den Spannungsregler zu veranlassen, die passende geregelte Spannung zu erzeugen. PCU 138 stellt außerdem Steuerinformationen an IVRs 125 über eine andere digitale Schnittstelle bereit, um die erzeugte Betriebsspannung zu steuern (oder das Deaktivieren eines entsprechenden IVR im Niedrigenergiemodus auszulösen) und ferner Energiezustandsupdates an IVRs 125 zu übermitteln.
  • Zu diesem Zweck kann die PCU 138 Steuerschaltungsanordnungen umfassen, um einen geeigneten Energiezustand für jeden der IVRs 125 mindestens teilweise auf Grundlage einer Arbeitslast in Ausführung auf der entsprechenden Domäne zu bestimmen. So kann eine verbesserte Spannungsreglereffizienz erreicht werden, wie hierin beschrieben.
  • In verschiedenen Ausführungsformen kann die PCU 138 eine Reihe von Energiemanagementlogikeinheiten umfassen, um hardwarebasiertes Energiemanagement durchzuführen. Ein solches Energiemanagement kann vollständig prozessorgesteuert sein (z. B. durch verschiedene Prozessorhardware, und kann durch Arbeitslast- und/oder Energie-, Wärme- oder andere Prozessoreinschränkungen ausgelöst werden) und/oder das Energiemanagement kann in Reaktion auf externe Quellen durchgeführt werden (wie etwa eine Plattform- oder Management-Energiemanagementquelle oder Systemsoftware).
  • Ferner zeigt zwar 1 eine Umsetzung, in der PCU 138 eine separate Verarbeitungsengine ist (die als ein Mikrocontroller umgesetzt sein kann), es ist jedoch zu verstehen, das jeder Kern in einigen Stellen neben einem dedizierten Energiecontroller oder an seiner Stelle einen Energiesteuerungsagenten umfassen oder damit assoziiert sein kann, um autonomer unabhängig den Energieverbrauch zu steuern. In einigen Fällen kann eine hierarchische Energiemanagementarchitektur bereitgestellt sein, wobei PCU 138 mit entsprechenden Energiemanagementagenten in Kommunikation steht, die mit jedem der Kerne 120 assoziiert sind.
  • Außerdem ist zu verstehen, dass zwar in der High-Level-Ansicht aus 1 der interne Energiecontroller von Prozessor 110 als eine „PCU“ bezeichnet wird, dieser interne Energiecontroller in anderen Fällen jedoch gleichermaßen als eine Energiemanagementeinheit (PMU) bezeichnet werden kann. Hierin können die Begriffe „PCU“ und „PMU“ austauschbar verwendet werden, um sich auf Hardware-Energiesteuerungsschaltungsanordnungen zu beziehen, die intern in einem Prozessor vorliegen, und die verschiedene Sequenzen von Anweisungen ausführen können, um Energiemanagementaktivitäten für den Prozessor und die ihn darstellenden Komponenten ausführen können.
  • Während dies aus Gründen einer einfacheren Illustration nicht gezeigt ist, ist zu verstehen, dass weitere Komponenten innerhalb von Prozessor 110 vorhanden sein können, wie etwa eine weitere Steuerschaltungsanordnung, und andere Komponenten, wie etwa interne Speicher, z. b. eine oder mehrere Ebenen einer Cachespeicherhierarchie und so weiter. Weiter ist zwar in der Umsetzung von 1 ein integrierter Spannungsregler gezeigt, die Ausführungsformen sind jedoch nicht darauf eingeschränkt.
  • Es ist zu beachten, dass die Energiemanagementtechniken, die hierin beschrieben sind, unabhängig von und komplementär für einen Betriebssystem -(OS) basierten Energiemanagementmechanismus (OSPM-Mechanismus) sein können. Nach einer Beispiel-OSPM-Technik kann ein Prozessor in verschiedenen Leistungszuständen oder -pegeln funktionieren, sogenannten P-Zuständen, namentlich von P0 bis PN. Allgemein kann der Leistungszustand P1 dem höchsten garantierten Leistungszustand entsprechen, der durch ein OS angefordert werden kann. Hierin beschriebene Ausführungsformen können dynamische Änderungen der garantierten Frequenz des PI-Leistungszustands auf Grundlage einer Vielzahl von Eingängen und Prozessorbetriebsparametern ermöglichen. Neben diesem P1-Zustand kann das OS ferner einen höheren Leistungszustand anfordern, namentlich einen P0-Zustand. Dieser P0-Zustand kann so ein opportunistischer Turbomoduszustand sein, in dem bei Verfügbarkeit eines Energie- und/oder Wärmebudgets Prozessorhardware den Prozessor oder zumindest Abschnitte davon konfigurieren kann, bei einer höheren Frequenz als der garantierten Frequenz zu laufen. In vielen Umsetzungen kann ein Prozessor mehrere sogenannte Binfrequenzen über der vom P1 garantierten maximalen Frequenz aufweisen, die bis zu einer maximalen Spitze des jeweiligen Prozessors reichen, wie jeweils gelötet oder anderweitig bei der Herstellung in den Prozessor geschrieben. Weiterhin kann nach einem OSPM-Mechanismus ein Prozessor bei verschiedenen Energiezuständen oder Ebenen arbeiten. Bezüglich der Energiezustände kann ein OSPM-Mechanismus verschiedene Energieverbrauchszustände vorgeben, 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 Kern-Niedrigenergiezustand gestellt werden, der auch als Kern-Nichtnull-C-Zustand (z. B. C1 bis C6-Zuständen) bezeichnet wird, wobei jeder C-Zustand ein Niedrigenergieverbrauchspegel ist (sodass C6 ein niedrigerer Niedrigenergiezustand als C1 ist und so weiter).
  • Es ist zu verstehen, dass viele verschiedene Arten von Energiemanagementtechniken einzelne oder in Kombination in verschiedenen Ausführungsformen verwendet werden können. Als repräsentative Beispiele kann ein Energiecontroller den Prozessor steuern, durch eine Form dynamischer Frequenzskalierung (DVFS) energieverwaltet zu sein, wobei eine Betriebsspannung und/oder Betriebsfrequenz eines oder mehrerer Kerne oder anderer Prozessorlogik dynamisch gesteuert werden kann, um den Energieverbrauch in bestimmten Situationen zu verringern. In einem Beispiel kann DVFS unter Verwendung von Enhanced-Intel-SpeedStep™-Technologie ausgeführt werden, die von der Intel Corporation, Santa Clara, Kalif., bereitgestellt wird, um eine optimale Leistung bei einem geringsten Energieverbrauchspegel bereitzustellen. In einem anderen Beispiel kann DVFS unter Verwendung von Intel-TurboBoost™-Technologie ausgeführt werden, um einen oder mehrere Kerne in oder andere Rechnerengines in die Lage zu versetzen, auf Grundlage von Bedingungen (z. B. Arbeitslast und Verfügbarkeit) bei einer höheren als der garantierten Betriebsfrequenz zu laufen.
  • Eine andere Energiemanagementtechnik, die in bestimmten Beispielen verwendet werden kann, ist das dynamische Austauschen von Arbeitslasten zwischen verschiedenen Rechnerengines. Beispielsweise kann der Prozessor symmetrische Kerne oder andere Verarbeitungsengines umfassen, die auf unterschiedlichen Energieverbrauchsebenen arbeiten, wie etwa so, dass in einer energiebeschränkten Situation eine oder mehrere Arbeitslasten dynamisch umgeschaltet werden können, um auf einem Kern oder einer anderen Rechnerengine mit niedrigerer Energie ausgeführt zu werden. Eine andere beispielhafte Energiemanagementtechnik ist Hardware-Duty-Cycling (HDC), was Kerne und/oder andere Rechnerengines veranlassen kann, periodisch nach einem Lastzyklus aktiviert und deaktiviert zu werden, sodass ein oder mehrere Kerne während eines inaktiven Zeitraums des Lastzyklus inaktiv geschaltet und während eines aktiven Zeitraums des Lastzyklus aktiv geschaltet werden können. Wenn auch mit diesen speziellen Beispielen beschrieben, ist zu verstehen, dass viele andere Energiemanagementtechniken in bestimmten Ausführungsformen verwendet werden können.
  • Ausführungsformen können in Prozessoren für verscheiden Märkte umgesetzt werden, die Serverprozessoren, Desktopprozessoren, mobile Prozessoren und so weiter umfassen. Nun wird mit Verweis auf 2 ein Blockdiagramm eines Prozessors nach einer Ausführungsform dieser Erfindung gezeigt. Wie in 2 gezeigt, kann der Prozessor 200 ein Mehrkernprozessor sein, der mehrere Kerne 210a bis 210n umfasst. In einer Ausführungsform kann jeder solche Kern einer unabhängigen Energiedomäne angehören und konfiguriert sein, auf Grundlage der Arbeitslast in aktive Zustände und/oder Maximalleistungszustände einzutreten und diese zu verlassen. Die verschiedenen Kerne können über ein Interconnect 215 mit einem Systemagenten 220 verbunden sein, der verschiedene Komponenten umfasst. Wie zu sehen ist, kann der Systemagent 220 einen gemeinsamen Cache 230 umfassen, der ein Last-Level-Cache sein kann. Weiterhin kann der Systemagent einen integrierten Speichercontroller 240 umfassen, um mit einem Systemspeicher (in 2 nicht dargestellt), z. B. über einen Speicherbus zu kommunizieren. Systemagent 220 umfasst auch verschiedene Schnittstellen 250 und eine Energiesteuereinheit 255, die Logik umfassen können, um die Energiemanagementtechniken auszuführen, die hierin beschrieben sind. In der gezeigten Ausführungsform umfasst die Energiesteuereinheit 255 eine Spannungsreglersteuerschaltung 258, die dynamisch mindestens teilweise auf Grundlage einer klassifizierten Arbeitslast in Ausführung auf Prozessor 200 ein geeignetes Energiezustandsprofil aus mehreren Energiezustandsprofilen identifizieren kann. Wiederum kann mindestens teilweise auf Grundlage des erkannten Stromverbrauchs die Spannungsreglersteuerschaltung 258 einen gegebenen Energiezustand für einen oder mehrere Spannungsregler wählen, und entsprechende Befehle an solche Spannungsregler senden, um eine Aktualisierung ihrer Konfiguration auf den gewählten Energiezustand auszulösen, wie hierin weiter beschrieben ist.
  • Weiterhin kann durch die Schnittstellen 250a bis 250n eine Verbindung mit verschiedenen Off-Chip-Komponenten wie peripheren Vorrichtungen, Massespeicher und so weiter hergestellt werden. Während er mit dieser bestimmten Umsetzung in der Ausführungsform von 2 gezeigt ist, ist der Umfang dieser Erfindung diesbezüglich nicht eingeschränkt.
  • Nun wird mit Verweis auf 3 ein Blockdiagramm eines Multidomain-Prozessors nach einer anderen Ausführungsform dieser Erfindung gezeigt. Wie in der Ausführungsform aus 3 gezeigt, umfasst der Prozessor 300 mehrere Domänen. Speziell kann eine Kerndomäne 310 mehrere Kerne 3100 bis 310n umfassen, eine Grafikdomäne 320 kann eine oder mehrere Grafikengines umfassen, und eine Systemagentdomäne 350 kann ferner vorhanden sein. In einigen Ausführungsformen kann die Systemagentendomäne 350 bei einer unabhängigen Frequenz als der Kerndomäne ausführen und jederzeit aktiviert bleiben, um Energiesteuerereignisse und Energiemanagement zu handhaben, sodass die Domänen 310 und 320 gesteuert werden können, dynamisch in Hochenergie- und Niedrigenergiezustände ein- und auszutreten. Jede der Domänen 310 und 320 kann bei einer unterschiedlichen Spannung und/oder Energie funktionieren. Es ist zu beachten, dass die Darstellung zwar nur mit drei Domänen erfolgt, es ist jedoch zu verstehen, dass der Umfang dieser Erfindung diesbezüglich nicht eingeschränkt ist, und weitere Domänen in anderen Ausführungsformen vorhanden sein können. Beispielsweise können Mehrkern-Domänen vorhanden sein, die jeweils mindestens einen Kern umfassen. Es ist zu beachten, dass in einem Mehrfachpartitionsprozessor mehrere Domänen in einer einzigen Partition umfasst sind, während in anderen Umsetzungen jede Domäne als ihre eigene Partition betrachtet werden kann.
  • Allgemein kann jeder Kern 310 ferner neben verschiedenen Ausführungseinheiten und weiteren Verarbeitungselementen Caches auf niedriger Ebene beinhalten. Wiederum können die verschiedenen Kerne miteinander und mit einem gemeinsamen Cachespeicher gekoppelt sein, der aus mehreren Einheiten eines Last-Level-Cache (LLC) 3400 bis 340n gebildet sind. In verschiedenen Ausführungsformen kann das LLC 340 unter den Kernen und der Grafikengine, sowie verschiedenen Medienverarbeitungsschaltungsanordnungen geteilt. Wie zu sehen ist verbindet eine Ringverbindung 330 so die Kerne miteinander und stellt eine Verbindung zwischen den Kernen, der Grafikdomäne 320 und der Systemmanagementschaltungsanordnung 350 her. In einer Ausführungsform kann das Interconnect 330 Teil der Kerndomäne sein. In anderen Ausführungsformen kann die Ringverbindung einer eigenen Domäne angehören.
  • Wie weiter gesehen, kann die Systemagentendomäne 350 einen Anzeigecontroller 352 umfassen, der die Steuerung von und eine Schnittstelle für eine assoziierte Anzeige bereitstellen kann. Wie weiter zu sehen, kann die Systemagentendomäne 350 eine Energiesteuereinheit 355 umfassen, die eine Logik umfassen kann, um die Energiemanagementtechniken durchzuführen, die hierin beschrieben sind. In der gezeigten Ausführungsform umfasst die Energiesteuereinheit 355 eine Spannungsreglersteuerschaltung 359, die verwendet werden kann, um dynamisch ein geeignetes Energiezustandsprofil aus mehreren Energiezustandsprofilen zu identifizieren und eine Aktualisierung auf einen Energiezustand eines oder mehrerer Spannungsregler mindestens teilweise auf Grundlage von Arbeitslastklassifikationen wie hierin beschrieben zu veranlassen.
  • Wie ferner in 3 zu sehen ist, kann der Prozessor 300 ferner einen integrierten Speichercontroller (IMC) 370 umfassen, die eine Schnittstelle mit einem Systemspeicher vorsehen kann, wie etwa einem dynamischen Direktzugriffspeicher (DRAM). Mehrere Schnittstellen 3800 bis 380n können vorhanden sein, um die Verbindung zwischen dem Prozessor und anderen Schaltungsanordnungen zu ermöglichen. Beispielsweise kann in einer Ausführungsform mindestens eine Direktmedienschnittstelle (DMI) sowie eine oder mehrere PCIe™-Schnittstellen bereitgestellt sein. Noch weiter können, um Kommunikationen zwischen anderen Agenten wie etwa weiteren Prozessoren oder anderen Schaltungsanordnungen vorzusehen, eine oder mehrere QPI-Schnittstellen ebenfalls bereitgestellt sein. Auch, wenn er in dieser hohen Ebene in der Ausführungsform von 3 gezeigt ist, ist der Umfang dieser Erfindung diesbezüglich nicht eingeschränkt.
  • Mit Verweis auf 4 ist eine Ausführungsform eines Prozessors illustriert, der mehrere Kerne umfasst, gezeigt. Der Prozessor 400 umfasst jeden Prozessor oder jeder Verarbeitungsvorrichtung, wie etwa einen Mikroprozessor, einen eingebetteten Prozessor, einen digitalen Signalprozessor (DSP), einen Netzprozessor, einen tragbaren Prozessor, einen Anwendungsprozessor, einen Coprozessor, ein System auf einem Chip (SoC) oder eine andere Vorrichtung, um Code auszuführen. Prozessor 400 umfasst ein einer Ausführungsform mindestens zwei Kerne -- Kerne 401 und 402, die asymmetrische Kerne oder symmetrische Kerne umfassen können (die illustrierte Ausführungsform). Prozessor 400 kann jedoch jede Anzahl von Verarbeitungselementen umfassen, die symmetrisch oder asymmetrisch sein können.
  • In einer Ausführungsform bezieht sich ein Verarbeitungselement auf Hardware oder Logik zur Unterstützung eines Software-Threads. Beispiele von Hardware-Verarbeitungselementen umfassen: eine Thread-Einheit, einen Thread-Slot, einen Thread, eine Prozesseinheit, einen Kontext, eine Kontexteinheit, einen Logikprozessor, einen Hardwarethread, einen Kern, und/oder jedes andere Element, das in der Lage ist, einen Zustand für einen Prozessor zu halten, wie etwa einen Ausführungszustand oder architektonischen Zustand. In anderen Worten: ein Verarbeitungselement bezieht sich in einer Ausführungsform auf jede Hardware, die in der Lage ist, unabhängig mit Code assoziiert zu werden, wie etwa ein Software-Thread, ein Betriebssystem, eine Anwendung oder ein anderer Code. Ein physischer Prozessor bezieht sich typischerweise auf einer integrierten Schaltung, der potenziell jede Anzahl von anderen Verarbeitungselementen umfasst, wie etwa Kerne oder Hardware-Threads.
  • Ein Kern bezieht sich oft auf eine Logik, die sich in einer integrierten Schaltung befindet, der in der Lage einst, einen unabhängigen architektonischen Zustand zu erhalten, wobei jeder unabhängig gehaltene architektonische Zustand mit mindestens einigen speziellen Ausführungsressourcen zusammenhängt. Im Gegensatz zu Kernen, bezieht sich ein Hardwarethread typischerweise auf jede Logik, die sich in einer integrierten Schaltung befindet, der in der Lage ist, einen unabhängigen architektonischen Zustand zu erhalten, wobei die unabhängig erhaltenen architektonischen Zustände gemeinsam auf Ausführungsressourcen zugreifen. Wie zu sehen ist, überlappt sich die Linie zwischen der Benennung eines Hardwarethreads und eines Kerns, wenn bestimmte Ressourcen geteilt und andere speziell einem architektonischen Zustand zugeordnet sind. Oft werden jedoch ein Kern und ein Hardwarethread durch ein Betriebssystem als einzelne logische Prozessoren betrachtet, wenn das Betriebssystem in der Lage ist, Funktionen einzelne auf jedem logischen Prozessor zu planen.
  • Ein physischer Prozessor 400, wie in 4 illustriert, umfasst zwei Kerne, Kerne 401 und 402. Hier werden die Kerne 401 und 402 als symmetrische Kerne betrachtet, d. h. Kerne mit denselben Konfigurationen, Funktionseinheiten und/oder derselben Logik. In einer anderen Ausführungsform umfasst Kern 401 einen Prozessorkern außerhalb der Reihenfolge, während der Kern 402 einen Prozessorkern in Reihenfolge umfasst. Die Kerne 401 und 402 können jedoch einzeln aus jeder Art von Kern gewählt werden, wie etwa einem nativen Kern, einem softwareverwalteten Kern, einem Kern, der angepasst ist, eine native Anweisungssatzarchitektur (ISA) auszuführen, einem Kern, der angepasst ist, eine übersetzte ISA auszuführen, einen co-designten Kern oder einen anderen bekannten Kern. Um die Diskussion noch weiter fortzusetzen, sind die funktionalen Einheiten, die in Kern 401 illustriert sind, nachfolgend genauer beschrieben, da die Einheiten im Kern 402 auf ähnliche Weise funktionieren.
  • Wie dargestellt, umfasst der Kern 401 zwei Hardwarethreads 401a und 401b, die auch als Hardwarethreadslots 401a und 401b bezeichnet werden können. Daher können Softwareeinheiten wie ein Betriebssystem in einer Ausführungsform potenziell Prozessor 400 als vier separate Prozessoren betrachten, d. h. vier logische Prozessoren oder Verarbeitungselemente, die in der Lage sind, vier Software-Threads gleichzeitig durchzuführen. Wie oben angedeutet, ist ein erster Thread mit Architekturzustandsregistern 401a assoziiert, ein zweiter Thread ist mit Architekturzustandsregistern 401b assoziiert, ein dritter Thread kann mit Architekturzustandsregistern 402a assoziiert sein und ein vierter Thread kann mit Architekturzustandsregistern 402b assoziiert sein. Hier kann jedes der Architekturzustandsregister (401a, 401b, 402a, und 402b) als Verarbeitungselemente, ThreadSlots oder Thread-Einheiten bezeichnet sein, wie oben beschrieben. Wie illustriert, werden die Architekturzustandsregister 401a in Architekturzustandsregistern 401b repliziert, sodass einzelne Architekturzustände/-zusammenhänge in der Lage sind, für den logischen Prozessor 401a und den logischen Prozessor 401b gespeichert werden. In Kern 401 können andere kleinere Ressourcen wie Anweisungspointers und Umbenennungslogik im Allokator und Umbenennerblock 430 ebenfalls für die Threads 401a und 401b repliziert werden. Einige Ressourcen, wie etwa die Umsortierungspuffer in der Umsortierungs-/Rücknahmeeinheit 435, ILTB 420, Lade-/Speicherpuffer und Warteschlangen können durch Partitionierung geteilt werden. Andere Ressourcen, wie etwa ein oder mehrere interne Allzweckregister, Seitentabellenbasisregister, Datencache auf niedriger Ebene und Daten-TLB 415, Ausführungseinheit(en) 440, und Abschnitte der Einheit außerhalb der Reihenfolge 435 sind potenziell vollständig geteilt.
  • Der Prozessor 400 umfasst oft andere Ressourcen, die vollständig geteilt, durch Partitionierung geteilt oder speziell durch/für Verarbeitungselemente vorgesehen sein können. In 4 ist eine Ausführungsform eines rein exemplarischen Prozessors mit illustrativen logischen Einheiten/Ressourcen eines Prozessors illustriert. Beachten Sie, dass ein Prozessor jede dieser funktionieren Einheiten umfassen oder auslassen kann, sowie andere bekannte funktionale Einheiten, Logik oder Firmware, die nicht dargestellt sind, umfassen oder auslassen kann. Wie illustriert, umfasst der Kern 401 einen vereinfachten, repräsentativen Out-of-Order-Prozessorkern (OOO-Prozessorkern). Ein Prozessor innerhalb der Reihenfolge kann jedoch in anderen Ausführungsformen verwendet werden. Der OOO-Kern umfasst einen Zweigzielpuffer 420 zum Vorhersagen von Zweigen, die ausgeführt/genommen werden sollen, und einen Anweisungsübersetzungspuffer (1-TLB) 420, um Adressübersetzungseinträge für Anweisungen zu speichern.
  • Der Kern 401 umfasst ferner das Decodierungsmodul 425, verbunden mit der Abrufeinheit 420 zum Decodieren der abgerufenen Elemente. Die Abruflogik umfasst in einer Ausführungsform einzelne Sequenzer, die mit Threadslots 401a bzw. 401b assoziiert sind. Üblicherweise ist der Kern 401 mit einer ersten ISA assoziiert, die Anweisungen definiert/spezifiziert, die auf Prozessor 400 ausführbar sind. Oft umfassen Maschinencodeanweisungen, die Teil der ersten ISA sind, einen Abschnitt der Anweisung (bezeichnet als ein Opcode), der sich auf eine Anweisung oder Funktion bezieht, die ausgeführt werden soll/diese spezifiziert. Die Decoderlogik 425 umfasst Schaltungsanordnungen, die diese Anweisungen von ihren Opcodes erkannt und die decodierten Anweisungen in der Pipeline für die Verarbeitung weitergibt, wie durch die erste ISA definiert. Beispielsweise umfassen Decoder 425 in einer Ausführungsform eine Logik, die vorgesehen oder angepasst ist, um spezifische Anweisungen zu erkennen, wie etwa transaktionale Anweisungen. Als Ergebnis der Erkennung durch die Decoder 425, ergreift die Architektur oder der Kern 401 spezifische vordefinierte Aktionen zur Durchführung von Aufgaben, die mit den geeigneten Anweisungen assoziiert sind. Es ist wichtig, zu beachten, dass jede der Aufgaben, Blocks, Funktionen und Verfahren, die hierin beschrieben sind, in Reaktion auf eine einzige oder auf mehrere Anweisungen ausgeführt werden können; einige davon können neue oder alte Anweisungen sein.
  • In einem Beispiel umfasst der Allokator- und Umbenennerblock 430 einen Allokator, um Ressourcen, wie etwa Registerdateien, zu reservieren, um Anweisungsverarbeitungsergebnisse zu speichern. Die Threads 401a und 401b sind jedoch potenziell in der Lage, eine Ausführung außerhalb der Reihenfolge durchzuführen, wenn der Allokator- und Umbenennerblock 430 ebenfalls andere Ressourcen reservieren, wie etwa Umsortierungspuffer zum Verfolgen von Anweisungsergebnissen. Einheit 430 kann außerdem einen Registerumbenenner umfassen, um Programm-/Anweisungsreferenzregister auf andere Register umzubenennen, die intern in Prozessor 400 vorhanden sind. Die Umsortierungs-/Rücknahmeeinheit 435 umfasst Bauteile, wie etwa die oben genannten Umsortierungspuffer, und Speicherpuffer, um eine Ausführung außerhalb der Reihenfolge und später die Rücknahme der Anweisungen, die außerhalb der Reihenfolge ausgeführt wurden, in Reihenfolge, zu unterstützen.
  • Der Scheduler- und Ausführungseinheit(en)-Block 440 in einer Ausführungsform umfasst eine Schedulereinheit zur Planung von Anweisungen/Betrieb der Ausführungseinheiten. Beispielsweise ist eine Floating-Point-Anweisung auf einem Port einer Ausführungseinheit geplant, der eine verfügbare Floating-Point-Ausführungseinheit aufweist. Registerdateien, die mit den Ausführungseinheiten assoziiert sind, sind ebenfalls umfasst, um Informationsanweisungsverarbeitungsergebnisse zu speichern. Beispielhafte Ausführungseinheiten umfassen eine Floating-Point-Ausführungseinheit, eine Integer-Ausführungseinheit, eine Sprung-Ausführungseinheit, eine Lade-Ausführungseinheit, eine Speicher-Ausführungseinheit und andere bekannte Ausführungseinheiten.
  • Ein Datencache auf niedriger Ebene und ein Datenübersetzungspuffer (D-TLB) 450 sind mit der oder den Ausführungseinheit(en) 440 verbunden. Der Datencache soll kürzlich verwendete/bediente Elemente verwenden, wie etwa Datenoperanden, die potenziell in Speicherkohärenzzuständen gehalten werden. Der D-TLB soll kürzliche virtuelle/zur physischen Adresse lineare Übersetzungen speichern. Als ein spezifisches Beispiel kann ein Prozessor eine Seitentabellenstruktur umfassen, um den physischen Speicher in mehrere virtuelle Seiten aufzubrechen.
  • Hier teilen sich die Kerne 401 und 402 Zugriff auf ein Cache 410, der auf höherer Ebene oder weiter weg ist, der ein die kürzlich abgerufenen Elemente cachen soll. Es ist zu beachten, dass sich höhere Ebene oder weiter weg auf Cacheebenen bezieht, die ansteigen oder sich weiter von der/den Ausführungseinheit(en) weg befinden. In einer Ausführungsform ist ein Cache 410 auf höherer Ebene ein Last-Level-Datencache - der letzte Cache in der Speicherhierarchie auf Prozessor 400 - wie etwa ein Datencache auf zweiter oder dritter Ebene. Ein Cache 410 auf höherer Ebene ist jedoch nicht so beschränkt, da es mit einem Anweisungscache assoziiert sein oder dieses umfassen kann. Ein Trace-Cache - eine Art von Anweisungscache - kann stattdessen nach dem Decoder 425 gekoppelt sein, um kürzlich decodierte Traces zu speichern.
  • In der dargestellten Konfiguration umfasst der Prozessor 400 auch das Busschnittstellenmodul 405 und einen Energiecontroller 460, der Energiemanagement nach einer Ausführungsform dieser Erfindung ausführen kann. In diesem Szenario soll die Busschnittstelle 405 mit Vorrichtungen kommunizieren, die außerhalb des Prozessors 400 liegen, wie etwa mit Systemspeicher und anderen Komponenten.
  • Ein Speichercontroller 470 kann eine Schnittstelle mit anderen Vorrichtungen wie einem oder mehreren Speichern bilden. In einem Beispiel umfasst die Busschnittstelle 405 eine Ringverbindung mit einem Speichercontroller als Schnittstelle mit einem Speicher und einem Grafikcontroller als Schnittstelle mit einem Grafikprozessor. In einer SoC-Umgebung können noch mehr Vorrichtungen, wie etwa eine Netzwerkschnittstelle, Coprozessoren, Speicher, Grafikprozessor und alle anderen bekannten Rechnervorrichtungen/Schnittstelle auf einer einzelnen Matrize oder einer integrierten Schaltung integriert werden, um einen kleinen Formfaktor mit hoher Funktion und niedrigem Energieverbrauch bereitzustellen.
  • Nun wird mit Verweis auf 5 ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns nach einer Ausführungsform dieser Erfindung gezeigt. Wie in 5 gezeigt ist, kann der Prozessorkern 500 ein mehrstufiger Prozessor außerhalb der Reihenfolge mit einer Pipeline sein. Kern 500 kann bei verschiedenen Spannungen funktionieren, auf Grundlage einer empfangenen Betriebsspannung, die von einem integrierten Spannungsregler oder einem externen Spannungsregler empfangen werden kann.
  • Wie in 5 zu sehen ist, umfasst der Kern 500 Frontend-Einheiten 510, die verwendet werden können, um Anweisungen abzurufen, die ausführt werden sollen, und diese für die Verwendung später in der Prozessorpipeline vorzubereiten. Beispielsweise können Frontend-Einheiten 510 eine Abrufeinheit 501, ein Anweisungscache 503 und einen Anweisungsdecoder 505 umfassen. In einigen Umsetzungen können Frontend-Einheiten 510 ferner ein Tracecache umfassen, zusammen mit einem Microcodespeicher sowie einem Mikrofunktionsspeicher. Die Abrufeinheit 501 kann Makroanweisungen abrufen, z. B. von einem Speicher oder einem Anweisungscache 503, und sie an den Anweisungsdecoder 505 übermitteln, um sie in Primitive zu decodieren; d. h. Mikrofunktionen zur Ausführung durch den Prozessor.
  • Zwischen den Frontendeinheiten 510 und Ausführungseinheiten 520 ist eine Out-of-Order-Engine (OOO-Engine) 515 verbunden, die verwendet werden kann, die Mikroanweisungen zu empfangen und zur Ausführung vorzubereiten. Genauer gesagt kann die OOO-Engine 515 verschiedene Puffer umfassen, um den Mikroanweisungsablauf umzusortieren und verschiedene Ressourcen zuzuweisen, die zur Ausführung erforderlich sind, sowie die Umbenennung logischer Register auf Speicherorten innerhalb verschiedener Registerdateien wie Registerdatei 530 und der erweiterten Registerdatei 535 bereitzustellen. Registerdatei 530 kann separate Registerdateien für Integer- und Floating-Point-Funktionen umfassen. Die erweiterte Registerdatei 535 kann Speicher für vektorgroße Einheiten bereitstellen, z. B. 256 oder 512 Bits pro Register. Zum Zweck der Konfiguration, Steuerung und weiteren Funktionen kann auch ein Satz maschinenspezifischer Register (MSRs) 538 vorhanden sein und für unterschiedliche Logik innerhalb des Kerns 500 (und außerhalb des Kerns) zugänglich sein.
  • Verschiedene Ressourcen können in Ausführungseinheiten 520 vorhanden sein, umfassend beispielsweise verschiedener Integer, Floating-Point-, und Single-Instruction-Multiple-Data-Logikeinheiten (SIMD-Logikeinheiten), sowie weiterer spezialisierter Hardware. Beispielsweise können solche Ausführungseinheiten eine oder mehrere arithmetische Logikeinheiten (ALUs) 522 und eine oder mehrere Vektorausführungseinheiten 524, sowie anderen solche Ausführungseinheiten umfassen.
  • Ergebnisse von Ausführungseinheiten können für die Rücknahmelogik bereitgestellt werden, namentlich für einen Umsortierungspuffer (ROB) 540. Genauer gesagt kann der ROB 540 verschiedene Arrays und Logik umfassen, um Informationen zu empfangen, die mit Anweisungen assoziiert sind, die ausgeführt werden sollen. Diese Informationen werden dann durch den ROB 540 untersucht, um zu bestimmen, ob die Anweisungen gültig zurückgenommen werden und die Ergebnisdaten zu dem architektonischen Zustand des Prozessors zugewiesen werden können, oder ob eine oder mehrere Ausnahmen aufgetreten sind, die die korrekte Rücknahme der Anweisungen verhindern. Natürlich kann der ROB 540 andere Funktionen handhaben, die mit der Rücknahme assoziiert sind.
  • Wie in 5 gezeigt ist, ist der ROB 540 mit einem Cache 550 verbunden, das in einer Ausführungsform ein Cache auf niedrigerer Ebene (z. B. ein LI-Cache) aufweisen kann, obwohl der Umfang dieser Erfindung diesbezüglich nicht eingeschränkt ist. Außerdem können die Ausführungseinheiten 520 direkt mit Cache 550 verbunden sein. Von Cache 550 kann eine Datenkommunikation mit Caches höherer Ebene, Systemspeicher und so weiter erfolgen. Auch, wenn er in dieser hohen Ebene in der Ausführungsform von 5 gezeigt ist, ist der Umfang dieser Erfindung diesbezüglich nicht eingeschränkt. Beispielsweise ist, während sich die Umsetzung aus 5 auf eine Maschine außerhalb der Reihenfolge bezieht, wie etwa eine Intel®-x86-Anweisungssatzarchitektur (ISA), der Umfang dieser Erfindung diesbezüglich nicht begrenzt. Dies heißt, dass andere Ausführungsformen als Prozessor in Reihenfolge, Reduced Instruction Set Computing (RISC) Prozessor wie etwa ein ARM-basierter Prozessor oder ein Prozessor eines anderen Typs von ISA, der Anweisungen und Funktionen eines anderen ISA über eine Emulierungsengine und assoziierte Logikschaltungsanordnungen emulieren kann, umgesetzt sein.
  • Nun wird mit Verweis auf 6 ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns nach einer anderen Ausführungsform gezeigt. In der Ausführungsform aus 6 kann Kern 600 ein Niederleistungskern einer anderen Mikroarchitektur sein, wie etwa ein Intel®-Atom™-basierter Prozessor, der eine relativ beschränkte Pipelinetiefe aufweist, die vorgesehen ist, den Energieverbrauch zu verringern. Wie zu sehen ist umfasst Kern 600 ein Anweisungscache 610, das verbunden ist, um Anweisungen an einen Anweisungsdecoder 615 bereitzustellen. Ein Zweigprädiktor 605 kann mit dem Anweisungscache 610 verbunden sein. Es ist zu beachten, dass das Anweisungscache 610 ferner mit einer anderen Ebene von Cachespeicher verbunden sein kann, wie etwa mit einem L2-Cache (für einfachere Illustration in 6 nicht gezeigt). Wiederum stellt der Anweisungsdecoder 615 decodierte Anweisungen an eine Ausgabewarteschlange 620 zum Speichern und Liefern an eine gegebene Ausführungspipeline bereit. Ein Microcode-ROM 618 ist mit dem Anweisungsdecoder 615 verbunden.
  • Eine Floating-Point-Pipeline 630 umfasst eine Floating-Point-Registerdatei 632, die mehrere Architekturregister eines bestimmten Bits umfassen können, wie beispielsweise 128, 256 oder 512 Bits. Pipeline 630 umfasst einen Floating-Point-Scheduler 634 zur Planung von Anweisungen zur Ausführung auf einer von mehreren Ausführungseinheiten der Pipeline. In der gezeigten Ausführungsform umfassen solche Ausführungseinheiten eine ALU 635, eine Shuffle-Einheit 636, und einen Floating-Point-Addierer 638. Wiederum können die Ergebnisse, die in diesen Ausführungseinheiten erzeugt werden, zurück an die Puffer und/oder Register der Registerdatei 632 bereitgestellt werden. Natürlich ist zu versehen, dass sie zwar mit diesen wenigen beispielhaften Ausführungseinheiten gezeigt sind, jedoch weitere oder andere Floating-Point-Ausführungseinheiten in einer anderen Ausführungsform vorhanden sein können.
  • Eine Integer-Pipeline 640 kann ebenfalls bereitgestellt sein. In der gezeigten Ausführungsform umfasst Pipeline 640 eine Integer-Registerdatei 642, die mehrere Architekturregister einer bestimmten Bitbreite umfassen können, wie beispielsweise, 128 oder 256 Bits. Pipeline 640 umfasst einen Integer-Scheduler 644 zur Planung von Anweisungen zur Ausführung auf einer von mehreren Ausführungseinheiten der Pipeline. In der gezeigten Ausführungsform umfassen solche Ausführungseinheiten eine ALU 645, eine Shifter-Einheit 646, und einen Sprungausführungseinheit 648. Wiederum können die Ergebnisse, die in diesen Ausführungseinheiten erzeugt werden, zurück an die Puffer und/oder Register der Registerdatei 642 bereitgestellt werden. Natürlich ist zu versehen, dass sie zwar mit diesen wenigen beispielhaften Ausführungseinheiten gezeigt sind, jedoch weitere oder andere Integer-Ausführungseinheiten in einer anderen Ausführungsform vorhanden sein können.
  • Ein Speicherausführungs-Scheduler 650 kann Speicheroperationen für die Ausführung in einer Adresserzeugungseinheit 652 planen, die auch mit einem TLB 654 gekoppelt ist. Wie zu sehen ist können diese Strukturen sich mit einem Datencache 660 verbinden, der ein L0 und/oder L1-Datencache sein kann, der sich wiederum mit den weiteren Ebenen einer Cachespeicherhierarchie verbindet, umfassend einen L2-Cachespeicher.
  • Um eine Out-of-Order-Ausführung zu unterstützen, kann ein Allokator/Umbenenner 670 bereitgestellt sein, sowie ein Umsortierungspuffer 680, der konfiguriert ist, Anweisungen umzusortieren, die außerhalb der Reihenfolge ausgeführt wurden, um sie in der Reihenfolge zurückzunehmen. Auch, wenn diese bestimmte Pipelinearchitektur in der Illustration von 6 gezeigt ist, ist zu versehen, dass viele Variationen und Alternativen möglich sind.
  • Es ist zu beachten, dass in einem Prozessor, der asymmetrische Kerne aufweist, wie etwa nach den Mikroarchitekturen aus 5 und 6, Arbeitslasten dynamisch zwischen den Kernen aus Gründen des Energiemanagements ausgetauscht werden können, da diese Kerne, auch, wenn sie unterschiedliche Pipelinedesigns und -tiefen aufweisen, derselben oder einer verbundene ISA angehören können. Solche dynamischen Kernaustausche können in einer Weise durchgeführt werden, die für eine Benutzeranwendung (und möglicherweise auch für einen Kernel) transparent sind.
  • Mit Verweis auf 7 ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns nach einer anderen Ausführungsform gezeigt. Wie in 7 illustriert, kann ein Kern 700 eine mehrstufige Pipeline in Reihenfolge aufweisen, die bei sehr geringen Energieverbrauchswerten ausgeführt werden soll. Als ein solches Beispiel kann Prozessor 700 eine Mikroarchitektur nach einem ARM-Cortex-A53-Design aufweisen, das von ARM Holdings, LTD., Sunnyvale, Kalif. zur Verfügung gestellt wird. In einer Umsetzung kann eine 8-stufige Pipeline bereitgestellt sein, die konfiguriert ist, 32-Bit- und 64-Bit-Code auszuführen. Kern 700 umfasst Abrufeinheit 710, die konfiguriert ist, Anweisungen abzurufen und einer Decodierungseinheit 715 bereitzustellen, die die Anweisungen decodieren kann, z. B. Makroanweisungen einer bestimmten ISA wie einer ARMv8 ISA. Es ist ferner zu beachten, dass eine Warteschlange 730 sich mit der Decodierungseinheit 715 verbinden darf, um decodierte Anweisungen zu speichern. Decodierte Anweisungen werden an eine Ausgabelogik 725 bereitgestellt, wobei die decodierten Anweisungen an eine von mehreren Ausführungseinheiten gegeben werden können.
  • Mit weiterem Verweis auf 7 kann die Ausgabelogik 725 Anweisungen an eine von mehreren Ausführungseinheiten ausgeben. In der gezeigten Ausführungsform umfassen diese Ausführungseinheiten eine Integereinheit 735, eine Multiplikatoreinheit 740, eine Floating-Point/Vektoreinheit 750, eine Dualausgabeeinheit 760, und eine Lade-/Speichereinheit 770. Die Ergebnisse dieser verschiedenen Ausführungseinheiten können einer Writeback-Einheit 780 bereitgestellt werden. Es ist zu verstehen, dass zwar eine einzige Writeback-Einheit für einfachere Illustration gezeigt ist, in einigen Umsetzungen jedoch separate Writeback-Einheiten mit jeder der Ausführungseinheiten assoziiert sein können. Weiterhin ist zu verstehen, dass zwar jede der Einheiten und Logik wie in 7 gezeigt auf hoher Ebene repräsentiert ist, jedoch eine bestimmte Umsetzung mehr oder anderen Strukturen umfassen kann. Ein Prozessor, der unter Verwendung eines oder mehrerer Kerne entworfen wurde, die eine Pipeline aufweisen, wie in 7 gezeigt, kann in vielen verschiedenen Endprodukten umgesetzt sein, die von mobilen Vorrichtungen bis zu Serversystemen reichen.
  • Mit Verweis auf 8 ist ein Blockdiagramm einer Mikroarchitektur eines Prozessorkerns nach noch einer weiteren Ausführungsform gezeigt. Wie in 8 illustriert ist, kann ein Kern 800 eine mehrstufige Mehrfachausgabepipeline außerhalb der Reihenfolgen umfassen, um bei sehr ohne Leistungsebenen ausgeführt zu werden (die bei höheren Energieverbrauchsebenen auftreten können als Kern 700 aus 7). Als ein solches Beispiel kann der Prozessor 800 eine Mikroarchitektur nach einem ARM Cortex A57 Design aufweisen. In einer Umsetzung kann eine 15-(oder mehr) stufige Pipeline bereitgestellt sein, die konfiguriert ist, um 32-Bit- und 64-Bit-Code gleichermaßen auszuführen. Weiterhin kann die Pipeline eine 3 (oder mehr) breite und 3 (oder mehr) Ausgabefunktion vorsehen. Kern 800 umfasst eine Abrufeinheit 810, die konfiguriert ist, Anweisungen abzurufen und einem Decoder/Umbenenner/Dispatcher 815 bereitzustellen, der die Anweisungen decodieren kann, z. B. Makroanweisungen einer ARMv8-Anweisungssatzarchitektur, Umbenennungsregisterreferenzen innerhalb der Anweisungen und Absenden der Anweisungen (schließlich) an eine gewählte Ausführungseinheit. Decodierte Anweisungen können in einer Warteschlange 825 gespeichert werden. Es ist zu beachten, dass zwar in 8 für eine einfachere Illustration eine Einzelwarteschlangenstruktur gezeigt ist, jedoch zu verstehen ist, dass separate Warteschlangen für jeden der mehreren verschiedenen Arten von Ausführungseinheiten bereitgestellt sein können.
  • Ebenfalls ist in 8 eine Ausgabelogik 830 gezeigt, von der decodierte Anweisungen, die in Warteschlange 825 gespeichert sind, an eine ausgewählte Ausführungseinheit ausgegeben werden können. Die Ausgabelogik 830 kann in einer bestimmten Ausführungsform mit einer eigenen Ausgabelogik für jeden der mehreren verschiedenen Typen der Ausführungseinheiten bereitgestellt werden, mit denen sich die Ausführungslogik 830 verbindet.
  • Decodierte Anweisungen können an eine gegebene von mehreren Ausführungseinheiten ausgegeben werden. In der gezeigten Ausführungsform umfassen diese Ausführungseinheiten eine oder mehrere Integereinheiten 835, eine Multiplikatoreinheit 840, eine Floating-Point/Vektoreinheit 850, eine Zweigeinheit 860, und eine Lade-/Speichereinheit 870. In einer Ausführungsform kann die Floating-Point/Vektoreinheit 850 konfiguriert sein, SIMD oder Vektordaten von 128 oder 256 Bits zu handhaben. Noch weiter kann die Floating-Point/Vektorausführungseinheit 850 IEEE-754 Doppelpräzisions-Floating-Point-Funktionen ausführen. Die Ergebnisse dieser verschiedenen Ausführungseinheiten können einer Writeback-Einheit 880 bereitgestellt werden. Es ist zu beachten, dass in einigen Umsetzungen separate Writeback-Einheiten mit jeder der Ausführungseinheiten assoziiert sein können. Weiterhin ist zu verstehen, dass zwar jede der Einheiten und Logik wie in 8 gezeigt auf hoher Ebene repräsentiert ist, jedoch eine bestimmte Umsetzung mehr oder anderen Strukturen umfassen kann.
  • Es ist zu beachten, dass in einem Prozessor, der asymmetrische Kerne aufweist, wie etwa nach den Mikroarchitekturen aus 7 und 8, Arbeitslasten dynamisch aus Gründen des Energiemanagements ausgetauscht werden können, da diese Kerne, auch, wenn sie unterschiedliche Pipelinedesigns und -tiefen aufweisen, derselben oder einer verbundene ISA angehören können. Solche dynamischen Kernaustausche können in einer Weise durchgeführt werden, die für eine Benutzeranwendung (und möglicherweise auch für einen Kernel) transparent sind.
  • Ein Prozessor, der unter Verwendung eines oder mehrerer Kerne entworfen wurde, die Pipelines aufweisen, wie in einer oder mehreren aus 5 bis 8 gezeigt, kann in vielen verschiedenen Endprodukten umgesetzt sein, die von mobilen Vorrichtungen bis zu Serversystemen reichen. Nun wird mit Verweis auf 9 ein Blockdiagramm eines Prozessors nach einer anderen Ausführungsform dieser Erfindung gezeigt. In der Ausführungsform aus 9 kann der Prozessor 900 ein SoC sein, der mehrere Domänen umfasst, von denen jede gesteuert werden kann, um mit einer unabhängigen Betriebsspannung und Betriebsfrequenz zu funktionieren. Als ein spezifisches illustratives Beispiel kann der Prozessor 900 ein Intel® Architecture Core™-basierter Prozessor sein, wie etwa ein i3, i5, i7 oder ein anderer solcher Prozessor, der von der Intel Corporation zur Verfügung steht. Andere Niedrigenergieprozessoren, wie etwa denen, die von Advanced Micro Devices, Inc. (AMD) aus Sunnyvale, Kalif. bereitgestellt werden, einem ARM-basierten Design von ARM Holdings, Ltd. oder dessen Lizenznehmer oder einem MIPS-basierten Design von MIPS Technologies, Inc. aus Sunnyvale, Kalif., oder dessen Lizenznehmer oder Übernehmer, können in anderen Ausführungsformen stattdessen vorliegen, wie etwa ein Apple A7 Prozessor, ein Qualcomm-Snapdragon-Prozessor oder ein Texas-Instruments-OMAP-Prozessor. Eine solche SoC kann ein einem Niedrigenergiesystem wie etwa einem Smartphone, Tabletcomputer, Phabletcomputer, Ultrabook™-Computer oder einer anderen tragbaren Rechnervorrichtung oder einer verbundenen Vorrichtung verwendet werden.
  • In der Ansicht der hohen Ebene aus 9 gezeigt ist, umfasst der Prozessor 900 mehrere Kerneinheiten 9100 bis 910n . Jede Kerneinheit kann einen oder mehrere Prozessorkerne, einen oder mehrere Cachespeicher und andere Schaltungsanordnungen umfassen. Jede Kerneinheit 910 kann einen oder mehrere Anweisungssätze (z. B. einen x86-Anweisungssatz (mit einigen Erweiterungen, die bei neueren Versionen hinzugefügt wurden); den MIPS-Anweisungssatz; ein ARM-Anweisungssatz (mit optionalen weiteren Erweiterungen wie NEON)) oder einen anderen Anweisungssatz oder Kombinationen davon unterstützen. Es ist zu beachten, dass einige der Kerneinheiten heterogene Ressourcen sein können (z. B. eines anderen Designs). Weiterhin kann jeder solche Kern mit einem Cachespeicher verbunden sein (nicht gezeigt), das in einer Ausführungsform ein Cachespeicher mit geteilter Ebene (L2) sein kann. Ein nichtflüchtiger Speicher 930 kann verwendet werden, um verschieden Programm- und andere Daten zu speichern. Beispielsweise kann dieser Speicher verwendet werden, um mindestens Abschnitte von Microcode, Bootinformationen wie ein BIOS, andere Systemsoftware oder anderes zu speichern.
  • Jede Kerneinheit 910 kann ebenfalls eine Schnittstelle wie eine Busschnittstelleneinheit umfassen, um die Verbindung mit weiteren Schaltungsanordnungen des Prozessors zu ermöglichen. In einer Ausführungsform verbindet ich jede Kerneinheit 910 mit einer kohärenten Struktur, die als primäres cachekohärentes Interconnect auf der Matrize dienen kann, die sich wiederum mit einem Speichercontroller 935 verbindet. Wiederum steuert der Speichercontroller 935 Kommunikationen mit einem Speicher wie einem DRAM (für einfachere Illustration in 9 nicht gezeigt).
  • Neben den Kerneinheiten sind weitere Verarbeitungsengines innerhalb des Prozessors vorhanden, umfassend mindestens eine Grafikeinheit 920, die eine oder mehrere Grafikprozessoreinheiten (GPUs) umfassen kann, um die Grafikverarbeitung durchzuführen, sowie Mehrzweckfunktionen auf dem Grafikprozessor auszuführen (sogenannte GPGPU-Funktion). Weiterhin kann mindestens ein Bildsignalprozessor 925 vorhanden sein. Der Signalprozessor 925 kann konfiguriert sein, eingehende Bilddaten zu verarbeiten, die von einer oder mehreren Erfassungsvorrichtungen empfangen wurden, entweder intern auf dem SoC oder außerhalb des Chips.
  • Andere Beschleuniger können ebenfalls vorhanden sein. In der Illustration aus 9 kann ein Videocoder 950 Codierungsfunktionen ausführen, u der Codierung und Decodierung für Videoinformationen, z. B. durch Bereitstellung von Hardwarebeschleunigungssupport für High-Definition-Videoinhalte. Ein Anzeigecontroller 955 kann ferner bereitgestellt sein, um die Anzeigefunktionen zu beschleunigen, darunter die Bereitstellung von Support für interne und externe Anzeigen eines Systems. Weiterhin kann ein Sicherheitsprozessor 945 vorhanden sein, um Sicherheitsfunktionen auszuführen, wie etwa sichere Bootfunktionen, verschiedene Kryptografiefunktionen und so weiter.
  • Für jede der Einheiten kann der Energieverbrauch über den Energiemanager 940 gesteuert werden, was eine Steuerlogik umfassen kann, um die verschiedenen darin beschriebenen Energiemanagementtechniken auszuführen.
  • In einigen Ausführungsformen kann SoC 900 ferner eine nicht kohärente Struktur umfassen, die mit dem kohärenten Gewebe verbunden ist, mit dem sich verschiedene periphere Vorrichtungen verbinden können. Eine oder mehrere Schnittstellen 960a bis 960d ermöglichen die Kommunikation mit einer oder mehreren Vorrichtungen außerhalb des Chips. Solche Kommunikationen können über eine Vielzahl von Kommunikationsprotokollen wie PCIe™, GPIO, USB, I2C, UART, MIPI, SDIO, DDR, SPI, HDMI und anderen Arten von Kommunikationsprotokollen erfolgen. Auch, wenn er in dieser hohen Ebene in der Ausführungsform von 9 gezeigt ist, ist der Umfang dieser Erfindung diesbezüglich nicht eingeschränkt.
  • Nun ist mit Verweis auf 10 ein Blockdiagramm eines repräsentativen SoC gezeigt. In der gezeigten Ausführungsform kann SoC 1000 ein Multicore-SoC sein, konfiguriert zur Funktion mit niedriger Energie zur Optimierung für den Einbau in ein Smartphone oder eine andere Niedrigenergievorrichtung wie etwa ein Tabletcomputer oder eine andere tragbare Rechnervorrichtung. Beispielsweise kann das SoC 1000 unter Verwendung asymmetrischer oder anderer Arten von Kernen umgesetzt werden, wie etwa Kombinationen von Hochenergie-und/oder Niedrigenergiekernen, z. B. Kernen außerhalb der Reihenfolge und Kernen in Reihenfolge. In verschiedenen Ausführungsformen können diese Kerne auf einem Intel®-Architecture™-Kerndesign oder einem ARM-Architekturdesign basieren. In noch einer anderen Ausführungsform kann eine Mischung von IntelⓇ- und ARM-Kernen in einem gegebenen SoC umgesetzt sein.
  • Wie in 10 zu sehen ist, umfasst SoC 1000 eine erste Kerndomäne 1010, die mehrere erste Kerne 10120 bis 10123 aufweist. In einem Beispiel können diese Kerne Kerne mit niedriger Energie sein, wie etwa Kerne in der Reihenfolge. In einer Ausführungsform können diese ersten Kerne als ARM Cortex A53 Kerne umgesetzt sein. Diese Kerne wiederum verbunden sich mit einem Cachespeicher 1015 der Kerndomäne 1010. Weiterhin umfasst das SoC 1000 eine zweite Kerndomäne 1020. In der Illustration aus 10 weist die zweite Kerndomäne 1020 mehrere zweite Kerne 10220 bis 10223 auf. In einem Beispiel können diese Kerne Kerne sein, die mehr Energie verbrauchen als die ersten Kerne 1012. In einer Ausführungsform können die zweiten Kerne Kerne außerhalb der Reihenfolge sein, die als ARM Cortex A57 Kerne umgesetzt sind. Diese Kerne wiederum verbunden sich mit einem Cachespeicher 1025 der Kerndomäne 1020. Es ist zu beachten, dass zwar das in 10 gezeigte Beispiel 4 Kerne in jeder Domäne umfasst, jedoch zu verstehen ist, dass mehr oder weniger Kerne in anderen Beispielen in einer jeweiligen Domäne vorhanden sein können.
  • Mit weiterem Verweis auf 10 ist auch eine Grafikdomäne 1030 bereitgestellt, die eine oder mehrere Grafikprozessoreinheiten (GPUs) umfassen kann, die konfiguriert sind, unabhängig Grafikarbeitslasten auszuführen, die z. B. durch einen oder mehrere Kerne der Kerndomänen 1010 und 1020 bereitgestellt sind. Beispielsweise kann die GPU-Domäne 1030 verwendet werden, um Anzeigesupport für verschiedene Bildschirmgrößen bereitzustellen, neben der Bereitstellung von Grafik- und Anzeigerenderingfunktionen.
  • Wie zu sehen ist, verbinden sich die verschiedenen Domänen mit einem kohärenten Interconnect 1040, die in einer Ausführungsform ein cachekohärente Verbindungsstruktur sein kann, das sich wiederum mit einem integrierten Speichercontroller 1050 verbindet. Das kohärente Interconnect 1040 kann in einigen Beispielen einen gemeinsamen Cachespeicher umfassen, wie etwa ein L3-Cache. In einer Ausführungsform kann der Speichercontroller 1050 ein direkter Speichercontroller sein, um mehrere Kommunikationskanäle mit einem Speicher außerhalb des Chips bereitzustellen, wie etwa mehrerer Kanäle eines DRAM (für einfachere Illustration in 10 nicht gezeigt).
  • In verschiedenen Beispielen kann die Anzahl der Kerndomänen schwanken. Beispielsweise kann für ein Niedrigenergie-SoC, das sich für den Einbau in eine mobile Rechnervorrichtung eignet, eine eingeschränkte Anzahl von Kerndomänen vorhanden sein, wie in 10 gezeigt ist. Noch weiter kann in solche Niedrigenergie-SoCs die Kerndomäne 1020 mit Kernen höherer Energie eine geringe Anzahl solcher Kerne aufweisen. Beispielsweise können in einer Umsetzung zwei Kerne 1022 bereitgestellt sein, um die Funktion bei verringerter Energieverbrauchsebene zu ermöglichen. Weiterhin können die verschiedenen Kerndomänen auch mit einem Interrupt-Controller, um einen dynamischen Austausch von Arbeitslasten zwischen den unterschiedlichen Domänen zu erlauben.
  • In noch anderen Ausführungsformen kann eine größere Anzahl von Kerndomänen, sowie weitere optionale IP-Logik vorhanden sein, indem ein SoC für höhere Leistungsebenen (und Energieebenen) skaliert werden kann, um in andere Rechnervorrichtungen eingeschlossen zu werden, wie etwa Desktops, Server, Hochleistungsrechnersystem, Basisstationen weiter. In einem solchen Beispiel können 4 Kerndomänen, die jeweils eine gegebene Anzahl von Kernen außerhalb der Reihenfolge aufweisen, bereitgestellt sein. Noch weiter kann neben der optionalen GPU-Unterstützung (die beispielsweise die Form einer GPGPU haben kann), ein oder mehrere Beschleuniger zur Bereitstellung optimierter Hardwareunterstützung für bestimmte Funktionen (z. B. Webserving, Netzwerkverarbeitung, Switching und so weiter) ebenfalls bereitgestellt werden. Weiterhin kann eine Eingabe-/Ausgabeschnittstelle vorhanden sein, um solche Beschleuniger mit Komponenten außerhalb des Chips zu verbinden.
  • Nun ist mit Verweis auf 11 ein Blockdiagramm eines anderen beispielhaften SoC gezeigt. In der Ausführungsform aus 11 kann das SoC 1100 verschiedene Schaltungsanordnungen umfassen, um eine hohe Leistung für Multimediaanwendungen, Kommunikation und andere Funktionen bereitzustellen. So eignet sich das SoC 1100 für den Einbau in eine große Vielzahl von tragbaren und anderen Vorrichtungen, wie etwa Smartphones, Tabletcomputern, Smart-TVs und so weiter. In dem gezeigten Beispiel umfasst das SoC 1100 eine zentrale Prozessoreinheitendomäne (CPU-Domäne) 1110. In 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 Quadcore-Prozessor sein, der 4 Multithreaded-Kerne aufweist. Solche Prozessoren können homogene oder heterogene Prozessoren sein, z. B. eine Mischung von Niederenergie- und Hochenergieprozessorkernen.
  • Wiederum ist eine GPU-Domäne 1120 bereitgestellt, um fortschrittliche Grafikverarbeitung in einer oder mehreren GPUs umzusetzen, um Grafiken zu handhaben und APIs zu berechnen. Eine DSP-Einheit 1130 kann eine oder mehrere Niederenergie-DSPs für die Handhabung von Niederenergie-Multimedia-Anwendungen wie Abspielen von Musik, Audio/Video und so weiter bereitstellen, neben fortschrittlichen Berechnungen, die während der Ausführung von Multimedienanweisungen auftreten können. Eine Kommunikationseinheit 1140 wiederum kann verschiedene Komponenten umfassen, um Konnektivität über verschiedene Drahtlosprotokolle herzustellen, wie etwa zelluläre Kommunikation (umfassend 3G/4G LTE), drahtlose Local-Area-Protokolle wie etwa Bluetooth™, IEEE 802.11 und so weiter.
  • Noch weiter kann ein Multimediaprozessor 1150 verwendet werden, um die Erfassung und das Abspielen von Video- und Toninhalten mit hoher Auflösung durchzuführen, darunter die Verarbeitung von Handgesten des Benutzers. Eine Sensoreinheit 1160 kann mehrere Sensoren und/oder einen Sensorcontroller als Schnittstelle mit verschiedenen Sensoren außerhalb des Chips umfassen, die in einer gegebenen Plattform vorhanden sind. Ein Bildsignalprozessor 1170 kann mit einer oder mehreren separaten ISPs versehen sein, um Bildverarbeitung bezüglich der erfassten Inhalte von einer oder mehreren Kameras einer Plattform bereitzustellen, umfassend Standbild. und Videokameras.
  • Ein Anzeigeprozessor 1180 kann die Verbindung mit einer hochauflösenden Anzeige einer bestimmten Pixeldichte bereitstellen, umfassend die Fähigkeit, drahtlos Inhalte zum Abspielen auf einer solchen Anzeige zu kommunizieren. Noch weiter kann eine Ortseinheit 1190 einen GPS-Empfänger umfassen, mit Unterstützung für mehrere GPS-Konstellationen, um Anwendungen mit hochgenauen Positionierungsinformationen zu versorgen, die unter Verwendung als solchem GPS-Empfänger verwendet werden. Es ist zu verstehen, dass zwar dieser spezielle Satz Bauteile in dem Beispiel von 11 gezeigt ist, jedoch viele Variationen und Alternativen möglich sind.
  • Nun ist mit Verweis auf 12 ein Blockdiagramm eines beispielhaften Systems, mit dem Ausführungsformen verwendet werden können, gezeigt. Wie zu sehen ist, kann System 1200 ein Smartphone oder anderer Drahtloskommunikator sein. Ein Baseband-Prozessor 1205 ist konfiguriert zur Durchführung verschiedener Signalverarbeitungen bezüglich der Kommunikationssignale, die von dem System übermittelt oder durch dieses empfangen werden sollen. Wiederum ist der Baseband-Prozessor 1205 mit einem Anwendungsprozessor 1210 verbunden, der eine Haupt-CPU des Systems darstellen kann, um ein OS und andere Systemsoftware auszuführen, neben Benutzeranweisungen wie vielen bekannten sozialen Medien und Multimedia-Apps. Der Anwendungsprozessor 1210 kann ferner konfiguriert sein, eine Vielzahl anderer Rechenoperationen für die Vorrichtung auszuführen und die hierin beschriebenen Energiemanagementtechniken auszuführen.
  • Wiederum kann der Anwendungsprozessor 1210 sich mit einer Benutzeroberfläche/-anzeige 1220, z. B. einer Touchscreenanzeige, verbinden. Weiterhin kann sich der Anwendungsprozessor 1210 mit einem Speichersystem verbinden, das einen nichtflüchtigen Speicher umfasst, namentlich einen Flashspeicher 1230 und einen Systemspeicher, namentlich einen dynamischen Random Access Memory (DRAM) 1235. Wie weiter zu sehen ist, verbindet sich der Anwendungsprozessor 1210 ferner mit einer Erfassungsvorrichtung 1240 wie einer oder mehreren Bilderfassungsvorrichtungen, die Video und/oder Standbilder aufzeichnen können.
  • Noch immer mit Verweis auf 12 ist auch eine Universal Intergrated Circuit Card (UICC) 1240, die ein Subscriber-Identity-Module und möglicherweise einen sicheren Speicher und Kryptoprozessor umfasst, mit dem Anwendungsprozessor 1210 verbunden. System 1200 kann ferner einen Sicherheitsprozessor 1250 umfassen, der sich mit dem Anwendungsprozessor 1210 verbinden kann. Mehrere Sensoren 1225 können sich mit dem Anwendungsprozessor 1210 verbinden, um Eingaben von verschiedenen erkannten Informationen zu ermöglichen, wie etwa von einem Beschleunigungsmesser und andere Umweltinformationen. Eine Audioausgabevorrichtung 1295 kann eine Schnittstelle bereitstellen, um Ton auszugeben, z. B. in der Form einer Stimmkommunikation, abgespielter oder Streamingaudiodaten und so weiter.
  • Wie weiter illustriert, ist eine kontaktfreie Near-Field-Communication-Schnittstelle (NFC-Schnittstelle) 1260 bereitgestellt, die in einem NFC Near-Field über eine NFC-Antenne 1265 kommuniziert. Während in 12 separate Antennen gezeigt sind, ist zu verstehen, dass in einigen Umsetzungen eine Antenne oder ein anderer Satz Antennen bereitgestellt sein kann, um verschiedene Drahtlosfunktionen zu ermöglichen.
  • Ein PMIC 1215 koppelt sich mit einem Anwendungsprozessor 1210, um Energiemanagement auf Plattformebene auszuführen. Dazu kann der PMIC 1215 Energiemanagementanfragen an den Anwendungsprozessor 1210 ausgeben, um in bestimmte Niedrigenergiezustände wie gewünscht einzutreten. Weiterhin kann auf Grundlage von Plattformeinschränkungen PMIC 1215 auch den Energiepegel anderer Bauteile des Systems 1200 steuern.
  • Um das Übertragen und Senden und Empfangen der Kommunikation zu ermöglichen, können verschiedene Schaltungsanordnungen zwischen dem Baseband-Prozessor 1205 und einer Antenne 1290 verbunden werden. Speziell können ein Hochfrequenz-Transceiver (HF-Transceiver) 1270 und ein Wireless-Local-Area-Network-Transceiver (WLAN-Transceiver) 1275 vorhanden sein. Allgemein kann der HF-Transceiver 1270 verwendet werden, um drahtlose Daten und Anfrage nach einem bestimmten drahtlosen Kommunikationsprotokoll wie etwa das 3G- oder 4G-Drahtloskommunikationsprotokoll zu empfangen und zu übermitteln, wie etwa nach einem Code Division Multiple Access (CDMA), Global System for mobile Communication (GSM), Long Term Evolution (LTE) oder einem anderen Protokoll. Weiterhin kann ein GPS-Sensor 1280 vorhanden sein. Andere drahtlose Kommunikationen wie der Empfang oder die Übertragung von Funksignalen, z. B. AM/FM und andere Signale, können ebenfalls bereitgestellt sein. Weiterhin können auch über WLAN-Transceiver 1275 örtliche Drahtloskommunikationen realisiert werden.
  • Nun wird mit Verweis auf 13 ein Blockdiagramm eines anderen beispielhaften Systems gezeigt, mit dem die Ausführungsformen verwendet werden können. In der Illustration aus 13 kann System 1300 ein mobiles Niedrigenergiesystem sein, wie etwa ein Tabletcomputer, 2:1-Tablet, Phablet oder ein anderes umwandelbares oder eigenständiges Tabletsystem. Wie illustriert, ist ein SoC 1310 vorhanden und kann konfiguriert sein, als ein Anwendungsprozessor für die Vorrichtung zu laufen und die hierein beschriebenen Energiemanagementtechniken auszuführen.
  • Eine Vielzahl von Vorrichtungen kann sich mit SoC 1310 verbinden. In der gezeigten Illustration umfasst ein Speicheruntersystem einen Flashspeicher 1340 und einen DRAM 1345, der mit dem SoC 1310 verbunden ist. Weiterhin ist ein Touchpanel 1320 mit dem SoC 1310 verbunden, um eine Anzeigefähigkeit und Benutzereingaben über Berührung bereitzustellen, umfassend die Bereitstellung einer virtuellen Tastatur an einer Anzeige des Touchpanels 1320. Um eine verkabelte Netzwerkkonnektivität bereitzustellen, verbindet sich das SoC 1310 mit einer Ethernet-Schnittstelle 1330. Ein peripherer Hub 1325 ist mit dem SoC 1310 verbunden, um die Schnittstelle mit verschiedenen peripheren Vorrichtungen zu ermöglichen, die etwa durch einen von verschiedenen Ports oder anderen Anschlüssen mit dem System 1300 verbunden sein können.
  • Neben der inneren Energiemanagementschaltungsanordnung und Funktionen innerhalb von SoC 1310 ist ein PMIC 1380 mit dem SoC 1310 verbunden, um plattformbasiertes Energiemanagement bereitzustellen, z. B. auf Grundlage darauf, ob das System durch eine Batterie 1390 oder AC-Energie über einen AC-Adapter 1395 betrieben wird. Neben diesem auf der Stromquelle basierten Energiemanagement kann der PMIC 1380 ferner Plattformenergiemanagementaktivitäten auf Grundlage von Umwelt- und Verwendungsbedingungen durchführen. Noch weiter kann der PMIC 1380 Steuer- und Statusinformationen an das SoC 1310 kommunizieren, um verschiedene Energiemanagementaktionen innerhalb des SoC 1310 auszulösen.
  • Noch immer mit Verweis auf 13 ist, um Drahtlosfähigkeiten bereitzustellen, eine WLAN-Einheit 1350 mit dem SoC 1310 und wiederum mit einer Antenne 1355 verbunden. In verschiedenen Umsetzungen kann die WLAN-Einheit 1350 eine Kommunikation nach einem oder mehreren Drahtlosprotokollen vorsehen.
  • Wie weiter illustriert, können mehrere Sensoren 1360 sich mit dem SoC 1310 verbinden. Diese Sensoren können verschiedene Beschleunigungsmesser, Umwelt- und andere Sensoren umfassen, was unter anderem Benutzergestensensoren umfasst. Schließlich ist ein Audiocodec 1365 mit dem SoC 1310 verbunden, um eine Schnittstelle mit einer Audioausgabevorrichtung 1370 bereitzustellen. Natürlich ist zu verstehen, dass zwar diese spezielle Umsetzung in 13 gezeigt ist, jedoch viele Variationen und Alternativen möglich sind.
  • Nun wird mit Verweis auf 14 ein Blockdiagramm eines repräsentativen Computersystems wie etwa eines Notebooks, Ultrabooks™ oder eines anderen Systems mit kleinem Formfaktor gezeigt. Ein Prozessor 1410 in einer Ausführungsform umfasst einen Mikroprozessor, Multicore-Prozessor, Multithreaded-Prozessor, Ultraniederspannungsprozessor, einen eingebetteten Prozessor oder ein anderes bekanntes Verarbeitungselement. In der illustrierten Ausführungsform dient der Prozessor 1410 als eine Hauptverarbeitungseinheit und zentraler Hub für Kommunikation mit vielen der verschiedenen Bauteile des Systems 1400. Als ein Beispiel ist der Prozessor 1400 als ein SoC umgesetzt.
  • Der Prozessor 1410 kommuniziert in einer Ausführungsform mit einem Systemspeicher 1415. Als ein illustratives Beispiel ist der Systemspeicher 1415 über mehrere Speichervorrichtungen oder Module umgesetzt, um eine gegebene Menge an Systemspeicher bereitzustellen.
  • Um einen persistenten Speicher für Informationen wie Daten, Anwendungen, ein oder mehrere Betriebssysteme und so weiter bereitzustellen, kann auch ein Massespeicher 1420 mit dem Prozessor 1410 verbunden werden. In verschiedenen Ausführungsformen kann dieser Massespeicher, um ein dünneres und leichteres Systemdesign zu ermöglichen und um die Systemreaktivität zu verbessern, über eine SSD umgesetzt sein, oder der Massespeicher kann vornehmlich unter Verwendung eines Festplattenlaufwerks (HDD) mit einer kleinerem Menge an SSD-Speicher umgesetzt sein, der als SSD-Cache dient, um nichtflüchtige Speicherung von Kontextzustand und anderen solchen Informationen während Abschaltereignissen zu ermöglichen, sodass eine schnelle Einschaltung bei Neustart der Systemaktivitäten erfolgen kann. Ebenfalls ist in 14 gezeigt, dass eine Flashvorrichtung 1422 z. B. über eine serielle periphere Schnittstelle (SPI) mit dem Prozessor 1410 verbunden sein kann. Diese Flashvorrichtung kann nichtflüchtigen Speicher für Systemsoftware bereitstellen, umfassend eine grundlegenden Basic-Input/Output-Software (BIOS) sowie anderer Firmware des Systems.
  • Verschiedene Ein-/Ausgabe-Vorrichtungen (E/A-Vorrichtungen) können innerhalb des Systems 1400 vorhanden sein. Speziell ist in der Ausführungsform aus 14 eine Anzeige 1424 gezeigt, die ein Hochauflösungs-LCD- oder LED-Panel sein kann, das ferner einen Touchscreen 1425 vorsieht. In einer Ausführungsform kann die Anzeige 1424 mit Prozessor 1410 über ein Anzeige-Interconnect verbunden sein, die als Hochleistungsgrafik-Interconnect umgesetzt sein kann. Der Touchscreen 1425 kann mit dem Prozessor 1410 über einen anderen Interconnect verbunden sein, die in einer Ausführungsform ein I2C-Interconnect sein kann. Wie ferner in 14 gezeigt ist, kann neben dem Touchscreen 1425 eine Benutzereingabe durch Berührung ebenfalls über ein Touchpad 1430 erfolgen, das innerhalb der Chassis konfiguriert sein kann, und das mit demselben I2C-Interconnect verbunden sein kann, wie der Touchscreen 1425.
  • Für wahrnehmbare Berechnung und andere Zwecke können verschiedene Sensoren innerhalb des Systems vorhanden sein und vorhanden sein und mit dem Prozessor 1410 auf unterschiedliche Weise verbunden sein. Bestimmte Trägheits- und Umweltsensoren können sich mit Prozessor 1410 durch einen Sensorhub 1440 koppeln, z. B. über einen I2C-Interconnect. In der Ausführungsform, die in 14 gezeigt ist, können diese Sensoren einen Beschleunigungsmesser 1441, einem Umgebungslichtsensor (ALS) 1442, einen Kompass 1443 und ein Gyroskop 1444 umfassen. Anderer Umweltsensoren können einen oder mehrere Wärmesensoren 1446 umfassen, die in einigen Ausführungsformen mit dem Prozessor 1410 über einen Systemmanagementbus (SMBus) verbunden sind.
  • Außerdem zeigt 14, dass sich verschiedene Peripherievorrichtungen mit dem Prozessor 1410 über ein Low-Pin-Count-Interconnect (LPC-Interconnect) verbinden können. In der gezeigten Ausführungsform können verschiedene Bauteile durch einen eingebetteten Controller 1435 verbunden werden. Solche Bauteile können eine Tastatur 1436 (z. B. verbunden über eine PS2-Schnittstelle), einen Lüfter 1437 und einen Wärmesensor 1439 umfassen. In einigen Ausführungsformen kann das Touchpad 1430 auch mit dem EC 1435 über eine PS2-Schnittstelle verbunden sein. Weiterhin kann ein Sicherheitsprozessor wie ein Trusted Platform Module (TPM) 1438 ebenfalls mit dem Prozessor 1410 über dieses LPC-Interconnect verbunden sein.
  • Das System 1400 kann mit externen Vorrichtungen in einer Vielzahl von Weisen kommunizieren, unter anderem drahtlos. In der Ausführungsform, die in 14 gezeigt ist, sind verschiedene Drahtlosmodule vorhanden, von denen jedes einem Radio entspricht, das für ein bestimmtes Drahtloskommunikationsprotokoll konfiguriert ist. Eine Möglichkeit der drahtlosen Kommunikation in einem kurzen Abstand, wie bei Near Field, kann über eine NFC-Einheit 1445 erfolgen, die in einer Ausführungsform mit dem Prozessor 1410 über einen SMBus kommunizieren kann. Es ist zu beachten, dass über diese NFC-Einheit 1445 Vorrichtungen in direkter Nähe zueinander kommunizieren können.
  • Wie ferner in 14 zu sehen ist, können weitere Drahtloseinheiten andere Kurzstreckendrahtlosengines umfassen, darunter eine WLAN-Einheit 1450 und eine Bluetooth-Einheit 1452. Unter Verwendung der WLAN-Einheit 1450 kann Wi-Fi™-Kommunikation umgesetzt werden, während über Bluetootheinheit 1452 Bluetooth™-Kommunikation mit geringer Reichweite erfolgen kann. Diese Einheiten können mit dem Prozessor 1410 über eine gegebene Verbindung kommunizieren.
  • Weiterhin können drahtlose Wide-Area-Kommunikationen, z. B. nach einem zellulären oder anderen drahtlosen Wide-Area-Protokoll, über eine WWAN-Einheit 1456 auftreten, die sich ihrerseits mit einem Subscriber Identity Module (SIM) 1457 verbinden kann. Weiterhin kann, um Empfang und Verwendung von Ortsinformationen zu ermöglichen, ein GPS-Modul 1455 ebenfalls vorhanden sein. Es ist zu beachten, dass in der in 14 gezeigten Ausführungsform die WWAN-Einheit 1456 und eine integrierte Erfassungsvorrichtung wie ein Kameramodul 1454 über eine gegebene Verbindung kommunizieren kann.
  • Ein integriertes Kameramodul 1454 kann in dem Deckel eingebaut sein. Um Audioein- und -ausgaben vorzusehen, kann ein Audioprozessor über einen digitalen Signalprozessor (DSP) 1460 umgesetzt werden, der sich mit dem Prozessor 1410 über eine High-Definition-Audio-Verbindung (HDA-Verbindung) verbinden kann. Ähnlich kann der DSP 1460 mit einem integrierten Coder/Decoder (CODEC) und Verstärker 1462 kommunizieren, der sich seinerseits mit Ausgabelautsprechern 1463 verbinden kann, die innerhalb des Chassis umgesetzt sein können. Ähnlich können der Verstärker und CODEC 1462 verbunden sein, um Audioeingaben von einem Mikrofon 1465 zu empfangen, die in einer Ausführungsform über Dualarray-Mikrofone umgesetzt sein könne (wie etwa eine digitale Mikrofonarray), um Audioeingaben hoher Qualität vorzusehen, um stimmaktivierte Steuerung verschiedener Funktonen innerhalb des Systems zu ermöglichen. Es ist auch zu beachten, dass Audioausgaben von dem Verstärker/CODEC 1462 an eine Kopfhörerbuchse 1464 bereitgestellt werden können. Wenn sie auch mit diesen bestimmten Komponenten in der Ausführungsform von 14 gezeigt ist, ist der Umfang dieser Erfindung diesbezüglich nicht eingeschränkt.
  • Ausführungsformen können in vielen verschiedenen Systemtypen umgesetzt sein. Nun wird mit Verweis auf 15 ein Blockdiagramm eines Systems nach einer Ausführungsform dieser Erfindung gezeigt. Wie in 15 gezeigt ist, ist ein Multiprozessorsystem 1500 ein Punkt-zu-Punkt Interconnectsystem, und umfasst einen ersten Prozessor 1570 und einen zweiten Prozessor 1580, die über eine Punkt-zu-Punkt-Verbindung 1550 verknüpft sind. Wie in 15 gezeigt ist, kann jeder der Prozessoren 1570 und 1580 Mehrkernprozessoren sein, die einen ersten und einen zweiten Prozessorkern umfassen (i.e., Prozessoren 1574a und 1574b und Prozessorkerne 1584a und 1584b), wobei jedoch potenziell viele weitere Kerne in den Prozessoren vorhanden sein können. Weiterhin kann jeder der Prozessoren 1570 und 1580 auch eine Grafikprozessoreinheit (GPU) 1573, 1583 umfassen, um Grafikoperationen auszuführen. Jeder der Prozessoren 1570, 1580 kann eine PCU 1575, 1585 umfassen, um ein prozessorbasiertes Energiemanagement auszuführen, umfassend dynamische Updates auf einen Energiezustand eines oder mehrerer Spannungsregler, die IVRs 1577, 1587 umfassen, mindestens teilweise auf Grundlage der Arbeitslastklassifizierung wie hierin beschrieben.
  • Noch immer mit Verweis auf 15 umfasst der erste Prozessor 1570 ferner eine Speichercontrollernabe (MCH) 1572 und Punkt-zu-Punkt-Schnittstellen (P-P-Schnittstellen) 1576 und 1578. Ähnlich umfasst der zweite Prozessor 1580 eine MCH 1582 und P-P-Schnittstellen 1586 und 1588. Wie in 15 gezeigt, verknüpfen die MCHs 1572 und 1582 die Prozessoren mit jeweiligen Speichern, namentlich einem Speicher 1532 und einem Speicher 1534, die Abschnitte des Systemspeichers (z. B. DRAM) sein können, die örtlich mit den jeweiligen Prozessoren verbunden sind. Der erste Prozessor 1570 und der zweite Prozessor 1580 können über die P-P-Interconnects 1562 bzw. 1564 mit einem Chipsatz 1590 verbunden sein. Wie in 15 gezeigt, umfasst der Chipsatz 1590 P-P-Schnittstellen 1594 und 1598.
  • Weiter umfasst der Chipsatz 1590 eine Schnittstelle 1592 zum Verbinden des Chipsatzes 1590 mit einer Hochleistungsgrafikengine 1538 durch ein P-P-Interconnect 1539. Wiederum kann der Chipsatz 1590 mit einem ersten Bus 1516 über eine Schnittstelle 1596 verknüpft sein. Wie in 15 gezeigt, können verschiedene Eingabe-/AusgabeVorrichtungen (E/A-Vorrichtungen) 1514 zusammen mit einer Busbrücke 1518, die den ersten Bus 1516 mit einem zweiten Bus 1520 verbindet, mit dem ersten Bus 1516 verbunden sein. Verschiedene Vorrichtungen können mit dem zweiten Bus 1520 verbunden sein, umfassend beispielsweise eine Tastatur/Maus 1522, Kommunikationsvorrichtungen 1526 und einer Datenspeichereinheit 1528 wie etwa einem Festplattenlaufwerk oder einer anderen Massespeichervorrichtung, die Code 1530 umfassen können in einer Ausführungsform. Ferner kann eine Audio-E/A 1524 mit dem zweiten Bus 1520 verbunden werden. Ausführungsformen können in andere Arten von Systemen eingebaut sein, das mobile Vorrichtungen wie ein Smart-Handy, einen Tabletcomputer, ein Netbook, ein Ultrabook™ und so weiter umfasst.
  • 16 ist ein Blockdiagramm, das ein IP-Kern-Entwicklungssystem 1600 illustriert, das zur Herstellung einer integrierten Schaltung verwendet werden kann, um Operationen nach einer Ausführungsform auszuführen. Das IP-Kernentwicklungssystem 1600 kann verwendet werden, modulare wiederverwendbare Designs zu erzeugen, die in ein größeres Design umgesetzt werden oder verwendet werden kann, eine gesamte integrierte Schaltung zu konstruieren (z. B. eine SoC-integrierte Schaltung). Eine Designeinrichtung 1630 kann eine Softwaresimulation 1610 eines IP-Kerndesigns in einer High-Level-Programmiersprache (z. B. C/C++) erzeugen. Die Softwaresimulation 1610 kann verwendet werden, um das Verhalten des IP-Kerns zu designen, zu prüfen und zu verifizieren. Ein Design für einen Register-Transferlevel (RTL) kann dann aus dem Simulationsmodell erzeugt oder synthetisiert werden. Das RTL-Design 1615 ist eine Abstraktion des Verhaltens der integrierten Schaltung, die den Fluss digitaler Signale zwischen Hardwareregistern modelliert, unter anderem die assoziierte Logik, die unter Verwendung der modellierten digitalen Signale ausgeführt wird. Neben einem RTL-Design 1615 können auch Lower-Level-Designs auf Logik-Ebene oder Transistor-Ebene erzeugt, entworfen oder synthetisiert werden. So können die genauen Details des anfänglichen Designs und der Simulation variieren.
  • Das RTL-Design 1615 oder etwas Entsprechendes können weiter durch die Designeinrichtung in ein Hardwaremodell 1620 synthetisiert werden, das in einer Hardwarebeschreibungssprache (HDL) oder einer anderen Darstellung physischer Designdaten erstellt sein kann. Die HDL kann ferner simuliert oder geprüft werden, um das IP-Kerndesign zu verifizieren. Das IP-Kerndesign kann zur Lieferung an eine Drittherstellungseinrichtung 1665 gespeichert werden, die nichtflüchtigen Speicher 1640 (z. B. Festplatte, Flashspeicher oder ein nichtflüchtiges Speichermedium) umfasst. Alternativ kann das IP Kerndesign (z. B. über das Internet) über eine verkabelte Verbindung 1650 oder über eine drahtlose Verbindung 1660 übertragen werden. Die Herstellungseinrichtung 1665 kann dann eine integrierte Schaltung herstellen, der mindestens teilweise auf dem IP-Kerndesign basiert. Die hergestellte integrierte Schaltung kann konfiguriert sein, Operationen nach mindestens einer hierin beschriebenen Ausführungsform bereitzustellen.
  • Nun wird mit Verweis auf 17 eine grafische Illustration eines Satzes von Effizienzkurven für einen Spannungsregler gezeigt. Wie in 17 gezeigt ist, zeigt Illustration 1700 die Effizienz über dem Ausgangsstrom für einen Spannungsregler nach einer Ausführungsform. Wie gezeigt, sind drei beispielhafte Effizienzkurven 1710, 1720, 1730 bereitgestellt. Jede Effizienzkurve gilt für eine bestimmte Energiezustandskonfiguration für einen Spannungsregler. Bei diesen Kurven sind mehrere Kreuzungspunkte 1740 und 1750 bereitgestellt. Jeder dieser Kreuzungspunkte ist ein Inflektionspunkt, an dem die Effizienz besser durch Bewegung von einer Kurve zur anderen bedient wird, namentlich von einer Energiezustandskonfiguration zu einer anderen.
  • Da jede dieser Effizienzkurven einer bestimmten Energiezustandskonfiguration eines Spannungsreglers dient, können Energiespargelegenheiten durch dynamische Rekonfiguration des Spannungsreglers von einer Energiezustandskonfiguration zu einer anderen Energiezustandskonfiguration bei einer unterschiedlichen Stromverbrauchsebenen umgesetzt sein.
  • Genauer gesagt dient, wie in 17 illustriert, die Effizienzkurve 1710 einem Spannungsregler im Betrieb bei einer ersten Energiezustandskonfiguration, namentlich einem PS2-Konfigurationszustand. Die Effizienzkurve 1720 wiederum dient einem Spannungsregler im Betrieb bei einer zweiten Energiezustandskonfiguration, namentlich einem PS1-Konfigurationszustand. Schließlich dient die Effizienzkurve 1730 einem Spannungsregler im Betrieb bei einer dritten Energiezustandskonfiguration, namentlich einem PS9-Konfigurationszustand.
  • Wie zu sehen ist, kann die Spannungsreglereffizienz ansteigen, wenn der Betrieb bei einem Strompegel von etwa 4,5 Ampere (A) oder mehr erfolgt, indem die Spannungsreglerkonfiguration von PS2 auf PS1 umgeschaltet wird, wie an Kreuzungspunkt 1740 gezeigt ist. Ähnlich kann die Spannungsreglereffizienz auch ansteigen, wenn der Betrieb bei einem Strompegel von ca. 14 A oder mehr erfolgt, indem die Spannungsreglerkonfiguration von PS1 auf PS0 umgeschaltet wird, wie an Kreuzungspunkt 1750 gezeigt ist.
  • Aus diesen drei Effizienzkurven von 17, lässt sich ein Energiezustandsprofil (PS-Profil) bestimmen. Dieses PS-Profil stellt mehrere Cutoff-Grenzwerte bereit, um Betriebspunkte anzuzeigen, an denen ein Spannungsregler dynamisch von einer Energiezustandskonfiguration auf eine andere Energiezustandskonfiguration umkonfiguriert werden kann, um die Spannungsreglereffizienz zu verbessern. In einer Ausführungsform kann jeder Grenzwert einem gegebenen Strompegel entsprechen, bei eine gegebene Energiezustandskonfiguration für einen Spannungsregler wirksam werden soll.
  • Es ist zu versehen, dass die drei Effizienzkurven aus 17 für einen gegebenen Betriebsspannungspegel sein können. Da jedoch ein Prozessor dynamisch gesteuert werden kann, um bei einer großen Vielzahl von Betriebsspannungen zu laufen, ist zu verstehen, dass die Effizienzkurven von 17 möglicherweise nicht in allen Betriebsbedingungen optimal sind. Das heißt, da die Effizienzkurven mit verschiedenen Spannungen variieren, können sich auf Kreuzungspunkte ändern. So stellen Ausführungsformen einen Satz von Effizienzkurven bereit, die jeweils einer oder mehreren aus mehreren verschiedenen Betriebsspannungen (oder Spannungsbereichen) dienen. Bei mehreren Effizienzkurven können Stromeinsparungen über einen großen Bereich von Betriebsbedingungen hinweg maximiert werden. Bei Ausführungsformen hierin können mehrere PS-Profile bereitgestellt und verwendet werden, um dynamisch einen oder mehrere Spannungsregler zu steuern, um nach spezifizierten Cutoff-Grenzwerten zu funktionieren, die in einem gegebenen PS-Profil mindestens teilweise auf Grundlage einer Arbeitslast bereitgestellt sind, die aktuell auf einem Prozessor ausgeführt wird. So kann mit optimierten Cutoff-Grenzwerten auch der Energieverbrauch optimiert werden. Wie hierin beschrieben kann eine Auswahl eines dieser mehreren PS-Profile mindestens teilweise auf Grundlage erkannter Arbeitslastbedingungen erfolgen.
  • Nun wird mit Verweis auf 18 eine Illustration einer Arbeitslastklasse-zu-Energiezustand-Profilzuordnung nach einer Ausführungsform gezeigt. Wie in 18 gezeigt, können verschiedene Arbeitslastklassen identifiziert werden und eine Zuordnung kann zwischen bestimmten Arbeitslastklassen und einem von mehreren PS-Profilen ausgeführt werden. Speziell wird, wie in 18 gezeigt, eine Zuordnungsarchitektur 1800 verwendet, um eine Arbeitslasttabelle 1810 einer PS-Tabelle 1820 zuzuordnen. In einer Ausführungsform kann die Arbeitslasttabelle 1810 auf Grundlage von Testdaten bestimmt werden, die von mehreren Arbeitslasten erhalten werden, die auf einer Plattform ausgeführt werden. Und die mehreren PS-Profile 1822 in PS-Tabelle 1820 können auf Grundlage der Analyse der Effizienzkurven bestimmt werden, die auf Grundlage der Testdaten bestimmt wurden. In einer Ausführungsform kann die PS-Tabelle 1820 durch BIOS-Konfiguration bestimmt werden und in Energiemanagementkonfigurationsregistern gespeichert werden. Beispielsweise kann es 5 PS-Profilslots geben, die jeweils PS1/PS2-Cutoff-Grenzwertfelder mit zugewiesenem Registerraum aufweisen, den BIOS ausfüllen soll. Beispielsweise kann jedes PS-Profil 1822 mit einer Art von Arbeitslast assoziiert sein, für die eine bessere Energie oder Leistung unter Verwendung des Profils umgesetzt sein kann. Diese Testdaten wiederum werden analysiert und verwendet, um die Cutoff-Grenzwerte umzusetzen, die in dem PS-Profil spezifiziert sind. In der High-Level-Ansicht von 18 umfasst jedes PS-Profil nur zwei Cutoff-Grenzwerte, um zwei Energiezustandsrekonfigurationen zwischen drei verschiedenen Energiezuständen (PS2-zu-PS1 und PS1-zu-PS0) darzustellen. Natürlich können in anderen Beispielen mehr oder weniger Cutoff-Grenzwerte vorhanden sein.
  • Wie in 18 gezeigt ist, umfasst die Arbeitslasttabelle 1810 mehrere Einträge 1812, jeweils für eine gegebene Arbeitslastmatrix oder einen Arbeitslastklassifizierungstyp. Wie zu sehen ist, kann jeder Arbeitslastklassifizierungstyp mehrere assoziierte Cutoff-Grenzwerte aufweisen, z. B. bestimmt als ein Ergebnis einer großen Menge von Testdaten. Es ist zu beachten, dass bestimmte Arbeitslasttypen, namentlich Leerlauf, Batteriestandzeit und Burst-Arbeitslasten, relativ ähnliche Cutoff-Grenzwerte aufweisen. Speziell weisen diese Arbeitslasten Cutoff-Grenzwerte auf, die innerhalb von etwa 1 A zueinander liegen. Dementsprechend können diese 3 verschiedenen Arbeitslastklassifizierungen einem einzigen PS-Profil zugeordnet werden, das eine erste Kennung aufweist, PS-Profil-ID 1. Wie gezeigt, sieht PS-Profil 1 einen PS2-Cutoff-Grenzwert von 4 A und einen PS 1-Cutoff Grenzwert von 14 A vor. So assoziiert dieses PS-Profil sich mit mehreren Arbeitslasttypen.
  • Andere Arbeitslasttypen, namentlich semiaktive und dauerhafte Arbeitslasten, ordnen sich stattdessen jeweils exklusiven PS-Profilen zu. Speziell wie gezeigt, ordnet sich eine semiaktive Arbeitslast einem PS-Profil zu, das eine zweite Kennung (PS-Profil-ID 2) aufweist, und eine dauerhafte Arbeitslast ordnet sich einem PS-Profil zu, das eine dritte Kennung (PS-Profil-ID 3) aufweist. PS-Profil 2 wiederum sieht einen PS2-Cutoff-Grenzwert von 5A und einen PS 1-Cutoff-Grenzwert von 12 A vor. Schließlich sieht PS-Profil 3 einen PS2-Cutoff-Grenzwert von 6A und einen PS-1-Cutoff-Grenzwert von 18 A vor.
  • Während sie mit diesen speziellen Zuordnungen gezeigt sind, ist zu verstehen, dass Ausführungsformen diesbezüglich nicht beschränkt sind. In anderen Fällen kann es weitere PS-Profile geben und es können ferner verschiedene Zuordnungen zwischen Arbeitslastklassen und PS-Profilen vorliegen. Weiterhin kann es weitere Arbeitslastklassen geben. Beispielsweise kann es verschiedene Typen von Arbeitslastklassen auf Grundlage verschiedener Bedingungen geben. Weiterhin kann es in einigen Fällen möglich sein, dass ein einziger Arbeitslasttyp sich mehreren PS-Profilen zuordnet, mindestens teilweise abhängig von Betriebsbedingungen wie etwa, ob eine Plattform auf AC-Energie oder DC-Energie, Betriebsspannung oder anderen solchen Betriebsbedingungen läuft.
  • Nun ist mit Verweis auf 19 ein Blockdiagramm einer Rechnerplattform zum Ausführen von dynamischen PS-Profilbestimmungen nach einer Ausführungsform. Wie in 19 gezeigt ist, kann die Rechenplattform 1900 jeder Typ von Rechenplattform sein, z. B. von einer kleinen tragbaren Vorrichtung wie etwa einem Smartphone, Laptop und so weiter, bis zu einem größeren Client-System, einem Unternehmenssystem und so weiter. Rechenplattform 1900 umfasst einen Arbeitslastklassifizierer 1910, der konfiguriert ist, eingehende Arbeitslastmetrikinformationen zu empfangen. Solche Arbeitslastmetrikinformationen können Informationen umfassen, die Eigenschaften der Arbeitslast beschreiben. Beispielsweise können solche Informationen Spannung, Frequenz, Aktivitätsmetriken (wie etwa CPU-Residenzinformationen, Dauer/Zyklus des Energiepegels und An-/Aus-Zustands), Energie, Softwareereignisse und andere umfassen.
  • Es ist zu beachten, dass Arbeitslastklassifizierer 1910 in einigen Fällen auf demselben Prozessor ausgeführt werden kann, auf dem die Arbeitslast läuft. In anderen Fällen kann die Plattform 1900 mehrere Prozessoren umfassen, wobei der Arbeitslastklassifizierer 1910 auf einem anderen Prozessor laufen kann als die Arbeitslasten, die er bewertet. In einer Ausführungsform kann der Arbeitslastklassifizierer 1910 als ein Maschinenlernklassifizierer umgesetzt sein. In einer bestimmten Ausführungsform kann der Arbeitslastklassifizierer 1910 ein Intel®-Dynamic-Platform-Thermal-Framework-Komponente (DPTF-Komponente) oder eine IntelⓇ-Dynamic-Tuning-Technologe-Komponente (DTT-Komponente) sein.
  • Mindestens teilweise auf Grundlage dieser empfangenen Arbeitslastmetrikinformationen kann der Arbeitslastklassifizierer 1910 die laufende Arbeitslast als eine aus mehreren vorbestimmten Arbeitslastklassetypen klassifizieren. In der Ausführungsform, die in 19 illustriert ist, umfassen diese Arbeitslastklassifizierungstypen eine Arbeitslast 1922 im Leerlauf, eine Batteriestandzeitarbeitslast 1924, eine Burst-Arbeitslast 1926, eine semiaktive Arbeitslast 1928 und eine dauerhafte Arbeitslast 1930.
  • Die Leerlaufarbeitslast 1922 kann gewählt werden, wenn der Energieverbrauch für lange Zeiträume konsistent niedrig ist. Die Batterielebensarbeitslast 1924 kann gewählt werden, wenn die Energie relativ gering ist, aber ein Prozessor für einen langen Zeitraum aktiv eine Aufgabe ausführt, wie etwa die Wiedergabe eines Videos. Die Batterielebensdauer und die Leerlaufarbeitslasten können ähnlich sein, indem die Energie, die für diese Arbeitslasten über einen Zeitraum verbraucht wird, ohne Burst-Verhalten relativ gering ist.
  • Dauerhafte Arbeitslast 1930 kann für einen Energiepegel gewählt sein, der relativ hoch ist und wenige oder keine Perioden mit Leerlauf aufweist. Als Beispiele kann das Spitzenenergiepegelbudget (z. B. PL2) verbraucht werden und ein durchschnittliches Energiepegelbudget (z. B. PL1) wird bei dieser Arbeitslastausführung schließlich ausgenutzt verbraucht sein.
  • Burst-Arbeitslast 1926 kann eine relativ konstante durchschnittliche Menge an Energie verbrauchen. Aktivitätsbursts unterbrechen jedoch Zeiträume mit relativem Leerlauf. Die Bursts sind kurz genug und haben Abstände, das Budget für die Energiegrenze PL1 typischerweise nicht verbraucht wird. Die Bursts können mit Perioden des Leerlaufs zwischen den Bursts auftreten.
  • Semikative Arbeitslast 1928 kann gewählt werden, wenn eine relativ konstante durchschnittliche Menge an Energie verbraucht wird, aber Aktivitätsbursts Perioden mit relativem Leerlauf unterbrechen. Die Bursts sind lang genug, sodass einige Bursts das Budget des Energiegrenzwerts PL2 aufbrauchen können. Beispielsweise sind Bursts möglicherweise unregelmäßig, aber lang genug, dass das Budget PL2 aufgebraucht wird. Natürlich sind in anderen Ausführungsformen andere Arbeitslastklassifikationen möglich.
  • In bestimmten Ausführungsformen kann der Arbeitslastklassifizierer 1910 auch optional bestimmen, ob Plattform 1900 auf Batterieenergie oder Energie des Stromnetzes ausgeführt wird, wie in Block 1935 bestimmt ist. In anderen Fällen kann eine andere Systemkomponente auf Grundlage anderer Informationen identifizieren, ob eine AC- oder DC-Energiequelle aktiv ist.
  • Wie zu sehen ist, kann eine gegebene Arbeitslastklassifizierung an eine Entscheidungsschaltung 1940 bereitgestellt sein. In Ausführungsformen hierin kann die Entscheidungsschaltung 1940 Steuerschaltungsanordnungen und eine PS-Tabelle wie etwa die PS-Tabelle 1820 aus 18 umfassen. Mindestens teilweise auf Grundlage der Arbeitslastklassifizierung (und optional der Stromquellenangabe) kann die Entscheidungsschaltung 1940 eine geeignete von mehreren PS-Profilen zur Verwendung bestimmen. In einigen Ausführungsformen kann die Entscheidungsschaltung 1940 auch die Benutzervorzugsinformationen bezüglich des Benutzervorzugs zwischen Leistung und Energieverbrauch in Betracht ziehen, um ein geeignetes Energiezustandsprofil zu bestimmen. Wie illustriert, kann die Entscheidungsschaltung 1940 ein gewähltes Profil, z. B. mittels einer Profilkennung, an einen PS-Mapper 1950 ausgeben. In einer Ausführungsform kann der PS-Mapper 1950 innerhalb einer IntelⓇ-DPTF- oder DTT-Komponente umgesetzt sein. Natürlich sind Ausführungsformen diesbezüglich nicht beschränkt.
  • PS-Mapper 1950 wiederum kann eine Angabe eines Updates an ein PS-Profil an eine Energiemanagementeinheit (PMU) 1960 bereitstellen. In einer Ausführungsform ist der PS-Mapper 1950 mit PMU 1960 über eine Mailbox-Schnittstelle gekoppelt. Es ist zu beachten, dass in anderen Fällen die Entscheidungsschaltung 1940 ein gewähltes PS-Profil direkt an die PMU 1960 kommunizieren kann.
  • PMU 1960 umfasst eine Spannungsreglersteuerschaltung 1962, die die Angabe des PS-Profilupdates empfangen und eine geeignete Aktion durchführen kann. Dazu kann die Spannungsreglersteuerschaltung 1962 auf ein entsprechendes PS-Profil zugreifen, das z. B. in einer PS-Profiltabelle 1964 oder einem anderen Konfigurationsspeicher von PMU 1960 oder an einem anderen Ort gespeichert ist. Dann kann auf Grundlage einer Bestimmung eines aktuellen Verbrauchspegels des Prozessor VRCC 1962 eine Aktualisierung einer Energiezustandskonfiguration eines Spannungsreglers auslösen (in 19 nicht gezeigt). Daher kann der Spannungsregler gesteuert werden, dynamisch auf einem höchsten Effizienzpunkt zu laufen, abhängig davon, dass eine Arbeitslast ausgeführt wird und/oder von Betriebsbedingungen eines Prozessors.
  • Nun wird mit Verweis auf 20 ein Ablaufdiagramm eines Verfahrens nach einer Ausführungsform dieser Erfindung gezeigt. Wie in 20 gezeigt ist, ist Verfahren 2000 ein Verfahren zum dynamischen Steuern einer Spannungsreglerkonfiguration unter Verwendung von Arbeitslastklassifizierung wie hierin beschrieben. In einer Ausführungsform kann Verfahren 2000 durch verschiedene Komponenten einer Plattform ausgeführt werden, umfassend einen Arbeitslastklassifizierer und einen Energiecontroller. So kann Verfahren 2000 durch eine Hardwareschaltungsanordnung, Firmware, Software und/oder Kombinationen daraus ausgeführt werden.
  • Wie illustriert, beginnt Verfahren 2000 mit der Klassifizierung einer Arbeitslast, die auf einem Prozessor läuft (Block 2010). Beispielsweise kann ein Arbeitslastklassifizierer eine gegebene Arbeitslast klassifizieren, z. B. unter Verwendung von Mustervergleich und so weiter. Es ist zu verstehen, dass in bestimmten Ausführungsformen verschiedene Arbeitslastklassifikationen vorhanden sein können. Bei einer hohen Ebene können mindestens zwei Arbeitslastklassifikationen bereitgestellt sein, z. B. ein erster Arbeitslastklassifizierungstyp zum Anzeigen einer mehr leistungsgetriebenen Arbeitslast und ein zweiter Arbeitslastklassifizierungstyp zur Anzeige einer mehr energiesensiblen Arbeitslast. In typischeren Ausführungsformen sind mehr als zwei verschiedene Arbeitslastklassifizierungstypen verfügbar. In jedem Fall geht die Steuerung von Block 2010 an Block 2020 über, wo ein Energiezustandsprofil von mehreren solchen Energiezustandsprofilen mindestens teilweise auf Grundlage von Arbeitslastklassifizierung gewählt ist. In einer Ausführungsform kann eine Entscheidungsschaltung das Energiezustandsprofil wählen. Zu diesem Zweck kann die Entscheidungsschaltung eine Anzeige der klassifizierten Arbeitslast von dem Arbeitslastklassifizierer erhalten und z. B. unter Verwendung einer Arbeitslastkennung für diese klassifizierte Arbeitslast auf ein gegebenes Energiezustandsprofil innerhalb einer Energiezustandsprofiltabelle zugreifen. In anderen Ausführungsformen ist zu verstehen, dass diese Auswahl eines Energiezustandsprofils an anderen Stellen auftreten kann. Beispielsweise kann in einigen Fällen der Arbeitslastklassifizierer den Arbeitslastklassifizierungstyp direkt an den Energiecontroller übermitteln, der wiederum auf eine Energiezustandsprofiltabelle zugreift (die z. B. in einem Konfigurationsspeicher des Energiecontrollers umfasst ist), um das gewählte Energiezustandsprofil zu identifizieren.
  • Mit 20 fortfahrend kann in der gezeigten Ausführungsform eine Anzeige des gewählten Energiezustandsprofils an den Energiecontroller (Block 2030) übermittelt werden. Beispielsweise kann eine Energiezustandsprofilkennung für das gewählte Energiezustandsprofil kommuniziert werden. Aus diesen Informationen kann der Energiecontroller von innerhalb seines eigenen Konfigurationsspeichers auf das bestimmte Energiezustandsprofil zugreifen, um geeignete Cutoff-Grenzwerte für dieses gewählte Energiezustandsprofil zu identifizieren. Beispielsweise kann der Energiecontroller diese Cutoff-Grenzwerte erhalten und sie in einem oder mehreren Konfigurationsregistern zur Verwendung bei der Ausführung der Spannungsreglerkonfigurationsänderungen speichern.
  • An dieser Stelle kann der Energiecontroller den Stromverbrauch der Arbeitslast z. B. innerhalb des Prozessors (Block 2040) bestimmen. Ein solcher Stromverbrauch kann mindestens teilweise auf Grundlage der Frequenz des Betriebs, der Anzahl der Kerne und anderer Systemparameter sowie Worst-Case-Szenarios bestimmt werden. Es ist auch zu beachten, dass dieser Stromverbrauch vor einer Änderung eines Energiezustands und/oder eines Energiezustands des Prozessors (z. B. eines C-Zustands und/oder P-Zustandswechsels) bestimmt werden kann. Als nächstes wird in Raute 2050 bestimmt, ob der Stromverbrauch einen oder mehrere der Cutoff-Grenzwerte des gewählten Energiezustandsprofils kreuzt (z. B. übersteigt oder darunterfällt). Wenn ja, schaltet die Steuerung auf Block 2060 weiter. In Block 2060 kann der Energiecontroller eine Konfigurationsmeldung an mindestens einen Spannungsregler senden, um ihn zu veranlassen seinen Energiezustand zu aktualisieren. Beispielsweise wird angenommen, dass der bestimmte Stromverbrauch 15 A übersteigt, wobei 15 A ein Cutoff-Grenzwert des gewählten Energiezustandsprofils ist, bei dem ein Energiezustand von PS1 auf PS0 übergehen soll. Mit diesem Beispiel fortfahrend, sendet der Energiecontroller eine Konfigurationsmelden, um den Spannungsregler zu veranlassen, seinen Energiezustand auf PS0 zu aktualisieren. Oder andersherum, wenn der Stromverbrauch unter 15 A liegt, kann der Energiecontroller eine Konfigurationsmeldung senden, um den Spannungsregler zu veranlassen, seinen Energiezustand auf PS1 zu aktualisieren (wenn in PS0). Es ist zu beachten, dass standardmäßig angenommen werden kann, dass ein Energiezustand von PS1 z. B. beim Einschalten gewählt ist, und erhalten bleibt, bis eine geeignete Energiezustandsänderung bestimmt wird, um entweder den Energiezustand auf einen geringeren Energiezustand zu verringern, wenn eine leichtere Prozessoraktivität auftritt, oder auf einen höheren Energiezustand zu erhöhen, wenn eine Arbeitslast mit hohem Stromverbrauch ausgeführt wird.
  • Schließlich geht mit Verweis auf 20 nach dem Senden dieser Konfigurationsmeldung die Steuerung an Raute 2070 über, um festzustellen, ob eine Arbeitslaständerung vorgenommen wurde. Wenn nicht, geht die Steuerung für weitere Bestimmung des Stromverbrauchs zurück zu Block 2040. Es ist zu beachten, dass Raute 2070 auch direkt von Raute 2050 aufgerufen wird, wenn der bestimmte Stromverbrauch nicht über einen der Cutoff-Grenzwerte ansteigt oder darunterfällt. Wenn bestimmt wird, dass eine Änderung der Arbeitslast vorliegt, geht die Steuerung zurück zu Block 2010, der oben erklärt ist. Es ist zu beachten, dass diese Bestimmung der Arbeitslaständerung das Ergebnis einer Anzeige einer neuen Arbeitslast sein kann, die innerhalb des Prozessors ausgeführt wird. Weitere Konfigurationsänderungen für einen Prozessor können auf Grundlage der Arbeitslastklassifizierung auftreten. Beispielsweise können eine oder mehrere Energieebenen (z. B. Energiebudgets) dynamisch auf Grundlage der Arbeitslastklassifizierung aktualisiert werden. Wiederum kann der Energiecontroller aufgrund der aktualisierten Energiepegel einen oder mehrere Kerne oder andere Verarbeitungseinheiten veranlassen, bei anderen Spannungs- und/oder Frequenzkombinationen zu laufen. Es ist zu verstehen, dass zwar die Darstellung in der Ausführungsform aus 20 bei diesem hohen Pegel gezeigt ist, jedoch viele Variationen und Alternativen möglich sind.
  • Nun wird mit Verweis auf 21 ein Ablaufdiagramm eines Verfahrens nach einer anderen Ausführungsform dieser Erfindung gezeigt. Wie in 21 gezeigt ist, ist Verfahren 2100 ein Verfahren zum Einstellen von Energiezustandsprofilen für einen Spannungsregler unter Verwendung einer Maschinenlernumgebung. Wie in 21 gezeigt ist, kann Verfahren 2100 unter Verwendung einer Maschinenlernumgebung für eine gegebene Plattform ausgeführt werden. Wie illustriert, beginnt Verfahren 2100 durch Einstellen von Cutoff-Grenzwerten (Block 2110). Diese Cutoff-Grenzwerte können ein Satz von Stromverbrauchspegeln sein, bei denen ein Spannungsregler dynamisch von einem Energiezustand auf einen anderen rekonfiguriert werden soll. Wenn ein Satz Grenzwerte identifiziert wird, geht die Steuerung an Block 2120 weiter, wo eine Arbeitslast gewählt ist, um mit der Ausführung zu beginnen. Diese Arbeitslast kann eine von vielen verschiedenen Typen von Arbeitslasten sein, die ausgeführt werden können, um Testdaten zu erhalten. Wie illustriert, kann während der Ausführung dieser Arbeitslast die Spannungsreglerenergiemetrikinformation erfasst werden. Genauer gesagt können, wie in Block 2130 gezeigt ist, VR-Eingangs-/Ausgangsenergieinformationen erfasst werden. Wenn auch Ausführungsformen diesbezüglich nicht beschränkt sind, können beispielsweise diese Energiemetrikinformationen Leistungspunktzahlen für Benchmark, Frequenzresidenz (P-Zustands-Residenz), CPU-Ein-/Aus-Residenz (C-Zustands-Residenz), und andere solche Informationen umfassen. Danach kann die ausgeführte Arbeitslast angehalten werden (Block 2140). Als nächstes können in Block 2150 die Daten verarbeitet werden. In einer Ausführungsform können die Daten verarbeitet werden, um VR-Verlustinformationen, eine Leistungspunktzahl und so weiter zu bestimmen.
  • In Block 2160 können diese Informationen, und namentlich die verarbeiteten Daten, in einer Datenbank 2165 gespeichert werden. Als nächstes geht die Steuerung zurück zu Block 2120, wo eine nächste Arbeitslast unter Verwendung desselben Satzes Cutoff-Grenzwerte ausgeführt werden kann. Wenn alle Arbeitslasten, die getestet werden sollen, mit diesem Satz Grenzwerte ausgeführt wurden, geht die Steuerung zurück an Block 2110, wo ein anderer Satz Cutoff-Grenzwerte identifiziert und verwendet werden kann, um erneut die mehreren Arbeitslasten beginnend bei Block 2120 auszuführen.
  • So umfasst, wenn alle Arbeitslasten durch alle Sätze der Grenzwerte gelaufen sind, die Datenbank 2165 einen großen Satz von verarbeiteten Daten bezüglich Energieverlust, Leistungspunktzahlen und so weiter. Dann kann Maschinenlernen unter Verwendung dieser verarbeiteten Daten ausgeführt werden, um PS-Profile zur Verwendung in der Plattform zu identifizieren. Solche PS-Profile können z. B. in BIOS befüllt oder anders an ein System bereitgestellt werden, sodass sie in einem Konfigurationsspeicher gespeichert werden können, auf den ein Energiecontroller zugreifen kann. Dann kann während des normalen Betriebs der Energiecontroller auf ein geeignetes PS-Profil zugreifen, z. B. mindestens teilweise auf Grundlage des Arbeitslastklassifizierungstyps, und geeignete Konfigurationsmeldungen an einen Spannungsregler auf Grundlage von Stromverbrauchspegeln bereitstellen, um dynamische Rekonfigurationen auf einen Energiezustand des Reglers zu veranlassen. Es ist zu verstehen, dass zwar die Darstellung in der Ausführungsform aus 21 bei diesem hohen Pegel gezeigt ist, jedoch viele Variationen und Alternativen möglich sind. Beispielsweise kann die Maschinenlerntechnik dynamisch an bestimmten Bewertungsintervallen verwendet werden (z. B. mehrere Wochen oder Monate), und während die Plattform mit einer AC-Stromquelle verbunden ist und ein Benutzer die Plattform nicht verwendet, dynamisch Assoziationen der Arbeitslasttypen auf Energiezustandsprofile aktualisieren. Weiterhin kann diese Maschinenlernumgebung verwendet werden, um dynamisch neue und andere Sätze von Cutoff-Grenzwerten zu wählen und dann auf Grundlage von Tests über mehrere Arbeitslasten hinweg neue Energiezustandsprofile zu identifizieren. Eine Energiezustandsprofiltabelle wiederum kann dynamisch mit solchen neuen Energiezustandsprofilen aktualisiert werden.
  • Ausführungsformen erkennen so, dass optimale Energiezustands-Cutoff-Grenzwertkombinationen mit verschiedenen Arbeitslasten variieren. Bei Ausführungsformen können mehrere Energiezustandsprofile für eine bestimmte Plattform bereitgestellt werden, auf der Cutoff-Grenzwerte für verschiedene Arbeitslasten skaliert werden können. In Kombination mit Arbeitslastklassifizierung kann ein optimales Energiezustandsprofil auf Grundlage eines ausgeführten Arbeitslastklassifizierungstyps gewählt werden. Das gewählte Energiezustandsprofil wiederum kann verwendet werden, um Betriebspunkte (z. B. Stromverbrauchspegel) zu identifizieren, an denen eine dynamische Rekonfiguration eines Energiezustands eines oder mehrerer Spannungsregler auftreten kann, um die Energiezufuhreffizienz zu verbessern.
  • Folgende Beispiele beziehen sich auf weitere Ausführungsformen.
  • In einem Beispiel umfasst ein Prozessor: mindestens einen Kern zum Ausführen einer Arbeitslast; einen Spannungsregler zum Bereitstellen einer Betriebsspannung an den mindestens einen Kern; und einen Energiecontroller, der mit dem Spannungsregler gekoppelt ist. Der Energiecontroller kann den Spannungsregler steuern, die Betriebsspannung bereitzustellen, und kann eine Spannungsreglersteuerschaltung umfassen, um eines aus mehreren Energiezustandsprofilen mindestens teilweise auf Grundlage einer Klassifizierung der Arbeitslast zu wählen und eine Aktualisierung eines Energiezustands des Spannungsreglers dem gewählten Energiezustandsprofil entsprechend zu veranlassen.
  • In einem Beispiel soll der Energiecontroller ferner das eine der mehreren Energiezustandsprofile auf Grundlage einer aktiven Stromquelle für eine Plattform wählen, die den Prozessor umfasst.
  • In einem Beispiel soll der Energiecontroller ferner eines der mehreren Energiezustandsprofile auf Grundlage eines Benutzervorzugs zwischen Leistung und Energieverbrauch wählen.
  • In einem Beispiel soll der Energiecontroller die Klassifizierung der Arbeitslast dem gewählten der mehreren Energiezustandsprofile zuordnen.
  • In einem Beispiel umfasst der Prozessor ferner einen Konfigurationsspeicher zum Speichern der mehreren Energiezustandsprofile, wobei jedes der mehreren Energiezustandsprofile eine Energiezustandskennung aufweist und mehrere Cutoff-Grenzwerte umfasst.
  • In einem Beispiel soll der Prozessor die mehreren Energiezustandsprofile über eine Firmware empfangen und die mehreren Energiezustandsprofile in dem Konfigurationsspeicher speichern.
  • In einem Beispiel umfasst jedes der mehreren Energiezustandsprofile einen heterogenen Satz Cutoff-Grenzwerte.
  • In einem Beispiel soll der Energiecontroller einen Stromverbrauchspegel des Prozessors bestimmen und einen Energiezustandsupdatebefehl an den Spannungsregler senden, um die Aktualisierung des Energiezustands des Spannungsreglers zu veranlassen, wenn der Stromverbrauchspegel einen ersten Cutoff-Grenzwert der mehreren Cutoff-Grenzwerte des gewählten der mehreren Energiezustandsprofile übersteigt.
  • In einem Beispiel umfasst der Spannungsregler eine Konfigurationsschaltung zum Rekonfigurieren des Spannungsreglers von einem ersten Energiezustand auf einen zweiten Energiezustand auf Grundlage des Energiezustandsupdatebefehls, wobei der Spannungsregler im ersten Energiezustand in einem unterbrochenen Leitungsmodus und im zweiten Energiezustand in einem ständigen Leitungsmodus laufen soll.
  • In einem Beispiel umfasst der Prozessor ferner einen Arbeitslastklassifizierer zum Klassifizieren der Arbeitslast unter Verwendung von Maschinenlernen.
  • In einem Beispiel soll der Arbeitslastklassifizierer eine nächste Arbeitslast vorhersagen, die auf dem mindestens einen Kern ausgeführt wird, und ein Klassifizierungsupdate an den Energiecontroller zu senden, um den Energiecontroller zu veranlassen, ein zweites der mehreren Energiezustandsprofile mindestens teilweise auf Grundlage des Klassifizierungsupdates zu wählen und eine andere Aktualisierung des Energiezustands des Spannungsreglers dem gewählten zweiten der mehreren Energiezustandsprofile entsprechend zu veranlassen.
  • In einem anderen Beispiel umfasst ein Verfahren das Identifizieren mehrerer Sätze von Cutoff-Grenzwerten, bei denen ein integrierter Spannungsregler eines Prozessors einer Plattform den Energiezustand ändern soll; für jedes der mehreren Sätze Cutoff-Grenzwerten das Ausführen mehrerer Arbeitslasten auf dem Prozessor und das Erhalten von Spannungsreglermetrikinformationen für die mehreren Arbeitslasten; und das Erzeugen mehrerer Energiezustandsprofile für den integrierten Spannungsregler mindestens teilweise auf Grundlage der Spannungsreglermetrikinformationen, wobei jedes der mehreren Energiezustandsprofile mit mindestens einem Arbeitslasttyp assoziiert ist.
  • In einem Beispiel umfasst das Verfahren ferner das Bereitstellen der mehreren Energiezustandsprofile an den Prozessor über eine Firmware.
  • In einem Beispiel umfasst das Verfahren ferner: Auswählen eines ersten Satzes Cutoff-Grenzwerte für ein erstes Energiezustandsprofil und Assoziieren des ersten Energiezustandsprofils mit einem ersten Arbeitslasttyp; und Auswählen eines zweiten Satzes Cutoff-Grenzwerte für ein zweites Energiezustandsprofil und Assoziieren des zweiten Energiezustandsprofils mit mehreren Arbeitslasttypen.
  • In einem Beispiel umfasst das Verfahren ferner das Auswählen des ersten Satzes Cutoff-Grenzwerte für den ersten Arbeitslasttyp auf Grundlage der Spannungsreglermetrikinformationen, die Spannungsreglereffizienzinformationen umfassen.
  • In einem Beispiel umfasst das Verfahren ferner das Ausführen einer ersten Arbeitslast unter Verwendung der mehreren Sätze Cutoff-Grenzwerte zum Finden eines optimalen Energiezustandsprofils zum Optimieren von Energiezufuhreffizienz während der ersten Arbeitslastausführung.
  • In einem Beispiel umfasst das Verfahren ferner das Auswählen der mehreren Arbeitslasten unter Verwendung von Maschinenlernen, wobei die mehreren Arbeitslasten häufige Arbeitslasten für einen Benutzer der Plattform umfassen.
  • In einem weiteren Beispiel soll das computerlesbare Medium, das Anweisungen umfasst, das Verfahren eines der obigen Beispiele ausführen.
  • In einem weiteren Beispiel soll ein computerlesbares Medium, das Daten umfasst, durch mindestens eine Maschine verwendet werden, um mindestens eine integrierte Schaltung herzustellen, um das Verfahren eines der obigen Beispiele auszuführen.
  • In noch einem weiteren Beispiel umfasst eine Vorrichtung Mittel zum Ausführen des Verfahrens aus einem der obigen Beispiele.
  • In noch einem anderen Beispiel umfasst ein System einen Mehrkernprozessor und einen Systemspeicher, der mit dem Mehrkernprozessor gekoppelt ist. Der Mehrkernprozessor kann umfassen: eine erste Domäne, die einen oder mehrere Kerne umfasst; eine zweite Domäne, die mindestens einen Grafikprozessor umfasst; mindestens einen integrierten Spannungsregler, um eine geregelte Spannung an mindestens die erste Domäne bereitzustellen, wobei der mindestens eine integrierte Spannungsregler eine Konfigurationsschaltung umfasst, um dynamisch den mindestens einen integrierten Spannungsregler von einem ersten Energiezustand zu einem zweiten Energiezustand umzukonfigurieren; und einen Energiecontroller, der mit dem mindestens einen integrierten Spannungsregler gekoppelt ist. Wiederum kann der Energiecontroller eine Spannungsreglersteuerschaltung umfassen, um ein Energiezustandsprofil aus mehreren Energiezustandsprofilen mindestens teilweise auf Grundlage eines Stromverbrauchspegels und der Klassifizierung einer Arbeitslast in Ausführung des Mehrkernprozessors zu wählen und das gewählte Energiezustandsprofil zu verwenden, um den mindestens einen integrierten Spannungsregler zu veranlassen, dynamisch von dem ersten Energiezustand auf den zweiten Energiezustand umkonfiguriert zu werden.
  • In einem Beispiel umfasst das System ferner einen Arbeitslastklassifizierer zum Klassifizieren der Arbeitslast unter Verwendung von Maschinenlernen und zum Senden einer Angabe der Arbeitslast an den Energiecontroller, wobei der Energiecontroller auf eine Tabelle zugreifen soll, die mehrere Einträge aufweist, wobei jeder Eintrag mit einem Energiezustandsprofil assoziiert ist, und Auswählen des Energiezustandsprofils unter Verwendung der Arbeitslastangabe, wobei das gewählte Energiezustandsprofil einen Satz Cutoff-Grenzwerte umfasst, bei denen ein Energiezustandsübergang des mindestens einen integrierten Spannungsreglers auftreten soll.
  • In einem Beispiel umfasst der Systemspeicher eine Datenbank zum Speichern von verarbeiteten Daten, die Spannungsreglermetrikinformationen für mehrere Arbeitslasten umfassen, wobei die mehreren Energiezustandsprofile mindestens teilweise unter Verwendung der verarbeiteten Daten abgeleitet sind.
  • Es ist zu verstehen, dass verschiedene Kombinationen der obigen Beispiele möglich sind.
  • Es ist zu beachten, dass die Begriffe „Schaltung“ und „Schaltungsanordnung“ hierin austauschbar verwendet werden. Wie hierein verwendet, werden diese Begriffe und der Begriff „Logik“ verwendet, um sich alleine oder in Kombination auf analoge Schaltungsanordnungen, digitale Schaltungsanordnungen, fest verkabelte Schaltungsanordnungen, programmierbare Schaltungsanordnungen, Prozessorschaltungsanordnungen, Mikrocontrollerschaltungsanordnungen, Hardwarelogikschaltungsanordnungen, Zustandsmaschinenschaltungsanordnungen und/oder jede andere Arte physischer Hardwarekomponenten zu beziehen. Ausführungsformen können in vielen verschiedenen Arten von Systemen verwendet werden. Zum Beispiel kann in einer Ausführungsform eine Kommunikationsvorrichtung angeordnet sein, die verschiedenen Verfahren und Techniken durchzuführen, die hierin beschrieben sind. Natürlich ist der Umfang dieser Erfindung nicht auf eine Kommunikationsvorrichtung beschränkt, und stattdessen können andere Ausführungsformen auf andere Arten von Vorrichtungen gerichtet sein, um Anweisungen zu verarbeiten, oder eine oder mehrere maschinenlesbare Medien, die Anweisungen umfassen, die in Reaktion auf die Ausführung auf einer Rechnervorrichtung die Vorrichtung veranlassen, eines oder mehrere der Verfahren und Techniken auszuführen, die hierin beschrieben sind.
  • Ausführungsformen können in Code umgesetzt werden und kann auf einem nichttransitorischen Speichermedium gespeichert werden, auf dem Anweisungen gespeichert sind, die verwendet werden können, ein System zu programmieren, die Anweisungen auszuführen. Ausführungsformen können außerdem in Daten umgesetzt werden und können auf einem nicht transitorischen Speichermedium gespeichert werden, das, wenn es durch mindestens eine Maschine verwendet wird, die mindestens eine Maschine veranlasst, mindestens einer integrierten Schaltung herzustellen, um eine oder mehrere Funktionen auszuführen. Noch weitere Ausführungsformen können in einem computerlesbaren Speichermedium umgesetzt werden, darunter Informationen die, wenn sie in einem SoC oder einem anderen Prozessor hergestellt werden, das SoC oder den anderen Prozessor konfigurieren sollen, eine oder mehrere Funktionen auszuführen. Das Speichermedien kann jede Art von Diskette, umfassend Floppy Disks, optische Disks, Solid-Zustand-Drives (SSDs), Compact Disc Read-Only Memories (CD-ROMs), Compact Disk Rewritables (CD-RWs) und magnetoptische Disketten, Halbleitervorrichtungen wie Read-Only Memories (ROMs), Random Access Memories (RAMs) wie Dynamic Random Access Memories (DRAMs), Static Random Access Memories (SRAMs), Erasable Programmable Read-Only Memories (EPROMs), Flashspeicher, Electrically Erasable Programmable Read-Only Memories (EEPROMs), magnetische oder optische Karten oder jede andere Art von Medien, die sich für das Speichern elektrischer Anweisungen eignet, umfassen, ist jedoch nicht darauf beschränkt.
  • Während die vorliegende Erfindung bezüglich einer beschränkten Anzahl von Ausführungsformen beschrieben wurde, werden Fachleute auf dem Gebiet zahlreiche Modifikationen und Variationen davon erkennen. Es ist vorgesehen, dass die anhängenden Ansprüche alle solchen Modifizierungen und Variationen abdecken, die in den wahren Geist dieser Erfindung fallen.

Claims (26)

  1. Prozessor, aufweisend: mindestens einen Kern zum Ausführen einer Arbeitslast; einen Spannungsregler zum Bereitstellen einer Betriebsspannung an den mindestens einen Kern; und einen Energiecontroller, der mit dem Spannungsregler gekoppelt ist, wobei der Energiecontroller den Spannungsregler steuern soll, die Betriebsspannung bereitzustellen, wobei der Energiecontroller eine Spannungsreglersteuerschaltung aufweist, um eines aus mehreren Energiezustandsprofilen mindestens teilweise auf Grundlage einer Klassifizierung der Arbeitslast zu wählen und eine Aktualisierung eines Energiezustands des Spannungsreglers dem gewählten Energiezustandsprofil entsprechend zu veranlassen.
  2. Prozessor aus Anspruch 1, wobei der Energiecontroller ferner das eine der mehreren Energiezustandsprofile auf Grundlage einer aktiven Stromquelle für eine Plattform wählen soll, die den Prozessor aufweist.
  3. Prozessor aus Anspruch 2, wobei der Energiecontroller ferner eines der mehreren Energiezustandsprofile auf Grundlage eines Benutzervorzugs zwischen Leistung und Energieverbrauch wählen soll.
  4. Prozessor aus Anspruch 1, wobei der Energiecontroller die Klassifizierung der Arbeitslast dem gewählten der mehreren Energiezustandsprofile zuordnen soll.
  5. Prozessor aus Anspruch 1, wobei der Prozessor ferner einen Konfigurationsspeicher zum Speichern der mehreren Energiezustandsprofile aufweist, wobei jedes der mehreren Energiezustandsprofile eine Energiezustandskennung aufweist und mehrere Cutoff-Grenzwerte aufweist.
  6. Prozessor aus Anspruch 5, wobei der Prozessor die mehreren Energiezustandsprofile über eine Firmware empfangen und die mehreren Energiezustandsprofile in dem Konfigurationsspeicher speichern soll.
  7. Prozessor aus Anspruch 5, wobei jedes der mehreren Energiezustandsprofile einen heterogenen Satz Cutoff-Grenzwerte aufweist.
  8. Prozessor aus Anspruch 5, wobei der Energiecontroller einen Stromverbrauchspegel des Prozessors bestimmen und einen Energiezustandsupdatebefehl an den Spannungsregler senden soll, um die Aktualisierung des Energiezustands des Spannungsreglers zu veranlassen, wenn der Stromverbrauchspegel einen ersten Cutoff-Grenzwert der mehreren Cutoff-Grenzwerte des gewählten der mehreren Energiezustandsprofile übersteigt.
  9. Prozessor aus Anspruch 8, wobei der Spannungsregler eine Konfigurationsschaltung zum Rekonfigurieren des Spannungsreglers von einem ersten Energiezustand auf einen zweiten Energiezustand auf Grundlage des Energiezustandsupdatebefehls aufweist, wobei der Spannungsregler im ersten Energiezustand in einem unterbrochenen Leitungsmodus und im zweiten Energiezustand in einem ständigen Leitungsmodus laufen soll.
  10. Prozessor aus Anspruch 1, ferner aufweisend einen Arbeitslastklassifizierer zum Klassifizieren der Arbeitslast unter Verwendung von Maschinenlernen.
  11. Prozessor aus Anspruch 10, wobei der Arbeitslastklassifizierer eine nächste Arbeitslast vorhersagen soll, die auf dem mindestens einen Kern ausgeführt wird, und ein Klassifizierungsupdate an den Energiecontroller senden soll, um den Energiecontroller zu veranlassen, ein zweites der mehreren Energiezustandsprofile mindestens teilweise auf Grundlage des Klassifizierungsupdates zu wählen und eine andere Aktualisierung des Energiezustands des Spannungsreglers dem gewählten zweiten der mehreren Energiezustandsprofile entsprechend zu veranlassen.
  12. Verfahren, umfassend: Identifizieren mehrerer Sätze Cutoff-Grenzwerte, bei denen ein integrierter Spannungsregler eines Prozessors einer Plattform den Energiezustand ändern soll; für jeden der mehreren Sätze Cutoff-Grenzwerte, Ausführen mehrerer Arbeitslasten auf dem Prozessor und Erhalten von Spannungsreglermetrikinformationen für die mehreren Arbeitslasten; und mindestens teilweise auf Grundlage der Spannungsreglermetrikinformationen, Erzeugen mehrerer Energiezustandsprofile für den integrierten Spannungsregler, wobei jedes der mehreren Energiezustandsprofile mit mindestens einem Arbeitslasttyp assoziiert ist.
  13. Verfahren aus Anspruch 12, wobei das Verfahren ferner das Bereitstellen der mehreren Energiezustandsprofile an den Prozessor über eine Firmware umfasst.
  14. Verfahren aus Anspruch 12, wobei das Verfahren ferner umfasst: Auswählen eines ersten Satzes Cutoff-Grenzwerte für ein erstes Energiezustandsprofil und Assoziieren des ersten Energiezustandsprofils mit einem ersten Arbeitslasttyp; und Auswählen eines zweiten Satzes Cutoff-Grenzwerte für ein zweites Energiezustandsprofil und Assoziieren des zweiten Energiezustandsprofils mit mehreren Arbeitslasttypen.
  15. Verfahren aus Anspruch 14, wobei das Verfahren ferner das Auswählen des ersten Satzes Cutoff-Grenzwerte für den ersten Arbeitslasttyp auf Grundlage der Spannungsreglermetrikinformationen umfasst, die Spannungsreglereffizienzinformationen umfassen.
  16. Verfahren aus Anspruch 12, wobei das Verfahren ferner das Ausführen einer ersten Arbeitslast unter Verwendung der mehreren Sätze Cutoff-Grenzwerte zum Finden eines optimalen Energiezustandsprofils zum Optimieren von Energiezufuhreffizienz während der ersten Arbeitslastausführung umfasst.
  17. Verfahren aus Anspruch 12, wobei das Verfahren ferner das Auswählen der mehreren Arbeitslasten unter Verwendung von Maschinenlernen umfasst, wobei die mehreren Arbeitslasten häufige Arbeitslasten für einen Benutzer der Plattform umfassen.
  18. Computerlesbares Speichermedium, das computerlesbare Anweisungen aufweist, um bei Ausführung ein Verfahren wie in einem der Ansprüche 12 bis 17 beansprucht umzusetzen.
  19. Vorrichtung, aufweisend Mittel zur Ausführung eines Verfahrens nach einem der Ansprüche 12 bis 17.
  20. System, aufweisend: einen Mehrkernprozessor, aufweisend: eine erste Domäne, die einen oder mehrere Kerne aufweist; eine zweite Domäne, die mindestens einen Grafikprozessor aufweist; mindestens einen integrierten Spannungsregler, um eine geregelte Spannung an mindestens die erste Domäne bereitzustellen, wobei der mindestens eine integrierte Spannungsregler eine Konfigurationsschaltung aufweist, um dynamisch den mindestens einen integrierten Spannungsregler von einem ersten Energiezustand zu einem zweiten Energiezustand umzukonfigurieren; und einen Energiecontroller, der mit dem mindestens einen integrierten Spannungsregler gekoppelt ist, wobei der Energiecontroller eine Spannungsreglersteuerschaltung aufweist, um ein Energiezustandsprofil aus mehreren Energiezustandsprofilen mindestens teilweise auf Grundlage eines Stromverbrauchspegels und der Klassifizierung einer Arbeitslast in Ausführung des Mehrkernprozessors zu wählen und das gewählte Energiezustandsprofil zu verwenden, um den mindestens einen integrierten Spannungsregler zu veranlassen, dynamisch von dem ersten Energiezustand auf den zweiten Energiezustand umkonfiguriert zu werden; und einen Systemspeicher, der mit dem Mehrkernprozessor gekoppelt ist.
  21. System aus Anspruch 20, ferner aufweisend einen Arbeitslastklassifizierer zum Klassifizieren der Arbeitslast unter Verwendung von Maschinenlernen und zum Senden einer Angabe der Arbeitslast an den Energiecontroller, wobei der Energiecontroller auf eine Tabelle zugreifen soll, die mehrere Einträge aufweist, wobei jeder Eintrag mit einem Energiezustandsprofil assoziiert ist, und Auswählen des Energiezustandsprofils unter Verwendung der Arbeitslastangabe, wobei das gewählte Energiezustandsprofil einen Satz Cutoff-Grenzwerte umfasst, bei denen ein Energiezustandsübergang des mindestens einen integrierten Spannungsreglers auftreten soll.
  22. System aus Anspruch 20, wobei der Systemspeicher eine Datenbank zum Speichern von verarbeiteten Daten aufweist, die Spannungsreglermetrikinformationen für mehrere Arbeitslasten umfassen, wobei die mehreren Energiezustandsprofile mindestens teilweise unter Verwendung der verarbeiteten Daten abgeleitet sind.
  23. Prozessor, aufweisend: mindestens ein Kernmittel zum Ausführen einer Arbeitslast; ein Spannungsreglermittel zum Bereitstellen einer Betriebsspannung an das mindestens eine Kernmittel; und ein Energiesteuermittel, gekoppelt mit dem Spannungsreglermittel, wobei das Energiesteuermittel das Spannungsreglermittel steuern soll, um die Betriebsspannung bereitzustellen, wobei das Energiesteuermittel ein Spannungsreglersteuermittel aufweist, um eines aus mehreren Energiezustandsprofilen mindestens teilweise auf Grundlage einer Klassifizierung der Arbeitslast zu wählen, und um eine Aktualisierung eines Energiezustands des Spannungsreglermittels nach dem gewählten Energiezustandsprofil zu veranlassen.
  24. Prozessor aus Anspruch 23, wobei das Energiesteuermittel ferner das eine der mehreren Energiezustandsprofile auf Grundlage einer aktiven Stromquelle für eine Plattform wählen soll, die den Prozessor aufweist.
  25. Prozessor aus Anspruch 24, wobei das Energiesteuermittel ferner eines der mehreren Energiezustandsprofile auf Grundlage eines Benutzervorzugs zwischen Leistung und Energieverbrauch wählen soll.
  26. Prozessor aus Anspruch 23, wobei der Prozessor ferner ein Konfigurationsspeichermittel zum Speichern der mehreren Energiezustandsprofile aufweist, wobei jedes der mehreren Energiezustandsprofile eine Energiezustandskennung aufweist und mehrere Cutoff-Grenzwerte aufweist.
DE102020130910.4A 2020-03-27 2020-11-23 System, vorrichtung und verfahren für dynamische energiezustandsskalierung eines spannungsreglers für einen prozessor Pending DE102020130910A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/832,012 US11314299B2 (en) 2020-03-27 2020-03-27 System, apparatus and method for dynamic power state scaling of a voltage regulator for a processor
US16/832,012 2020-03-27

Publications (1)

Publication Number Publication Date
DE102020130910A1 true DE102020130910A1 (de) 2021-09-30

Family

ID=77659254

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020130910.4A Pending DE102020130910A1 (de) 2020-03-27 2020-11-23 System, vorrichtung und verfahren für dynamische energiezustandsskalierung eines spannungsreglers für einen prozessor

Country Status (7)

Country Link
US (2) US11314299B2 (de)
EP (1) EP4127856A4 (de)
JP (1) JP2023518678A (de)
KR (1) KR20220159362A (de)
CN (2) CN115190989A (de)
DE (1) DE102020130910A1 (de)
WO (1) WO2021194542A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11934286B2 (en) * 2021-04-29 2024-03-19 Dell Products L.P. Subsystem power range configuration based on workload profile
US11803201B1 (en) 2022-05-11 2023-10-31 Stmicroelectronics S.R.L. Dynamic current scaling of a regulator
US20240004444A1 (en) * 2022-06-30 2024-01-04 Advanced Micro Devices, Inc. Rest-of-chip power optimization through data fabric performance state management

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7667447B2 (en) * 2005-12-28 2010-02-23 Intel Corporation Load adaptive power delivery
US8319484B2 (en) * 2007-12-12 2012-11-27 Intersil Americas Inc. Voltage regulator system and method for efficiency optimization using duty cycle measurements
US8028182B2 (en) * 2008-06-04 2011-09-27 Dell Products L.P. Dynamic CPU voltage regulator phase shedding
US8621246B2 (en) * 2009-12-23 2013-12-31 Intel Corporation Power management system and method to provide supply voltage to a load
US8463973B2 (en) * 2010-08-31 2013-06-11 Advanced Micro Devices, Inc. Mechanism for voltage regulator load line compensation using multiple voltage settings per operating state
US9424098B2 (en) * 2012-08-31 2016-08-23 Silicon Graphics International Corp. Dynamic resource scheduling
US20140173306A1 (en) * 2012-12-19 2014-06-19 Barnes Cooper System and method for providing for power savings in a processor environment
US8937497B1 (en) * 2013-01-25 2015-01-20 Analog Devices, Inc. Power supply monitor
US9136763B2 (en) * 2013-06-18 2015-09-15 Intersil Americas LLC Audio frequency deadband system and method for switch mode regulators operating in discontinuous conduction mode
US9577532B2 (en) * 2013-07-25 2017-02-21 Gazelle Semiconductor, Inc. Switching regulator circuits and methods
US9563263B2 (en) * 2013-12-19 2017-02-07 Intel Corporation Graphics processor sub-domain voltage regulation
JP2016025748A (ja) * 2014-07-18 2016-02-08 株式会社東芝 電源システムおよび制御装置
US9910481B2 (en) * 2015-02-13 2018-03-06 Intel Corporation Performing power management in a multicore processor
US11435802B2 (en) * 2017-05-01 2022-09-06 Drexel University Work load scheduling for multi core systems with under-provisioned power delivery
US11144110B2 (en) * 2018-07-19 2021-10-12 Apple Inc. Computer system power monitoring
US11199895B2 (en) 2018-12-27 2021-12-14 Intel Corporation Classification prediction of workload thermal behavior
US10935999B2 (en) * 2019-08-01 2021-03-02 Semiconductor Components Industries, Llc Load line circuit for voltage regulators

Also Published As

Publication number Publication date
US20210303045A1 (en) 2021-09-30
US20220206549A1 (en) 2022-06-30
JP2023518678A (ja) 2023-05-08
KR20220159362A (ko) 2022-12-02
CN115190989A (zh) 2022-10-14
CN113448373A (zh) 2021-09-28
WO2021194542A1 (en) 2021-09-30
EP4127856A4 (de) 2024-04-10
EP4127856A1 (de) 2023-02-08
US11314299B2 (en) 2022-04-26

Similar Documents

Publication Publication Date Title
US10775873B2 (en) Performing power management in a multicore processor
DE112019001522T5 (de) System, vorrichtung und verfahren zur optimierten drosselung eines prozessors
US9910481B2 (en) Performing power management in a multicore processor
DE112020001586T5 (de) System, gerät und verfahren zur leistungslizenzsteuerung eines prozessors
EP2894542B1 (de) Schätzung der Skalierbarkeit einer Belastung
DE102020130910A1 (de) System, vorrichtung und verfahren für dynamische energiezustandsskalierung eines spannungsreglers für einen prozessor
DE112019000693T5 (de) System, vorrichtung und verfahren zur bereitstellung von hardware-rückmeldungsinformationen in einem prozessor
DE112017004361T5 (de) Steuern eines leistungszustands eines prozessors unter verwendung einer kombination von package- und thread-hinweis-informationen
DE102020134491A1 (de) System, Vorrichtung und Verfahren zum dynamischen Justieren von Plattformenergie und -leistung basierend auf Aufgabeneigenschaften
DE112017001805T5 (de) Bestimmen von thermischen obergrenzen in einem prozessor mit mehreren dies
DE102018125236A1 (de) System, Vorrichtung und Verfahren zum Selbsstest vor Ort in einem Diagnose-Ruhezustand
DE202015009867U1 (de) Einrichtung zum Bereitstellen einer Wärmeparametermeldung für eine Mehrchip-Baugruppe
DE102013104329B4 (de) Aufgabenzuteilung in großen und kleinen Kernen
DE112019001001T5 (de) System, vorrichtung und verfahren für eine datengestützte niedrigenergiezustandssteuerung auf der grundlage von leistungsüberwachungsinformationen
TW201638717A (zh) 平台裝置的執行動態功率控制
DE112017003080T5 (de) Prozessor mit gleichzeitigem kern und gewebeausgang aus einem zustand mit geringer energie
DE102018131595A1 (de) Verwaltung von Prozessorleistung basierend auf Benutzerunterbrechungen
DE112020000231T5 (de) Einstellung von Anzeige Auffrischung Raten basierend auf Benutzer Aktivität
DE112013005131T5 (de) Verfahren, Vorrichtung, System zur automatischen Abstimmung von Coderegionen
CN106537285A (zh) 处理器温度的平衡控制
DE102018129330A1 (de) System, Vorrichtung und Verfahren zur prozessorexternen Überschreibung der Hardwareleistungszustandssteuerung eines Prozessors
DE112016004776T5 (de) Datenkomprimierung unter Verwendung eines Beschleunigers mit mehreren Suchmaschinen
DE102014003704A1 (de) Plattform-agnostisches Powermanagement
DE112017003873T5 (de) Bereitstellung einer Schnittstelle für Herabstufungssteuerinformationen in einem Prozessor
DE112018004329T5 (de) Steuerblöcke zur prozessorleistungsverwaltung

Legal Events

Date Code Title Description
R081 Change of applicant/patentee

Owner name: INTEL CORPORATION, SANTA CLARA, US

Free format text: FORMER OWNER: INTEL CORPORATION, SANTA CLARA, CALIF., US